@open-charging-cloud/chargy-core 0.9.1 → 0.10.0
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/browser/index.js +66 -3
- package/dist/browser/index.js.map +1 -1
- package/dist/chargy.d.ts +6 -2
- package/dist/chargy.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/interfaces/IChargeTransparencyRecord.d.ts +2 -1
- package/dist/interfaces/IChargeTransparencyRecord.d.ts.map +1 -1
- package/dist/interfaces/IURL.d.ts +15 -0
- package/dist/interfaces/IURL.d.ts.map +1 -0
- package/dist/node/index.js +66 -3
- package/dist/node/index.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
package/dist/browser/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Decimal from 'decimal.js';
|
|
2
2
|
import moment from 'moment';
|
|
3
3
|
import { fileTypeFromBuffer } from 'file-type';
|
|
4
|
+
import isURL from 'is-url-superb';
|
|
4
5
|
import jsQR from 'jsqr';
|
|
5
6
|
import seekBzip from 'seek-bzip';
|
|
6
7
|
|
|
@@ -19391,6 +19392,26 @@ function isTOTPConfig(data) {
|
|
|
19391
19392
|
return isObject(data) && typeof data["initialSharedSecret"] === "string" && typeof data["timeStep"] === "number";
|
|
19392
19393
|
}
|
|
19393
19394
|
|
|
19395
|
+
// src/interfaces/IURL.ts
|
|
19396
|
+
var IURL_exports = {};
|
|
19397
|
+
__export(IURL_exports, {
|
|
19398
|
+
IsAURL: () => IsAURL,
|
|
19399
|
+
IsValidURL: () => IsValidURL,
|
|
19400
|
+
URLContext: () => URLContext
|
|
19401
|
+
});
|
|
19402
|
+
var URLContext = "https://open.charging.cloud/contexts/URL";
|
|
19403
|
+
function IsValidURL(value) {
|
|
19404
|
+
if (!isURL(value))
|
|
19405
|
+
return false;
|
|
19406
|
+
const protocol = new URL(value).protocol;
|
|
19407
|
+
return protocol === "http:" || protocol === "https:";
|
|
19408
|
+
}
|
|
19409
|
+
function IsAURL(data) {
|
|
19410
|
+
if (!isMandatoryJSONObject(data))
|
|
19411
|
+
return false;
|
|
19412
|
+
return data["@context"] === URLContext && typeof data["url"] === "string" && IsValidURL(data["url"]) && (data["method"] === void 0 || typeof data["method"] === "string") && (data["acceptType"] === void 0 || typeof data["acceptType"] === "string") && (data["actions"] === void 0 || Array.isArray(data["actions"]) && data["actions"].every((action) => typeof action === "string")) && (data["serviceTypes"] === void 0 || Array.isArray(data["serviceTypes"]) && data["serviceTypes"].every((serviceType) => typeof serviceType === "string")) && (data["serviceData"] === void 0 || isMandatoryJSONObject(data["serviceData"]));
|
|
19413
|
+
}
|
|
19414
|
+
|
|
19394
19415
|
// src/qrCodeReader.ts
|
|
19395
19416
|
var import_buffer = __toESM(require_buffer2());
|
|
19396
19417
|
function isRecord(value) {
|
|
@@ -19624,6 +19645,8 @@ var Chargy = class {
|
|
|
19624
19645
|
base32Decode;
|
|
19625
19646
|
showPKIDetails;
|
|
19626
19647
|
validationRules;
|
|
19648
|
+
resolveURLs;
|
|
19649
|
+
urlResolver;
|
|
19627
19650
|
chargingStationOperators = new Array();
|
|
19628
19651
|
chargingPools = new Array();
|
|
19629
19652
|
chargingStations = new Array();
|
|
@@ -19633,7 +19656,7 @@ var Chargy = class {
|
|
|
19633
19656
|
currentCTR = {};
|
|
19634
19657
|
internalCTR = {};
|
|
19635
19658
|
//#endregion
|
|
19636
|
-
constructor(i18n, UILanguages, elliptic, moment2, asn1, base32Decode, ShowPKIDetails, validationRules = validationRules_default) {
|
|
19659
|
+
constructor(i18n, UILanguages, elliptic, moment2, asn1, base32Decode, ShowPKIDetails, validationRules = validationRules_default, resolveURLs = false, urlResolver) {
|
|
19637
19660
|
this.i18n = i18n;
|
|
19638
19661
|
this.uiLanguages = this.NormalizeUILanguages(UILanguages);
|
|
19639
19662
|
this.elliptic = elliptic;
|
|
@@ -19642,6 +19665,38 @@ var Chargy = class {
|
|
|
19642
19665
|
this.base32Decode = base32Decode;
|
|
19643
19666
|
this.showPKIDetails = ShowPKIDetails;
|
|
19644
19667
|
this.validationRules = validationRules;
|
|
19668
|
+
this.resolveURLs = resolveURLs;
|
|
19669
|
+
this.urlResolver = urlResolver;
|
|
19670
|
+
}
|
|
19671
|
+
async resolveURL(url) {
|
|
19672
|
+
if (!this.resolveURLs)
|
|
19673
|
+
return url;
|
|
19674
|
+
try {
|
|
19675
|
+
if (this.urlResolver != null)
|
|
19676
|
+
return await this.urlResolver(url);
|
|
19677
|
+
const response = await fetch(url.url, {
|
|
19678
|
+
method: "GET",
|
|
19679
|
+
headers: {
|
|
19680
|
+
"Accept": "application/chargy"
|
|
19681
|
+
}
|
|
19682
|
+
});
|
|
19683
|
+
if (!response.ok)
|
|
19684
|
+
return url;
|
|
19685
|
+
const resolvedURL = { ...url };
|
|
19686
|
+
const contentType = response.headers.get("Content-Type")?.split(";")[0]?.trim().toLowerCase();
|
|
19687
|
+
if (contentType === "application/chargy")
|
|
19688
|
+
resolvedURL.serviceTypes = ["chargy"];
|
|
19689
|
+
const responseBody = await response.text();
|
|
19690
|
+
try {
|
|
19691
|
+
const serviceData = JSON.parse(responseBody);
|
|
19692
|
+
if (isMandatoryJSONObject(serviceData))
|
|
19693
|
+
resolvedURL.serviceData = serviceData;
|
|
19694
|
+
} catch {
|
|
19695
|
+
}
|
|
19696
|
+
return resolvedURL;
|
|
19697
|
+
} catch {
|
|
19698
|
+
return url;
|
|
19699
|
+
}
|
|
19645
19700
|
}
|
|
19646
19701
|
fileNameWithoutExtension(fileName) {
|
|
19647
19702
|
const lastSeparator = Math.max(fileName.lastIndexOf("/"), fileName.lastIndexOf("\\"));
|
|
@@ -20508,7 +20563,13 @@ var Chargy = class {
|
|
|
20508
20563
|
certainty: 0
|
|
20509
20564
|
};
|
|
20510
20565
|
}
|
|
20511
|
-
}
|
|
20566
|
+
} else if (IsValidURL(textContent))
|
|
20567
|
+
processedFile.result = await this.resolveURL(
|
|
20568
|
+
{
|
|
20569
|
+
"@context": URLContext,
|
|
20570
|
+
"url": textContent
|
|
20571
|
+
}
|
|
20572
|
+
);
|
|
20512
20573
|
processedFiles.push(processedFile);
|
|
20513
20574
|
}
|
|
20514
20575
|
const publicKeyLookup = this.TryToCreatePublicKeyLookup(processedFiles);
|
|
@@ -20520,6 +20581,8 @@ var Chargy = class {
|
|
|
20520
20581
|
return this.processChargeTransparencyRecord(processedFile.result);
|
|
20521
20582
|
if (IsAChargeTransparencyLiveLink(processedFile.result))
|
|
20522
20583
|
return processedFile.result;
|
|
20584
|
+
if (IsAURL(processedFile.result))
|
|
20585
|
+
return processedFile.result;
|
|
20523
20586
|
return processedFile.result;
|
|
20524
20587
|
} else if (processedFiles.length > 1) {
|
|
20525
20588
|
const mergedCTR = {
|
|
@@ -20941,6 +21004,6 @@ buffer/index.js:
|
|
|
20941
21004
|
*)
|
|
20942
21005
|
*/
|
|
20943
21006
|
|
|
20944
|
-
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, CreateWarning, CryptoAlgorithms, CryptoHashAlgorithms, DayOfWeek, DisplayPrefixes, EDL40, EDL40Crypt01, EDL40ValidationError, EDL40_OBIS, EDL40_SESSION_CONTEXT, EDL40_SIGNATURE_CONTEXT, EMHCrypt01, ErrorLevel, GDFCrypt01, IECCurves, IEncoding, InformationRelevance, InformationRelevanceToString, IsAChargeTransparencyLiveLink, IsAChargeTransparencyRecord, IsAPublicKey, IsAPublicKeyLookup, IsAPublicKeySignature, IsAPublicKeyXY, IsASessionCryptoResult, IsNullOrEmpty, JSONSignatureVerificationStatus, MENNEKES_EDL40_OBIS, MENNEKES_EDL40_XMLNS, Mennekes, MennekesCrypt01, OBIS2Hex, OBIS2MeasurementName, OBIS_RegExpr, OCMF, OCMFBonnTariffParseError, OCMFTransactionTypes, OCMFv1_x, OCPI, OIDInfo, PCDF, PCDFCrypt01, PCDFParseError, PCDFValidationError, PCDF_FIELD_ORDER, PCDF_PREFIX, PTB, 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, base64ToBytes, buf2hex, buildEDL40Signature, buildIsaSignature, buildMennekesSignatureData, bytesToBase64, bytesToHex, canParseEDL40, canonicalJSONBytes, canonicalJSONStringify, cleanHex, closeFullscreen, createHexString, dateToMennekesLocalEpochSeconds, decodeSmlMessages, extractMennekesChargingProcesses, findEntryByObis, findGetListRes, firstKey, firstValue, getArrayElement, getArrayLikeElement, getDirectChildByLocalName, getDirectChildrenByLocalName, getElementsByLocalName, getFirstArrayElement, getInt16Bytes, getInt32Bytes, getInt64Bytes, getInt8Bytes, getLastArrayElement, getTrimmedTextContent, hashFile, hex2bin, hex32, hexToArrayBuffer, hexToBytes, intFromBytes, isEncodedValue, isGeoLocation, isI18NString, isICryptoResult, isIFileInfo, isISessionCryptoResult1, isISessionCryptoResult2, isJSONLDObject, isMandatoryArrayOfStrings, isMandatoryBoolean, isMandatoryDecimal, isMandatoryJSONArray, isMandatoryJSONObject, isMandatoryNumber, isMandatoryString, isMandatoryURL, isOIDInfo, isObject, isOptionalArrayOfStrings, isOptionalDecimal, isOptionalJSONArray, isOptionalJSONArrayError, isOptionalJSONArrayOk, isOptionalJSONObject, isOptionalNumber, isOptionalString, isOptionalStringArray, isOptionalStringOrOIDInfo, isOptionalURL, isPCDFText, isPublicKeySubject, isString, isStringArray, isStringOrOIDInfo, isStringOrStringArray, isaListNameContext, jsonPrettyPrinter, measurementName2human, normalizePCDFPublicKeyHex, normalizeXMLText, ocmfBonnTariffToChargingTariff, openFullscreen, pad, parseAndVerifyJSONSignatures, parseDescription, parseEDL40, parseHexString, parseMennekesXMLDocument, parseNumber, parseOBIS, parseOCMFBonnTariffText, parsePCDFDocument, parsePCDFPublicKey, parsePCDFSignature, parseSmlTime, parseUTC, readQRCodeTextFromImage, readQRCodeTextFromImageData, readTLV, secp224k1, setUILocale, sha256, sha256____, sha384, sha384____, sha512, sha512____, signJSONMessage, signMessage, stripPCDFControlCharacters, stripTransport, time2human, toArrayBuffer, toSessionVerificationResults, toUint8Array, transformEDL40Status, tryParseOCMFBonnTariffText, unquotePCDFText, validatePCDFFields, verifyEDL40Document, verifyJSONMessageSignatureResults, verifyJSONMessageSignatures, verifyJSONSignature, verifyJSONSignatureResult, verifyPCDFDocument };
|
|
21007
|
+
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, CreateWarning, CryptoAlgorithms, CryptoHashAlgorithms, DayOfWeek, DisplayPrefixes, EDL40, EDL40Crypt01, EDL40ValidationError, EDL40_OBIS, EDL40_SESSION_CONTEXT, EDL40_SIGNATURE_CONTEXT, EMHCrypt01, ErrorLevel, GDFCrypt01, IECCurves, IEncoding, InformationRelevance, InformationRelevanceToString, IsAChargeTransparencyLiveLink, IsAChargeTransparencyRecord, IsAPublicKey, IsAPublicKeyLookup, IsAPublicKeySignature, IsAPublicKeyXY, IsASessionCryptoResult, IsAURL, IsNullOrEmpty, IsValidURL, JSONSignatureVerificationStatus, MENNEKES_EDL40_OBIS, MENNEKES_EDL40_XMLNS, Mennekes, MennekesCrypt01, OBIS2Hex, OBIS2MeasurementName, OBIS_RegExpr, OCMF, OCMFBonnTariffParseError, OCMFTransactionTypes, OCMFv1_x, OCPI, OIDInfo, PCDF, PCDFCrypt01, PCDFParseError, PCDFValidationError, PCDF_FIELD_ORDER, PCDF_PREFIX, PTB, ParseJSON_LD, PublicKeyFormats, IPublicKeyInfo_exports as PublicKeyInfo, SAFEXML, SessionVerificationResult, SetHex, SetInt8, SetText, SetText_withLength, SetTimestamp, SetTimestamp32, SetUInt32, SetUInt32_withCode, SetUInt64, SetUInt64D, SignMessage, SignatureFormats, IURL_exports as SimpleURL, TimeStatusTypes, URLContext, UTC2human, VerificationResult, VerifyJSONMessageSignatures, WarningLevel, WhenNullOrEmpty, XMLContainer, asJSONArray, asJSONObject, asNumber, asString, base64ToBytes, buf2hex, buildEDL40Signature, buildIsaSignature, buildMennekesSignatureData, bytesToBase64, bytesToHex, canParseEDL40, canonicalJSONBytes, canonicalJSONStringify, cleanHex, closeFullscreen, createHexString, dateToMennekesLocalEpochSeconds, decodeSmlMessages, extractMennekesChargingProcesses, findEntryByObis, findGetListRes, firstKey, firstValue, getArrayElement, getArrayLikeElement, getDirectChildByLocalName, getDirectChildrenByLocalName, getElementsByLocalName, getFirstArrayElement, getInt16Bytes, getInt32Bytes, getInt64Bytes, getInt8Bytes, getLastArrayElement, getTrimmedTextContent, hashFile, hex2bin, hex32, hexToArrayBuffer, hexToBytes, intFromBytes, isEncodedValue, isGeoLocation, isI18NString, isICryptoResult, isIFileInfo, isISessionCryptoResult1, isISessionCryptoResult2, isJSONLDObject, isMandatoryArrayOfStrings, isMandatoryBoolean, isMandatoryDecimal, isMandatoryJSONArray, isMandatoryJSONObject, isMandatoryNumber, isMandatoryString, isMandatoryURL, isOIDInfo, isObject, isOptionalArrayOfStrings, isOptionalDecimal, isOptionalJSONArray, isOptionalJSONArrayError, isOptionalJSONArrayOk, isOptionalJSONObject, isOptionalNumber, isOptionalString, isOptionalStringArray, isOptionalStringOrOIDInfo, isOptionalURL, isPCDFText, isPublicKeySubject, isString, isStringArray, isStringOrOIDInfo, isStringOrStringArray, isaListNameContext, jsonPrettyPrinter, measurementName2human, normalizePCDFPublicKeyHex, normalizeXMLText, ocmfBonnTariffToChargingTariff, openFullscreen, pad, parseAndVerifyJSONSignatures, parseDescription, parseEDL40, parseHexString, parseMennekesXMLDocument, parseNumber, parseOBIS, parseOCMFBonnTariffText, parsePCDFDocument, parsePCDFPublicKey, parsePCDFSignature, parseSmlTime, parseUTC, readQRCodeTextFromImage, readQRCodeTextFromImageData, readTLV, secp224k1, setUILocale, sha256, sha256____, sha384, sha384____, sha512, sha512____, signJSONMessage, signMessage, stripPCDFControlCharacters, stripTransport, time2human, toArrayBuffer, toSessionVerificationResults, toUint8Array, transformEDL40Status, tryParseOCMFBonnTariffText, unquotePCDFText, validatePCDFFields, verifyEDL40Document, verifyJSONMessageSignatureResults, verifyJSONMessageSignatures, verifyJSONSignature, verifyJSONSignatureResult, verifyPCDFDocument };
|
|
20945
21008
|
//# sourceMappingURL=index.js.map
|
|
20946
21009
|
//# sourceMappingURL=index.js.map
|