feat(provider-contract): add classified unit contact aspect

This commit is contained in:
Codex
2026-07-24 09:31:34 +03:00
parent f02a1d4125
commit eab47bc1fa
10 changed files with 501 additions and 31 deletions
@@ -12,6 +12,7 @@ assert.deepEqual(bundled.map((definition) => definition.id), [
"fleet.positions.current.v3",
"fleet.positions.current.v4",
"fleet.positions.current.v5",
"fleet.units.contacts.current.v1",
"fleet.units.profile.current.v1",
"map.zones.current.v1",
"map.zones.current.v2",
@@ -56,22 +57,28 @@ assert.equal(bundled[5].version, "1.0.0");
assert.equal(bundled[5].ontologyRevision, "ontology.map.moving_object.v3");
assert.deepEqual(bundled[5].semanticTypes, ["map.moving_object"]);
assert.equal(bundled[5].history.mode, "none");
assert.equal(bundled[5].fieldContracts.hardware_port.type, "number");
assert.equal(bundled[5].fieldContracts.device_phone_primary.type, "string");
assert.equal(bundled[6].version, "1.0.0");
assert.equal(bundled[6].ontologyRevision, "ontology.map.zone.v1");
assert.deepEqual(bundled[6].semanticTypes, ["map.zone"]);
assert.deepEqual(bundled[6].fieldContracts.geometry, { type: "geometry", required: true });
assert.equal(bundled[6].fields.includes("dataset_authority"), false);
assert.equal(bundled[7].version, "2.0.0");
assert.equal(bundled[6].ontologyRevision, "ontology.map.moving_object.v3");
assert.deepEqual(bundled[6].semanticTypes, ["map.moving_object"]);
assert.equal(bundled[6].history.mode, "none");
assert.equal(bundled[6].fieldContracts.hardware_port.type, "number");
assert.equal(bundled[7].version, "1.0.0");
assert.equal(bundled[7].ontologyRevision, "ontology.map.zone.v1");
assert.deepEqual(bundled[7].semanticTypes, ["map.zone"]);
assert.deepEqual(bundled[7].fieldContracts.geometry, { type: "geometry", required: true });
assert.deepEqual(bundled[7].fieldContracts.dataset_authority.enum, ["moscow-department-of-transport"]);
assert.equal(bundled[7].fields.includes("dataset_authority"), false);
assert.equal(bundled[8].version, "2.0.0");
assert.equal(bundled[8].ontologyRevision, "ontology.map.zone.v1");
assert.deepEqual(bundled[8].semanticTypes, ["map.zone"]);
assert.deepEqual(bundled[8].fieldContracts.geometry, { type: "geometry", required: true });
assert.deepEqual(bundled[8].fieldContracts.dataset_authority.enum, ["moscow-department-of-transport"]);
assert.equal(Object.keys(bundled[3].fieldContracts).length, bundled[3].fields.length);
assert.equal(Object.keys(bundled[4].fieldContracts).length, bundled[4].fields.length);
assert.equal(Object.keys(bundled[5].fieldContracts).length, bundled[5].fields.length);
assert.equal(Object.keys(bundled[6].fieldContracts).length, bundled[6].fields.length);
assert.equal(Object.keys(bundled[7].fieldContracts).length, bundled[7].fields.length);
assert.equal(Object.keys(bundled[8].fieldContracts).length, bundled[8].fields.length);
const directory = await mkdtemp(join(tmpdir(), "nodedc-edp-definitions-"));
try {