diff --git a/changelog.md b/changelog.md index 542e95f..7fce514 100644 --- a/changelog.md +++ b/changelog.md @@ -12,6 +12,7 @@ ### Maintenance - refresh release tooling dependencies +- update `@serve.zone/interfaces` to the Spark telemetry contract release ## 2026-05-24 - 5.8.2 diff --git a/package.json b/package.json index 628cdd2..75333d5 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "@push.rocks/taskbuffer": "^8.0.2", "@push.rocks/webjwt": "^1.0.10", "@serve.zone/api": "^5.3.8", - "@serve.zone/interfaces": "^5.9.0", + "@serve.zone/interfaces": "^5.10.0", "@tsclass/tsclass": "^9.5.1" }, "files": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fdededb..23b988e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -144,8 +144,8 @@ importers: specifier: ^5.3.8 version: 5.3.8(@push.rocks/smartserve@2.0.4) '@serve.zone/interfaces': - specifier: ^5.9.0 - version: 5.9.0 + specifier: ^5.10.0 + version: 5.10.0 '@tsclass/tsclass': specifier: ^9.5.1 version: 9.5.1 @@ -2030,6 +2030,9 @@ packages: '@serve.zone/api@5.3.8': resolution: {integrity: sha512-k3IU4mcHuk5pKB+X7rhYWGK+j5hyyDzFoqR3ytzG1iidvgDEIIToQJq+mB3E1v6X1+tI3WyYUaMN/TaZRz0l0w==} + '@serve.zone/interfaces@5.10.0': + resolution: {integrity: sha512-8ZnP1A43UZlYwfd2j+S0Yin//didacIX2Rou9MobRuSFFgi1RQOqQcIWqOINcDk80wBDuYkyMCwHygYxD5i+Ig==} + '@serve.zone/interfaces@5.9.0': resolution: {integrity: sha512-XMXyTXTMcB8AX6zYOMO+Jt5bOv9ujyXj5miE6lrgyT8g+eJ/I6sUFqVNUKJ3LiMk/yFWsPln7HtZeZKDEhaCwQ==} @@ -7776,6 +7779,12 @@ snapshots: transitivePeerDependencies: - '@push.rocks/smartserve' + '@serve.zone/interfaces@5.10.0': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/smartlog-interfaces': 3.0.2 + '@tsclass/tsclass': 9.5.1 + '@serve.zone/interfaces@5.9.0': dependencies: '@api.global/typedrequest-interfaces': 3.0.19 diff --git a/ts/manager.node/classes.clusternode.ts b/ts/manager.node/classes.clusternode.ts index 76c6c21..9694ba7 100644 --- a/ts/manager.node/classes.clusternode.ts +++ b/ts/manager.node/classes.clusternode.ts @@ -59,12 +59,10 @@ export class ClusterNode extends plugins.smartdata.SmartDataDbDoc< public async updateSparkHeartbeat( metricsArg: plugins.servezoneInterfaces.data.IClusterNodeMetrics, - runtimeInfoArg: Record, + runtimeInfoArg: plugins.servezoneInterfaces.data.ISparkNodeRuntimeInfo, ) { this.data.metrics = metricsArg; - (this.data as plugins.servezoneInterfaces.data.IClusterNode['data'] & { - sparkRuntimeInfo?: Record; - }).sparkRuntimeInfo = runtimeInfoArg; + this.data.sparkRuntimeInfo = runtimeInfoArg; this.data.status = 'online'; this.data.lastHealthCheck = Date.now(); if (typeof runtimeInfoArg.swarmNodeId === 'string' && runtimeInfoArg.swarmNodeId) { diff --git a/ts/manager.node/classes.nodemanager.ts b/ts/manager.node/classes.nodemanager.ts index 16d20d7..5caef4c 100644 --- a/ts/manager.node/classes.nodemanager.ts +++ b/ts/manager.node/classes.nodemanager.ts @@ -8,7 +8,7 @@ interface ISparkHeartbeatRequest { nodeId?: string; nodeToken?: string; metrics?: plugins.servezoneInterfaces.data.IClusterNodeMetrics; - runtimeInfo?: Record; + runtimeInfo?: plugins.servezoneInterfaces.data.ISparkNodeRuntimeInfo; } interface ISparkHeartbeatResponse { @@ -223,7 +223,10 @@ export class CloudlyNodeManager { && typeof metrics.timestamp === 'number'; } - private isSparkRuntimeInfo(valueArg: unknown, nodeIdArg: string): valueArg is Record { + private isSparkRuntimeInfo( + valueArg: unknown, + nodeIdArg: string, + ): valueArg is plugins.servezoneInterfaces.data.ISparkNodeRuntimeInfo { if (!valueArg || typeof valueArg !== 'object') { return false; }