@calimero-network/mero-js 7.2.0 → 7.3.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 (77) hide show
  1. package/dist/admin-api/admin-client.d.ts +2 -2
  2. package/dist/admin-api/admin-client.d.ts.map +1 -1
  3. package/dist/admin-api/admin-client.js +1 -1
  4. package/dist/admin-api/admin-client.js.map +1 -1
  5. package/dist/admin-api/admin-factory.d.ts +3 -3
  6. package/dist/admin-api/admin-factory.d.ts.map +1 -1
  7. package/dist/admin-api/admin-factory.js +1 -1
  8. package/dist/admin-api/admin-factory.js.map +1 -1
  9. package/dist/admin-api/admin-types.d.ts +1 -1
  10. package/dist/admin-api/admin-types.d.ts.map +1 -1
  11. package/dist/admin-api/index.d.ts +3 -3
  12. package/dist/admin-api/index.d.ts.map +1 -1
  13. package/dist/admin-api/index.js +3 -3
  14. package/dist/admin-api/index.js.map +1 -1
  15. package/dist/auth-api/auth-client.d.ts +2 -2
  16. package/dist/auth-api/auth-client.d.ts.map +1 -1
  17. package/dist/auth-api/auth-factory.d.ts +3 -3
  18. package/dist/auth-api/auth-factory.d.ts.map +1 -1
  19. package/dist/auth-api/auth-factory.js +1 -1
  20. package/dist/auth-api/auth-factory.js.map +1 -1
  21. package/dist/auth-api/auth-types.d.ts +1 -1
  22. package/dist/auth-api/auth-types.d.ts.map +1 -1
  23. package/dist/auth-api/index.d.ts +3 -3
  24. package/dist/auth-api/index.d.ts.map +1 -1
  25. package/dist/auth-api/index.js +3 -3
  26. package/dist/auth-api/index.js.map +1 -1
  27. package/dist/cloud/index.d.ts +2 -2
  28. package/dist/cloud/index.d.ts.map +1 -1
  29. package/dist/cloud/index.js +1 -1
  30. package/dist/cloud/index.js.map +1 -1
  31. package/dist/events/index.d.ts +5 -5
  32. package/dist/events/index.d.ts.map +1 -1
  33. package/dist/events/index.js +2 -2
  34. package/dist/events/index.js.map +1 -1
  35. package/dist/events/sse.d.ts +1 -1
  36. package/dist/events/sse.d.ts.map +1 -1
  37. package/dist/events/ws.d.ts +1 -1
  38. package/dist/events/ws.d.ts.map +1 -1
  39. package/dist/http-client/http-factory.d.ts +1 -1
  40. package/dist/http-client/http-factory.d.ts.map +1 -1
  41. package/dist/http-client/http-factory.js +1 -1
  42. package/dist/http-client/http-factory.js.map +1 -1
  43. package/dist/http-client/index.d.ts +7 -7
  44. package/dist/http-client/index.d.ts.map +1 -1
  45. package/dist/http-client/index.js +6 -6
  46. package/dist/http-client/index.js.map +1 -1
  47. package/dist/http-client/web-client.d.ts +1 -1
  48. package/dist/http-client/web-client.d.ts.map +1 -1
  49. package/dist/http-client/web-client.js +1 -1
  50. package/dist/http-client/web-client.js.map +1 -1
  51. package/dist/index.browser.mjs +2 -2
  52. package/dist/index.browser.mjs.map +4 -4
  53. package/dist/index.cjs +58 -0
  54. package/dist/index.cjs.map +3 -3
  55. package/dist/index.d.ts +18 -16
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +11 -10
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.mjs +58 -0
  60. package/dist/index.mjs.map +3 -3
  61. package/dist/mero-js.d.ts +7 -7
  62. package/dist/mero-js.d.ts.map +1 -1
  63. package/dist/mero-js.js +7 -7
  64. package/dist/mero-js.js.map +1 -1
  65. package/dist/nodeDiscovery.d.ts +48 -0
  66. package/dist/nodeDiscovery.d.ts.map +1 -0
  67. package/dist/nodeDiscovery.js +102 -0
  68. package/dist/nodeDiscovery.js.map +1 -0
  69. package/dist/rpc/index.d.ts +1 -1
  70. package/dist/rpc/index.d.ts.map +1 -1
  71. package/dist/token-store/index.d.ts +1 -1
  72. package/dist/token-store/index.d.ts.map +1 -1
  73. package/dist/types/index.d.ts +1 -1
  74. package/dist/types/index.d.ts.map +1 -1
  75. package/dist/types/index.js +1 -1
  76. package/dist/types/index.js.map +1 -1
  77. package/package.json +3 -2
package/dist/index.cjs CHANGED
@@ -24,6 +24,7 @@ __export(index_exports, {
24
24
  AuthRevokedError: () => AuthRevokedError,
25
25
  CAPABILITIES: () => CAPABILITIES,
26
26
  CloudClient: () => CloudClient,
27
+ DEFAULT_LOCAL_NODE_PORTS: () => DEFAULT_LOCAL_NODE_PORTS,
27
28
  HTTPError: () => HTTPError,
28
29
  LocalStorageTokenStore: () => LocalStorageTokenStore,
29
30
  MemoryTokenStore: () => MemoryTokenStore,
@@ -51,8 +52,12 @@ __export(index_exports, {
51
52
  createRetryableMethod: () => createRetryableMethod,
52
53
  createTimeoutSignal: () => createTimeoutSignal,
53
54
  createUniversalHttpClient: () => createUniversalHttpClient,
55
+ discoverLocalNodes: () => discoverLocalNodes,
54
56
  hasCap: () => hasCap,
57
+ localNodeUrl: () => localNodeUrl,
58
+ nodeEndpoint: () => nodeEndpoint,
55
59
  parseAuthCallback: () => parseAuthCallback,
60
+ probeNodeHealth: () => probeNodeHealth,
56
61
  withCap: () => withCap,
57
62
  withRetry: () => withRetry,
58
63
  withoutCap: () => withoutCap
@@ -2443,4 +2448,57 @@ function withCap(mask, cap) {
2443
2448
  function withoutCap(mask, cap) {
2444
2449
  return (mask & ~cap) >>> 0;
2445
2450
  }
2451
+
2452
+ // src/nodeDiscovery.ts
2453
+ var DEFAULT_LOCAL_NODE_PORTS = [2428, 2429, 2528, 2529];
2454
+ var LOCAL_HOST = "localhost";
2455
+ var DEFAULT_PROBE_TIMEOUT_MS = 2e3;
2456
+ function localNodeUrl(port) {
2457
+ return `http://${LOCAL_HOST}:${port}`;
2458
+ }
2459
+ function nodeEndpoint(baseUrl, path) {
2460
+ const base = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
2461
+ return new URL(path, base).toString();
2462
+ }
2463
+ async function probeNodeHealth(baseUrl, options = {}) {
2464
+ const { timeoutMs = DEFAULT_PROBE_TIMEOUT_MS, signal } = options;
2465
+ if (signal?.aborted) return false;
2466
+ const controller = new AbortController();
2467
+ const onAbort = () => controller.abort();
2468
+ const abortSignal = signal;
2469
+ if (abortSignal) abortSignal.addEventListener("abort", onAbort, { once: true });
2470
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
2471
+ try {
2472
+ const url = nodeEndpoint(baseUrl, "admin-api/health");
2473
+ const res = await fetch(url, {
2474
+ method: "GET",
2475
+ signal: controller.signal
2476
+ });
2477
+ if (!res.ok) return false;
2478
+ try {
2479
+ const body = await res.json();
2480
+ const status = body?.data?.status !== void 0 ? body?.data?.status : body?.status;
2481
+ if (status === void 0) return true;
2482
+ return typeof status === "string" && status.toLowerCase() === "alive";
2483
+ } catch {
2484
+ return true;
2485
+ }
2486
+ } catch {
2487
+ return false;
2488
+ } finally {
2489
+ clearTimeout(timer);
2490
+ if (abortSignal) abortSignal.removeEventListener("abort", onAbort);
2491
+ }
2492
+ }
2493
+ async function discoverLocalNodes(options = {}) {
2494
+ const { ports = DEFAULT_LOCAL_NODE_PORTS, timeoutMs, signal } = options;
2495
+ const results = await Promise.all(
2496
+ ports.map(async (port) => {
2497
+ const url = localNodeUrl(port);
2498
+ const ok = await probeNodeHealth(url, { timeoutMs, signal });
2499
+ return ok ? url : null;
2500
+ })
2501
+ );
2502
+ return results.filter((url) => url !== null);
2503
+ }
2446
2504
  //# sourceMappingURL=index.cjs.map