@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,181 @@
1
+ import { CoreUtils, oAddress, oError, oErrorCodes, oRequest, ResponseBuilder, } from '@olane/o-core';
2
+ import { oToolRouter } from '@olane/o-tool';
3
+ import { oNodeConnection } from '../connection/o-node-connection.js';
4
+ import { oNodeRoutingPolicy } from './o-node.routing-policy.js';
5
+ import { oStreamRequest } from '../connection/o-stream.request.js';
6
+ export class oNodeRouter extends oToolRouter {
7
+ constructor() {
8
+ super();
9
+ this.routingPolicy = new oNodeRoutingPolicy();
10
+ }
11
+ /**
12
+ * Forwards a request to the specified address via libp2p transport.
13
+ * Handles self-routing (local execution) and destination detection.
14
+ *
15
+ * @param address The next hop address to forward to
16
+ * @param request The router request to forward
17
+ * @param node The current node context
18
+ * @returns The response from the forwarded request
19
+ */
20
+ async forward(address, request, node) {
21
+ if (!request.stream) {
22
+ throw new oError(oErrorCodes.INVALID_REQUEST, 'Stream is required');
23
+ }
24
+ let nextHopRequest = new oRequest({
25
+ method: request.method,
26
+ params: request.params,
27
+ id: request.id,
28
+ });
29
+ if (request.stream) {
30
+ nextHopRequest.stream = request.stream;
31
+ }
32
+ // Handle self-routing: execute locally instead of dialing
33
+ if (this.routingPolicy.isSelfAddress(address, node)) {
34
+ return this.executeSelfRouting(request, node);
35
+ }
36
+ // Check if we've reached the final destination
37
+ const isDestination = this.isDestinationAddress(address, request);
38
+ if (isDestination) {
39
+ nextHopRequest = this.unwrapDestinationRequest(request);
40
+ }
41
+ // Dial and transmit to remote node
42
+ return this.dialAndTransmit(address, nextHopRequest, node);
43
+ }
44
+ /**
45
+ * Executes a request locally when routing to self.
46
+ * Now uses ResponseBuilder for consistency with useSelf() behavior.
47
+ */
48
+ async executeSelfRouting(request, node) {
49
+ const { payload } = request.params;
50
+ const params = payload.params;
51
+ const localRequest = new oRequest({
52
+ method: payload.method,
53
+ params: {
54
+ ...params,
55
+ _connectionId: request.params._connectionId,
56
+ _requestMethod: payload.method,
57
+ },
58
+ id: request.id,
59
+ });
60
+ // Create ResponseBuilder with metrics tracking
61
+ const responseBuilder = ResponseBuilder.create().withMetrics(node.metrics);
62
+ // Handle streaming requests
63
+ const isStream = request.params._isStreaming;
64
+ if (isStream && request.stream) {
65
+ // For streaming, we need to handle the stream chunks
66
+ try {
67
+ const result = await node.execute(localRequest, request.stream);
68
+ const response = await responseBuilder.build(localRequest, result, null, {
69
+ isStream: true,
70
+ });
71
+ // Return unwrapped data for consistency with dialAndTransmit
72
+ return response.result.data;
73
+ }
74
+ catch (error) {
75
+ const errorResponse = await responseBuilder.buildError(localRequest, error, {
76
+ isStream: true,
77
+ });
78
+ // For errors, throw to match remote behavior
79
+ throw responseBuilder.normalizeError(error);
80
+ }
81
+ }
82
+ // Handle non-streaming requests with error handling
83
+ try {
84
+ const result = await node.execute(localRequest);
85
+ const response = await responseBuilder.build(localRequest, result, null);
86
+ // Return unwrapped data to match dialAndTransmit behavior
87
+ return response.result.data;
88
+ }
89
+ catch (error) {
90
+ // Build error response for metrics tracking
91
+ await responseBuilder.buildError(localRequest, error);
92
+ // Then throw the normalized error
93
+ throw responseBuilder.normalizeError(error);
94
+ }
95
+ }
96
+ /**
97
+ * Checks if the next hop is the final destination address.
98
+ */
99
+ isDestinationAddress(address, request) {
100
+ return address
101
+ ?.toStaticAddress()
102
+ .equals(new oAddress(request?.params?.address).toStaticAddress());
103
+ }
104
+ /**
105
+ * Unwraps the routing envelope when we've reached the destination.
106
+ */
107
+ unwrapDestinationRequest(request) {
108
+ const { payload } = request.params;
109
+ const params = payload.params;
110
+ return new oStreamRequest({
111
+ method: payload.method,
112
+ params: { ...params },
113
+ id: request.id,
114
+ stream: request.stream,
115
+ });
116
+ }
117
+ /**
118
+ * Dials a remote node and transmits the request via libp2p.
119
+ */
120
+ async dialAndTransmit(address, request, node) {
121
+ try {
122
+ const isStream = request.params._isStreaming ||
123
+ request.params.payload?.params?._isStreaming;
124
+ const connection = await node.p2pNode.dial(address.libp2pTransports.map((t) => t.toMultiaddr()));
125
+ const nodeConnection = new oNodeConnection({
126
+ p2pConnection: connection,
127
+ nextHopAddress: address,
128
+ address: node.address,
129
+ callerAddress: node.address,
130
+ isStream: isStream,
131
+ });
132
+ if (isStream) {
133
+ const routeRequest = request;
134
+ if (!routeRequest.stream) {
135
+ throw new oError(oErrorCodes.INVALID_REQUEST, 'Stream is required');
136
+ }
137
+ nodeConnection.onChunk(async (response) => {
138
+ CoreUtils.sendStreamResponse(response, routeRequest.stream);
139
+ });
140
+ // allow this to continue as we will tell the transmitter to stream the response and we will intercept via the above listener
141
+ }
142
+ const response = await nodeConnection.transmit(request);
143
+ return response.result.data;
144
+ }
145
+ catch (error) {
146
+ if (error?.name === 'UnsupportedProtocolError') {
147
+ throw new oError(oErrorCodes.NOT_FOUND, 'Address not found');
148
+ }
149
+ throw error;
150
+ }
151
+ }
152
+ /**
153
+ * Translates an address to determine the next hop and target addresses.
154
+ * First checks routing policy for external routing, then applies resolver chain.
155
+ */
156
+ async translate(address, node) {
157
+ // Check if external routing is needed
158
+ const externalRoute = this.routingPolicy.getExternalRoutingStrategy(address, node);
159
+ if (externalRoute) {
160
+ return externalRoute;
161
+ }
162
+ // Apply resolver chain for internal routing
163
+ const { nextHopAddress, targetAddress, requestOverride } = await this.addressResolution.resolve({
164
+ address,
165
+ node,
166
+ targetAddress: address,
167
+ });
168
+ return {
169
+ nextHopAddress,
170
+ targetAddress: targetAddress,
171
+ requestOverride,
172
+ };
173
+ }
174
+ /**
175
+ * Determines if an address is internal to this node's hierarchy.
176
+ * Delegates to the routing policy for the decision.
177
+ */
178
+ isInternal(addressWithTransports, node) {
179
+ return this.routingPolicy.isInternalAddress(addressWithTransports, node);
180
+ }
181
+ }
@@ -0,0 +1,30 @@
1
+ import { oAddress, oRoutingPolicy, RouteResponse } from '@olane/o-core';
2
+ import type { oNode } from '../o-node.js';
3
+ /**
4
+ * Routing policy implementation for oNode that handles internal/external routing decisions
5
+ * and leader-based routing strategies.
6
+ */
7
+ export declare class oNodeRoutingPolicy extends oRoutingPolicy {
8
+ /**
9
+ * Determines if an address is internal to the current node's hierarchy.
10
+ * An address is considered internal if:
11
+ * 1. It doesn't have leader references, OR
12
+ * 2. Its leader references match our known leaders
13
+ *
14
+ * @param address The address to check
15
+ * @param node The current node context
16
+ * @returns True if the address is internal to this hierarchy
17
+ */
18
+ isInternalAddress(address: oAddress, node: oNode): boolean;
19
+ /**
20
+ * Determines the routing strategy for external addresses.
21
+ * External addresses are routed to the leader of the external OS using
22
+ * the address's libp2p transports.
23
+ *
24
+ * @param address The address to evaluate
25
+ * @param node The current node context
26
+ * @returns RouteResponse if external routing is needed, null if internal
27
+ */
28
+ getExternalRoutingStrategy(address: oAddress, node: oNode): RouteResponse | null;
29
+ }
30
+ //# sourceMappingURL=o-node.routing-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-node.routing-policy.d.ts","sourceRoot":"","sources":["../../../../src/router/o-node.routing-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAG1C;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD;;;;;;;;;OASG;IACH,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO;IAuB1D;;;;;;;;OAQG;IACH,0BAA0B,CACxB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,GACV,aAAa,GAAG,IAAI;CAmBxB"}
@@ -0,0 +1,57 @@
1
+ import { oAddress, oRoutingPolicy } from '@olane/o-core';
2
+ import { oNodeAddress } from './o-node.address.js';
3
+ /**
4
+ * Routing policy implementation for oNode that handles internal/external routing decisions
5
+ * and leader-based routing strategies.
6
+ */
7
+ export class oNodeRoutingPolicy extends oRoutingPolicy {
8
+ /**
9
+ * Determines if an address is internal to the current node's hierarchy.
10
+ * An address is considered internal if:
11
+ * 1. It doesn't have leader references, OR
12
+ * 2. Its leader references match our known leaders
13
+ *
14
+ * @param address The address to check
15
+ * @param node The current node context
16
+ * @returns True if the address is internal to this hierarchy
17
+ */
18
+ isInternalAddress(address, node) {
19
+ const nodeAddress = address;
20
+ // if we are trying to connect to a parent, it's internal
21
+ if (node.hierarchyManager.parents.some((p) => p.equals(address))) {
22
+ return true;
23
+ }
24
+ if (nodeAddress.paths.indexOf(oAddress.leader().paths) !== -1 && // if the address has a leader
25
+ nodeAddress.libp2pTransports?.length > 0) {
26
+ // transports are provided, let's see if they match our known leaders
27
+ const isLeaderRef = nodeAddress.toString() === oAddress.leader().toString();
28
+ const isOurLeaderRef = node.address.equals(nodeAddress) ||
29
+ node.hierarchyManager.leaders.some((l) => l.equals(nodeAddress));
30
+ return isLeaderRef || isOurLeaderRef;
31
+ }
32
+ return true;
33
+ }
34
+ /**
35
+ * Determines the routing strategy for external addresses.
36
+ * External addresses are routed to the leader of the external OS using
37
+ * the address's libp2p transports.
38
+ *
39
+ * @param address The address to evaluate
40
+ * @param node The current node context
41
+ * @returns RouteResponse if external routing is needed, null if internal
42
+ */
43
+ getExternalRoutingStrategy(address, node) {
44
+ const nodeAddress = address;
45
+ const isInternal = this.isInternalAddress(address, node);
46
+ if (!isInternal) {
47
+ // external address, so we need to route
48
+ this.logger.debug('Address is external, routing...', nodeAddress);
49
+ // route to leader of external OS
50
+ return {
51
+ nextHopAddress: new oNodeAddress(oAddress.leader().toString(), nodeAddress.libp2pTransports),
52
+ targetAddress: nodeAddress,
53
+ };
54
+ }
55
+ return null;
56
+ }
57
+ }
@@ -0,0 +1,11 @@
1
+ import { Multiaddr } from '@olane/o-config';
2
+ import { oTransport, TransportType } from '@olane/o-core';
3
+ export declare class oNodeTransport extends oTransport {
4
+ readonly type: TransportType;
5
+ value: Multiaddr | string;
6
+ constructor(value: Multiaddr | string);
7
+ toMultiaddr(): Multiaddr;
8
+ toString(): string;
9
+ toPeerId(): string;
10
+ }
11
+ //# sourceMappingURL=o-node.transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-node.transport.d.ts","sourceRoot":"","sources":["../../../../src/router/o-node.transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE1D,qBAAa,cAAe,SAAQ,UAAU;IAC5C,SAAgB,IAAI,EAAE,aAAa,CAAwB;IACpD,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;gBAErB,KAAK,EAAE,SAAS,GAAG,MAAM;IAKrC,WAAW,IAAI,SAAS;IAIxB,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;CAGnB"}
@@ -0,0 +1,18 @@
1
+ import { multiaddr } from '@olane/o-config';
2
+ import { oTransport, TransportType } from '@olane/o-core';
3
+ export class oNodeTransport extends oTransport {
4
+ constructor(value) {
5
+ super(value);
6
+ this.type = TransportType.LIBP2P;
7
+ this.value = value;
8
+ }
9
+ toMultiaddr() {
10
+ return multiaddr(this.toString());
11
+ }
12
+ toString() {
13
+ return this.value.toString();
14
+ }
15
+ toPeerId() {
16
+ return this.value.toString().split('/p2p/')[1];
17
+ }
18
+ }
@@ -0,0 +1,4 @@
1
+ export * from './o-node.search-resolver.js';
2
+ export * from './o-node.resolver.js';
3
+ export * from './o-node.leader-resolver-fallback.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/router/resolvers/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './o-node.search-resolver.js';
2
+ export * from './o-node.resolver.js';
3
+ export * from './o-node.leader-resolver-fallback.js';
@@ -0,0 +1,8 @@
1
+ import { oAddress, oAddressResolver, oTransport, ResolveRequest, RouteResponse } from '@olane/o-core';
2
+ export declare class oLeaderResolverFallback extends oAddressResolver {
3
+ protected readonly address: oAddress;
4
+ constructor(address: oAddress);
5
+ get customTransports(): oTransport[];
6
+ resolve(request: ResolveRequest): Promise<RouteResponse>;
7
+ }
8
+ //# sourceMappingURL=o-node.leader-resolver-fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-node.leader-resolver-fallback.d.ts","sourceRoot":"","sources":["../../../../../src/router/resolvers/o-node.leader-resolver-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAEhB,UAAU,EACV,cAAc,EAEd,aAAa,EAEd,MAAM,eAAe,CAAC;AAIvB,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ;gBAAjB,OAAO,EAAE,QAAQ;IAIhD,IAAI,gBAAgB,IAAI,UAAU,EAAE,CAEnC;IAEK,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA4B/D"}
@@ -0,0 +1,35 @@
1
+ import { oAddressResolver, oCustomTransport, } from '@olane/o-core';
2
+ export class oLeaderResolverFallback extends oAddressResolver {
3
+ constructor(address) {
4
+ super(address);
5
+ this.address = address;
6
+ }
7
+ get customTransports() {
8
+ return [new oCustomTransport('/fallback/leader')];
9
+ }
10
+ async resolve(request) {
11
+ const { address, node, request: resolveRequest, targetAddress } = request;
12
+ // check to see if something odd was attempted where the leader transports were applied to a different address
13
+ if (node.leader &&
14
+ address.transports.some((t) => node.leader?.transports.includes(t))) {
15
+ return {
16
+ nextHopAddress: node.leader,
17
+ targetAddress: targetAddress,
18
+ requestOverride: resolveRequest,
19
+ };
20
+ }
21
+ // if already has transports, return the address
22
+ if (address.transports.length > 0) {
23
+ return {
24
+ nextHopAddress: address,
25
+ targetAddress: targetAddress,
26
+ requestOverride: resolveRequest,
27
+ };
28
+ }
29
+ return {
30
+ nextHopAddress: node.leader,
31
+ targetAddress: targetAddress,
32
+ requestOverride: resolveRequest,
33
+ };
34
+ }
35
+ }
@@ -2,10 +2,10 @@ import { oAddressResolver, TransportType } from '@olane/o-core';
2
2
  import { oNodeAddress } from '../o-node.address.js';
3
3
  import { oNodeRouterResponse } from '../interfaces/o-node-router.response.js';
4
4
  import { ResolveRequest } from '@olane/o-core';
5
- export declare class oNodeChildResolver extends oAddressResolver {
5
+ export declare class oNodeResolver extends oAddressResolver {
6
6
  protected readonly address: oNodeAddress;
7
7
  constructor(address: oNodeAddress);
8
8
  get supportedTransports(): TransportType[];
9
9
  resolve(routeRequest: ResolveRequest): Promise<oNodeRouterResponse>;
10
10
  }
11
- //# sourceMappingURL=o-node.child-resolver.d.ts.map
11
+ //# sourceMappingURL=o-node.resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-node.resolver.d.ts","sourceRoot":"","sources":["../../../../../src/router/resolvers/o-node.resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,aAAa,EAId,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,qBAAa,aAAc,SAAQ,gBAAgB;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY;gBAArB,OAAO,EAAE,YAAY;IAIpD,IAAI,mBAAmB,IAAI,aAAa,EAAE,CAEzC;IAEK,OAAO,CAAC,YAAY,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA8C1E"}
@@ -0,0 +1,45 @@
1
+ import { oAddressResolver, oAddress, TransportType, oError, oErrorCodes, } from '@olane/o-core';
2
+ import { oNodeAddress } from '../o-node.address.js';
3
+ export class oNodeResolver extends oAddressResolver {
4
+ constructor(address) {
5
+ super(address);
6
+ this.address = address;
7
+ }
8
+ get supportedTransports() {
9
+ return [TransportType.LIBP2P];
10
+ }
11
+ async resolve(routeRequest) {
12
+ const { address, node, request, targetAddress } = routeRequest;
13
+ // get the next node & check for child address existence
14
+ const remainingPath = targetAddress.paths.replace(node.address.paths + '/', '');
15
+ // ensure this is going down in the hierarchy
16
+ if (remainingPath === targetAddress.paths && node.isLeader === false) {
17
+ return {
18
+ nextHopAddress: address,
19
+ targetAddress: targetAddress,
20
+ requestOverride: request,
21
+ };
22
+ }
23
+ // next term resolver
24
+ const parts = remainingPath.split('/');
25
+ const nextNode = new oNodeAddress(`o://${parts.shift()}`);
26
+ const childAddress = node?.hierarchyManager.getChild(nextNode);
27
+ // get the child address from hierarchy (which includes transports)
28
+ if (childAddress) {
29
+ return {
30
+ nextHopAddress: childAddress,
31
+ targetAddress: targetAddress,
32
+ requestOverride: request,
33
+ };
34
+ }
35
+ // no child address, and we have already been to the leader, fail
36
+ if (address.toString().indexOf(oAddress.leader().toString()) > -1) {
37
+ throw new oError(oErrorCodes.NOT_FOUND, targetAddress.toString() + ' node not found.');
38
+ }
39
+ return {
40
+ nextHopAddress: address,
41
+ targetAddress: targetAddress,
42
+ requestOverride: request,
43
+ };
44
+ }
45
+ }
@@ -0,0 +1,170 @@
1
+ import { oAddress, oAddressResolver, oCore, oTransport, ResolveRequest, RouteResponse } from '@olane/o-core';
2
+ import { oNodeTransport } from '../o-node.transport.js';
3
+ /**
4
+ * Address resolver that searches a registry to find transports for addresses.
5
+ *
6
+ * This resolver queries a registry service to find the transport information
7
+ * for addresses that don't already have transports configured. It's designed
8
+ * to be extensible through subclassing via protected template methods.
9
+ *
10
+ * @example Basic usage
11
+ * ```typescript
12
+ * const resolver = new oSearchResolver(nodeAddress);
13
+ * router.addResolver(resolver);
14
+ * ```
15
+ *
16
+ * @example Creating a custom search resolver
17
+ * ```typescript
18
+ * class CustomSearchResolver extends oSearchResolver {
19
+ * // Search a different registry
20
+ * protected getRegistryAddress(): oAddress {
21
+ * return new oAddress('o://my-custom-registry');
22
+ * }
23
+ *
24
+ * // Use round-robin selection instead of first result
25
+ * private currentIndex = 0;
26
+ * protected selectResult(results: any[]): any | null {
27
+ * if (results.length === 0) return null;
28
+ * const result = results[this.currentIndex % results.length];
29
+ * this.currentIndex++;
30
+ * return result;
31
+ * }
32
+ *
33
+ * // Add custom filtering logic
34
+ * protected filterSearchResults(results: any[], node: oCore): any[] {
35
+ * return super.filterSearchResults(results, node).filter(
36
+ * result => result.status === 'active'
37
+ * );
38
+ * }
39
+ *
40
+ * // Implement custom routing logic with transport setup
41
+ * protected determineNextHop(
42
+ * node: oCore,
43
+ * resolvedTargetAddress: oAddress,
44
+ * searchResult: any
45
+ * ): oAddress {
46
+ * // Always route directly to target, bypassing hierarchy
47
+ * const targetTransports = this.mapTransports(searchResult);
48
+ * resolvedTargetAddress.setTransports(targetTransports);
49
+ * return resolvedTargetAddress;
50
+ * }
51
+ * }
52
+ * ```
53
+ *
54
+ * ## Extension Points
55
+ *
56
+ * The following protected methods can be overridden to customize behavior:
57
+ *
58
+ * - `getRegistryAddress()` - Change which registry to search
59
+ * - `getSearchMethod()` - Change the registry method to call
60
+ * - `buildSearchParams()` - Customize search parameters
61
+ * - `filterSearchResults()` - Add custom filtering logic
62
+ * - `selectResult()` - Implement custom result selection (e.g., load balancing)
63
+ * - `mapTransports()` - Customize how transports are mapped from results
64
+ * - `determineNextHop()` - Implement custom routing logic to determine the next hop address
65
+ * - `resolveNextHopTransports()` - Customize transport resolution for the next hop
66
+ */
67
+ export declare class oSearchResolver extends oAddressResolver {
68
+ protected readonly address: oAddress;
69
+ constructor(address: oAddress);
70
+ get customTransports(): oTransport[];
71
+ /**
72
+ * Returns the address of the registry to search.
73
+ * Override this method to search a different registry.
74
+ * @returns The registry address to query
75
+ */
76
+ protected getRegistryAddress(): oAddress;
77
+ /**
78
+ * Returns the method name to call on the registry.
79
+ * Override this method to use a different search method.
80
+ * @returns The method name to call
81
+ */
82
+ protected getSearchMethod(): string;
83
+ /**
84
+ * Builds the search parameters for the registry query.
85
+ * Override this method to customize search parameters.
86
+ * @param address - The address being resolved
87
+ * @returns Parameters to pass to the registry search method
88
+ */
89
+ protected buildSearchParams(address: oAddress): any;
90
+ /**
91
+ * Filters the search results from the registry.
92
+ * Override this method to apply custom filtering logic.
93
+ * @param results - Raw results from the registry
94
+ * @param node - The current node context
95
+ * @returns Filtered array of results
96
+ */
97
+ protected filterSearchResults(results: any[], node: oCore): any[];
98
+ /**
99
+ * Selects which result to use from the filtered results.
100
+ * Override this method to implement custom selection logic (e.g., load balancing).
101
+ * @param results - Filtered search results
102
+ * @returns The selected result, or null if no suitable result
103
+ */
104
+ protected selectResult(results: any[]): any | null;
105
+ /**
106
+ * Maps the transport data from the search result to oNodeTransport instances.
107
+ * Override this method to customize transport mapping.
108
+ * @param result - The selected search result
109
+ * @returns Array of oNodeTransport instances
110
+ */
111
+ protected mapTransports(result: any): oNodeTransport[];
112
+ /**
113
+ * Resolves the transports for the next hop address.
114
+ * This handles the logic of determining which transports to use based on
115
+ * whether the next hop is the leader, a known child, or a new target.
116
+ *
117
+ * Override this method to customize transport resolution logic.
118
+ *
119
+ * @param nextHop - The next hop address
120
+ * @param targetTransports - The transports from the registry search result
121
+ * @param node - The current node context
122
+ * @returns Array of transports to use for the next hop
123
+ */
124
+ protected resolveNextHopTransports(nextHop: oAddress, targetTransports: oNodeTransport[], node: oCore): oNodeTransport[];
125
+ /**
126
+ * Determines the next hop address for routing to the target and sets up its transports.
127
+ *
128
+ * This method implements the complete routing logic including:
129
+ * 1. Determining the next address in the path (using `oAddress.next()`)
130
+ * 2. Mapping transports from the search result
131
+ * 3. Resolving and setting transports on the next hop address
132
+ * 4. Setting transports on the target address
133
+ *
134
+ * The default implementation:
135
+ * - Uses `oAddress.next()` for standard hierarchy-based routing
136
+ * - Maps transports from the registry search result
137
+ * - Resolves next hop transports based on leader/hierarchy
138
+ * - Configures both next hop and target with appropriate transports
139
+ *
140
+ * Override this method to implement custom routing logic, such as:
141
+ * - Direct peer-to-peer routing
142
+ * - Custom hierarchy traversal
143
+ * - Alternative transport selection strategies
144
+ * - Bypass leader for certain routes
145
+ *
146
+ * @param node - The current node context
147
+ * @param resolvedTargetAddress - The resolved target address to route to
148
+ * @param searchResult - The raw search result from the registry containing transport data
149
+ * @returns The next hop address with transports configured
150
+ *
151
+ * @example Custom direct routing
152
+ * ```typescript
153
+ * class DirectSearchResolver extends oSearchResolver {
154
+ * protected determineNextHop(
155
+ * node: oCore,
156
+ * resolvedTargetAddress: oAddress,
157
+ * searchResult: any
158
+ * ): oAddress {
159
+ * // Always route directly to the target, bypassing hierarchy
160
+ * const targetTransports = this.mapTransports(searchResult);
161
+ * resolvedTargetAddress.setTransports(targetTransports);
162
+ * return resolvedTargetAddress;
163
+ * }
164
+ * }
165
+ * ```
166
+ */
167
+ protected determineNextHop(node: oCore, resolvedTargetAddress: oAddress, searchResult: any): oAddress;
168
+ resolve(request: ResolveRequest): Promise<RouteResponse>;
169
+ }
170
+ //# sourceMappingURL=o-node.search-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o-node.search-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/router/resolvers/o-node.search-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,gBAAgB,EAChB,KAAK,EAEL,UAAU,EACV,cAAc,EAEd,aAAa,EAEd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,qBAAa,eAAgB,SAAQ,gBAAgB;IACvC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ;gBAAjB,OAAO,EAAE,QAAQ;IAIhD,IAAI,gBAAgB,IAAI,UAAU,EAAE,CAEnC;IAED;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,IAAI,QAAQ;IAIxC;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,GAAG;IAOnD;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE;IASjE;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI;IAIlD;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc,EAAE;IAOtD;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,wBAAwB,CAChC,OAAO,EAAE,QAAQ,EACjB,gBAAgB,EAAE,cAAc,EAAE,EAClC,IAAI,EAAE,KAAK,GACV,cAAc,EAAE;IAgBnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,SAAS,CAAC,gBAAgB,CACxB,IAAI,EAAE,KAAK,EACX,qBAAqB,EAAE,QAAQ,EAC/B,YAAY,EAAE,GAAG,GAChB,QAAQ;IAeL,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAsG/D"}