@olane/o-node 0.7.12-alpha.4 → 0.7.12-alpha.41
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/o-core/src/connection/index.d.ts +8 -0
- package/dist/o-core/src/connection/index.d.ts.map +1 -0
- package/dist/o-core/src/connection/index.js +7 -0
- package/dist/o-core/src/connection/interfaces/connection-manager.config.d.ts +15 -0
- package/dist/o-core/src/connection/interfaces/connection-manager.config.d.ts.map +1 -0
- package/dist/o-core/src/connection/interfaces/connection-manager.config.js +1 -0
- package/dist/o-core/src/connection/interfaces/connection-send-params.interface.d.ts +9 -0
- package/dist/o-core/src/connection/interfaces/connection-send-params.interface.d.ts.map +1 -0
- package/dist/o-core/src/connection/interfaces/connection-send-params.interface.js +1 -0
- package/dist/o-core/src/connection/interfaces/connection.config.d.ts +20 -0
- package/dist/o-core/src/connection/interfaces/connection.config.d.ts.map +1 -0
- package/dist/o-core/src/connection/interfaces/connection.config.js +1 -0
- package/dist/o-core/src/connection/interfaces/index.d.ts +5 -0
- package/dist/o-core/src/connection/interfaces/index.d.ts.map +1 -0
- package/dist/o-core/src/connection/interfaces/index.js +4 -0
- package/dist/o-core/src/connection/interfaces/request-state.enum.d.ts +7 -0
- package/dist/o-core/src/connection/interfaces/request-state.enum.d.ts.map +1 -0
- package/dist/o-core/src/connection/interfaces/request-state.enum.js +7 -0
- package/dist/o-core/src/connection/o-connection-manager.d.ts +19 -0
- package/dist/o-core/src/connection/o-connection-manager.d.ts.map +1 -0
- package/dist/o-core/src/connection/o-connection-manager.js +27 -0
- package/dist/o-core/src/connection/o-connection.d.ts +26 -0
- package/dist/o-core/src/connection/o-connection.d.ts.map +1 -0
- package/dist/o-core/src/connection/o-connection.js +54 -0
- package/dist/o-core/src/connection/o-request.d.ts +23 -0
- package/dist/o-core/src/connection/o-request.d.ts.map +1 -0
- package/dist/o-core/src/connection/o-request.js +42 -0
- package/dist/o-core/src/connection/o-response.d.ts +13 -0
- package/dist/o-core/src/connection/o-response.d.ts.map +1 -0
- package/dist/o-core/src/connection/o-response.js +25 -0
- package/dist/o-core/src/core/defaults/config.d.ts +4 -0
- package/dist/o-core/src/core/defaults/config.d.ts.map +1 -0
- package/dist/o-core/src/core/defaults/config.js +5 -0
- package/dist/o-core/src/core/defaults/index.d.ts +2 -0
- package/dist/o-core/src/core/defaults/index.d.ts.map +1 -0
- package/dist/o-core/src/core/defaults/index.js +1 -0
- package/dist/o-core/src/core/graceful-shutdown.d.ts +25 -0
- package/dist/o-core/src/core/graceful-shutdown.d.ts.map +1 -0
- package/dist/o-core/src/core/graceful-shutdown.js +84 -0
- package/dist/o-core/src/core/index.d.ts +9 -0
- package/dist/o-core/src/core/index.d.ts.map +1 -0
- package/dist/o-core/src/core/index.js +8 -0
- package/dist/o-core/src/core/interfaces/index.d.ts +7 -0
- package/dist/o-core/src/core/interfaces/index.d.ts.map +1 -0
- package/dist/o-core/src/core/interfaces/index.js +6 -0
- package/dist/o-core/src/core/interfaces/node-type.enum.d.ts +10 -0
- package/dist/o-core/src/core/interfaces/node-type.enum.d.ts.map +1 -0
- package/dist/o-core/src/core/interfaces/node-type.enum.js +10 -0
- package/dist/o-core/src/core/interfaces/o-core.config.d.ts +23 -0
- package/dist/o-core/src/core/interfaces/o-core.config.d.ts.map +1 -0
- package/dist/o-core/src/core/interfaces/o-core.config.js +1 -0
- package/dist/o-core/src/core/interfaces/o-core.interface.d.ts +18 -0
- package/dist/o-core/src/core/interfaces/o-core.interface.d.ts.map +1 -0
- package/dist/o-core/src/core/interfaces/o-core.interface.js +1 -0
- package/dist/o-core/src/core/interfaces/state.enum.d.ts +8 -0
- package/dist/o-core/src/core/interfaces/state.enum.d.ts.map +1 -0
- package/dist/o-core/src/core/interfaces/state.enum.js +8 -0
- package/dist/o-core/src/core/interfaces/use-options.interface.d.ts +11 -0
- package/dist/o-core/src/core/interfaces/use-options.interface.d.ts.map +1 -0
- package/dist/o-core/src/core/interfaces/use-options.interface.js +1 -0
- package/dist/o-core/src/core/interfaces/use-stream-options.interface.d.ts +4 -0
- package/dist/o-core/src/core/interfaces/use-stream-options.interface.d.ts.map +1 -0
- package/dist/o-core/src/core/interfaces/use-stream-options.interface.js +1 -0
- package/dist/o-core/src/core/lib/events/connection-events.d.ts +31 -0
- package/dist/o-core/src/core/lib/events/connection-events.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/events/connection-events.js +46 -0
- package/dist/o-core/src/core/lib/events/hierarchy-events.d.ts +69 -0
- package/dist/o-core/src/core/lib/events/hierarchy-events.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/events/hierarchy-events.js +100 -0
- package/dist/o-core/src/core/lib/events/index.d.ts +6 -0
- package/dist/o-core/src/core/lib/events/index.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/events/index.js +5 -0
- package/dist/o-core/src/core/lib/events/node-events.d.ts +40 -0
- package/dist/o-core/src/core/lib/events/node-events.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/events/node-events.js +58 -0
- package/dist/o-core/src/core/lib/events/o-notification-event.d.ts +26 -0
- package/dist/o-core/src/core/lib/events/o-notification-event.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/events/o-notification-event.js +30 -0
- package/dist/o-core/src/core/lib/index.d.ts +8 -0
- package/dist/o-core/src/core/lib/index.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/index.js +7 -0
- package/dist/o-core/src/core/lib/interfaces/notification-types.d.ts +49 -0
- package/dist/o-core/src/core/lib/interfaces/notification-types.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/interfaces/notification-types.js +1 -0
- package/dist/o-core/src/core/lib/o-hierarchy.manager.d.ts +24 -0
- package/dist/o-core/src/core/lib/o-hierarchy.manager.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/o-hierarchy.manager.js +58 -0
- package/dist/o-core/src/core/lib/o-metrics.d.ts +5 -0
- package/dist/o-core/src/core/lib/o-metrics.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/o-metrics.js +6 -0
- package/dist/o-core/src/core/lib/o-notification.manager.d.ts +58 -0
- package/dist/o-core/src/core/lib/o-notification.manager.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/o-notification.manager.js +159 -0
- package/dist/o-core/src/core/lib/o-request.manager.d.ts +10 -0
- package/dist/o-core/src/core/lib/o-request.manager.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/o-request.manager.js +18 -0
- package/dist/o-core/src/core/lib/utils/event-filters.d.ts +38 -0
- package/dist/o-core/src/core/lib/utils/event-filters.d.ts.map +1 -0
- package/dist/o-core/src/core/lib/utils/event-filters.js +159 -0
- package/dist/o-core/src/core/o-core.d.ts +240 -0
- package/dist/o-core/src/core/o-core.d.ts.map +1 -0
- package/dist/o-core/src/core/o-core.js +463 -0
- package/dist/o-core/src/core/o-dependency.d.ts +9 -0
- package/dist/o-core/src/core/o-dependency.d.ts.map +1 -0
- package/dist/o-core/src/core/o-dependency.js +15 -0
- package/dist/o-core/src/core/o-object.d.ts +7 -0
- package/dist/o-core/src/core/o-object.d.ts.map +1 -0
- package/dist/o-core/src/core/o-object.js +10 -0
- package/dist/o-core/src/core/o-parameter.d.ts +12 -0
- package/dist/o-core/src/core/o-parameter.d.ts.map +1 -0
- package/dist/o-core/src/core/o-parameter.js +21 -0
- package/dist/o-core/src/error/enums/codes.error.d.ts +20 -0
- package/dist/o-core/src/error/enums/codes.error.d.ts.map +1 -0
- package/dist/o-core/src/error/enums/codes.error.js +20 -0
- package/dist/o-core/src/error/index.d.ts +3 -0
- package/dist/o-core/src/error/index.d.ts.map +1 -0
- package/dist/o-core/src/error/index.js +2 -0
- package/dist/o-core/src/error/interfaces/o-error.interface.d.ts +6 -0
- package/dist/o-core/src/error/interfaces/o-error.interface.d.ts.map +1 -0
- package/dist/o-core/src/error/interfaces/o-error.interface.js +1 -0
- package/dist/o-core/src/error/o-error.d.ts +15 -0
- package/dist/o-core/src/error/o-error.d.ts.map +1 -0
- package/dist/o-core/src/error/o-error.js +27 -0
- package/dist/o-core/src/index.d.ts +8 -0
- package/dist/o-core/src/index.d.ts.map +1 -0
- package/dist/o-core/src/index.js +7 -0
- package/dist/o-core/src/response/index.d.ts +2 -0
- package/dist/o-core/src/response/index.d.ts.map +1 -0
- package/dist/o-core/src/response/index.js +1 -0
- package/dist/o-core/src/response/response-builder.d.ts +140 -0
- package/dist/o-core/src/response/response-builder.d.ts.map +1 -0
- package/dist/o-core/src/response/response-builder.js +190 -0
- package/dist/o-core/src/router/enums/restricted-addresses.enum.d.ts +8 -0
- package/dist/o-core/src/router/enums/restricted-addresses.enum.d.ts.map +1 -0
- package/dist/o-core/src/router/enums/restricted-addresses.enum.js +13 -0
- package/dist/o-core/src/router/index.d.ts +11 -0
- package/dist/o-core/src/router/index.d.ts.map +1 -0
- package/dist/o-core/src/router/index.js +10 -0
- package/dist/o-core/src/router/interfaces/resolve.request.d.ts +10 -0
- package/dist/o-core/src/router/interfaces/resolve.request.d.ts.map +1 -0
- package/dist/o-core/src/router/interfaces/resolve.request.js +1 -0
- package/dist/o-core/src/router/interfaces/route.response.d.ts +8 -0
- package/dist/o-core/src/router/interfaces/route.response.d.ts.map +1 -0
- package/dist/o-core/src/router/interfaces/route.response.js +1 -0
- package/dist/o-core/src/router/o-address-resolver.d.ts +14 -0
- package/dist/o-core/src/router/o-address-resolver.d.ts.map +1 -0
- package/dist/o-core/src/router/o-address-resolver.js +19 -0
- package/dist/o-core/src/router/o-address.d.ts +33 -0
- package/dist/o-core/src/router/o-address.d.ts.map +1 -0
- package/dist/o-core/src/router/o-address.js +114 -0
- package/dist/o-core/src/router/o-request-preparation.d.ts +37 -0
- package/dist/o-core/src/router/o-request-preparation.d.ts.map +1 -0
- package/dist/o-core/src/router/o-request-preparation.js +75 -0
- package/dist/o-core/src/router/o-request.router.d.ts +18 -0
- package/dist/o-core/src/router/o-request.router.d.ts.map +1 -0
- package/dist/o-core/src/router/o-request.router.js +12 -0
- package/dist/o-core/src/router/o-resolver-chain.d.ts +32 -0
- package/dist/o-core/src/router/o-resolver-chain.d.ts.map +1 -0
- package/dist/o-core/src/router/o-resolver-chain.js +62 -0
- package/dist/o-core/src/router/o-router.d.ts +19 -0
- package/dist/o-core/src/router/o-router.d.ts.map +1 -0
- package/dist/o-core/src/router/o-router.js +14 -0
- package/dist/o-core/src/router/o-routing-policy.d.ts +36 -0
- package/dist/o-core/src/router/o-routing-policy.d.ts.map +1 -0
- package/dist/o-core/src/router/o-routing-policy.js +19 -0
- package/dist/o-core/src/streaming/index.d.ts +11 -0
- package/dist/o-core/src/streaming/index.d.ts.map +1 -0
- package/dist/o-core/src/streaming/index.js +14 -0
- package/dist/o-core/src/streaming/protocol-builder.d.ts +62 -0
- package/dist/o-core/src/streaming/protocol-builder.d.ts.map +1 -0
- package/dist/o-core/src/streaming/protocol-builder.js +93 -0
- package/dist/o-core/src/streaming/stream-config.d.ts +36 -0
- package/dist/o-core/src/streaming/stream-config.d.ts.map +1 -0
- package/dist/o-core/src/streaming/stream-config.js +19 -0
- package/dist/o-core/src/streaming/stream-handler.base.d.ts +85 -0
- package/dist/o-core/src/streaming/stream-handler.base.d.ts.map +1 -0
- package/dist/o-core/src/streaming/stream-handler.base.js +112 -0
- package/dist/o-core/src/streaming/stream-transport.interface.d.ts +61 -0
- package/dist/o-core/src/streaming/stream-transport.interface.d.ts.map +1 -0
- package/dist/o-core/src/streaming/stream-transport.interface.js +10 -0
- package/dist/o-core/src/transports/custom.transport.d.ts +6 -0
- package/dist/o-core/src/transports/custom.transport.d.ts.map +1 -0
- package/dist/o-core/src/transports/custom.transport.js +10 -0
- package/dist/o-core/src/transports/index.d.ts +4 -0
- package/dist/o-core/src/transports/index.d.ts.map +1 -0
- package/dist/o-core/src/transports/index.js +3 -0
- package/dist/o-core/src/transports/interfaces/transport-type.enum.d.ts +5 -0
- package/dist/o-core/src/transports/interfaces/transport-type.enum.d.ts.map +1 -0
- package/dist/o-core/src/transports/interfaces/transport-type.enum.js +5 -0
- package/dist/o-core/src/transports/o-transport.d.ts +10 -0
- package/dist/o-core/src/transports/o-transport.d.ts.map +1 -0
- package/dist/o-core/src/transports/o-transport.js +16 -0
- package/dist/o-core/src/utils/core.utils.d.ts +34 -0
- package/dist/o-core/src/utils/core.utils.d.ts.map +1 -0
- package/dist/o-core/src/utils/core.utils.js +123 -0
- package/dist/o-core/src/utils/index.d.ts +6 -0
- package/dist/o-core/src/utils/index.d.ts.map +1 -0
- package/dist/o-core/src/utils/index.js +5 -0
- package/dist/o-core/src/utils/logger.d.ts +14 -0
- package/dist/o-core/src/utils/logger.d.ts.map +1 -0
- package/dist/o-core/src/utils/logger.js +31 -0
- package/dist/o-core/src/utils/object.utils.d.ts +5 -0
- package/dist/o-core/src/utils/object.utils.d.ts.map +1 -0
- package/dist/o-core/src/utils/object.utils.js +23 -0
- package/dist/o-core/src/utils/regex.utils.d.ts +4 -0
- package/dist/o-core/src/utils/regex.utils.d.ts.map +1 -0
- package/dist/o-core/src/utils/regex.utils.js +13 -0
- package/dist/o-core/src/utils/remote.utils.d.ts +4 -0
- package/dist/o-core/src/utils/remote.utils.d.ts.map +1 -0
- package/dist/o-core/src/utils/remote.utils.js +5 -0
- package/dist/o-core/src/utils/streaming.utils.d.ts +22 -0
- package/dist/o-core/src/utils/streaming.utils.d.ts.map +1 -0
- package/dist/o-core/src/utils/streaming.utils.js +45 -0
- package/dist/o-node/src/connection/index.d.ts +5 -0
- package/dist/o-node/src/connection/index.d.ts.map +1 -0
- package/dist/o-node/src/connection/index.js +4 -0
- package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.d.ts +6 -0
- package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.d.ts.map +1 -0
- package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.js +1 -0
- package/dist/o-node/src/connection/interfaces/o-node-connection.config.d.ts +6 -0
- package/dist/o-node/src/connection/interfaces/o-node-connection.config.d.ts.map +1 -0
- package/dist/o-node/src/connection/interfaces/o-node-connection.config.js +1 -0
- package/dist/o-node/src/connection/o-node-connection.d.ts +13 -0
- package/dist/o-node/src/connection/o-node-connection.d.ts.map +1 -0
- package/dist/o-node/src/connection/o-node-connection.js +93 -0
- package/dist/o-node/src/connection/o-node-connection.manager.d.ts +19 -0
- package/dist/o-node/src/connection/o-node-connection.manager.d.ts.map +1 -0
- package/dist/o-node/src/connection/o-node-connection.manager.js +65 -0
- package/dist/o-node/src/connection/o-stream.request.d.ts +11 -0
- package/dist/o-node/src/connection/o-stream.request.d.ts.map +1 -0
- package/dist/o-node/src/connection/o-stream.request.js +7 -0
- package/dist/o-node/src/index.d.ts +12 -0
- package/dist/o-node/src/index.d.ts.map +1 -0
- package/dist/o-node/src/index.js +11 -0
- package/dist/o-node/src/interfaces/i-heartbeatable-node.d.ts +49 -0
- package/dist/o-node/src/interfaces/i-heartbeatable-node.d.ts.map +1 -0
- package/dist/o-node/src/interfaces/i-heartbeatable-node.js +1 -0
- package/dist/o-node/src/interfaces/i-reconnectable-node.d.ts +46 -0
- package/dist/o-node/src/interfaces/i-reconnectable-node.d.ts.map +1 -0
- package/dist/o-node/src/interfaces/i-reconnectable-node.js +1 -0
- package/dist/o-node/src/interfaces/o-node.config.d.ts +49 -0
- package/dist/o-node/src/interfaces/o-node.config.d.ts.map +1 -0
- package/dist/o-node/src/interfaces/o-node.config.js +1 -0
- package/dist/o-node/src/interfaces/o-node.tool-config.d.ts +4 -0
- package/dist/o-node/src/interfaces/o-node.tool-config.d.ts.map +1 -0
- package/dist/o-node/src/interfaces/o-node.tool-config.js +1 -0
- package/dist/o-node/src/lib/network-activity.lib.d.ts +1 -0
- package/dist/o-node/src/lib/network-activity.lib.d.ts.map +1 -0
- package/dist/o-node/src/lib/network-activity.lib.js +34 -0
- package/dist/o-node/src/managers/o-connection-heartbeat.manager.d.ts +63 -0
- package/dist/o-node/src/managers/o-connection-heartbeat.manager.d.ts.map +1 -0
- package/dist/o-node/src/managers/o-connection-heartbeat.manager.js +227 -0
- package/dist/o-node/src/managers/o-reconnection.manager.d.ts +51 -0
- package/dist/o-node/src/managers/o-reconnection.manager.d.ts.map +1 -0
- package/dist/o-node/src/managers/o-reconnection.manager.js +266 -0
- package/dist/o-node/src/nodes/client.node.d.ts +7 -0
- package/dist/o-node/src/nodes/client.node.d.ts.map +1 -0
- package/dist/o-node/src/nodes/client.node.js +16 -0
- package/dist/o-node/src/nodes/index.d.ts +4 -0
- package/dist/o-node/src/nodes/index.d.ts.map +1 -0
- package/dist/o-node/src/nodes/index.js +3 -0
- package/dist/o-node/src/nodes/server.node.d.ts +7 -0
- package/dist/o-node/src/nodes/server.node.d.ts.map +1 -0
- package/dist/o-node/src/nodes/server.node.js +20 -0
- package/dist/o-node/src/nodes/websocket.node.d.ts +7 -0
- package/dist/o-node/src/nodes/websocket.node.d.ts.map +1 -0
- package/dist/o-node/src/nodes/websocket.node.js +18 -0
- package/dist/o-node/src/o-node.d.ts +72 -0
- package/dist/o-node/src/o-node.d.ts.map +1 -0
- package/dist/o-node/src/o-node.hierarchy-manager.d.ts +15 -0
- package/dist/o-node/src/o-node.hierarchy-manager.d.ts.map +1 -0
- package/dist/o-node/src/o-node.hierarchy-manager.js +15 -0
- package/dist/o-node/src/o-node.js +493 -0
- package/dist/o-node/src/o-node.notification-manager.d.ts +52 -0
- package/dist/o-node/src/o-node.notification-manager.d.ts.map +1 -0
- package/dist/o-node/src/o-node.notification-manager.js +188 -0
- package/dist/o-node/src/o-node.tool.d.ts +18 -0
- package/dist/o-node/src/o-node.tool.d.ts.map +1 -0
- package/dist/o-node/src/o-node.tool.js +83 -0
- package/dist/o-node/src/router/index.d.ts +6 -0
- package/dist/o-node/src/router/index.d.ts.map +1 -0
- package/dist/o-node/src/router/index.js +5 -0
- package/dist/o-node/src/router/interfaces/o-node-router.config.d.ts +3 -0
- package/dist/o-node/src/router/interfaces/o-node-router.config.d.ts.map +1 -0
- package/dist/o-node/src/router/interfaces/o-node-router.config.js +1 -0
- package/dist/o-node/src/router/interfaces/o-node-router.response.d.ts +8 -0
- package/dist/o-node/src/router/interfaces/o-node-router.response.d.ts.map +1 -0
- package/dist/o-node/src/router/interfaces/o-node-router.response.js +1 -0
- package/dist/o-node/src/router/o-node.address.d.ts +18 -0
- package/dist/o-node/src/router/o-node.address.d.ts.map +1 -0
- package/dist/o-node/src/router/o-node.address.js +29 -0
- package/dist/o-node/src/router/o-node.router.d.ts +46 -0
- package/dist/o-node/src/router/o-node.router.d.ts.map +1 -0
- package/dist/o-node/src/router/o-node.router.js +181 -0
- package/dist/o-node/src/router/o-node.routing-policy.d.ts +30 -0
- package/dist/o-node/src/router/o-node.routing-policy.d.ts.map +1 -0
- package/dist/o-node/src/router/o-node.routing-policy.js +57 -0
- package/dist/o-node/src/router/o-node.transport.d.ts +11 -0
- package/dist/o-node/src/router/o-node.transport.d.ts.map +1 -0
- package/dist/o-node/src/router/o-node.transport.js +18 -0
- package/dist/o-node/src/router/resolvers/index.d.ts +4 -0
- package/dist/o-node/src/router/resolvers/index.d.ts.map +1 -0
- package/dist/o-node/src/router/resolvers/index.js +3 -0
- package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.d.ts +8 -0
- package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.d.ts.map +1 -0
- package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.js +35 -0
- package/dist/{src/router/resolvers/o-node.child-resolver.d.ts → o-node/src/router/resolvers/o-node.resolver.d.ts} +2 -2
- package/dist/o-node/src/router/resolvers/o-node.resolver.d.ts.map +1 -0
- package/dist/o-node/src/router/resolvers/o-node.resolver.js +45 -0
- package/dist/o-node/src/router/resolvers/o-node.search-resolver.d.ts +170 -0
- package/dist/o-node/src/router/resolvers/o-node.search-resolver.d.ts.map +1 -0
- package/dist/o-node/src/router/resolvers/o-node.search-resolver.js +285 -0
- package/dist/o-node/src/router/route.request.d.ts +14 -0
- package/dist/o-node/src/router/route.request.d.ts.map +1 -0
- package/dist/o-node/src/router/route.request.js +1 -0
- package/dist/o-node/src/streaming/index.d.ts +10 -0
- package/dist/o-node/src/streaming/index.d.ts.map +1 -0
- package/dist/o-node/src/streaming/index.js +12 -0
- package/dist/o-node/src/streaming/libp2p-stream-transport.d.ts +50 -0
- package/dist/o-node/src/streaming/libp2p-stream-transport.d.ts.map +1 -0
- package/dist/o-node/src/streaming/libp2p-stream-transport.js +137 -0
- package/dist/o-node/src/streaming/node-stream-handler.d.ts +65 -0
- package/dist/o-node/src/streaming/node-stream-handler.d.ts.map +1 -0
- package/dist/o-node/src/streaming/node-stream-handler.js +101 -0
- package/dist/o-node/src/ui/index.d.ts +3 -0
- package/dist/o-node/src/ui/index.d.ts.map +1 -0
- package/dist/o-node/src/ui/index.js +2 -0
- package/dist/o-node/src/ui/types.d.ts +110 -0
- package/dist/o-node/src/ui/types.d.ts.map +1 -0
- package/dist/o-node/src/ui/types.js +17 -0
- package/dist/o-node/src/ui/ui-graph.manager.d.ts +70 -0
- package/dist/o-node/src/ui/ui-graph.manager.d.ts.map +1 -0
- package/dist/o-node/src/ui/ui-graph.manager.js +274 -0
- package/dist/o-node/src/utils/circuit-breaker.d.ts +107 -0
- package/dist/o-node/src/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/o-node/src/utils/circuit-breaker.js +175 -0
- package/dist/o-node/src/utils/index.d.ts +3 -0
- package/dist/o-node/src/utils/index.d.ts.map +1 -0
- package/dist/o-node/src/utils/index.js +2 -0
- package/dist/o-node/src/utils/leader-request-wrapper.d.ts +66 -0
- package/dist/o-node/src/utils/leader-request-wrapper.d.ts.map +1 -0
- package/dist/o-node/src/utils/leader-request-wrapper.js +160 -0
- package/dist/o-node/src/utils/network.utils.d.ts +20 -0
- package/dist/o-node/src/utils/network.utils.d.ts.map +1 -0
- package/dist/o-node/src/utils/network.utils.js +74 -0
- package/dist/o-node/src/utils/stream.utils.d.ts +6 -0
- package/dist/o-node/src/utils/stream.utils.d.ts.map +1 -0
- package/dist/o-node/src/utils/stream.utils.js +31 -0
- package/dist/o-node/test/circuit-breaker.test.d.ts +2 -0
- package/dist/o-node/test/circuit-breaker.test.d.ts.map +1 -0
- package/dist/o-node/test/circuit-breaker.test.js +262 -0
- package/dist/o-node/test/helpers/test-node.tool.d.ts +15 -0
- package/dist/o-node/test/helpers/test-node.tool.d.ts.map +1 -0
- package/dist/o-node/test/helpers/test-node.tool.js +27 -0
- package/dist/o-node/test/leader-request-wrapper.test.d.ts +1 -0
- package/dist/o-node/test/leader-request-wrapper.test.d.ts.map +1 -0
- package/dist/o-node/test/leader-request-wrapper.test.js +246 -0
- package/dist/o-node/test/o-node.spec.d.ts +2 -0
- package/dist/o-node/test/o-node.spec.d.ts.map +1 -0
- package/dist/o-node/test/o-node.spec.js +20 -0
- package/dist/o-node/test/search-resolver.spec.d.ts +2 -0
- package/dist/o-node/test/search-resolver.spec.d.ts.map +1 -0
- package/dist/o-node/test/search-resolver.spec.js +693 -0
- package/dist/src/connection/o-node-connection.d.ts +2 -2
- package/dist/src/connection/o-node-connection.d.ts.map +1 -1
- package/dist/src/connection/o-node-connection.js +54 -19
- package/dist/src/connection/o-node-connection.manager.d.ts +16 -4
- package/dist/src/connection/o-node-connection.manager.d.ts.map +1 -1
- package/dist/src/connection/o-node-connection.manager.js +73 -44
- package/dist/src/connection/o-stream.request.d.ts +11 -0
- package/dist/src/connection/o-stream.request.d.ts.map +1 -0
- package/dist/src/connection/o-stream.request.js +7 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/interfaces/i-heartbeatable-node.d.ts +49 -0
- package/dist/src/interfaces/i-heartbeatable-node.d.ts.map +1 -0
- package/dist/src/interfaces/i-heartbeatable-node.js +1 -0
- package/dist/src/interfaces/i-reconnectable-node.d.ts +46 -0
- package/dist/src/interfaces/i-reconnectable-node.d.ts.map +1 -0
- package/dist/src/interfaces/i-reconnectable-node.js +1 -0
- package/dist/src/interfaces/o-node.config.d.ts +42 -0
- package/dist/src/interfaces/o-node.config.d.ts.map +1 -1
- package/dist/src/managers/o-connection-heartbeat.manager.d.ts +63 -0
- package/dist/src/managers/o-connection-heartbeat.manager.d.ts.map +1 -0
- package/dist/src/managers/o-connection-heartbeat.manager.js +227 -0
- package/dist/src/managers/o-reconnection.manager.d.ts +51 -0
- package/dist/src/managers/o-reconnection.manager.d.ts.map +1 -0
- package/dist/src/managers/o-reconnection.manager.js +266 -0
- package/dist/src/o-node.d.ts +30 -2
- package/dist/src/o-node.d.ts.map +1 -1
- package/dist/src/o-node.js +244 -33
- package/dist/src/o-node.notification-manager.d.ts +52 -0
- package/dist/src/o-node.notification-manager.d.ts.map +1 -0
- package/dist/src/o-node.notification-manager.js +188 -0
- package/dist/src/o-node.tool.d.ts.map +1 -1
- package/dist/src/o-node.tool.js +33 -24
- package/dist/src/router/o-node.router.d.ts +1 -0
- package/dist/src/router/o-node.router.d.ts.map +1 -1
- package/dist/src/router/o-node.router.js +61 -5
- package/dist/src/router/o-node.routing-policy.d.ts.map +1 -1
- package/dist/src/router/o-node.routing-policy.js +7 -2
- package/dist/src/router/resolvers/o-node.resolver.d.ts.map +1 -1
- package/dist/src/router/resolvers/o-node.resolver.js +5 -1
- package/dist/src/router/resolvers/o-node.search-resolver.d.ts.map +1 -1
- package/dist/src/router/resolvers/o-node.search-resolver.js +34 -9
- package/dist/src/streaming/index.d.ts +10 -0
- package/dist/src/streaming/index.d.ts.map +1 -0
- package/dist/src/streaming/index.js +12 -0
- package/dist/src/streaming/libp2p-stream-transport.d.ts +50 -0
- package/dist/src/streaming/libp2p-stream-transport.d.ts.map +1 -0
- package/dist/src/streaming/libp2p-stream-transport.js +137 -0
- package/dist/src/streaming/node-stream-handler.d.ts +65 -0
- package/dist/src/streaming/node-stream-handler.d.ts.map +1 -0
- package/dist/src/streaming/node-stream-handler.js +101 -0
- package/dist/src/streaming/o-node-streaming-client.d.ts +33 -0
- package/dist/src/streaming/o-node-streaming-client.d.ts.map +1 -0
- package/dist/src/streaming/o-node-streaming-client.js +130 -0
- package/dist/src/utils/circuit-breaker.d.ts +107 -0
- package/dist/src/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/src/utils/circuit-breaker.js +175 -0
- package/dist/src/utils/circuit-breaker.test.d.ts +2 -0
- package/dist/src/utils/circuit-breaker.test.d.ts.map +1 -0
- package/dist/src/utils/circuit-breaker.test.js +262 -0
- package/dist/src/utils/index.d.ts +3 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +2 -0
- package/dist/src/utils/leader-request-wrapper.d.ts +66 -0
- package/dist/src/utils/leader-request-wrapper.d.ts.map +1 -0
- package/dist/src/utils/leader-request-wrapper.js +160 -0
- package/dist/src/utils/leader-request-wrapper.test.d.ts +1 -0
- package/dist/src/utils/leader-request-wrapper.test.d.ts.map +1 -0
- package/dist/src/utils/leader-request-wrapper.test.js +246 -0
- package/dist/src/utils/stream.utils.d.ts +6 -0
- package/dist/src/utils/stream.utils.d.ts.map +1 -0
- package/dist/src/utils/stream.utils.js +31 -0
- package/dist/test/circuit-breaker.test.d.ts +2 -0
- package/dist/test/circuit-breaker.test.d.ts.map +1 -0
- package/dist/test/circuit-breaker.test.js +262 -0
- package/dist/test/helpers/test-node.tool.d.ts +15 -0
- package/dist/test/helpers/test-node.tool.d.ts.map +1 -0
- package/dist/test/helpers/test-node.tool.js +27 -0
- package/dist/test/leader-request-wrapper.test.d.ts +1 -0
- package/dist/test/leader-request-wrapper.test.d.ts.map +1 -0
- package/dist/test/leader-request-wrapper.test.js +246 -0
- package/package.json +6 -6
- package/dist/src/router/resolvers/o-node.child-resolver.d.ts.map +0 -1
- package/dist/src/router/resolvers/o-node.child-resolver.js +0 -58
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { oError } from '../error/o-error.js';
|
|
2
|
+
import { oRequest } from '@olane/o-protocol';
|
|
3
|
+
/**
|
|
4
|
+
* State machine states for streaming operations
|
|
5
|
+
*/
|
|
6
|
+
export declare enum StreamHandlerState {
|
|
7
|
+
IDLE = "idle",
|
|
8
|
+
STREAMING = "streaming",
|
|
9
|
+
COMPLETED = "completed",
|
|
10
|
+
ERROR = "error"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Options for stream handler operations
|
|
14
|
+
*/
|
|
15
|
+
export interface StreamHandlerOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Enable metrics tracking
|
|
18
|
+
*/
|
|
19
|
+
enableMetrics?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Abstract base class for handling streaming operations.
|
|
23
|
+
* Provides transport-agnostic AsyncGenerator iteration, chunk sequencing,
|
|
24
|
+
* error handling, and state management.
|
|
25
|
+
*
|
|
26
|
+
* Implementations must provide the sendChunk method for transport-specific
|
|
27
|
+
* chunk transmission.
|
|
28
|
+
*/
|
|
29
|
+
export declare abstract class StreamHandlerBase {
|
|
30
|
+
protected state: StreamHandlerState;
|
|
31
|
+
protected currentSequence: number;
|
|
32
|
+
protected options: StreamHandlerOptions;
|
|
33
|
+
constructor(options?: StreamHandlerOptions);
|
|
34
|
+
/**
|
|
35
|
+
* Get the current state of the stream handler
|
|
36
|
+
*/
|
|
37
|
+
getState(): StreamHandlerState;
|
|
38
|
+
/**
|
|
39
|
+
* Get the current sequence number
|
|
40
|
+
*/
|
|
41
|
+
getCurrentSequence(): number;
|
|
42
|
+
/**
|
|
43
|
+
* Abstract method that implementations must provide to send a chunk.
|
|
44
|
+
* This method should handle the actual transmission using the specific transport.
|
|
45
|
+
*
|
|
46
|
+
* @param chunk - The data chunk to send
|
|
47
|
+
* @param sequence - The sequence number of this chunk
|
|
48
|
+
* @param isLast - Whether this is the final chunk
|
|
49
|
+
* @param request - The original request
|
|
50
|
+
*/
|
|
51
|
+
protected abstract sendChunk(chunk: unknown, sequence: number, isLast: boolean, request: oRequest): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Optional hook called when streaming starts
|
|
54
|
+
*/
|
|
55
|
+
protected onStreamStart?(request: oRequest): void;
|
|
56
|
+
/**
|
|
57
|
+
* Optional hook called when streaming completes successfully
|
|
58
|
+
*/
|
|
59
|
+
protected onStreamComplete?(request: oRequest, totalChunks: number): void;
|
|
60
|
+
/**
|
|
61
|
+
* Optional hook called when streaming encounters an error
|
|
62
|
+
*/
|
|
63
|
+
protected onStreamError?(request: oRequest, error: oError): void;
|
|
64
|
+
/**
|
|
65
|
+
* Handle streaming of an AsyncGenerator.
|
|
66
|
+
* Iterates through the generator, sends each chunk with proper sequencing,
|
|
67
|
+
* and handles errors appropriately.
|
|
68
|
+
*
|
|
69
|
+
* @param generator - The AsyncGenerator to stream
|
|
70
|
+
* @param request - The original request
|
|
71
|
+
* @returns Promise that resolves when streaming is complete
|
|
72
|
+
*/
|
|
73
|
+
handleStream(generator: AsyncGenerator<any>, request: oRequest): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Convert any error to an oError instance
|
|
76
|
+
* @param error - The error to convert
|
|
77
|
+
* @returns An oError instance
|
|
78
|
+
*/
|
|
79
|
+
protected convertToOError(error: unknown): oError;
|
|
80
|
+
/**
|
|
81
|
+
* Reset the handler state for reuse
|
|
82
|
+
*/
|
|
83
|
+
reset(): void;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=stream-handler.base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-handler.base.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/streaming/stream-handler.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,8BAAsB,iBAAiB;IACrC,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAA2B;IAC9D,SAAS,CAAC,eAAe,EAAE,MAAM,CAAK;IACtC,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAE5B,OAAO,GAAE,oBAAyB;IAO9C;;OAEG;IACI,QAAQ,IAAI,kBAAkB;IAIrC;;OAEG;IACI,kBAAkB,IAAI,MAAM;IAInC;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAC1B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAEjD;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAEzE;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAEhE;;;;;;;;OAQG;IACU,YAAY,CACvB,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,EAC9B,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IAqDhB;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAoBjD;;OAEG;IACI,KAAK,IAAI,IAAI;CAIrB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { oError } from '../error/o-error.js';
|
|
2
|
+
import { oErrorCodes } from '../error/enums/codes.error.js';
|
|
3
|
+
/**
|
|
4
|
+
* State machine states for streaming operations
|
|
5
|
+
*/
|
|
6
|
+
export var StreamHandlerState;
|
|
7
|
+
(function (StreamHandlerState) {
|
|
8
|
+
StreamHandlerState["IDLE"] = "idle";
|
|
9
|
+
StreamHandlerState["STREAMING"] = "streaming";
|
|
10
|
+
StreamHandlerState["COMPLETED"] = "completed";
|
|
11
|
+
StreamHandlerState["ERROR"] = "error";
|
|
12
|
+
})(StreamHandlerState || (StreamHandlerState = {}));
|
|
13
|
+
/**
|
|
14
|
+
* Abstract base class for handling streaming operations.
|
|
15
|
+
* Provides transport-agnostic AsyncGenerator iteration, chunk sequencing,
|
|
16
|
+
* error handling, and state management.
|
|
17
|
+
*
|
|
18
|
+
* Implementations must provide the sendChunk method for transport-specific
|
|
19
|
+
* chunk transmission.
|
|
20
|
+
*/
|
|
21
|
+
export class StreamHandlerBase {
|
|
22
|
+
constructor(options = {}) {
|
|
23
|
+
this.state = StreamHandlerState.IDLE;
|
|
24
|
+
this.currentSequence = 0;
|
|
25
|
+
this.options = {
|
|
26
|
+
enableMetrics: true,
|
|
27
|
+
...options,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the current state of the stream handler
|
|
32
|
+
*/
|
|
33
|
+
getState() {
|
|
34
|
+
return this.state;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the current sequence number
|
|
38
|
+
*/
|
|
39
|
+
getCurrentSequence() {
|
|
40
|
+
return this.currentSequence;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Handle streaming of an AsyncGenerator.
|
|
44
|
+
* Iterates through the generator, sends each chunk with proper sequencing,
|
|
45
|
+
* and handles errors appropriately.
|
|
46
|
+
*
|
|
47
|
+
* @param generator - The AsyncGenerator to stream
|
|
48
|
+
* @param request - The original request
|
|
49
|
+
* @returns Promise that resolves when streaming is complete
|
|
50
|
+
*/
|
|
51
|
+
async handleStream(generator, request) {
|
|
52
|
+
this.state = StreamHandlerState.STREAMING;
|
|
53
|
+
this.currentSequence = 0;
|
|
54
|
+
// Call optional hook
|
|
55
|
+
if (this.onStreamStart) {
|
|
56
|
+
this.onStreamStart(request);
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
// Iterate through the generator and send each chunk
|
|
60
|
+
for await (const chunk of generator) {
|
|
61
|
+
this.currentSequence++;
|
|
62
|
+
await this.sendChunk(chunk, this.currentSequence, false, request);
|
|
63
|
+
}
|
|
64
|
+
// Send final empty chunk to signal completion
|
|
65
|
+
await this.sendChunk(null, this.currentSequence, true, request);
|
|
66
|
+
this.state = StreamHandlerState.COMPLETED;
|
|
67
|
+
// Call optional hook
|
|
68
|
+
if (this.onStreamComplete) {
|
|
69
|
+
this.onStreamComplete(request, this.currentSequence);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
this.state = StreamHandlerState.ERROR;
|
|
74
|
+
// Convert error to oError if needed
|
|
75
|
+
const oErrorInstance = this.convertToOError(error);
|
|
76
|
+
// Call optional hook
|
|
77
|
+
if (this.onStreamError) {
|
|
78
|
+
this.onStreamError(request, oErrorInstance);
|
|
79
|
+
}
|
|
80
|
+
// Send error as final chunk
|
|
81
|
+
try {
|
|
82
|
+
await this.sendChunk(oErrorInstance.toJSON(), this.currentSequence, true, request);
|
|
83
|
+
}
|
|
84
|
+
catch (sendError) {
|
|
85
|
+
console.error('Failed to send error chunk:', sendError);
|
|
86
|
+
throw oErrorInstance;
|
|
87
|
+
}
|
|
88
|
+
throw oErrorInstance;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Convert any error to an oError instance
|
|
93
|
+
* @param error - The error to convert
|
|
94
|
+
* @returns An oError instance
|
|
95
|
+
*/
|
|
96
|
+
convertToOError(error) {
|
|
97
|
+
if (error instanceof oError) {
|
|
98
|
+
return error;
|
|
99
|
+
}
|
|
100
|
+
if (error instanceof Error) {
|
|
101
|
+
return new oError(oErrorCodes.UNKNOWN, error.message, { stack: error.stack });
|
|
102
|
+
}
|
|
103
|
+
return new oError(oErrorCodes.UNKNOWN, String(error), { originalError: error });
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Reset the handler state for reuse
|
|
107
|
+
*/
|
|
108
|
+
reset() {
|
|
109
|
+
this.state = StreamHandlerState.IDLE;
|
|
110
|
+
this.currentSequence = 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stream status states
|
|
3
|
+
*/
|
|
4
|
+
export declare enum StreamStatus {
|
|
5
|
+
OPEN = "open",
|
|
6
|
+
CLOSING = "closing",
|
|
7
|
+
CLOSED = "closed",
|
|
8
|
+
RESET = "reset"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Transport-agnostic interface for stream operations.
|
|
12
|
+
* Implementations can use libp2p, WebSockets, HTTP/2, or any other streaming transport.
|
|
13
|
+
*/
|
|
14
|
+
export interface IStreamTransport {
|
|
15
|
+
/**
|
|
16
|
+
* Send data through the stream with backpressure handling
|
|
17
|
+
* @param data - The data to send (UTF-8 encoded bytes)
|
|
18
|
+
* @returns Promise that resolves when data is sent (handles backpressure internally)
|
|
19
|
+
*/
|
|
20
|
+
send(data: Uint8Array): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Set up a message handler for incoming data
|
|
23
|
+
* @param handler - Callback function to handle incoming messages
|
|
24
|
+
*/
|
|
25
|
+
onMessage(handler: (data: Uint8Array) => void): void;
|
|
26
|
+
/**
|
|
27
|
+
* Remove the message handler
|
|
28
|
+
*/
|
|
29
|
+
removeMessageHandler(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Close the stream and clean up resources
|
|
32
|
+
* @returns Promise that resolves when stream is closed
|
|
33
|
+
*/
|
|
34
|
+
close(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Get the current status of the stream
|
|
37
|
+
* @returns The current stream status
|
|
38
|
+
*/
|
|
39
|
+
getStatus(): StreamStatus;
|
|
40
|
+
/**
|
|
41
|
+
* Check if the stream is in a usable state
|
|
42
|
+
* @returns true if stream can send/receive data
|
|
43
|
+
*/
|
|
44
|
+
isOpen(): boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Configuration options for stream transport operations
|
|
48
|
+
*/
|
|
49
|
+
export interface StreamTransportConfig {
|
|
50
|
+
/**
|
|
51
|
+
* Timeout in milliseconds for drain operations when handling backpressure
|
|
52
|
+
* @default 30000 (30 seconds)
|
|
53
|
+
*/
|
|
54
|
+
drainTimeoutMs?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Maximum time in milliseconds to wait for the first message
|
|
57
|
+
* @default 120000 (2 minutes)
|
|
58
|
+
*/
|
|
59
|
+
readTimeoutMs?: number;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=stream-transport.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-transport.interface.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/streaming/stream-transport.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAErD;;OAEG;IACH,oBAAoB,IAAI,IAAI,CAAC;IAE7B;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,SAAS,IAAI,YAAY,CAAC;IAE1B;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stream status states
|
|
3
|
+
*/
|
|
4
|
+
export var StreamStatus;
|
|
5
|
+
(function (StreamStatus) {
|
|
6
|
+
StreamStatus["OPEN"] = "open";
|
|
7
|
+
StreamStatus["CLOSING"] = "closing";
|
|
8
|
+
StreamStatus["CLOSED"] = "closed";
|
|
9
|
+
StreamStatus["RESET"] = "reset";
|
|
10
|
+
})(StreamStatus || (StreamStatus = {}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom.transport.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/transports/custom.transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,gBAAiB,SAAQ,UAAU;gBAClC,KAAK,EAAE,MAAM;IAIzB,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TransportType } from './interfaces/transport-type.enum.js';
|
|
2
|
+
import { oTransport } from './o-transport.js';
|
|
3
|
+
export class oCustomTransport extends oTransport {
|
|
4
|
+
constructor(value) {
|
|
5
|
+
super(value, TransportType.CUSTOM);
|
|
6
|
+
}
|
|
7
|
+
toString() {
|
|
8
|
+
return this.value.toString();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/transports/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-type.enum.d.ts","sourceRoot":"","sources":["../../../../../../o-core/src/transports/interfaces/transport-type.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { oObject } from '../core/o-object.js';
|
|
2
|
+
import { TransportType } from './interfaces/transport-type.enum.js';
|
|
3
|
+
export declare abstract class oTransport extends oObject {
|
|
4
|
+
readonly value: any;
|
|
5
|
+
readonly type: TransportType;
|
|
6
|
+
constructor(value: any, type?: TransportType);
|
|
7
|
+
abstract toString(): string;
|
|
8
|
+
toJSON(): any;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=o-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"o-transport.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/transports/o-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,8BAAsB,UAAW,SAAQ,OAAO;IAC9C,SAAgB,KAAK,EAAE,GAAG,CAAC;IAC3B,SAAgB,IAAI,EAAE,aAAa,CAAwB;gBAE/C,KAAK,EAAE,GAAG,EAAE,IAAI,GAAE,aAAoC;IAMlE,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAE3B,MAAM,IAAI,GAAG;CAMd"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { oObject } from '../core/o-object.js';
|
|
2
|
+
import { TransportType } from './interfaces/transport-type.enum.js';
|
|
3
|
+
export class oTransport extends oObject {
|
|
4
|
+
constructor(value, type = TransportType.LIBP2P) {
|
|
5
|
+
super();
|
|
6
|
+
this.type = TransportType.LIBP2P;
|
|
7
|
+
this.value = value;
|
|
8
|
+
this.type = type;
|
|
9
|
+
}
|
|
10
|
+
toJSON() {
|
|
11
|
+
return {
|
|
12
|
+
value: this.value,
|
|
13
|
+
type: this.type,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Stream } from '@olane/o-config';
|
|
2
|
+
import { oAddress } from '../router/o-address.js';
|
|
3
|
+
import { oResponse } from '../connection/o-response.js';
|
|
4
|
+
import { oRequest } from '../connection/o-request.js';
|
|
5
|
+
import { CID } from 'multiformats';
|
|
6
|
+
import { oObject } from '../core/o-object.js';
|
|
7
|
+
export declare class CoreUtils extends oObject {
|
|
8
|
+
static generatePeerId(): Promise<any>;
|
|
9
|
+
static doHealthCheck(address: oAddress, node: any): Promise<boolean>;
|
|
10
|
+
static healthCheck(config: {
|
|
11
|
+
type?: 'leader' | 'parent' | 'child';
|
|
12
|
+
address?: oAddress;
|
|
13
|
+
node: any;
|
|
14
|
+
timeout?: number;
|
|
15
|
+
}): Promise<boolean>;
|
|
16
|
+
static generatePrivateKey(seed: string): Promise<any>;
|
|
17
|
+
/**
|
|
18
|
+
* Convert any user phrase to exactly 32 bytes for Ed25519 key generation.
|
|
19
|
+
* This function uses SHA-256 hashing to ensure:
|
|
20
|
+
* - Deterministic: Same phrase always produces same seed
|
|
21
|
+
* - Uniform distribution: Good entropy even for weak phrases
|
|
22
|
+
* - Exactly 32 bytes: Meets Ed25519 cryptographic requirements
|
|
23
|
+
*/
|
|
24
|
+
static phraseToSeedBytes(phrase: string): Uint8Array;
|
|
25
|
+
static phraseToSeed(phrase: string): string;
|
|
26
|
+
static childAddress(parentAddress: oAddress, childAddress: oAddress): oAddress;
|
|
27
|
+
static sendResponse(response: oResponse, stream: Stream): Promise<void>;
|
|
28
|
+
static sendStreamResponse(response: oResponse, stream: Stream): Promise<void>;
|
|
29
|
+
static processStream(event: any): Promise<any>;
|
|
30
|
+
static processStreamRequest(event: any): Promise<oRequest>;
|
|
31
|
+
static processStreamResponse(event: any): Promise<oResponse>;
|
|
32
|
+
static toCID(data: any): Promise<CID>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=core.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.utils.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/utils/core.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EAGP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,SAAU,SAAQ,OAAO;WACvB,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;IAK3C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;WAkBvD,WAAW,CAAC,MAAM,EAAE;QAC/B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;QACrC,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,OAAO,CAAC;WA4BP,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ3D;;;;;;OAMG;WACW,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;WAO7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;WAOpC,YAAY,CACxB,aAAa,EAAE,QAAQ,EACvB,YAAY,EAAE,QAAQ,GACrB,QAAQ;WAIS,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;WAahD,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;WAgBtD,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAMvC,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;WAKnD,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;WAOrD,KAAK,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAMnD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { generateKeyPairFromSeed, createEd25519PeerId, Uint8ArrayList, } from '@olane/o-config';
|
|
2
|
+
import { createHash } from 'crypto';
|
|
3
|
+
import { oAddress } from '../router/o-address.js';
|
|
4
|
+
import { oResponse } from '../connection/o-response.js';
|
|
5
|
+
import { oRequest } from '../connection/o-request.js';
|
|
6
|
+
import { CID } from 'multiformats';
|
|
7
|
+
import * as json from 'multiformats/codecs/json';
|
|
8
|
+
import { sha256 } from 'multiformats/hashes/sha2';
|
|
9
|
+
import { oObject } from '../core/o-object.js';
|
|
10
|
+
export class CoreUtils extends oObject {
|
|
11
|
+
static async generatePeerId() {
|
|
12
|
+
const peerId = await createEd25519PeerId();
|
|
13
|
+
return peerId;
|
|
14
|
+
}
|
|
15
|
+
static doHealthCheck(address, node) {
|
|
16
|
+
return new Promise(async (resolve, reject) => {
|
|
17
|
+
const timer = setTimeout(() => {
|
|
18
|
+
reject(new Error('Health check timed out'));
|
|
19
|
+
}, 30000); // 30 seconds
|
|
20
|
+
const response = await node.use(new oAddress(address.toString() + '/ping', address.transports));
|
|
21
|
+
clearTimeout(timer);
|
|
22
|
+
if (response.result.error) {
|
|
23
|
+
reject(new Error('Health check failed'));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
resolve(true);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
static async healthCheck(config) {
|
|
31
|
+
if (!config.node) {
|
|
32
|
+
throw new Error('Node is required');
|
|
33
|
+
}
|
|
34
|
+
const { type, address, node } = config;
|
|
35
|
+
if (type === 'leader') {
|
|
36
|
+
return CoreUtils.doHealthCheck(node.leader, node);
|
|
37
|
+
}
|
|
38
|
+
else if (type === 'parent') {
|
|
39
|
+
return CoreUtils.doHealthCheck(node.parent, node);
|
|
40
|
+
}
|
|
41
|
+
else if (type === 'child') {
|
|
42
|
+
const children = node.hierarchyManager.getChildren();
|
|
43
|
+
return (await Promise.all(children.map((child) => CoreUtils.doHealthCheck(child, node)))).every((result) => result === true);
|
|
44
|
+
}
|
|
45
|
+
if (address) {
|
|
46
|
+
return CoreUtils.doHealthCheck(address, node);
|
|
47
|
+
}
|
|
48
|
+
throw new Error('Address is required');
|
|
49
|
+
}
|
|
50
|
+
static async generatePrivateKey(seed) {
|
|
51
|
+
// Convert any user phrase to exactly 32 bytes using SHA-256
|
|
52
|
+
const seedBytes = CoreUtils.phraseToSeedBytes(seed);
|
|
53
|
+
const privateKey = await generateKeyPairFromSeed('Ed25519', seedBytes);
|
|
54
|
+
return privateKey;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Convert any user phrase to exactly 32 bytes for Ed25519 key generation.
|
|
58
|
+
* This function uses SHA-256 hashing to ensure:
|
|
59
|
+
* - Deterministic: Same phrase always produces same seed
|
|
60
|
+
* - Uniform distribution: Good entropy even for weak phrases
|
|
61
|
+
* - Exactly 32 bytes: Meets Ed25519 cryptographic requirements
|
|
62
|
+
*/
|
|
63
|
+
static phraseToSeedBytes(phrase) {
|
|
64
|
+
// Use SHA-256 to create a consistent 32-byte hash
|
|
65
|
+
const hash = createHash('sha256').update(phrase, 'utf8').digest();
|
|
66
|
+
return new Uint8Array(hash);
|
|
67
|
+
}
|
|
68
|
+
// Legacy utility function to convert any phrase into a 32-character hex string
|
|
69
|
+
static phraseToSeed(phrase) {
|
|
70
|
+
// Use SHA-256 to create a consistent 32-byte hash
|
|
71
|
+
const hash = createHash('sha256').update(phrase).digest('hex');
|
|
72
|
+
// Take the first 32 characters of the hex string
|
|
73
|
+
return hash.substring(0, 32);
|
|
74
|
+
}
|
|
75
|
+
static childAddress(parentAddress, childAddress) {
|
|
76
|
+
return new oAddress(parentAddress.toString() + '/' + childAddress.paths);
|
|
77
|
+
}
|
|
78
|
+
static async sendResponse(response, stream) {
|
|
79
|
+
if (stream.status !== 'open') {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
await stream.send(new TextEncoder().encode(response.toString()));
|
|
84
|
+
await stream.close();
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error('Error sending response: ', error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
static async sendStreamResponse(response, stream) {
|
|
91
|
+
const utils = new CoreUtils();
|
|
92
|
+
if (!stream || stream.status !== 'open') {
|
|
93
|
+
utils.logger.warn('Stream is not open. Status: ' + stream?.status || 'undefined');
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
await stream.send(new TextEncoder().encode(response.toString()));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
utils.logger.error('Error sending stream response: ', error);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
static async processStream(event) {
|
|
104
|
+
const bytes = event.data instanceof Uint8ArrayList ? event.data.subarray() : event.data;
|
|
105
|
+
return JSON.parse(new TextDecoder().decode(bytes));
|
|
106
|
+
}
|
|
107
|
+
static async processStreamRequest(event) {
|
|
108
|
+
const req = await CoreUtils.processStream(event);
|
|
109
|
+
return new oRequest(req);
|
|
110
|
+
}
|
|
111
|
+
static async processStreamResponse(event) {
|
|
112
|
+
const res = await CoreUtils.processStream(event);
|
|
113
|
+
return new oResponse({
|
|
114
|
+
...res.result,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
static async toCID(data) {
|
|
118
|
+
const bytes = json.encode(data);
|
|
119
|
+
const hash = await sha256.digest(bytes);
|
|
120
|
+
const cid = CID.create(1, json.code, hash);
|
|
121
|
+
return cid;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class Logger {
|
|
2
|
+
private readonly name;
|
|
3
|
+
private log;
|
|
4
|
+
private suffix;
|
|
5
|
+
constructor(name: string);
|
|
6
|
+
setNamespace(name: string): void;
|
|
7
|
+
verbose(...args: any[]): void;
|
|
8
|
+
debug(...args: any[]): void;
|
|
9
|
+
info(...args: any[]): void;
|
|
10
|
+
warn(...args: any[]): void;
|
|
11
|
+
error(...args: any[]): void;
|
|
12
|
+
alert(...args: any[]): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/utils/logger.ts"],"names":[],"mappings":"AAGA,qBAAa,MAAM;IAIL,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,MAAM,CAAc;gBAEC,IAAI,EAAE,MAAM;IAKzC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAItB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAInB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAInB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAGrB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import debug from 'debug';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
export class Logger {
|
|
4
|
+
constructor(name) {
|
|
5
|
+
this.name = name;
|
|
6
|
+
this.suffix = '';
|
|
7
|
+
this.suffix = process.env.LOG_ID ? process.env.LOG_ID + ':' : '';
|
|
8
|
+
this.log = debug('olane-os:' + this.suffix + name);
|
|
9
|
+
}
|
|
10
|
+
setNamespace(name) {
|
|
11
|
+
this.log = debug('olane-os:' + this.suffix + name);
|
|
12
|
+
}
|
|
13
|
+
verbose(...args) {
|
|
14
|
+
this.log(chalk.gray('[VERBOSE]'), ...args);
|
|
15
|
+
}
|
|
16
|
+
debug(...args) {
|
|
17
|
+
this.log(chalk.blue('[DEBUG]'), ...args);
|
|
18
|
+
}
|
|
19
|
+
info(...args) {
|
|
20
|
+
this.log(chalk.green('[INFO]'), ...args);
|
|
21
|
+
}
|
|
22
|
+
warn(...args) {
|
|
23
|
+
this.log(chalk.yellow('[WARN]'), ...args);
|
|
24
|
+
}
|
|
25
|
+
error(...args) {
|
|
26
|
+
this.log(chalk.red('[ERROR]'), ...args);
|
|
27
|
+
}
|
|
28
|
+
alert(...args) {
|
|
29
|
+
this.log(chalk.redBright('[ALERT]'), ...args);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.utils.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/utils/object.utils.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;WAIrB,YAAY,CACvB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAClD,OAAO,CAAC,GAAG,CAAC;CAkBhB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class ObjectUtils {
|
|
2
|
+
static isObject(obj) {
|
|
3
|
+
return obj !== null && typeof obj === 'object';
|
|
4
|
+
}
|
|
5
|
+
static async allKeyValues(obj, callback) {
|
|
6
|
+
if (!ObjectUtils.isObject(obj)) {
|
|
7
|
+
return obj;
|
|
8
|
+
}
|
|
9
|
+
for (const key in obj) {
|
|
10
|
+
let value = obj[key];
|
|
11
|
+
// iterate over the object if not a primitive
|
|
12
|
+
if (ObjectUtils.isObject(value)) {
|
|
13
|
+
value = await ObjectUtils.allKeyValues(value, callback);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
value = await callback(key, value);
|
|
17
|
+
}
|
|
18
|
+
// update the object
|
|
19
|
+
obj[key] = value;
|
|
20
|
+
}
|
|
21
|
+
return obj;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex.utils.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/utils/regex.utils.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IACrB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;CAajD"}
|