@utiliread/primitives 1.0.0-123 → 1.0.0-125
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.d.ts +59 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -3
- package/dist/index.mjs.map +1 -1
- package/dist/src/index.bef52b22.ts +116 -0
- package/dist/src/index.bef52b22.ts.map +1 -0
- package/dist/types/index.d.ts +6 -1
- package/dist/types/medium.d.ts +3 -0
- package/dist/types/medium.spec.d.ts +1 -0
- package/dist/types/repository.d.ts +1 -0
- package/package.json +2 -1
- package/src/index.ts +43 -8
- package/src/medium.spec.ts +12 -0
- package/src/medium.ts +19 -0
- package/src/repository.spec.ts +9 -0
- package/src/repository.ts +10 -5
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Duration, DateTime } from "luxon";
|
|
2
|
+
export type Repository = "some/repo";
|
|
3
|
+
export function Repository(repo: string): Repository;
|
|
4
|
+
export function Repository(team: string, name: string): Repository;
|
|
5
|
+
export declare namespace Repository {
|
|
6
|
+
function split(repo: Repository): {
|
|
7
|
+
team: string;
|
|
8
|
+
name: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export type UnitId = "unitless" | "milliWattHour" | "wattHour" | "kiloWattHour" | "megaWattHour" | "gigaWattHour" | "calorie" | "kiloCalorie" | "megaCalorie" | "gigaCalorie" | "joule" | "kiloJoule" | "megaJoule" | "gigaJoule" | "liter" | "cubicMeter" | "fluidOunce" | "gallon" | "gram" | "kiloGram" | "tonne" | "ounce" | "pound" | "ton" | "second" | "minute" | "hour" | "day" | "week" | "month" | "year" | "milliWatt" | "milliWatt2" | "watt" | "watt2" | "kiloWatt" | "kiloWatt2" | "megaWatt" | "megaWatt2" | "gigaWatt" | "gigaWatt2" | "joulesPerSecond" | "joulesPerSecond2" | "joulesPerMinute" | "joulesPerMinute2" | "joulesPerHour" | "joulesPerHour2" | "litersPerSecond" | "litersPerSecond2" | "litersPerMinute" | "litersPerMinute2" | "litersPerHour" | "litersPerHour2" | "cubicMetersPerSecond" | "cubicMetersPerSecond2" | "cubicMetersPerMinute" | "cubicMetersPerMinute2" | "cubicMetersPerHour" | "cubicMetersPerHour2" | "fluidOuncesPerSecond" | "fluidOuncesPerSecond2" | "fluidOuncesPerMinute" | "fluidOuncesPerMinute2" | "fluidOuncesPerHour" | "fluidOuncesPerHour2" | "gallonsPerSecond" | "gallonsPerSecond2" | "gallonsPerMinute" | "gallonsPerMinute2" | "gallonsPerHour" | "gallonsPerHour2" | "gramsPerSecond" | "gramsPerSecond2" | "gramsPerMinute" | "gramsPerMinute2" | "gramsPerHour" | "gramsPerHour2" | "kiloGramsPerSecond" | "kiloGramsPerSecond2" | "kiloGramsPerMinute" | "kiloGramsPerMinute2" | "kiloGramsPerHour" | "kiloGramsPerHour2" | "celcius" | "celcius2" | "kelvin" | "kelvin2" | "fahrenheit" | "fahrenheit2" | "bar" | "bar2" | "pascal" | "pascal2" | "kiloPascal" | "kiloPascal2" | "decibel" | "decibel2" | "var" | "kiloVar" | "megaVar" | "varHour" | "kiloVarHour" | "megaVarHour" | "percentage" | "literCelcius" | "cubicMeterCelcius" | "json";
|
|
12
|
+
export type AggregateId = "instant" | "diff" | "min" | "max" | "avg" | "sum" | "cnt" | "ssq";
|
|
13
|
+
export type MeasureId = "none" | "duration" | "energy" | "humidity" | "mass" | "massFlow" | "noise" | "power" | "pressure" | "reactiveEnergy" | "reactivePower" | "temperature" | "time" | "volume" | "volumeFlow" | "infocode";
|
|
14
|
+
export type RegisterId = "none" | "heatEnergy" | "diffHeatEnergy" | "cntHeatEnergy" | "heatEnergyVolumeInInlet" | "diffHeatEnergyVolumeInInlet" | "cntHeatEnergyVolumeInInlet" | "heatEnergyVolumeInOutlet" | "diffHeatEnergyVolumeInOutlet" | "cntHeatEnergyVolumeInOutlet" | "coolingEnergy" | "diffCoolingEnergy" | "cntCoolingEnergy" | "coolingEnergyVolumeInInlet" | "diffCoolingEnergyVolumeInInlet" | "cntCoolingEnergyVolumeInInlet" | "coolingEnergyVolumeInOutlet" | "diffCoolingEnergyVolumeInOutlet" | "cntCoolingEnergyVolumeInOutlet" | "electricalEnergy" | "diffElectricalEnergy" | "cntElectricalEnergy" | "reactiveEnergy" | "diffReactiveEnergy" | "cntReactiveEnergy" | "heatEnergyTariff1" | "diffHeatEnergyTariff1" | "cntHeatEnergyTariff1" | "heatEnergyTariff1VolumeInInlet" | "diffHeatEnergyTariff1VolumeInInlet" | "cntHeatEnergyTariff1VolumeInInlet" | "heatEnergyTariff1VolumeInOutlet" | "diffHeatEnergyTariff1VolumeInOutlet" | "cntHeatEnergyTariff1VolumeInOutlet" | "heatEnergyTariff2" | "diffHeatEnergyTariff2" | "cntHeatEnergyTariff2" | "heatEnergyTariff2VolumeInInlet" | "diffHeatEnergyTariff2VolumeInInlet" | "cntHeatEnergyTariff2VolumeInInlet" | "heatEnergyTariff2VolumeInOutlet" | "diffHeatEnergyTariff2VolumeInOutlet" | "cntHeatEnergyTariff2VolumeInOutlet" | "volume" | "diffVolume" | "cntVolume" | "inletVolume" | "diffInletVolume" | "cntInletVolume" | "outletVolume" | "diffOutletVolume" | "cntOutletVolume" | "pulseInputAVolume" | "diffPulseInputAVolume" | "cntPulseInputAVolume" | "pulseInputBVolume" | "diffPulseInputBVolume" | "cntPulseInputBVolume" | "mass" | "diffMass" | "cntMass" | "inletMass" | "diffInletMass" | "cntInletMass" | "outletMass" | "diffOutletMass" | "cntOutletMass" | "pressure" | "maxPressure" | "minPressure" | "avgPressure" | "sumPressure" | "cntPressure" | "ssqPressure" | "inletPressure" | "maxInletPressure" | "minInletPressure" | "avgInletPressure" | "sumInletPressure" | "cntInletPressure" | "ssqInletPressure" | "outletPressure" | "maxOutletPressure" | "minOutletPressure" | "avgOutletPressure" | "sumOutletPressure" | "cntOutletPressure" | "ssqOutletPressure" | "power" | "maxPower" | "minPower" | "avgPower" | "sumPower" | "cntPower" | "ssqPower" | "inletPower" | "maxInletPower" | "minInletPower" | "avgInletPower" | "sumInletPower" | "cntInletPower" | "ssqInletPower" | "outletPower" | "maxOutletPower" | "minOutletPower" | "avgOutletPower" | "sumOutletPower" | "cntOutletPower" | "ssqOutletPower" | "volumeFlow" | "maxVolumeFlow" | "minVolumeFlow" | "avgVolumeFlow" | "sumVolumeFlow" | "cntVolumeFlow" | "ssqVolumeFlow" | "inletVolumeFlow" | "maxInletVolumeFlow" | "minInletVolumeFlow" | "avgInletVolumeFlow" | "sumInletVolumeFlow" | "cntInletVolumeFlow" | "ssqInletVolumeFlow" | "outletVolumeFlow" | "maxOutletVolumeFlow" | "minOutletVolumeFlow" | "avgOutletVolumeFlow" | "sumOutletVolumeFlow" | "cntOutletVolumeFlow" | "ssqOutletVolumeFlow" | "massFlow" | "maxMassFlow" | "minMassFlow" | "avgMassFlow" | "sumMassFlow" | "cntMassFlow" | "ssqMassFlow" | "inletMassFlow" | "maxInletMassFlow" | "minInletMassFlow" | "avgInletMassFlow" | "sumInletMassFlow" | "cntInletMassFlow" | "ssqInletMassFlow" | "outletMassFlow" | "maxOutletMassFlow" | "minOutletMassFlow" | "avgOutletMassFlow" | "sumOutletMassFlow" | "cntOutletMassFlow" | "ssqOutletMassFlow" | "flowTemperature" | "maxFlowTemperature" | "minFlowTemperature" | "avgFlowTemperature" | "sumFlowTemperature" | "cntFlowTemperature" | "ssqFlowTemperature" | "inletFlowTemperature" | "maxInletFlowTemperature" | "minInletFlowTemperature" | "avgInletFlowTemperature" | "sumInletFlowTemperature" | "cntInletFlowTemperature" | "ssqInletFlowTemperature" | "outletFlowTemperature" | "maxOutletFlowTemperature" | "minOutletFlowTemperature" | "avgOutletFlowTemperature" | "sumOutletFlowTemperature" | "cntOutletFlowTemperature" | "ssqOutletFlowTemperature" | "inletMinusOutletFlowTemperatureDifference" | "maxInletMinusOutletFlowTemperatureDifference" | "minInletMinusOutletFlowTemperatureDifference" | "avgInletMinusOutletFlowTemperatureDifference" | "sumInletMinusOutletFlowTemperatureDifference" | "cntInletMinusOutletFlowTemperatureDifference" | "ssqInletMinusOutletFlowTemperatureDifference" | "outletMinusInletFlowTemperatureDifference" | "maxOutletMinusInletFlowTemperatureDifference" | "minOutletMinusInletFlowTemperatureDifference" | "avgOutletMinusInletFlowTemperatureDifference" | "sumOutletMinusInletFlowTemperatureDifference" | "cntOutletMinusInletFlowTemperatureDifference" | "ssqOutletMinusInletFlowTemperatureDifference" | "ambientTemperature" | "maxAmbientTemperature" | "minAmbientTemperature" | "avgAmbientTemperature" | "sumAmbientTemperature" | "cntAmbientTemperature" | "ssqAmbientTemperature" | "radiatorTemperature" | "maxRadiatorTemperature" | "minRadiatorTemperature" | "avgRadiatorTemperature" | "sumRadiatorTemperature" | "cntRadiatorTemperature" | "ssqRadiatorTemperature" | "auxFlowTemperature" | "maxAuxFlowTemperature" | "minAuxFlowTemperature" | "avgAuxFlowTemperature" | "sumAuxFlowTemperature" | "cntAuxFlowTemperature" | "ssqAuxFlowTemperature" | "acousticNoise" | "maxAcousticNoise" | "minAcousticNoise" | "avgAcousticNoise" | "sumAcousticNoise" | "cntAcousticNoise" | "ssqAcousticNoise" | "relativeHumidity" | "kamstrupE8Inlet" | "diffKamstrupE8Inlet" | "cntKamstrupE8Inlet" | "kamstrupE9Outlet" | "diffKamstrupE9Outlet" | "cntKamstrupE9Outlet" | "operatingTime" | "diffOperatingTime" | "cntOperatingTime" | "errorOperatingTime" | "diffErrorOperatingTime" | "cntErrorOperatingTime" | "remainingBatteryTime" | "diffRemainingBatteryTime" | "cntRemainingBatteryTime" | "deviceDate" | "deviceTime" | "deviceDateTime" | "timeSinceLastExactOverhearingArrived" | "timeAtLastExactOverhearingArrived" | "timeSinceLastPossibleCandidateOverhearingArrived" | "timeAtLastPossibleCandidateOverhearingArrived" | "timeSinceLastSampled" | "timeAtLastSampled" | "timeSinceLastInstallationMounted" | "timeAtLastInstallationMounted" | "basetime" | "instantTime" | "periodStartTime" | "periodEndTime" | "instantOrPeriodStartTime" | "instantOrPeriodEndTime" | "device" | "wMBusDeviceAddresses" | "kamdraftDeviceAddresses" | "tchlrDeviceAddresses" | "msisdnDeviceAddresses" | "deviceRegisters" | "devicePermanentVolumeFlow" | "deviceNominalDiameter" | "place" | "lastPlace" | "mBusFormatStringSignature" | "deviceSoftwareVersion" | "legacyDeviceSamples" | "deviceSamplesOnLastMount" | "deviceSamplesOnLastUnmount" | "consumer" | "kamstrupMulticalInfocodeType1" | "kamstrupMulticalInfocodeType2" | "kamstrupMulticalInfocodeType3" | "kamstrupMulticalInfocodeType4" | "kamstrupMulticalInfocodeType5" | "kamstrupMulticalInfocodeType6" | "kamstrupMulticalInfocodeType7" | "kamstrupMulticalInfocode" | "kamstrupModuleType" | "diehlInfocodeType1" | "diehlInfocodeType2" | "diehlInfocodeType3" | "diehlInfocodeType4" | "diehlInfocode" | "landisGyrMBusStatusType1" | "landisGyrMBusStatusType2" | "landisGyrMBusStatus" | "landisGyrInfocodeType1" | "landisGyrInfocodeType2" | "landisGyrInfocode" | "infocode";
|
|
15
|
+
export interface RegisterDefinition {
|
|
16
|
+
id: RegisterId;
|
|
17
|
+
measure: MeasureId;
|
|
18
|
+
aggregate: AggregateId;
|
|
19
|
+
units: ReadonlyArray<UnitId>;
|
|
20
|
+
immediate?: true;
|
|
21
|
+
name?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
}
|
|
24
|
+
export type Step = "hour" | "day" | "week" | "month" | "year";
|
|
25
|
+
export enum DayOfWeek {
|
|
26
|
+
Monday = 1,
|
|
27
|
+
Tuesday = 2,
|
|
28
|
+
Wednesday = 3,
|
|
29
|
+
Thursday = 4,
|
|
30
|
+
Friday = 5,
|
|
31
|
+
Saturday = 6,
|
|
32
|
+
Sunday = 7
|
|
33
|
+
}
|
|
34
|
+
export declare namespace Step {
|
|
35
|
+
function startOf(dateTime: DateTime, step: Step, firstDayOfWeek?: DayOfWeek): DateTime;
|
|
36
|
+
function asDuration(step: Step, amount?: number): Duration;
|
|
37
|
+
}
|
|
38
|
+
export const invariantDecimalSeparator: string;
|
|
39
|
+
export const localeDecimalSeparator: string;
|
|
40
|
+
interface Parts {
|
|
41
|
+
invariantPrecisionString: string;
|
|
42
|
+
invariantCoefficientString: string;
|
|
43
|
+
exponent: number;
|
|
44
|
+
noOfCoefficientDecimals: number;
|
|
45
|
+
}
|
|
46
|
+
declare class Formatter {
|
|
47
|
+
toPrecision(value: number, precision: number, maxDecimals?: number): string;
|
|
48
|
+
toLocalePrecision(value: number, precision: number, maxDecimals?: number): string;
|
|
49
|
+
toFixed(value: number, precision: number, maxDecimals?: number): string;
|
|
50
|
+
toLocaleFixed(value: number, precision: number, maxDecimals?: number): string;
|
|
51
|
+
getParts(value: number, precision: number, maxDecimals?: number): Parts;
|
|
52
|
+
}
|
|
53
|
+
export const NumberFormatter: Formatter;
|
|
54
|
+
export type TimeOrRule = Date | DateTime<true> | string;
|
|
55
|
+
export function TimeOrRule(timeOrRule: Date | DateTime<true> | string): TimeOrRule;
|
|
56
|
+
export declare namespace TimeOrRule {
|
|
57
|
+
function parse(input: string): TimeOrRule;
|
|
58
|
+
function isTime(input: TimeOrRule): input is Date | DateTime<true>;
|
|
59
|
+
function isRule(input: TimeOrRule): input is string;
|
|
60
|
+
function asDateTime(input: TimeOrRule): DateTime<true> | undefined;
|
|
61
|
+
function toJSON(input: TimeOrRule): string;
|
|
62
|
+
}
|
|
63
|
+
export type BreakdownRule = string;
|
|
64
|
+
export type BreakdownPeriod = "hour" | "day" | "week" | "month" | "year";
|
|
65
|
+
interface BreakdownRuleInit {
|
|
66
|
+
origin: TimeOrRule;
|
|
67
|
+
count: number;
|
|
68
|
+
period: BreakdownPeriod;
|
|
69
|
+
}
|
|
70
|
+
export function BreakdownRule(init: BreakdownRuleInit): BreakdownRule;
|
|
71
|
+
export function BreakdownRule(origin: TimeOrRule, count: number, period: BreakdownPeriod): BreakdownRule;
|
|
72
|
+
export declare namespace BreakdownRule {
|
|
73
|
+
function split(rule: BreakdownRule): {
|
|
74
|
+
origin: TimeOrRule;
|
|
75
|
+
count: number;
|
|
76
|
+
period: BreakdownPeriod;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export type Medium = "none" | "heat" | "water" | "cooling" | "electricity" | "infrastructure" | "all";
|
|
80
|
+
export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
81
|
+
export class PrecisionNumber {
|
|
82
|
+
value: number;
|
|
83
|
+
precision: number;
|
|
84
|
+
constructor(value: number, precision?: number);
|
|
85
|
+
static parse(input: string): PrecisionNumber;
|
|
86
|
+
abs(): PrecisionNumber;
|
|
87
|
+
plus(rhs: PrecisionNumber): PrecisionNumber;
|
|
88
|
+
minus(rhs: PrecisionNumber): PrecisionNumber;
|
|
89
|
+
valueOf(): number;
|
|
90
|
+
toString(): string;
|
|
91
|
+
toFixed(): string;
|
|
92
|
+
toPrecision(): string;
|
|
93
|
+
toLocaleFixed(): string;
|
|
94
|
+
toLocalePrecision(): string;
|
|
95
|
+
}
|
|
96
|
+
declare class Convention {
|
|
97
|
+
getAggregate(register: RegisterId | RegisterDefinition): AggregateId;
|
|
98
|
+
toInstant(register: RegisterId | RegisterDefinition): RegisterId;
|
|
99
|
+
toAggregate(register: RegisterId | RegisterDefinition, aggregate: AggregateId): RegisterId;
|
|
100
|
+
}
|
|
101
|
+
export const RegisterConvention: Convention;
|
|
102
|
+
interface RegisterPack {
|
|
103
|
+
[key: string]: RegisterDefinition;
|
|
104
|
+
}
|
|
105
|
+
declare class Library {
|
|
106
|
+
add(...definitions: (RegisterDefinition | RegisterPack)[]): void;
|
|
107
|
+
has(id: RegisterId): boolean;
|
|
108
|
+
tryGet(id: RegisterId): RegisterDefinition | undefined;
|
|
109
|
+
get(id: RegisterId): RegisterDefinition;
|
|
110
|
+
all(): RegisterDefinition[];
|
|
111
|
+
reset(): void;
|
|
112
|
+
}
|
|
113
|
+
export const RegisterLibrary: Library;
|
|
114
|
+
export const registers: Record<RegisterId, RegisterDefinition>;
|
|
115
|
+
|
|
116
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["src/src/repository.ts","src/src/unit-id.ts","src/src/measures/noise.ts","src/src/aggregate-id.ts","src/src/measure-id.ts","src/src/register-id.ts","src/src/register-definition.ts","src/src/registers/acoustic-noise.ts","src/src/measures/temperature.ts","src/src/registers/ambient-temperature.ts","src/src/registers/consumer.ts","src/src/measures/energy.ts","src/src/registers/cooling-energy-inlet.ts","src/src/registers/cooling-energy-outlet.ts","src/src/registers/cooling-energy.ts","src/src/registers/cooling.ts","src/src/registers/device-addresses-kamdraft.ts","src/src/registers/device-addresses-msisdn.ts","src/src/registers/device-addresses-tchlr.ts","src/src/registers/device-addresses-wmbus.ts","src/src/measures/time.ts","src/src/registers/device-date-time.ts","src/src/registers/device-date.ts","src/src/registers/device-nominal-diameter.ts","src/src/registers/device-permanent-volume-flow.ts","src/src/registers/device-registers.ts","src/src/registers/device-software-version.ts","src/src/registers/device-time.ts","src/src/registers/device.ts","src/src/measures/infocode.ts","src/src/registers/diehl-infocode.ts","src/src/registers/electrical-energy.ts","src/src/registers/energy-inlet.ts","src/src/registers/energy-outlet.ts","src/src/measures/duration.ts","src/src/registers/error-operating-time.ts","src/src/registers/flow-temperature-aux.ts","src/src/registers/flow-temperature-inlet.ts","src/src/registers/flow-temperature-outlet.ts","src/src/registers/flow-temperature.ts","src/src/registers/heat-energy-inlet.ts","src/src/registers/heat-energy-outlet.ts","src/src/registers/heat-energy.ts","src/src/registers/infocode.ts","src/src/registers/kamstrup-module-type.ts","src/src/registers/kamstrup-multical-infocode.ts","src/src/registers/landis-gyr-infocode.ts","src/src/registers/landis-gyr-mbus-status.ts","src/src/registers/device-samples.ts","src/src/measures/mass-flow.ts","src/src/registers/mass-flow-inlet.ts","src/src/registers/mass-flow-outlet.ts","src/src/registers/mass-flow.ts","src/src/measures/mass.ts","src/src/registers/mass-inlet.ts","src/src/registers/mass-outlet.ts","src/src/registers/mass.ts","src/src/registers/mbus-format-string-signature.ts","src/src/registers/none.ts","src/src/registers/operating-time.ts","src/src/registers/place.ts","src/src/measures/power.ts","src/src/registers/power-inlet.ts","src/src/registers/power-outlet.ts","src/src/registers/power.ts","src/src/measures/pressure.ts","src/src/registers/pressure-inlet.ts","src/src/registers/pressure-outlet.ts","src/src/registers/pressure.ts","src/src/registers/radiator-temperature.ts","src/src/measures/reactive-energy.ts","src/src/registers/reactive-energy.ts","src/src/registers/relative-humidity.ts","src/src/registers/remaining-battery-time.ts","src/src/registers/time-last-exact-overhearing-arrived.ts","src/src/registers/time-last-installation-mounted.ts","src/src/registers/time-last-possible-candidate-overhearing-arrived.ts","src/src/registers/time-last-sampled.ts","src/src/registers/time.ts","src/src/measures/volume-flow.ts","src/src/registers/volume-flow-inlet.ts","src/src/registers/volume-flow-outlet.ts","src/src/registers/volume-flow.ts","src/src/measures/volume.ts","src/src/registers/volume-inlet.ts","src/src/registers/volume-outlet.ts","src/src/registers/volume-pulse-input-a.ts","src/src/registers/volume-pulse-input-b.ts","src/src/registers/volume.ts","src/src/registers/index.ts","src/src/luxon-local.ts","src/src/step.ts","src/src/number-formatter.ts","src/src/time-or-rule.ts","src/src/breakdown-rule.ts","src/src/medium.ts","src/src/optional.ts","src/src/precision-number.ts","src/src/register-utils.ts","src/src/register-convention.ts","src/src/register-pack.ts","src/src/register-library.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import \"./repository\"; // We need this to get the Repository namespace exported\n\nimport * as registers2 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"],"names":[],"version":3,"file":"index.d.ts.map"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import "./repository";
|
|
2
|
+
import type { Consumer, Device, DeviceSample, KamdraftDeviceAddress, MsisdnDeviceAddress, Place, TchlrDeviceAddress, WMBusDeviceAddress } from "./registers";
|
|
2
3
|
import { Duration } from "./luxon-local";
|
|
3
4
|
import type { RegisterDefinition } from "./register-definition";
|
|
4
5
|
import type { RegisterId } from "./register-id";
|
|
@@ -18,5 +19,9 @@ export { RegisterLibrary } from "./register-library";
|
|
|
18
19
|
export { Repository } from "./repository";
|
|
19
20
|
export { TimeOrRule } from "./time-or-rule";
|
|
20
21
|
export type { UnitId } from "./unit-id";
|
|
21
|
-
export { Duration as __Duration
|
|
22
|
+
export { Duration as __Duration };
|
|
22
23
|
export declare const registers: Record<RegisterId, RegisterDefinition>;
|
|
24
|
+
export type { Consumer as __Consumer, Device as __Device, DeviceSample as __DeviceSample, KamdraftDeviceAddress as __KamdraftDeviceAddress, MsisdnDeviceAddress as __MsisdnDeviceAddress, Place as __Place, TchlrDeviceAddress as __TchlrDeviceAddress, WMBusDeviceAddress as __WMBusDeviceAddress, };
|
|
25
|
+
export declare namespace SampleValue {
|
|
26
|
+
export type { Consumer, Device, DeviceSample, KamdraftDeviceAddress, MsisdnDeviceAddress, Place, TchlrDeviceAddress, WMBusDeviceAddress, };
|
|
27
|
+
}
|
package/dist/types/medium.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -2,6 +2,7 @@ export type Repository = "some/repo";
|
|
|
2
2
|
export declare function Repository(repo: string): Repository;
|
|
3
3
|
export declare function Repository(team: string, name: string): Repository;
|
|
4
4
|
export declare namespace Repository {
|
|
5
|
+
function isRepository(input: string): input is Repository;
|
|
5
6
|
function split(repo: Repository): {
|
|
6
7
|
team: string;
|
|
7
8
|
name: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@utiliread/primitives",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-125",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@parcel/packager-ts": "^2.12.0",
|
|
29
|
+
"@parcel/transformer-typescript-tsc": "^2.12.0",
|
|
29
30
|
"@parcel/transformer-typescript-types": "^2.12.0",
|
|
30
31
|
"@types/chai": "^4.3.11",
|
|
31
32
|
"@types/luxon": "^3.0.1",
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import "./repository"; // We need this to get the Repository namespace exported
|
|
2
2
|
|
|
3
|
-
import * as registers2
|
|
3
|
+
import * as registers2 from "./registers";
|
|
4
|
+
|
|
5
|
+
import type {
|
|
6
|
+
Consumer,
|
|
7
|
+
Device,
|
|
8
|
+
DeviceSample,
|
|
9
|
+
KamdraftDeviceAddress,
|
|
10
|
+
MsisdnDeviceAddress,
|
|
11
|
+
Place,
|
|
12
|
+
TchlrDeviceAddress,
|
|
13
|
+
WMBusDeviceAddress,
|
|
14
|
+
} from "./registers";
|
|
4
15
|
|
|
5
16
|
import { Duration } from "./luxon-local";
|
|
6
17
|
import type { RegisterDefinition } from "./register-definition";
|
|
@@ -28,12 +39,36 @@ export { Repository } from "./repository";
|
|
|
28
39
|
export { TimeOrRule } from "./time-or-rule";
|
|
29
40
|
export type { UnitId } from "./unit-id";
|
|
30
41
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
42
|
+
// Hack to force parcel to include Duration in typings file
|
|
43
|
+
// Otherwise it seems to only include DateTime in the dist/index.d.ts which causes the file to be invalid
|
|
44
|
+
// The reason for the ./parcel-workaround file is that it seems to generate the expected typings.
|
|
45
|
+
// If we did `import { Duration } from "luxon"` instead and re-exported it as `__Duration` then it seems invalid.
|
|
46
|
+
export { Duration as __Duration };
|
|
47
|
+
|
|
48
|
+
export const registers: Record<RegisterId, RegisterDefinition> = {
|
|
49
|
+
...registers2,
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export type {
|
|
53
|
+
Consumer as __Consumer,
|
|
54
|
+
Device as __Device,
|
|
55
|
+
DeviceSample as __DeviceSample,
|
|
56
|
+
KamdraftDeviceAddress as __KamdraftDeviceAddress,
|
|
57
|
+
MsisdnDeviceAddress as __MsisdnDeviceAddress,
|
|
58
|
+
Place as __Place,
|
|
59
|
+
TchlrDeviceAddress as __TchlrDeviceAddress,
|
|
60
|
+
WMBusDeviceAddress as __WMBusDeviceAddress,
|
|
37
61
|
};
|
|
38
62
|
|
|
39
|
-
export
|
|
63
|
+
export declare namespace SampleValue {
|
|
64
|
+
export type {
|
|
65
|
+
Consumer,
|
|
66
|
+
Device,
|
|
67
|
+
DeviceSample,
|
|
68
|
+
KamdraftDeviceAddress,
|
|
69
|
+
MsisdnDeviceAddress,
|
|
70
|
+
Place,
|
|
71
|
+
TchlrDeviceAddress,
|
|
72
|
+
WMBusDeviceAddress,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Medium } from "./medium";
|
|
2
|
+
import { expect } from "chai";
|
|
3
|
+
|
|
4
|
+
describe("isMedium", () => {
|
|
5
|
+
it("should correctly determine if input is a medium", () => {
|
|
6
|
+
expect(Medium.isMedium("heat")).to.equal(true);
|
|
7
|
+
expect(Medium.isMedium("water")).to.equal(true);
|
|
8
|
+
expect(Medium.isMedium("heat,water")).to.equal(true);
|
|
9
|
+
expect(Medium.isMedium(["heat","water"])).to.equal(true);
|
|
10
|
+
expect(Medium.isMedium("notamedium")).to.equal(false);
|
|
11
|
+
});
|
|
12
|
+
});
|
package/src/medium.ts
CHANGED
|
@@ -6,3 +6,22 @@ export type Medium =
|
|
|
6
6
|
| "electricity"
|
|
7
7
|
| "infrastructure"
|
|
8
8
|
| "all";
|
|
9
|
+
|
|
10
|
+
export namespace Medium {
|
|
11
|
+
export function isMedium(
|
|
12
|
+
input: string | string[],
|
|
13
|
+
): input is Medium | Medium[] {
|
|
14
|
+
if (input === "none" || input === "all") {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
const parts = Array.isArray(input) ? input : input.split(",");
|
|
18
|
+
const ALL_MEDIUMS: Medium[] = [
|
|
19
|
+
"heat",
|
|
20
|
+
"water",
|
|
21
|
+
"cooling",
|
|
22
|
+
"electricity",
|
|
23
|
+
"infrastructure",
|
|
24
|
+
];
|
|
25
|
+
return !parts.some((x) => !ALL_MEDIUMS.includes(<Medium>x));
|
|
26
|
+
}
|
|
27
|
+
}
|
package/src/repository.spec.ts
CHANGED
|
@@ -11,6 +11,15 @@ describe("ctor", () => {
|
|
|
11
11
|
});
|
|
12
12
|
});
|
|
13
13
|
|
|
14
|
+
describe("isRepository", () => {
|
|
15
|
+
it("should correctly determine if input is a Repository", () => {
|
|
16
|
+
expect(Repository.isRepository("some/test")).to.equal(true);
|
|
17
|
+
expect(Repository.isRepository("so-me/te-st")).to.equal(true);
|
|
18
|
+
expect(Repository.isRepository("NOT/REPO")).to.equal(false);
|
|
19
|
+
expect(Repository.isRepository("notarepo")).to.equal(false);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
14
23
|
describe("split", () => {
|
|
15
24
|
it("splits into correct parts", () => {
|
|
16
25
|
const { team, name } = Repository.split(Repository("gpkv", "gjoel"));
|
package/src/repository.ts
CHANGED
|
@@ -4,16 +4,21 @@ export type Repository = "some/repo";
|
|
|
4
4
|
export function Repository(repo: string): Repository;
|
|
5
5
|
export function Repository(team: string, name: string): Repository;
|
|
6
6
|
export function Repository(repoOrTeam: string, name?: string): Repository {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} else if (repoOrTeam.indexOf("/") > 0) {
|
|
10
|
-
return <Repository>repoOrTeam;
|
|
11
|
-
} else {
|
|
7
|
+
const repo = name ? `${repoOrTeam}/${name}` : repoOrTeam;
|
|
8
|
+
if (!Repository.isRepository(repo)) {
|
|
12
9
|
throw new TypeError("Invalid repository format");
|
|
13
10
|
}
|
|
11
|
+
return repo;
|
|
14
12
|
}
|
|
15
13
|
|
|
14
|
+
const PART_REGEX = new RegExp(/[a-z][a-z0-9-]*/);
|
|
15
|
+
|
|
16
16
|
export namespace Repository {
|
|
17
|
+
export function isRepository(input: string): input is Repository {
|
|
18
|
+
const parts = input.split("/");
|
|
19
|
+
return parts.length === 2 && !parts.some((x) => !PART_REGEX.test(x));
|
|
20
|
+
}
|
|
21
|
+
|
|
17
22
|
export function split(repo: Repository) {
|
|
18
23
|
const parts = repo.split("/");
|
|
19
24
|
return {
|