feat(platform): complete the Gelios external data loop

This commit is contained in:
Codex
2026-07-20 20:45:05 +03:00
parent def9a24e0d
commit 8a7465cf0e
66 changed files with 5730 additions and 123 deletions
@@ -6,7 +6,12 @@ import { join } from "node:path";
import { loadDataProductDefinitions } from "../src/definitions.mjs";
const bundled = await loadDataProductDefinitions();
assert.deepEqual(bundled.map((definition) => definition.id), ["fleet.positions.current.v1"]);
assert.deepEqual(bundled.map((definition) => definition.id), [
"fleet.positions.current.v1",
"fleet.positions.current.v2",
"fleet.positions.current.v3",
"fleet.positions.current.v4",
]);
assert.deepEqual(bundled[0].semanticTypes, ["map.moving_object"]);
assert.equal(bundled[0].ontologyRevision, "ontology.map.moving_object.v1");
assert.equal(bundled[0].history.mode, "sampled");
@@ -15,6 +20,32 @@ assert.equal(bundled[0].history.retentionDays, 90);
assert.equal(bundled[0].fields.includes("geometry"), true);
assert.equal(bundled[0].fields.includes("providerUnitId"), false);
assert.equal(bundled[0].fields.includes("provider_unit_id"), false);
assert.equal(bundled[1].version, "2.0.0");
assert.equal(bundled[1].ontologyRevision, "ontology.map.moving_object.v2");
assert.deepEqual(
bundled[1].fields.filter((field) => field.endsWith("_state")),
["availability_state", "freshness_state", "motion_state", "position_state"],
);
assert.equal(bundled[2].version, "3.0.0");
assert.equal(bundled[2].ontologyRevision, "ontology.map.moving_object.v3");
assert.deepEqual(
bundled[2].fields.filter((field) => field.endsWith("_state")),
["movement_state", "signal_state"],
);
assert.equal(bundled[2].fields.includes("operational_status"), false);
assert.equal(bundled[3].version, "4.0.0");
assert.equal(bundled[3].ontologyRevision, "ontology.map.moving_object.v3");
assert.deepEqual(bundled[3].fieldContracts.signal_state, {
type: "string",
required: true,
enum: ["active", "inactive"],
});
assert.deepEqual(bundled[3].fieldContracts.movement_state, {
type: "string",
required: true,
enum: ["moving", "stopped"],
});
assert.equal(Object.keys(bundled[3].fieldContracts).length, bundled[3].fields.length);
const directory = await mkdtemp(join(tmpdir(), "nodedc-edp-definitions-"));
try {