@calimero-network/mero-js 7.1.1 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -14,4 +14,6 @@ export { SseClient, WsClient } from './events';
14
14
  export type { SseEventData, WsEventData, AppVersionChangedEvent, GroupMembershipEventData } from './events';
15
15
  export * from './cloud';
16
16
  export * from './capabilities';
17
+ export { DEFAULT_LOCAL_NODE_PORTS, localNodeUrl, nodeEndpoint, probeNodeHealth, discoverLocalNodes, } from './nodeDiscovery';
18
+ export type { DiscoverLocalNodesOptions } from './nodeDiscovery';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGzD,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,YAAY,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAG5G,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGzD,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,YAAY,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAG5G,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -21,4 +21,5 @@ export * from './cloud';
21
21
  // Member capability bitmask constants & helpers
22
22
  export * from './capabilities';
23
23
  // Utilities
24
+ export { DEFAULT_LOCAL_NODE_PORTS, localNodeUrl, nodeEndpoint, probeNodeHealth, discoverLocalNodes, } from './nodeDiscovery';
24
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,uEAAuE;AAEvE,iBAAiB;AACjB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGjD,2CAA2C;AAC3C,cAAc,eAAe,CAAC;AAE9B,kBAAkB;AAClB,cAAc,YAAY,CAAC;AAE3B,mBAAmB;AACnB,cAAc,aAAa,CAAC;AAE5B,iBAAiB;AACjB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAG9D,cAAc;AACd,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAGzE,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI5C,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG/C,uCAAuC;AACvC,cAAc,SAAS,CAAC;AAExB,gDAAgD;AAChD,cAAc,gBAAgB,CAAC;AAE/B,YAAY"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,uEAAuE;AAEvE,iBAAiB;AACjB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGjD,2CAA2C;AAC3C,cAAc,eAAe,CAAC;AAE9B,kBAAkB;AAClB,cAAc,YAAY,CAAC;AAE3B,mBAAmB;AACnB,cAAc,aAAa,CAAC;AAE5B,iBAAiB;AACjB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAG9D,cAAc;AACd,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAGzE,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI5C,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG/C,uCAAuC;AACvC,cAAc,SAAS,CAAC;AAExB,gDAAgD;AAChD,cAAc,gBAAgB,CAAC;AAE/B,YAAY;AACZ,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
package/dist/index.mjs CHANGED
@@ -821,6 +821,18 @@ var AdminApiClient = class {
821
821
  await this.httpClient.get(`/admin-api/applications/${applicationId}/versions`)
822
822
  );
823
823
  }
824
+ /**
825
+ * The application's embedded `wasm-abi/1` manifest. Omit `serviceName` for
826
+ * single-service apps; core 400s if the ABI is absent or the name is ambiguous.
827
+ */
828
+ async getApplicationAbi(applicationId, serviceName) {
829
+ const query = serviceName ? `?service_name=${encodeURIComponent(serviceName)}` : "";
830
+ return unwrap(
831
+ await this.httpClient.get(
832
+ `/admin-api/applications/${applicationId}/abi${query}`
833
+ )
834
+ );
835
+ }
824
836
  // ---- Package Management ----
825
837
  async listPackages() {
826
838
  const r = await this.httpClient.get(
@@ -2370,12 +2382,66 @@ function withCap(mask, cap) {
2370
2382
  function withoutCap(mask, cap) {
2371
2383
  return (mask & ~cap) >>> 0;
2372
2384
  }
2385
+
2386
+ // src/nodeDiscovery.ts
2387
+ var DEFAULT_LOCAL_NODE_PORTS = [2428, 2429, 2528, 2529];
2388
+ var LOCAL_HOST = "localhost";
2389
+ var DEFAULT_PROBE_TIMEOUT_MS = 2e3;
2390
+ function localNodeUrl(port) {
2391
+ return `http://${LOCAL_HOST}:${port}`;
2392
+ }
2393
+ function nodeEndpoint(baseUrl, path) {
2394
+ const base = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
2395
+ return new URL(path, base).toString();
2396
+ }
2397
+ async function probeNodeHealth(baseUrl, options = {}) {
2398
+ const { timeoutMs = DEFAULT_PROBE_TIMEOUT_MS, signal } = options;
2399
+ if (signal?.aborted) return false;
2400
+ const controller = new AbortController();
2401
+ const onAbort = () => controller.abort();
2402
+ const abortSignal = signal;
2403
+ if (abortSignal) abortSignal.addEventListener("abort", onAbort, { once: true });
2404
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
2405
+ try {
2406
+ const url = nodeEndpoint(baseUrl, "admin-api/health");
2407
+ const res = await fetch(url, {
2408
+ method: "GET",
2409
+ signal: controller.signal
2410
+ });
2411
+ if (!res.ok) return false;
2412
+ try {
2413
+ const body = await res.json();
2414
+ const status = body?.data?.status !== void 0 ? body?.data?.status : body?.status;
2415
+ if (status === void 0) return true;
2416
+ return typeof status === "string" && status.toLowerCase() === "alive";
2417
+ } catch {
2418
+ return true;
2419
+ }
2420
+ } catch {
2421
+ return false;
2422
+ } finally {
2423
+ clearTimeout(timer);
2424
+ if (abortSignal) abortSignal.removeEventListener("abort", onAbort);
2425
+ }
2426
+ }
2427
+ async function discoverLocalNodes(options = {}) {
2428
+ const { ports = DEFAULT_LOCAL_NODE_PORTS, timeoutMs, signal } = options;
2429
+ const results = await Promise.all(
2430
+ ports.map(async (port) => {
2431
+ const url = localNodeUrl(port);
2432
+ const ok = await probeNodeHealth(url, { timeoutMs, signal });
2433
+ return ok ? url : null;
2434
+ })
2435
+ );
2436
+ return results.filter((url) => url !== null);
2437
+ }
2373
2438
  export {
2374
2439
  AdminApiClient,
2375
2440
  AuthApiClient,
2376
2441
  AuthRevokedError,
2377
2442
  CAPABILITIES,
2378
2443
  CloudClient,
2444
+ DEFAULT_LOCAL_NODE_PORTS,
2379
2445
  HTTPError,
2380
2446
  LocalStorageTokenStore,
2381
2447
  MemoryTokenStore,
@@ -2403,8 +2469,12 @@ export {
2403
2469
  createRetryableMethod,
2404
2470
  createTimeoutSignal,
2405
2471
  createUniversalHttpClient,
2472
+ discoverLocalNodes,
2406
2473
  hasCap,
2474
+ localNodeUrl,
2475
+ nodeEndpoint,
2407
2476
  parseAuthCallback,
2477
+ probeNodeHealth,
2408
2478
  withCap,
2409
2479
  withRetry,
2410
2480
  withoutCap