feat(provider-contract): add Gelios v9 telemetry projection

This commit is contained in:
Codex
2026-07-23 23:27:31 +03:00
parent 59f9fc2b26
commit 73364b4acb
10 changed files with 171 additions and 21 deletions
@@ -8,6 +8,9 @@ import {
import {
geliosTelemetryFieldRegistryV1,
} from "../providers/gelios/v8/index.mjs";
import {
geliosTelemetryFieldRegistryV2,
} from "../providers/gelios/v9/index.mjs";
assert.deepEqual(validateTelemetryFieldRegistry(geliosTelemetryFieldRegistryV1), {
ok: true,
@@ -31,6 +34,37 @@ assert.equal(projection.entries.some((entry) => entry.sourceKey === "in_0"), fal
assert.equal(Object.isFrozen(projection), true);
assert.equal(Object.isFrozen(projection.entries), true);
assert.deepEqual(validateTelemetryFieldRegistry(geliosTelemetryFieldRegistryV2), {
ok: true,
errors: [],
});
const expandedProjection = compileTelemetryFieldProjection(
geliosTelemetryFieldRegistryV2,
{
providerPackageId: "gelios.provider.v9",
providerPackageVersion: "9.0.0",
dataProductId: "fleet.positions.current.v5",
surface: "data_product",
},
);
assert.deepEqual(
expandedProjection.entries.map((entry) => entry.sourceKey),
["in_0", "in_1", "in0", "in1"],
);
assert.deepEqual(
expandedProjection.entries.map((entry) => entry.reading.id),
[
"sensor.param.in_0",
"sensor.param.in_1",
"sensor.param.in0",
"sensor.param.in1",
],
);
assert.notEqual(
digestTelemetryFieldRegistry(geliosTelemetryFieldRegistryV2),
digestTelemetryFieldRegistry(geliosTelemetryFieldRegistryV1),
);
const observedExposed = structuredClone(geliosTelemetryFieldRegistryV1);
observedExposed.entries.find((entry) => entry.sourceKey === "in_0").allowedSurfaces.push("foundry");
assert.equal(