@open-charging-cloud/chargy-core 0.5.0 → 0.6.1
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/README.md +1 -1
- package/dist/BSMCrypt01.d.ts.map +1 -1
- package/dist/Mennekes.d.ts.map +1 -1
- package/dist/browser/index.js +384 -320
- package/dist/browser/index.js.map +1 -1
- package/dist/chargy.d.ts +8 -3
- package/dist/chargy.d.ts.map +1 -1
- package/dist/interfaces/IChargeTransparencyRecord.d.ts +2 -2
- package/dist/interfaces/IChargeTransparencyRecord.d.ts.map +1 -1
- package/dist/interfaces/chargyInterfaces.d.ts +19 -7
- package/dist/interfaces/chargyInterfaces.d.ts.map +1 -1
- package/dist/node/index.js +384 -320
- package/dist/node/index.js.map +1 -1
- package/dist/verificationResults.d.ts +2 -1
- package/dist/verificationResults.d.ts.map +1 -1
- package/i18n.json +40 -0
- package/package.json +1 -1
package/dist/node/index.js
CHANGED
|
@@ -8110,10 +8110,12 @@ var secp224k1 = class {
|
|
|
8110
8110
|
// src/interfaces/chargyInterfaces.ts
|
|
8111
8111
|
var chargyInterfaces_exports = {};
|
|
8112
8112
|
__export(chargyInterfaces_exports, {
|
|
8113
|
+
CreateError: () => CreateError,
|
|
8113
8114
|
CryptoAlgorithms: () => CryptoAlgorithms,
|
|
8114
8115
|
CryptoHashAlgorithms: () => CryptoHashAlgorithms,
|
|
8115
8116
|
DayOfWeek: () => DayOfWeek,
|
|
8116
8117
|
DisplayPrefixes: () => DisplayPrefixes,
|
|
8118
|
+
ErrorLevel: () => ErrorLevel,
|
|
8117
8119
|
IECCurves: () => IECCurves,
|
|
8118
8120
|
IEncoding: () => IEncoding,
|
|
8119
8121
|
InformationRelevance: () => InformationRelevance,
|
|
@@ -8217,6 +8219,18 @@ var WarningLevel = /* @__PURE__ */ ((WarningLevel2) => {
|
|
|
8217
8219
|
WarningLevel2["high"] = "high";
|
|
8218
8220
|
return WarningLevel2;
|
|
8219
8221
|
})(WarningLevel || {});
|
|
8222
|
+
var ErrorLevel = /* @__PURE__ */ ((ErrorLevel2) => {
|
|
8223
|
+
ErrorLevel2["low"] = "low";
|
|
8224
|
+
ErrorLevel2["medium"] = "medium";
|
|
8225
|
+
ErrorLevel2["high"] = "high";
|
|
8226
|
+
return ErrorLevel2;
|
|
8227
|
+
})(ErrorLevel || {});
|
|
8228
|
+
function CreateError(message, level = "high" /* high */) {
|
|
8229
|
+
return {
|
|
8230
|
+
level,
|
|
8231
|
+
message
|
|
8232
|
+
};
|
|
8233
|
+
}
|
|
8220
8234
|
function isISessionCryptoResult1(obj) {
|
|
8221
8235
|
return typeof obj === "object" && obj !== null && obj.status !== void 0;
|
|
8222
8236
|
}
|
|
@@ -9020,7 +9034,7 @@ var Alfen = class {
|
|
|
9020
9034
|
if (elements?.length != 6 && elements?.length != 7)
|
|
9021
9035
|
return {
|
|
9022
9036
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9023
|
-
message: this.chargy.
|
|
9037
|
+
message: this.chargy.GetMultilanguageText("Invalid number of signed meter values!"),
|
|
9024
9038
|
certainty: 0
|
|
9025
9039
|
};
|
|
9026
9040
|
const FormatId = elements[0];
|
|
@@ -9034,13 +9048,13 @@ var Alfen = class {
|
|
|
9034
9048
|
else if (elements[3] !== common.PublicKey)
|
|
9035
9049
|
return {
|
|
9036
9050
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9037
|
-
message: this.chargy.
|
|
9051
|
+
message: this.chargy.GetMultilanguageText("Inconsistent public keys!"),
|
|
9038
9052
|
certainty: 0
|
|
9039
9053
|
};
|
|
9040
9054
|
if (FormatId !== "AP" || Type?.length !== 1 || BlobVersion?.length !== 1 || BlobVersion !== "3" || PublicKey.byteLength !== 25 || DataSet.byteLength !== 82 || Signature.byteLength !== 48) {
|
|
9041
9055
|
return {
|
|
9042
9056
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9043
|
-
message: this.chargy.
|
|
9057
|
+
message: this.chargy.GetMultilanguageText("Invalid charging session format!"),
|
|
9044
9058
|
certainty: 0
|
|
9045
9059
|
};
|
|
9046
9060
|
}
|
|
@@ -9065,7 +9079,7 @@ var Alfen = class {
|
|
|
9065
9079
|
else if (AdapterId !== common.AdapterId)
|
|
9066
9080
|
return {
|
|
9067
9081
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9068
|
-
message: this.chargy.
|
|
9082
|
+
message: this.chargy.GetMultilanguageText("Inconsistent Alfen adapter identification!"),
|
|
9069
9083
|
certainty: 0
|
|
9070
9084
|
};
|
|
9071
9085
|
if (common.AdapterFWVersion === "")
|
|
@@ -9073,7 +9087,7 @@ var Alfen = class {
|
|
|
9073
9087
|
else if (AdapterFWVersion !== common.AdapterFWVersion)
|
|
9074
9088
|
return {
|
|
9075
9089
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9076
|
-
message: this.chargy.
|
|
9090
|
+
message: this.chargy.GetMultilanguageText("Inconsistent Alfen adapter firmware version!"),
|
|
9077
9091
|
certainty: 0
|
|
9078
9092
|
};
|
|
9079
9093
|
if (common.AdapterFWChecksum === "")
|
|
@@ -9081,7 +9095,7 @@ var Alfen = class {
|
|
|
9081
9095
|
else if (AdapterFWChecksum !== common.AdapterFWChecksum)
|
|
9082
9096
|
return {
|
|
9083
9097
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9084
|
-
message: this.chargy.
|
|
9098
|
+
message: this.chargy.GetMultilanguageText("Inconsistent Alfen adapter firmware checksum!"),
|
|
9085
9099
|
certainty: 0
|
|
9086
9100
|
};
|
|
9087
9101
|
if (common.MeterId === "")
|
|
@@ -9089,7 +9103,7 @@ var Alfen = class {
|
|
|
9089
9103
|
else if (MeterId !== common.MeterId)
|
|
9090
9104
|
return {
|
|
9091
9105
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9092
|
-
message: this.chargy.
|
|
9106
|
+
message: this.chargy.GetMultilanguageText("Inconsistent meter identification!"),
|
|
9093
9107
|
certainty: 0
|
|
9094
9108
|
};
|
|
9095
9109
|
if (common.ObisId === "")
|
|
@@ -9097,7 +9111,7 @@ var Alfen = class {
|
|
|
9097
9111
|
else if (ObisId !== common.ObisId)
|
|
9098
9112
|
return {
|
|
9099
9113
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9100
|
-
message: this.chargy.
|
|
9114
|
+
message: this.chargy.GetMultilanguageText("Inconsistent OBIS code!"),
|
|
9101
9115
|
certainty: 0
|
|
9102
9116
|
};
|
|
9103
9117
|
if (common.UnitEncoded === 0)
|
|
@@ -9105,7 +9119,7 @@ var Alfen = class {
|
|
|
9105
9119
|
else if (UnitEncoded !== common.UnitEncoded)
|
|
9106
9120
|
return {
|
|
9107
9121
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9108
|
-
message: this.chargy.
|
|
9122
|
+
message: this.chargy.GetMultilanguageText("Inconsistent unit (encoded) value!"),
|
|
9109
9123
|
certainty: 0
|
|
9110
9124
|
};
|
|
9111
9125
|
if (common.Scalar === "")
|
|
@@ -9113,7 +9127,7 @@ var Alfen = class {
|
|
|
9113
9127
|
else if (Scalar !== common.Scalar)
|
|
9114
9128
|
return {
|
|
9115
9129
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9116
|
-
message: this.chargy.
|
|
9130
|
+
message: this.chargy.GetMultilanguageText("Inconsistent measurement scalar!"),
|
|
9117
9131
|
certainty: 0
|
|
9118
9132
|
};
|
|
9119
9133
|
if (common.UID === "")
|
|
@@ -9121,7 +9135,7 @@ var Alfen = class {
|
|
|
9121
9135
|
else if (UID !== common.UID)
|
|
9122
9136
|
return {
|
|
9123
9137
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9124
|
-
message: this.chargy.
|
|
9138
|
+
message: this.chargy.GetMultilanguageText("Inconsistent user identification!"),
|
|
9125
9139
|
certainty: 0
|
|
9126
9140
|
};
|
|
9127
9141
|
if (common.InternalSessionId === 0)
|
|
@@ -9129,13 +9143,13 @@ var Alfen = class {
|
|
|
9129
9143
|
else if (InternalSessionId !== common.InternalSessionId)
|
|
9130
9144
|
return {
|
|
9131
9145
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9132
|
-
message: this.chargy.
|
|
9146
|
+
message: this.chargy.GetMultilanguageText("Inconsistent internal charging session identification!"),
|
|
9133
9147
|
certainty: 0
|
|
9134
9148
|
};
|
|
9135
9149
|
if (previousTimestamp !== "" && previousTimestamp > Timestamp)
|
|
9136
9150
|
return {
|
|
9137
9151
|
status: "InconsistentTimestamps" /* InconsistentTimestamps */,
|
|
9138
|
-
message: this.chargy.
|
|
9152
|
+
message: this.chargy.GetMultilanguageText("Inconsistent timestamps!"),
|
|
9139
9153
|
certainty: 0
|
|
9140
9154
|
};
|
|
9141
9155
|
else
|
|
@@ -9159,7 +9173,7 @@ var Alfen = class {
|
|
|
9159
9173
|
if (firstDataSet === void 0 || lastDataSet === void 0)
|
|
9160
9174
|
return {
|
|
9161
9175
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9162
|
-
message: this.chargy.
|
|
9176
|
+
message: this.chargy.GetMultilanguageText("Invalid number of signed meter values!"),
|
|
9163
9177
|
certainty: 0
|
|
9164
9178
|
};
|
|
9165
9179
|
const _CTR = {
|
|
@@ -9291,7 +9305,7 @@ var Alfen = class {
|
|
|
9291
9305
|
} catch (exception) {
|
|
9292
9306
|
return {
|
|
9293
9307
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9294
|
-
message: this.chargy.
|
|
9308
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
9295
9309
|
certainty: 0
|
|
9296
9310
|
};
|
|
9297
9311
|
}
|
|
@@ -9616,18 +9630,18 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
9616
9630
|
tryToParseBSM_WS36aMeasurements(CTR, ExpectedEVSEId, ExpectedCscSwVersion, Measurements) {
|
|
9617
9631
|
if (!Array.isArray(Measurements)) return {
|
|
9618
9632
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9619
|
-
message: this.chargy.
|
|
9633
|
+
message: this.chargy.GetMultilanguageText("MissingOrInvalidSignedMeterValues"),
|
|
9620
9634
|
certainty: 0
|
|
9621
9635
|
};
|
|
9622
9636
|
if (Measurements.length < 2) return {
|
|
9623
9637
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9624
|
-
message: this.chargy.
|
|
9638
|
+
message: this.chargy.GetMultilanguageText("AtLeastTwoSignedMeterValuesRequired"),
|
|
9625
9639
|
certainty: 0
|
|
9626
9640
|
};
|
|
9627
9641
|
const firstMeasurement = Measurements[0];
|
|
9628
9642
|
if (!isMandatoryJSONObject(firstMeasurement)) return {
|
|
9629
9643
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
9630
|
-
message: this.chargy.
|
|
9644
|
+
message: this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalidSignedMeterValueP", 1),
|
|
9631
9645
|
certainty: 0
|
|
9632
9646
|
};
|
|
9633
9647
|
const errors = new Array();
|
|
@@ -9636,51 +9650,51 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
9636
9650
|
let secondaryErrors = 0;
|
|
9637
9651
|
try {
|
|
9638
9652
|
if (!isMandatoryString(firstMeasurement["@context"]))
|
|
9639
|
-
errors.push(this.chargy.
|
|
9653
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_JSONContextP", 1)));
|
|
9640
9654
|
const meterInfo = firstMeasurement["meterInfo"];
|
|
9641
9655
|
if (!isMandatoryJSONObject(meterInfo)) {
|
|
9642
|
-
errors.push(this.chargy.
|
|
9656
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfoP", 1)));
|
|
9643
9657
|
secondaryErrors += 5;
|
|
9644
9658
|
} else {
|
|
9645
9659
|
if (!isMandatoryString(meterInfo["firmwareVersion"]))
|
|
9646
|
-
errors.push(this.chargy.
|
|
9660
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_FirmwareVersionP", 1)));
|
|
9647
9661
|
if (!isMandatoryString(meterInfo["publicKey"]))
|
|
9648
|
-
errors.push(this.chargy.
|
|
9662
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
9649
9663
|
if (!isMandatoryString(meterInfo["meterId"]))
|
|
9650
|
-
errors.push(this.chargy.
|
|
9664
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_MeterIdP", 1)));
|
|
9651
9665
|
if (!isMandatoryString(meterInfo["manufacturer"]))
|
|
9652
|
-
errors.push(this.chargy.
|
|
9666
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
9653
9667
|
if (!isMandatoryString(meterInfo["type"]))
|
|
9654
|
-
errors.push(this.chargy.
|
|
9668
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_TypeP", 1)));
|
|
9655
9669
|
}
|
|
9656
9670
|
const contract = firstMeasurement["contract"];
|
|
9657
9671
|
if (!isMandatoryJSONObject(contract)) {
|
|
9658
|
-
errors.push(this.chargy.
|
|
9672
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_ContractP", 1)));
|
|
9659
9673
|
secondaryErrors += 2;
|
|
9660
9674
|
} else {
|
|
9661
9675
|
if (!isMandatoryString(contract["id"]))
|
|
9662
|
-
errors.push(this.chargy.
|
|
9676
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_IdP", 1)));
|
|
9663
9677
|
if (!isOptionalString(contract["type"]))
|
|
9664
|
-
errors.push(this.chargy.
|
|
9678
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_TypeP", 1)));
|
|
9665
9679
|
}
|
|
9666
9680
|
const value = firstMeasurement["value"];
|
|
9667
9681
|
if (!isMandatoryJSONObject(value)) {
|
|
9668
|
-
errors.push(this.chargy.
|
|
9682
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_ValueP", 1)));
|
|
9669
9683
|
secondaryErrors += 8;
|
|
9670
9684
|
} else {
|
|
9671
9685
|
const measurand = value["measurand"];
|
|
9672
9686
|
if (!isMandatoryJSONObject(measurand)) {
|
|
9673
|
-
errors.push(this.chargy.
|
|
9687
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasurandP", 1)));
|
|
9674
9688
|
secondaryErrors += 2;
|
|
9675
9689
|
} else {
|
|
9676
9690
|
if (!isMandatoryString(measurand["id"]))
|
|
9677
|
-
errors.push(this.chargy.
|
|
9691
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_Measurand_IdentificationP", 1)));
|
|
9678
9692
|
if (!isMandatoryString(measurand["name"]))
|
|
9679
|
-
errors.push(this.chargy.
|
|
9693
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_Measurand_NameP", 1)));
|
|
9680
9694
|
}
|
|
9681
9695
|
const measuredValue = value["measuredValue"];
|
|
9682
9696
|
if (!isMandatoryJSONObject(measuredValue)) {
|
|
9683
|
-
errors.push(this.chargy.
|
|
9697
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasuredValueP", 1)));
|
|
9684
9698
|
secondaryErrors += 4;
|
|
9685
9699
|
} else {
|
|
9686
9700
|
}
|
|
@@ -9758,7 +9772,7 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
9758
9772
|
if (currentMeasurement === void 0)
|
|
9759
9773
|
throw new Error(`Invalid signed meter value #${String(measurementCounter)}!`);
|
|
9760
9774
|
if (currentMeasurement["@context"] !== common.context)
|
|
9761
|
-
currentErrors.push(this.chargy.
|
|
9775
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_JSONContextP", measurementCounter)));
|
|
9762
9776
|
const currentId = currentMeasurement["@id"];
|
|
9763
9777
|
if (previousId !== "" && typeof currentId === "string") {
|
|
9764
9778
|
if (typeof previousId !== "string")
|
|
@@ -9769,7 +9783,7 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
9769
9783
|
// anything (not even NaN). This way we are checking that both counter values
|
|
9770
9784
|
// are numeric too.
|
|
9771
9785
|
parseInt(previousParts[1], 10) >= parseInt(currentParts[1], 10)) {
|
|
9772
|
-
currentErrors.push(this.chargy.
|
|
9786
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeasurementIdP", measurementCounter)));
|
|
9773
9787
|
}
|
|
9774
9788
|
}
|
|
9775
9789
|
previousId = currentId;
|
|
@@ -9778,11 +9792,11 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
9778
9792
|
const displayedFormatObj2 = asJSONObject(valueObj2?.["displayedFormat"]);
|
|
9779
9793
|
const currentTime = asString(currentMeasurement["time"]) ?? "";
|
|
9780
9794
|
if (previousTime !== "" && currentTime <= previousTime)
|
|
9781
|
-
currentErrors.push(this.chargy.
|
|
9795
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_TimestampP", measurementCounter)));
|
|
9782
9796
|
previousTime = currentTime;
|
|
9783
9797
|
const currentValue = asNumber(measuredValueObj2?.["value"]);
|
|
9784
9798
|
if (previousValue !== void 0 && currentValue !== void 0 && currentValue < previousValue)
|
|
9785
|
-
currentErrors.push(this.chargy.
|
|
9799
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_Measurement_ValueP", measurementCounter)));
|
|
9786
9800
|
previousValue = currentValue;
|
|
9787
9801
|
const additionalValuesRaw = currentMeasurement["additionalValues"];
|
|
9788
9802
|
if (!isMandatoryJSONArray(additionalValuesRaw))
|
|
@@ -9809,32 +9823,32 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
9809
9823
|
if (currentMeasurement["meterInfo"]) {
|
|
9810
9824
|
const meterInfoObj2 = asJSONObject(currentMeasurement["meterInfo"]);
|
|
9811
9825
|
if (meterInfoObj2?.["firmwareVersion"] !== common.meterInfo_firmwareVersion)
|
|
9812
|
-
currentErrors.push(this.chargy.
|
|
9826
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeterInfo_FirmwareVersionP", measurementCounter)));
|
|
9813
9827
|
if (meterInfoObj2?.["publicKey"] !== common.meterInfo_publicKey)
|
|
9814
|
-
currentErrors.push(this.chargy.
|
|
9828
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeterInfo_PublicKeyP", measurementCounter)));
|
|
9815
9829
|
if (meterInfoObj2?.["meterId"] !== common.meterInfo_meterId)
|
|
9816
|
-
currentErrors.push(this.chargy.
|
|
9830
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeterInfo_MeterIdP", measurementCounter)));
|
|
9817
9831
|
if (meterInfoObj2?.["meterId"] !== additionalValues.filter((element) => element.measurandName === "MA1")[0]?.value)
|
|
9818
|
-
currentErrors.push(this.chargy.
|
|
9832
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeterInfo_MeterIdP", measurementCounter)));
|
|
9819
9833
|
if (meterInfoObj2?.["manufacturer"] !== common.meterInfo_manufacturer)
|
|
9820
|
-
currentErrors.push(this.chargy.
|
|
9834
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeterInfo_ManufacturerP", measurementCounter)));
|
|
9821
9835
|
if (meterInfoObj2?.["type"] !== common.meterInfo_type)
|
|
9822
|
-
currentErrors.push(this.chargy.
|
|
9836
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeterInfo_TypeP", measurementCounter)));
|
|
9823
9837
|
}
|
|
9824
9838
|
if (currentMeasurement["contract"]) {
|
|
9825
9839
|
const contractObj2 = asJSONObject(currentMeasurement["contract"]);
|
|
9826
9840
|
if (additionalValues.filter((element) => element.measurandName?.startsWith("Meta") && asString(element.value)?.startsWith("contract-id:")).length == 0)
|
|
9827
|
-
currentErrors.push(this.chargy.
|
|
9841
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_Contract_IdP", measurementCounter)));
|
|
9828
9842
|
if (contractObj2?.["id"] !== common.contract_id)
|
|
9829
|
-
currentErrors.push(this.chargy.
|
|
9843
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_Contract_IdP", measurementCounter)));
|
|
9830
9844
|
if (contractObj2?.["type"] !== common.contract_type)
|
|
9831
|
-
currentErrors.push(this.chargy.
|
|
9845
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_Contract_TypeP", measurementCounter)));
|
|
9832
9846
|
const contractInfo = additionalValues.filter((element) => element.measurandName?.startsWith("Meta") && asString(element.value)?.startsWith("contract-id:"))[0]?.value;
|
|
9833
9847
|
if (contractInfo != null) {
|
|
9834
9848
|
if (contractObj2?.["type"] && contractInfo !== "contract-id: " + (common.contract_type ?? "-") + ":" + common.contract_id)
|
|
9835
|
-
currentErrors.push(this.chargy.
|
|
9849
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_Contract_IdP", measurementCounter)));
|
|
9836
9850
|
if (!contractObj2?.["type"] && contractInfo !== "contract-id: " + common.contract_id)
|
|
9837
|
-
currentErrors.push(this.chargy.
|
|
9851
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_Contract_IdP", measurementCounter)));
|
|
9838
9852
|
}
|
|
9839
9853
|
}
|
|
9840
9854
|
const rcrInAdditional = additionalValues.find((element) => element.measurandName == "RCR");
|
|
@@ -9845,39 +9859,39 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
9845
9859
|
if (valueObj2?.["measurand"]) {
|
|
9846
9860
|
const measurandObj2 = asJSONObject(valueObj2["measurand"]);
|
|
9847
9861
|
if (measurandObj2?.["id"] !== common.value_measurand_id || measurandObj2["id"] !== rcrInAdditional?.measurandId)
|
|
9848
|
-
currentErrors.push(this.chargy.
|
|
9862
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_Measurand_IdentificationP", measurementCounter)));
|
|
9849
9863
|
if (measurandObj2?.["name"] !== common.value_measurand_name || measurandObj2["name"] !== rcrInAdditional?.measurandName)
|
|
9850
|
-
currentErrors.push(this.chargy.
|
|
9864
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_Measurand_NameP", measurementCounter)));
|
|
9851
9865
|
}
|
|
9852
9866
|
if (valueObj2?.["measuredValue"]) {
|
|
9853
9867
|
if (measuredValueObj2?.["value"] !== rcrInAdditional?.value)
|
|
9854
|
-
currentErrors.push(this.chargy.
|
|
9868
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValueP", measurementCounter)));
|
|
9855
9869
|
if (measuredValueObj2?.["scale"] !== common.value_measuredValue_scale || measuredValueObj2?.["scale"] !== rcrInAdditional?.scale)
|
|
9856
|
-
currentErrors.push(this.chargy.
|
|
9870
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_ScaleP", measurementCounter)));
|
|
9857
9871
|
if (measuredValueObj2?.["unit"] !== common.value_measuredValue_unit || measuredValueObj2["unit"] !== rcrInAdditional?.unit)
|
|
9858
|
-
currentErrors.push(this.chargy.
|
|
9872
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_UnitP", measurementCounter)));
|
|
9859
9873
|
if (measuredValueObj2?.["unitEncoded"] !== common.value_measuredValue_unitEncoded || measuredValueObj2?.["unitEncoded"] !== rcrInAdditional?.unitEncoded)
|
|
9860
|
-
currentErrors.push(this.chargy.
|
|
9874
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_UnitEncodedP", measurementCounter)));
|
|
9861
9875
|
if (measuredValueObj2?.["valueType"] !== common.value_measuredValue_valueType || measuredValueObj2?.["valueType"] !== rcrInAdditional?.valueType)
|
|
9862
|
-
currentErrors.push(this.chargy.
|
|
9876
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_TypeP", measurementCounter)));
|
|
9863
9877
|
}
|
|
9864
9878
|
if (currentMeasurement["chargePoint"] && asJSONObject(currentMeasurement["chargePoint"])?.["softwareVersion"] !== common.chargePoint_softwareVersion)
|
|
9865
|
-
currentErrors.push(this.chargy.
|
|
9879
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageText("Inconsistent_ChargingStation_FirmwareVersion")));
|
|
9866
9880
|
const signedEVSEId = additionalValues.filter((element) => element.measurandName?.startsWith("Meta") && asString(element.value)?.startsWith("evse-id:"));
|
|
9867
9881
|
if (signedEVSEId.length == 1) {
|
|
9868
9882
|
const evse__id = (asString(signedEVSEId[0]?.value) ?? "").replace("evse-id:", "").trim();
|
|
9869
9883
|
if (evse__id !== "unknown" && ExpectedEVSEId !== evse__id)
|
|
9870
|
-
currentErrors.push(this.chargy.
|
|
9884
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageText("Inconsistent_EVSE_Identification")));
|
|
9871
9885
|
}
|
|
9872
9886
|
const signedCSCSWVersion = additionalValues.filter((element) => element.measurandName?.startsWith("Meta") && asString(element.value)?.startsWith("csc-sw-version:"));
|
|
9873
9887
|
if (signedCSCSWVersion.length == 1) {
|
|
9874
9888
|
const csc_sw_version = asString(signedCSCSWVersion[0]?.value)?.replace("csc-sw-version:", "").trim() ?? null;
|
|
9875
9889
|
if (previousCscSwVersion !== null && previousCscSwVersion !== csc_sw_version)
|
|
9876
|
-
currentErrors.push(this.chargy.
|
|
9890
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageText("Inconsistent_ChargingStation_FirmwareVersion")));
|
|
9877
9891
|
if (ExpectedCscSwVersion !== null && ExpectedCscSwVersion !== csc_sw_version)
|
|
9878
9892
|
currentWarnings.push({
|
|
9879
9893
|
level: "medium" /* medium */,
|
|
9880
|
-
message: this.chargy.
|
|
9894
|
+
message: this.chargy.GetMultilanguageText("Inconsistent_ChargingStation_FirmwareVersion")
|
|
9881
9895
|
});
|
|
9882
9896
|
previousCscSwVersion = csc_sw_version;
|
|
9883
9897
|
}
|
|
@@ -9938,32 +9952,32 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
9938
9952
|
}
|
|
9939
9953
|
const currentRCRValue = asNumber(RCR?.value) ?? NaN;
|
|
9940
9954
|
if (previousRCR !== -1 && currentRCRValue < previousRCR)
|
|
9941
|
-
currentErrors.push(this.chargy.
|
|
9955
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_Measurement_ValueP", measurementCounter)));
|
|
9942
9956
|
previousRCR = currentRCRValue;
|
|
9943
9957
|
if (RCnt !== currentMeasurement["measurementId"])
|
|
9944
|
-
currentErrors.push(this.chargy.
|
|
9958
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeasurementIdP", measurementCounter)));
|
|
9945
9959
|
if (previousRCnt !== -1 && RCnt != previousRCnt + 1)
|
|
9946
|
-
currentErrors.push(this.chargy.
|
|
9960
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_CounterP", measurementCounter)));
|
|
9947
9961
|
previousRCnt = RCnt;
|
|
9948
9962
|
if (previousOS !== -1 && OS <= previousOS)
|
|
9949
|
-
currentErrors.push(this.chargy.
|
|
9963
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_OperationSecondsCounterP", measurementCounter)));
|
|
9950
9964
|
previousOS = OS;
|
|
9951
9965
|
if (previousEpoch !== -1 && Epoch <= previousEpoch)
|
|
9952
|
-
currentErrors.push(this.chargy.
|
|
9966
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_UNIXEpochP", measurementCounter)));
|
|
9953
9967
|
previousEpoch = Epoch;
|
|
9954
9968
|
const measurementTimestamp1 = new Date(Epoch * 1e3 + TZO * 6e4).toISOString();
|
|
9955
9969
|
const measurementTimestamp2 = measurementTimestamp1.substring(0, measurementTimestamp1.indexOf("."));
|
|
9956
9970
|
const measurementTimestamp3 = measurementTimestamp2 + (TZO > 0 ? "+" : "-") + (Math.abs(TZO) / 60).toString().padStart(2, "0") + ":" + (Math.abs(TZO) % 60).toString().padStart(2, "0");
|
|
9957
9971
|
if (currentTime !== measurementTimestamp3)
|
|
9958
|
-
currentErrors.push(this.chargy.
|
|
9972
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_TimestampP", measurementCounter)));
|
|
9959
9973
|
if (common.MA1 !== null && MA1 !== common.MA1)
|
|
9960
|
-
currentErrors.push(this.chargy.
|
|
9974
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_MeterInfo_MeterIdP", measurementCounter)));
|
|
9961
9975
|
common.MA1 = MA1;
|
|
9962
9976
|
if (common.epochSetCnt !== -1 && EpochSetCnt !== common.epochSetCnt)
|
|
9963
|
-
currentErrors.push(this.chargy.
|
|
9977
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_EpochSet_CounterP", measurementCounter)));
|
|
9964
9978
|
common.epochSetCnt = EpochSetCnt;
|
|
9965
9979
|
if (common.epochSetOS !== -1 && EpochSetOS !== common.epochSetOS)
|
|
9966
|
-
currentErrors.push(this.chargy.
|
|
9980
|
+
currentErrors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_SignedMeterValue_EpochSet_OperationSecondsP", measurementCounter)));
|
|
9967
9981
|
common.epochSetOS = EpochSetOS;
|
|
9968
9982
|
common.dataSets.push({
|
|
9969
9983
|
Typ,
|
|
@@ -10002,7 +10016,7 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
10002
10016
|
throw new Error(this.chargy.GetLocalizedMessageWithParameter("Inconsistent_EnergyMeterValueP", 1));
|
|
10003
10017
|
for (let i = 1; i < common.dataSets.length - 1; i++) {
|
|
10004
10018
|
if (common.dataSets[i]?.TypParsed !== "CURRENT")
|
|
10005
|
-
errors.push(this.chargy.
|
|
10019
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Inconsistent_EnergyMeterValueP", measurementCounter + 1)));
|
|
10006
10020
|
}
|
|
10007
10021
|
if (lastDataSet === void 0 || lastDataSet.TypParsed !== "END" && lastDataSet.TypParsed !== "TURN OFF")
|
|
10008
10022
|
throw new Error(this.chargy.GetLocalizedMessageWithParameter("Inconsistent_EnergyMeterValueP", n + 1));
|
|
@@ -10072,7 +10086,11 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
10072
10086
|
try {
|
|
10073
10087
|
ASN1Signature = ASN1_SignatureSchema.decode(Buffer.from(dataSet.signature, "hex"), "der");
|
|
10074
10088
|
} catch (exception) {
|
|
10075
|
-
|
|
10089
|
+
const signatureError = this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_SignatureP", 1);
|
|
10090
|
+
const exceptionText = ": " + (exception instanceof Error ? exception.message : String(exception));
|
|
10091
|
+
for (const language of Object.keys(signatureError))
|
|
10092
|
+
signatureError[language] = (signatureError[language] ?? "") + exceptionText;
|
|
10093
|
+
errors.push(CreateError(signatureError));
|
|
10076
10094
|
}
|
|
10077
10095
|
const bsmMeasurementValue = {
|
|
10078
10096
|
timestamp: dataSet.time,
|
|
@@ -10165,7 +10183,9 @@ var BSMCrypt01 = class extends ACrypt {
|
|
|
10165
10183
|
CTR.certainty = 1 - errors.length / numberOfFormatChecks;
|
|
10166
10184
|
return CTR;
|
|
10167
10185
|
} catch (exception) {
|
|
10168
|
-
errors.push(
|
|
10186
|
+
errors.push(
|
|
10187
|
+
CreateError({ "en": "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)) })
|
|
10188
|
+
);
|
|
10169
10189
|
}
|
|
10170
10190
|
return {
|
|
10171
10191
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
@@ -11290,14 +11310,14 @@ var Mennekes = class {
|
|
|
11290
11310
|
if (chargingProcesses.length === 0)
|
|
11291
11311
|
return {
|
|
11292
11312
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
11293
|
-
message: this.chargy.
|
|
11313
|
+
message: this.chargy.GetMultilanguageText("UnknownOrInvalidChargingSessionFormat"),
|
|
11294
11314
|
certainty: 0
|
|
11295
11315
|
};
|
|
11296
11316
|
return await Promise.resolve(this.toChargeTransparencyRecord(chargingProcesses));
|
|
11297
11317
|
} catch (exception) {
|
|
11298
11318
|
return {
|
|
11299
11319
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
11300
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
11320
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
11301
11321
|
certainty: 0
|
|
11302
11322
|
};
|
|
11303
11323
|
}
|
|
@@ -11434,7 +11454,10 @@ var MennekesCrypt01 = class extends ACrypt {
|
|
|
11434
11454
|
sessionResult = "InvalidSignature" /* InvalidSignature */;
|
|
11435
11455
|
}
|
|
11436
11456
|
if (sessionResult === "ValidSignature" /* ValidSignature */) {
|
|
11437
|
-
const lawErrors = validateMennekesLawConformity(
|
|
11457
|
+
const lawErrors = validateMennekesLawConformity(
|
|
11458
|
+
measurement.values,
|
|
11459
|
+
this.chargy
|
|
11460
|
+
);
|
|
11438
11461
|
if (lawErrors.length > 0) {
|
|
11439
11462
|
measurement.verificationResult = {
|
|
11440
11463
|
status: "InvalidMeasurement" /* InvalidMeasurement */,
|
|
@@ -11691,18 +11714,20 @@ function toMennekesMeasurementValue(measurement) {
|
|
|
11691
11714
|
"measurement": void 0
|
|
11692
11715
|
};
|
|
11693
11716
|
}
|
|
11694
|
-
function validateMennekesLawConformity(measurementValues) {
|
|
11717
|
+
function validateMennekesLawConformity(measurementValues, chargy) {
|
|
11695
11718
|
const errors = new Array();
|
|
11696
11719
|
const start = measurementValues[0];
|
|
11697
11720
|
const end = measurementValues[measurementValues.length - 1];
|
|
11698
11721
|
if (start == null || end == null)
|
|
11699
|
-
return [
|
|
11722
|
+
return [
|
|
11723
|
+
CreateError(chargy.GetMultilanguageText("Mennekes EDL40 requires at least two measurement values."))
|
|
11724
|
+
];
|
|
11700
11725
|
if (start.eventCounter !== end.eventCounter)
|
|
11701
|
-
errors.push("Event counter mismatch.");
|
|
11726
|
+
errors.push(CreateError(chargy.GetMultilanguageText("Event counter mismatch.")));
|
|
11702
11727
|
if (Number(start.paginationId) >= Number(end.paginationId))
|
|
11703
|
-
errors.push("Pagination must increase from start to end.");
|
|
11728
|
+
errors.push(CreateError(chargy.GetMultilanguageText("Pagination must increase from start to end.")));
|
|
11704
11729
|
if (start.value.gt(end.value))
|
|
11705
|
-
errors.push("Meter value must not decrease.");
|
|
11730
|
+
errors.push(CreateError(chargy.GetMultilanguageText("Meter value must not decrease.")));
|
|
11706
11731
|
return errors;
|
|
11707
11732
|
}
|
|
11708
11733
|
function child(parent, localName) {
|
|
@@ -12077,17 +12102,17 @@ var OCMF = class {
|
|
|
12077
12102
|
const pagination = paging.length > 1 ? parseNumber(paging.substring(1)) : null;
|
|
12078
12103
|
if (transactionType === "undefined" /* undefined */) return {
|
|
12079
12104
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12080
|
-
message: this.chargy.
|
|
12105
|
+
message: this.chargy.GetMultilanguageText("The given OCMF data does not have a valid transaction type!"),
|
|
12081
12106
|
certainty: 0
|
|
12082
12107
|
};
|
|
12083
12108
|
if (!isMandatoryNumber(pagination)) return {
|
|
12084
12109
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12085
|
-
message: this.chargy.
|
|
12110
|
+
message: this.chargy.GetMultilanguageText("The given OCMF data does not have a valid pagination counter!"),
|
|
12086
12111
|
certainty: 0
|
|
12087
12112
|
};
|
|
12088
12113
|
if (firstOCMDJSONDocument.payload.RD.length == 0) return {
|
|
12089
12114
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12090
|
-
message: this.chargy.
|
|
12115
|
+
message: this.chargy.GetMultilanguageText("Each OCMF data set must have at least one meter reading!"),
|
|
12091
12116
|
certainty: 0
|
|
12092
12117
|
};
|
|
12093
12118
|
const CTR = {
|
|
@@ -12185,14 +12210,14 @@ var OCMF = class {
|
|
|
12185
12210
|
const timeSplit = time.split(" ");
|
|
12186
12211
|
if (timeSplit.length != 2) return {
|
|
12187
12212
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12188
|
-
message: this.chargy.
|
|
12213
|
+
message: this.chargy.GetMultilanguageText("The given OCMF meter value does not have a valid time format!"),
|
|
12189
12214
|
certainty: 0
|
|
12190
12215
|
};
|
|
12191
12216
|
const timeRegEx = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2},\d{3}[+-]\d{4}$/;
|
|
12192
12217
|
const timeStamp = timeSplit[0];
|
|
12193
12218
|
if (!isMandatoryString(timeStamp) || !timeRegEx.test(timeStamp)) return {
|
|
12194
12219
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12195
|
-
message: this.chargy.
|
|
12220
|
+
message: this.chargy.GetMultilanguageText("The given OCMF meter value does not have a valid time sync format!"),
|
|
12196
12221
|
certainty: 0
|
|
12197
12222
|
};
|
|
12198
12223
|
const timeStampISO8601 = this.convertToISO8601(timeStamp);
|
|
@@ -12200,7 +12225,7 @@ var OCMF = class {
|
|
|
12200
12225
|
let timeSync = "unknown" /* unknown */;
|
|
12201
12226
|
if (!isMandatoryString(timeSyncText) || !["U", "I", "S", "R"].includes(timeSyncText)) return {
|
|
12202
12227
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12203
|
-
message: this.chargy.
|
|
12228
|
+
message: this.chargy.GetMultilanguageText("The given OCMF meter value does not have a valid time sync format!"),
|
|
12204
12229
|
certainty: 0
|
|
12205
12230
|
};
|
|
12206
12231
|
switch (timeSyncText) {
|
|
@@ -12219,23 +12244,23 @@ var OCMF = class {
|
|
|
12219
12244
|
default:
|
|
12220
12245
|
return {
|
|
12221
12246
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12222
|
-
message: this.chargy.
|
|
12247
|
+
message: this.chargy.GetMultilanguageText("The given OCMF meter value does not have a valid time sync format!"),
|
|
12223
12248
|
certainty: 0
|
|
12224
12249
|
};
|
|
12225
12250
|
}
|
|
12226
12251
|
if (transaction && !["B", "C", "X", "E", "L", "R", "A", "P", "S", "T"].includes(transaction)) return {
|
|
12227
12252
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12228
|
-
message: this.chargy.
|
|
12253
|
+
message: this.chargy.GetMultilanguageText("The given OCMF meter value does not have a valid transaction type!"),
|
|
12229
12254
|
certainty: 0
|
|
12230
12255
|
};
|
|
12231
12256
|
if (!["kWh", "Wh", "mOhm", "uOhm"].includes(readingUnit)) return {
|
|
12232
12257
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12233
|
-
message: this.chargy.
|
|
12258
|
+
message: this.chargy.GetMultilanguageText("The given OCMF meter value does not have a valid current type!"),
|
|
12234
12259
|
certainty: 0
|
|
12235
12260
|
};
|
|
12236
12261
|
if (readingCurrentType && !["AC", "DC"].includes(readingCurrentType)) return {
|
|
12237
12262
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12238
|
-
message: this.chargy.
|
|
12263
|
+
message: this.chargy.GetMultilanguageText("The given OCMF meter value does not have a valid current type!"),
|
|
12239
12264
|
certainty: 0
|
|
12240
12265
|
};
|
|
12241
12266
|
if (CTR.chargingSessions?.[0]?.begin === "?")
|
|
@@ -12304,7 +12329,7 @@ var OCMF = class {
|
|
|
12304
12329
|
} catch (exception) {
|
|
12305
12330
|
return {
|
|
12306
12331
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12307
|
-
message: "Invalid OCMF data: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
12332
|
+
message: this.chargy.GetMultilanguageText("Invalid OCMF data: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
12308
12333
|
certainty: 0
|
|
12309
12334
|
};
|
|
12310
12335
|
}
|
|
@@ -12739,7 +12764,7 @@ var OCMF = class {
|
|
|
12739
12764
|
async TryToParseOCMFDocuments(OCMFDocuments, PublicKey, PublicKeyEncoding, ContainerInfos) {
|
|
12740
12765
|
if (OCMFDocuments.length == 0) return {
|
|
12741
12766
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12742
|
-
message: this.chargy.GetLocalizedMessage("The given OCMF data could not be parsed") + "!",
|
|
12767
|
+
message: this.chargy.GetMultilanguageText(this.chargy.GetLocalizedMessage("The given OCMF data could not be parsed") + "!"),
|
|
12743
12768
|
certainty: 0
|
|
12744
12769
|
};
|
|
12745
12770
|
const ocmfJSONDocumentGroups = /* @__PURE__ */ new Map();
|
|
@@ -12759,7 +12784,7 @@ var OCMF = class {
|
|
|
12759
12784
|
} catch (exception) {
|
|
12760
12785
|
return {
|
|
12761
12786
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12762
|
-
message: this.chargy.GetLocalizedMessage("The given OCMF data could not be parsed") + ": " + (exception instanceof Error ? exception.message : String(exception)),
|
|
12787
|
+
message: this.chargy.GetMultilanguageText(this.chargy.GetLocalizedMessage("The given OCMF data could not be parsed") + ": " + (exception instanceof Error ? exception.message : String(exception))),
|
|
12763
12788
|
certainty: 0
|
|
12764
12789
|
};
|
|
12765
12790
|
}
|
|
@@ -12787,7 +12812,7 @@ var OCMF = class {
|
|
|
12787
12812
|
default:
|
|
12788
12813
|
ocmfCTRs.push({
|
|
12789
12814
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12790
|
-
message: this.chargy.
|
|
12815
|
+
message: this.chargy.GetMultilanguageText("Unknown OCMF version!"),
|
|
12791
12816
|
certainty: 0
|
|
12792
12817
|
});
|
|
12793
12818
|
break;
|
|
@@ -12799,7 +12824,7 @@ var OCMF = class {
|
|
|
12799
12824
|
}
|
|
12800
12825
|
return {
|
|
12801
12826
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
12802
|
-
message: this.chargy.GetLocalizedMessage("The given OCMF data could not be parsed") + (typeof ocmfJSONDocuments === "string" ? ": " + ocmfJSONDocuments : "!"),
|
|
12827
|
+
message: this.chargy.GetMultilanguageText(this.chargy.GetLocalizedMessage("The given OCMF data could not be parsed") + (typeof ocmfJSONDocuments === "string" ? ": " + ocmfJSONDocuments : "!")),
|
|
12803
12828
|
certainty: 0
|
|
12804
12829
|
};
|
|
12805
12830
|
}
|
|
@@ -12842,11 +12867,11 @@ var OCPI = class {
|
|
|
12842
12867
|
const public_key = SomeJSON["public_key"];
|
|
12843
12868
|
const signed_values = SomeJSON["signed_values"];
|
|
12844
12869
|
if (!isMandatoryString(encoding_method))
|
|
12845
|
-
errors.push(this.chargy.
|
|
12870
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidEncodingMethod")));
|
|
12846
12871
|
if (!isMandatoryString(public_key))
|
|
12847
|
-
errors.push(this.chargy.
|
|
12872
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidPublicKey")));
|
|
12848
12873
|
if (!isMandatoryJSONArray(signed_values))
|
|
12849
|
-
errors.push(this.chargy.
|
|
12874
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidSignedValues")));
|
|
12850
12875
|
if (errors.length > 0)
|
|
12851
12876
|
return {
|
|
12852
12877
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
@@ -12948,138 +12973,138 @@ var OCPI = class {
|
|
|
12948
12973
|
const chargingCostsInfo_flat_cost = chargingCostsInfo_flat?.["cost"];
|
|
12949
12974
|
const signedMeterValues = SomeJSON["signedMeterValues"];
|
|
12950
12975
|
if (!isMandatoryString(chargingSessionId))
|
|
12951
|
-
errors.push(this.chargy.
|
|
12976
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid charge transparency record identification!")));
|
|
12952
12977
|
if (!isMandatoryJSONObject(chargePointInfo)) {
|
|
12953
|
-
errors.push(this.chargy.
|
|
12978
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidChargePointInfo")));
|
|
12954
12979
|
secondaryErrors += 19;
|
|
12955
12980
|
} else {
|
|
12956
12981
|
if (!isMandatoryString(evseId))
|
|
12957
|
-
errors.push(this.chargy.
|
|
12982
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidEVSEIdentification")));
|
|
12958
12983
|
if (!isMandatoryJSONObject(placeInfo)) {
|
|
12959
|
-
errors.push(this.chargy.
|
|
12984
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidPlaceInfo")));
|
|
12960
12985
|
secondaryErrors += 8;
|
|
12961
12986
|
} else {
|
|
12962
12987
|
if (!isMandatoryJSONObject(geoLocation)) {
|
|
12963
|
-
errors.push(this.chargy.
|
|
12988
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocation")));
|
|
12964
12989
|
secondaryErrors += 2;
|
|
12965
12990
|
} else {
|
|
12966
12991
|
if (!isMandatoryNumber(geoLocation_lat))
|
|
12967
|
-
errors.push(this.chargy.
|
|
12992
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocationLatitude")));
|
|
12968
12993
|
if (!isMandatoryNumber(geoLocation_lon))
|
|
12969
|
-
errors.push(this.chargy.
|
|
12994
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocationLongitude")));
|
|
12970
12995
|
}
|
|
12971
12996
|
if (!isMandatoryJSONObject(address)) {
|
|
12972
|
-
errors.push(this.chargy.
|
|
12997
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddress")));
|
|
12973
12998
|
secondaryErrors += 4;
|
|
12974
12999
|
} else {
|
|
12975
13000
|
if (!isMandatoryString(address_street))
|
|
12976
|
-
errors.push(this.chargy.
|
|
13001
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressStreetName")));
|
|
12977
13002
|
if (!isMandatoryString(address_zipCode))
|
|
12978
|
-
errors.push(this.chargy.
|
|
13003
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressZIPCode")));
|
|
12979
13004
|
if (!isMandatoryString(address_town))
|
|
12980
|
-
errors.push(this.chargy.
|
|
13005
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressCityName")));
|
|
12981
13006
|
if (!isMandatoryString(address_country))
|
|
12982
|
-
errors.push(this.chargy.
|
|
13007
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressCountryName")));
|
|
12983
13008
|
}
|
|
12984
13009
|
}
|
|
12985
13010
|
}
|
|
12986
13011
|
if (!isMandatoryJSONObject(chargingStationInfo)) {
|
|
12987
|
-
errors.push(this.chargy.
|
|
13012
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidChargingStationInfo")));
|
|
12988
13013
|
secondaryErrors += 5;
|
|
12989
13014
|
} else {
|
|
12990
13015
|
if (!isOptionalString(chargingStation_manufacturer))
|
|
12991
|
-
errors.push(this.chargy.
|
|
13016
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station manufacturer!")));
|
|
12992
13017
|
if (!isOptionalString(chargingStation_type))
|
|
12993
|
-
errors.push(this.chargy.
|
|
13018
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station type!")));
|
|
12994
13019
|
if (!isOptionalString(chargingStation_serialNumber))
|
|
12995
|
-
errors.push(this.chargy.
|
|
13020
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station serial number!")));
|
|
12996
13021
|
if (!isOptionalString(chargingStation_controllerSoftwareVersion))
|
|
12997
|
-
errors.push(this.chargy.
|
|
13022
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station controller software version!")));
|
|
12998
13023
|
if (!isOptionalString(chargingStation_compliance))
|
|
12999
|
-
errors.push(this.chargy.
|
|
13024
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station compliance!")));
|
|
13000
13025
|
if (!isOptionalURL(chargingStation_complianceURL))
|
|
13001
|
-
errors.push(this.chargy.
|
|
13026
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station compliance URL!")));
|
|
13002
13027
|
if (!isOptionalString(chargingStation_conformity))
|
|
13003
|
-
errors.push(this.chargy.
|
|
13028
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station conformity!")));
|
|
13004
13029
|
if (!isOptionalURL(chargingStation_conformity_URL))
|
|
13005
|
-
errors.push(this.chargy.
|
|
13030
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station conformity URL!")));
|
|
13006
13031
|
if (!isOptionalURL(chargingStation_conformity_certificateId))
|
|
13007
|
-
errors.push(this.chargy.
|
|
13032
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station conformity certificate identification!")));
|
|
13008
13033
|
if (!isOptionalString(chargingStation_calibration))
|
|
13009
|
-
errors.push(this.chargy.
|
|
13034
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station calibration!")));
|
|
13010
13035
|
if (!isOptionalURL(chargingStation_calibration_URL))
|
|
13011
|
-
errors.push(this.chargy.
|
|
13036
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station calibration URL!")));
|
|
13012
13037
|
if (!isOptionalURL(chargingStation_calibration_certificateId))
|
|
13013
|
-
errors.push(this.chargy.
|
|
13038
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station calibration certificate identification!")));
|
|
13014
13039
|
}
|
|
13015
13040
|
if (meterInfo) {
|
|
13016
13041
|
if (!isOptionalString(meterInfo_meterId))
|
|
13017
|
-
errors.push(this.chargy.
|
|
13042
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_MeterIdP", 1)));
|
|
13018
13043
|
if (!isOptionalString(meterInfo_manufacturer))
|
|
13019
|
-
errors.push(this.chargy.
|
|
13044
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
13020
13045
|
if (!isOptionalString(meterInfo_manufacturerURL))
|
|
13021
|
-
errors.push(this.chargy.
|
|
13046
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
13022
13047
|
if (!isOptionalString(meterInfo_model))
|
|
13023
|
-
errors.push(this.chargy.
|
|
13048
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
13024
13049
|
if (!isOptionalString(meterInfo_modelURL))
|
|
13025
|
-
errors.push(this.chargy.
|
|
13050
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
13026
13051
|
if (!isOptionalString(meterInfo_firmwareVersion))
|
|
13027
|
-
errors.push(this.chargy.
|
|
13052
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_FirmwareVersionP", 1)));
|
|
13028
13053
|
if (!isOptionalString(meterInfo_hardwareVersion))
|
|
13029
|
-
errors.push(this.chargy.
|
|
13054
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_FirmwareVersionP", 1)));
|
|
13030
13055
|
if (!isOptionalString(meterInfo_publicKey))
|
|
13031
|
-
errors.push(this.chargy.
|
|
13056
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
13032
13057
|
if (!isOptionalString(meterInfo_publicKeyFormat))
|
|
13033
|
-
errors.push(this.chargy.
|
|
13058
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
13034
13059
|
if (!isOptionalString(meterInfo_publicKeyEncoding))
|
|
13035
|
-
errors.push(this.chargy.
|
|
13060
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
13036
13061
|
if (!isOptionalString(meterInfo_signatureFormat))
|
|
13037
|
-
errors.push(this.chargy.
|
|
13062
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
13038
13063
|
if (!isOptionalString(meterInfo_signatureEncoding))
|
|
13039
|
-
errors.push(this.chargy.
|
|
13064
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
13040
13065
|
}
|
|
13041
13066
|
if (connectorInfo) {
|
|
13042
13067
|
if (!isOptionalString(connectorInfo_type))
|
|
13043
|
-
errors.push(this.chargy.
|
|
13068
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_MeterIdP", 1)));
|
|
13044
13069
|
if (!isOptionalString(connectorInfo_losses))
|
|
13045
|
-
errors.push(this.chargy.
|
|
13070
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_MeterIdP", 1)));
|
|
13046
13071
|
}
|
|
13047
13072
|
if (chargingCostsInfo) {
|
|
13048
13073
|
if (!isMandatoryNumber(chargingCostsInfo_total))
|
|
13049
|
-
errors.push(this.chargy.
|
|
13074
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid total costs within the charging costs!")));
|
|
13050
13075
|
if (!isMandatoryString(chargingCostsInfo_currency))
|
|
13051
|
-
errors.push(this.chargy.
|
|
13076
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid currency within the charging costs!")));
|
|
13052
13077
|
if (chargingCostsInfo_reservation) {
|
|
13053
13078
|
if (!isMandatoryNumber(chargingCostsInfo_reservation_cost))
|
|
13054
|
-
errors.push(this.chargy.
|
|
13079
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid reservation cost within the charging costs!")));
|
|
13055
13080
|
if (!isMandatoryString(chargingCostsInfo_reservation_unit))
|
|
13056
|
-
errors.push(this.chargy.
|
|
13081
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid reservation unit within the charging costs!")));
|
|
13057
13082
|
}
|
|
13058
13083
|
if (chargingCostsInfo_energy) {
|
|
13059
13084
|
if (!isMandatoryNumber(chargingCostsInfo_energy_cost))
|
|
13060
|
-
errors.push(this.chargy.
|
|
13085
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid energy cost within the charging costs!")));
|
|
13061
13086
|
if (!isMandatoryString(chargingCostsInfo_energy_unit))
|
|
13062
|
-
errors.push(this.chargy.
|
|
13087
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid energy unit within the charging costs!")));
|
|
13063
13088
|
}
|
|
13064
13089
|
if (chargingCostsInfo_time) {
|
|
13065
13090
|
if (!isMandatoryNumber(chargingCostsInfo_time_cost))
|
|
13066
|
-
errors.push(this.chargy.
|
|
13091
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid time cost within the charging costs!")));
|
|
13067
13092
|
if (!isMandatoryString(chargingCostsInfo_time_unit))
|
|
13068
|
-
errors.push(this.chargy.
|
|
13093
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid time unit within the charging costs!")));
|
|
13069
13094
|
}
|
|
13070
13095
|
if (chargingCostsInfo_idle) {
|
|
13071
13096
|
if (!isMandatoryNumber(chargingCostsInfo_idle_cost))
|
|
13072
|
-
errors.push(this.chargy.
|
|
13097
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid idle cost within the charging costs!")));
|
|
13073
13098
|
if (!isMandatoryString(chargingCostsInfo_idle_unit))
|
|
13074
|
-
errors.push(this.chargy.
|
|
13099
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid idle unit within the charging costs!")));
|
|
13075
13100
|
}
|
|
13076
13101
|
if (chargingCostsInfo_flat) {
|
|
13077
13102
|
if (!isMandatoryNumber(chargingCostsInfo_flat_cost))
|
|
13078
|
-
errors.push(this.chargy.
|
|
13103
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid flat cost within the charging costs!")));
|
|
13079
13104
|
}
|
|
13080
13105
|
}
|
|
13081
13106
|
if (!isMandatoryJSONArray(signedMeterValues) || signedMeterValues.length < 2) {
|
|
13082
|
-
errors.push(this.chargy.
|
|
13107
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidSignedMeterValues")));
|
|
13083
13108
|
secondaryErrors += 2 * 39;
|
|
13084
13109
|
} else {
|
|
13085
13110
|
const firstSMV = asJSONObject(signedMeterValues[0]);
|
|
@@ -13089,7 +13114,7 @@ var OCPI = class {
|
|
|
13089
13114
|
const context = asString(currentSMV?.["@context"])?.trim() ?? asString(currentSMV?.["format"])?.trim() ?? null;
|
|
13090
13115
|
if (smvContext !== context) return {
|
|
13091
13116
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13092
|
-
message: "Inconsistent signed meter value format!",
|
|
13117
|
+
message: this.chargy.GetMultilanguageText("Inconsistent signed meter value format!"),
|
|
13093
13118
|
certainty: 1
|
|
13094
13119
|
};
|
|
13095
13120
|
}
|
|
@@ -13234,7 +13259,7 @@ var OCPI = class {
|
|
|
13234
13259
|
} catch (exception) {
|
|
13235
13260
|
return {
|
|
13236
13261
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13237
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
13262
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
13238
13263
|
errors,
|
|
13239
13264
|
warnings,
|
|
13240
13265
|
certainty: (numberOfFormatChecks - errors.length - secondaryErrors) / numberOfFormatChecks
|
|
@@ -13243,7 +13268,7 @@ var OCPI = class {
|
|
|
13243
13268
|
}
|
|
13244
13269
|
return {
|
|
13245
13270
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13246
|
-
message: "No chargeIT charge transparency record",
|
|
13271
|
+
message: this.chargy.GetMultilanguageText("No chargeIT charge transparency record"),
|
|
13247
13272
|
errors,
|
|
13248
13273
|
warnings,
|
|
13249
13274
|
certainty: 0
|
|
@@ -13529,7 +13554,7 @@ var PCDF = class {
|
|
|
13529
13554
|
if (externalPublicKey != null && normalizePCDFPublicKeyHex(externalPublicKey) !== publicKey) {
|
|
13530
13555
|
return {
|
|
13531
13556
|
status: "InvalidPublicKey" /* InvalidPublicKey */,
|
|
13532
|
-
message: "Wrong Public Key",
|
|
13557
|
+
message: this.chargy.GetMultilanguageText("Wrong Public Key"),
|
|
13533
13558
|
certainty: 1
|
|
13534
13559
|
};
|
|
13535
13560
|
}
|
|
@@ -13550,7 +13575,7 @@ var PCDF = class {
|
|
|
13550
13575
|
} catch (exception) {
|
|
13551
13576
|
return {
|
|
13552
13577
|
status: exception instanceof PCDFParseError ? "InvalidSessionFormat" /* InvalidSessionFormat */ : "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13553
|
-
message: exception instanceof Error ? exception.message : String(exception),
|
|
13578
|
+
message: this.chargy.GetMultilanguageText(exception instanceof Error ? exception.message : String(exception)),
|
|
13554
13579
|
certainty: 0
|
|
13555
13580
|
};
|
|
13556
13581
|
}
|
|
@@ -13856,7 +13881,7 @@ var SAFEXML = class _SAFEXML {
|
|
|
13856
13881
|
if (signedData == null)
|
|
13857
13882
|
return {
|
|
13858
13883
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13859
|
-
message: "Each value within the given XML container must contain signed data!",
|
|
13884
|
+
message: this.chargy.GetMultilanguageText("Each value within the given XML container must contain signed data!"),
|
|
13860
13885
|
certainty: 0
|
|
13861
13886
|
};
|
|
13862
13887
|
const signedDataFormat = signedData.attributes.getNamedItem("format")?.value.trim().toLowerCase() ?? "";
|
|
@@ -13865,7 +13890,7 @@ var SAFEXML = class _SAFEXML {
|
|
|
13865
13890
|
else if (signedDataFormat !== commonSignedDataFormat)
|
|
13866
13891
|
return {
|
|
13867
13892
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13868
|
-
message: "Invalid mixture of different signed data formats within the given XML container!",
|
|
13893
|
+
message: this.chargy.GetMultilanguageText("Invalid mixture of different signed data formats within the given XML container!"),
|
|
13869
13894
|
certainty: 0
|
|
13870
13895
|
};
|
|
13871
13896
|
const signedDataEncoding = signedData.attributes.getNamedItem("encoding")?.value.trim().toLowerCase() ?? "";
|
|
@@ -13874,14 +13899,14 @@ var SAFEXML = class _SAFEXML {
|
|
|
13874
13899
|
else if (signedDataEncoding !== commonSignedDataEncoding)
|
|
13875
13900
|
return {
|
|
13876
13901
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13877
|
-
message: "Invalid mixture of different signed data encodings within the given XML container!",
|
|
13902
|
+
message: this.chargy.GetMultilanguageText("Invalid mixture of different signed data encodings within the given XML container!"),
|
|
13878
13903
|
certainty: 0
|
|
13879
13904
|
};
|
|
13880
13905
|
const signedDataValue = signedData.textContent.trim();
|
|
13881
13906
|
if (IsNullOrEmpty(signedDataValue))
|
|
13882
13907
|
return {
|
|
13883
13908
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13884
|
-
message: "The signed data value within the given XML container must not be empty!",
|
|
13909
|
+
message: this.chargy.GetMultilanguageText("The signed data value within the given XML container must not be empty!"),
|
|
13885
13910
|
certainty: 0
|
|
13886
13911
|
};
|
|
13887
13912
|
const publicKeyEncoding = publicKey?.attributes.getNamedItem("encoding")?.value.trim().toLowerCase() ?? "";
|
|
@@ -13890,7 +13915,7 @@ var SAFEXML = class _SAFEXML {
|
|
|
13890
13915
|
else if (publicKeyEncoding !== commonPublicKeyEncoding)
|
|
13891
13916
|
return {
|
|
13892
13917
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13893
|
-
message: "Invalid mixture of different public key encodings within the given XML container!",
|
|
13918
|
+
message: this.chargy.GetMultilanguageText("Invalid mixture of different public key encodings within the given XML container!"),
|
|
13894
13919
|
certainty: 0
|
|
13895
13920
|
};
|
|
13896
13921
|
const publicKeyValue = publicKey?.textContent.trim().replace(/\s+/g, "") ?? "";
|
|
@@ -13899,7 +13924,7 @@ var SAFEXML = class _SAFEXML {
|
|
|
13899
13924
|
else if (publicKeyValue !== commonPublicKey)
|
|
13900
13925
|
return {
|
|
13901
13926
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13902
|
-
message: "Invalid mixture of different public keys within the given XML container!",
|
|
13927
|
+
message: this.chargy.GetMultilanguageText("Invalid mixture of different public keys within the given XML container!"),
|
|
13903
13928
|
certainty: 0
|
|
13904
13929
|
};
|
|
13905
13930
|
switch (commonSignedDataEncoding) {
|
|
@@ -13919,7 +13944,7 @@ var SAFEXML = class _SAFEXML {
|
|
|
13919
13944
|
default:
|
|
13920
13945
|
return {
|
|
13921
13946
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13922
|
-
message: "Unkown signed data encoding within the given SAFE XML!",
|
|
13947
|
+
message: this.chargy.GetMultilanguageText("Unkown signed data encoding within the given SAFE XML!"),
|
|
13923
13948
|
certainty: 0
|
|
13924
13949
|
};
|
|
13925
13950
|
}
|
|
@@ -13941,7 +13966,7 @@ var SAFEXML = class _SAFEXML {
|
|
|
13941
13966
|
default:
|
|
13942
13967
|
return {
|
|
13943
13968
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13944
|
-
message: this.chargy.
|
|
13969
|
+
message: this.chargy.GetMultilanguageText("UnknownOrInvalidChargingSessionFormat"),
|
|
13945
13970
|
certainty: 0
|
|
13946
13971
|
};
|
|
13947
13972
|
}
|
|
@@ -13950,13 +13975,13 @@ var SAFEXML = class _SAFEXML {
|
|
|
13950
13975
|
} catch (exception) {
|
|
13951
13976
|
return {
|
|
13952
13977
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13953
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
13978
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
13954
13979
|
certainty: 0
|
|
13955
13980
|
};
|
|
13956
13981
|
}
|
|
13957
13982
|
return {
|
|
13958
13983
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
13959
|
-
message: this.chargy.
|
|
13984
|
+
message: this.chargy.GetMultilanguageText("UnknownOrInvalidChargingSessionFormat"),
|
|
13960
13985
|
certainty: 0
|
|
13961
13986
|
};
|
|
13962
13987
|
}
|
|
@@ -14005,14 +14030,14 @@ var XMLContainer = class {
|
|
|
14005
14030
|
default:
|
|
14006
14031
|
return {
|
|
14007
14032
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14008
|
-
message: "Unkown public key encoding within the given XML container!",
|
|
14033
|
+
message: this.chargy.GetMultilanguageText("Unkown public key encoding within the given XML container!"),
|
|
14009
14034
|
certainty: 0
|
|
14010
14035
|
};
|
|
14011
14036
|
}
|
|
14012
14037
|
if (IsNullOrEmpty(publicKeyValue))
|
|
14013
14038
|
return {
|
|
14014
14039
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14015
|
-
message: "The public key within the given XML container must not be empty!",
|
|
14040
|
+
message: this.chargy.GetMultilanguageText("The public key within the given XML container must not be empty!"),
|
|
14016
14041
|
certainty: 0
|
|
14017
14042
|
};
|
|
14018
14043
|
else if (common.publicKey == "")
|
|
@@ -14020,7 +14045,7 @@ var XMLContainer = class {
|
|
|
14020
14045
|
else if (publicKeyValue != common.publicKey)
|
|
14021
14046
|
return {
|
|
14022
14047
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14023
|
-
message: "Invalid mixture of different public keys within the given XML container!",
|
|
14048
|
+
message: this.chargy.GetMultilanguageText("Invalid mixture of different public keys within the given XML container!"),
|
|
14024
14049
|
certainty: 0
|
|
14025
14050
|
};
|
|
14026
14051
|
}
|
|
@@ -14045,14 +14070,14 @@ var XMLContainer = class {
|
|
|
14045
14070
|
default:
|
|
14046
14071
|
return {
|
|
14047
14072
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14048
|
-
message: "Unkown meter value signature encoding within the given XML container!",
|
|
14073
|
+
message: this.chargy.GetMultilanguageText("Unkown meter value signature encoding within the given XML container!"),
|
|
14049
14074
|
certainty: 0
|
|
14050
14075
|
};
|
|
14051
14076
|
}
|
|
14052
14077
|
if (IsNullOrEmpty(meterValueSignatureValue))
|
|
14053
14078
|
return {
|
|
14054
14079
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14055
|
-
message: "The meter value signature within the given XML container must not be empty!",
|
|
14080
|
+
message: this.chargy.GetMultilanguageText("The meter value signature within the given XML container must not be empty!"),
|
|
14056
14081
|
certainty: 0
|
|
14057
14082
|
};
|
|
14058
14083
|
common.meterValueSignatures.push(meterValueSignatureValue);
|
|
@@ -14063,7 +14088,7 @@ var XMLContainer = class {
|
|
|
14063
14088
|
else if (common.signatureMethod != signatureMethod)
|
|
14064
14089
|
return {
|
|
14065
14090
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14066
|
-
message: "Invalid mixture of different signature methods within the given XML container!",
|
|
14091
|
+
message: this.chargy.GetMultilanguageText("Invalid mixture of different signature methods within the given XML container!"),
|
|
14067
14092
|
certainty: 0
|
|
14068
14093
|
};
|
|
14069
14094
|
const encodingMethod = valueList[i]?.querySelector("encodingMethod")?.textContent.trim().toLowerCase() ?? "";
|
|
@@ -14072,7 +14097,7 @@ var XMLContainer = class {
|
|
|
14072
14097
|
else if (common.encodingMethod != encodingMethod)
|
|
14073
14098
|
return {
|
|
14074
14099
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14075
|
-
message: "Invalid mixture of different signed data formats within the given XML container!",
|
|
14100
|
+
message: this.chargy.GetMultilanguageText("Invalid mixture of different signed data formats within the given XML container!"),
|
|
14076
14101
|
certainty: 0
|
|
14077
14102
|
};
|
|
14078
14103
|
const encodedMeterValue = valueList[i]?.querySelector("encodedMeterValue");
|
|
@@ -14096,21 +14121,21 @@ var XMLContainer = class {
|
|
|
14096
14121
|
default:
|
|
14097
14122
|
return {
|
|
14098
14123
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14099
|
-
message: "Unkown signed data encoding within the given XML container!",
|
|
14124
|
+
message: this.chargy.GetMultilanguageText("Unkown signed data encoding within the given XML container!"),
|
|
14100
14125
|
certainty: 0
|
|
14101
14126
|
};
|
|
14102
14127
|
}
|
|
14103
14128
|
if (IsNullOrEmpty(signedDataValue))
|
|
14104
14129
|
return {
|
|
14105
14130
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14106
|
-
message: "The signed data value within the given XML container must not be empty!",
|
|
14131
|
+
message: this.chargy.GetMultilanguageText("The signed data value within the given XML container must not be empty!"),
|
|
14107
14132
|
certainty: 0
|
|
14108
14133
|
};
|
|
14109
14134
|
common.encodedMeterValues.push(signedDataValue);
|
|
14110
14135
|
} else
|
|
14111
14136
|
return {
|
|
14112
14137
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14113
|
-
message: "The signed data tag within the given XML container must not be empty!",
|
|
14138
|
+
message: this.chargy.GetMultilanguageText("The signed data tag within the given XML container must not be empty!"),
|
|
14114
14139
|
certainty: 0
|
|
14115
14140
|
};
|
|
14116
14141
|
}
|
|
@@ -14118,13 +14143,13 @@ var XMLContainer = class {
|
|
|
14118
14143
|
}
|
|
14119
14144
|
return {
|
|
14120
14145
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14121
|
-
message: this.chargy.
|
|
14146
|
+
message: this.chargy.GetMultilanguageText("UnknownOrInvalidChargingSessionFormat"),
|
|
14122
14147
|
certainty: 0
|
|
14123
14148
|
};
|
|
14124
14149
|
} catch (exception) {
|
|
14125
14150
|
return {
|
|
14126
14151
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14127
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
14152
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
14128
14153
|
certainty: 0
|
|
14129
14154
|
};
|
|
14130
14155
|
}
|
|
@@ -14246,7 +14271,7 @@ var ChargeIT = class {
|
|
|
14246
14271
|
if (firstMeterValue === void 0 || lastMeterValue === void 0)
|
|
14247
14272
|
return {
|
|
14248
14273
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14249
|
-
message: this.chargy.
|
|
14274
|
+
message: this.chargy.GetMultilanguageText("UnknownOrInvalidChargingSessionFormat"),
|
|
14250
14275
|
certainty: 0
|
|
14251
14276
|
};
|
|
14252
14277
|
CTR["@id"] = lastMeterValue["transactionId"];
|
|
@@ -14431,38 +14456,38 @@ var ChargeIT = class {
|
|
|
14431
14456
|
{
|
|
14432
14457
|
const placeInfo = asJSONObject(SomeJSON["placeInfo"]);
|
|
14433
14458
|
if (placeInfo === void 0) {
|
|
14434
|
-
errors.push(this.chargy.
|
|
14459
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidPlaceInfo")));
|
|
14435
14460
|
secondaryErrors += 13;
|
|
14436
14461
|
} else {
|
|
14437
14462
|
const evseId = placeInfo["evseId"];
|
|
14438
14463
|
if (!isMandatoryString(evseId))
|
|
14439
|
-
errors.push(this.chargy.
|
|
14464
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidEVSEId")));
|
|
14440
14465
|
const address = asJSONObject(placeInfo["address"]);
|
|
14441
14466
|
if (address === void 0) {
|
|
14442
|
-
errors.push(this.chargy.
|
|
14467
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddress")));
|
|
14443
14468
|
secondaryErrors += 3;
|
|
14444
14469
|
} else {
|
|
14445
14470
|
if (!isMandatoryString(address["street"]))
|
|
14446
|
-
errors.push(this.chargy.
|
|
14471
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressStreetName")));
|
|
14447
14472
|
if (!isMandatoryString(address["zipCode"]))
|
|
14448
|
-
errors.push(this.chargy.
|
|
14473
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressZIPCode")));
|
|
14449
14474
|
if (!isMandatoryString(address["town"]))
|
|
14450
|
-
errors.push(this.chargy.
|
|
14475
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressCityName")));
|
|
14451
14476
|
}
|
|
14452
14477
|
const geoLocation = asJSONObject(placeInfo["geoLocation"]);
|
|
14453
14478
|
if (geoLocation === void 0) {
|
|
14454
|
-
errors.push(this.chargy.
|
|
14479
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocation")));
|
|
14455
14480
|
secondaryErrors += 2;
|
|
14456
14481
|
} else {
|
|
14457
14482
|
if (!isMandatoryNumber(geoLocation["lat"]))
|
|
14458
|
-
errors.push(this.chargy.
|
|
14483
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocationLatitude")));
|
|
14459
14484
|
if (!isMandatoryNumber(geoLocation["lon"]))
|
|
14460
|
-
errors.push(this.chargy.
|
|
14485
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocationLongitude")));
|
|
14461
14486
|
}
|
|
14462
14487
|
}
|
|
14463
14488
|
const signedMeterValues = SomeJSON["signedMeterValues"];
|
|
14464
14489
|
if (!isMandatoryJSONArray(signedMeterValues) || signedMeterValues.length < 2) {
|
|
14465
|
-
errors.push(this.chargy.
|
|
14490
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidSignedMeterValues")));
|
|
14466
14491
|
secondaryErrors += 2 * 39;
|
|
14467
14492
|
} else {
|
|
14468
14493
|
numberOfFormatChecks += 39 * (signedMeterValues.length - 2);
|
|
@@ -14471,7 +14496,7 @@ var ChargeIT = class {
|
|
|
14471
14496
|
for (const signedMeterValue of signedMeterValues.map((smv) => asJSONObject(smv))) {
|
|
14472
14497
|
if ((signedMeterValue?.["@context"] ?? oldChargeITMeterValueFormat) !== signedMeterValueContext) {
|
|
14473
14498
|
if (consistent)
|
|
14474
|
-
errors.push(this.chargy.
|
|
14499
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("InconsistentJSONContextInformation")));
|
|
14475
14500
|
consistent = false;
|
|
14476
14501
|
}
|
|
14477
14502
|
}
|
|
@@ -14484,122 +14509,122 @@ var ChargeIT = class {
|
|
|
14484
14509
|
for (const signedMeterValue of signedMeterValues) {
|
|
14485
14510
|
measurementCounter++;
|
|
14486
14511
|
if (!isMandatoryJSONObject(signedMeterValue)) {
|
|
14487
|
-
errors.push(this.chargy.
|
|
14512
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalidSignedMeterValueP", measurementCounter)));
|
|
14488
14513
|
secondaryErrors += 38;
|
|
14489
14514
|
} else {
|
|
14490
14515
|
if (!isMandatoryString(signedMeterValue["measurementId"]))
|
|
14491
|
-
errors.push(this.chargy.
|
|
14516
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasurementIdP", measurementCounter)));
|
|
14492
14517
|
if (!isMandatoryNumber(signedMeterValue["timestamp"]))
|
|
14493
|
-
errors.push(this.chargy.
|
|
14518
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_TimestampP", measurementCounter)));
|
|
14494
14519
|
if (!isMandatoryString(signedMeterValue["transactionId"]))
|
|
14495
|
-
errors.push(this.chargy.
|
|
14520
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_TransactionIdP", measurementCounter)));
|
|
14496
14521
|
if (!isMandatoryString(signedMeterValue["signature"]))
|
|
14497
|
-
errors.push(this.chargy.
|
|
14522
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_SignatureP", measurementCounter)));
|
|
14498
14523
|
const meterInfo = signedMeterValue["meterInfo"];
|
|
14499
14524
|
if (!isMandatoryJSONObject(meterInfo)) {
|
|
14500
|
-
errors.push(this.chargy.
|
|
14525
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfoP", measurementCounter)));
|
|
14501
14526
|
secondaryErrors += 5;
|
|
14502
14527
|
} else {
|
|
14503
14528
|
if (!isMandatoryString(meterInfo["meterId"]))
|
|
14504
|
-
errors.push(this.chargy.
|
|
14529
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_MeterIdP", measurementCounter)));
|
|
14505
14530
|
if (!isMandatoryString(meterInfo["type"]))
|
|
14506
|
-
errors.push(this.chargy.
|
|
14531
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_TypeP", measurementCounter)));
|
|
14507
14532
|
if (!isMandatoryString(meterInfo["firmwareVersion"]))
|
|
14508
|
-
errors.push(this.chargy.
|
|
14533
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_FirmwareVersionP", measurementCounter)));
|
|
14509
14534
|
if (!isMandatoryString(meterInfo["publicKey"]))
|
|
14510
|
-
errors.push(this.chargy.
|
|
14535
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", measurementCounter)));
|
|
14511
14536
|
if (!isMandatoryString(meterInfo["manufacturer"]))
|
|
14512
|
-
errors.push(this.chargy.
|
|
14537
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", measurementCounter)));
|
|
14513
14538
|
if (isOptionalJSONArrayError(meterInfo["publicKeySignatures"]))
|
|
14514
|
-
errors.push(this.chargy.
|
|
14539
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("Invalid_SignedMeterValue_MeterInfo_PublicKeySignaturesP", measurementCounter)));
|
|
14515
14540
|
}
|
|
14516
14541
|
const contract = signedMeterValue["contract"];
|
|
14517
14542
|
if (!isMandatoryJSONObject(contract)) {
|
|
14518
|
-
errors.push(this.chargy.
|
|
14543
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_ContractP", measurementCounter)));
|
|
14519
14544
|
secondaryErrors += 7;
|
|
14520
14545
|
} else {
|
|
14521
14546
|
if (!isMandatoryString(contract["id"]))
|
|
14522
|
-
errors.push(this.chargy.
|
|
14547
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_IdP", measurementCounter)));
|
|
14523
14548
|
if (!isMandatoryString(contract["type"]))
|
|
14524
|
-
errors.push(this.chargy.
|
|
14549
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_TypeP", measurementCounter)));
|
|
14525
14550
|
if (!isMandatoryNumber(contract["timestamp"]))
|
|
14526
|
-
errors.push(this.chargy.
|
|
14551
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_TimestampP", measurementCounter)));
|
|
14527
14552
|
const timestampLocal = contract["timestampLocal"];
|
|
14528
14553
|
if (!isMandatoryJSONObject(timestampLocal)) {
|
|
14529
|
-
errors.push(this.chargy.
|
|
14554
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_TimestampLocalP", measurementCounter)));
|
|
14530
14555
|
secondaryErrors += 3;
|
|
14531
14556
|
} else {
|
|
14532
14557
|
if (!isMandatoryNumber(timestampLocal["timestamp"]))
|
|
14533
|
-
errors.push(this.chargy.
|
|
14558
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_TimestampLocal_TimestampP", measurementCounter)));
|
|
14534
14559
|
if (!isMandatoryNumber(timestampLocal["localOffset"]))
|
|
14535
|
-
errors.push(this.chargy.
|
|
14560
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_TimestampLocal_LocalOffsetP", measurementCounter)));
|
|
14536
14561
|
if (!isMandatoryNumber(timestampLocal["seasonOffset"]))
|
|
14537
|
-
errors.push(this.chargy.
|
|
14562
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Contract_TimestampLocal_SeasonOffsetP", measurementCounter)));
|
|
14538
14563
|
}
|
|
14539
14564
|
}
|
|
14540
14565
|
const measuredValue = signedMeterValue["measuredValue"];
|
|
14541
14566
|
if (!isMandatoryJSONObject(measuredValue)) {
|
|
14542
|
-
errors.push(this.chargy.
|
|
14567
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasuredValueP", measurementCounter)));
|
|
14543
14568
|
secondaryErrors += 9;
|
|
14544
14569
|
} else {
|
|
14545
14570
|
if (!isMandatoryString(measuredValue["value"]))
|
|
14546
|
-
errors.push(this.chargy.
|
|
14571
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasuredValue_ValueP", measurementCounter)));
|
|
14547
14572
|
if (!isMandatoryString(measuredValue["unit"]))
|
|
14548
|
-
errors.push(this.chargy.
|
|
14573
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasuredValue_UnitP", measurementCounter)));
|
|
14549
14574
|
if (!isMandatoryNumber(measuredValue["scale"]))
|
|
14550
|
-
errors.push(this.chargy.
|
|
14575
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasuredValue_ScaleP", measurementCounter)));
|
|
14551
14576
|
if (!isMandatoryString(measuredValue["valueType"]))
|
|
14552
|
-
errors.push(this.chargy.
|
|
14577
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasuredValue_ValueTypeP", measurementCounter)));
|
|
14553
14578
|
if (!isMandatoryNumber(measuredValue["unitEncoded"]))
|
|
14554
|
-
errors.push(this.chargy.
|
|
14579
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasuredValue_UnitEncodedP", measurementCounter)));
|
|
14555
14580
|
const timestampLocal = measuredValue["timestampLocal"];
|
|
14556
14581
|
if (!isMandatoryJSONObject(timestampLocal)) {
|
|
14557
|
-
errors.push(this.chargy.
|
|
14582
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalidMeasuredValueTimestampLocalP", measurementCounter)));
|
|
14558
14583
|
secondaryErrors += 3;
|
|
14559
14584
|
} else {
|
|
14560
14585
|
if (!isMandatoryNumber(timestampLocal["timestamp"]))
|
|
14561
|
-
errors.push(this.chargy.
|
|
14586
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalidMeasuredValueTimestampLocalTimestampP", measurementCounter)));
|
|
14562
14587
|
if (!isMandatoryNumber(timestampLocal["localOffset"]))
|
|
14563
|
-
errors.push(this.chargy.
|
|
14588
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalidMeasuredValueTimestampLocalOffsetP", measurementCounter)));
|
|
14564
14589
|
if (!isMandatoryNumber(timestampLocal["seasonOffset"]))
|
|
14565
|
-
errors.push(this.chargy.
|
|
14590
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalidMeasuredValueTimestampSeasonOffsetP", measurementCounter)));
|
|
14566
14591
|
}
|
|
14567
14592
|
}
|
|
14568
14593
|
const measurand = signedMeterValue["measurand"];
|
|
14569
14594
|
if (!isMandatoryJSONObject(measurand)) {
|
|
14570
|
-
errors.push(this.chargy.
|
|
14595
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeasurandP", measurementCounter)));
|
|
14571
14596
|
secondaryErrors += 2;
|
|
14572
14597
|
} else {
|
|
14573
14598
|
if (!isMandatoryString(measurand["id"]))
|
|
14574
|
-
errors.push(this.chargy.
|
|
14599
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Measurand_IdP", measurementCounter)));
|
|
14575
14600
|
if (!isMandatoryString(measurand["name"]))
|
|
14576
|
-
errors.push(this.chargy.
|
|
14601
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_Measurand_NameP", measurementCounter)));
|
|
14577
14602
|
}
|
|
14578
14603
|
const additionalInfo = signedMeterValue["additionalInfo"];
|
|
14579
14604
|
if (!isMandatoryJSONObject(additionalInfo)) {
|
|
14580
|
-
errors.push(this.chargy.
|
|
14605
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_AdditionalInformationP", measurementCounter)));
|
|
14581
14606
|
secondaryErrors += 4;
|
|
14582
14607
|
} else {
|
|
14583
14608
|
if (!isMandatoryString(additionalInfo["status"]))
|
|
14584
|
-
errors.push(this.chargy.
|
|
14609
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_AdditionalInformation_StatusP", measurementCounter)));
|
|
14585
14610
|
const indexes = additionalInfo["indexes"];
|
|
14586
14611
|
if (!isMandatoryJSONObject(indexes)) {
|
|
14587
|
-
errors.push(this.chargy.
|
|
14612
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_AdditionalInformation_IndexesP", measurementCounter)));
|
|
14588
14613
|
secondaryErrors += 2;
|
|
14589
14614
|
} else {
|
|
14590
14615
|
if (!isMandatoryNumber(indexes["timer"]))
|
|
14591
|
-
errors.push(this.chargy.
|
|
14616
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_AdditionalInformation_Indexes_TimerP", measurementCounter)));
|
|
14592
14617
|
if (!isMandatoryString(indexes["logBook"]))
|
|
14593
|
-
errors.push(this.chargy.
|
|
14618
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_AdditionalInformation_Indexes_LogBookP", measurementCounter)));
|
|
14594
14619
|
}
|
|
14595
14620
|
}
|
|
14596
14621
|
const chargePoint = signedMeterValue["chargePoint"];
|
|
14597
14622
|
if (!isMandatoryJSONObject(chargePoint)) {
|
|
14598
|
-
errors.push(this.chargy.
|
|
14623
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_ChargePointInformationP", measurementCounter)));
|
|
14599
14624
|
secondaryErrors += 1;
|
|
14600
14625
|
} else {
|
|
14601
14626
|
if (!isMandatoryString(chargePoint["softwareVersion"]))
|
|
14602
|
-
errors.push(this.chargy.
|
|
14627
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_ChargePointInformation_SoftwareVersionP", measurementCounter)));
|
|
14603
14628
|
}
|
|
14604
14629
|
}
|
|
14605
14630
|
}
|
|
@@ -14777,7 +14802,7 @@ var ChargeIT = class {
|
|
|
14777
14802
|
} catch (exception) {
|
|
14778
14803
|
return {
|
|
14779
14804
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14780
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
14805
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
14781
14806
|
errors,
|
|
14782
14807
|
warnings,
|
|
14783
14808
|
certainty: (numberOfFormatChecks - errors.length - secondaryErrors) / numberOfFormatChecks
|
|
@@ -14850,101 +14875,101 @@ var ChargeIT = class {
|
|
|
14850
14875
|
const totalCosts_flat_cost = totalCosts_flat?.["cost"];
|
|
14851
14876
|
const signedMeterValues = SomeJSON["signedMeterValues"];
|
|
14852
14877
|
if (!isMandatoryString(chargingSessionId))
|
|
14853
|
-
errors.push(this.chargy.
|
|
14878
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid charge transparency record identification!")));
|
|
14854
14879
|
if (!isMandatoryJSONObject(chargePointInfo)) {
|
|
14855
|
-
errors.push(this.chargy.
|
|
14880
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidChargePointInfo")));
|
|
14856
14881
|
secondaryErrors += 19;
|
|
14857
14882
|
} else {
|
|
14858
14883
|
if (!isMandatoryString(evseId))
|
|
14859
|
-
errors.push(this.chargy.
|
|
14884
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidEVSEIdentification")));
|
|
14860
14885
|
if (!isMandatoryJSONObject(placeInfo)) {
|
|
14861
|
-
errors.push(this.chargy.
|
|
14886
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidPlaceInfo")));
|
|
14862
14887
|
secondaryErrors += 8;
|
|
14863
14888
|
} else {
|
|
14864
14889
|
if (!isMandatoryJSONObject(geoLocation)) {
|
|
14865
|
-
errors.push(this.chargy.
|
|
14890
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocation")));
|
|
14866
14891
|
secondaryErrors += 2;
|
|
14867
14892
|
} else {
|
|
14868
14893
|
if (!isMandatoryNumber(geoLocation_lat))
|
|
14869
|
-
errors.push(this.chargy.
|
|
14894
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocationLatitude")));
|
|
14870
14895
|
if (!isMandatoryNumber(geoLocation_lon))
|
|
14871
|
-
errors.push(this.chargy.
|
|
14896
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidGeoLocationLongitude")));
|
|
14872
14897
|
}
|
|
14873
14898
|
if (!isMandatoryJSONObject(address)) {
|
|
14874
|
-
errors.push(this.chargy.
|
|
14899
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddress")));
|
|
14875
14900
|
secondaryErrors += 4;
|
|
14876
14901
|
} else {
|
|
14877
14902
|
if (!isMandatoryString(address_street))
|
|
14878
|
-
errors.push(this.chargy.
|
|
14903
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressStreetName")));
|
|
14879
14904
|
if (!isMandatoryString(address_zipCode))
|
|
14880
|
-
errors.push(this.chargy.
|
|
14905
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressZIPCode")));
|
|
14881
14906
|
if (!isMandatoryString(address_town))
|
|
14882
|
-
errors.push(this.chargy.
|
|
14907
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressCityName")));
|
|
14883
14908
|
if (!isMandatoryString(address_country))
|
|
14884
|
-
errors.push(this.chargy.
|
|
14909
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidAddressCountryName")));
|
|
14885
14910
|
}
|
|
14886
14911
|
}
|
|
14887
14912
|
}
|
|
14888
14913
|
if (!isMandatoryJSONObject(chargingStationInfo)) {
|
|
14889
|
-
errors.push(this.chargy.
|
|
14914
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidChargingStationInfo")));
|
|
14890
14915
|
secondaryErrors += 5;
|
|
14891
14916
|
} else {
|
|
14892
14917
|
if (!isOptionalString(chargingStation_manufacturer))
|
|
14893
|
-
errors.push(this.chargy.
|
|
14918
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station manufacturer!")));
|
|
14894
14919
|
if (!isOptionalString(chargingStation_type))
|
|
14895
|
-
errors.push(this.chargy.
|
|
14920
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station type!")));
|
|
14896
14921
|
if (!isOptionalString(chargingStation_serialNumber))
|
|
14897
|
-
errors.push(this.chargy.
|
|
14922
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station serial number!")));
|
|
14898
14923
|
if (!isOptionalString(chargingStation_controllerSoftwareVersion))
|
|
14899
|
-
errors.push(this.chargy.
|
|
14924
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station controller software version!")));
|
|
14900
14925
|
if (!isOptionalString(chargingStation_compliance))
|
|
14901
|
-
errors.push(this.chargy.
|
|
14926
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station compliance!")));
|
|
14902
14927
|
if (!isOptionalURL(chargingStation_complianceURL))
|
|
14903
|
-
errors.push(this.chargy.
|
|
14928
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station compliance URL!")));
|
|
14904
14929
|
if (!isOptionalString(chargingStation_conformity))
|
|
14905
|
-
errors.push(this.chargy.
|
|
14930
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station conformity!")));
|
|
14906
14931
|
if (!isOptionalURL(chargingStation_conformity_URL))
|
|
14907
|
-
errors.push(this.chargy.
|
|
14932
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station conformity URL!")));
|
|
14908
14933
|
if (!isOptionalURL(chargingStation_conformity_certificateId))
|
|
14909
|
-
errors.push(this.chargy.
|
|
14934
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station conformity certificate identification!")));
|
|
14910
14935
|
if (!isOptionalString(chargingStation_calibration))
|
|
14911
|
-
errors.push(this.chargy.
|
|
14936
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station calibration!")));
|
|
14912
14937
|
if (!isOptionalURL(chargingStation_calibration_URL))
|
|
14913
|
-
errors.push(this.chargy.
|
|
14938
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station calibration URL!")));
|
|
14914
14939
|
if (!isOptionalURL(chargingStation_calibration_certificateId))
|
|
14915
|
-
errors.push(this.chargy.
|
|
14940
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Invalid charging station calibration certificate identification!")));
|
|
14916
14941
|
}
|
|
14917
14942
|
if (meterInfo) {
|
|
14918
14943
|
if (!isOptionalString(meterInfo_meterId))
|
|
14919
|
-
errors.push(this.chargy.
|
|
14944
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_MeterIdP", 1)));
|
|
14920
14945
|
if (!isOptionalString(meterInfo_manufacturer))
|
|
14921
|
-
errors.push(this.chargy.
|
|
14946
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
14922
14947
|
if (!isOptionalString(meterInfo_manufacturerURL))
|
|
14923
|
-
errors.push(this.chargy.
|
|
14948
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
14924
14949
|
if (!isOptionalString(meterInfo_model))
|
|
14925
|
-
errors.push(this.chargy.
|
|
14950
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
14926
14951
|
if (!isOptionalString(meterInfo_modelURL))
|
|
14927
|
-
errors.push(this.chargy.
|
|
14952
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_ManufacturerP", 1)));
|
|
14928
14953
|
if (!isOptionalString(meterInfo_firmwareVersion))
|
|
14929
|
-
errors.push(this.chargy.
|
|
14954
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_FirmwareVersionP", 1)));
|
|
14930
14955
|
if (!isOptionalString(meterInfo_hardwareVersion))
|
|
14931
|
-
errors.push(this.chargy.
|
|
14956
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_FirmwareVersionP", 1)));
|
|
14932
14957
|
if (!isOptionalString(meterInfo_publicKey))
|
|
14933
|
-
errors.push(this.chargy.
|
|
14958
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
14934
14959
|
if (!isOptionalString(meterInfo_publicKeyFormat))
|
|
14935
|
-
errors.push(this.chargy.
|
|
14960
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
14936
14961
|
if (!isOptionalString(meterInfo_publicKeyEncoding))
|
|
14937
|
-
errors.push(this.chargy.
|
|
14962
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
14938
14963
|
if (!isOptionalString(meterInfo_signatureFormat))
|
|
14939
|
-
errors.push(this.chargy.
|
|
14964
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
14940
14965
|
if (!isOptionalString(meterInfo_signatureEncoding))
|
|
14941
|
-
errors.push(this.chargy.
|
|
14966
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_PublicKeyP", 1)));
|
|
14942
14967
|
}
|
|
14943
14968
|
if (connectorInfo) {
|
|
14944
14969
|
if (!isOptionalString(connectorInfo_type))
|
|
14945
|
-
errors.push(this.chargy.
|
|
14970
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_MeterIdP", 1)));
|
|
14946
14971
|
if (!isOptionalString(connectorInfo_losses))
|
|
14947
|
-
errors.push(this.chargy.
|
|
14972
|
+
errors.push(CreateError(this.chargy.GetMultilanguageTextWithParameter("MissingOrInvalid_SignedMeterValue_MeterInfo_MeterIdP", 1)));
|
|
14948
14973
|
}
|
|
14949
14974
|
if (isMandatoryJSONArray(chargingTariffs)) {
|
|
14950
14975
|
for (let i = 0; i < chargingTariffs.length; i++) {
|
|
@@ -14952,40 +14977,40 @@ var ChargeIT = class {
|
|
|
14952
14977
|
}
|
|
14953
14978
|
if (totalCosts) {
|
|
14954
14979
|
if (!isMandatoryNumber(totalCosts_total))
|
|
14955
|
-
errors.push(this.chargy.
|
|
14980
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid total costs within the charging costs!")));
|
|
14956
14981
|
if (!isMandatoryString(totalCosts_currency))
|
|
14957
|
-
errors.push(this.chargy.
|
|
14982
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid currency within the charging costs!")));
|
|
14958
14983
|
if (totalCosts_reservation) {
|
|
14959
14984
|
if (!isMandatoryNumber(totalCosts_reservation_cost))
|
|
14960
|
-
errors.push(this.chargy.
|
|
14985
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid reservation cost within the charging costs!")));
|
|
14961
14986
|
if (!isMandatoryString(totalCosts_reservation_unit))
|
|
14962
|
-
errors.push(this.chargy.
|
|
14987
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid reservation unit within the charging costs!")));
|
|
14963
14988
|
}
|
|
14964
14989
|
if (totalCosts_energy) {
|
|
14965
14990
|
if (!isMandatoryNumber(totalCosts_energy_cost))
|
|
14966
|
-
errors.push(this.chargy.
|
|
14991
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid energy cost within the charging costs!")));
|
|
14967
14992
|
if (!isMandatoryString(totalCosts_energy_unit))
|
|
14968
|
-
errors.push(this.chargy.
|
|
14993
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid energy unit within the charging costs!")));
|
|
14969
14994
|
}
|
|
14970
14995
|
if (totalCosts_time) {
|
|
14971
14996
|
if (!isMandatoryNumber(totalCosts_time_cost))
|
|
14972
|
-
errors.push(this.chargy.
|
|
14997
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid time cost within the charging costs!")));
|
|
14973
14998
|
if (!isMandatoryString(totalCosts_time_unit))
|
|
14974
|
-
errors.push(this.chargy.
|
|
14999
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid time unit within the charging costs!")));
|
|
14975
15000
|
}
|
|
14976
15001
|
if (totalCosts_idle) {
|
|
14977
15002
|
if (!isMandatoryNumber(totalCosts_idle_cost))
|
|
14978
|
-
errors.push(this.chargy.
|
|
15003
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid idle cost within the charging costs!")));
|
|
14979
15004
|
if (!isMandatoryString(totalCosts_idle_unit))
|
|
14980
|
-
errors.push(this.chargy.
|
|
15005
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid idle unit within the charging costs!")));
|
|
14981
15006
|
}
|
|
14982
15007
|
if (totalCosts_flat) {
|
|
14983
15008
|
if (!isMandatoryNumber(totalCosts_flat_cost))
|
|
14984
|
-
errors.push(this.chargy.
|
|
15009
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("Missing or invalid flat cost within the charging costs!")));
|
|
14985
15010
|
}
|
|
14986
15011
|
}
|
|
14987
15012
|
if (!isMandatoryJSONArray(signedMeterValues) || signedMeterValues.length < 2) {
|
|
14988
|
-
errors.push(this.chargy.
|
|
15013
|
+
errors.push(CreateError(this.chargy.GetMultilanguageText("MissingOrInvalidSignedMeterValues")));
|
|
14989
15014
|
secondaryErrors += 2 * 39;
|
|
14990
15015
|
} else {
|
|
14991
15016
|
const firstSMV = asJSONObject(signedMeterValues[0]);
|
|
@@ -14995,7 +15020,7 @@ var ChargeIT = class {
|
|
|
14995
15020
|
const context = asString(currentSMV?.["@context"])?.trim() ?? asString(currentSMV?.["format"])?.trim() ?? null;
|
|
14996
15021
|
if (smvContext !== context) return {
|
|
14997
15022
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
14998
|
-
message: "Inconsistent signed meter value format!",
|
|
15023
|
+
message: this.chargy.GetMultilanguageText("Inconsistent signed meter value format!"),
|
|
14999
15024
|
certainty: 1
|
|
15000
15025
|
};
|
|
15001
15026
|
}
|
|
@@ -15144,7 +15169,7 @@ var ChargeIT = class {
|
|
|
15144
15169
|
} catch (exception) {
|
|
15145
15170
|
return {
|
|
15146
15171
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
15147
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
15172
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
15148
15173
|
errors,
|
|
15149
15174
|
warnings,
|
|
15150
15175
|
certainty: (numberOfFormatChecks - errors.length - secondaryErrors) / numberOfFormatChecks
|
|
@@ -15153,7 +15178,7 @@ var ChargeIT = class {
|
|
|
15153
15178
|
}
|
|
15154
15179
|
return {
|
|
15155
15180
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
15156
|
-
message: "No chargeIT charge transparency record",
|
|
15181
|
+
message: this.chargy.GetMultilanguageText("No chargeIT charge transparency record"),
|
|
15157
15182
|
errors,
|
|
15158
15183
|
warnings,
|
|
15159
15184
|
certainty: 0
|
|
@@ -15172,7 +15197,7 @@ var ChargePoint = class {
|
|
|
15172
15197
|
if (!isMandatoryJSONObject(SomeJSON))
|
|
15173
15198
|
return {
|
|
15174
15199
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
15175
|
-
message: this.chargy.
|
|
15200
|
+
message: this.chargy.GetMultilanguageText("UnknownOrInvalidChargingSessionFormat"),
|
|
15176
15201
|
certainty: 0
|
|
15177
15202
|
};
|
|
15178
15203
|
if (SomeJSON["company_name"] !== void 0 && SomeJSON["display_unit"] !== void 0 && //SomeJSON["energy"] !== undefined &&
|
|
@@ -15495,13 +15520,13 @@ var ChargePoint = class {
|
|
|
15495
15520
|
} catch (exception) {
|
|
15496
15521
|
return {
|
|
15497
15522
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
15498
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
15523
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
15499
15524
|
certainty: 0
|
|
15500
15525
|
};
|
|
15501
15526
|
}
|
|
15502
15527
|
return {
|
|
15503
15528
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
15504
|
-
message: this.chargy.
|
|
15529
|
+
message: this.chargy.GetMultilanguageText("UnknownOrInvalidChargingSessionFormat"),
|
|
15505
15530
|
certainty: 0
|
|
15506
15531
|
};
|
|
15507
15532
|
}
|
|
@@ -15524,7 +15549,7 @@ var ChargePointCrypt01 = class extends ACrypt {
|
|
|
15524
15549
|
if (chargingSession.ctr === void 0) {
|
|
15525
15550
|
return {
|
|
15526
15551
|
status: "InvalidSignature" /* InvalidSignature */,
|
|
15527
|
-
message: this.chargy.
|
|
15552
|
+
message: this.chargy.GetMultilanguageText("InvalidSignature"),
|
|
15528
15553
|
certainty: 0
|
|
15529
15554
|
};
|
|
15530
15555
|
}
|
|
@@ -15560,7 +15585,7 @@ var ChargePointCrypt01 = class extends ACrypt {
|
|
|
15560
15585
|
if (publicKeys.length == 0)
|
|
15561
15586
|
return {
|
|
15562
15587
|
status: "PublicKeyNotFound" /* PublicKeyNotFound */,
|
|
15563
|
-
message: this.chargy.
|
|
15588
|
+
message: this.chargy.GetMultilanguageText("Public key notFound"),
|
|
15564
15589
|
certainty: 0
|
|
15565
15590
|
};
|
|
15566
15591
|
if (plainText !== "" && chargingSession.signature != null && chargingSession.signature !== "") {
|
|
@@ -15635,7 +15660,7 @@ var ChargePointCrypt01 = class extends ACrypt {
|
|
|
15635
15660
|
if (measurementValue.result?.status !== "ValidSignature" /* ValidSignature */ && measurementValue.result?.status !== "NoOperation" /* NoOperation */) {
|
|
15636
15661
|
return {
|
|
15637
15662
|
status: "InvalidSignature" /* InvalidSignature */,
|
|
15638
|
-
message: this.chargy.
|
|
15663
|
+
message: this.chargy.GetMultilanguageText("InvalidSignature"),
|
|
15639
15664
|
certainty: 0
|
|
15640
15665
|
};
|
|
15641
15666
|
}
|
|
@@ -15692,7 +15717,7 @@ var ChargePointCrypt01 = class extends ACrypt {
|
|
|
15692
15717
|
} catch (exception) {
|
|
15693
15718
|
return {
|
|
15694
15719
|
status: "InvalidSignature" /* InvalidSignature */,
|
|
15695
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
15720
|
+
message: this.chargy.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
15696
15721
|
certainty: 0
|
|
15697
15722
|
};
|
|
15698
15723
|
}
|
|
@@ -16124,7 +16149,7 @@ var validationRules_default = {
|
|
|
16124
16149
|
var Chargy = class {
|
|
16125
16150
|
//#region Data
|
|
16126
16151
|
i18n;
|
|
16127
|
-
|
|
16152
|
+
uiLanguages;
|
|
16128
16153
|
elliptic;
|
|
16129
16154
|
moment;
|
|
16130
16155
|
asn1;
|
|
@@ -16142,9 +16167,9 @@ var Chargy = class {
|
|
|
16142
16167
|
currentCTR = {};
|
|
16143
16168
|
internalCTR = {};
|
|
16144
16169
|
//#endregion
|
|
16145
|
-
constructor(i18n,
|
|
16170
|
+
constructor(i18n, UILanguages, elliptic, moment2, asn1, base32Decode, ShowPKIDetails, validationRules = validationRules_default) {
|
|
16146
16171
|
this.i18n = i18n;
|
|
16147
|
-
this.
|
|
16172
|
+
this.uiLanguages = this.NormalizeUILanguages(UILanguages);
|
|
16148
16173
|
this.elliptic = elliptic;
|
|
16149
16174
|
this.moment = moment2;
|
|
16150
16175
|
this.asn1 = asn1;
|
|
@@ -16152,8 +16177,38 @@ var Chargy = class {
|
|
|
16152
16177
|
this.showPKIDetails = ShowPKIDetails;
|
|
16153
16178
|
this.validationRules = validationRules;
|
|
16154
16179
|
}
|
|
16155
|
-
|
|
16156
|
-
this.
|
|
16180
|
+
SetUILanguages(UILanguages) {
|
|
16181
|
+
this.uiLanguages = this.NormalizeUILanguages(UILanguages);
|
|
16182
|
+
}
|
|
16183
|
+
NormalizeUILanguages(UILanguages) {
|
|
16184
|
+
const languages = new Array();
|
|
16185
|
+
for (const language of UILanguages) {
|
|
16186
|
+
const normalized = language.trim();
|
|
16187
|
+
if (normalized.length > 0 && !languages.includes(normalized)) {
|
|
16188
|
+
languages.push(normalized);
|
|
16189
|
+
}
|
|
16190
|
+
}
|
|
16191
|
+
return languages.length > 0 ? languages : ["en"];
|
|
16192
|
+
}
|
|
16193
|
+
FindBestMultilanguageText(Text) {
|
|
16194
|
+
for (const language of this.uiLanguages) {
|
|
16195
|
+
const localLanguage = Text[language];
|
|
16196
|
+
if (localLanguage !== void 0)
|
|
16197
|
+
return localLanguage;
|
|
16198
|
+
}
|
|
16199
|
+
const english = Text["en"];
|
|
16200
|
+
if (english !== void 0)
|
|
16201
|
+
return english;
|
|
16202
|
+
return Object.values(Text).find((value) => value !== void 0);
|
|
16203
|
+
}
|
|
16204
|
+
CompleteMultilanguageText(Text, fallbackText) {
|
|
16205
|
+
const result = {
|
|
16206
|
+
...Text ?? {}
|
|
16207
|
+
};
|
|
16208
|
+
const fallback = this.FindBestMultilanguageText(result) ?? fallbackText;
|
|
16209
|
+
for (const language of this.uiLanguages)
|
|
16210
|
+
result[language] ??= fallback;
|
|
16211
|
+
return result;
|
|
16157
16212
|
}
|
|
16158
16213
|
PublicKeyIdFromFileName(fileName) {
|
|
16159
16214
|
return (fileName.indexOf(".") > -1 ? fileName.substring(0, fileName.indexOf(".")) : fileName).replace(/[-_]?public[-_]?key/i, "");
|
|
@@ -16332,27 +16387,36 @@ var Chargy = class {
|
|
|
16332
16387
|
GetLocalizedMessage(Text) {
|
|
16333
16388
|
const multiLanguage = this.i18n[Text];
|
|
16334
16389
|
if (multiLanguage !== void 0) {
|
|
16335
|
-
const
|
|
16336
|
-
if (
|
|
16337
|
-
return
|
|
16338
|
-
const english = multiLanguage["en"];
|
|
16339
|
-
if (english !== void 0)
|
|
16340
|
-
return english;
|
|
16390
|
+
const localizedMessage = this.FindBestMultilanguageText(multiLanguage);
|
|
16391
|
+
if (localizedMessage !== void 0)
|
|
16392
|
+
return localizedMessage;
|
|
16341
16393
|
}
|
|
16342
16394
|
return Text;
|
|
16343
16395
|
}
|
|
16396
|
+
GetMultilanguageText(Text) {
|
|
16397
|
+
const multiLanguage = this.i18n[Text];
|
|
16398
|
+
return this.CompleteMultilanguageText(multiLanguage, Text);
|
|
16399
|
+
}
|
|
16344
16400
|
GetLocalizedMessageWithParameter(Text, Parameter) {
|
|
16345
16401
|
const multiLanguage = this.i18n[Text];
|
|
16346
16402
|
if (multiLanguage !== void 0) {
|
|
16347
|
-
const
|
|
16348
|
-
if (
|
|
16349
|
-
return
|
|
16350
|
-
const english = multiLanguage["en"];
|
|
16351
|
-
if (english !== void 0)
|
|
16352
|
-
return english.replace("%p", String(Parameter));
|
|
16403
|
+
const localizedMessage = this.FindBestMultilanguageText(multiLanguage);
|
|
16404
|
+
if (localizedMessage !== void 0)
|
|
16405
|
+
return localizedMessage.replace("%p", String(Parameter));
|
|
16353
16406
|
}
|
|
16354
16407
|
return Text.replace("%p", String(Parameter));
|
|
16355
16408
|
}
|
|
16409
|
+
GetMultilanguageTextWithParameter(Text, Parameter) {
|
|
16410
|
+
const multiLanguage = this.i18n[Text];
|
|
16411
|
+
const parameterizedText = {};
|
|
16412
|
+
if (multiLanguage !== void 0) {
|
|
16413
|
+
for (const [language, message] of Object.entries(multiLanguage)) {
|
|
16414
|
+
if (message !== void 0)
|
|
16415
|
+
parameterizedText[language] = message.replace("%p", String(Parameter));
|
|
16416
|
+
}
|
|
16417
|
+
}
|
|
16418
|
+
return this.CompleteMultilanguageText(parameterizedText, Text.replace("%p", String(Parameter)));
|
|
16419
|
+
}
|
|
16356
16420
|
//#endregion
|
|
16357
16421
|
//#region GetDevices...
|
|
16358
16422
|
GetChargingPool = (Id) => {
|
|
@@ -16724,7 +16788,7 @@ var Chargy = class {
|
|
|
16724
16788
|
async DetectAndConvertContentFormat(FileInfos) {
|
|
16725
16789
|
if (FileInfos.length == 0) return {
|
|
16726
16790
|
status: "NoChargeTransparencyRecordsFound" /* NoChargeTransparencyRecordsFound */,
|
|
16727
|
-
message: this.
|
|
16791
|
+
message: this.GetMultilanguageText("No charge transparency records found!"),
|
|
16728
16792
|
certainty: 0
|
|
16729
16793
|
};
|
|
16730
16794
|
let expandedFiles = new Array();
|
|
@@ -16834,7 +16898,7 @@ var Chargy = class {
|
|
|
16834
16898
|
} catch (exception) {
|
|
16835
16899
|
processedFile.result = {
|
|
16836
16900
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
16837
|
-
message: this.
|
|
16901
|
+
message: this.GetMultilanguageText("UnknownOrInvalidXMLChargeTransparencyFormat"),
|
|
16838
16902
|
exception,
|
|
16839
16903
|
certainty: 0
|
|
16840
16904
|
};
|
|
@@ -16874,7 +16938,7 @@ var Chargy = class {
|
|
|
16874
16938
|
} catch (exception) {
|
|
16875
16939
|
processedFile.result = {
|
|
16876
16940
|
status: "InvalidPublicKey" /* InvalidPublicKey */,
|
|
16877
|
-
message: this.
|
|
16941
|
+
message: this.GetMultilanguageText("UnknownOrInvalidPublicKeyFormat"),
|
|
16878
16942
|
exception,
|
|
16879
16943
|
certainty: 0
|
|
16880
16944
|
};
|
|
@@ -16888,7 +16952,7 @@ var Chargy = class {
|
|
|
16888
16952
|
} catch (exception) {
|
|
16889
16953
|
processedFile.result = {
|
|
16890
16954
|
status: "InvalidPublicKey" /* InvalidPublicKey */,
|
|
16891
|
-
message: this.
|
|
16955
|
+
message: this.GetMultilanguageText("UnknownOrInvalidPublicKeyFormat"),
|
|
16892
16956
|
exception,
|
|
16893
16957
|
certainty: 0
|
|
16894
16958
|
};
|
|
@@ -16937,7 +17001,7 @@ var Chargy = class {
|
|
|
16937
17001
|
} catch (exception) {
|
|
16938
17002
|
processedFile.result = {
|
|
16939
17003
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
16940
|
-
message: this.
|
|
17004
|
+
message: this.GetMultilanguageText("UnknownOrInvalidJSONChargeTransparencyFormat"),
|
|
16941
17005
|
exception,
|
|
16942
17006
|
certainty: 0
|
|
16943
17007
|
};
|
|
@@ -16955,14 +17019,14 @@ var Chargy = class {
|
|
|
16955
17019
|
if (IsAPublicKeyLookup(processedFile.result))
|
|
16956
17020
|
return {
|
|
16957
17021
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
16958
|
-
message: this.
|
|
17022
|
+
message: this.GetMultilanguageText("UnknownOrInvalidChargeTransparencyRecord"),
|
|
16959
17023
|
certainty: 0
|
|
16960
17024
|
};
|
|
16961
17025
|
return processedFile.result;
|
|
16962
17026
|
}
|
|
16963
17027
|
return {
|
|
16964
17028
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
16965
|
-
message: this.
|
|
17029
|
+
message: this.GetMultilanguageText("UnknownOrInvalidChargeTransparencyRecord"),
|
|
16966
17030
|
certainty: 0
|
|
16967
17031
|
};
|
|
16968
17032
|
} else if (processedFiles.length > 1) {
|
|
@@ -17036,7 +17100,7 @@ var Chargy = class {
|
|
|
17036
17100
|
}
|
|
17037
17101
|
return {
|
|
17038
17102
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
17039
|
-
message: this.
|
|
17103
|
+
message: this.GetMultilanguageText("No charge transparency records found!"),
|
|
17040
17104
|
certainty: 0
|
|
17041
17105
|
};
|
|
17042
17106
|
}
|
|
@@ -17046,7 +17110,7 @@ var Chargy = class {
|
|
|
17046
17110
|
if (!IsAChargeTransparencyRecord(CTR))
|
|
17047
17111
|
return {
|
|
17048
17112
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
17049
|
-
message: this.
|
|
17113
|
+
message: this.GetMultilanguageText("UnknownOrInvalidJSONChargeTransparencyFormat"),
|
|
17050
17114
|
certainty: 0
|
|
17051
17115
|
};
|
|
17052
17116
|
this.chargingStationOperators = [];
|
|
@@ -17171,7 +17235,7 @@ var Chargy = class {
|
|
|
17171
17235
|
} catch (exception) {
|
|
17172
17236
|
return {
|
|
17173
17237
|
status: "InvalidSessionFormat" /* InvalidSessionFormat */,
|
|
17174
|
-
message: "Exception occured: " + (exception instanceof Error ? exception.message : String(exception)),
|
|
17238
|
+
message: this.GetMultilanguageText("Exception occured: " + (exception instanceof Error ? exception.message : String(exception))),
|
|
17175
17239
|
certainty: 0
|
|
17176
17240
|
};
|
|
17177
17241
|
}
|
|
@@ -17302,7 +17366,7 @@ var Chargy = class {
|
|
|
17302
17366
|
default:
|
|
17303
17367
|
verificationResult2 = {
|
|
17304
17368
|
status: "UnknownSessionFormat" /* UnknownSessionFormat */,
|
|
17305
|
-
message: this.
|
|
17369
|
+
message: this.GetMultilanguageText("UnknownOrInvalidChargingSessionFormat"),
|
|
17306
17370
|
certainty: 0
|
|
17307
17371
|
};
|
|
17308
17372
|
break;
|
|
@@ -17312,7 +17376,7 @@ var Chargy = class {
|
|
|
17312
17376
|
chargingSession.ctr,
|
|
17313
17377
|
{
|
|
17314
17378
|
level: this.getChargingSessionTotalEnergyWarningLevel(),
|
|
17315
|
-
message: this.
|
|
17379
|
+
message: this.GetMultilanguageText("InplausibleTotalEnergyMeasurementWarning")
|
|
17316
17380
|
}
|
|
17317
17381
|
);
|
|
17318
17382
|
return {
|
|
@@ -17378,7 +17442,7 @@ var Chargy = class {
|
|
|
17378
17442
|
};
|
|
17379
17443
|
|
|
17380
17444
|
// src/verificationResults.ts
|
|
17381
|
-
function toSessionVerificationResults(CTR, noRecordsMessage = "No charge transparency records found!") {
|
|
17445
|
+
function toSessionVerificationResults(CTR, noRecordsMessage = { "en": "No charge transparency records found!" }) {
|
|
17382
17446
|
const verificationResults = (CTR.chargingSessions ?? []).map((session) => session.verificationResult).filter(isISessionCryptoResult1);
|
|
17383
17447
|
if (verificationResults.length > 0)
|
|
17384
17448
|
return verificationResults;
|
|
@@ -17389,6 +17453,6 @@ function toSessionVerificationResults(CTR, noRecordsMessage = "No charge transpa
|
|
|
17389
17453
|
};
|
|
17390
17454
|
}
|
|
17391
17455
|
|
|
17392
|
-
export { ACrypt, Alfen, AlfenCrypt01, BSMCrypt01, CanonicalJSONError, ChargeIT, ChargePoint, ChargePointCrypt01, IChargeTransparencyLiveLink_exports as ChargeTransparencyLiveLink, ChargeTransparencyLiveLinkContext, IChargeTransparencyRecord_exports as ChargeTransparencyRecord, Chargy, chargyInterfaces_exports as ChargyInterfaces, Clone, CloneCTR, ConcatenateBuffers, CreateDiv, CreateDiv2, CryptoAlgorithms, CryptoHashAlgorithms, DayOfWeek, DisplayPrefixes, EMHCrypt01, GDFCrypt01, IECCurves, IEncoding, InformationRelevance, InformationRelevanceToString, IsAChargeTransparencyLiveLink, IsAChargeTransparencyRecord, IsAPublicKeyInfo, IsAPublicKeyLookup, IsASessionCryptoResult, IsNullOrEmpty, JSONSignatureVerificationStatus, MENNEKES_EDL40_OBIS, MENNEKES_EDL40_XMLNS, Mennekes, MennekesCrypt01, OBIS2Hex, OBIS2MeasurementName, OBIS_RegExpr, OCMF, OCMFTransactionTypes, OCMFv1_x, OCPI, PCDF, PCDFCrypt01, PCDFParseError, PCDFValidationError, PCDF_FIELD_ORDER, PCDF_PREFIX, ParseJSON_LD, PublicKeyFormats, IPublicKeyInfo_exports as PublicKeyInfo, SAFEXML, SessionVerificationResult, SetHex, SetInt8, SetText, SetText_withLength, SetTimestamp, SetTimestamp32, SetUInt32, SetUInt32_withCode, SetUInt64, SetUInt64D, SignMessage, SignatureFormats, TimeStatusTypes, UTC2human, VerificationResult, VerifyJSONMessageSignatures, WarningLevel, WhenNullOrEmpty, XMLContainer, asJSONArray, asJSONObject, asNumber, asString, buf2hex, buildMennekesSignatureData, bytesToHex2 as bytesToHex, canonicalJSONBytes, canonicalJSONStringify, cleanHex, closeFullscreen, createHexString, dateToMennekesLocalEpochSeconds, extractMennekesChargingProcesses, firstKey, firstValue, getDirectChildByLocalName, getDirectChildrenByLocalName, getElementsByLocalName, getInt16Bytes, getInt32Bytes, getInt64Bytes, getInt8Bytes, getTrimmedTextContent, hashFile, hex2bin, hex32, hexToArrayBuffer, hexToBytes, intFromBytes, isGeoLocation, isICryptoResult, isIFileInfo, isIPublicKeyXY, isISessionCryptoResult1, isISessionCryptoResult2, isJSONLDObject, isMandatoryArrayOfStrings, isMandatoryBoolean, isMandatoryDecimal, isMandatoryJSONArray, isMandatoryJSONObject, isMandatoryNumber, isMandatoryString, isMandatoryURL, isMultilanguageText, isOIDInfo, isObject, isOptionalArrayOfStrings, isOptionalDecimal, isOptionalJSONArray, isOptionalJSONArrayError, isOptionalJSONArrayOk, isOptionalJSONObject, isOptionalNumber, isOptionalString, isOptionalURL, isPCDFText, isString, isStringArray, isStringOrOIDInfo, isStringOrStringArray, jsonPrettyPrinter, measurementName2human, normalizePCDFPublicKeyHex, normalizeXMLText, openFullscreen, pad, parseAndVerifyJSONSignatures, parseDescription, parseHexString, parseMennekesXMLDocument, parseNumber, parseOBIS, parsePCDFDocument, parsePCDFPublicKey, parsePCDFSignature, parseUTC, readQRCodeTextFromImage, readQRCodeTextFromImageData, secp224k1, setUILocale, sha256, sha384, sha512, signJSONMessage, signMessage, stripPCDFControlCharacters, time2human, toArrayBuffer, toSessionVerificationResults, toUint8Array, unquotePCDFText, validatePCDFFields, verifyJSONMessageSignatureResults, verifyJSONMessageSignatures, verifyJSONSignature, verifyJSONSignatureResult, verifyPCDFDocument };
|
|
17456
|
+
export { ACrypt, Alfen, AlfenCrypt01, BSMCrypt01, CanonicalJSONError, ChargeIT, ChargePoint, ChargePointCrypt01, IChargeTransparencyLiveLink_exports as ChargeTransparencyLiveLink, ChargeTransparencyLiveLinkContext, IChargeTransparencyRecord_exports as ChargeTransparencyRecord, Chargy, chargyInterfaces_exports as ChargyInterfaces, Clone, CloneCTR, ConcatenateBuffers, CreateDiv, CreateDiv2, CreateError, CryptoAlgorithms, CryptoHashAlgorithms, DayOfWeek, DisplayPrefixes, EMHCrypt01, ErrorLevel, GDFCrypt01, IECCurves, IEncoding, InformationRelevance, InformationRelevanceToString, IsAChargeTransparencyLiveLink, IsAChargeTransparencyRecord, IsAPublicKeyInfo, IsAPublicKeyLookup, IsASessionCryptoResult, IsNullOrEmpty, JSONSignatureVerificationStatus, MENNEKES_EDL40_OBIS, MENNEKES_EDL40_XMLNS, Mennekes, MennekesCrypt01, OBIS2Hex, OBIS2MeasurementName, OBIS_RegExpr, OCMF, OCMFTransactionTypes, OCMFv1_x, OCPI, PCDF, PCDFCrypt01, PCDFParseError, PCDFValidationError, PCDF_FIELD_ORDER, PCDF_PREFIX, ParseJSON_LD, PublicKeyFormats, IPublicKeyInfo_exports as PublicKeyInfo, SAFEXML, SessionVerificationResult, SetHex, SetInt8, SetText, SetText_withLength, SetTimestamp, SetTimestamp32, SetUInt32, SetUInt32_withCode, SetUInt64, SetUInt64D, SignMessage, SignatureFormats, TimeStatusTypes, UTC2human, VerificationResult, VerifyJSONMessageSignatures, WarningLevel, WhenNullOrEmpty, XMLContainer, asJSONArray, asJSONObject, asNumber, asString, buf2hex, buildMennekesSignatureData, bytesToHex2 as bytesToHex, canonicalJSONBytes, canonicalJSONStringify, cleanHex, closeFullscreen, createHexString, dateToMennekesLocalEpochSeconds, extractMennekesChargingProcesses, firstKey, firstValue, getDirectChildByLocalName, getDirectChildrenByLocalName, getElementsByLocalName, getInt16Bytes, getInt32Bytes, getInt64Bytes, getInt8Bytes, getTrimmedTextContent, hashFile, hex2bin, hex32, hexToArrayBuffer, hexToBytes, intFromBytes, isGeoLocation, isICryptoResult, isIFileInfo, isIPublicKeyXY, isISessionCryptoResult1, isISessionCryptoResult2, isJSONLDObject, isMandatoryArrayOfStrings, isMandatoryBoolean, isMandatoryDecimal, isMandatoryJSONArray, isMandatoryJSONObject, isMandatoryNumber, isMandatoryString, isMandatoryURL, isMultilanguageText, isOIDInfo, isObject, isOptionalArrayOfStrings, isOptionalDecimal, isOptionalJSONArray, isOptionalJSONArrayError, isOptionalJSONArrayOk, isOptionalJSONObject, isOptionalNumber, isOptionalString, isOptionalURL, isPCDFText, isString, isStringArray, isStringOrOIDInfo, isStringOrStringArray, jsonPrettyPrinter, measurementName2human, normalizePCDFPublicKeyHex, normalizeXMLText, openFullscreen, pad, parseAndVerifyJSONSignatures, parseDescription, parseHexString, parseMennekesXMLDocument, parseNumber, parseOBIS, parsePCDFDocument, parsePCDFPublicKey, parsePCDFSignature, parseUTC, readQRCodeTextFromImage, readQRCodeTextFromImageData, secp224k1, setUILocale, sha256, sha384, sha512, signJSONMessage, signMessage, stripPCDFControlCharacters, time2human, toArrayBuffer, toSessionVerificationResults, toUint8Array, unquotePCDFText, validatePCDFFields, verifyJSONMessageSignatureResults, verifyJSONMessageSignatures, verifyJSONSignature, verifyJSONSignatureResult, verifyPCDFDocument };
|
|
17393
17457
|
//# sourceMappingURL=index.js.map
|
|
17394
17458
|
//# sourceMappingURL=index.js.map
|