@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.
- package/dist/node/index.mjs +36 -31
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/orchestration/actor/model/Actor.d.ts +3 -3
- package/dist/node/orchestration/actor/model/Actor.d.ts.map +1 -1
- package/dist/node/orchestration/initServices.d.ts.map +1 -1
- package/dist/node/xl1.mjs +36 -31
- package/dist/node/xl1.mjs.map +1 -1
- package/package.json +7 -7
- package/src/orchestration/actor/model/Actor.ts +32 -24
- package/src/orchestration/initServices.ts +12 -12
|
@@ -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
|
|
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: () =>
|
|
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,
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
})
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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 [,
|
|
109
|
-
clearTimeout(
|
|
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.
|
|
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.
|
|
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);
|