feat(provider-contract): add Gelios v9 telemetry projection
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
export {
|
||||
GELIOS_PROVIDER_PACKAGE_ID,
|
||||
GELIOS_PROVIDER_PACKAGE_VERSION,
|
||||
geliosProviderPackageV9,
|
||||
} from "./package.mjs";
|
||||
export { geliosTelemetryFieldRegistryV2 } from "./telemetry-field-registry.mjs";
|
||||
@@ -0,0 +1,22 @@
|
||||
import { geliosProviderPackageV8 } from "../v8/package.mjs";
|
||||
|
||||
export const GELIOS_PROVIDER_PACKAGE_ID = "gelios.provider.v9";
|
||||
export const GELIOS_PROVIDER_PACKAGE_VERSION = "9.0.0";
|
||||
|
||||
const value = structuredClone(geliosProviderPackageV8);
|
||||
value.id = GELIOS_PROVIDER_PACKAGE_ID;
|
||||
value.version = GELIOS_PROVIDER_PACKAGE_VERSION;
|
||||
value.manifest = {
|
||||
...value.manifest,
|
||||
id: "gelios.provider.manifest.v9",
|
||||
version: GELIOS_PROVIDER_PACKAGE_VERSION,
|
||||
};
|
||||
|
||||
export const geliosProviderPackageV9 = deepFreeze(value);
|
||||
|
||||
function deepFreeze(input) {
|
||||
if (!input || typeof input !== "object" || Object.isFrozen(input)) return input;
|
||||
Object.freeze(input);
|
||||
for (const child of Object.values(input)) deepFreeze(child);
|
||||
return input;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import {
|
||||
geliosTelemetryFieldRegistryV1,
|
||||
} from "../v8/telemetry-field-registry.mjs";
|
||||
import {
|
||||
GELIOS_PROVIDER_PACKAGE_ID,
|
||||
GELIOS_PROVIDER_PACKAGE_VERSION,
|
||||
} from "./package.mjs";
|
||||
|
||||
const value = structuredClone(geliosTelemetryFieldRegistryV1);
|
||||
value.id = "gelios.units.current.telemetry.v2";
|
||||
value.version = "2.0.0";
|
||||
value.providerPackage = {
|
||||
id: GELIOS_PROVIDER_PACKAGE_ID,
|
||||
version: GELIOS_PROVIDER_PACKAGE_VERSION,
|
||||
};
|
||||
value.entries = value.entries.map((entry) => {
|
||||
if (!["in_0", "in_1"].includes(entry.sourceKey)) return entry;
|
||||
return {
|
||||
...entry,
|
||||
status: "approved",
|
||||
sensitivity: "operational",
|
||||
valueType: "number",
|
||||
semanticReading: {
|
||||
id: `sensor.param.${entry.sourceKey}`,
|
||||
labelSource: "provider_configured",
|
||||
unitSource: "provider_configured",
|
||||
},
|
||||
allowedSurfaces: ["audit", "data_product", "analytics", "foundry"],
|
||||
};
|
||||
});
|
||||
|
||||
export const geliosTelemetryFieldRegistryV2 = deepFreeze(value);
|
||||
|
||||
function deepFreeze(input) {
|
||||
if (!input || typeof input !== "object" || Object.isFrozen(input)) return input;
|
||||
Object.freeze(input);
|
||||
for (const child of Object.values(input)) deepFreeze(child);
|
||||
return input;
|
||||
}
|
||||
Reference in New Issue
Block a user