@olane/o-core 0.6.12 → 0.7.1

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 (257) hide show
  1. package/README.md +490 -140
  2. package/dist/src/connection/index.d.ts +8 -0
  3. package/dist/src/connection/index.d.ts.map +1 -0
  4. package/dist/src/connection/index.js +7 -0
  5. package/dist/src/connection/interfaces/connection-manager.config.d.ts +3 -0
  6. package/dist/src/connection/interfaces/connection-manager.config.d.ts.map +1 -0
  7. package/dist/src/{core → connection}/interfaces/connection-send-params.interface.d.ts +1 -0
  8. package/dist/src/connection/interfaces/connection-send-params.interface.d.ts.map +1 -0
  9. package/dist/src/connection/interfaces/connection.config.d.ts +7 -0
  10. package/dist/src/connection/interfaces/connection.config.d.ts.map +1 -0
  11. package/dist/src/connection/interfaces/index.d.ts +5 -0
  12. package/dist/src/connection/interfaces/index.d.ts.map +1 -0
  13. package/dist/src/connection/interfaces/index.js +4 -0
  14. package/dist/src/connection/interfaces/request-state.enum.d.ts +7 -0
  15. package/dist/src/connection/interfaces/request-state.enum.d.ts.map +1 -0
  16. package/dist/src/connection/interfaces/request-state.enum.js +7 -0
  17. package/dist/src/connection/o-connection-manager.d.ts +19 -0
  18. package/dist/src/connection/o-connection-manager.d.ts.map +1 -0
  19. package/dist/src/connection/o-connection-manager.js +27 -0
  20. package/dist/src/connection/o-connection.d.ts +20 -0
  21. package/dist/src/connection/o-connection.d.ts.map +1 -0
  22. package/dist/src/connection/o-connection.js +45 -0
  23. package/dist/src/{core/lib → connection}/o-request.d.ts +5 -1
  24. package/dist/src/connection/o-request.d.ts.map +1 -0
  25. package/dist/src/{core/lib → connection}/o-request.js +8 -1
  26. package/dist/src/connection/o-response.d.ts.map +1 -0
  27. package/dist/src/core/defaults/config.d.ts +1 -1
  28. package/dist/src/core/defaults/config.d.ts.map +1 -1
  29. package/dist/src/core/defaults/config.js +1 -1
  30. package/dist/src/core/graceful-shutdown.d.ts +1 -1
  31. package/dist/src/core/graceful-shutdown.d.ts.map +1 -1
  32. package/dist/src/core/graceful-shutdown.js +1 -1
  33. package/dist/src/core/index.d.ts +3 -5
  34. package/dist/src/core/index.d.ts.map +1 -1
  35. package/dist/src/core/index.js +3 -5
  36. package/dist/src/core/interfaces/index.d.ts +1 -2
  37. package/dist/src/core/interfaces/index.d.ts.map +1 -1
  38. package/dist/src/core/interfaces/index.js +1 -2
  39. package/dist/src/core/interfaces/{core-config.interface.d.ts → o-core.config.d.ts} +4 -5
  40. package/dist/src/core/interfaces/o-core.config.d.ts.map +1 -0
  41. package/dist/src/core/interfaces/o-core.interface.d.ts +18 -0
  42. package/dist/src/core/interfaces/o-core.interface.d.ts.map +1 -0
  43. package/dist/src/core/lib/index.d.ts +3 -7
  44. package/dist/src/core/lib/index.d.ts.map +1 -1
  45. package/dist/src/core/lib/index.js +3 -7
  46. package/dist/src/core/lib/o-hierarchy.manager.d.ts +24 -0
  47. package/dist/src/core/lib/o-hierarchy.manager.d.ts.map +1 -0
  48. package/dist/src/core/lib/o-hierarchy.manager.js +57 -0
  49. package/dist/src/core/lib/o-metrics.d.ts +5 -0
  50. package/dist/src/core/lib/o-metrics.d.ts.map +1 -0
  51. package/dist/src/core/lib/o-metrics.js +6 -0
  52. package/dist/src/core/lib/o-request.manager.d.ts +10 -0
  53. package/dist/src/core/lib/o-request.manager.d.ts.map +1 -0
  54. package/dist/src/core/lib/o-request.manager.js +18 -0
  55. package/dist/src/core/o-core.d.ts +190 -0
  56. package/dist/src/core/o-core.d.ts.map +1 -0
  57. package/dist/src/core/o-core.js +334 -0
  58. package/dist/src/core/o-object.d.ts +7 -0
  59. package/dist/src/core/o-object.d.ts.map +1 -0
  60. package/dist/src/core/o-object.js +10 -0
  61. package/dist/src/error/enums/codes.error.d.ts +16 -14
  62. package/dist/src/error/enums/codes.error.d.ts.map +1 -1
  63. package/dist/src/error/enums/codes.error.js +18 -16
  64. package/dist/src/error/index.d.ts +1 -1
  65. package/dist/src/error/index.d.ts.map +1 -1
  66. package/dist/src/error/index.js +1 -1
  67. package/dist/src/error/interfaces/o-error.interface.d.ts +6 -0
  68. package/dist/src/error/interfaces/o-error.interface.d.ts.map +1 -0
  69. package/dist/src/error/o-error.d.ts +15 -0
  70. package/dist/src/error/o-error.d.ts.map +1 -0
  71. package/dist/src/error/{tool.error.js → o-error.js} +4 -4
  72. package/dist/src/index.d.ts +3 -3
  73. package/dist/src/index.d.ts.map +1 -1
  74. package/dist/src/index.js +3 -3
  75. package/dist/src/router/enums/restricted-addresses.enum.d.ts +8 -0
  76. package/dist/src/router/enums/restricted-addresses.enum.d.ts.map +1 -0
  77. package/dist/src/router/enums/restricted-addresses.enum.js +13 -0
  78. package/dist/src/router/index.d.ts +9 -0
  79. package/dist/src/router/index.d.ts.map +1 -0
  80. package/dist/src/router/index.js +8 -0
  81. package/dist/src/router/interfaces/resolve.request.d.ts +10 -0
  82. package/dist/src/router/interfaces/resolve.request.d.ts.map +1 -0
  83. package/dist/src/router/interfaces/route.response.d.ts +8 -0
  84. package/dist/src/router/interfaces/route.response.d.ts.map +1 -0
  85. package/dist/src/router/o-address-resolution.d.ts +12 -0
  86. package/dist/src/router/o-address-resolution.d.ts.map +1 -0
  87. package/dist/src/router/o-address-resolution.js +42 -0
  88. package/dist/src/router/o-address-resolver.d.ts +14 -0
  89. package/dist/src/router/o-address-resolver.d.ts.map +1 -0
  90. package/dist/src/router/o-address-resolver.js +19 -0
  91. package/dist/src/router/o-address.d.ts +29 -0
  92. package/dist/src/router/o-address.d.ts.map +1 -0
  93. package/dist/src/router/o-address.js +95 -0
  94. package/dist/src/router/o-request.router.d.ts +18 -0
  95. package/dist/src/router/o-request.router.d.ts.map +1 -0
  96. package/dist/src/router/o-request.router.js +12 -0
  97. package/dist/src/router/o-router.d.ts +19 -0
  98. package/dist/src/router/o-router.d.ts.map +1 -0
  99. package/dist/src/router/o-router.js +14 -0
  100. package/dist/src/transports/custom.transport.d.ts +6 -0
  101. package/dist/src/transports/custom.transport.d.ts.map +1 -0
  102. package/dist/src/transports/custom.transport.js +10 -0
  103. package/dist/src/transports/index.d.ts +4 -0
  104. package/dist/src/transports/index.d.ts.map +1 -0
  105. package/dist/src/transports/index.js +3 -0
  106. package/dist/src/transports/interfaces/transport-type.enum.d.ts +5 -0
  107. package/dist/src/transports/interfaces/transport-type.enum.d.ts.map +1 -0
  108. package/dist/src/transports/interfaces/transport-type.enum.js +5 -0
  109. package/dist/src/transports/o-transport.d.ts +10 -0
  110. package/dist/src/transports/o-transport.d.ts.map +1 -0
  111. package/dist/src/transports/o-transport.js +16 -0
  112. package/dist/src/{core/utils → utils}/core.utils.d.ts +4 -3
  113. package/dist/src/utils/core.utils.d.ts.map +1 -0
  114. package/dist/src/{core/utils → utils}/core.utils.js +17 -2
  115. package/dist/src/utils/index.d.ts +2 -0
  116. package/dist/src/utils/index.d.ts.map +1 -1
  117. package/dist/src/utils/index.js +2 -0
  118. package/dist/src/{core/utils → utils}/logger.d.ts +1 -0
  119. package/dist/src/utils/logger.d.ts.map +1 -0
  120. package/dist/src/{core/utils → utils}/logger.js +4 -1
  121. package/dist/test/server/in-process.spec.js +2 -14
  122. package/package.json +2 -3
  123. package/dist/src/core/core.node.d.ts +0 -75
  124. package/dist/src/core/core.node.d.ts.map +0 -1
  125. package/dist/src/core/core.node.js +0 -302
  126. package/dist/src/core/interfaces/connection-manager.config.d.ts +0 -7
  127. package/dist/src/core/interfaces/connection-manager.config.d.ts.map +0 -1
  128. package/dist/src/core/interfaces/connection-send-params.interface.d.ts.map +0 -1
  129. package/dist/src/core/interfaces/core-config.interface.d.ts.map +0 -1
  130. package/dist/src/core/interfaces/restricted-addresses.enum.d.ts +0 -13
  131. package/dist/src/core/interfaces/restricted-addresses.enum.d.ts.map +0 -1
  132. package/dist/src/core/interfaces/restricted-addresses.enum.js +0 -18
  133. package/dist/src/core/lib/o-address-resolution.d.ts +0 -9
  134. package/dist/src/core/lib/o-address-resolution.d.ts.map +0 -1
  135. package/dist/src/core/lib/o-address-resolution.js +0 -24
  136. package/dist/src/core/lib/o-address-resolver.d.ts +0 -17
  137. package/dist/src/core/lib/o-address-resolver.d.ts.map +0 -1
  138. package/dist/src/core/lib/o-address-resolver.js +0 -36
  139. package/dist/src/core/lib/o-connection-manager.d.ts +0 -22
  140. package/dist/src/core/lib/o-connection-manager.d.ts.map +0 -1
  141. package/dist/src/core/lib/o-connection-manager.js +0 -65
  142. package/dist/src/core/lib/o-connection.d.ts +0 -27
  143. package/dist/src/core/lib/o-connection.d.ts.map +0 -1
  144. package/dist/src/core/lib/o-connection.js +0 -84
  145. package/dist/src/core/lib/o-request.d.ts.map +0 -1
  146. package/dist/src/core/lib/o-response.d.ts.map +0 -1
  147. package/dist/src/core/lib/resolvers/anything.resolver.d.ts +0 -8
  148. package/dist/src/core/lib/resolvers/anything.resolver.d.ts.map +0 -1
  149. package/dist/src/core/lib/resolvers/anything.resolver.js +0 -15
  150. package/dist/src/core/lib/resolvers/index.d.ts +0 -5
  151. package/dist/src/core/lib/resolvers/index.d.ts.map +0 -1
  152. package/dist/src/core/lib/resolvers/index.js +0 -4
  153. package/dist/src/core/lib/resolvers/method.resolver.d.ts +0 -8
  154. package/dist/src/core/lib/resolvers/method.resolver.d.ts.map +0 -1
  155. package/dist/src/core/lib/resolvers/method.resolver.js +0 -18
  156. package/dist/src/core/lib/resolvers/next-hop.resolver.d.ts +0 -10
  157. package/dist/src/core/lib/resolvers/next-hop.resolver.d.ts.map +0 -1
  158. package/dist/src/core/lib/resolvers/next-hop.resolver.js +0 -59
  159. package/dist/src/core/lib/resolvers/storage.resolver.d.ts +0 -6
  160. package/dist/src/core/lib/resolvers/storage.resolver.d.ts.map +0 -1
  161. package/dist/src/core/lib/resolvers/storage.resolver.js +0 -10
  162. package/dist/src/core/o-address.d.ts +0 -20
  163. package/dist/src/core/o-address.d.ts.map +0 -1
  164. package/dist/src/core/o-address.js +0 -47
  165. package/dist/src/core/utils/core.utils.d.ts.map +0 -1
  166. package/dist/src/core/utils/index.d.ts +0 -4
  167. package/dist/src/core/utils/index.d.ts.map +0 -1
  168. package/dist/src/core/utils/index.js +0 -3
  169. package/dist/src/core/utils/logger.d.ts.map +0 -1
  170. package/dist/src/core/utils/network.utils.d.ts +0 -16
  171. package/dist/src/core/utils/network.utils.d.ts.map +0 -1
  172. package/dist/src/core/utils/network.utils.js +0 -35
  173. package/dist/src/error/tool.error.d.ts +0 -19
  174. package/dist/src/error/tool.error.d.ts.map +0 -1
  175. package/dist/src/node/index.d.ts +0 -4
  176. package/dist/src/node/index.d.ts.map +0 -1
  177. package/dist/src/node/index.js +0 -3
  178. package/dist/src/node/interfaces/route.request.d.ts +0 -14
  179. package/dist/src/node/interfaces/route.request.d.ts.map +0 -1
  180. package/dist/src/node/lib/local-search.lib.d.ts +0 -6
  181. package/dist/src/node/lib/local-search.lib.d.ts.map +0 -1
  182. package/dist/src/node/lib/local-search.lib.js +0 -10
  183. package/dist/src/node/lib/network-activity.lib.d.ts +0 -12
  184. package/dist/src/node/lib/network-activity.lib.d.ts.map +0 -1
  185. package/dist/src/node/lib/network-activity.lib.js +0 -29
  186. package/dist/src/node/node.d.ts +0 -45
  187. package/dist/src/node/node.d.ts.map +0 -1
  188. package/dist/src/node/node.js +0 -346
  189. package/dist/src/node-virtual/index.d.ts +0 -2
  190. package/dist/src/node-virtual/index.d.ts.map +0 -1
  191. package/dist/src/node-virtual/index.js +0 -1
  192. package/dist/src/node-virtual/virtual.node.d.ts +0 -10
  193. package/dist/src/node-virtual/virtual.node.d.ts.map +0 -1
  194. package/dist/src/node-virtual/virtual.node.js +0 -12
  195. package/dist/src/plan/agent.plan.d.ts +0 -28
  196. package/dist/src/plan/agent.plan.d.ts.map +0 -1
  197. package/dist/src/plan/agent.plan.js +0 -184
  198. package/dist/src/plan/index.d.ts +0 -5
  199. package/dist/src/plan/index.d.ts.map +0 -1
  200. package/dist/src/plan/index.js +0 -4
  201. package/dist/src/plan/interfaces/configure.result.d.ts +0 -6
  202. package/dist/src/plan/interfaces/configure.result.d.ts.map +0 -1
  203. package/dist/src/plan/interfaces/handshake.result.d.ts +0 -14
  204. package/dist/src/plan/interfaces/handshake.result.d.ts.map +0 -1
  205. package/dist/src/plan/interfaces/plan-config.interface.d.ts +0 -14
  206. package/dist/src/plan/interfaces/plan-config.interface.d.ts.map +0 -1
  207. package/dist/src/plan/interfaces/plan-result.interface.d.ts +0 -6
  208. package/dist/src/plan/interfaces/plan-result.interface.d.ts.map +0 -1
  209. package/dist/src/plan/interfaces/plan-type.enum.d.ts +0 -8
  210. package/dist/src/plan/interfaces/plan-type.enum.d.ts.map +0 -1
  211. package/dist/src/plan/interfaces/plan-type.enum.js +0 -8
  212. package/dist/src/plan/interfaces/plan.result.d.ts +0 -15
  213. package/dist/src/plan/interfaces/plan.result.d.ts.map +0 -1
  214. package/dist/src/plan/interfaces/plan.result.js +0 -1
  215. package/dist/src/plan/interfaces/query.config.d.ts +0 -6
  216. package/dist/src/plan/interfaces/query.config.d.ts.map +0 -1
  217. package/dist/src/plan/interfaces/query.config.js +0 -1
  218. package/dist/src/plan/interfaces/task.config.d.ts +0 -10
  219. package/dist/src/plan/interfaces/task.config.d.ts.map +0 -1
  220. package/dist/src/plan/interfaces/task.config.js +0 -1
  221. package/dist/src/plan/o-plan.d.ts +0 -36
  222. package/dist/src/plan/o-plan.d.ts.map +0 -1
  223. package/dist/src/plan/o-plan.js +0 -190
  224. package/dist/src/plan/plan.context.d.ts +0 -10
  225. package/dist/src/plan/plan.context.d.ts.map +0 -1
  226. package/dist/src/plan/plan.context.js +0 -28
  227. package/dist/src/plan/prompts/agent.prompt.d.ts +0 -2
  228. package/dist/src/plan/prompts/agent.prompt.d.ts.map +0 -1
  229. package/dist/src/plan/prompts/agent.prompt.js +0 -111
  230. package/dist/src/plan/prompts/configure.prompt.d.ts +0 -2
  231. package/dist/src/plan/prompts/configure.prompt.d.ts.map +0 -1
  232. package/dist/src/plan/prompts/configure.prompt.js +0 -40
  233. package/dist/src/plan/prompts/custom.prompt.d.ts +0 -2
  234. package/dist/src/plan/prompts/custom.prompt.d.ts.map +0 -1
  235. package/dist/src/plan/prompts/custom.prompt.js +0 -80
  236. package/dist/src/plan/search/prompts/search-analysis.prompt.d.ts +0 -2
  237. package/dist/src/plan/search/prompts/search-analysis.prompt.d.ts.map +0 -1
  238. package/dist/src/plan/search/prompts/search-analysis.prompt.js +0 -14
  239. package/dist/src/plan/search/search.plan.d.ts +0 -21
  240. package/dist/src/plan/search/search.plan.d.ts.map +0 -1
  241. package/dist/src/plan/search/search.plan.js +0 -53
  242. package/dist/src/plan/use/index.d.ts +0 -2
  243. package/dist/src/plan/use/index.d.ts.map +0 -1
  244. package/dist/src/plan/use/index.js +0 -1
  245. package/dist/src/plan/use/use.plan.d.ts +0 -16
  246. package/dist/src/plan/use/use.plan.d.ts.map +0 -1
  247. package/dist/src/plan/use/use.plan.js +0 -149
  248. /package/dist/src/{core → connection}/interfaces/connection-manager.config.js +0 -0
  249. /package/dist/src/{core → connection}/interfaces/connection-send-params.interface.js +0 -0
  250. /package/dist/src/{core/interfaces/core-config.interface.js → connection/interfaces/connection.config.js} +0 -0
  251. /package/dist/src/{core/lib → connection}/o-response.d.ts +0 -0
  252. /package/dist/src/{core/lib → connection}/o-response.js +0 -0
  253. /package/dist/src/{node/interfaces/route.request.js → core/interfaces/o-core.config.js} +0 -0
  254. /package/dist/src/{plan/interfaces/configure.result.js → core/interfaces/o-core.interface.js} +0 -0
  255. /package/dist/src/{plan/interfaces/handshake.result.js → error/interfaces/o-error.interface.js} +0 -0
  256. /package/dist/src/{plan/interfaces/plan-config.interface.js → router/interfaces/resolve.request.js} +0 -0
  257. /package/dist/src/{plan/interfaces/plan-result.interface.js → router/interfaces/route.response.js} +0 -0
@@ -2,6 +2,7 @@ export declare class Logger {
2
2
  private readonly name;
3
3
  private log;
4
4
  constructor(name: string);
5
+ setNamespace(name: string): void;
5
6
  debug(...args: any[]): void;
6
7
  info(...args: any[]): void;
7
8
  warn(...args: any[]): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,qBAAa,MAAM;IAGL,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,GAAG,CAAW;gBAEO,IAAI,EAAE,MAAM;IAIzC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAInB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAInB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAGrB"}
@@ -3,7 +3,10 @@ import chalk from 'chalk';
3
3
  export class Logger {
4
4
  constructor(name) {
5
5
  this.name = name;
6
- this.log = debug('o-protocol:' + name);
6
+ this.log = debug('olane-os:' + name);
7
+ }
8
+ setNamespace(name) {
9
+ this.log = debug('olane-os:' + name);
7
10
  }
8
11
  debug(...args) {
9
12
  this.log(chalk.blue('[DEBUG]'), ...args);
@@ -1,18 +1,6 @@
1
- import { NodeState, oAddress, oVirtualNode } from '../../src/index.js';
2
- import { expect } from 'chai';
3
1
  describe('in-process @memory', () => {
4
2
  it('should be able to start a single node with no leader', async () => {
5
- const node = new oVirtualNode({
6
- address: new oAddress('o://test'),
7
- leader: null,
8
- parent: null,
9
- });
10
- await node.start();
11
- expect(node.state).to.equal(NodeState.RUNNING);
12
- const transports = node.transports;
13
- // expect(transports.length).to.equal(1);
14
- // expect(transports[0].toString()).to.contain('/memory');
15
- await node.stop();
16
- expect(node.state).to.equal(NodeState.STOPPED);
3
+ // do nothing
17
4
  });
18
5
  });
6
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olane/o-core",
3
- "version": "0.6.12",
3
+ "version": "0.7.1",
4
4
  "type": "module",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -61,8 +61,7 @@
61
61
  "typescript": "^5.8.3"
62
62
  },
63
63
  "peerDependencies": {
64
- "@olane/o-config": "^0.6.11",
65
- "@olane/o-protocol": "^0.6.11"
64
+ "@olane/o-protocol": "^0.7.0"
66
65
  },
67
66
  "dependencies": {
68
67
  "chalk": "^5.4.1",
@@ -1,75 +0,0 @@
1
- import { Libp2p, Libp2pConfig, Multiaddr, PeerId } from '@olane/o-config';
2
- import { CoreConfig } from './interfaces/core-config.interface.js';
3
- import { NodeState } from './interfaces/state.enum.js';
4
- import { oAddress } from './o-address.js';
5
- import { Logger } from './utils/logger.js';
6
- import { NodeType } from './interfaces/node-type.enum.js';
7
- import { oConnectionManager } from './lib/o-connection-manager.js';
8
- import { oResponse } from './lib/o-response.js';
9
- import { oConnection } from './lib/o-connection.js';
10
- import { oMethod } from '@olane/o-protocol';
11
- import { oAddressResolution } from './lib/o-address-resolution.js';
12
- import { oDependency } from './o-dependency.js';
13
- export declare abstract class oCoreNode {
14
- readonly config: CoreConfig;
15
- p2pNode: Libp2p;
16
- logger: Logger;
17
- networkConfig: Libp2pConfig;
18
- address: oAddress;
19
- readonly staticAddress: oAddress;
20
- peerId: PeerId;
21
- state: NodeState;
22
- errors: Error[];
23
- connectionManager: oConnectionManager;
24
- leaders: Multiaddr[];
25
- addressResolution: oAddressResolution;
26
- readonly description: string;
27
- dependencies: oDependency[];
28
- methods: {
29
- [key: string]: oMethod;
30
- };
31
- successCount: number;
32
- errorCount: number;
33
- constructor(config: CoreConfig);
34
- get type(): NodeType;
35
- get transports(): string[];
36
- initialize(): Promise<void>;
37
- whoami(): Promise<any>;
38
- get parent(): oAddress | null;
39
- get parentPeerId(): string | null;
40
- get parentTransports(): Multiaddr[];
41
- getTransports(address: oAddress): Multiaddr[];
42
- handleStaticAddressTranslation(addressInput: oAddress): Promise<oAddress>;
43
- translateAddress(addressWithLeaderTransports: oAddress): Promise<{
44
- nextHopAddress: oAddress;
45
- targetAddress: oAddress;
46
- }>;
47
- isInternalAddress(addressWithLeaderTransports: oAddress): boolean;
48
- /**
49
- * Use a tool explicitly
50
- * @param addressWithLeaderTransports
51
- * @param data
52
- * @param config
53
- * @returns
54
- */
55
- use(addressWithLeaderTransports: oAddress, data?: {
56
- method?: string;
57
- params?: {
58
- [key: string]: any;
59
- };
60
- }): Promise<oResponse>;
61
- unregister(): Promise<void>;
62
- register(): Promise<void>;
63
- connect(nextHopAddress: oAddress, targetAddress: oAddress): Promise<oConnection>;
64
- teardown(): Promise<void>;
65
- /**
66
- * Start the node
67
- * @param parent - The parent node
68
- */
69
- start(): Promise<void>;
70
- /**
71
- * Stop the node
72
- */
73
- stop(): Promise<void>;
74
- }
75
- //# sourceMappingURL=core.node.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.node.d.ts","sourceRoot":"","sources":["../../../src/core/core.node.ts"],"names":[],"mappings":"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"}
@@ -1,302 +0,0 @@
1
- import { defaultLibp2pConfig, multiaddr, } from '@olane/o-config';
2
- import { NodeState } from './interfaces/state.enum.js';
3
- import { oAddress } from './o-address.js';
4
- import { Logger } from './utils/logger.js';
5
- import { NodeType } from './interfaces/node-type.enum.js';
6
- import { oAddressResolution } from './lib/o-address-resolution.js';
7
- import { oDependency } from './o-dependency.js';
8
- import { oToolError } from '../error/tool.error.js';
9
- export class oCoreNode {
10
- constructor(config) {
11
- this.config = config;
12
- this.state = NodeState.STOPPED;
13
- this.errors = [];
14
- this.leaders = [];
15
- this.successCount = 0;
16
- this.errorCount = 0;
17
- this.logger = new Logger(this.constructor.name +
18
- (config.name ? `:${config.name}` : '') +
19
- ':' +
20
- config.address.toString());
21
- this.address = config.address || new oAddress('o://node');
22
- this.networkConfig = config.network || defaultLibp2pConfig;
23
- this.addressResolution = new oAddressResolution();
24
- this.staticAddress = config.address;
25
- this.description = config.description || '';
26
- this.dependencies =
27
- config.dependencies?.map((d) => new oDependency(d)) || [];
28
- this.methods = config.methods || {};
29
- }
30
- get type() {
31
- return this.config.type || NodeType.UNKNOWN;
32
- }
33
- get transports() {
34
- return this.p2pNode
35
- .getMultiaddrs()
36
- .map((multiaddr) => multiaddr.toString());
37
- }
38
- async initialize() { }
39
- async whoami() {
40
- return {
41
- address: this.address.toString(),
42
- type: this.type,
43
- description: this.description,
44
- methods: this.methods,
45
- successCount: this.successCount,
46
- errorCount: this.errorCount,
47
- };
48
- }
49
- get parent() {
50
- return this.config.parent || null;
51
- }
52
- get parentPeerId() {
53
- if (!this.parent || this.parent?.transports?.length === 0) {
54
- return null;
55
- }
56
- const transport = this.parent?.transports[0];
57
- const peerId = transport.toString().split('/p2p/')[1];
58
- return peerId;
59
- }
60
- get parentTransports() {
61
- return this.parent?.transports.map((t) => multiaddr(t)) || [];
62
- }
63
- getTransports(address) {
64
- let leaderTransports = address.libp2pTransports;
65
- // check if we already know where we want to go
66
- if (leaderTransports.length > 0) {
67
- return leaderTransports;
68
- }
69
- // if leader transports are not provided, then we need to search for them
70
- // Assume we are looking for a leader within our network for now
71
- // TODO: we need to add some discovery managers that every node can use to find external network resources
72
- if (leaderTransports.length === 0) {
73
- this.logger.debug('No leader transports provided, we are going to search within our own network');
74
- if (!this.config.leader) {
75
- // TODO: how do we handle when the node is the leader? // technically we are in the network
76
- if (this.type === NodeType.LEADER) {
77
- this.logger.debug('Node is a leader, using own transports');
78
- leaderTransports = this.transports.map((t) => multiaddr(t));
79
- }
80
- else {
81
- this.logger.warn('We are not within a network, cannot search for addressed node without leader.');
82
- }
83
- }
84
- else {
85
- leaderTransports = this.config.leader.libp2pTransports;
86
- }
87
- }
88
- if (leaderTransports.length === 0) {
89
- throw new Error('No leader transports provided, cannot search for leaders');
90
- }
91
- return leaderTransports;
92
- }
93
- async handleStaticAddressTranslation(addressInput) {
94
- let result = addressInput;
95
- this.logger.debug('Handling static address translation...', result.toString());
96
- // handle static address translation
97
- if (result.value.indexOf('o://leader') === -1) {
98
- // TODO: we need to be more dynamic around the o://leader prefix
99
- const response = await this.use(new oAddress('o://leader/register', result.transports), {
100
- method: 'search',
101
- params: { staticAddress: result.root },
102
- });
103
- const searchResults = response.result.data;
104
- if (searchResults.length > 0) {
105
- // the root was found, let's add the rest of the path to the address
106
- const remainderPaths = result.paths.split('/').slice(1);
107
- const resolvedAddress = searchResults[0].address +
108
- (remainderPaths.length > 0 ? '/' + remainderPaths.join('/') : ''); // TODO: we need to handle this better
109
- result = new oAddress(resolvedAddress, result.transports);
110
- }
111
- else {
112
- this.logger.warn('Failed to translate static address');
113
- // TODO: we need to handle this better
114
- }
115
- }
116
- return result;
117
- }
118
- async translateAddress(addressWithLeaderTransports) {
119
- // determine if this is external
120
- const isInternal = this.isInternalAddress(addressWithLeaderTransports);
121
- if (!isInternal) {
122
- // external address, so we need to route
123
- this.logger.debug('Address is external, routing...', addressWithLeaderTransports);
124
- return {
125
- nextHopAddress: new oAddress('o://leader', addressWithLeaderTransports.libp2pTransports),
126
- targetAddress: addressWithLeaderTransports,
127
- };
128
- }
129
- let targetAddress = addressWithLeaderTransports;
130
- let nextHopAddress = addressWithLeaderTransports;
131
- // handle static address translation for search based upon base functionality
132
- targetAddress = await this.handleStaticAddressTranslation(targetAddress);
133
- nextHopAddress = await this.addressResolution.resolve(targetAddress);
134
- const leaderTransports = this.getTransports(nextHopAddress);
135
- nextHopAddress.setTransports(leaderTransports);
136
- return {
137
- nextHopAddress,
138
- targetAddress: targetAddress,
139
- };
140
- }
141
- isInternalAddress(addressWithLeaderTransports) {
142
- if (addressWithLeaderTransports.libp2pTransports?.length > 0) {
143
- // transports are provided, let's see if they match our known leaders
144
- const leaderTransports = this.type === NodeType.LEADER
145
- ? this.address.libp2pTransports
146
- : this.config.leader?.libp2pTransports;
147
- this.logger.debug('Leader transports: ', leaderTransports);
148
- if (leaderTransports && leaderTransports.length > 0) {
149
- this.logger.debug('Address transports: ', addressWithLeaderTransports.libp2pTransports);
150
- // compare against our known leaders
151
- const isInternal = leaderTransports.some((t) => addressWithLeaderTransports.libp2pTransports.includes(t));
152
- return isInternal;
153
- }
154
- }
155
- return true;
156
- }
157
- /**
158
- * Use a tool explicitly
159
- * @param addressWithLeaderTransports
160
- * @param data
161
- * @param config
162
- * @returns
163
- */
164
- async use(addressWithLeaderTransports, data) {
165
- if (!addressWithLeaderTransports.validate()) {
166
- throw new Error('Invalid address');
167
- }
168
- const { nextHopAddress, targetAddress } = await this.translateAddress(addressWithLeaderTransports);
169
- const connection = await this.connect(nextHopAddress, targetAddress);
170
- // communicate the payload to the target node
171
- const response = await connection.send({
172
- address: targetAddress?.toString() || '',
173
- payload: data || {},
174
- });
175
- // if there is an error, throw it to continue to bubble up
176
- if (response.result.error) {
177
- this.logger.error('response.result.error', JSON.stringify(response.result.error, null, 2));
178
- throw oToolError.fromJSON(response.result.error);
179
- }
180
- return response;
181
- }
182
- async unregister() {
183
- if (this.type === NodeType.LEADER) {
184
- this.logger.debug('Skipping unregistration, node is leader');
185
- return;
186
- }
187
- if (!this.config.leader) {
188
- this.logger.debug('No leader found, skipping unregistration');
189
- return;
190
- }
191
- const address = new oAddress('o://leader/register');
192
- // attempt to unregister from the network
193
- const params = {
194
- method: 'remove',
195
- params: {
196
- peerId: this.peerId.toString(),
197
- },
198
- };
199
- await this.use(address, params);
200
- }
201
- async register() {
202
- if (this.type === NodeType.LEADER) {
203
- this.logger.debug('Skipping registration, node is leader');
204
- return;
205
- }
206
- this.logger.debug('Registering node...');
207
- // register with the leader global registry
208
- if (!this.config.leader) {
209
- this.logger.warn('No leaders found, skipping registration');
210
- return;
211
- }
212
- else {
213
- this.logger.debug('Registering node with leader...', this.config.leader);
214
- }
215
- const address = new oAddress('o://register');
216
- const params = {
217
- method: 'commit',
218
- params: {
219
- peerId: this.peerId.toString(),
220
- address: this.address.toString(),
221
- protocols: this.p2pNode.getProtocols(),
222
- transports: this.transports,
223
- staticAddress: this.staticAddress.toString(),
224
- },
225
- };
226
- await this.use(address, params);
227
- this.logger.debug('Registration successful');
228
- }
229
- async connect(nextHopAddress, targetAddress) {
230
- if (!this.connectionManager) {
231
- this.logger.error('Connection manager not initialized');
232
- throw new Error('Node is not ready to connect to other nodes');
233
- }
234
- const connection = await this.connectionManager
235
- .connect({
236
- address: targetAddress,
237
- nextHopAddress,
238
- callerAddress: this.address,
239
- })
240
- .catch((error) => {
241
- // TODO: we need to handle this better and document
242
- if (error.message === 'Can not dial self') {
243
- this.logger.error('Make sure you are entering the network not directly through the leader node.');
244
- }
245
- throw error;
246
- });
247
- this.logger.debug('Successfully connected to: ', nextHopAddress.toString());
248
- if (!connection) {
249
- throw new Error('Connection failed');
250
- }
251
- return connection;
252
- }
253
- async teardown() {
254
- this.logger.debug('Tearing down node...');
255
- if (this.p2pNode) {
256
- await this.p2pNode.stop();
257
- }
258
- }
259
- /**
260
- * Start the node
261
- * @param parent - The parent node
262
- */
263
- async start() {
264
- if (this.state !== NodeState.STOPPED) {
265
- this.logger.warn('Node is not stopped, skipping start');
266
- return;
267
- }
268
- this.state = NodeState.STARTING;
269
- this.p2pNode = this.p2pNode;
270
- try {
271
- await this.initialize();
272
- this.logger.debug('Initializing connection manager...');
273
- await this.register().catch((error) => {
274
- this.logger.error('Failed to register node', error);
275
- });
276
- this.state = NodeState.RUNNING;
277
- }
278
- catch (error) {
279
- this.logger.error('Failed to start node', error);
280
- this.errors.push(error);
281
- this.state = NodeState.ERROR;
282
- await this.teardown();
283
- }
284
- }
285
- /**
286
- * Stop the node
287
- */
288
- async stop() {
289
- this.logger.debug('Stop node called...');
290
- this.state = NodeState.STOPPING;
291
- try {
292
- await this.teardown();
293
- this.state = NodeState.STOPPED;
294
- this.logger.debug('Node stopped!');
295
- }
296
- catch (error) {
297
- this.errors.push(error);
298
- this.state = NodeState.ERROR;
299
- this.logger.error('Node failed to stop', error);
300
- }
301
- }
302
- }
@@ -1,7 +0,0 @@
1
- import { Libp2p } from '@olane/o-config';
2
- import { Logger } from '../utils/logger.js';
3
- export interface oConnectionManagerConfig {
4
- logger: Logger;
5
- p2pNode: Libp2p;
6
- }
7
- //# sourceMappingURL=connection-manager.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-manager.config.d.ts","sourceRoot":"","sources":["../../../../src/core/interfaces/connection-manager.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-send-params.interface.d.ts","sourceRoot":"","sources":["../../../../src/core/interfaces/connection-send-params.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-config.interface.d.ts","sourceRoot":"","sources":["../../../../src/core/interfaces/core-config.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,QAAQ,CAAC;CAC1B"}
@@ -1,13 +0,0 @@
1
- export declare enum RestrictedAddresses {
2
- GLOBAL_PREFIX = "o://",
3
- REGISTRATION = "register",
4
- LEADER = "leader",
5
- TOOL = "tool",
6
- AGENT = "agent"
7
- }
8
- export declare const REGISTRATION_ADRESS: string;
9
- export declare const LEADER_ADRESS: string;
10
- export declare const TOOL_ADRESS: string;
11
- export declare const AGENT_ADRESS: string;
12
- export declare const RestrictedAddressesList: string[];
13
- //# sourceMappingURL=restricted-addresses.enum.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"restricted-addresses.enum.d.ts","sourceRoot":"","sources":["../../../../src/core/interfaces/restricted-addresses.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,aAAa,SAAS;IACtB,YAAY,aAAa;IACzB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,mBAAmB,QACsC,CAAC;AAEvE,eAAO,MAAM,aAAa,QACsC,CAAC;AAEjE,eAAO,MAAM,WAAW,QACsC,CAAC;AAE/D,eAAO,MAAM,YAAY,QACsC,CAAC;AAEhE,eAAO,MAAM,uBAAuB,UAKnC,CAAC"}
@@ -1,18 +0,0 @@
1
- export var RestrictedAddresses;
2
- (function (RestrictedAddresses) {
3
- RestrictedAddresses["GLOBAL_PREFIX"] = "o://";
4
- RestrictedAddresses["REGISTRATION"] = "register";
5
- RestrictedAddresses["LEADER"] = "leader";
6
- RestrictedAddresses["TOOL"] = "tool";
7
- RestrictedAddresses["AGENT"] = "agent";
8
- })(RestrictedAddresses || (RestrictedAddresses = {}));
9
- export const REGISTRATION_ADRESS = RestrictedAddresses.GLOBAL_PREFIX + RestrictedAddresses.REGISTRATION;
10
- export const LEADER_ADRESS = RestrictedAddresses.GLOBAL_PREFIX + RestrictedAddresses.LEADER;
11
- export const TOOL_ADRESS = RestrictedAddresses.GLOBAL_PREFIX + RestrictedAddresses.TOOL;
12
- export const AGENT_ADRESS = RestrictedAddresses.GLOBAL_PREFIX + RestrictedAddresses.AGENT;
13
- export const RestrictedAddressesList = [
14
- REGISTRATION_ADRESS,
15
- LEADER_ADRESS,
16
- TOOL_ADRESS,
17
- AGENT_ADRESS,
18
- ];
@@ -1,9 +0,0 @@
1
- import { oAddress } from '../o-address.js';
2
- import { oAddressResolver } from './o-address-resolver.js';
3
- export declare class oAddressResolution {
4
- private readonly resolvers;
5
- addResolver(resolver: oAddressResolver): void;
6
- supportsTransport(address: oAddress): boolean;
7
- resolve(address: oAddress): Promise<oAddress>;
8
- }
9
- //# sourceMappingURL=o-address-resolution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"o-address-resolution.d.ts","sourceRoot":"","sources":["../../../../src/core/lib/o-address-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,WAAW,CAAC,QAAQ,EAAE,gBAAgB;IAItC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAWvC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;CAOpD"}
@@ -1,24 +0,0 @@
1
- import { oAddress } from '../o-address.js';
2
- export class oAddressResolution {
3
- constructor() {
4
- this.resolvers = [];
5
- }
6
- addResolver(resolver) {
7
- this.resolvers.push(resolver);
8
- }
9
- supportsTransport(address) {
10
- if (address.libp2pTransports.length > 0) {
11
- return false;
12
- }
13
- return this.resolvers.some((r) => address.customTransports.some((t) => {
14
- return r.transports.includes(t);
15
- }));
16
- }
17
- async resolve(address) {
18
- let resolvedAddress = new oAddress(address.toString(), address.transports);
19
- for (const resolver of this.resolvers) {
20
- resolvedAddress = await resolver.resolve(resolvedAddress);
21
- }
22
- return resolvedAddress;
23
- }
24
- }
@@ -1,17 +0,0 @@
1
- import { Libp2p } from '@olane/o-config';
2
- import { Logger } from '../utils/logger.js';
3
- import { oAddress } from '../o-address.js';
4
- import { oNode } from '../../node/index.js';
5
- export declare class oAddressResolver {
6
- protected readonly address: oAddress;
7
- protected readonly p2pNode: Libp2p;
8
- logger: Logger;
9
- constructor(address: oAddress, p2pNode: Libp2p);
10
- get transports(): string[];
11
- isHoppingDown(targetAddress: oAddress): boolean;
12
- isLeaderNextHop(targetAddress: oAddress): boolean;
13
- isStaticAddress(targetAddress: oAddress): boolean;
14
- determineNextHopAddress(targetAddress: oAddress): oAddress;
15
- resolve(address: oAddress, node?: oNode): Promise<oAddress>;
16
- }
17
- //# sourceMappingURL=o-address-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"o-address-resolver.d.ts","sourceRoot":"","sources":["../../../../src/core/lib/o-address-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,qBAAa,gBAAgB;IAGzB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ;IACpC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAH7B,MAAM,EAAE,MAAM,CAAC;gBAED,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM;IAKpC,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;IAED,aAAa,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAI/C,eAAe,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAIjD,eAAe,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAIjD,uBAAuB,CAAC,aAAa,EAAE,QAAQ;IAezC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;CAGlE"}
@@ -1,36 +0,0 @@
1
- import { Logger } from '../utils/logger.js';
2
- import { oAddress } from '../o-address.js';
3
- export class oAddressResolver {
4
- constructor(address, p2pNode) {
5
- this.address = address;
6
- this.p2pNode = p2pNode;
7
- this.logger = new Logger(this.constructor.name);
8
- }
9
- get transports() {
10
- return [];
11
- }
12
- isHoppingDown(targetAddress) {
13
- return targetAddress.protocol?.includes(this.address.protocol) === false;
14
- }
15
- isLeaderNextHop(targetAddress) {
16
- return targetAddress.protocol?.includes(this.address.protocol) === false;
17
- }
18
- isStaticAddress(targetAddress) {
19
- return targetAddress.toString()?.includes('o://leader') === false;
20
- }
21
- determineNextHopAddress(targetAddress) {
22
- // do we have to start at the root leader or continue forward?
23
- const startAtLeader = targetAddress.protocol?.includes(this.address.protocol) === false;
24
- const prefix = startAtLeader ? 'o://' : this.address.value + '/';
25
- // determine the next hop
26
- const remainingPath = startAtLeader
27
- ? targetAddress.protocol
28
- : targetAddress.protocol.replace(this.address.protocol + '/', '');
29
- const nextHop = remainingPath.replace('/o/', '').split('/').reverse().pop();
30
- const nextHopAddress = new oAddress(prefix + nextHop);
31
- return nextHopAddress;
32
- }
33
- async resolve(address, node) {
34
- return address;
35
- }
36
- }
@@ -1,22 +0,0 @@
1
- import { oAddress } from '../o-address.js';
2
- import { oConnection } from './o-connection.js';
3
- import { oConnectionManagerConfig } from '../interfaces/connection-manager.config.js';
4
- export declare class oConnectionManager {
5
- private cache;
6
- private logger;
7
- private p2pNode;
8
- constructor(config: oConnectionManagerConfig);
9
- /**
10
- * Connect to a given address
11
- * @param address - The address to connect to
12
- * @returns The connection object
13
- */
14
- connect(config: {
15
- address: oAddress;
16
- nextHopAddress: oAddress;
17
- callerAddress?: oAddress;
18
- }): Promise<oConnection>;
19
- isCached(address: oAddress): boolean;
20
- getCachedConnection(address: oAddress): oConnection | null;
21
- }
22
- //# sourceMappingURL=o-connection-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"o-connection-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/lib/o-connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAGtF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,wBAAwB;IAK5C;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE;QACpB,OAAO,EAAE,QAAQ,CAAC;QAClB,cAAc,EAAE,QAAQ,CAAC;QACzB,aAAa,CAAC,EAAE,QAAQ,CAAC;KAC1B,GAAG,OAAO,CAAC,WAAW,CAAC;IAqCxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAIpC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI;CAe3D"}