@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.
Files changed (448) hide show
  1. package/dist/o-core/src/connection/index.d.ts +8 -0
  2. package/dist/o-core/src/connection/index.d.ts.map +1 -0
  3. package/dist/o-core/src/connection/index.js +7 -0
  4. package/dist/o-core/src/connection/interfaces/connection-manager.config.d.ts +15 -0
  5. package/dist/o-core/src/connection/interfaces/connection-manager.config.d.ts.map +1 -0
  6. package/dist/o-core/src/connection/interfaces/connection-manager.config.js +1 -0
  7. package/dist/o-core/src/connection/interfaces/connection-send-params.interface.d.ts +9 -0
  8. package/dist/o-core/src/connection/interfaces/connection-send-params.interface.d.ts.map +1 -0
  9. package/dist/o-core/src/connection/interfaces/connection-send-params.interface.js +1 -0
  10. package/dist/o-core/src/connection/interfaces/connection.config.d.ts +20 -0
  11. package/dist/o-core/src/connection/interfaces/connection.config.d.ts.map +1 -0
  12. package/dist/o-core/src/connection/interfaces/connection.config.js +1 -0
  13. package/dist/o-core/src/connection/interfaces/index.d.ts +5 -0
  14. package/dist/o-core/src/connection/interfaces/index.d.ts.map +1 -0
  15. package/dist/o-core/src/connection/interfaces/index.js +4 -0
  16. package/dist/o-core/src/connection/interfaces/request-state.enum.d.ts +7 -0
  17. package/dist/o-core/src/connection/interfaces/request-state.enum.d.ts.map +1 -0
  18. package/dist/o-core/src/connection/interfaces/request-state.enum.js +7 -0
  19. package/dist/o-core/src/connection/o-connection-manager.d.ts +19 -0
  20. package/dist/o-core/src/connection/o-connection-manager.d.ts.map +1 -0
  21. package/dist/o-core/src/connection/o-connection-manager.js +27 -0
  22. package/dist/o-core/src/connection/o-connection.d.ts +26 -0
  23. package/dist/o-core/src/connection/o-connection.d.ts.map +1 -0
  24. package/dist/o-core/src/connection/o-connection.js +54 -0
  25. package/dist/o-core/src/connection/o-request.d.ts +23 -0
  26. package/dist/o-core/src/connection/o-request.d.ts.map +1 -0
  27. package/dist/o-core/src/connection/o-request.js +42 -0
  28. package/dist/o-core/src/connection/o-response.d.ts +13 -0
  29. package/dist/o-core/src/connection/o-response.d.ts.map +1 -0
  30. package/dist/o-core/src/connection/o-response.js +25 -0
  31. package/dist/o-core/src/core/defaults/config.d.ts +4 -0
  32. package/dist/o-core/src/core/defaults/config.d.ts.map +1 -0
  33. package/dist/o-core/src/core/defaults/config.js +5 -0
  34. package/dist/o-core/src/core/defaults/index.d.ts +2 -0
  35. package/dist/o-core/src/core/defaults/index.d.ts.map +1 -0
  36. package/dist/o-core/src/core/defaults/index.js +1 -0
  37. package/dist/o-core/src/core/graceful-shutdown.d.ts +25 -0
  38. package/dist/o-core/src/core/graceful-shutdown.d.ts.map +1 -0
  39. package/dist/o-core/src/core/graceful-shutdown.js +84 -0
  40. package/dist/o-core/src/core/index.d.ts +9 -0
  41. package/dist/o-core/src/core/index.d.ts.map +1 -0
  42. package/dist/o-core/src/core/index.js +8 -0
  43. package/dist/o-core/src/core/interfaces/index.d.ts +7 -0
  44. package/dist/o-core/src/core/interfaces/index.d.ts.map +1 -0
  45. package/dist/o-core/src/core/interfaces/index.js +6 -0
  46. package/dist/o-core/src/core/interfaces/node-type.enum.d.ts +10 -0
  47. package/dist/o-core/src/core/interfaces/node-type.enum.d.ts.map +1 -0
  48. package/dist/o-core/src/core/interfaces/node-type.enum.js +10 -0
  49. package/dist/o-core/src/core/interfaces/o-core.config.d.ts +23 -0
  50. package/dist/o-core/src/core/interfaces/o-core.config.d.ts.map +1 -0
  51. package/dist/o-core/src/core/interfaces/o-core.config.js +1 -0
  52. package/dist/o-core/src/core/interfaces/o-core.interface.d.ts +18 -0
  53. package/dist/o-core/src/core/interfaces/o-core.interface.d.ts.map +1 -0
  54. package/dist/o-core/src/core/interfaces/o-core.interface.js +1 -0
  55. package/dist/o-core/src/core/interfaces/state.enum.d.ts +8 -0
  56. package/dist/o-core/src/core/interfaces/state.enum.d.ts.map +1 -0
  57. package/dist/o-core/src/core/interfaces/state.enum.js +8 -0
  58. package/dist/o-core/src/core/interfaces/use-options.interface.d.ts +11 -0
  59. package/dist/o-core/src/core/interfaces/use-options.interface.d.ts.map +1 -0
  60. package/dist/o-core/src/core/interfaces/use-options.interface.js +1 -0
  61. package/dist/o-core/src/core/interfaces/use-stream-options.interface.d.ts +4 -0
  62. package/dist/o-core/src/core/interfaces/use-stream-options.interface.d.ts.map +1 -0
  63. package/dist/o-core/src/core/interfaces/use-stream-options.interface.js +1 -0
  64. package/dist/o-core/src/core/lib/events/connection-events.d.ts +31 -0
  65. package/dist/o-core/src/core/lib/events/connection-events.d.ts.map +1 -0
  66. package/dist/o-core/src/core/lib/events/connection-events.js +46 -0
  67. package/dist/o-core/src/core/lib/events/hierarchy-events.d.ts +69 -0
  68. package/dist/o-core/src/core/lib/events/hierarchy-events.d.ts.map +1 -0
  69. package/dist/o-core/src/core/lib/events/hierarchy-events.js +100 -0
  70. package/dist/o-core/src/core/lib/events/index.d.ts +6 -0
  71. package/dist/o-core/src/core/lib/events/index.d.ts.map +1 -0
  72. package/dist/o-core/src/core/lib/events/index.js +5 -0
  73. package/dist/o-core/src/core/lib/events/node-events.d.ts +40 -0
  74. package/dist/o-core/src/core/lib/events/node-events.d.ts.map +1 -0
  75. package/dist/o-core/src/core/lib/events/node-events.js +58 -0
  76. package/dist/o-core/src/core/lib/events/o-notification-event.d.ts +26 -0
  77. package/dist/o-core/src/core/lib/events/o-notification-event.d.ts.map +1 -0
  78. package/dist/o-core/src/core/lib/events/o-notification-event.js +30 -0
  79. package/dist/o-core/src/core/lib/index.d.ts +8 -0
  80. package/dist/o-core/src/core/lib/index.d.ts.map +1 -0
  81. package/dist/o-core/src/core/lib/index.js +7 -0
  82. package/dist/o-core/src/core/lib/interfaces/notification-types.d.ts +49 -0
  83. package/dist/o-core/src/core/lib/interfaces/notification-types.d.ts.map +1 -0
  84. package/dist/o-core/src/core/lib/interfaces/notification-types.js +1 -0
  85. package/dist/o-core/src/core/lib/o-hierarchy.manager.d.ts +24 -0
  86. package/dist/o-core/src/core/lib/o-hierarchy.manager.d.ts.map +1 -0
  87. package/dist/o-core/src/core/lib/o-hierarchy.manager.js +58 -0
  88. package/dist/o-core/src/core/lib/o-metrics.d.ts +5 -0
  89. package/dist/o-core/src/core/lib/o-metrics.d.ts.map +1 -0
  90. package/dist/o-core/src/core/lib/o-metrics.js +6 -0
  91. package/dist/o-core/src/core/lib/o-notification.manager.d.ts +58 -0
  92. package/dist/o-core/src/core/lib/o-notification.manager.d.ts.map +1 -0
  93. package/dist/o-core/src/core/lib/o-notification.manager.js +159 -0
  94. package/dist/o-core/src/core/lib/o-request.manager.d.ts +10 -0
  95. package/dist/o-core/src/core/lib/o-request.manager.d.ts.map +1 -0
  96. package/dist/o-core/src/core/lib/o-request.manager.js +18 -0
  97. package/dist/o-core/src/core/lib/utils/event-filters.d.ts +38 -0
  98. package/dist/o-core/src/core/lib/utils/event-filters.d.ts.map +1 -0
  99. package/dist/o-core/src/core/lib/utils/event-filters.js +159 -0
  100. package/dist/o-core/src/core/o-core.d.ts +240 -0
  101. package/dist/o-core/src/core/o-core.d.ts.map +1 -0
  102. package/dist/o-core/src/core/o-core.js +463 -0
  103. package/dist/o-core/src/core/o-dependency.d.ts +9 -0
  104. package/dist/o-core/src/core/o-dependency.d.ts.map +1 -0
  105. package/dist/o-core/src/core/o-dependency.js +15 -0
  106. package/dist/o-core/src/core/o-object.d.ts +7 -0
  107. package/dist/o-core/src/core/o-object.d.ts.map +1 -0
  108. package/dist/o-core/src/core/o-object.js +10 -0
  109. package/dist/o-core/src/core/o-parameter.d.ts +12 -0
  110. package/dist/o-core/src/core/o-parameter.d.ts.map +1 -0
  111. package/dist/o-core/src/core/o-parameter.js +21 -0
  112. package/dist/o-core/src/error/enums/codes.error.d.ts +20 -0
  113. package/dist/o-core/src/error/enums/codes.error.d.ts.map +1 -0
  114. package/dist/o-core/src/error/enums/codes.error.js +20 -0
  115. package/dist/o-core/src/error/index.d.ts +3 -0
  116. package/dist/o-core/src/error/index.d.ts.map +1 -0
  117. package/dist/o-core/src/error/index.js +2 -0
  118. package/dist/o-core/src/error/interfaces/o-error.interface.d.ts +6 -0
  119. package/dist/o-core/src/error/interfaces/o-error.interface.d.ts.map +1 -0
  120. package/dist/o-core/src/error/interfaces/o-error.interface.js +1 -0
  121. package/dist/o-core/src/error/o-error.d.ts +15 -0
  122. package/dist/o-core/src/error/o-error.d.ts.map +1 -0
  123. package/dist/o-core/src/error/o-error.js +27 -0
  124. package/dist/o-core/src/index.d.ts +8 -0
  125. package/dist/o-core/src/index.d.ts.map +1 -0
  126. package/dist/o-core/src/index.js +7 -0
  127. package/dist/o-core/src/response/index.d.ts +2 -0
  128. package/dist/o-core/src/response/index.d.ts.map +1 -0
  129. package/dist/o-core/src/response/index.js +1 -0
  130. package/dist/o-core/src/response/response-builder.d.ts +140 -0
  131. package/dist/o-core/src/response/response-builder.d.ts.map +1 -0
  132. package/dist/o-core/src/response/response-builder.js +190 -0
  133. package/dist/o-core/src/router/enums/restricted-addresses.enum.d.ts +8 -0
  134. package/dist/o-core/src/router/enums/restricted-addresses.enum.d.ts.map +1 -0
  135. package/dist/o-core/src/router/enums/restricted-addresses.enum.js +13 -0
  136. package/dist/o-core/src/router/index.d.ts +11 -0
  137. package/dist/o-core/src/router/index.d.ts.map +1 -0
  138. package/dist/o-core/src/router/index.js +10 -0
  139. package/dist/o-core/src/router/interfaces/resolve.request.d.ts +10 -0
  140. package/dist/o-core/src/router/interfaces/resolve.request.d.ts.map +1 -0
  141. package/dist/o-core/src/router/interfaces/resolve.request.js +1 -0
  142. package/dist/o-core/src/router/interfaces/route.response.d.ts +8 -0
  143. package/dist/o-core/src/router/interfaces/route.response.d.ts.map +1 -0
  144. package/dist/o-core/src/router/interfaces/route.response.js +1 -0
  145. package/dist/o-core/src/router/o-address-resolver.d.ts +14 -0
  146. package/dist/o-core/src/router/o-address-resolver.d.ts.map +1 -0
  147. package/dist/o-core/src/router/o-address-resolver.js +19 -0
  148. package/dist/o-core/src/router/o-address.d.ts +33 -0
  149. package/dist/o-core/src/router/o-address.d.ts.map +1 -0
  150. package/dist/o-core/src/router/o-address.js +114 -0
  151. package/dist/o-core/src/router/o-request-preparation.d.ts +37 -0
  152. package/dist/o-core/src/router/o-request-preparation.d.ts.map +1 -0
  153. package/dist/o-core/src/router/o-request-preparation.js +75 -0
  154. package/dist/o-core/src/router/o-request.router.d.ts +18 -0
  155. package/dist/o-core/src/router/o-request.router.d.ts.map +1 -0
  156. package/dist/o-core/src/router/o-request.router.js +12 -0
  157. package/dist/o-core/src/router/o-resolver-chain.d.ts +32 -0
  158. package/dist/o-core/src/router/o-resolver-chain.d.ts.map +1 -0
  159. package/dist/o-core/src/router/o-resolver-chain.js +62 -0
  160. package/dist/o-core/src/router/o-router.d.ts +19 -0
  161. package/dist/o-core/src/router/o-router.d.ts.map +1 -0
  162. package/dist/o-core/src/router/o-router.js +14 -0
  163. package/dist/o-core/src/router/o-routing-policy.d.ts +36 -0
  164. package/dist/o-core/src/router/o-routing-policy.d.ts.map +1 -0
  165. package/dist/o-core/src/router/o-routing-policy.js +19 -0
  166. package/dist/o-core/src/streaming/index.d.ts +11 -0
  167. package/dist/o-core/src/streaming/index.d.ts.map +1 -0
  168. package/dist/o-core/src/streaming/index.js +14 -0
  169. package/dist/o-core/src/streaming/protocol-builder.d.ts +62 -0
  170. package/dist/o-core/src/streaming/protocol-builder.d.ts.map +1 -0
  171. package/dist/o-core/src/streaming/protocol-builder.js +93 -0
  172. package/dist/o-core/src/streaming/stream-config.d.ts +36 -0
  173. package/dist/o-core/src/streaming/stream-config.d.ts.map +1 -0
  174. package/dist/o-core/src/streaming/stream-config.js +19 -0
  175. package/dist/o-core/src/streaming/stream-handler.base.d.ts +85 -0
  176. package/dist/o-core/src/streaming/stream-handler.base.d.ts.map +1 -0
  177. package/dist/o-core/src/streaming/stream-handler.base.js +112 -0
  178. package/dist/o-core/src/streaming/stream-transport.interface.d.ts +61 -0
  179. package/dist/o-core/src/streaming/stream-transport.interface.d.ts.map +1 -0
  180. package/dist/o-core/src/streaming/stream-transport.interface.js +10 -0
  181. package/dist/o-core/src/transports/custom.transport.d.ts +6 -0
  182. package/dist/o-core/src/transports/custom.transport.d.ts.map +1 -0
  183. package/dist/o-core/src/transports/custom.transport.js +10 -0
  184. package/dist/o-core/src/transports/index.d.ts +4 -0
  185. package/dist/o-core/src/transports/index.d.ts.map +1 -0
  186. package/dist/o-core/src/transports/index.js +3 -0
  187. package/dist/o-core/src/transports/interfaces/transport-type.enum.d.ts +5 -0
  188. package/dist/o-core/src/transports/interfaces/transport-type.enum.d.ts.map +1 -0
  189. package/dist/o-core/src/transports/interfaces/transport-type.enum.js +5 -0
  190. package/dist/o-core/src/transports/o-transport.d.ts +10 -0
  191. package/dist/o-core/src/transports/o-transport.d.ts.map +1 -0
  192. package/dist/o-core/src/transports/o-transport.js +16 -0
  193. package/dist/o-core/src/utils/core.utils.d.ts +34 -0
  194. package/dist/o-core/src/utils/core.utils.d.ts.map +1 -0
  195. package/dist/o-core/src/utils/core.utils.js +123 -0
  196. package/dist/o-core/src/utils/index.d.ts +6 -0
  197. package/dist/o-core/src/utils/index.d.ts.map +1 -0
  198. package/dist/o-core/src/utils/index.js +5 -0
  199. package/dist/o-core/src/utils/logger.d.ts +14 -0
  200. package/dist/o-core/src/utils/logger.d.ts.map +1 -0
  201. package/dist/o-core/src/utils/logger.js +31 -0
  202. package/dist/o-core/src/utils/object.utils.d.ts +5 -0
  203. package/dist/o-core/src/utils/object.utils.d.ts.map +1 -0
  204. package/dist/o-core/src/utils/object.utils.js +23 -0
  205. package/dist/o-core/src/utils/regex.utils.d.ts +4 -0
  206. package/dist/o-core/src/utils/regex.utils.d.ts.map +1 -0
  207. package/dist/o-core/src/utils/regex.utils.js +13 -0
  208. package/dist/o-core/src/utils/remote.utils.d.ts +4 -0
  209. package/dist/o-core/src/utils/remote.utils.d.ts.map +1 -0
  210. package/dist/o-core/src/utils/remote.utils.js +5 -0
  211. package/dist/o-core/src/utils/streaming.utils.d.ts +22 -0
  212. package/dist/o-core/src/utils/streaming.utils.d.ts.map +1 -0
  213. package/dist/o-core/src/utils/streaming.utils.js +45 -0
  214. package/dist/o-node/src/connection/index.d.ts +5 -0
  215. package/dist/o-node/src/connection/index.d.ts.map +1 -0
  216. package/dist/o-node/src/connection/index.js +4 -0
  217. package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.d.ts +6 -0
  218. package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.d.ts.map +1 -0
  219. package/dist/o-node/src/connection/interfaces/o-node-connection-manager.config.js +1 -0
  220. package/dist/o-node/src/connection/interfaces/o-node-connection.config.d.ts +6 -0
  221. package/dist/o-node/src/connection/interfaces/o-node-connection.config.d.ts.map +1 -0
  222. package/dist/o-node/src/connection/interfaces/o-node-connection.config.js +1 -0
  223. package/dist/o-node/src/connection/o-node-connection.d.ts +13 -0
  224. package/dist/o-node/src/connection/o-node-connection.d.ts.map +1 -0
  225. package/dist/o-node/src/connection/o-node-connection.js +93 -0
  226. package/dist/o-node/src/connection/o-node-connection.manager.d.ts +19 -0
  227. package/dist/o-node/src/connection/o-node-connection.manager.d.ts.map +1 -0
  228. package/dist/o-node/src/connection/o-node-connection.manager.js +65 -0
  229. package/dist/o-node/src/connection/o-stream.request.d.ts +11 -0
  230. package/dist/o-node/src/connection/o-stream.request.d.ts.map +1 -0
  231. package/dist/o-node/src/connection/o-stream.request.js +7 -0
  232. package/dist/o-node/src/index.d.ts +12 -0
  233. package/dist/o-node/src/index.d.ts.map +1 -0
  234. package/dist/o-node/src/index.js +11 -0
  235. package/dist/o-node/src/interfaces/i-heartbeatable-node.d.ts +49 -0
  236. package/dist/o-node/src/interfaces/i-heartbeatable-node.d.ts.map +1 -0
  237. package/dist/o-node/src/interfaces/i-heartbeatable-node.js +1 -0
  238. package/dist/o-node/src/interfaces/i-reconnectable-node.d.ts +46 -0
  239. package/dist/o-node/src/interfaces/i-reconnectable-node.d.ts.map +1 -0
  240. package/dist/o-node/src/interfaces/i-reconnectable-node.js +1 -0
  241. package/dist/o-node/src/interfaces/o-node.config.d.ts +49 -0
  242. package/dist/o-node/src/interfaces/o-node.config.d.ts.map +1 -0
  243. package/dist/o-node/src/interfaces/o-node.config.js +1 -0
  244. package/dist/o-node/src/interfaces/o-node.tool-config.d.ts +4 -0
  245. package/dist/o-node/src/interfaces/o-node.tool-config.d.ts.map +1 -0
  246. package/dist/o-node/src/interfaces/o-node.tool-config.js +1 -0
  247. package/dist/o-node/src/lib/network-activity.lib.d.ts +1 -0
  248. package/dist/o-node/src/lib/network-activity.lib.d.ts.map +1 -0
  249. package/dist/o-node/src/lib/network-activity.lib.js +34 -0
  250. package/dist/o-node/src/managers/o-connection-heartbeat.manager.d.ts +63 -0
  251. package/dist/o-node/src/managers/o-connection-heartbeat.manager.d.ts.map +1 -0
  252. package/dist/o-node/src/managers/o-connection-heartbeat.manager.js +227 -0
  253. package/dist/o-node/src/managers/o-reconnection.manager.d.ts +51 -0
  254. package/dist/o-node/src/managers/o-reconnection.manager.d.ts.map +1 -0
  255. package/dist/o-node/src/managers/o-reconnection.manager.js +266 -0
  256. package/dist/o-node/src/nodes/client.node.d.ts +7 -0
  257. package/dist/o-node/src/nodes/client.node.d.ts.map +1 -0
  258. package/dist/o-node/src/nodes/client.node.js +16 -0
  259. package/dist/o-node/src/nodes/index.d.ts +4 -0
  260. package/dist/o-node/src/nodes/index.d.ts.map +1 -0
  261. package/dist/o-node/src/nodes/index.js +3 -0
  262. package/dist/o-node/src/nodes/server.node.d.ts +7 -0
  263. package/dist/o-node/src/nodes/server.node.d.ts.map +1 -0
  264. package/dist/o-node/src/nodes/server.node.js +20 -0
  265. package/dist/o-node/src/nodes/websocket.node.d.ts +7 -0
  266. package/dist/o-node/src/nodes/websocket.node.d.ts.map +1 -0
  267. package/dist/o-node/src/nodes/websocket.node.js +18 -0
  268. package/dist/o-node/src/o-node.d.ts +72 -0
  269. package/dist/o-node/src/o-node.d.ts.map +1 -0
  270. package/dist/o-node/src/o-node.hierarchy-manager.d.ts +15 -0
  271. package/dist/o-node/src/o-node.hierarchy-manager.d.ts.map +1 -0
  272. package/dist/o-node/src/o-node.hierarchy-manager.js +15 -0
  273. package/dist/o-node/src/o-node.js +493 -0
  274. package/dist/o-node/src/o-node.notification-manager.d.ts +52 -0
  275. package/dist/o-node/src/o-node.notification-manager.d.ts.map +1 -0
  276. package/dist/o-node/src/o-node.notification-manager.js +188 -0
  277. package/dist/o-node/src/o-node.tool.d.ts +18 -0
  278. package/dist/o-node/src/o-node.tool.d.ts.map +1 -0
  279. package/dist/o-node/src/o-node.tool.js +83 -0
  280. package/dist/o-node/src/router/index.d.ts +6 -0
  281. package/dist/o-node/src/router/index.d.ts.map +1 -0
  282. package/dist/o-node/src/router/index.js +5 -0
  283. package/dist/o-node/src/router/interfaces/o-node-router.config.d.ts +3 -0
  284. package/dist/o-node/src/router/interfaces/o-node-router.config.d.ts.map +1 -0
  285. package/dist/o-node/src/router/interfaces/o-node-router.config.js +1 -0
  286. package/dist/o-node/src/router/interfaces/o-node-router.response.d.ts +8 -0
  287. package/dist/o-node/src/router/interfaces/o-node-router.response.d.ts.map +1 -0
  288. package/dist/o-node/src/router/interfaces/o-node-router.response.js +1 -0
  289. package/dist/o-node/src/router/o-node.address.d.ts +18 -0
  290. package/dist/o-node/src/router/o-node.address.d.ts.map +1 -0
  291. package/dist/o-node/src/router/o-node.address.js +29 -0
  292. package/dist/o-node/src/router/o-node.router.d.ts +46 -0
  293. package/dist/o-node/src/router/o-node.router.d.ts.map +1 -0
  294. package/dist/o-node/src/router/o-node.router.js +181 -0
  295. package/dist/o-node/src/router/o-node.routing-policy.d.ts +30 -0
  296. package/dist/o-node/src/router/o-node.routing-policy.d.ts.map +1 -0
  297. package/dist/o-node/src/router/o-node.routing-policy.js +57 -0
  298. package/dist/o-node/src/router/o-node.transport.d.ts +11 -0
  299. package/dist/o-node/src/router/o-node.transport.d.ts.map +1 -0
  300. package/dist/o-node/src/router/o-node.transport.js +18 -0
  301. package/dist/o-node/src/router/resolvers/index.d.ts +4 -0
  302. package/dist/o-node/src/router/resolvers/index.d.ts.map +1 -0
  303. package/dist/o-node/src/router/resolvers/index.js +3 -0
  304. package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.d.ts +8 -0
  305. package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.d.ts.map +1 -0
  306. package/dist/o-node/src/router/resolvers/o-node.leader-resolver-fallback.js +35 -0
  307. package/dist/{src/router/resolvers/o-node.child-resolver.d.ts → o-node/src/router/resolvers/o-node.resolver.d.ts} +2 -2
  308. package/dist/o-node/src/router/resolvers/o-node.resolver.d.ts.map +1 -0
  309. package/dist/o-node/src/router/resolvers/o-node.resolver.js +45 -0
  310. package/dist/o-node/src/router/resolvers/o-node.search-resolver.d.ts +170 -0
  311. package/dist/o-node/src/router/resolvers/o-node.search-resolver.d.ts.map +1 -0
  312. package/dist/o-node/src/router/resolvers/o-node.search-resolver.js +285 -0
  313. package/dist/o-node/src/router/route.request.d.ts +14 -0
  314. package/dist/o-node/src/router/route.request.d.ts.map +1 -0
  315. package/dist/o-node/src/router/route.request.js +1 -0
  316. package/dist/o-node/src/streaming/index.d.ts +10 -0
  317. package/dist/o-node/src/streaming/index.d.ts.map +1 -0
  318. package/dist/o-node/src/streaming/index.js +12 -0
  319. package/dist/o-node/src/streaming/libp2p-stream-transport.d.ts +50 -0
  320. package/dist/o-node/src/streaming/libp2p-stream-transport.d.ts.map +1 -0
  321. package/dist/o-node/src/streaming/libp2p-stream-transport.js +137 -0
  322. package/dist/o-node/src/streaming/node-stream-handler.d.ts +65 -0
  323. package/dist/o-node/src/streaming/node-stream-handler.d.ts.map +1 -0
  324. package/dist/o-node/src/streaming/node-stream-handler.js +101 -0
  325. package/dist/o-node/src/ui/index.d.ts +3 -0
  326. package/dist/o-node/src/ui/index.d.ts.map +1 -0
  327. package/dist/o-node/src/ui/index.js +2 -0
  328. package/dist/o-node/src/ui/types.d.ts +110 -0
  329. package/dist/o-node/src/ui/types.d.ts.map +1 -0
  330. package/dist/o-node/src/ui/types.js +17 -0
  331. package/dist/o-node/src/ui/ui-graph.manager.d.ts +70 -0
  332. package/dist/o-node/src/ui/ui-graph.manager.d.ts.map +1 -0
  333. package/dist/o-node/src/ui/ui-graph.manager.js +274 -0
  334. package/dist/o-node/src/utils/circuit-breaker.d.ts +107 -0
  335. package/dist/o-node/src/utils/circuit-breaker.d.ts.map +1 -0
  336. package/dist/o-node/src/utils/circuit-breaker.js +175 -0
  337. package/dist/o-node/src/utils/index.d.ts +3 -0
  338. package/dist/o-node/src/utils/index.d.ts.map +1 -0
  339. package/dist/o-node/src/utils/index.js +2 -0
  340. package/dist/o-node/src/utils/leader-request-wrapper.d.ts +66 -0
  341. package/dist/o-node/src/utils/leader-request-wrapper.d.ts.map +1 -0
  342. package/dist/o-node/src/utils/leader-request-wrapper.js +160 -0
  343. package/dist/o-node/src/utils/network.utils.d.ts +20 -0
  344. package/dist/o-node/src/utils/network.utils.d.ts.map +1 -0
  345. package/dist/o-node/src/utils/network.utils.js +74 -0
  346. package/dist/o-node/src/utils/stream.utils.d.ts +6 -0
  347. package/dist/o-node/src/utils/stream.utils.d.ts.map +1 -0
  348. package/dist/o-node/src/utils/stream.utils.js +31 -0
  349. package/dist/o-node/test/circuit-breaker.test.d.ts +2 -0
  350. package/dist/o-node/test/circuit-breaker.test.d.ts.map +1 -0
  351. package/dist/o-node/test/circuit-breaker.test.js +262 -0
  352. package/dist/o-node/test/helpers/test-node.tool.d.ts +15 -0
  353. package/dist/o-node/test/helpers/test-node.tool.d.ts.map +1 -0
  354. package/dist/o-node/test/helpers/test-node.tool.js +27 -0
  355. package/dist/o-node/test/leader-request-wrapper.test.d.ts +1 -0
  356. package/dist/o-node/test/leader-request-wrapper.test.d.ts.map +1 -0
  357. package/dist/o-node/test/leader-request-wrapper.test.js +246 -0
  358. package/dist/o-node/test/o-node.spec.d.ts +2 -0
  359. package/dist/o-node/test/o-node.spec.d.ts.map +1 -0
  360. package/dist/o-node/test/o-node.spec.js +20 -0
  361. package/dist/o-node/test/search-resolver.spec.d.ts +2 -0
  362. package/dist/o-node/test/search-resolver.spec.d.ts.map +1 -0
  363. package/dist/o-node/test/search-resolver.spec.js +693 -0
  364. package/dist/src/connection/o-node-connection.d.ts +2 -2
  365. package/dist/src/connection/o-node-connection.d.ts.map +1 -1
  366. package/dist/src/connection/o-node-connection.js +54 -19
  367. package/dist/src/connection/o-node-connection.manager.d.ts +16 -4
  368. package/dist/src/connection/o-node-connection.manager.d.ts.map +1 -1
  369. package/dist/src/connection/o-node-connection.manager.js +73 -44
  370. package/dist/src/connection/o-stream.request.d.ts +11 -0
  371. package/dist/src/connection/o-stream.request.d.ts.map +1 -0
  372. package/dist/src/connection/o-stream.request.js +7 -0
  373. package/dist/src/index.d.ts +2 -1
  374. package/dist/src/index.d.ts.map +1 -1
  375. package/dist/src/index.js +2 -1
  376. package/dist/src/interfaces/i-heartbeatable-node.d.ts +49 -0
  377. package/dist/src/interfaces/i-heartbeatable-node.d.ts.map +1 -0
  378. package/dist/src/interfaces/i-heartbeatable-node.js +1 -0
  379. package/dist/src/interfaces/i-reconnectable-node.d.ts +46 -0
  380. package/dist/src/interfaces/i-reconnectable-node.d.ts.map +1 -0
  381. package/dist/src/interfaces/i-reconnectable-node.js +1 -0
  382. package/dist/src/interfaces/o-node.config.d.ts +42 -0
  383. package/dist/src/interfaces/o-node.config.d.ts.map +1 -1
  384. package/dist/src/managers/o-connection-heartbeat.manager.d.ts +63 -0
  385. package/dist/src/managers/o-connection-heartbeat.manager.d.ts.map +1 -0
  386. package/dist/src/managers/o-connection-heartbeat.manager.js +227 -0
  387. package/dist/src/managers/o-reconnection.manager.d.ts +51 -0
  388. package/dist/src/managers/o-reconnection.manager.d.ts.map +1 -0
  389. package/dist/src/managers/o-reconnection.manager.js +266 -0
  390. package/dist/src/o-node.d.ts +30 -2
  391. package/dist/src/o-node.d.ts.map +1 -1
  392. package/dist/src/o-node.js +244 -33
  393. package/dist/src/o-node.notification-manager.d.ts +52 -0
  394. package/dist/src/o-node.notification-manager.d.ts.map +1 -0
  395. package/dist/src/o-node.notification-manager.js +188 -0
  396. package/dist/src/o-node.tool.d.ts.map +1 -1
  397. package/dist/src/o-node.tool.js +33 -24
  398. package/dist/src/router/o-node.router.d.ts +1 -0
  399. package/dist/src/router/o-node.router.d.ts.map +1 -1
  400. package/dist/src/router/o-node.router.js +61 -5
  401. package/dist/src/router/o-node.routing-policy.d.ts.map +1 -1
  402. package/dist/src/router/o-node.routing-policy.js +7 -2
  403. package/dist/src/router/resolvers/o-node.resolver.d.ts.map +1 -1
  404. package/dist/src/router/resolvers/o-node.resolver.js +5 -1
  405. package/dist/src/router/resolvers/o-node.search-resolver.d.ts.map +1 -1
  406. package/dist/src/router/resolvers/o-node.search-resolver.js +34 -9
  407. package/dist/src/streaming/index.d.ts +10 -0
  408. package/dist/src/streaming/index.d.ts.map +1 -0
  409. package/dist/src/streaming/index.js +12 -0
  410. package/dist/src/streaming/libp2p-stream-transport.d.ts +50 -0
  411. package/dist/src/streaming/libp2p-stream-transport.d.ts.map +1 -0
  412. package/dist/src/streaming/libp2p-stream-transport.js +137 -0
  413. package/dist/src/streaming/node-stream-handler.d.ts +65 -0
  414. package/dist/src/streaming/node-stream-handler.d.ts.map +1 -0
  415. package/dist/src/streaming/node-stream-handler.js +101 -0
  416. package/dist/src/streaming/o-node-streaming-client.d.ts +33 -0
  417. package/dist/src/streaming/o-node-streaming-client.d.ts.map +1 -0
  418. package/dist/src/streaming/o-node-streaming-client.js +130 -0
  419. package/dist/src/utils/circuit-breaker.d.ts +107 -0
  420. package/dist/src/utils/circuit-breaker.d.ts.map +1 -0
  421. package/dist/src/utils/circuit-breaker.js +175 -0
  422. package/dist/src/utils/circuit-breaker.test.d.ts +2 -0
  423. package/dist/src/utils/circuit-breaker.test.d.ts.map +1 -0
  424. package/dist/src/utils/circuit-breaker.test.js +262 -0
  425. package/dist/src/utils/index.d.ts +3 -0
  426. package/dist/src/utils/index.d.ts.map +1 -0
  427. package/dist/src/utils/index.js +2 -0
  428. package/dist/src/utils/leader-request-wrapper.d.ts +66 -0
  429. package/dist/src/utils/leader-request-wrapper.d.ts.map +1 -0
  430. package/dist/src/utils/leader-request-wrapper.js +160 -0
  431. package/dist/src/utils/leader-request-wrapper.test.d.ts +1 -0
  432. package/dist/src/utils/leader-request-wrapper.test.d.ts.map +1 -0
  433. package/dist/src/utils/leader-request-wrapper.test.js +246 -0
  434. package/dist/src/utils/stream.utils.d.ts +6 -0
  435. package/dist/src/utils/stream.utils.d.ts.map +1 -0
  436. package/dist/src/utils/stream.utils.js +31 -0
  437. package/dist/test/circuit-breaker.test.d.ts +2 -0
  438. package/dist/test/circuit-breaker.test.d.ts.map +1 -0
  439. package/dist/test/circuit-breaker.test.js +262 -0
  440. package/dist/test/helpers/test-node.tool.d.ts +15 -0
  441. package/dist/test/helpers/test-node.tool.d.ts.map +1 -0
  442. package/dist/test/helpers/test-node.tool.js +27 -0
  443. package/dist/test/leader-request-wrapper.test.d.ts +1 -0
  444. package/dist/test/leader-request-wrapper.test.d.ts.map +1 -0
  445. package/dist/test/leader-request-wrapper.test.js +246 -0
  446. package/package.json +6 -6
  447. package/dist/src/router/resolvers/o-node.child-resolver.d.ts.map +0 -1
  448. package/dist/src/router/resolvers/o-node.child-resolver.js +0 -58
@@ -0,0 +1,37 @@
1
+ import { oObject } from '../core/o-object.js';
2
+ import { oAddress } from './o-address.js';
3
+ import { oRouterRequest } from './o-request.router.js';
4
+ /**
5
+ * Handles request transformation and preparation for routing.
6
+ * Manages payload wrapping/unwrapping, parameter merging, and request envelope handling.
7
+ */
8
+ export declare class oRequestPreparation extends oObject {
9
+ /**
10
+ * Prepares a routing request by applying overrides and updating addresses.
11
+ * @param originalRequest The original router request
12
+ * @param requestOverride Optional request override from resolvers
13
+ * @param targetAddress The final target address
14
+ * @returns The prepared routing request
15
+ */
16
+ prepareRequest(originalRequest: oRouterRequest, requestOverride: oRouterRequest | undefined, targetAddress: oAddress): oRouterRequest;
17
+ /**
18
+ * Applies handshake-specific transformations to a request.
19
+ * @param request The routing request to modify
20
+ * @param requestOverride The request override from resolvers
21
+ */
22
+ applyHandshakeTransform(request: oRouterRequest, requestOverride: oRouterRequest | undefined): oRouterRequest;
23
+ /**
24
+ * Merges parameters from original payload and resolver overrides.
25
+ * @param request The routing request to modify
26
+ * @param originalPayload The original request payload
27
+ */
28
+ applyParameterMerge(request: oRouterRequest, originalPayload: any): oRouterRequest;
29
+ /**
30
+ * Checks if the request is a handshake request.
31
+ * @param method The method to check
32
+ * @param handshakeMethod The handshake method constant
33
+ * @returns True if this is a handshake request
34
+ */
35
+ isHandshakeRequest(method: string, handshakeMethod: string): boolean;
36
+ }
37
+ //# sourceMappingURL=o-request-preparation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-request-preparation.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/router/o-request-preparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC9C;;;;;;OAMG;IACH,cAAc,CACZ,eAAe,EAAE,cAAc,EAC/B,eAAe,EAAE,cAAc,GAAG,SAAS,EAC3C,aAAa,EAAE,QAAQ,GACtB,cAAc;IAkBjB;;;;OAIG;IACH,uBAAuB,CACrB,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,cAAc,GAAG,SAAS,GAC1C,cAAc;IAmBjB;;;;OAIG;IACH,mBAAmB,CACjB,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,GAAG,GACnB,cAAc;IAUjB;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO;CAGrE"}
@@ -0,0 +1,75 @@
1
+ import { oObject } from '../core/o-object.js';
2
+ import { oRouterRequest } from './o-request.router.js';
3
+ import { JSONRPC_VERSION, oProtocolMethods } from '@olane/o-protocol';
4
+ /**
5
+ * Handles request transformation and preparation for routing.
6
+ * Manages payload wrapping/unwrapping, parameter merging, and request envelope handling.
7
+ */
8
+ export class oRequestPreparation extends oObject {
9
+ /**
10
+ * Prepares a routing request by applying overrides and updating addresses.
11
+ * @param originalRequest The original router request
12
+ * @param requestOverride Optional request override from resolvers
13
+ * @param targetAddress The final target address
14
+ * @returns The prepared routing request
15
+ */
16
+ prepareRequest(originalRequest, requestOverride, targetAddress) {
17
+ const finalRequest = requestOverride || originalRequest;
18
+ const req = new oRouterRequest({
19
+ method: finalRequest.method,
20
+ params: finalRequest.params,
21
+ id: finalRequest.id,
22
+ jsonrpc: JSONRPC_VERSION,
23
+ stream: originalRequest.stream,
24
+ });
25
+ // Update target address in request
26
+ if (finalRequest && targetAddress) {
27
+ finalRequest.params.address = targetAddress.toString();
28
+ }
29
+ return req;
30
+ }
31
+ /**
32
+ * Applies handshake-specific transformations to a request.
33
+ * @param request The routing request to modify
34
+ * @param requestOverride The request override from resolvers
35
+ */
36
+ applyHandshakeTransform(request, requestOverride) {
37
+ const params = request.params.payload.params;
38
+ const { method } = request.params.payload;
39
+ try {
40
+ if (requestOverride) {
41
+ // This is likely a method resolver, so we need to override the method
42
+ // Let's specify the method in the request params to optimize on context window
43
+ params.tool = request.params?.payload?.method;
44
+ }
45
+ }
46
+ catch (e) {
47
+ this.logger.error('Error assigning tool to handshake: ', e);
48
+ }
49
+ // Update the method to be the handshake
50
+ request.params.payload.method = oProtocolMethods.HANDSHAKE;
51
+ return request;
52
+ }
53
+ /**
54
+ * Merges parameters from original payload and resolver overrides.
55
+ * @param request The routing request to modify
56
+ * @param originalPayload The original request payload
57
+ */
58
+ applyParameterMerge(request, originalPayload) {
59
+ const params = request.params.payload.params;
60
+ request.params.payload.params = {
61
+ ...originalPayload.params, // initial params
62
+ ...params, // overloaded params
63
+ };
64
+ return request;
65
+ }
66
+ /**
67
+ * Checks if the request is a handshake request.
68
+ * @param method The method to check
69
+ * @param handshakeMethod The handshake method constant
70
+ * @returns True if this is a handshake request
71
+ */
72
+ isHandshakeRequest(method, handshakeMethod) {
73
+ return method === handshakeMethod;
74
+ }
75
+ }
@@ -0,0 +1,18 @@
1
+ import { oProtocolMethods, RequestId, oRouterRequestInterface, RequestParams, JSONRPC_VERSION } from '@olane/o-protocol';
2
+ import { Stream } from '@olane/o-config';
3
+ import { oRequest } from '../connection/o-request.js';
4
+ export declare class oRouterRequest extends oRequest implements oRouterRequestInterface {
5
+ jsonrpc: typeof JSONRPC_VERSION;
6
+ method: oProtocolMethods.ROUTE;
7
+ stream?: Stream | undefined;
8
+ params: RequestParams & {
9
+ address: string;
10
+ payload: {
11
+ [key: string]: unknown;
12
+ };
13
+ };
14
+ constructor(config: oRouterRequestInterface & {
15
+ id: RequestId;
16
+ });
17
+ }
18
+ //# sourceMappingURL=o-request.router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-request.router.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/router/o-request.router.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,uBAAuB,EACvB,aAAa,EACb,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,qBAAa,cACX,SAAQ,QACR,YAAW,uBAAuB;IAElC,OAAO,EAAE,OAAO,eAAe,CAAC;IAChC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,aAAa,GAAG;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,CAAC;gBACU,MAAM,EAAE,uBAAuB,GAAG;QAAE,EAAE,EAAE,SAAS,CAAA;KAAE;CAQhE"}
@@ -0,0 +1,12 @@
1
+ import { JSONRPC_VERSION, } from '@olane/o-protocol';
2
+ import { oRequest } from '../connection/o-request.js';
3
+ export class oRouterRequest extends oRequest {
4
+ constructor(config) {
5
+ super(config);
6
+ this.jsonrpc = JSONRPC_VERSION;
7
+ this.method = config.method;
8
+ this.params = config.params;
9
+ this.stream = config.stream;
10
+ this.id = config.id;
11
+ }
12
+ }
@@ -0,0 +1,32 @@
1
+ import { oAddress } from './o-address.js';
2
+ import { oAddressResolver } from './o-address-resolver.js';
3
+ import { oObject } from '../core/o-object.js';
4
+ import { RouteResponse } from './interfaces/route.response.js';
5
+ import { ResolveRequest } from './interfaces/resolve.request.js';
6
+ /**
7
+ * Manages a chain of address resolvers using the Chain of Responsibility pattern.
8
+ * Sequentially executes registered resolvers to transform addresses and routing requests.
9
+ */
10
+ export declare class oResolverChain extends oObject {
11
+ private readonly resolvers;
12
+ /**
13
+ * Registers a resolver in the chain.
14
+ * @param resolver The resolver to add
15
+ * @param isPriority If true, adds to the front of the chain; otherwise appends to the end
16
+ */
17
+ addResolver(resolver: oAddressResolver, isPriority?: boolean): void;
18
+ /**
19
+ * Checks if any resolver in the chain supports the given address.
20
+ * @param address The address to check
21
+ * @returns True if at least one resolver supports this address
22
+ */
23
+ supportsAddress(address: oAddress): boolean;
24
+ /**
25
+ * Executes the resolver chain to transform an address and request.
26
+ * Each resolver in sequence can modify the nextHopAddress, targetAddress, and request.
27
+ * @param request The resolve request containing address, node, and optional request override
28
+ * @returns The final route response after all resolvers have executed
29
+ */
30
+ resolve(request: ResolveRequest): Promise<RouteResponse>;
31
+ }
32
+ //# sourceMappingURL=o-resolver-chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-resolver-chain.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/router/o-resolver-chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE;;;GAGG;AACH,qBAAa,cAAe,SAAQ,OAAO;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,GAAE,OAAe;IAQnE;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAQ3C;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA+B/D"}
@@ -0,0 +1,62 @@
1
+ import { oAddress } from './o-address.js';
2
+ import { oObject } from '../core/o-object.js';
3
+ /**
4
+ * Manages a chain of address resolvers using the Chain of Responsibility pattern.
5
+ * Sequentially executes registered resolvers to transform addresses and routing requests.
6
+ */
7
+ export class oResolverChain extends oObject {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.resolvers = [];
11
+ }
12
+ /**
13
+ * Registers a resolver in the chain.
14
+ * @param resolver The resolver to add
15
+ * @param isPriority If true, adds to the front of the chain; otherwise appends to the end
16
+ */
17
+ addResolver(resolver, isPriority = false) {
18
+ if (isPriority) {
19
+ this.resolvers.unshift(resolver);
20
+ }
21
+ else {
22
+ this.resolvers.push(resolver);
23
+ }
24
+ }
25
+ /**
26
+ * Checks if any resolver in the chain supports the given address.
27
+ * @param address The address to check
28
+ * @returns True if at least one resolver supports this address
29
+ */
30
+ supportsAddress(address) {
31
+ return this.resolvers.some((r) => address.transports.some((t) => {
32
+ return r.transportTypes.some((r) => r === t.type);
33
+ }));
34
+ }
35
+ /**
36
+ * Executes the resolver chain to transform an address and request.
37
+ * Each resolver in sequence can modify the nextHopAddress, targetAddress, and request.
38
+ * @param request The resolve request containing address, node, and optional request override
39
+ * @returns The final route response after all resolvers have executed
40
+ */
41
+ async resolve(request) {
42
+ let resolvedAddress = new oAddress(request.address.toString(), request.address.transports);
43
+ let targetAddress = resolvedAddress;
44
+ let requestOverride = request.request;
45
+ for (const resolver of this.resolvers) {
46
+ const { nextHopAddress, targetAddress: resolverTargetAddress, requestOverride: resolverRequestOverride, } = await resolver.resolve({
47
+ address: resolvedAddress,
48
+ targetAddress: targetAddress,
49
+ node: request.node,
50
+ request: requestOverride,
51
+ });
52
+ requestOverride = resolverRequestOverride || requestOverride;
53
+ targetAddress = resolverTargetAddress || targetAddress;
54
+ resolvedAddress = nextHopAddress;
55
+ }
56
+ return {
57
+ nextHopAddress: resolvedAddress,
58
+ targetAddress: targetAddress,
59
+ requestOverride: requestOverride,
60
+ };
61
+ }
62
+ }
@@ -0,0 +1,19 @@
1
+ import { oAddress } from './o-address.js';
2
+ import { oObject } from '../core/o-object.js';
3
+ import { oResolverChain } from './o-resolver-chain.js';
4
+ import { oAddressResolver } from './o-address-resolver.js';
5
+ import { oRequest } from '../connection/o-request.js';
6
+ import type { oCore } from '../core/o-core.js';
7
+ import { RouteResponse } from './interfaces/route.response.js';
8
+ import { oRouterRequest } from './o-request.router.js';
9
+ export declare abstract class oRouter extends oObject {
10
+ addressResolution: oResolverChain;
11
+ constructor();
12
+ abstract translate(addressWithLeaderTransports: oAddress, node: oCore): Promise<RouteResponse>;
13
+ abstract isInternal(addressWithLeaderTransports: oAddress, node: oCore): boolean;
14
+ abstract route(request: oRouterRequest, node: oCore): Promise<RouteResponse>;
15
+ protected abstract forward(address: oAddress, request: oRequest | oRouterRequest, node: oCore): Promise<any>;
16
+ addResolver(resolver: oAddressResolver, isPriority?: boolean): void;
17
+ supportsAddress(address: oAddress): boolean;
18
+ }
19
+ //# sourceMappingURL=o-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-router.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/router/o-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,8BAAsB,OAAQ,SAAQ,OAAO;IACpC,iBAAiB,EAAG,cAAc,CAAC;;IAQ1C,QAAQ,CAAC,SAAS,CAChB,2BAA2B,EAAE,QAAQ,EACrC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,aAAa,CAAC;IAGzB,QAAQ,CAAC,UAAU,CACjB,2BAA2B,EAAE,QAAQ,EACrC,IAAI,EAAE,KAAK,GACV,OAAO;IAKV,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC;IAG5E,SAAS,CAAC,QAAQ,CAAC,OAAO,CACxB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,QAAQ,GAAG,cAAc,EAClC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,GAAG,CAAC;IAEf,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAI1E,eAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;CAG5C"}
@@ -0,0 +1,14 @@
1
+ import { oObject } from '../core/o-object.js';
2
+ import { oResolverChain } from './o-resolver-chain.js';
3
+ export class oRouter extends oObject {
4
+ constructor() {
5
+ super();
6
+ this.addressResolution = new oResolverChain();
7
+ }
8
+ addResolver(resolver, isPriority = false) {
9
+ this.addressResolution.addResolver(resolver, isPriority);
10
+ }
11
+ supportsAddress(address) {
12
+ return this.addressResolution.supportsAddress(address);
13
+ }
14
+ }
@@ -0,0 +1,36 @@
1
+ import { oAddress } from './o-address.js';
2
+ import { oObject } from '../core/o-object.js';
3
+ import type { oCore } from '../core/o-core.js';
4
+ import { RouteResponse } from './interfaces/route.response.js';
5
+ /**
6
+ * Provides routing policy decisions based on network topology and address characteristics.
7
+ * Determines whether addresses are internal/external, when to route to leaders, etc.
8
+ *
9
+ * This layer separates network topology awareness from address resolution logic,
10
+ * making routing decisions testable without network calls.
11
+ */
12
+ export declare abstract class oRoutingPolicy extends oObject {
13
+ /**
14
+ * Determines if an address is internal to the current network/hierarchy.
15
+ * @param address The address to check
16
+ * @param node The current node context
17
+ * @returns True if the address is internal, false if external
18
+ */
19
+ abstract isInternalAddress(address: oAddress, node: oCore): boolean;
20
+ /**
21
+ * Determines if the given address points to the node itself.
22
+ * @param address The address to check
23
+ * @param node The current node context
24
+ * @returns True if this is a self-reference
25
+ */
26
+ isSelfAddress(address: oAddress, node: oCore): boolean;
27
+ /**
28
+ * Checks if an address should be routed to a leader node.
29
+ * Returns a RouteResponse if leader routing is required, null otherwise.
30
+ * @param address The address to evaluate
31
+ * @param node The current node context
32
+ * @returns RouteResponse for leader routing, or null if not applicable
33
+ */
34
+ abstract getExternalRoutingStrategy(address: oAddress, node: oCore): RouteResponse | null;
35
+ }
36
+ //# sourceMappingURL=o-routing-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-routing-policy.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/router/o-routing-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D;;;;;;GAMG;AACH,8BAAsB,cAAe,SAAQ,OAAO;IAClD;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO;IAEnE;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO;IAItD;;;;;;OAMG;IACH,QAAQ,CAAC,0BAA0B,CACjC,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,GACV,aAAa,GAAG,IAAI;CACxB"}
@@ -0,0 +1,19 @@
1
+ import { oObject } from '../core/o-object.js';
2
+ /**
3
+ * Provides routing policy decisions based on network topology and address characteristics.
4
+ * Determines whether addresses are internal/external, when to route to leaders, etc.
5
+ *
6
+ * This layer separates network topology awareness from address resolution logic,
7
+ * making routing decisions testable without network calls.
8
+ */
9
+ export class oRoutingPolicy extends oObject {
10
+ /**
11
+ * Determines if the given address points to the node itself.
12
+ * @param address The address to check
13
+ * @param node The current node context
14
+ * @returns True if this is a self-reference
15
+ */
16
+ isSelfAddress(address, node) {
17
+ return node.address.equals(address);
18
+ }
19
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Streaming functionality for o-core
3
+ *
4
+ * This module provides transport-agnostic abstractions for streaming operations
5
+ * that can be used by o-node, o-client, o-browser, and other implementations.
6
+ */
7
+ export { IStreamTransport, StreamStatus, StreamTransportConfig, } from './stream-transport.interface.js';
8
+ export { StreamConfig, DEFAULT_STREAM_CONFIG, mergeStreamConfig, } from './stream-config.js';
9
+ export { ProtocolBuilder, ParsedStreamChunk, } from './protocol-builder.js';
10
+ export { StreamHandlerBase, StreamHandlerState, StreamHandlerOptions, } from './stream-handler.base.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/streaming/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Streaming functionality for o-core
3
+ *
4
+ * This module provides transport-agnostic abstractions for streaming operations
5
+ * that can be used by o-node, o-client, o-browser, and other implementations.
6
+ */
7
+ // Stream transport interface and types
8
+ export { StreamStatus, } from './stream-transport.interface.js';
9
+ // Stream configuration
10
+ export { DEFAULT_STREAM_CONFIG, mergeStreamConfig, } from './stream-config.js';
11
+ // Protocol builder for JSON-RPC streaming messages
12
+ export { ProtocolBuilder, } from './protocol-builder.js';
13
+ // Base stream handler class
14
+ export { StreamHandlerBase, StreamHandlerState, } from './stream-handler.base.js';
@@ -0,0 +1,62 @@
1
+ import { JSONRPCStreamChunk, RequestId, ConnectionId, oRequest } from '@olane/o-protocol';
2
+ /**
3
+ * Parsed streaming chunk data
4
+ */
5
+ export interface ParsedStreamChunk {
6
+ data: unknown;
7
+ sequence: number;
8
+ isLast: boolean;
9
+ connectionId: ConnectionId;
10
+ requestMethod: string;
11
+ }
12
+ /**
13
+ * Builder class for constructing and parsing JSON-RPC streaming protocol messages.
14
+ * Provides type-safe message construction and parsing for streaming responses.
15
+ */
16
+ export declare class ProtocolBuilder {
17
+ /**
18
+ * Build a JSON-RPC streaming chunk message
19
+ * @param data - The data payload for this chunk
20
+ * @param sequence - The sequence number of this chunk (starts at 1)
21
+ * @param isLast - Whether this is the final chunk in the stream
22
+ * @param requestId - The JSON-RPC request ID this chunk is responding to
23
+ * @param connectionId - The connection ID from the original request
24
+ * @param requestMethod - The method name from the original request
25
+ * @returns A complete JSON-RPC streaming chunk message
26
+ */
27
+ static buildStreamChunk(data: unknown, sequence: number, isLast: boolean, requestId: RequestId, connectionId: ConnectionId, requestMethod: string): JSONRPCStreamChunk;
28
+ /**
29
+ * Build a streaming chunk from an oRequest object
30
+ * @param data - The data payload for this chunk
31
+ * @param sequence - The sequence number of this chunk
32
+ * @param isLast - Whether this is the final chunk
33
+ * @param request - The original oRequest
34
+ * @returns A complete JSON-RPC streaming chunk message
35
+ */
36
+ static buildStreamChunkFromRequest(data: unknown, sequence: number, isLast: boolean, request: oRequest): JSONRPCStreamChunk;
37
+ /**
38
+ * Parse a JSON-RPC response to extract streaming chunk data
39
+ * @param message - The parsed JSON-RPC message
40
+ * @returns Parsed chunk data if this is a streaming response, null otherwise
41
+ */
42
+ static parseStreamChunk(message: any): ParsedStreamChunk | null;
43
+ /**
44
+ * Check if a message is a streaming response
45
+ * @param message - The message to check
46
+ * @returns true if the message is a streaming response
47
+ */
48
+ static isStreamingResponse(message: any): boolean;
49
+ /**
50
+ * Encode a message to UTF-8 bytes for transmission
51
+ * @param message - The message to encode
52
+ * @returns UTF-8 encoded bytes
53
+ */
54
+ static encodeMessage(message: JSONRPCStreamChunk): Uint8Array;
55
+ /**
56
+ * Decode UTF-8 bytes to a JSON message
57
+ * @param data - The UTF-8 encoded data
58
+ * @returns Parsed JSON message
59
+ */
60
+ static decodeMessage(data: Uint8Array): any;
61
+ }
62
+ //# sourceMappingURL=protocol-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-builder.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/streaming/protocol-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,SAAS,EACT,YAAY,EAEZ,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;;OASG;WACW,gBAAgB,CAC5B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,GACpB,kBAAkB;IAiBrB;;;;;;;OAOG;WACW,2BAA2B,CACvC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,QAAQ,GAChB,kBAAkB;IAWrB;;;;OAIG;WACW,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,iBAAiB,GAAG,IAAI;IAgBtE;;;;OAIG;WACW,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAaxD;;;;OAIG;WACW,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;IAIpE;;;;OAIG;WACW,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG;CAInD"}
@@ -0,0 +1,93 @@
1
+ import { JSONRPC_VERSION, } from '@olane/o-protocol';
2
+ /**
3
+ * Builder class for constructing and parsing JSON-RPC streaming protocol messages.
4
+ * Provides type-safe message construction and parsing for streaming responses.
5
+ */
6
+ export class ProtocolBuilder {
7
+ /**
8
+ * Build a JSON-RPC streaming chunk message
9
+ * @param data - The data payload for this chunk
10
+ * @param sequence - The sequence number of this chunk (starts at 1)
11
+ * @param isLast - Whether this is the final chunk in the stream
12
+ * @param requestId - The JSON-RPC request ID this chunk is responding to
13
+ * @param connectionId - The connection ID from the original request
14
+ * @param requestMethod - The method name from the original request
15
+ * @returns A complete JSON-RPC streaming chunk message
16
+ */
17
+ static buildStreamChunk(data, sequence, isLast, requestId, connectionId, requestMethod) {
18
+ const result = {
19
+ _connectionId: connectionId,
20
+ _requestMethod: requestMethod,
21
+ _streaming: true,
22
+ _sequence: sequence,
23
+ _isLast: isLast,
24
+ _data: data,
25
+ };
26
+ return {
27
+ jsonrpc: JSONRPC_VERSION,
28
+ id: requestId,
29
+ result,
30
+ };
31
+ }
32
+ /**
33
+ * Build a streaming chunk from an oRequest object
34
+ * @param data - The data payload for this chunk
35
+ * @param sequence - The sequence number of this chunk
36
+ * @param isLast - Whether this is the final chunk
37
+ * @param request - The original oRequest
38
+ * @returns A complete JSON-RPC streaming chunk message
39
+ */
40
+ static buildStreamChunkFromRequest(data, sequence, isLast, request) {
41
+ return this.buildStreamChunk(data, sequence, isLast, request.id, request.params._connectionId, request.method);
42
+ }
43
+ /**
44
+ * Parse a JSON-RPC response to extract streaming chunk data
45
+ * @param message - The parsed JSON-RPC message
46
+ * @returns Parsed chunk data if this is a streaming response, null otherwise
47
+ */
48
+ static parseStreamChunk(message) {
49
+ if (!this.isStreamingResponse(message)) {
50
+ return null;
51
+ }
52
+ const result = message.result;
53
+ return {
54
+ data: result._data,
55
+ sequence: result._sequence,
56
+ isLast: result._isLast,
57
+ connectionId: result._connectionId,
58
+ requestMethod: result._requestMethod,
59
+ };
60
+ }
61
+ /**
62
+ * Check if a message is a streaming response
63
+ * @param message - The message to check
64
+ * @returns true if the message is a streaming response
65
+ */
66
+ static isStreamingResponse(message) {
67
+ return (message &&
68
+ typeof message === 'object' &&
69
+ message.result &&
70
+ typeof message.result === 'object' &&
71
+ message.result._streaming === true &&
72
+ typeof message.result._sequence === 'number' &&
73
+ typeof message.result._isLast === 'boolean' &&
74
+ '_data' in message.result);
75
+ }
76
+ /**
77
+ * Encode a message to UTF-8 bytes for transmission
78
+ * @param message - The message to encode
79
+ * @returns UTF-8 encoded bytes
80
+ */
81
+ static encodeMessage(message) {
82
+ return new TextEncoder().encode(JSON.stringify(message));
83
+ }
84
+ /**
85
+ * Decode UTF-8 bytes to a JSON message
86
+ * @param data - The UTF-8 encoded data
87
+ * @returns Parsed JSON message
88
+ */
89
+ static decodeMessage(data) {
90
+ const text = new TextDecoder().decode(data);
91
+ return JSON.parse(text);
92
+ }
93
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Configuration options for streaming operations
3
+ */
4
+ export interface StreamConfig {
5
+ /**
6
+ * Timeout in milliseconds for waiting to read the first chunk
7
+ * @default 120000 (2 minutes)
8
+ */
9
+ readTimeoutMs: number;
10
+ /**
11
+ * Timeout in milliseconds for drain operations when handling backpressure
12
+ * @default 30000 (30 seconds)
13
+ */
14
+ drainTimeoutMs: number;
15
+ /**
16
+ * Maximum size of a single chunk in bytes (optional)
17
+ * If not set, chunks can be any size
18
+ */
19
+ maxChunkSize?: number;
20
+ /**
21
+ * Enable metrics tracking for streaming operations
22
+ * @default true
23
+ */
24
+ enableMetrics?: boolean;
25
+ }
26
+ /**
27
+ * Default configuration for streaming operations
28
+ */
29
+ export declare const DEFAULT_STREAM_CONFIG: StreamConfig;
30
+ /**
31
+ * Merge user config with defaults
32
+ * @param userConfig - Partial user configuration
33
+ * @returns Complete configuration with defaults applied
34
+ */
35
+ export declare function mergeStreamConfig(userConfig?: Partial<StreamConfig>): StreamConfig;
36
+ //# sourceMappingURL=stream-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-config.d.ts","sourceRoot":"","sources":["../../../../../o-core/src/streaming/stream-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GACjC,YAAY,CAKd"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Default configuration for streaming operations
3
+ */
4
+ export const DEFAULT_STREAM_CONFIG = {
5
+ readTimeoutMs: 120000, // 2 minutes
6
+ drainTimeoutMs: 30000, // 30 seconds
7
+ enableMetrics: true,
8
+ };
9
+ /**
10
+ * Merge user config with defaults
11
+ * @param userConfig - Partial user configuration
12
+ * @returns Complete configuration with defaults applied
13
+ */
14
+ export function mergeStreamConfig(userConfig) {
15
+ return {
16
+ ...DEFAULT_STREAM_CONFIG,
17
+ ...userConfig,
18
+ };
19
+ }