@xyo-network/xl1-cli-lib 1.12.5 → 1.12.7

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.
@@ -1,6 +1,5 @@
1
1
  import type { TracerProvider } from '@opentelemetry/api';
2
2
  import { Base, type BaseParams } from '@xylabs/base';
3
- import type { Promisable } from '@xylabs/promise';
4
3
  import type { Config } from '@xyo-network/xl1-protocol-sdk';
5
4
  export interface IActor {
6
5
  start(): Promise<void>;
@@ -11,7 +10,8 @@ export type ActorParams = BaseParams<{
11
10
  traceProvider?: TracerProvider;
12
11
  }>;
13
12
  export declare class Actor<TParams extends ActorParams = ActorParams> extends Base<TParams> implements IActor {
14
- protected readonly _timers: Map<string, ReturnType<typeof setTimeout>>;
13
+ protected readonly _intervals: Map<string, ReturnType<typeof setInterval>>;
14
+ protected readonly _timeouts: Map<string, ReturnType<typeof setTimeout>>;
15
15
  private _active;
16
16
  private readonly _displayName;
17
17
  private readonly _id;
@@ -23,7 +23,7 @@ export declare class Actor<TParams extends ActorParams = ActorParams> extends Ba
23
23
  /**
24
24
  * The timer runs until the actor is deactivated (or you manually stop it).
25
25
  */
26
- registerTimer(timerName: string, callback: () => Promisable<void>, dueTimeMs: number, periodMs: number): void;
26
+ registerTimer(timerName: string, callback: () => Promise<void>, dueTimeMs: number, periodMs: number): void;
27
27
  span<T>(name: string, fn: () => T): T;
28
28
  spanAsync<T>(name: string, fn: () => Promise<T>): Promise<T>;
29
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../../../../src/orchestration/actor/model/Actor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,MAAM,WAAW,MAAM;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,cAAc,CAAA;CAC/B,CAAC,CAAA;AAEF,qBAAa,KAAK,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,IAAI,CAAC,OAAO,CAAE,YAAW,MAAM;IACnG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAY;IAClF,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEhB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,YAAU,EAAE,MAAM,EAAE,OAAO;IAOtE,IAAI,WAAW,WAEd;IAED,IAAI,EAAE,WAEL;IAED,IAAI,IAAI,WAEP;IAED,SAAS,KAAK,SAAS,WAEtB;IAED;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAgCtG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI/B,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlE;;OAEG;IACG,KAAK;IAMX;;;OAGG;IACG,IAAI;CAUX"}
1
+ {"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../../../../src/orchestration/actor/model/Actor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,MAAM,WAAW,MAAM;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,cAAc,CAAA;CAC/B,CAAC,CAAA;AAEF,qBAAa,KAAK,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,IAAI,CAAC,OAAO,CAAE,YAAW,MAAM;IACnG,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAY;IACtF,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAY;IACpF,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEhB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,YAAU,EAAE,MAAM,EAAE,OAAO;IAOtE,IAAI,WAAW,WAEd;IAED,IAAI,EAAE,WAEL;IAED,IAAI,IAAI,WAEP;IAED,SAAS,KAAK,SAAS,WAEtB;IAED;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAmCnG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI/B,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlE;;OAEG;IACG,KAAK;IAMX;;;OAGG;IACG,IAAI;CAgBX"}
@@ -1 +1 @@
1
- {"version":3,"file":"initServices.d.ts","sourceRoot":"","sources":["../../../src/orchestration/initServices.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAM5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAkCrF,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,YAAY,GAAU,SAAS,mBAAmB,KAAG,OAAO,CAAC,wBAAwB,CA+LjG,CAAA"}
1
+ {"version":3,"file":"initServices.d.ts","sourceRoot":"","sources":["../../../src/orchestration/initServices.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAM5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAuBrF,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,YAAY,GAAU,SAAS,mBAAmB,KAAG,OAAO,CAAC,wBAAwB,CA0MjG,CAAA"}
package/dist/node/xl1.mjs CHANGED
@@ -26,14 +26,14 @@ import { Mutex } from "async-mutex";
26
26
 
27
27
  // src/orchestration/actor/model/Actor.ts
28
28
  import { Base } from "@xylabs/base";
29
- import { forget } from "@xylabs/forget";
30
29
  import { IdLogger } from "@xylabs/logger";
31
30
  import { span, spanAsync } from "@xylabs/telemetry";
32
31
  var Actor = class extends Base {
33
32
  static {
34
33
  __name(this, "Actor");
35
34
  }
36
- _timers = /* @__PURE__ */ new Map();
35
+ _intervals = /* @__PURE__ */ new Map();
36
+ _timeouts = /* @__PURE__ */ new Map();
37
37
  _active = false;
38
38
  _displayName;
39
39
  _id;
@@ -66,21 +66,20 @@ var Actor = class extends Base {
66
66
  this.logger?.warn(`Cannot register timer '${timerName}' because actor is not active.`);
67
67
  return;
68
68
  }
69
- const schedulePeriodicRun = /* @__PURE__ */ __name(async () => {
70
- if (!this._active || !this._timers.has(timerName)) return;
71
- try {
72
- await callback();
73
- } catch (error) {
74
- this.logger?.error(`Error in timer '${this.name}:${timerName}': ${error}`);
75
- } finally {
76
- this._timers.set(timerName, setTimeout(() => forget(schedulePeriodicRun(), {
77
- name: `schedulePeriodicRun:${this.name}:${timerName}`
78
- }), periodMs));
79
- }
80
- }, "schedulePeriodicRun");
81
- this._timers.set(timerName, setTimeout(() => forget(schedulePeriodicRun(), {
82
- name: `schedulePeriodicRun(initial):${this.name}:${timerName}`
83
- }), dueTimeMs));
69
+ let running = false;
70
+ const timeoutId = setTimeout(() => {
71
+ const intervalId = setInterval(() => {
72
+ if (!this._active || !this._intervals.has(timerName) || running) return;
73
+ running = true;
74
+ callback().catch((error) => {
75
+ this.logger?.error(`Error in timer '${this.name}:${timerName}': ${error}`);
76
+ }).finally(() => {
77
+ running = false;
78
+ });
79
+ }, periodMs);
80
+ this._intervals.set(timerName, intervalId);
81
+ }, dueTimeMs);
82
+ this._timeouts.set(timerName, timeoutId);
84
83
  this.logger?.log(`Timer '${this.name}:${timerName}' registered: first call after ${dueTimeMs}ms, recurring every ${periodMs}ms.`);
85
84
  }
86
85
  span(name, fn) {
@@ -105,10 +104,14 @@ var Actor = class extends Base {
105
104
  await Promise.resolve();
106
105
  this._active = false;
107
106
  this.logger?.log("Stopping all timers...");
108
- for (const [, timerRef] of this._timers.entries()) {
109
- clearTimeout(timerRef);
107
+ for (const [, timeoutRef] of this._timeouts.entries()) {
108
+ clearTimeout(timeoutRef);
109
+ }
110
+ this._timeouts.clear();
111
+ for (const [, intervalRef] of this._intervals.entries()) {
112
+ clearInterval(intervalRef);
110
113
  }
111
- this._timers.clear();
114
+ this._intervals.clear();
112
115
  this.logger?.log("Stopped.");
113
116
  }
114
117
  };
@@ -1221,16 +1224,6 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
1221
1224
  };
1222
1225
 
1223
1226
  // src/orchestration/initServices.ts
1224
- var telemetryConfig = {
1225
- attributes: {
1226
- serviceName: "xl1-producer",
1227
- serviceVersion: "1.0.0"
1228
- },
1229
- metricsConfig: {
1230
- endpoint: "/metrics",
1231
- port: 9464
1232
- }
1233
- };
1234
1227
  var isStartable = /* @__PURE__ */ __name((value) => {
1235
1228
  return isDefined9(value.start) && typeof value.start === "function";
1236
1229
  }, "isStartable");
@@ -1252,6 +1245,18 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
1252
1245
  ...context,
1253
1246
  statusReporter
1254
1247
  }));
1248
+ const { otlpEndpoint } = config3.telemetry?.otel ?? {};
1249
+ const telemetryConfig = {
1250
+ attributes: {
1251
+ serviceName: "xl1-producer",
1252
+ serviceVersion: "1.0.0"
1253
+ },
1254
+ otlpEndpoint,
1255
+ metricsConfig: {
1256
+ endpoint: "/metrics",
1257
+ port: 9464
1258
+ }
1259
+ };
1255
1260
  const [{ traceProvider, meterProvider }, account] = await Promise.all([
1256
1261
  startupSpanAsync7("initTelemetry", () => initTelemetry(telemetryConfig)),
1257
1262
  startupSpanAsync7("initAccount", () => initAccount(context))
@@ -1500,7 +1505,7 @@ var waitForHostPort = /* @__PURE__ */ __name((host, port) => {
1500
1505
 
1501
1506
  // src/runCLI.ts
1502
1507
  var config;
1503
- var version = isDefined12("1.12.4") ? "1.12.4" : "unknown";
1508
+ var version = isDefined12("1.12.6") ? "1.12.6" : "unknown";
1504
1509
  var getContextFromConfig = /* @__PURE__ */ __name((config3) => {
1505
1510
  const logger = initLogger(config3);
1506
1511
  const orchestrator = new Orchestrator(logger);