@utiliread/primitives 1.0.0-125 → 1.0.0-127

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.ts","src/repository.ts","src/registers/index.ts","src/registers/acoustic-noise.ts","src/measures/noise.ts","src/registers/ambient-temperature.ts","src/measures/temperature.ts","src/registers/consumer.ts","src/registers/cooling-energy-inlet.ts","src/measures/energy.ts","src/registers/cooling-energy-outlet.ts","src/registers/cooling-energy.ts","src/registers/cooling.ts","src/registers/device-addresses-kamdraft.ts","src/registers/device-addresses-msisdn.ts","src/registers/device-addresses-tchlr.ts","src/registers/device-addresses-wmbus.ts","src/registers/device-date-time.ts","src/measures/time.ts","src/registers/device-date.ts","src/registers/device-nominal-diameter.ts","src/registers/device-permanent-volume-flow.ts","src/registers/device-registers.ts","src/registers/device-software-version.ts","src/registers/device-time.ts","src/registers/device.ts","src/registers/diehl-infocode.ts","src/measures/infocode.ts","src/registers/electrical-energy.ts","src/registers/energy-inlet.ts","src/registers/energy-outlet.ts","src/registers/error-operating-time.ts","src/measures/duration.ts","src/registers/flow-temperature-aux.ts","src/registers/flow-temperature-inlet.ts","src/registers/flow-temperature-outlet.ts","src/registers/flow-temperature.ts","src/registers/heat-energy-inlet.ts","src/registers/heat-energy-outlet.ts","src/registers/heat-energy.ts","src/registers/infocode.ts","src/registers/kamstrup-module-type.ts","src/registers/kamstrup-multical-infocode.ts","src/registers/landis-gyr-infocode.ts","src/registers/landis-gyr-mbus-status.ts","src/registers/device-samples.ts","src/registers/mass-flow-inlet.ts","src/measures/mass-flow.ts","src/registers/mass-flow-outlet.ts","src/registers/mass-flow.ts","src/registers/mass-inlet.ts","src/measures/mass.ts","src/registers/mass-outlet.ts","src/registers/mass.ts","src/registers/mbus-format-string-signature.ts","src/registers/none.ts","src/registers/operating-time.ts","src/registers/place.ts","src/registers/power-inlet.ts","src/measures/power.ts","src/registers/power-outlet.ts","src/registers/power.ts","src/registers/pressure-inlet.ts","src/measures/pressure.ts","src/registers/pressure-outlet.ts","src/registers/pressure.ts","src/registers/radiator-temperature.ts","src/registers/reactive-energy.ts","src/measures/reactive-energy.ts","src/registers/relative-humidity.ts","src/registers/remaining-battery-time.ts","src/registers/time-last-exact-overhearing-arrived.ts","src/registers/time-last-installation-mounted.ts","src/registers/time-last-possible-candidate-overhearing-arrived.ts","src/registers/time-last-sampled.ts","src/registers/time.ts","src/registers/volume-flow-inlet.ts","src/measures/volume-flow.ts","src/registers/volume-flow-outlet.ts","src/registers/volume-flow.ts","src/registers/volume-inlet.ts","src/measures/volume.ts","src/registers/volume-outlet.ts","src/registers/volume-pulse-input-a.ts","src/registers/volume-pulse-input-b.ts","src/registers/volume.ts","src/luxon-local.ts","src/step.ts","src/number-formatter.ts","src/breakdown-rule.ts","src/time-or-rule.ts","src/precision-number.ts","src/register-convention.ts","src/register-utils.ts","src/register-library.ts"],"sourcesContent":["import \"./repository\"; // We need this to get the Repository namespace exported\n\nimport * as registers2 from \"./registers\";\n\nimport type {\n Consumer,\n Device,\n DeviceSample,\n KamdraftDeviceAddress,\n MsisdnDeviceAddress,\n Place,\n TchlrDeviceAddress,\n WMBusDeviceAddress,\n} from \"./registers\";\n\nimport { Duration } from \"./luxon-local\";\nimport type { RegisterDefinition } from \"./register-definition\";\nimport type { RegisterId } from \"./register-id\";\n\nexport { DayOfWeek, Step } from \"./step\";\nexport {\n NumberFormatter,\n invariantDecimalSeparator,\n localeDecimalSeparator,\n} from \"./number-formatter\";\n\nexport type { AggregateId } from \"./aggregate-id\";\nexport type { BreakdownPeriod } from \"./breakdown-rule\";\nexport { BreakdownRule } from \"./breakdown-rule\";\nexport type { MeasureId } from \"./measure-id\";\nexport type { Medium } from \"./medium\";\nexport type { Optional } from \"./optional\";\nexport { PrecisionNumber } from \"./precision-number\";\nexport { RegisterConvention } from \"./register-convention\";\nexport type { RegisterDefinition } from \"./register-definition\";\nexport type { RegisterId } from \"./register-id\";\nexport { RegisterLibrary } from \"./register-library\";\nexport { Repository } from \"./repository\";\nexport { TimeOrRule } from \"./time-or-rule\";\nexport type { UnitId } from \"./unit-id\";\n\n// Hack to force parcel to include Duration in typings file\n// Otherwise it seems to only include DateTime in the dist/index.d.ts which causes the file to be invalid\n// The reason for the ./parcel-workaround file is that it seems to generate the expected typings.\n// If we did `import { Duration } from \"luxon\"` instead and re-exported it as `__Duration` then it seems invalid.\nexport { Duration as __Duration };\n\nexport const registers: Record<RegisterId, RegisterDefinition> = {\n ...registers2,\n};\n\nexport type {\n Consumer as __Consumer,\n Device as __Device,\n DeviceSample as __DeviceSample,\n KamdraftDeviceAddress as __KamdraftDeviceAddress,\n MsisdnDeviceAddress as __MsisdnDeviceAddress,\n Place as __Place,\n TchlrDeviceAddress as __TchlrDeviceAddress,\n WMBusDeviceAddress as __WMBusDeviceAddress,\n};\n\nexport declare namespace SampleValue {\n export type {\n Consumer,\n Device,\n DeviceSample,\n KamdraftDeviceAddress,\n MsisdnDeviceAddress,\n Place,\n TchlrDeviceAddress,\n WMBusDeviceAddress,\n };\n}\n","// This is clearly not correct but it provides some amazing type safety\nexport type Repository = \"some/repo\";\n\nexport function Repository(repo: string): Repository;\nexport function Repository(team: string, name: string): Repository;\nexport function Repository(repoOrTeam: string, name?: string): Repository {\n const repo = name ? `${repoOrTeam}/${name}` : repoOrTeam;\n if (!Repository.isRepository(repo)) {\n throw new TypeError(\"Invalid repository format\");\n }\n return repo;\n}\n\nconst PART_REGEX = new RegExp(/[a-z][a-z0-9-]*/);\n\nexport namespace Repository {\n export function isRepository(input: string): input is Repository {\n const parts = input.split(\"/\");\n return parts.length === 2 && !parts.some((x) => !PART_REGEX.test(x));\n }\n\n export function split(repo: Repository) {\n const parts = repo.split(\"/\");\n return {\n team: parts[0],\n name: parts[1],\n };\n }\n}\n","export * from \"./acoustic-noise\";\nexport * from \"./ambient-temperature\";\nexport * from \"./consumer\";\nexport * from \"./cooling-energy-inlet\";\nexport * from \"./cooling-energy-outlet\";\nexport * from \"./cooling-energy\";\nexport * from \"./cooling\";\nexport * from \"./device-addresses-kamdraft\";\nexport * from \"./device-addresses-msisdn\";\nexport * from \"./device-addresses-tchlr\";\nexport * from \"./device-addresses-wmbus\";\nexport * from \"./device-date-time\";\nexport * from \"./device-date\";\nexport * from \"./device-nominal-diameter\";\nexport * from \"./device-permanent-volume-flow\";\nexport * from \"./device-registers\";\nexport * from \"./device-software-version\";\nexport * from \"./device-time\";\nexport * from \"./device\";\nexport * from \"./diehl-infocode\";\nexport * from \"./electrical-energy\";\nexport * from \"./energy-inlet\";\nexport * from \"./energy-outlet\";\nexport * from \"./error-operating-time\";\nexport * from \"./flow-temperature-aux\";\nexport * from \"./flow-temperature-inlet\";\nexport * from \"./flow-temperature-outlet\";\nexport * from \"./flow-temperature\";\nexport * from \"./heat-energy-inlet\";\nexport * from \"./heat-energy-outlet\";\nexport * from \"./heat-energy\";\nexport * from \"./infocode\";\nexport * from \"./kamstrup-module-type\";\nexport * from \"./kamstrup-multical-infocode\";\nexport * from \"./landis-gyr-infocode\";\nexport * from \"./landis-gyr-mbus-status\";\nexport * from \"./device-samples\";\nexport * from \"./mass-flow-inlet\";\nexport * from \"./mass-flow-outlet\";\nexport * from \"./mass-flow\";\nexport * from \"./mass-inlet\";\nexport * from \"./mass-outlet\";\nexport * from \"./mass\";\nexport * from \"./mbus-format-string-signature\";\nexport * from \"./none\";\nexport * from \"./operating-time\";\nexport * from \"./place\";\nexport * from \"./power-inlet\";\nexport * from \"./power-outlet\";\nexport * from \"./power\";\nexport * from \"./pressure-inlet\";\nexport * from \"./pressure-outlet\";\nexport * from \"./pressure\";\nexport * from \"./radiator-temperature\";\nexport * from \"./reactive-energy\";\nexport * from \"./relative-humidity\";\nexport * from \"./remaining-battery-time\";\nexport * from \"./time-last-exact-overhearing-arrived\";\nexport * from \"./time-last-installation-mounted\";\nexport * from \"./time-last-possible-candidate-overhearing-arrived\";\nexport * from \"./time-last-sampled\";\nexport * from \"./time\";\nexport * from \"./volume-flow-inlet\";\nexport * from \"./volume-flow-outlet\";\nexport * from \"./volume-flow\";\nexport * from \"./volume-inlet\";\nexport * from \"./volume-outlet\";\nexport * from \"./volume-pulse-input-a\";\nexport * from \"./volume-pulse-input-b\";\nexport * from \"./volume\";\n","import { sqUnits, units } from \"../measures/noise\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const acousticNoise: RegisterDefinition = {\n id: \"acousticNoise\",\n measure: \"noise\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minAcousticNoise: RegisterDefinition = {\n id: \"minAcousticNoise\",\n measure: \"noise\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxAcousticNoise: RegisterDefinition = {\n id: \"maxAcousticNoise\",\n measure: \"noise\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgAcousticNoise: RegisterDefinition = {\n id: \"avgAcousticNoise\",\n measure: \"noise\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumAcousticNoise: RegisterDefinition = {\n id: \"sumAcousticNoise\",\n measure: \"noise\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntAcousticNoise: RegisterDefinition = {\n id: \"cntAcousticNoise\",\n measure: \"noise\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqAcousticNoise: RegisterDefinition = {\n id: \"ssqAcousticNoise\",\n measure: \"noise\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"decibel\"];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\"decibel2\"];\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const ambientTemperature: RegisterDefinition = {\n id: \"ambientTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minAmbientTemperature: RegisterDefinition = {\n id: \"minAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxAmbientTemperature: RegisterDefinition = {\n id: \"maxAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgAmbientTemperature: RegisterDefinition = {\n id: \"avgAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumAmbientTemperature: RegisterDefinition = {\n id: \"sumAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntAmbientTemperature: RegisterDefinition = {\n id: \"cntAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqAmbientTemperature: RegisterDefinition = {\n id: \"ssqAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"celcius\", \"kelvin\", \"fahrenheit\"];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"celcius2\",\n \"kelvin2\",\n \"fahrenheit2\",\n];\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const consumer: RegisterDefinition = {\n id: \"consumer\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n immediate: true,\n};\n\nexport interface Consumer {\n id: number;\n name: string;\n consumerNumber: string;\n emailAddress: string;\n phoneNumber: string;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const coolingEnergyVolumeInInlet: RegisterDefinition = {\n id: \"coolingEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffCoolingEnergyVolumeInInlet: RegisterDefinition = {\n id: \"diffCoolingEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntCoolingEnergyVolumeInInlet: RegisterDefinition = {\n id: \"cntCoolingEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"milliWattHour\",\n \"wattHour\",\n \"kiloWattHour\",\n \"megaWattHour\",\n \"gigaWattHour\",\n \"calorie\",\n \"kiloCalorie\",\n \"megaCalorie\",\n \"gigaCalorie\",\n];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const coolingEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"coolingEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffCoolingEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"diffCoolingEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntCoolingEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"cntCoolingEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const coolingEnergy: RegisterDefinition = {\n id: \"coolingEnergy\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffCoolingEnergy: RegisterDefinition = {\n id: \"diffCoolingEnergy\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntCoolingEnergy: RegisterDefinition = {\n id: \"cntCoolingEnergy\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletMinusOutletFlowTemperatureDifference: RegisterDefinition = {\n id: \"inletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"minInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n };\n\nexport const maxInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"maxInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n };\n\nexport const avgInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"avgInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n };\n\nexport const sumInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"sumInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n };\n\nexport const cntInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"cntInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n };\n\nexport const ssqInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"ssqInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n };\n\nexport const outletMinusInletFlowTemperatureDifference: RegisterDefinition = {\n id: \"outletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"minOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n };\n\nexport const maxOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"maxOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n };\n\nexport const avgOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"avgOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n };\n\nexport const sumOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"sumOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n };\n\nexport const cntOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"cntOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n };\n\nexport const ssqOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"ssqOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n };\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const kamdraftDeviceAddresses: RegisterDefinition = {\n id: \"kamdraftDeviceAddresses\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface KamdraftDeviceAddress {\n _t: \"kamdraft\";\n serialNumber: number;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const msisdnDeviceAddresses: RegisterDefinition = {\n id: \"msisdnDeviceAddresses\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface MsisdnDeviceAddress {\n _t: \"msisdn\";\n msisdn: number;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const tchlrDeviceAddresses: RegisterDefinition = {\n id: \"tchlrDeviceAddresses\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface TchlrDeviceAddress {\n _t: \"tchlr\";\n serialNumber: number;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const wMBusDeviceAddresses: RegisterDefinition = {\n id: \"wMBusDeviceAddresses\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface WMBusDeviceAddress {\n _t: \"wmbus\";\n manufacturerCode: number;\n serialNumber: number;\n version: number;\n type: number;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/time\";\n\nexport const deviceDateTime: RegisterDefinition = {\n id: \"deviceDateTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/time\";\n\nexport const deviceDate: RegisterDefinition = {\n id: \"deviceDate\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const deviceNominalDiameter: RegisterDefinition = {\n id: \"deviceNominalDiameter\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const devicePermanentVolumeFlow: RegisterDefinition = {\n id: \"devicePermanentVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"instant\",\n units: [\"cubicMetersPerHour\"],\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const deviceRegisters: RegisterDefinition = {\n id: \"deviceRegisters\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const deviceSoftwareVersion: RegisterDefinition = {\n id: \"deviceSoftwareVersion\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/time\";\n\nexport const deviceTime: RegisterDefinition = {\n id: \"deviceTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const device: RegisterDefinition = {\n id: \"device\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface Device {\n id: number;\n deviceNumber: string;\n manufacturerName: string;\n modelName: string;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const diehlInfocode: RegisterDefinition = {\n id: \"diehlInfocode\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diehlInfocodeType1: RegisterDefinition = {\n id: \"diehlInfocodeType1\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diehlInfocodeType2: RegisterDefinition = {\n id: \"diehlInfocodeType2\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diehlInfocodeType3: RegisterDefinition = {\n id: \"diehlInfocodeType3\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diehlInfocodeType4: RegisterDefinition = {\n id: \"diehlInfocodeType4\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"unitless\", \"json\"];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const electricalEnergy: RegisterDefinition = {\n id: \"electricalEnergy\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffElectricalEnergy: RegisterDefinition = {\n id: \"diffElectricalEnergy\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntElectricalEnergy: RegisterDefinition = {\n id: \"cntElectricalEnergy\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const kamstrupE8Inlet: RegisterDefinition = {\n id: \"kamstrupE8Inlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units: [\"cubicMeterCelcius\", ...units],\n};\n\nexport const diffKamstrupE8Inlet: RegisterDefinition = {\n id: \"diffKamstrupE8Inlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units: [\"cubicMeterCelcius\", ...units],\n};\n\nexport const cntKamstrupE8Inlet: RegisterDefinition = {\n id: \"cntKamstrupE8Inlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const kamstrupE9Outlet: RegisterDefinition = {\n id: \"kamstrupE9Outlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units: [\"cubicMeterCelcius\", ...units],\n};\n\nexport const diffKamstrupE9Outlet: RegisterDefinition = {\n id: \"diffKamstrupE9Outlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units: [\"cubicMeterCelcius\", ...units],\n};\n\nexport const cntKamstrupE9Outlet: RegisterDefinition = {\n id: \"cntKamstrupE9Outlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/duration\";\n\nexport const errorOperatingTime: RegisterDefinition = {\n id: \"errorOperatingTime\",\n measure: \"duration\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffErrorOperatingTime: RegisterDefinition = {\n id: \"diffErrorOperatingTime\",\n measure: \"duration\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntErrorOperatingTime: RegisterDefinition = {\n id: \"cntErrorOperatingTime\",\n measure: \"duration\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"second\",\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"year\",\n];\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const auxFlowTemperature: RegisterDefinition = {\n id: \"auxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minAuxFlowTemperature: RegisterDefinition = {\n id: \"minAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxAuxFlowTemperature: RegisterDefinition = {\n id: \"maxAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgAuxFlowTemperature: RegisterDefinition = {\n id: \"avgAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumAuxFlowTemperature: RegisterDefinition = {\n id: \"sumAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntAuxFlowTemperature: RegisterDefinition = {\n id: \"cntAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqAuxFlowTemperature: RegisterDefinition = {\n id: \"ssqAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletFlowTemperature: RegisterDefinition = {\n id: \"inletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletFlowTemperature: RegisterDefinition = {\n id: \"minInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletFlowTemperature: RegisterDefinition = {\n id: \"maxInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletFlowTemperature: RegisterDefinition = {\n id: \"avgInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletFlowTemperature: RegisterDefinition = {\n id: \"sumInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletFlowTemperature: RegisterDefinition = {\n id: \"cntInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletFlowTemperature: RegisterDefinition = {\n id: \"ssqInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletFlowTemperature: RegisterDefinition = {\n id: \"outletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletFlowTemperature: RegisterDefinition = {\n id: \"minOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletFlowTemperature: RegisterDefinition = {\n id: \"maxOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletFlowTemperature: RegisterDefinition = {\n id: \"avgOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletFlowTemperature: RegisterDefinition = {\n id: \"sumOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletFlowTemperature: RegisterDefinition = {\n id: \"cntOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletFlowTemperature: RegisterDefinition = {\n id: \"ssqOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const flowTemperature: RegisterDefinition = {\n id: \"flowTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minFlowTemperature: RegisterDefinition = {\n id: \"minFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxFlowTemperature: RegisterDefinition = {\n id: \"maxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgFlowTemperature: RegisterDefinition = {\n id: \"avgFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumFlowTemperature: RegisterDefinition = {\n id: \"sumFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntFlowTemperature: RegisterDefinition = {\n id: \"cntFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqFlowTemperature: RegisterDefinition = {\n id: \"ssqFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const heatEnergyVolumeInInlet: RegisterDefinition = {\n id: \"heatEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyVolumeInInlet: RegisterDefinition = {\n id: \"diffHeatEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyVolumeInInlet: RegisterDefinition = {\n id: \"cntHeatEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff1VolumeInInlet: RegisterDefinition = {\n id: \"heatEnergyTariff1VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff1VolumeInInlet: RegisterDefinition = {\n id: \"diffHeatEnergyTariff1VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff1VolumeInInlet: RegisterDefinition = {\n id: \"cntHeatEnergyTariff1VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff2VolumeInInlet: RegisterDefinition = {\n id: \"heatEnergyTariff2VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff2VolumeInInlet: RegisterDefinition = {\n id: \"diffHeatEnergyTariff2VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff2VolumeInInlet: RegisterDefinition = {\n id: \"cntHeatEnergyTariff2VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const heatEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"heatEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"diffHeatEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"cntHeatEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff1VolumeInOutlet: RegisterDefinition = {\n id: \"heatEnergyTariff1VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff1VolumeInOutlet: RegisterDefinition = {\n id: \"diffHeatEnergyTariff1VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff1VolumeInOutlet: RegisterDefinition = {\n id: \"cntHeatEnergyTariff1VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff2VolumeInOutlet: RegisterDefinition = {\n id: \"heatEnergyTariff2VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff2VolumeInOutlet: RegisterDefinition = {\n id: \"diffHeatEnergyTariff2VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff2VolumeInOutlet: RegisterDefinition = {\n id: \"cntHeatEnergyTariff2VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const heatEnergy: RegisterDefinition = {\n id: \"heatEnergy\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergy: RegisterDefinition = {\n id: \"diffHeatEnergy\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergy: RegisterDefinition = {\n id: \"cntHeatEnergy\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff1: RegisterDefinition = {\n id: \"heatEnergyTariff1\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff1: RegisterDefinition = {\n id: \"diffHeatEnergyTariff1\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff1: RegisterDefinition = {\n id: \"cntHeatEnergyTariff1\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff2: RegisterDefinition = {\n id: \"heatEnergyTariff2\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff2: RegisterDefinition = {\n id: \"diffHeatEnergyTariff2\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff2: RegisterDefinition = {\n id: \"cntHeatEnergyTariff2\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const infocode: RegisterDefinition = {\n id: \"infocode\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const kamstrupModuleType: RegisterDefinition = {\n id: \"kamstrupModuleType\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const kamstrupMulticalInfocode: RegisterDefinition = {\n id: \"kamstrupMulticalInfocode\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType1: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType1\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType2: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType2\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType3: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType3\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType4: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType4\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType5: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType5\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType6: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType6\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType7: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType7\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const landisGyrInfocode: RegisterDefinition = {\n id: \"landisGyrInfocode\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const landisGyrInfocodeType1: RegisterDefinition = {\n id: \"landisGyrInfocodeType1\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const landisGyrInfocodeType2: RegisterDefinition = {\n id: \"landisGyrInfocodeType2\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const landisGyrMBusStatus: RegisterDefinition = {\n id: \"landisGyrMBusStatus\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const landisGyrMBusStatusType1: RegisterDefinition = {\n id: \"landisGyrMBusStatusType1\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const landisGyrMBusStatusType2: RegisterDefinition = {\n id: \"landisGyrMBusStatusType2\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport type { RegisterId } from \"../register-id\";\nimport type { UnitId } from \"../unit-id\";\n\nexport const legacyDeviceSamples: RegisterDefinition = {\n id: \"legacyDeviceSamples\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport const deviceSamplesOnLastMount: RegisterDefinition = {\n id: \"deviceSamplesOnLastMount\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport const deviceSamplesOnLastUnmount: RegisterDefinition = {\n id: \"deviceSamplesOnLastUnmount\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport type DeviceSamples = DeviceSample[];\n\nexport interface DeviceSample {\n register: RegisterId;\n instantOrPeriodEnd: string;\n value: number;\n precision: number;\n unit: UnitId;\n}\n","import { sqUnits, units } from \"../measures/mass-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletMassFlow: RegisterDefinition = {\n id: \"inletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletMassFlow: RegisterDefinition = {\n id: \"minInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletMassFlow: RegisterDefinition = {\n id: \"maxInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletMassFlow: RegisterDefinition = {\n id: \"avgInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletMassFlow: RegisterDefinition = {\n id: \"sumInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletMassFlow: RegisterDefinition = {\n id: \"cntInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletMassFlow: RegisterDefinition = {\n id: \"ssqInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"gramsPerSecond\",\n \"gramsPerMinute\",\n \"gramsPerHour\",\n \"kiloGramsPerSecond\",\n \"kiloGramsPerMinute\",\n \"kiloGramsPerHour\",\n];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"gramsPerSecond2\",\n \"gramsPerMinute2\",\n \"gramsPerHour2\",\n \"kiloGramsPerSecond2\",\n \"kiloGramsPerMinute2\",\n \"kiloGramsPerHour2\",\n];\n","import { sqUnits, units } from \"../measures/mass-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletMassFlow: RegisterDefinition = {\n id: \"outletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletMassFlow: RegisterDefinition = {\n id: \"minOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletMassFlow: RegisterDefinition = {\n id: \"maxOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletMassFlow: RegisterDefinition = {\n id: \"avgOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletMassFlow: RegisterDefinition = {\n id: \"sumOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletMassFlow: RegisterDefinition = {\n id: \"cntOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletMassFlow: RegisterDefinition = {\n id: \"ssqOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/mass-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const massFlow: RegisterDefinition = {\n id: \"massFlow\",\n measure: \"massFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minMassFlow: RegisterDefinition = {\n id: \"minMassFlow\",\n measure: \"massFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxMassFlow: RegisterDefinition = {\n id: \"maxMassFlow\",\n measure: \"massFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgMassFlow: RegisterDefinition = {\n id: \"avgMassFlow\",\n measure: \"massFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumMassFlow: RegisterDefinition = {\n id: \"sumMassFlow\",\n measure: \"massFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntMassFlow: RegisterDefinition = {\n id: \"cntMassFlow\",\n measure: \"massFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqMassFlow: RegisterDefinition = {\n id: \"ssqMassFlow\",\n measure: \"massFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/mass\";\n\nexport const inletMass: RegisterDefinition = {\n id: \"inletMass\",\n measure: \"mass\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffInletMass: RegisterDefinition = {\n id: \"diffInletMass\",\n measure: \"mass\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntInletMass: RegisterDefinition = {\n id: \"cntInletMass\",\n measure: \"mass\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"gram\",\n \"kiloGram\",\n \"tonne\",\n \"ounce\",\n \"pound\",\n \"ton\",\n];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/mass\";\n\nexport const outletMass: RegisterDefinition = {\n id: \"outletMass\",\n measure: \"mass\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffOutletMass: RegisterDefinition = {\n id: \"diffOutletMass\",\n measure: \"mass\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntOutletMass: RegisterDefinition = {\n id: \"cntOutletMass\",\n measure: \"mass\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/mass\";\n\nexport const mass: RegisterDefinition = {\n id: \"mass\",\n measure: \"mass\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffMass: RegisterDefinition = {\n id: \"diffMass\",\n measure: \"mass\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntMass: RegisterDefinition = {\n id: \"cntMass\",\n measure: \"mass\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const mBusFormatStringSignature: RegisterDefinition = {\n id: \"mBusFormatStringSignature\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const none: RegisterDefinition = {\n id: \"none\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/duration\";\n\nexport const operatingTime: RegisterDefinition = {\n id: \"operatingTime\",\n measure: \"duration\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffOperatingTime: RegisterDefinition = {\n id: \"diffOperatingTime\",\n measure: \"duration\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntOperatingTime: RegisterDefinition = {\n id: \"cntOperatingTime\",\n measure: \"duration\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const place: RegisterDefinition = {\n id: \"place\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport const lastPlace: RegisterDefinition = {\n id: \"lastPlace\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface Place {\n id: number;\n name: string;\n placeNumber: string;\n longitude?: number;\n latitude?: number;\n address?: string;\n addressPlace?: string;\n addressPostalCode?: string;\n addressCity?: string;\n darAccessAddressId?: string;\n darAddressId?: string;\n}\n","import { sqUnits, units } from \"../measures/power\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletPower: RegisterDefinition = {\n id: \"inletPower\",\n measure: \"power\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletPower: RegisterDefinition = {\n id: \"minInletPower\",\n measure: \"power\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletPower: RegisterDefinition = {\n id: \"maxInletPower\",\n measure: \"power\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletPower: RegisterDefinition = {\n id: \"avgInletPower\",\n measure: \"power\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletPower: RegisterDefinition = {\n id: \"sumInletPower\",\n measure: \"power\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletPower: RegisterDefinition = {\n id: \"cntInletPower\",\n measure: \"power\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletPower: RegisterDefinition = {\n id: \"ssqInletPower\",\n measure: \"power\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"milliWatt\",\n \"watt\",\n \"kiloWatt\",\n \"megaWatt\",\n \"gigaWatt\",\n \"joulesPerSecond\",\n \"joulesPerMinute\",\n \"joulesPerHour\",\n];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"milliWatt2\",\n \"watt2\",\n \"kiloWatt2\",\n \"megaWatt2\",\n \"gigaWatt2\",\n \"joulesPerSecond2\",\n \"joulesPerMinute2\",\n \"joulesPerHour2\",\n];\n","import { sqUnits, units } from \"../measures/power\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletPower: RegisterDefinition = {\n id: \"outletPower\",\n measure: \"power\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletPower: RegisterDefinition = {\n id: \"minOutletPower\",\n measure: \"power\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletPower: RegisterDefinition = {\n id: \"maxOutletPower\",\n measure: \"power\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletPower: RegisterDefinition = {\n id: \"avgOutletPower\",\n measure: \"power\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletPower: RegisterDefinition = {\n id: \"sumOutletPower\",\n measure: \"power\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletPower: RegisterDefinition = {\n id: \"cntOutletPower\",\n measure: \"power\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletPower: RegisterDefinition = {\n id: \"ssqOutletPower\",\n measure: \"power\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/power\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const power: RegisterDefinition = {\n id: \"power\",\n measure: \"power\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minPower: RegisterDefinition = {\n id: \"minPower\",\n measure: \"power\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxPower: RegisterDefinition = {\n id: \"maxPower\",\n measure: \"power\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgPower: RegisterDefinition = {\n id: \"avgPower\",\n measure: \"power\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumPower: RegisterDefinition = {\n id: \"sumPower\",\n measure: \"power\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntPower: RegisterDefinition = {\n id: \"cntPower\",\n measure: \"power\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqPower: RegisterDefinition = {\n id: \"ssqPower\",\n measure: \"power\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/pressure\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletPressure: RegisterDefinition = {\n id: \"inletPressure\",\n measure: \"pressure\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletPressure: RegisterDefinition = {\n id: \"minInletPressure\",\n measure: \"pressure\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletPressure: RegisterDefinition = {\n id: \"maxInletPressure\",\n measure: \"pressure\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletPressure: RegisterDefinition = {\n id: \"avgInletPressure\",\n measure: \"pressure\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletPressure: RegisterDefinition = {\n id: \"sumInletPressure\",\n measure: \"pressure\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletPressure: RegisterDefinition = {\n id: \"cntInletPressure\",\n measure: \"pressure\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletPressure: RegisterDefinition = {\n id: \"ssqInletPressure\",\n measure: \"pressure\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"bar\", \"pascal\", \"kiloPascal\"];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"bar2\",\n \"pascal2\",\n \"kiloPascal2\",\n];\n","import { sqUnits, units } from \"../measures/pressure\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletPressure: RegisterDefinition = {\n id: \"outletPressure\",\n measure: \"pressure\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletPressure: RegisterDefinition = {\n id: \"minOutletPressure\",\n measure: \"pressure\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletPressure: RegisterDefinition = {\n id: \"maxOutletPressure\",\n measure: \"pressure\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletPressure: RegisterDefinition = {\n id: \"avgOutletPressure\",\n measure: \"pressure\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletPressure: RegisterDefinition = {\n id: \"sumOutletPressure\",\n measure: \"pressure\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletPressure: RegisterDefinition = {\n id: \"cntOutletPressure\",\n measure: \"pressure\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletPressure: RegisterDefinition = {\n id: \"ssqOutletPressure\",\n measure: \"pressure\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/pressure\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const pressure: RegisterDefinition = {\n id: \"pressure\",\n measure: \"pressure\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minPressure: RegisterDefinition = {\n id: \"minPressure\",\n measure: \"pressure\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxPressure: RegisterDefinition = {\n id: \"maxPressure\",\n measure: \"pressure\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgPressure: RegisterDefinition = {\n id: \"avgPressure\",\n measure: \"pressure\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumPressure: RegisterDefinition = {\n id: \"sumPressure\",\n measure: \"pressure\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntPressure: RegisterDefinition = {\n id: \"cntPressure\",\n measure: \"pressure\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqPressure: RegisterDefinition = {\n id: \"ssqPressure\",\n measure: \"pressure\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const radiatorTemperature: RegisterDefinition = {\n id: \"radiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minRadiatorTemperature: RegisterDefinition = {\n id: \"minRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxRadiatorTemperature: RegisterDefinition = {\n id: \"maxRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgRadiatorTemperature: RegisterDefinition = {\n id: \"avgRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumRadiatorTemperature: RegisterDefinition = {\n id: \"sumRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntRadiatorTemperature: RegisterDefinition = {\n id: \"cntRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqRadiatorTemperature: RegisterDefinition = {\n id: \"ssqRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/reactive-energy\";\n\nexport const reactiveEnergy: RegisterDefinition = {\n id: \"reactiveEnergy\",\n measure: \"reactiveEnergy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffReactiveEnergy: RegisterDefinition = {\n id: \"diffReactiveEnergy\",\n measure: \"reactiveEnergy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntReactiveEnergy: RegisterDefinition = {\n id: \"cntReactiveEnergy\",\n measure: \"reactiveEnergy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"varHour\",\n \"kiloVarHour\",\n \"megaVarHour\",\n];\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const relativeHumidity: RegisterDefinition = {\n id: \"relativeHumidity\",\n measure: \"humidity\",\n aggregate: \"instant\",\n units: [\"percentage\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/duration\";\n\nexport const remainingBatteryTime: RegisterDefinition = {\n id: \"remainingBatteryTime\",\n measure: \"duration\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffRemainingBatteryTime: RegisterDefinition = {\n id: \"diffRemainingBatteryTime\",\n measure: \"duration\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntRemainingBatteryTime: RegisterDefinition = {\n id: \"cntRemainingBatteryTime\",\n measure: \"duration\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units as durationUnits } from \"../measures/duration\";\nimport { units as timeUnits } from \"../measures/time\";\n\nexport const timeAtLastExactOverhearingArrived: RegisterDefinition = {\n id: \"timeAtLastExactOverhearingArrived\",\n measure: \"time\",\n aggregate: \"instant\",\n units: timeUnits,\n immediate: true,\n};\n\nexport const timeSinceLastExactOverhearingArrived: RegisterDefinition = {\n id: \"timeSinceLastExactOverhearingArrived\",\n measure: \"duration\",\n aggregate: \"instant\",\n units: durationUnits,\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units as durationUnits } from \"../measures/duration\";\nimport { units as timeUnits } from \"../measures/time\";\n\nexport const timeAtLastInstallationMounted: RegisterDefinition = {\n id: \"timeAtLastInstallationMounted\",\n measure: \"time\",\n aggregate: \"instant\",\n units: timeUnits,\n immediate: true,\n};\n\nexport const timeSinceLastInstallationMounted: RegisterDefinition = {\n id: \"timeSinceLastInstallationMounted\",\n measure: \"duration\",\n aggregate: \"instant\",\n units: durationUnits,\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units as durationUnits } from \"../measures/duration\";\nimport { units as timeUnits } from \"../measures/time\";\n\nexport const timeAtLastPossibleCandidateOverhearingArrived: RegisterDefinition =\n {\n id: \"timeAtLastPossibleCandidateOverhearingArrived\",\n measure: \"time\",\n aggregate: \"instant\",\n units: timeUnits,\n immediate: true,\n };\n\nexport const timeSinceLastPossibleCandidateOverhearingArrived: RegisterDefinition =\n {\n id: \"timeSinceLastPossibleCandidateOverhearingArrived\",\n measure: \"duration\",\n aggregate: \"instant\",\n units: durationUnits,\n immediate: true,\n };\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units as durationUnits } from \"../measures/duration\";\nimport { units as timeUnits } from \"../measures/time\";\n\nexport const timeAtLastSampled: RegisterDefinition = {\n id: \"timeAtLastSampled\",\n measure: \"time\",\n aggregate: \"instant\",\n units: timeUnits,\n immediate: true,\n};\n\nexport const timeSinceLastSampled: RegisterDefinition = {\n id: \"timeSinceLastSampled\",\n measure: \"duration\",\n aggregate: \"instant\",\n units: durationUnits,\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/time\";\n\nexport const basetime: RegisterDefinition = {\n id: \"basetime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n immediate: true,\n};\n\nexport const instantTime: RegisterDefinition = {\n id: \"instantTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n\nexport const periodStartTime: RegisterDefinition = {\n id: \"periodStartTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n\nexport const periodEndTime: RegisterDefinition = {\n id: \"periodEndTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n\nexport const instantOrPeriodStartTime: RegisterDefinition = {\n id: \"instantOrPeriodStartTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n\nexport const instantOrPeriodEndTime: RegisterDefinition = {\n id: \"instantOrPeriodEndTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n","import { sqUnits, units } from \"../measures/volume-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletVolumeFlow: RegisterDefinition = {\n id: \"inletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletVolumeFlow: RegisterDefinition = {\n id: \"minInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletVolumeFlow: RegisterDefinition = {\n id: \"maxInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletVolumeFlow: RegisterDefinition = {\n id: \"avgInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletVolumeFlow: RegisterDefinition = {\n id: \"sumInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletVolumeFlow: RegisterDefinition = {\n id: \"cntInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletVolumeFlow: RegisterDefinition = {\n id: \"ssqInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"litersPerSecond\",\n \"litersPerMinute\",\n \"litersPerHour\",\n \"cubicMetersPerSecond\",\n \"cubicMetersPerMinute\",\n \"cubicMetersPerHour\",\n \"gallonsPerSecond\",\n \"gallonsPerMinute\",\n \"gallonsPerHour\",\n];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"litersPerSecond2\",\n \"litersPerMinute2\",\n \"litersPerHour2\",\n \"cubicMetersPerSecond2\",\n \"cubicMetersPerMinute2\",\n \"cubicMetersPerHour2\",\n \"gallonsPerSecond2\",\n \"gallonsPerMinute2\",\n \"gallonsPerHour2\",\n];\n","import { sqUnits, units } from \"../measures/volume-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletVolumeFlow: RegisterDefinition = {\n id: \"outletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletVolumeFlow: RegisterDefinition = {\n id: \"minOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletVolumeFlow: RegisterDefinition = {\n id: \"maxOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletVolumeFlow: RegisterDefinition = {\n id: \"avgOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletVolumeFlow: RegisterDefinition = {\n id: \"sumOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletVolumeFlow: RegisterDefinition = {\n id: \"cntOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletVolumeFlow: RegisterDefinition = {\n id: \"ssqOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/volume-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const volumeFlow: RegisterDefinition = {\n id: \"volumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minVolumeFlow: RegisterDefinition = {\n id: \"minVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxVolumeFlow: RegisterDefinition = {\n id: \"maxVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgVolumeFlow: RegisterDefinition = {\n id: \"avgVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumVolumeFlow: RegisterDefinition = {\n id: \"sumVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntVolumeFlow: RegisterDefinition = {\n id: \"cntVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqVolumeFlow: RegisterDefinition = {\n id: \"ssqVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const inletVolume: RegisterDefinition = {\n id: \"inletVolume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffInletVolume: RegisterDefinition = {\n id: \"diffInletVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntInletVolume: RegisterDefinition = {\n id: \"cntInletVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"liter\", \"cubicMeter\", \"gallon\"];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const outletVolume: RegisterDefinition = {\n id: \"outletVolume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffOutletVolume: RegisterDefinition = {\n id: \"diffOutletVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntOutletVolume: RegisterDefinition = {\n id: \"cntOutletVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const pulseInputAVolume: RegisterDefinition = {\n id: \"pulseInputAVolume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffPulseInputAVolume: RegisterDefinition = {\n id: \"diffPulseInputAVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntPulseInputAVolume: RegisterDefinition = {\n id: \"cntPulseInputAVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const pulseInputBVolume: RegisterDefinition = {\n id: \"pulseInputBVolume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffPulseInputBVolume: RegisterDefinition = {\n id: \"diffPulseInputBVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntPulseInputBVolume: RegisterDefinition = {\n id: \"cntPulseInputBVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const volume: RegisterDefinition = {\n id: \"volume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffVolume: RegisterDefinition = {\n id: \"diffVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntVolume: RegisterDefinition = {\n id: \"cntVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import { Duration } from \"luxon\";\n\nexport {Duration};","import { DateTime } from \"luxon\";\nimport { Duration } from \"./luxon-local\";\n\nexport type Step = \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport enum DayOfWeek {\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n Sunday = 7,\n}\n\nexport namespace Step {\n export function startOf(\n dateTime: DateTime,\n step: Step,\n firstDayOfWeek?: DayOfWeek,\n ): DateTime {\n if (step === \"week\") {\n const value = dateTime\n .startOf(\"day\")\n .set({ weekday: firstDayOfWeek ?? DayOfWeek.Monday });\n return value > dateTime ? value.minus({ days: 7 }) : value;\n } else {\n return dateTime.startOf(step);\n }\n }\n\n export function asDuration(step: Step, amount = 1): Duration {\n switch (step) {\n case \"hour\":\n return Duration.fromObject({ hours: amount });\n case \"day\":\n return Duration.fromObject({ days: amount });\n case \"week\":\n return Duration.fromObject({ days: 7 * amount });\n case \"month\":\n return Duration.fromObject({ months: amount });\n case \"year\":\n return Duration.fromObject({ years: amount });\n }\n }\n}\n","export const invariantDecimalSeparator = (0.1).toString()[1];\nexport const localeDecimalSeparator = (0.1).toLocaleString()[1];\n\nexport interface Parts {\n invariantPrecisionString: string;\n invariantCoefficientString: string;\n exponent: number;\n noOfCoefficientDecimals: number;\n}\n\nclass Formatter {\n public toPrecision(value: number, precision: number, maxDecimals?: number) {\n const absValue = Math.abs(value);\n const noOfIntegerDigits = Math.round(absValue).toString().length;\n\n // Adjust precision to maxDecimals\n if (maxDecimals !== undefined) {\n precision = Math.min(precision, noOfIntegerDigits + maxDecimals);\n }\n\n if (value === 0) {\n // (0).toPrecision(1) == \"0\"\n // (0).toPrecision(2) == \"0.0\"\n // (0).toPrecision(3) == \"0.00\"\n // However, we want:\n // Formatter.toPrecision(0, 0) == \"0\"\n // Formatter.toPrecision(0, 1) == \"0.0\"\n // Formatter.toPrecision(0, 2) == \"0.00\"\n return value.toPrecision(precision + 1);\n }\n\n if (absValue < 1) {\n return value.toPrecision(precision);\n }\n\n return precision >= noOfIntegerDigits\n ? value.toFixed(precision - noOfIntegerDigits)\n : value.toPrecision(precision);\n }\n\n public toLocalePrecision(\n value: number,\n precision: number,\n maxDecimals?: number,\n ) {\n return this.toPrecision(value, precision, maxDecimals).replace(\n invariantDecimalSeparator,\n localeDecimalSeparator,\n );\n }\n\n public toFixed(value: number, precision: number, maxDecimals?: number) {\n const parts = this.getParts(value, precision, maxDecimals);\n if (parts.noOfCoefficientDecimals < parts.exponent) {\n const number = parts.invariantCoefficientString.replace(\n invariantDecimalSeparator,\n \"\",\n );\n const zeros = parts.exponent - parts.noOfCoefficientDecimals;\n return `${number}${\"0\".repeat(zeros)}`;\n } else {\n return parts.invariantPrecisionString;\n }\n }\n\n public toLocaleFixed(\n value: number,\n precision: number,\n maxDecimals?: number,\n ) {\n return this.toFixed(value, precision, maxDecimals).replace(\n invariantDecimalSeparator,\n localeDecimalSeparator,\n );\n }\n\n public getParts(\n value: number,\n precision: number,\n maxDecimals?: number,\n ): Parts {\n const precisionString = this.toPrecision(value, precision, maxDecimals);\n if (precisionString.indexOf(\"e\") >= 0) {\n const match = /(.*)e([\\+-]\\d+)$/.exec(precisionString)!;\n const coefficientString = match[1];\n const exponent = parseInt(match[2]);\n const decimalSeparatorIndex = coefficientString.indexOf(\n invariantDecimalSeparator,\n );\n const noOfCoefficientDecimals =\n decimalSeparatorIndex >= 0\n ? coefficientString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: coefficientString,\n exponent,\n noOfCoefficientDecimals,\n };\n } else {\n const decimalSeparatorIndex = precisionString.indexOf(\n invariantDecimalSeparator,\n );\n const noOfCoefficientDecimals =\n decimalSeparatorIndex >= 0\n ? precisionString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: precisionString,\n exponent: 0,\n noOfCoefficientDecimals,\n };\n }\n }\n}\n\nexport const NumberFormatter = new Formatter();\n","import { TimeOrRule } from \"./time-or-rule\";\n\nexport type BreakdownRule = string;\nexport type BreakdownPeriod = \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\ninterface BreakdownRuleInit {\n origin: TimeOrRule;\n count: number;\n period: BreakdownPeriod;\n}\n\nexport function BreakdownRule(init: BreakdownRuleInit): BreakdownRule;\nexport function BreakdownRule(\n origin: TimeOrRule,\n count: number,\n period: BreakdownPeriod,\n): BreakdownRule;\nexport function BreakdownRule(...params: any[]): BreakdownRule {\n let init: BreakdownRuleInit;\n switch (params.length) {\n case 1:\n init = params[0];\n break;\n case 3:\n init = {\n origin: params[0],\n count: params[1],\n period: params[2],\n };\n break;\n default:\n throw new TypeError(\"Invalid breakdown rule format\");\n }\n const periodName =\n Math.abs(init.count) == 1 ? init.period : init.period + \"s\";\n return `${init.origin}/${init.count}${periodName}`;\n}\n\nexport namespace BreakdownRule {\n const regex = new RegExp(\"(.*)/([-+]?[0-9]+)(hour|day|week|month|year)s?\");\n export function split(rule: BreakdownRule) {\n const match = regex.exec(rule);\n if (!match) {\n throw new Error(\"Invalid breakdown rule format\");\n }\n const origin = match[1];\n const count = parseInt(match[2]);\n let period = match[3];\n if (period.endsWith(\"s\")) {\n period = period.substring(0, period.length - 1);\n }\n return {\n origin: TimeOrRule.parse(origin),\n count,\n period: period as BreakdownPeriod,\n };\n }\n}\n","import { DateTime } from \"luxon\";\n\nexport type TimeOrRule = Date | DateTime<true> | string;\n\nexport function TimeOrRule(\n timeOrRule: Date | DateTime<true> | string,\n): TimeOrRule {\n return timeOrRule;\n}\n\nexport namespace TimeOrRule {\n export function parse(input: string): TimeOrRule {\n const time = DateTime.fromISO(input, { setZone: true });\n return time.isValid ? time : input;\n }\n\n export function isTime(input: TimeOrRule): input is Date | DateTime<true> {\n return typeof input !== \"string\";\n }\n\n export function isRule(input: TimeOrRule): input is string {\n return typeof input === \"string\";\n }\n\n export function asDateTime(input: TimeOrRule): DateTime<true> | undefined {\n if (isRule(input)) {\n return;\n } else if (DateTime.isDateTime(input)) {\n return input;\n } else {\n const dateTime = DateTime.fromJSDate(input);\n if (!dateTime.isValid) {\n throw new Error(\"Unable to convert from Date to DateTime\");\n }\n return dateTime;\n }\n }\n\n export function toJSON(input: TimeOrRule) {\n return isRule(input) ? input : input.toJSON();\n }\n}\n","import { NumberFormatter, localeDecimalSeparator } from \"./number-formatter\";\n\nimport { invariantDecimalSeparator } from \".\";\n\nexport class PrecisionNumber {\n public value: number;\n public precision: number;\n constructor(value: number, precision?: number) {\n this.value = value;\n this.precision = precision ?? getPrecision(value);\n }\n\n static parse(input: string) {\n let normalized = input\n .trim()\n .replace(\",\", \".\")\n .replace(localeDecimalSeparator, invariantDecimalSeparator);\n if (normalized.endsWith(invariantDecimalSeparator)) {\n normalized += \"0\";\n }\n const value = parseFloat(normalized);\n let precision = normalized\n .replace(\".\", \"\")\n .replace(\"+\", \"\")\n .replace(\"-\", \"\").length;\n if (value > -1 && value < 1 && value !== 0 && precision > 1) {\n precision--;\n }\n return new PrecisionNumber(value, precision);\n }\n\n abs() {\n return new PrecisionNumber(Math.abs(this.value), this.precision);\n }\n\n plus(rhs: PrecisionNumber) {\n // The result should have the same number of decimal places as the minimum of the two inputs\n const lhs = this;\n const value = lhs.value + rhs.value;\n const decimals = Math.min(\n getNumberOfDecimalDigits(lhs.value, lhs.precision),\n getNumberOfDecimalDigits(rhs.value, rhs.precision),\n );\n const precision = getPrecision(value, decimals);\n return new PrecisionNumber(value, precision);\n }\n\n minus(rhs: PrecisionNumber) {\n // The result should have the same number of decimal places as the minimum of the two inputs\n const lhs = this;\n const value = lhs.value - rhs.value;\n const decimals = Math.min(\n getNumberOfDecimalDigits(lhs.value, lhs.precision),\n getNumberOfDecimalDigits(rhs.value, rhs.precision),\n );\n const precision = getPrecision(value, decimals);\n return new PrecisionNumber(value, precision);\n }\n\n valueOf() {\n return this.value;\n }\n\n toString() {\n return this.value.toString();\n }\n\n toFixed() {\n return NumberFormatter.toFixed(this.value, this.precision);\n }\n\n toPrecision() {\n return NumberFormatter.toPrecision(this.value, this.precision);\n }\n\n toLocaleFixed() {\n return NumberFormatter.toLocaleFixed(this.value, this.precision);\n }\n\n toLocalePrecision() {\n return NumberFormatter.toLocalePrecision(this.value, this.precision);\n }\n}\n\nfunction getPrecision(number: number, decimals?: number) {\n decimals ??= number.toString().split(\".\", 2)[1]?.length ?? 0;\n\n if (number == 0) {\n return 1;\n } else if (number > -1 && number < 1) {\n return decimals;\n } else {\n return Math.max(getNumberOfIntegralDigits(number) + decimals, 1);\n }\n}\n\nfunction getNumberOfDecimalDigits(number: number, precision: number) {\n if (number > -1 && number < 1) {\n return precision;\n } else {\n return precision - getNumberOfIntegralDigits(number);\n }\n}\n\nfunction getNumberOfIntegralDigits(number: number) {\n const abs = Math.abs(number);\n if (abs < 10) return 1;\n if (abs < 100) return 2;\n if (abs < 1000) return 3;\n if (abs < 10000) return 4;\n if (abs < 100000) return 5;\n if (abs < 1000000) return 6;\n if (abs < 10000000) return 7;\n if (abs < 100000000) return 8;\n if (abs < 1000000000) return 9;\n return Math.floor(Math.log10(abs) + 1);\n}\n","import type { RegisterDefinition } from \"./register-definition\";\nimport { AggregateId } from \"./aggregate-id\";\nimport type { RegisterId } from \"./register-id\";\nimport { getRegisterId } from \"./register-utils\";\n\nexport const aggregatePrefixes: { [aggregateId in AggregateId]: string } = {\n instant: \"\",\n diff: \"diff\",\n min: \"min\",\n max: \"max\",\n avg: \"avg\",\n sum: \"sum\",\n cnt: \"cnt\",\n ssq: \"ssq\",\n};\n\nclass Convention {\n public getAggregate(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n // Brute force all prefixes - if none of them, then it must be instant.\n for (const aggregateString of Object.keys(aggregatePrefixes)) {\n const aggregate = <AggregateId>aggregateString;\n const prefix = aggregatePrefixes[aggregate];\n if (prefix.length && isPrefix(registerId, prefix)) {\n // Not instant - it was any of the others.\n return aggregate;\n }\n }\n return \"instant\";\n }\n\n toInstant(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n for (const prefix of Object.values(aggregatePrefixes)) {\n if (prefix.length && isPrefix(registerId, prefix)) {\n const tail = registerId.substr(prefix.length);\n return <RegisterId>(tail[0].toLowerCase() + tail.substr(1));\n }\n }\n return registerId;\n }\n\n toAggregate(\n register: RegisterId | RegisterDefinition,\n aggregate: AggregateId,\n ) {\n const instantRegisterId = this.toInstant(register);\n if (aggregate === \"instant\") {\n return instantRegisterId;\n }\n const prefix = aggregatePrefixes[aggregate];\n return <RegisterId>(\n (prefix +\n instantRegisterId[0].toUpperCase() +\n instantRegisterId.substr(1))\n );\n }\n}\n\nexport function isPrefix(registerId: RegisterId, prefix: string) {\n return (\n registerId.startsWith(prefix) && isUppercase(registerId[prefix.length])\n );\n}\n\nfunction isUppercase(input: string) {\n return input.toUpperCase() === input;\n}\n\nexport const RegisterConvention = new Convention();\n","import type { RegisterDefinition } from \"./register-definition\";\nimport type { RegisterId } from \"./register-id\";\n\nexport function getRegisterId(register: RegisterId | RegisterDefinition) {\n return typeof register === \"string\" ? register : register.id;\n}\n","import type { RegisterDefinition } from \"./register-definition\";\nimport type { RegisterId } from \"./register-id\";\nimport { RegisterPack } from \"./register-pack\";\n\nclass Library {\n private definitions: Partial<{ [id in RegisterId]: RegisterDefinition }> =\n {};\n\n public add(...definitions: (RegisterDefinition | RegisterPack)[]) {\n for (const definition of definitions) {\n if (isDefinition(definition)) {\n this.tryAdd(definition);\n } else {\n for (const definitionInPack of Object.values(definition)) {\n this.tryAdd(definitionInPack);\n }\n }\n }\n }\n\n private tryAdd(definition: RegisterDefinition) {\n if (!this.definitions[definition.id]) {\n this.definitions[definition.id] = definition;\n return true;\n }\n return false;\n }\n\n public has(id: RegisterId) {\n return !!this.definitions[id];\n }\n\n public tryGet(id: RegisterId) {\n return this.definitions[id];\n }\n\n public get(id: RegisterId) {\n const definition = this.definitions[id];\n if (!definition) {\n throw new Error(`Defintion was not loaded for register ${id}`);\n }\n return definition;\n }\n\n public all() {\n return Object.values(this.definitions).map((x) => x!);\n }\n\n public reset() {\n this.definitions = {};\n }\n}\n\nfunction isDefinition(\n definitionOrPack: RegisterDefinition | RegisterPack,\n): definitionOrPack is RegisterDefinition {\n return !!(\n definitionOrPack.id &&\n definitionOrPack.aggregate &&\n definitionOrPack.units\n );\n}\n\nexport const RegisterLibrary = new Library();\n"],"names":[],"version":3,"file":"index.js.map"}
1
+ {"mappings":"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","sources":["src/index.ts","src/medium.ts","src/repository.ts","src/registers/index.ts","src/registers/acoustic-noise.ts","src/measures/noise.ts","src/registers/ambient-temperature.ts","src/measures/temperature.ts","src/registers/consumer.ts","src/registers/cooling-energy-inlet.ts","src/measures/energy.ts","src/registers/cooling-energy-outlet.ts","src/registers/cooling-energy.ts","src/registers/cooling.ts","src/registers/device-addresses-kamdraft.ts","src/registers/device-addresses-msisdn.ts","src/registers/device-addresses-tchlr.ts","src/registers/device-addresses-wmbus.ts","src/registers/device-date-time.ts","src/measures/time.ts","src/registers/device-date.ts","src/registers/device-nominal-diameter.ts","src/registers/device-permanent-volume-flow.ts","src/registers/device-registers.ts","src/registers/device-software-version.ts","src/registers/device-time.ts","src/registers/device.ts","src/registers/diehl-infocode.ts","src/measures/infocode.ts","src/registers/electrical-energy.ts","src/registers/energy-inlet.ts","src/registers/energy-outlet.ts","src/registers/error-operating-time.ts","src/measures/duration.ts","src/registers/flow-temperature-aux.ts","src/registers/flow-temperature-inlet.ts","src/registers/flow-temperature-outlet.ts","src/registers/flow-temperature.ts","src/registers/heat-energy-inlet.ts","src/registers/heat-energy-outlet.ts","src/registers/heat-energy.ts","src/registers/infocode.ts","src/registers/kamstrup-module-type.ts","src/registers/kamstrup-multical-infocode.ts","src/registers/landis-gyr-infocode.ts","src/registers/landis-gyr-mbus-status.ts","src/registers/device-samples.ts","src/registers/mass-flow-inlet.ts","src/measures/mass-flow.ts","src/registers/mass-flow-outlet.ts","src/registers/mass-flow.ts","src/registers/mass-inlet.ts","src/measures/mass.ts","src/registers/mass-outlet.ts","src/registers/mass.ts","src/registers/mbus-format-string-signature.ts","src/registers/none.ts","src/registers/operating-time.ts","src/registers/place.ts","src/registers/power-inlet.ts","src/measures/power.ts","src/registers/power-outlet.ts","src/registers/power.ts","src/registers/pressure-inlet.ts","src/measures/pressure.ts","src/registers/pressure-outlet.ts","src/registers/pressure.ts","src/registers/radiator-temperature.ts","src/registers/reactive-energy.ts","src/measures/reactive-energy.ts","src/registers/relative-humidity.ts","src/registers/remaining-battery-time.ts","src/registers/time-last-exact-overhearing-arrived.ts","src/registers/time-last-installation-mounted.ts","src/registers/time-last-possible-candidate-overhearing-arrived.ts","src/registers/time-last-sampled.ts","src/registers/time.ts","src/registers/volume-flow-inlet.ts","src/measures/volume-flow.ts","src/registers/volume-flow-outlet.ts","src/registers/volume-flow.ts","src/registers/volume-inlet.ts","src/measures/volume.ts","src/registers/volume-outlet.ts","src/registers/volume-pulse-input-a.ts","src/registers/volume-pulse-input-b.ts","src/registers/volume.ts","src/luxon-local.ts","src/step.ts","src/number-formatter.ts","src/breakdown-rule.ts","src/time-or-rule.ts","src/precision-number.ts","src/register-convention.ts","src/register-utils.ts","src/register-library.ts"],"sourcesContent":["// We need these to get their namespaces exported\nimport \"./medium\";\nimport \"./repository\";\n\nimport * as registers2 from \"./registers\";\n\nimport type {\n Consumer,\n Device,\n DeviceSample,\n KamdraftDeviceAddress,\n MsisdnDeviceAddress,\n Place,\n TchlrDeviceAddress,\n WMBusDeviceAddress,\n} from \"./registers\";\n\nimport { Duration } from \"./luxon-local\";\nimport type { RegisterDefinition } from \"./register-definition\";\nimport type { RegisterId } from \"./register-id\";\n\nexport { DayOfWeek, Step } from \"./step\";\nexport {\n NumberFormatter,\n invariantDecimalSeparator,\n localeDecimalSeparator,\n} from \"./number-formatter\";\n\nexport type { AggregateId } from \"./aggregate-id\";\nexport type { BreakdownPeriod } from \"./breakdown-rule\";\nexport { BreakdownRule } from \"./breakdown-rule\";\nexport type { MeasureId } from \"./measure-id\";\nexport { Medium } from \"./medium\";\nexport type { Optional } from \"./optional\";\nexport { PrecisionNumber } from \"./precision-number\";\nexport { RegisterConvention } from \"./register-convention\";\nexport type { RegisterDefinition } from \"./register-definition\";\nexport type { RegisterId } from \"./register-id\";\nexport { RegisterLibrary } from \"./register-library\";\nexport { Repository } from \"./repository\";\nexport { TimeOrRule } from \"./time-or-rule\";\nexport type { UnitId } from \"./unit-id\";\n\n// Hack to force parcel to include Duration in typings file\n// Otherwise it seems to only include DateTime in the dist/index.d.ts which causes the file to be invalid\n// The reason for the ./parcel-workaround file is that it seems to generate the expected typings.\n// If we did `import { Duration } from \"luxon\"` instead and re-exported it as `__Duration` then it seems invalid.\nexport { Duration as __Duration };\n\nexport const registers: Record<RegisterId, RegisterDefinition> = {\n ...registers2,\n};\n\nexport type {\n Consumer as __Consumer,\n Device as __Device,\n DeviceSample as __DeviceSample,\n KamdraftDeviceAddress as __KamdraftDeviceAddress,\n MsisdnDeviceAddress as __MsisdnDeviceAddress,\n Place as __Place,\n TchlrDeviceAddress as __TchlrDeviceAddress,\n WMBusDeviceAddress as __WMBusDeviceAddress,\n};\n\nexport declare namespace SampleValue {\n export type {\n Consumer,\n Device,\n DeviceSample,\n KamdraftDeviceAddress,\n MsisdnDeviceAddress,\n Place,\n TchlrDeviceAddress,\n WMBusDeviceAddress,\n };\n}\n","export type Medium =\n | \"none\"\n | \"heat\"\n | \"water\"\n | \"cooling\"\n | \"electricity\"\n | \"infrastructure\"\n | \"all\";\n\nexport namespace Medium {\n export function isMedium(input: string): input is Medium;\n export function isMedium(input: string[]): input is Medium[];\n export function isMedium(\n input: string | string[],\n ): input is Medium | Medium[] {\n if (input === \"none\" || input === \"all\") {\n return true;\n }\n const ALL_MEDIUMS: Medium[] = [\n \"heat\",\n \"water\",\n \"cooling\",\n \"electricity\",\n \"infrastructure\",\n ];\n return Array.isArray(input)\n ? !input.some((x) => !ALL_MEDIUMS.includes(<Medium>x))\n : ALL_MEDIUMS.includes(<Medium>input);\n }\n\n export function isMeter(medium: Medium | Medium[]) {\n return (\n medium.includes(\"heat\") ||\n medium.includes(\"water\") ||\n medium.includes(\"cooling\") ||\n medium.includes(\"electricity\")\n );\n }\n\n export function isFlowMeter(medium: Medium | Medium[]) {\n return (\n medium.includes(\"heat\") ||\n medium.includes(\"water\") ||\n medium.includes(\"cooling\")\n );\n }\n}\n","// This is clearly not correct but it provides some amazing type safety\nexport type Repository = \"some/repo\";\n\nexport function Repository(repo: string): Repository;\nexport function Repository(team: string, name: string): Repository;\nexport function Repository(repoOrTeam: string, name?: string): Repository {\n const repo = name ? `${repoOrTeam}/${name}` : repoOrTeam;\n if (!Repository.isRepository(repo)) {\n throw new TypeError(\"Invalid repository format\");\n }\n return repo;\n}\n\nconst PART_REGEX = new RegExp(/[a-z][a-z0-9-]*/);\n\nexport namespace Repository {\n export function isRepository(input: string): input is Repository {\n const parts = input.split(\"/\");\n return parts.length === 2 && !parts.some((x) => !PART_REGEX.test(x));\n }\n\n export function split(repo: Repository) {\n const parts = repo.split(\"/\");\n return {\n team: parts[0],\n name: parts[1],\n };\n }\n}\n","export * from \"./acoustic-noise\";\nexport * from \"./ambient-temperature\";\nexport * from \"./consumer\";\nexport * from \"./cooling-energy-inlet\";\nexport * from \"./cooling-energy-outlet\";\nexport * from \"./cooling-energy\";\nexport * from \"./cooling\";\nexport * from \"./device-addresses-kamdraft\";\nexport * from \"./device-addresses-msisdn\";\nexport * from \"./device-addresses-tchlr\";\nexport * from \"./device-addresses-wmbus\";\nexport * from \"./device-date-time\";\nexport * from \"./device-date\";\nexport * from \"./device-nominal-diameter\";\nexport * from \"./device-permanent-volume-flow\";\nexport * from \"./device-registers\";\nexport * from \"./device-software-version\";\nexport * from \"./device-time\";\nexport * from \"./device\";\nexport * from \"./diehl-infocode\";\nexport * from \"./electrical-energy\";\nexport * from \"./energy-inlet\";\nexport * from \"./energy-outlet\";\nexport * from \"./error-operating-time\";\nexport * from \"./flow-temperature-aux\";\nexport * from \"./flow-temperature-inlet\";\nexport * from \"./flow-temperature-outlet\";\nexport * from \"./flow-temperature\";\nexport * from \"./heat-energy-inlet\";\nexport * from \"./heat-energy-outlet\";\nexport * from \"./heat-energy\";\nexport * from \"./infocode\";\nexport * from \"./kamstrup-module-type\";\nexport * from \"./kamstrup-multical-infocode\";\nexport * from \"./landis-gyr-infocode\";\nexport * from \"./landis-gyr-mbus-status\";\nexport * from \"./device-samples\";\nexport * from \"./mass-flow-inlet\";\nexport * from \"./mass-flow-outlet\";\nexport * from \"./mass-flow\";\nexport * from \"./mass-inlet\";\nexport * from \"./mass-outlet\";\nexport * from \"./mass\";\nexport * from \"./mbus-format-string-signature\";\nexport * from \"./none\";\nexport * from \"./operating-time\";\nexport * from \"./place\";\nexport * from \"./power-inlet\";\nexport * from \"./power-outlet\";\nexport * from \"./power\";\nexport * from \"./pressure-inlet\";\nexport * from \"./pressure-outlet\";\nexport * from \"./pressure\";\nexport * from \"./radiator-temperature\";\nexport * from \"./reactive-energy\";\nexport * from \"./relative-humidity\";\nexport * from \"./remaining-battery-time\";\nexport * from \"./time-last-exact-overhearing-arrived\";\nexport * from \"./time-last-installation-mounted\";\nexport * from \"./time-last-possible-candidate-overhearing-arrived\";\nexport * from \"./time-last-sampled\";\nexport * from \"./time\";\nexport * from \"./volume-flow-inlet\";\nexport * from \"./volume-flow-outlet\";\nexport * from \"./volume-flow\";\nexport * from \"./volume-inlet\";\nexport * from \"./volume-outlet\";\nexport * from \"./volume-pulse-input-a\";\nexport * from \"./volume-pulse-input-b\";\nexport * from \"./volume\";\n","import { sqUnits, units } from \"../measures/noise\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const acousticNoise: RegisterDefinition = {\n id: \"acousticNoise\",\n measure: \"noise\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minAcousticNoise: RegisterDefinition = {\n id: \"minAcousticNoise\",\n measure: \"noise\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxAcousticNoise: RegisterDefinition = {\n id: \"maxAcousticNoise\",\n measure: \"noise\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgAcousticNoise: RegisterDefinition = {\n id: \"avgAcousticNoise\",\n measure: \"noise\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumAcousticNoise: RegisterDefinition = {\n id: \"sumAcousticNoise\",\n measure: \"noise\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntAcousticNoise: RegisterDefinition = {\n id: \"cntAcousticNoise\",\n measure: \"noise\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqAcousticNoise: RegisterDefinition = {\n id: \"ssqAcousticNoise\",\n measure: \"noise\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"decibel\"];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\"decibel2\"];\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const ambientTemperature: RegisterDefinition = {\n id: \"ambientTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minAmbientTemperature: RegisterDefinition = {\n id: \"minAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxAmbientTemperature: RegisterDefinition = {\n id: \"maxAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgAmbientTemperature: RegisterDefinition = {\n id: \"avgAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumAmbientTemperature: RegisterDefinition = {\n id: \"sumAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntAmbientTemperature: RegisterDefinition = {\n id: \"cntAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqAmbientTemperature: RegisterDefinition = {\n id: \"ssqAmbientTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"celcius\", \"kelvin\", \"fahrenheit\"];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"celcius2\",\n \"kelvin2\",\n \"fahrenheit2\",\n];\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const consumer: RegisterDefinition = {\n id: \"consumer\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n immediate: true,\n};\n\nexport interface Consumer {\n id: number;\n name: string;\n consumerNumber: string;\n emailAddress: string;\n phoneNumber: string;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const coolingEnergyVolumeInInlet: RegisterDefinition = {\n id: \"coolingEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffCoolingEnergyVolumeInInlet: RegisterDefinition = {\n id: \"diffCoolingEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntCoolingEnergyVolumeInInlet: RegisterDefinition = {\n id: \"cntCoolingEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"milliWattHour\",\n \"wattHour\",\n \"kiloWattHour\",\n \"megaWattHour\",\n \"gigaWattHour\",\n \"calorie\",\n \"kiloCalorie\",\n \"megaCalorie\",\n \"gigaCalorie\",\n];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const coolingEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"coolingEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffCoolingEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"diffCoolingEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntCoolingEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"cntCoolingEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const coolingEnergy: RegisterDefinition = {\n id: \"coolingEnergy\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffCoolingEnergy: RegisterDefinition = {\n id: \"diffCoolingEnergy\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntCoolingEnergy: RegisterDefinition = {\n id: \"cntCoolingEnergy\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletMinusOutletFlowTemperatureDifference: RegisterDefinition = {\n id: \"inletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"minInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n };\n\nexport const maxInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"maxInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n };\n\nexport const avgInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"avgInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n };\n\nexport const sumInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"sumInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n };\n\nexport const cntInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"cntInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n };\n\nexport const ssqInletMinusOutletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"ssqInletMinusOutletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n };\n\nexport const outletMinusInletFlowTemperatureDifference: RegisterDefinition = {\n id: \"outletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"minOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n };\n\nexport const maxOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"maxOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n };\n\nexport const avgOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"avgOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n };\n\nexport const sumOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"sumOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n };\n\nexport const cntOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"cntOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n };\n\nexport const ssqOutletMinusInletFlowTemperatureDifference: RegisterDefinition =\n {\n id: \"ssqOutletMinusInletFlowTemperatureDifference\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n };\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const kamdraftDeviceAddresses: RegisterDefinition = {\n id: \"kamdraftDeviceAddresses\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface KamdraftDeviceAddress {\n _t: \"kamdraft\";\n serialNumber: number;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const msisdnDeviceAddresses: RegisterDefinition = {\n id: \"msisdnDeviceAddresses\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface MsisdnDeviceAddress {\n _t: \"msisdn\";\n msisdn: number;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const tchlrDeviceAddresses: RegisterDefinition = {\n id: \"tchlrDeviceAddresses\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface TchlrDeviceAddress {\n _t: \"tchlr\";\n serialNumber: number;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const wMBusDeviceAddresses: RegisterDefinition = {\n id: \"wMBusDeviceAddresses\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface WMBusDeviceAddress {\n _t: \"wmbus\";\n manufacturerCode: number;\n serialNumber: number;\n version: number;\n type: number;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/time\";\n\nexport const deviceDateTime: RegisterDefinition = {\n id: \"deviceDateTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/time\";\n\nexport const deviceDate: RegisterDefinition = {\n id: \"deviceDate\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const deviceNominalDiameter: RegisterDefinition = {\n id: \"deviceNominalDiameter\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const devicePermanentVolumeFlow: RegisterDefinition = {\n id: \"devicePermanentVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"instant\",\n units: [\"cubicMetersPerHour\"],\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const deviceRegisters: RegisterDefinition = {\n id: \"deviceRegisters\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const deviceSoftwareVersion: RegisterDefinition = {\n id: \"deviceSoftwareVersion\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/time\";\n\nexport const deviceTime: RegisterDefinition = {\n id: \"deviceTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const device: RegisterDefinition = {\n id: \"device\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface Device {\n id: number;\n deviceNumber: string;\n manufacturerName: string;\n modelName: string;\n}\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const diehlInfocode: RegisterDefinition = {\n id: \"diehlInfocode\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diehlInfocodeType1: RegisterDefinition = {\n id: \"diehlInfocodeType1\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diehlInfocodeType2: RegisterDefinition = {\n id: \"diehlInfocodeType2\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diehlInfocodeType3: RegisterDefinition = {\n id: \"diehlInfocodeType3\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diehlInfocodeType4: RegisterDefinition = {\n id: \"diehlInfocodeType4\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"unitless\", \"json\"];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const electricalEnergy: RegisterDefinition = {\n id: \"electricalEnergy\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffElectricalEnergy: RegisterDefinition = {\n id: \"diffElectricalEnergy\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntElectricalEnergy: RegisterDefinition = {\n id: \"cntElectricalEnergy\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const kamstrupE8Inlet: RegisterDefinition = {\n id: \"kamstrupE8Inlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units: [\"cubicMeterCelcius\", ...units],\n};\n\nexport const diffKamstrupE8Inlet: RegisterDefinition = {\n id: \"diffKamstrupE8Inlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units: [\"cubicMeterCelcius\", ...units],\n};\n\nexport const cntKamstrupE8Inlet: RegisterDefinition = {\n id: \"cntKamstrupE8Inlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const kamstrupE9Outlet: RegisterDefinition = {\n id: \"kamstrupE9Outlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units: [\"cubicMeterCelcius\", ...units],\n};\n\nexport const diffKamstrupE9Outlet: RegisterDefinition = {\n id: \"diffKamstrupE9Outlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units: [\"cubicMeterCelcius\", ...units],\n};\n\nexport const cntKamstrupE9Outlet: RegisterDefinition = {\n id: \"cntKamstrupE9Outlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/duration\";\n\nexport const errorOperatingTime: RegisterDefinition = {\n id: \"errorOperatingTime\",\n measure: \"duration\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffErrorOperatingTime: RegisterDefinition = {\n id: \"diffErrorOperatingTime\",\n measure: \"duration\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntErrorOperatingTime: RegisterDefinition = {\n id: \"cntErrorOperatingTime\",\n measure: \"duration\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"second\",\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"year\",\n];\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const auxFlowTemperature: RegisterDefinition = {\n id: \"auxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minAuxFlowTemperature: RegisterDefinition = {\n id: \"minAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxAuxFlowTemperature: RegisterDefinition = {\n id: \"maxAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgAuxFlowTemperature: RegisterDefinition = {\n id: \"avgAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumAuxFlowTemperature: RegisterDefinition = {\n id: \"sumAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntAuxFlowTemperature: RegisterDefinition = {\n id: \"cntAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqAuxFlowTemperature: RegisterDefinition = {\n id: \"ssqAuxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletFlowTemperature: RegisterDefinition = {\n id: \"inletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletFlowTemperature: RegisterDefinition = {\n id: \"minInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletFlowTemperature: RegisterDefinition = {\n id: \"maxInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletFlowTemperature: RegisterDefinition = {\n id: \"avgInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletFlowTemperature: RegisterDefinition = {\n id: \"sumInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletFlowTemperature: RegisterDefinition = {\n id: \"cntInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletFlowTemperature: RegisterDefinition = {\n id: \"ssqInletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletFlowTemperature: RegisterDefinition = {\n id: \"outletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletFlowTemperature: RegisterDefinition = {\n id: \"minOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletFlowTemperature: RegisterDefinition = {\n id: \"maxOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletFlowTemperature: RegisterDefinition = {\n id: \"avgOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletFlowTemperature: RegisterDefinition = {\n id: \"sumOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletFlowTemperature: RegisterDefinition = {\n id: \"cntOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletFlowTemperature: RegisterDefinition = {\n id: \"ssqOutletFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const flowTemperature: RegisterDefinition = {\n id: \"flowTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minFlowTemperature: RegisterDefinition = {\n id: \"minFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxFlowTemperature: RegisterDefinition = {\n id: \"maxFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgFlowTemperature: RegisterDefinition = {\n id: \"avgFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumFlowTemperature: RegisterDefinition = {\n id: \"sumFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntFlowTemperature: RegisterDefinition = {\n id: \"cntFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqFlowTemperature: RegisterDefinition = {\n id: \"ssqFlowTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const heatEnergyVolumeInInlet: RegisterDefinition = {\n id: \"heatEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyVolumeInInlet: RegisterDefinition = {\n id: \"diffHeatEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyVolumeInInlet: RegisterDefinition = {\n id: \"cntHeatEnergyVolumeInInlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff1VolumeInInlet: RegisterDefinition = {\n id: \"heatEnergyTariff1VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff1VolumeInInlet: RegisterDefinition = {\n id: \"diffHeatEnergyTariff1VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff1VolumeInInlet: RegisterDefinition = {\n id: \"cntHeatEnergyTariff1VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff2VolumeInInlet: RegisterDefinition = {\n id: \"heatEnergyTariff2VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff2VolumeInInlet: RegisterDefinition = {\n id: \"diffHeatEnergyTariff2VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff2VolumeInInlet: RegisterDefinition = {\n id: \"cntHeatEnergyTariff2VolumeInInlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const heatEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"heatEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"diffHeatEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyVolumeInOutlet: RegisterDefinition = {\n id: \"cntHeatEnergyVolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff1VolumeInOutlet: RegisterDefinition = {\n id: \"heatEnergyTariff1VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff1VolumeInOutlet: RegisterDefinition = {\n id: \"diffHeatEnergyTariff1VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff1VolumeInOutlet: RegisterDefinition = {\n id: \"cntHeatEnergyTariff1VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff2VolumeInOutlet: RegisterDefinition = {\n id: \"heatEnergyTariff2VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff2VolumeInOutlet: RegisterDefinition = {\n id: \"diffHeatEnergyTariff2VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff2VolumeInOutlet: RegisterDefinition = {\n id: \"cntHeatEnergyTariff2VolumeInOutlet\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/energy\";\n\nexport const heatEnergy: RegisterDefinition = {\n id: \"heatEnergy\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergy: RegisterDefinition = {\n id: \"diffHeatEnergy\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergy: RegisterDefinition = {\n id: \"cntHeatEnergy\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff1: RegisterDefinition = {\n id: \"heatEnergyTariff1\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff1: RegisterDefinition = {\n id: \"diffHeatEnergyTariff1\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff1: RegisterDefinition = {\n id: \"cntHeatEnergyTariff1\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const heatEnergyTariff2: RegisterDefinition = {\n id: \"heatEnergyTariff2\",\n measure: \"energy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffHeatEnergyTariff2: RegisterDefinition = {\n id: \"diffHeatEnergyTariff2\",\n measure: \"energy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntHeatEnergyTariff2: RegisterDefinition = {\n id: \"cntHeatEnergyTariff2\",\n measure: \"energy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const infocode: RegisterDefinition = {\n id: \"infocode\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const kamstrupModuleType: RegisterDefinition = {\n id: \"kamstrupModuleType\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const kamstrupMulticalInfocode: RegisterDefinition = {\n id: \"kamstrupMulticalInfocode\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType1: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType1\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType2: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType2\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType3: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType3\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType4: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType4\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType5: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType5\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType6: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType6\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const kamstrupMulticalInfocodeType7: RegisterDefinition = {\n id: \"kamstrupMulticalInfocodeType7\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const landisGyrInfocode: RegisterDefinition = {\n id: \"landisGyrInfocode\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const landisGyrInfocodeType1: RegisterDefinition = {\n id: \"landisGyrInfocodeType1\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const landisGyrInfocodeType2: RegisterDefinition = {\n id: \"landisGyrInfocodeType2\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/infocode\";\n\nexport const landisGyrMBusStatus: RegisterDefinition = {\n id: \"landisGyrMBusStatus\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const landisGyrMBusStatusType1: RegisterDefinition = {\n id: \"landisGyrMBusStatusType1\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n\nexport const landisGyrMBusStatusType2: RegisterDefinition = {\n id: \"landisGyrMBusStatusType2\",\n measure: \"none\",\n aggregate: \"instant\",\n units,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport type { RegisterId } from \"../register-id\";\nimport type { UnitId } from \"../unit-id\";\n\nexport const legacyDeviceSamples: RegisterDefinition = {\n id: \"legacyDeviceSamples\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport const deviceSamplesOnLastMount: RegisterDefinition = {\n id: \"deviceSamplesOnLastMount\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport const deviceSamplesOnLastUnmount: RegisterDefinition = {\n id: \"deviceSamplesOnLastUnmount\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport type DeviceSamples = DeviceSample[];\n\nexport interface DeviceSample {\n register: RegisterId;\n instantOrPeriodEnd: string;\n value: number;\n precision: number;\n unit: UnitId;\n}\n","import { sqUnits, units } from \"../measures/mass-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletMassFlow: RegisterDefinition = {\n id: \"inletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletMassFlow: RegisterDefinition = {\n id: \"minInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletMassFlow: RegisterDefinition = {\n id: \"maxInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletMassFlow: RegisterDefinition = {\n id: \"avgInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletMassFlow: RegisterDefinition = {\n id: \"sumInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletMassFlow: RegisterDefinition = {\n id: \"cntInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletMassFlow: RegisterDefinition = {\n id: \"ssqInletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"gramsPerSecond\",\n \"gramsPerMinute\",\n \"gramsPerHour\",\n \"kiloGramsPerSecond\",\n \"kiloGramsPerMinute\",\n \"kiloGramsPerHour\",\n];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"gramsPerSecond2\",\n \"gramsPerMinute2\",\n \"gramsPerHour2\",\n \"kiloGramsPerSecond2\",\n \"kiloGramsPerMinute2\",\n \"kiloGramsPerHour2\",\n];\n","import { sqUnits, units } from \"../measures/mass-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletMassFlow: RegisterDefinition = {\n id: \"outletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletMassFlow: RegisterDefinition = {\n id: \"minOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletMassFlow: RegisterDefinition = {\n id: \"maxOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletMassFlow: RegisterDefinition = {\n id: \"avgOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletMassFlow: RegisterDefinition = {\n id: \"sumOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletMassFlow: RegisterDefinition = {\n id: \"cntOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletMassFlow: RegisterDefinition = {\n id: \"ssqOutletMassFlow\",\n measure: \"massFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/mass-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const massFlow: RegisterDefinition = {\n id: \"massFlow\",\n measure: \"massFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minMassFlow: RegisterDefinition = {\n id: \"minMassFlow\",\n measure: \"massFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxMassFlow: RegisterDefinition = {\n id: \"maxMassFlow\",\n measure: \"massFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgMassFlow: RegisterDefinition = {\n id: \"avgMassFlow\",\n measure: \"massFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumMassFlow: RegisterDefinition = {\n id: \"sumMassFlow\",\n measure: \"massFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntMassFlow: RegisterDefinition = {\n id: \"cntMassFlow\",\n measure: \"massFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqMassFlow: RegisterDefinition = {\n id: \"ssqMassFlow\",\n measure: \"massFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/mass\";\n\nexport const inletMass: RegisterDefinition = {\n id: \"inletMass\",\n measure: \"mass\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffInletMass: RegisterDefinition = {\n id: \"diffInletMass\",\n measure: \"mass\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntInletMass: RegisterDefinition = {\n id: \"cntInletMass\",\n measure: \"mass\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"gram\",\n \"kiloGram\",\n \"tonne\",\n \"ounce\",\n \"pound\",\n \"ton\",\n];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/mass\";\n\nexport const outletMass: RegisterDefinition = {\n id: \"outletMass\",\n measure: \"mass\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffOutletMass: RegisterDefinition = {\n id: \"diffOutletMass\",\n measure: \"mass\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntOutletMass: RegisterDefinition = {\n id: \"cntOutletMass\",\n measure: \"mass\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/mass\";\n\nexport const mass: RegisterDefinition = {\n id: \"mass\",\n measure: \"mass\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffMass: RegisterDefinition = {\n id: \"diffMass\",\n measure: \"mass\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntMass: RegisterDefinition = {\n id: \"cntMass\",\n measure: \"mass\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const mBusFormatStringSignature: RegisterDefinition = {\n id: \"mBusFormatStringSignature\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const none: RegisterDefinition = {\n id: \"none\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/duration\";\n\nexport const operatingTime: RegisterDefinition = {\n id: \"operatingTime\",\n measure: \"duration\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffOperatingTime: RegisterDefinition = {\n id: \"diffOperatingTime\",\n measure: \"duration\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntOperatingTime: RegisterDefinition = {\n id: \"cntOperatingTime\",\n measure: \"duration\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const place: RegisterDefinition = {\n id: \"place\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport const lastPlace: RegisterDefinition = {\n id: \"lastPlace\",\n measure: \"none\",\n aggregate: \"instant\",\n units: [\"json\"],\n immediate: true,\n};\n\nexport interface Place {\n id: number;\n name: string;\n placeNumber: string;\n longitude?: number;\n latitude?: number;\n address?: string;\n addressPlace?: string;\n addressPostalCode?: string;\n addressCity?: string;\n darAccessAddressId?: string;\n darAddressId?: string;\n}\n","import { sqUnits, units } from \"../measures/power\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletPower: RegisterDefinition = {\n id: \"inletPower\",\n measure: \"power\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletPower: RegisterDefinition = {\n id: \"minInletPower\",\n measure: \"power\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletPower: RegisterDefinition = {\n id: \"maxInletPower\",\n measure: \"power\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletPower: RegisterDefinition = {\n id: \"avgInletPower\",\n measure: \"power\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletPower: RegisterDefinition = {\n id: \"sumInletPower\",\n measure: \"power\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletPower: RegisterDefinition = {\n id: \"cntInletPower\",\n measure: \"power\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletPower: RegisterDefinition = {\n id: \"ssqInletPower\",\n measure: \"power\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"milliWatt\",\n \"watt\",\n \"kiloWatt\",\n \"megaWatt\",\n \"gigaWatt\",\n \"joulesPerSecond\",\n \"joulesPerMinute\",\n \"joulesPerHour\",\n];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"milliWatt2\",\n \"watt2\",\n \"kiloWatt2\",\n \"megaWatt2\",\n \"gigaWatt2\",\n \"joulesPerSecond2\",\n \"joulesPerMinute2\",\n \"joulesPerHour2\",\n];\n","import { sqUnits, units } from \"../measures/power\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletPower: RegisterDefinition = {\n id: \"outletPower\",\n measure: \"power\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletPower: RegisterDefinition = {\n id: \"minOutletPower\",\n measure: \"power\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletPower: RegisterDefinition = {\n id: \"maxOutletPower\",\n measure: \"power\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletPower: RegisterDefinition = {\n id: \"avgOutletPower\",\n measure: \"power\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletPower: RegisterDefinition = {\n id: \"sumOutletPower\",\n measure: \"power\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletPower: RegisterDefinition = {\n id: \"cntOutletPower\",\n measure: \"power\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletPower: RegisterDefinition = {\n id: \"ssqOutletPower\",\n measure: \"power\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/power\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const power: RegisterDefinition = {\n id: \"power\",\n measure: \"power\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minPower: RegisterDefinition = {\n id: \"minPower\",\n measure: \"power\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxPower: RegisterDefinition = {\n id: \"maxPower\",\n measure: \"power\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgPower: RegisterDefinition = {\n id: \"avgPower\",\n measure: \"power\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumPower: RegisterDefinition = {\n id: \"sumPower\",\n measure: \"power\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntPower: RegisterDefinition = {\n id: \"cntPower\",\n measure: \"power\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqPower: RegisterDefinition = {\n id: \"ssqPower\",\n measure: \"power\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/pressure\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletPressure: RegisterDefinition = {\n id: \"inletPressure\",\n measure: \"pressure\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletPressure: RegisterDefinition = {\n id: \"minInletPressure\",\n measure: \"pressure\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletPressure: RegisterDefinition = {\n id: \"maxInletPressure\",\n measure: \"pressure\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletPressure: RegisterDefinition = {\n id: \"avgInletPressure\",\n measure: \"pressure\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletPressure: RegisterDefinition = {\n id: \"sumInletPressure\",\n measure: \"pressure\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletPressure: RegisterDefinition = {\n id: \"cntInletPressure\",\n measure: \"pressure\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletPressure: RegisterDefinition = {\n id: \"ssqInletPressure\",\n measure: \"pressure\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"bar\", \"pascal\", \"kiloPascal\"];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"bar2\",\n \"pascal2\",\n \"kiloPascal2\",\n];\n","import { sqUnits, units } from \"../measures/pressure\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletPressure: RegisterDefinition = {\n id: \"outletPressure\",\n measure: \"pressure\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletPressure: RegisterDefinition = {\n id: \"minOutletPressure\",\n measure: \"pressure\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletPressure: RegisterDefinition = {\n id: \"maxOutletPressure\",\n measure: \"pressure\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletPressure: RegisterDefinition = {\n id: \"avgOutletPressure\",\n measure: \"pressure\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletPressure: RegisterDefinition = {\n id: \"sumOutletPressure\",\n measure: \"pressure\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletPressure: RegisterDefinition = {\n id: \"cntOutletPressure\",\n measure: \"pressure\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletPressure: RegisterDefinition = {\n id: \"ssqOutletPressure\",\n measure: \"pressure\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/pressure\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const pressure: RegisterDefinition = {\n id: \"pressure\",\n measure: \"pressure\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minPressure: RegisterDefinition = {\n id: \"minPressure\",\n measure: \"pressure\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxPressure: RegisterDefinition = {\n id: \"maxPressure\",\n measure: \"pressure\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgPressure: RegisterDefinition = {\n id: \"avgPressure\",\n measure: \"pressure\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumPressure: RegisterDefinition = {\n id: \"sumPressure\",\n measure: \"pressure\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntPressure: RegisterDefinition = {\n id: \"cntPressure\",\n measure: \"pressure\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqPressure: RegisterDefinition = {\n id: \"ssqPressure\",\n measure: \"pressure\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/temperature\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const radiatorTemperature: RegisterDefinition = {\n id: \"radiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minRadiatorTemperature: RegisterDefinition = {\n id: \"minRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxRadiatorTemperature: RegisterDefinition = {\n id: \"maxRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgRadiatorTemperature: RegisterDefinition = {\n id: \"avgRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumRadiatorTemperature: RegisterDefinition = {\n id: \"sumRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntRadiatorTemperature: RegisterDefinition = {\n id: \"cntRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqRadiatorTemperature: RegisterDefinition = {\n id: \"ssqRadiatorTemperature\",\n measure: \"temperature\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/reactive-energy\";\n\nexport const reactiveEnergy: RegisterDefinition = {\n id: \"reactiveEnergy\",\n measure: \"reactiveEnergy\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffReactiveEnergy: RegisterDefinition = {\n id: \"diffReactiveEnergy\",\n measure: \"reactiveEnergy\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntReactiveEnergy: RegisterDefinition = {\n id: \"cntReactiveEnergy\",\n measure: \"reactiveEnergy\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"varHour\",\n \"kiloVarHour\",\n \"megaVarHour\",\n];\n","import type { RegisterDefinition } from \"../register-definition\";\n\nexport const relativeHumidity: RegisterDefinition = {\n id: \"relativeHumidity\",\n measure: \"humidity\",\n aggregate: \"instant\",\n units: [\"percentage\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/duration\";\n\nexport const remainingBatteryTime: RegisterDefinition = {\n id: \"remainingBatteryTime\",\n measure: \"duration\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffRemainingBatteryTime: RegisterDefinition = {\n id: \"diffRemainingBatteryTime\",\n measure: \"duration\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntRemainingBatteryTime: RegisterDefinition = {\n id: \"cntRemainingBatteryTime\",\n measure: \"duration\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units as durationUnits } from \"../measures/duration\";\nimport { units as timeUnits } from \"../measures/time\";\n\nexport const timeAtLastExactOverhearingArrived: RegisterDefinition = {\n id: \"timeAtLastExactOverhearingArrived\",\n measure: \"time\",\n aggregate: \"instant\",\n units: timeUnits,\n immediate: true,\n};\n\nexport const timeSinceLastExactOverhearingArrived: RegisterDefinition = {\n id: \"timeSinceLastExactOverhearingArrived\",\n measure: \"duration\",\n aggregate: \"instant\",\n units: durationUnits,\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units as durationUnits } from \"../measures/duration\";\nimport { units as timeUnits } from \"../measures/time\";\n\nexport const timeAtLastInstallationMounted: RegisterDefinition = {\n id: \"timeAtLastInstallationMounted\",\n measure: \"time\",\n aggregate: \"instant\",\n units: timeUnits,\n immediate: true,\n};\n\nexport const timeSinceLastInstallationMounted: RegisterDefinition = {\n id: \"timeSinceLastInstallationMounted\",\n measure: \"duration\",\n aggregate: \"instant\",\n units: durationUnits,\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units as durationUnits } from \"../measures/duration\";\nimport { units as timeUnits } from \"../measures/time\";\n\nexport const timeAtLastPossibleCandidateOverhearingArrived: RegisterDefinition =\n {\n id: \"timeAtLastPossibleCandidateOverhearingArrived\",\n measure: \"time\",\n aggregate: \"instant\",\n units: timeUnits,\n immediate: true,\n };\n\nexport const timeSinceLastPossibleCandidateOverhearingArrived: RegisterDefinition =\n {\n id: \"timeSinceLastPossibleCandidateOverhearingArrived\",\n measure: \"duration\",\n aggregate: \"instant\",\n units: durationUnits,\n immediate: true,\n };\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units as durationUnits } from \"../measures/duration\";\nimport { units as timeUnits } from \"../measures/time\";\n\nexport const timeAtLastSampled: RegisterDefinition = {\n id: \"timeAtLastSampled\",\n measure: \"time\",\n aggregate: \"instant\",\n units: timeUnits,\n immediate: true,\n};\n\nexport const timeSinceLastSampled: RegisterDefinition = {\n id: \"timeSinceLastSampled\",\n measure: \"duration\",\n aggregate: \"instant\",\n units: durationUnits,\n immediate: true,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/time\";\n\nexport const basetime: RegisterDefinition = {\n id: \"basetime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n immediate: true,\n};\n\nexport const instantTime: RegisterDefinition = {\n id: \"instantTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n\nexport const periodStartTime: RegisterDefinition = {\n id: \"periodStartTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n\nexport const periodEndTime: RegisterDefinition = {\n id: \"periodEndTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n\nexport const instantOrPeriodStartTime: RegisterDefinition = {\n id: \"instantOrPeriodStartTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n\nexport const instantOrPeriodEndTime: RegisterDefinition = {\n id: \"instantOrPeriodEndTime\",\n measure: \"time\",\n aggregate: \"instant\",\n units,\n};\n","import { sqUnits, units } from \"../measures/volume-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const inletVolumeFlow: RegisterDefinition = {\n id: \"inletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minInletVolumeFlow: RegisterDefinition = {\n id: \"minInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxInletVolumeFlow: RegisterDefinition = {\n id: \"maxInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgInletVolumeFlow: RegisterDefinition = {\n id: \"avgInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumInletVolumeFlow: RegisterDefinition = {\n id: \"sumInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntInletVolumeFlow: RegisterDefinition = {\n id: \"cntInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqInletVolumeFlow: RegisterDefinition = {\n id: \"ssqInletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\n \"litersPerSecond\",\n \"litersPerMinute\",\n \"litersPerHour\",\n \"cubicMetersPerSecond\",\n \"cubicMetersPerMinute\",\n \"cubicMetersPerHour\",\n \"gallonsPerSecond\",\n \"gallonsPerMinute\",\n \"gallonsPerHour\",\n];\n\nexport const sqUnits: ReadonlyArray<UnitId> = [\n \"litersPerSecond2\",\n \"litersPerMinute2\",\n \"litersPerHour2\",\n \"cubicMetersPerSecond2\",\n \"cubicMetersPerMinute2\",\n \"cubicMetersPerHour2\",\n \"gallonsPerSecond2\",\n \"gallonsPerMinute2\",\n \"gallonsPerHour2\",\n];\n","import { sqUnits, units } from \"../measures/volume-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const outletVolumeFlow: RegisterDefinition = {\n id: \"outletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minOutletVolumeFlow: RegisterDefinition = {\n id: \"minOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxOutletVolumeFlow: RegisterDefinition = {\n id: \"maxOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgOutletVolumeFlow: RegisterDefinition = {\n id: \"avgOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumOutletVolumeFlow: RegisterDefinition = {\n id: \"sumOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntOutletVolumeFlow: RegisterDefinition = {\n id: \"cntOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqOutletVolumeFlow: RegisterDefinition = {\n id: \"ssqOutletVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import { sqUnits, units } from \"../measures/volume-flow\";\n\nimport type { RegisterDefinition } from \"../register-definition\";\n\nexport const volumeFlow: RegisterDefinition = {\n id: \"volumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"instant\",\n units,\n};\n\nexport const minVolumeFlow: RegisterDefinition = {\n id: \"minVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"min\",\n units,\n};\n\nexport const maxVolumeFlow: RegisterDefinition = {\n id: \"maxVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"max\",\n units,\n};\n\nexport const avgVolumeFlow: RegisterDefinition = {\n id: \"avgVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"avg\",\n units,\n};\n\nexport const sumVolumeFlow: RegisterDefinition = {\n id: \"sumVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"sum\",\n units,\n};\n\nexport const cntVolumeFlow: RegisterDefinition = {\n id: \"cntVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n\nexport const ssqVolumeFlow: RegisterDefinition = {\n id: \"ssqVolumeFlow\",\n measure: \"volumeFlow\",\n aggregate: \"ssq\",\n units: sqUnits,\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const inletVolume: RegisterDefinition = {\n id: \"inletVolume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffInletVolume: RegisterDefinition = {\n id: \"diffInletVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntInletVolume: RegisterDefinition = {\n id: \"cntInletVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { UnitId } from \"../unit-id\";\n\nexport const units: ReadonlyArray<UnitId> = [\"liter\", \"cubicMeter\", \"gallon\"];\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const outletVolume: RegisterDefinition = {\n id: \"outletVolume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffOutletVolume: RegisterDefinition = {\n id: \"diffOutletVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntOutletVolume: RegisterDefinition = {\n id: \"cntOutletVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const pulseInputAVolume: RegisterDefinition = {\n id: \"pulseInputAVolume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffPulseInputAVolume: RegisterDefinition = {\n id: \"diffPulseInputAVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntPulseInputAVolume: RegisterDefinition = {\n id: \"cntPulseInputAVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const pulseInputBVolume: RegisterDefinition = {\n id: \"pulseInputBVolume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffPulseInputBVolume: RegisterDefinition = {\n id: \"diffPulseInputBVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntPulseInputBVolume: RegisterDefinition = {\n id: \"cntPulseInputBVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import type { RegisterDefinition } from \"../register-definition\";\nimport { units } from \"../measures/volume\";\n\nexport const volume: RegisterDefinition = {\n id: \"volume\",\n measure: \"volume\",\n aggregate: \"instant\",\n units,\n};\n\nexport const diffVolume: RegisterDefinition = {\n id: \"diffVolume\",\n measure: \"volume\",\n aggregate: \"diff\",\n units,\n};\n\nexport const cntVolume: RegisterDefinition = {\n id: \"cntVolume\",\n measure: \"volume\",\n aggregate: \"cnt\",\n units: [\"unitless\"],\n};\n","import { Duration } from \"luxon\";\n\nexport {Duration};","import { DateTime } from \"luxon\";\nimport { Duration } from \"./luxon-local\";\n\nexport type Step = \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport enum DayOfWeek {\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n Sunday = 7,\n}\n\nexport namespace Step {\n export function startOf(\n dateTime: DateTime,\n step: Step,\n firstDayOfWeek?: DayOfWeek,\n ): DateTime {\n if (step === \"week\") {\n const value = dateTime\n .startOf(\"day\")\n .set({ weekday: firstDayOfWeek ?? DayOfWeek.Monday });\n return value > dateTime ? value.minus({ days: 7 }) : value;\n } else {\n return dateTime.startOf(step);\n }\n }\n\n export function asDuration(step: Step, amount = 1): Duration {\n switch (step) {\n case \"hour\":\n return Duration.fromObject({ hours: amount });\n case \"day\":\n return Duration.fromObject({ days: amount });\n case \"week\":\n return Duration.fromObject({ days: 7 * amount });\n case \"month\":\n return Duration.fromObject({ months: amount });\n case \"year\":\n return Duration.fromObject({ years: amount });\n }\n }\n}\n","export const invariantDecimalSeparator = (0.1).toString()[1];\nexport const localeDecimalSeparator = (0.1).toLocaleString()[1];\n\nexport interface Parts {\n invariantPrecisionString: string;\n invariantCoefficientString: string;\n exponent: number;\n noOfCoefficientDecimals: number;\n}\n\nclass Formatter {\n public toPrecision(value: number, precision: number, maxDecimals?: number) {\n const absValue = Math.abs(value);\n const noOfIntegerDigits = Math.round(absValue).toString().length;\n\n // Adjust precision to maxDecimals\n if (maxDecimals !== undefined) {\n precision = Math.min(precision, noOfIntegerDigits + maxDecimals);\n }\n\n if (value === 0) {\n // (0).toPrecision(1) == \"0\"\n // (0).toPrecision(2) == \"0.0\"\n // (0).toPrecision(3) == \"0.00\"\n // However, we want:\n // Formatter.toPrecision(0, 0) == \"0\"\n // Formatter.toPrecision(0, 1) == \"0.0\"\n // Formatter.toPrecision(0, 2) == \"0.00\"\n return value.toPrecision(precision + 1);\n }\n\n if (absValue < 1) {\n return value.toPrecision(precision);\n }\n\n return precision >= noOfIntegerDigits\n ? value.toFixed(precision - noOfIntegerDigits)\n : value.toPrecision(precision);\n }\n\n public toLocalePrecision(\n value: number,\n precision: number,\n maxDecimals?: number,\n ) {\n return this.toPrecision(value, precision, maxDecimals).replace(\n invariantDecimalSeparator,\n localeDecimalSeparator,\n );\n }\n\n public toFixed(value: number, precision: number, maxDecimals?: number) {\n const parts = this.getParts(value, precision, maxDecimals);\n if (parts.noOfCoefficientDecimals < parts.exponent) {\n const number = parts.invariantCoefficientString.replace(\n invariantDecimalSeparator,\n \"\",\n );\n const zeros = parts.exponent - parts.noOfCoefficientDecimals;\n return `${number}${\"0\".repeat(zeros)}`;\n } else {\n return parts.invariantPrecisionString;\n }\n }\n\n public toLocaleFixed(\n value: number,\n precision: number,\n maxDecimals?: number,\n ) {\n return this.toFixed(value, precision, maxDecimals).replace(\n invariantDecimalSeparator,\n localeDecimalSeparator,\n );\n }\n\n public getParts(\n value: number,\n precision: number,\n maxDecimals?: number,\n ): Parts {\n const precisionString = this.toPrecision(value, precision, maxDecimals);\n if (precisionString.indexOf(\"e\") >= 0) {\n const match = /(.*)e([\\+-]\\d+)$/.exec(precisionString)!;\n const coefficientString = match[1];\n const exponent = parseInt(match[2]);\n const decimalSeparatorIndex = coefficientString.indexOf(\n invariantDecimalSeparator,\n );\n const noOfCoefficientDecimals =\n decimalSeparatorIndex >= 0\n ? coefficientString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: coefficientString,\n exponent,\n noOfCoefficientDecimals,\n };\n } else {\n const decimalSeparatorIndex = precisionString.indexOf(\n invariantDecimalSeparator,\n );\n const noOfCoefficientDecimals =\n decimalSeparatorIndex >= 0\n ? precisionString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: precisionString,\n exponent: 0,\n noOfCoefficientDecimals,\n };\n }\n }\n}\n\nexport const NumberFormatter = new Formatter();\n","import { TimeOrRule } from \"./time-or-rule\";\n\nexport type BreakdownRule = string;\nexport type BreakdownPeriod = \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\ninterface BreakdownRuleInit {\n origin: TimeOrRule;\n count: number;\n period: BreakdownPeriod;\n}\n\nexport function BreakdownRule(init: BreakdownRuleInit): BreakdownRule;\nexport function BreakdownRule(\n origin: TimeOrRule,\n count: number,\n period: BreakdownPeriod,\n): BreakdownRule;\nexport function BreakdownRule(...params: any[]): BreakdownRule {\n let init: BreakdownRuleInit;\n switch (params.length) {\n case 1:\n init = params[0];\n break;\n case 3:\n init = {\n origin: params[0],\n count: params[1],\n period: params[2],\n };\n break;\n default:\n throw new TypeError(\"Invalid breakdown rule format\");\n }\n const periodName =\n Math.abs(init.count) == 1 ? init.period : init.period + \"s\";\n return `${init.origin}/${init.count}${periodName}`;\n}\n\nexport namespace BreakdownRule {\n const regex = new RegExp(\"(.*)/([-+]?[0-9]+)(hour|day|week|month|year)s?\");\n export function split(rule: BreakdownRule) {\n const match = regex.exec(rule);\n if (!match) {\n throw new Error(\"Invalid breakdown rule format\");\n }\n const origin = match[1];\n const count = parseInt(match[2]);\n let period = match[3];\n if (period.endsWith(\"s\")) {\n period = period.substring(0, period.length - 1);\n }\n return {\n origin: TimeOrRule.parse(origin),\n count,\n period: period as BreakdownPeriod,\n };\n }\n}\n","import { DateTime } from \"luxon\";\n\nexport type TimeOrRule = Date | DateTime<true> | string;\n\nexport function TimeOrRule(\n timeOrRule: Date | DateTime<true> | string,\n): TimeOrRule {\n return timeOrRule;\n}\n\nexport namespace TimeOrRule {\n export function parse(input: string): TimeOrRule {\n const time = DateTime.fromISO(input, { setZone: true });\n return time.isValid ? time : input;\n }\n\n export function isTime(input: TimeOrRule): input is Date | DateTime<true> {\n return typeof input !== \"string\";\n }\n\n export function isRule(input: TimeOrRule): input is string {\n return typeof input === \"string\";\n }\n\n export function asDateTime(input: TimeOrRule): DateTime<true> | undefined {\n if (isRule(input)) {\n return;\n } else if (DateTime.isDateTime(input)) {\n return input;\n } else {\n const dateTime = DateTime.fromJSDate(input);\n if (!dateTime.isValid) {\n throw new Error(\"Unable to convert from Date to DateTime\");\n }\n return dateTime;\n }\n }\n\n export function toJSON(input: TimeOrRule) {\n return isRule(input) ? input : input.toJSON();\n }\n}\n","import { NumberFormatter, localeDecimalSeparator } from \"./number-formatter\";\n\nimport { invariantDecimalSeparator } from \".\";\n\nexport class PrecisionNumber {\n public value: number;\n public precision: number;\n constructor(value: number, precision?: number) {\n this.value = value;\n this.precision = precision ?? getPrecision(value);\n }\n\n static parse(input: string) {\n let normalized = input\n .trim()\n .replace(\",\", \".\")\n .replace(localeDecimalSeparator, invariantDecimalSeparator);\n if (normalized.endsWith(invariantDecimalSeparator)) {\n normalized += \"0\";\n }\n const value = parseFloat(normalized);\n let precision = normalized\n .replace(\".\", \"\")\n .replace(\"+\", \"\")\n .replace(\"-\", \"\").length;\n if (value > -1 && value < 1 && value !== 0 && precision > 1) {\n precision--;\n }\n return new PrecisionNumber(value, precision);\n }\n\n abs() {\n return new PrecisionNumber(Math.abs(this.value), this.precision);\n }\n\n plus(rhs: PrecisionNumber) {\n // The result should have the same number of decimal places as the minimum of the two inputs\n const lhs = this;\n const value = lhs.value + rhs.value;\n const decimals = Math.min(\n getNumberOfDecimalDigits(lhs.value, lhs.precision),\n getNumberOfDecimalDigits(rhs.value, rhs.precision),\n );\n const precision = getPrecision(value, decimals);\n return new PrecisionNumber(value, precision);\n }\n\n minus(rhs: PrecisionNumber) {\n // The result should have the same number of decimal places as the minimum of the two inputs\n const lhs = this;\n const value = lhs.value - rhs.value;\n const decimals = Math.min(\n getNumberOfDecimalDigits(lhs.value, lhs.precision),\n getNumberOfDecimalDigits(rhs.value, rhs.precision),\n );\n const precision = getPrecision(value, decimals);\n return new PrecisionNumber(value, precision);\n }\n\n valueOf() {\n return this.value;\n }\n\n toString() {\n return this.value.toString();\n }\n\n toFixed() {\n return NumberFormatter.toFixed(this.value, this.precision);\n }\n\n toPrecision() {\n return NumberFormatter.toPrecision(this.value, this.precision);\n }\n\n toLocaleFixed() {\n return NumberFormatter.toLocaleFixed(this.value, this.precision);\n }\n\n toLocalePrecision() {\n return NumberFormatter.toLocalePrecision(this.value, this.precision);\n }\n}\n\nfunction getPrecision(number: number, decimals?: number) {\n decimals ??= number.toString().split(\".\", 2)[1]?.length ?? 0;\n\n if (number == 0) {\n return 1;\n } else if (number > -1 && number < 1) {\n return decimals;\n } else {\n return Math.max(getNumberOfIntegralDigits(number) + decimals, 1);\n }\n}\n\nfunction getNumberOfDecimalDigits(number: number, precision: number) {\n if (number > -1 && number < 1) {\n return precision;\n } else {\n return precision - getNumberOfIntegralDigits(number);\n }\n}\n\nfunction getNumberOfIntegralDigits(number: number) {\n const abs = Math.abs(number);\n if (abs < 10) return 1;\n if (abs < 100) return 2;\n if (abs < 1000) return 3;\n if (abs < 10000) return 4;\n if (abs < 100000) return 5;\n if (abs < 1000000) return 6;\n if (abs < 10000000) return 7;\n if (abs < 100000000) return 8;\n if (abs < 1000000000) return 9;\n return Math.floor(Math.log10(abs) + 1);\n}\n","import type { RegisterDefinition } from \"./register-definition\";\nimport { AggregateId } from \"./aggregate-id\";\nimport type { RegisterId } from \"./register-id\";\nimport { getRegisterId } from \"./register-utils\";\n\nexport const aggregatePrefixes: { [aggregateId in AggregateId]: string } = {\n instant: \"\",\n diff: \"diff\",\n min: \"min\",\n max: \"max\",\n avg: \"avg\",\n sum: \"sum\",\n cnt: \"cnt\",\n ssq: \"ssq\",\n};\n\nclass Convention {\n public getAggregate(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n // Brute force all prefixes - if none of them, then it must be instant.\n for (const aggregateString of Object.keys(aggregatePrefixes)) {\n const aggregate = <AggregateId>aggregateString;\n const prefix = aggregatePrefixes[aggregate];\n if (prefix.length && isPrefix(registerId, prefix)) {\n // Not instant - it was any of the others.\n return aggregate;\n }\n }\n return \"instant\";\n }\n\n toInstant(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n for (const prefix of Object.values(aggregatePrefixes)) {\n if (prefix.length && isPrefix(registerId, prefix)) {\n const tail = registerId.substr(prefix.length);\n return <RegisterId>(tail[0].toLowerCase() + tail.substr(1));\n }\n }\n return registerId;\n }\n\n toAggregate(\n register: RegisterId | RegisterDefinition,\n aggregate: AggregateId,\n ) {\n const instantRegisterId = this.toInstant(register);\n if (aggregate === \"instant\") {\n return instantRegisterId;\n }\n const prefix = aggregatePrefixes[aggregate];\n return <RegisterId>(\n (prefix +\n instantRegisterId[0].toUpperCase() +\n instantRegisterId.substr(1))\n );\n }\n}\n\nexport function isPrefix(registerId: RegisterId, prefix: string) {\n return (\n registerId.startsWith(prefix) && isUppercase(registerId[prefix.length])\n );\n}\n\nfunction isUppercase(input: string) {\n return input.toUpperCase() === input;\n}\n\nexport const RegisterConvention = new Convention();\n","import type { RegisterDefinition } from \"./register-definition\";\nimport type { RegisterId } from \"./register-id\";\n\nexport function getRegisterId(register: RegisterId | RegisterDefinition) {\n return typeof register === \"string\" ? register : register.id;\n}\n","import type { RegisterDefinition } from \"./register-definition\";\nimport type { RegisterId } from \"./register-id\";\nimport { RegisterPack } from \"./register-pack\";\n\nclass Library {\n private definitions: Partial<{ [id in RegisterId]: RegisterDefinition }> =\n {};\n\n public add(...definitions: (RegisterDefinition | RegisterPack)[]) {\n for (const definition of definitions) {\n if (isDefinition(definition)) {\n this.tryAdd(definition);\n } else {\n for (const definitionInPack of Object.values(definition)) {\n this.tryAdd(definitionInPack);\n }\n }\n }\n }\n\n private tryAdd(definition: RegisterDefinition) {\n if (!this.definitions[definition.id]) {\n this.definitions[definition.id] = definition;\n return true;\n }\n return false;\n }\n\n public has(id: RegisterId) {\n return !!this.definitions[id];\n }\n\n public tryGet(id: RegisterId) {\n return this.definitions[id];\n }\n\n public get(id: RegisterId) {\n const definition = this.definitions[id];\n if (!definition) {\n throw new Error(`Defintion was not loaded for register ${id}`);\n }\n return definition;\n }\n\n public all() {\n return Object.values(this.definitions).map((x) => x!);\n }\n\n public reset() {\n this.definitions = {};\n }\n}\n\nfunction isDefinition(\n definitionOrPack: RegisterDefinition | RegisterPack,\n): definitionOrPack is RegisterDefinition {\n return !!(\n definitionOrPack.id &&\n definitionOrPack.aggregate &&\n definitionOrPack.units\n );\n}\n\nexport const RegisterLibrary = new Library();\n"],"names":[],"version":3,"file":"index.js.map"}