@zetra/citrineos-data 1.8.3-fork.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/dist/index.d.ts +9 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/dtos/GenerateCertificateChainRequest.d.ts +13 -0
- package/dist/interfaces/dtos/GenerateCertificateChainRequest.js +30 -0
- package/dist/interfaces/dtos/GenerateCertificateChainRequest.js.map +1 -0
- package/dist/interfaces/dtos/InstallRootCertificateRequest.d.ts +9 -0
- package/dist/interfaces/dtos/InstallRootCertificateRequest.js +22 -0
- package/dist/interfaces/dtos/InstallRootCertificateRequest.js.map +1 -0
- package/dist/interfaces/dtos/RegenerateExistingCertificate.d.ts +4 -0
- package/dist/interfaces/dtos/RegenerateExistingCertificate.js +8 -0
- package/dist/interfaces/dtos/RegenerateExistingCertificate.js.map +1 -0
- package/dist/interfaces/dtos/TlsCertificatesRequest.d.ts +7 -0
- package/dist/interfaces/dtos/TlsCertificatesRequest.js +17 -0
- package/dist/interfaces/dtos/TlsCertificatesRequest.js.map +1 -0
- package/dist/interfaces/dtos/UploadExistingCertificate.d.ts +6 -0
- package/dist/interfaces/dtos/UploadExistingCertificate.js +10 -0
- package/dist/interfaces/dtos/UploadExistingCertificate.js.map +1 -0
- package/dist/interfaces/index.d.ts +35 -0
- package/dist/interfaces/index.js +28 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/projections/AuthorizationRestrictions.d.ts +18 -0
- package/dist/interfaces/projections/AuthorizationRestrictions.js +5 -0
- package/dist/interfaces/projections/AuthorizationRestrictions.js.map +1 -0
- package/dist/interfaces/projections/schemas/AuthorizationRestrictionsSchema.json +20 -0
- package/dist/interfaces/projections/schemas/TariffSchema.json +37 -0
- package/dist/interfaces/queries/Authorization.d.ts +5 -0
- package/dist/interfaces/queries/Authorization.js +17 -0
- package/dist/interfaces/queries/Authorization.js.map +1 -0
- package/dist/interfaces/queries/ChargingStation.d.ts +5 -0
- package/dist/interfaces/queries/ChargingStation.js +18 -0
- package/dist/interfaces/queries/ChargingStation.js.map +1 -0
- package/dist/interfaces/queries/Connection.d.ts +5 -0
- package/dist/interfaces/queries/Connection.js +17 -0
- package/dist/interfaces/queries/Connection.js.map +1 -0
- package/dist/interfaces/queries/Model.d.ts +5 -0
- package/dist/interfaces/queries/Model.js +18 -0
- package/dist/interfaces/queries/Model.js.map +1 -0
- package/dist/interfaces/queries/NetworkProfile.d.ts +11 -0
- package/dist/interfaces/queries/NetworkProfile.js +36 -0
- package/dist/interfaces/queries/NetworkProfile.js.map +1 -0
- package/dist/interfaces/queries/RootCertificate.d.ts +4 -0
- package/dist/interfaces/queries/RootCertificate.js +100 -0
- package/dist/interfaces/queries/RootCertificate.js.map +1 -0
- package/dist/interfaces/queries/Subscription.d.ts +1 -0
- package/dist/interfaces/queries/Subscription.js +37 -0
- package/dist/interfaces/queries/Subscription.js.map +1 -0
- package/dist/interfaces/queries/Tariff.d.ts +5 -0
- package/dist/interfaces/queries/Tariff.js +17 -0
- package/dist/interfaces/queries/Tariff.js.map +1 -0
- package/dist/interfaces/queries/Tenant.d.ts +5 -0
- package/dist/interfaces/queries/Tenant.js +41 -0
- package/dist/interfaces/queries/Tenant.js.map +1 -0
- package/dist/interfaces/queries/TlsCertificate.d.ts +5 -0
- package/dist/interfaces/queries/TlsCertificate.js +32 -0
- package/dist/interfaces/queries/TlsCertificate.js.map +1 -0
- package/dist/interfaces/queries/TransactionEvent.d.ts +6 -0
- package/dist/interfaces/queries/TransactionEvent.js +23 -0
- package/dist/interfaces/queries/TransactionEvent.js.map +1 -0
- package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.d.ts +5 -0
- package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.js +17 -0
- package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.js.map +1 -0
- package/dist/interfaces/queries/VariableAttribute.d.ts +21 -0
- package/dist/interfaces/queries/VariableAttribute.js +71 -0
- package/dist/interfaces/queries/VariableAttribute.js.map +1 -0
- package/dist/interfaces/queries/Websocket.d.ts +17 -0
- package/dist/interfaces/queries/Websocket.js +115 -0
- package/dist/interfaces/queries/Websocket.js.map +1 -0
- package/dist/interfaces/repositories.d.ts +164 -0
- package/dist/interfaces/repositories.js +5 -0
- package/dist/interfaces/repositories.js.map +1 -0
- package/dist/layers/sequelize/index.d.ts +51 -0
- package/dist/layers/sequelize/index.js +58 -0
- package/dist/layers/sequelize/index.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.d.ts +6 -0
- package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.js +37 -0
- package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/BootMapper.d.ts +4 -0
- package/dist/layers/sequelize/mapper/1.6/BootMapper.js +19 -0
- package/dist/layers/sequelize/mapper/1.6/BootMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.d.ts +66 -0
- package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.js +82 -0
- package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/LocationMapper.d.ts +6 -0
- package/dist/layers/sequelize/mapper/1.6/LocationMapper.js +69 -0
- package/dist/layers/sequelize/mapper/1.6/LocationMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.d.ts +65 -0
- package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.js +431 -0
- package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/index.d.ts +5 -0
- package/dist/layers/sequelize/mapper/1.6/index.js +9 -0
- package/dist/layers/sequelize/mapper/1.6/index.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.d.ts +14 -0
- package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.js +153 -0
- package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/BootMapper.d.ts +5 -0
- package/dist/layers/sequelize/mapper/2.0.1/BootMapper.js +29 -0
- package/dist/layers/sequelize/mapper/2.0.1/BootMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.d.ts +84 -0
- package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.js +152 -0
- package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.d.ts +5 -0
- package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.js +23 -0
- package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.d.ts +45 -0
- package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.js +375 -0
- package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.d.ts +5 -0
- package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.js +18 -0
- package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/index.d.ts +6 -0
- package/dist/layers/sequelize/mapper/2.0.1/index.js +10 -0
- package/dist/layers/sequelize/mapper/2.0.1/index.js.map +1 -0
- package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.d.ts +45 -0
- package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.js +137 -0
- package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.js.map +1 -0
- package/dist/layers/sequelize/model/AsyncJob/index.d.ts +1 -0
- package/dist/layers/sequelize/model/AsyncJob/index.js +5 -0
- package/dist/layers/sequelize/model/AsyncJob/index.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/Authorization.d.ts +29 -0
- package/dist/layers/sequelize/model/Authorization/Authorization.js +122 -0
- package/dist/layers/sequelize/model/Authorization/Authorization.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.d.ts +39 -0
- package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.js +141 -0
- package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersion.d.ts +15 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersion.js +74 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersion.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.d.ts +11 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.js +69 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalList.d.ts +17 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalList.js +108 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalList.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.d.ts +11 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.js +69 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/index.d.ts +6 -0
- package/dist/layers/sequelize/model/Authorization/index.js +10 -0
- package/dist/layers/sequelize/model/Authorization/index.js.map +1 -0
- package/dist/layers/sequelize/model/AuthorizationTenant.d.ts +5 -0
- package/dist/layers/sequelize/model/AuthorizationTenant.js +32 -0
- package/dist/layers/sequelize/model/AuthorizationTenant.js.map +1 -0
- package/dist/layers/sequelize/model/BaseModelWithTenant.d.ts +8 -0
- package/dist/layers/sequelize/model/BaseModelWithTenant.js +50 -0
- package/dist/layers/sequelize/model/BaseModelWithTenant.js.map +1 -0
- package/dist/layers/sequelize/model/Boot.d.ts +29 -0
- package/dist/layers/sequelize/model/Boot.js +112 -0
- package/dist/layers/sequelize/model/Boot.js.map +1 -0
- package/dist/layers/sequelize/model/Cdrs/Cdrs.d.ts +105 -0
- package/dist/layers/sequelize/model/Cdrs/Cdrs.js +180 -0
- package/dist/layers/sequelize/model/Cdrs/Cdrs.js.map +1 -0
- package/dist/layers/sequelize/model/Cdrs/index.d.ts +1 -0
- package/dist/layers/sequelize/model/Cdrs/index.js +2 -0
- package/dist/layers/sequelize/model/Cdrs/index.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/Certificate.d.ts +27 -0
- package/dist/layers/sequelize/model/Certificate/Certificate.js +128 -0
- package/dist/layers/sequelize/model/Certificate/Certificate.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.d.ts +17 -0
- package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.js +95 -0
- package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.d.ts +17 -0
- package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.js +98 -0
- package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/InstalledCertificate.d.ts +18 -0
- package/dist/layers/sequelize/model/Certificate/InstalledCertificate.js +108 -0
- package/dist/layers/sequelize/model/Certificate/InstalledCertificate.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/index.d.ts +11 -0
- package/dist/layers/sequelize/model/Certificate/index.js +17 -0
- package/dist/layers/sequelize/model/Certificate/index.js.map +1 -0
- package/dist/layers/sequelize/model/ChangeConfiguration.d.ts +13 -0
- package/dist/layers/sequelize/model/ChangeConfiguration.js +80 -0
- package/dist/layers/sequelize/model/ChangeConfiguration.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.d.ts +27 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.js +99 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.d.ts +31 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.js +141 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.d.ts +28 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.js +118 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.d.ts +16 -0
- package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.js +86 -0
- package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.d.ts +24 -0
- package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.js +91 -0
- package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/index.d.ts +5 -0
- package/dist/layers/sequelize/model/ChargingProfile/index.js +9 -0
- package/dist/layers/sequelize/model/ChargingProfile/index.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingStationSecurityInfo.d.ts +14 -0
- package/dist/layers/sequelize/model/ChargingStationSecurityInfo.js +76 -0
- package/dist/layers/sequelize/model/ChargingStationSecurityInfo.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.d.ts +14 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.js +85 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/index.d.ts +1 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/index.js +5 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/index.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/Component.d.ts +26 -0
- package/dist/layers/sequelize/model/DeviceModel/Component.js +99 -0
- package/dist/layers/sequelize/model/DeviceModel/Component.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.d.ts +11 -0
- package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.js +69 -0
- package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/EvseType.d.ts +17 -0
- package/dist/layers/sequelize/model/DeviceModel/EvseType.js +83 -0
- package/dist/layers/sequelize/model/DeviceModel/EvseType.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/Variable.d.ts +27 -0
- package/dist/layers/sequelize/model/DeviceModel/Variable.js +96 -0
- package/dist/layers/sequelize/model/DeviceModel/Variable.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.d.ts +38 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.js +242 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.d.ts +25 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.js +90 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableStatus.d.ts +19 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableStatus.js +75 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableStatus.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/index.d.ts +6 -0
- package/dist/layers/sequelize/model/DeviceModel/index.js +10 -0
- package/dist/layers/sequelize/model/DeviceModel/index.js.map +1 -0
- package/dist/layers/sequelize/model/Location/ChargingStation.d.ts +56 -0
- package/dist/layers/sequelize/model/Location/ChargingStation.js +178 -0
- package/dist/layers/sequelize/model/Location/ChargingStation.js.map +1 -0
- package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.d.ts +27 -0
- package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.js +93 -0
- package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.js.map +1 -0
- package/dist/layers/sequelize/model/Location/Connector.d.ts +32 -0
- package/dist/layers/sequelize/model/Location/Connector.js +166 -0
- package/dist/layers/sequelize/model/Location/Connector.js.map +1 -0
- package/dist/layers/sequelize/model/Location/Evse.d.ts +28 -0
- package/dist/layers/sequelize/model/Location/Evse.js +122 -0
- package/dist/layers/sequelize/model/Location/Evse.js.map +1 -0
- package/dist/layers/sequelize/model/Location/LatestStatusNotification.d.ts +16 -0
- package/dist/layers/sequelize/model/Location/LatestStatusNotification.js +74 -0
- package/dist/layers/sequelize/model/Location/LatestStatusNotification.js.map +1 -0
- package/dist/layers/sequelize/model/Location/Location.d.ts +44 -0
- package/dist/layers/sequelize/model/Location/Location.js +182 -0
- package/dist/layers/sequelize/model/Location/Location.js.map +1 -0
- package/dist/layers/sequelize/model/Location/ServerNetworkProfile.d.ts +26 -0
- package/dist/layers/sequelize/model/Location/ServerNetworkProfile.js +120 -0
- package/dist/layers/sequelize/model/Location/ServerNetworkProfile.js.map +1 -0
- package/dist/layers/sequelize/model/Location/SetNetworkProfile.d.ts +52 -0
- package/dist/layers/sequelize/model/Location/SetNetworkProfile.js +120 -0
- package/dist/layers/sequelize/model/Location/SetNetworkProfile.js.map +1 -0
- package/dist/layers/sequelize/model/Location/StatusNotification.d.ts +20 -0
- package/dist/layers/sequelize/model/Location/StatusNotification.js +100 -0
- package/dist/layers/sequelize/model/Location/StatusNotification.js.map +1 -0
- package/dist/layers/sequelize/model/Location/index.d.ts +9 -0
- package/dist/layers/sequelize/model/Location/index.js +13 -0
- package/dist/layers/sequelize/model/Location/index.js.map +1 -0
- package/dist/layers/sequelize/model/MessageInfo/MessageInfo.d.ts +29 -0
- package/dist/layers/sequelize/model/MessageInfo/MessageInfo.js +126 -0
- package/dist/layers/sequelize/model/MessageInfo/MessageInfo.js.map +1 -0
- package/dist/layers/sequelize/model/MessageInfo/index.d.ts +1 -0
- package/dist/layers/sequelize/model/MessageInfo/index.js +5 -0
- package/dist/layers/sequelize/model/MessageInfo/index.js.map +1 -0
- package/dist/layers/sequelize/model/OCPPMessage.d.ts +21 -0
- package/dist/layers/sequelize/model/OCPPMessage.js +110 -0
- package/dist/layers/sequelize/model/OCPPMessage.js.map +1 -0
- package/dist/layers/sequelize/model/Reservation.d.ts +29 -0
- package/dist/layers/sequelize/model/Reservation.js +116 -0
- package/dist/layers/sequelize/model/Reservation.js.map +1 -0
- package/dist/layers/sequelize/model/SecurityEvent.d.ts +18 -0
- package/dist/layers/sequelize/model/SecurityEvent.js +78 -0
- package/dist/layers/sequelize/model/SecurityEvent.js.map +1 -0
- package/dist/layers/sequelize/model/Subscription/Subscription.d.ts +16 -0
- package/dist/layers/sequelize/model/Subscription/Subscription.js +94 -0
- package/dist/layers/sequelize/model/Subscription/Subscription.js.map +1 -0
- package/dist/layers/sequelize/model/Subscription/index.d.ts +1 -0
- package/dist/layers/sequelize/model/Subscription/index.js +5 -0
- package/dist/layers/sequelize/model/Subscription/index.js.map +1 -0
- package/dist/layers/sequelize/model/Tariff/TariffElements.d.ts +12 -0
- package/dist/layers/sequelize/model/Tariff/TariffElements.js +57 -0
- package/dist/layers/sequelize/model/Tariff/TariffElements.js.map +1 -0
- package/dist/layers/sequelize/model/Tariff/Tariffs.d.ts +37 -0
- package/dist/layers/sequelize/model/Tariff/Tariffs.js +181 -0
- package/dist/layers/sequelize/model/Tariff/Tariffs.js.map +1 -0
- package/dist/layers/sequelize/model/Tariff/index.d.ts +1 -0
- package/dist/layers/sequelize/model/Tariff/index.js +5 -0
- package/dist/layers/sequelize/model/Tariff/index.js.map +1 -0
- package/dist/layers/sequelize/model/Tenant.d.ts +96 -0
- package/dist/layers/sequelize/model/Tenant.js +268 -0
- package/dist/layers/sequelize/model/Tenant.js.map +1 -0
- package/dist/layers/sequelize/model/TenantPartner.d.ts +14 -0
- package/dist/layers/sequelize/model/TenantPartner.js +70 -0
- package/dist/layers/sequelize/model/TenantPartner.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/MeterValue.d.ts +18 -0
- package/dist/layers/sequelize/model/TransactionEvent/MeterValue.js +98 -0
- package/dist/layers/sequelize/model/TransactionEvent/MeterValue.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.d.ts +19 -0
- package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.js +96 -0
- package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.d.ts +20 -0
- package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.js +100 -0
- package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/Transaction.d.ts +48 -0
- package/dist/layers/sequelize/model/TransactionEvent/Transaction.js +216 -0
- package/dist/layers/sequelize/model/TransactionEvent/Transaction.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.d.ts +30 -0
- package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.js +129 -0
- package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/index.d.ts +5 -0
- package/dist/layers/sequelize/model/TransactionEvent/index.js +9 -0
- package/dist/layers/sequelize/model/TransactionEvent/index.js.map +1 -0
- package/dist/layers/sequelize/model/VariableMonitoring/EventData.d.ts +33 -0
- package/dist/layers/sequelize/model/VariableMonitoring/EventData.js +137 -0
- package/dist/layers/sequelize/model/VariableMonitoring/EventData.js.map +1 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.d.ts +28 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.js +113 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.js.map +1 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.d.ts +18 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.js +71 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.js.map +1 -0
- package/dist/layers/sequelize/model/VariableMonitoring/index.d.ts +3 -0
- package/dist/layers/sequelize/model/VariableMonitoring/index.js +7 -0
- package/dist/layers/sequelize/model/VariableMonitoring/index.js.map +1 -0
- package/dist/layers/sequelize/model/index.d.ts +22 -0
- package/dist/layers/sequelize/model/index.js +27 -0
- package/dist/layers/sequelize/model/index.js.map +1 -0
- package/dist/layers/sequelize/repository/AsyncJobStatus.d.ts +24 -0
- package/dist/layers/sequelize/repository/AsyncJobStatus.js +39 -0
- package/dist/layers/sequelize/repository/AsyncJobStatus.js.map +1 -0
- package/dist/layers/sequelize/repository/Authorization.d.ts +18 -0
- package/dist/layers/sequelize/repository/Authorization.js +51 -0
- package/dist/layers/sequelize/repository/Authorization.js.map +1 -0
- package/dist/layers/sequelize/repository/Base.d.ts +28 -0
- package/dist/layers/sequelize/repository/Base.js +135 -0
- package/dist/layers/sequelize/repository/Base.js.map +1 -0
- package/dist/layers/sequelize/repository/BaseJunction.d.ts +33 -0
- package/dist/layers/sequelize/repository/BaseJunction.js +178 -0
- package/dist/layers/sequelize/repository/BaseJunction.js.map +1 -0
- package/dist/layers/sequelize/repository/Boot.d.ts +20 -0
- package/dist/layers/sequelize/repository/Boot.js +78 -0
- package/dist/layers/sequelize/repository/Boot.js.map +1 -0
- package/dist/layers/sequelize/repository/Certificate.d.ts +11 -0
- package/dist/layers/sequelize/repository/Certificate.js +39 -0
- package/dist/layers/sequelize/repository/Certificate.js.map +1 -0
- package/dist/layers/sequelize/repository/ChangeConfiguration.d.ts +10 -0
- package/dist/layers/sequelize/repository/ChangeConfiguration.js +36 -0
- package/dist/layers/sequelize/repository/ChangeConfiguration.js.map +1 -0
- package/dist/layers/sequelize/repository/ChargingProfile.d.ts +25 -0
- package/dist/layers/sequelize/repository/ChargingProfile.js +156 -0
- package/dist/layers/sequelize/repository/ChargingProfile.js.map +1 -0
- package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.d.ts +12 -0
- package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.js +28 -0
- package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.js.map +1 -0
- package/dist/layers/sequelize/repository/ChargingStationSequence.d.ts +21 -0
- package/dist/layers/sequelize/repository/ChargingStationSequence.js +52 -0
- package/dist/layers/sequelize/repository/ChargingStationSequence.js.map +1 -0
- package/dist/layers/sequelize/repository/DeleteCertificateAttempt.d.ts +10 -0
- package/dist/layers/sequelize/repository/DeleteCertificateAttempt.js +13 -0
- package/dist/layers/sequelize/repository/DeleteCertificateAttempt.js.map +1 -0
- package/dist/layers/sequelize/repository/DeviceModel.d.ts +36 -0
- package/dist/layers/sequelize/repository/DeviceModel.js +417 -0
- package/dist/layers/sequelize/repository/DeviceModel.js.map +1 -0
- package/dist/layers/sequelize/repository/InstallCertificateAttempt.d.ts +10 -0
- package/dist/layers/sequelize/repository/InstallCertificateAttempt.js +13 -0
- package/dist/layers/sequelize/repository/InstallCertificateAttempt.js.map +1 -0
- package/dist/layers/sequelize/repository/InstalledCertificate.d.ts +10 -0
- package/dist/layers/sequelize/repository/InstalledCertificate.js +13 -0
- package/dist/layers/sequelize/repository/InstalledCertificate.js.map +1 -0
- package/dist/layers/sequelize/repository/LocalAuthList.d.ts +20 -0
- package/dist/layers/sequelize/repository/LocalAuthList.js +192 -0
- package/dist/layers/sequelize/repository/LocalAuthList.js.map +1 -0
- package/dist/layers/sequelize/repository/Location.d.ts +30 -0
- package/dist/layers/sequelize/repository/Location.js +263 -0
- package/dist/layers/sequelize/repository/Location.js.map +1 -0
- package/dist/layers/sequelize/repository/MessageInfo.d.ts +13 -0
- package/dist/layers/sequelize/repository/MessageInfo.js +55 -0
- package/dist/layers/sequelize/repository/MessageInfo.js.map +1 -0
- package/dist/layers/sequelize/repository/OCPPMessage.d.ts +12 -0
- package/dist/layers/sequelize/repository/OCPPMessage.js +65 -0
- package/dist/layers/sequelize/repository/OCPPMessage.js.map +1 -0
- package/dist/layers/sequelize/repository/RepositoryStore.d.ts +34 -0
- package/dist/layers/sequelize/repository/RepositoryStore.js +79 -0
- package/dist/layers/sequelize/repository/RepositoryStore.js.map +1 -0
- package/dist/layers/sequelize/repository/Reservation.d.ts +15 -0
- package/dist/layers/sequelize/repository/Reservation.js +68 -0
- package/dist/layers/sequelize/repository/Reservation.js.map +1 -0
- package/dist/layers/sequelize/repository/SecurityEvent.d.ts +18 -0
- package/dist/layers/sequelize/repository/SecurityEvent.js +46 -0
- package/dist/layers/sequelize/repository/SecurityEvent.js.map +1 -0
- package/dist/layers/sequelize/repository/ServerNetworkProfile.d.ts +14 -0
- package/dist/layers/sequelize/repository/ServerNetworkProfile.js +40 -0
- package/dist/layers/sequelize/repository/ServerNetworkProfile.js.map +1 -0
- package/dist/layers/sequelize/repository/Subscription.d.ts +20 -0
- package/dist/layers/sequelize/repository/Subscription.js +32 -0
- package/dist/layers/sequelize/repository/Subscription.js.map +1 -0
- package/dist/layers/sequelize/repository/Tariff.d.ts +15 -0
- package/dist/layers/sequelize/repository/Tariff.js +64 -0
- package/dist/layers/sequelize/repository/Tariff.js.map +1 -0
- package/dist/layers/sequelize/repository/Tenant.d.ts +11 -0
- package/dist/layers/sequelize/repository/Tenant.js +21 -0
- package/dist/layers/sequelize/repository/Tenant.js.map +1 -0
- package/dist/layers/sequelize/repository/TransactionEvent.d.ts +46 -0
- package/dist/layers/sequelize/repository/TransactionEvent.js +597 -0
- package/dist/layers/sequelize/repository/TransactionEvent.js.map +1 -0
- package/dist/layers/sequelize/repository/VariableMonitoring.d.ts +20 -0
- package/dist/layers/sequelize/repository/VariableMonitoring.js +168 -0
- package/dist/layers/sequelize/repository/VariableMonitoring.js.map +1 -0
- package/dist/layers/sequelize/util.d.ts +18 -0
- package/dist/layers/sequelize/util.js +143 -0
- package/dist/layers/sequelize/util.js.map +1 -0
- package/dist/util/CryptoUtils.d.ts +6 -0
- package/dist/util/CryptoUtils.js +14 -0
- package/dist/util/CryptoUtils.js.map +1 -0
- package/dist/util/PasswordHashAlgorithm.d.ts +15 -0
- package/dist/util/PasswordHashAlgorithm.js +2 -0
- package/dist/util/PasswordHashAlgorithm.js.map +1 -0
- package/dist/util/Pbkdf2.d.ts +9 -0
- package/dist/util/Pbkdf2.js +20 -0
- package/dist/util/Pbkdf2.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransactionEvent.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/TransactionEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SequelizeRepository } from './Base.js';
|
|
2
|
+
import { EventData, VariableMonitoring, VariableMonitoringStatus } from '../model/index.js';
|
|
3
|
+
import type { IVariableMonitoringRepository } from '../../../interfaces/index.js';
|
|
4
|
+
import type { BootstrapConfig, CallAction } from '@citrineos/base';
|
|
5
|
+
import { CrudRepository, OCPP2_0_1 } from '@citrineos/base';
|
|
6
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
7
|
+
import type { ILogObj } from 'tslog';
|
|
8
|
+
import { Logger } from 'tslog';
|
|
9
|
+
export declare class SequelizeVariableMonitoringRepository extends SequelizeRepository<VariableMonitoring> implements IVariableMonitoringRepository {
|
|
10
|
+
eventData: CrudRepository<EventData>;
|
|
11
|
+
variableMonitoringStatus: CrudRepository<VariableMonitoringStatus>;
|
|
12
|
+
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize, eventData?: CrudRepository<EventData>, variableMonitoringStatus?: CrudRepository<VariableMonitoringStatus>);
|
|
13
|
+
createOrUpdateByMonitoringDataTypeAndStationId(tenantId: number, value: OCPP2_0_1.MonitoringDataType, componentId: string, variableId: string, stationId: string): Promise<VariableMonitoring[]>;
|
|
14
|
+
createVariableMonitoringStatus(tenantId: number, status: OCPP2_0_1.SetMonitoringStatusEnumType, action: CallAction, variableMonitoringId: number): Promise<void>;
|
|
15
|
+
createOrUpdateBySetMonitoringDataTypeAndStationId(tenantId: number, value: OCPP2_0_1.SetMonitoringDataType, componentId: string, variableId: string, stationId: string): Promise<VariableMonitoring>;
|
|
16
|
+
rejectAllVariableMonitoringsByStationId(tenantId: number, action: CallAction, stationId: string): Promise<void>;
|
|
17
|
+
rejectVariableMonitoringByIdAndStationId(tenantId: number, action: CallAction, id: number, stationId: string): Promise<void>;
|
|
18
|
+
updateResultByStationId(tenantId: number, result: OCPP2_0_1.SetMonitoringResultType, stationId: string): Promise<VariableMonitoring>;
|
|
19
|
+
createEventDatumByComponentIdAndVariableIdAndStationId(tenantId: number, event: OCPP2_0_1.EventDataType, componentId: string, variableId: string, stationId: string): Promise<EventData>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { SequelizeRepository } from './Base.js';
|
|
5
|
+
import { Component, EventData, Variable, VariableMonitoring, VariableMonitoringStatus, } from '../model/index.js';
|
|
6
|
+
import { CrudRepository, OCPP2_0_1, OCPP2_0_1_CallAction } from '@citrineos/base';
|
|
7
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
8
|
+
import { Logger } from 'tslog';
|
|
9
|
+
export class SequelizeVariableMonitoringRepository extends SequelizeRepository {
|
|
10
|
+
eventData;
|
|
11
|
+
variableMonitoringStatus;
|
|
12
|
+
constructor(config, logger, sequelizeInstance, eventData, variableMonitoringStatus) {
|
|
13
|
+
super(config, VariableMonitoring.MODEL_NAME, logger, sequelizeInstance);
|
|
14
|
+
this.eventData = eventData
|
|
15
|
+
? eventData
|
|
16
|
+
: new SequelizeRepository(config, EventData.MODEL_NAME, logger, sequelizeInstance);
|
|
17
|
+
this.variableMonitoringStatus = variableMonitoringStatus
|
|
18
|
+
? variableMonitoringStatus
|
|
19
|
+
: new SequelizeRepository(config, VariableMonitoringStatus.MODEL_NAME, logger, sequelizeInstance);
|
|
20
|
+
}
|
|
21
|
+
async createOrUpdateByMonitoringDataTypeAndStationId(tenantId, value, componentId, variableId, stationId) {
|
|
22
|
+
return await Promise.all(value.variableMonitoring.map(async (variableMonitoring) => {
|
|
23
|
+
const savedVariableMonitoring = await this.s.transaction(async (transaction) => {
|
|
24
|
+
const existingVariableMonitoring = await this.s.models[VariableMonitoring.MODEL_NAME].findOne({
|
|
25
|
+
where: { stationId, variableId, componentId },
|
|
26
|
+
transaction,
|
|
27
|
+
});
|
|
28
|
+
if (!existingVariableMonitoring) {
|
|
29
|
+
// If the record does not exist, build and save a new instance
|
|
30
|
+
const vm = VariableMonitoring.build({
|
|
31
|
+
tenantId,
|
|
32
|
+
stationId,
|
|
33
|
+
variableId,
|
|
34
|
+
componentId,
|
|
35
|
+
...variableMonitoring,
|
|
36
|
+
});
|
|
37
|
+
const createdVariableMonitoring = await vm.save({ transaction });
|
|
38
|
+
this.emit('created', [createdVariableMonitoring]);
|
|
39
|
+
return createdVariableMonitoring;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
// If the record exists, update it
|
|
43
|
+
return (await this.updateByKey(tenantId, { ...variableMonitoring }, existingVariableMonitoring.dataValues.databaseId));
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
await this.createVariableMonitoringStatus(tenantId, OCPP2_0_1.SetMonitoringStatusEnumType.Accepted, OCPP2_0_1_CallAction.NotifyMonitoringReport, savedVariableMonitoring.get('databaseId'));
|
|
47
|
+
return savedVariableMonitoring;
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
async createVariableMonitoringStatus(tenantId, status, action, variableMonitoringId) {
|
|
51
|
+
await this.variableMonitoringStatus.create(tenantId, VariableMonitoringStatus.build({
|
|
52
|
+
tenantId,
|
|
53
|
+
status,
|
|
54
|
+
statusInfo: { reasonCode: action },
|
|
55
|
+
variableMonitoringId,
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
async createOrUpdateBySetMonitoringDataTypeAndStationId(tenantId, value, componentId, variableId, stationId) {
|
|
59
|
+
let result = null;
|
|
60
|
+
await this.s.transaction(async (transaction) => {
|
|
61
|
+
const savedVariableMonitoring = await this.s.models[VariableMonitoring.MODEL_NAME].findOne({
|
|
62
|
+
where: { stationId, variableId, componentId },
|
|
63
|
+
transaction,
|
|
64
|
+
});
|
|
65
|
+
if (!savedVariableMonitoring) {
|
|
66
|
+
const variableMonitoring = VariableMonitoring.build({
|
|
67
|
+
tenantId,
|
|
68
|
+
stationId,
|
|
69
|
+
variableId,
|
|
70
|
+
componentId,
|
|
71
|
+
...value,
|
|
72
|
+
});
|
|
73
|
+
result = await variableMonitoring.save({ transaction });
|
|
74
|
+
this.emit('created', [result]);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const updatedVariableMonitoring = await savedVariableMonitoring.update(value, {
|
|
78
|
+
transaction,
|
|
79
|
+
returning: true,
|
|
80
|
+
});
|
|
81
|
+
result = updatedVariableMonitoring;
|
|
82
|
+
this.emit('updated', [result]);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
if (!result) {
|
|
86
|
+
throw new Error('VariableMonitoring could not be created or updated');
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
async rejectAllVariableMonitoringsByStationId(tenantId, action, stationId) {
|
|
91
|
+
await this.readAllByQuery(tenantId, {
|
|
92
|
+
where: {
|
|
93
|
+
stationId,
|
|
94
|
+
},
|
|
95
|
+
}).then(async (variableMonitorings) => {
|
|
96
|
+
for (const variableMonitoring of variableMonitorings) {
|
|
97
|
+
await this.createVariableMonitoringStatus(tenantId, OCPP2_0_1.SetMonitoringStatusEnumType.Rejected, action, variableMonitoring.databaseId);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async rejectVariableMonitoringByIdAndStationId(tenantId, action, id, stationId) {
|
|
102
|
+
await this.readAllByQuery(tenantId, {
|
|
103
|
+
where: {
|
|
104
|
+
id,
|
|
105
|
+
stationId,
|
|
106
|
+
},
|
|
107
|
+
}).then(async (variableMonitorings) => {
|
|
108
|
+
for (const variableMonitoring of variableMonitorings) {
|
|
109
|
+
await this.createVariableMonitoringStatus(tenantId, OCPP2_0_1.SetMonitoringStatusEnumType.Rejected, action, variableMonitoring.databaseId);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
async updateResultByStationId(tenantId, result, stationId) {
|
|
114
|
+
const savedVariableMonitoring = await super
|
|
115
|
+
.readAllByQuery(tenantId, {
|
|
116
|
+
where: { stationId, type: result.type, severity: result.severity },
|
|
117
|
+
include: [
|
|
118
|
+
{
|
|
119
|
+
model: Component,
|
|
120
|
+
where: {
|
|
121
|
+
name: result.component.name,
|
|
122
|
+
instance: result.component.instance ? result.component.instance : null,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
model: Variable,
|
|
127
|
+
where: {
|
|
128
|
+
name: result.variable.name,
|
|
129
|
+
instance: result.variable.instance ? result.variable.instance : null,
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
})
|
|
134
|
+
.then((variableMonitorings) => variableMonitorings[0]); // TODO: Make sure this uniqueness constraint is actually enforced.
|
|
135
|
+
if (savedVariableMonitoring) {
|
|
136
|
+
// The Id is only returned from Charging Station when status is accepted.
|
|
137
|
+
if (result.status === OCPP2_0_1.SetMonitoringStatusEnumType.Accepted && result.id) {
|
|
138
|
+
await this.updateByKey(tenantId, {
|
|
139
|
+
id: result.id,
|
|
140
|
+
}, savedVariableMonitoring.get('databaseId').toString());
|
|
141
|
+
}
|
|
142
|
+
await this.variableMonitoringStatus.create(tenantId, VariableMonitoringStatus.build({
|
|
143
|
+
tenantId,
|
|
144
|
+
status: result.status,
|
|
145
|
+
statusInfo: result.statusInfo,
|
|
146
|
+
variableMonitoringId: savedVariableMonitoring.get('databaseId'),
|
|
147
|
+
}));
|
|
148
|
+
// Reload in order to include the statuses
|
|
149
|
+
return await this.readAllByQuery(tenantId, {
|
|
150
|
+
where: { databaseId: savedVariableMonitoring.get('databaseId') },
|
|
151
|
+
include: [VariableMonitoringStatus],
|
|
152
|
+
}).then((variableMonitorings) => variableMonitorings[0]);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
throw new Error(`Unable to update set monitoring result: ${result}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
async createEventDatumByComponentIdAndVariableIdAndStationId(tenantId, event, componentId, variableId, stationId) {
|
|
159
|
+
return await this.eventData.create(tenantId, EventData.build({
|
|
160
|
+
tenantId,
|
|
161
|
+
stationId,
|
|
162
|
+
variableId,
|
|
163
|
+
componentId,
|
|
164
|
+
...event,
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=VariableMonitoring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariableMonitoring.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/VariableMonitoring.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type BootstrapConfig } from '@citrineos/base';
|
|
2
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
3
|
+
import { type ILogObj, Logger } from 'tslog';
|
|
4
|
+
export declare class DefaultSequelizeInstance {
|
|
5
|
+
/**
|
|
6
|
+
* Fields
|
|
7
|
+
*/
|
|
8
|
+
private static readonly DEFAULT_RETRIES;
|
|
9
|
+
private static readonly DEFAULT_RETRY_DELAY;
|
|
10
|
+
private static instance;
|
|
11
|
+
private static logger;
|
|
12
|
+
private static config;
|
|
13
|
+
private constructor();
|
|
14
|
+
static getInstance(config: BootstrapConfig, logger?: Logger<ILogObj>): Sequelize;
|
|
15
|
+
static initializeSequelize(_sync?: boolean): Promise<void>;
|
|
16
|
+
private static syncDb;
|
|
17
|
+
private static createSequelizeInstance;
|
|
18
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import {} from '@citrineos/base';
|
|
5
|
+
import {} from 'sequelize';
|
|
6
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
7
|
+
import { Logger } from 'tslog';
|
|
8
|
+
import { ComponentVariable } from './model/DeviceModel/ComponentVariable.js';
|
|
9
|
+
import { Authorization, Boot, Certificate, ChangeConfiguration, ChargingNeeds, ChargingProfile, ChargingSchedule, ChargingStation, ChargingStationNetworkProfile, ChargingStationSecurityInfo, ChargingStationSequence, Component, CompositeSchedule, Connector, DeleteCertificateAttempt, EventData, Evse, EvseType, InstallCertificateAttempt, InstalledCertificate, LatestStatusNotification, LocalListAuthorization, LocalListVersion, LocalListVersionAuthorization, Location, MessageInfo, MeterValue, OCPPMessage, Reservation, SalesTariff, SecurityEvent, SendLocalList, SendLocalListAuthorization, ServerNetworkProfile, SetNetworkProfile, StartTransaction, StatusNotification, StopTransaction, Subscription, Tariff, Tenant, TenantPartner, Transaction, TransactionEvent, Variable, VariableAttribute, VariableCharacteristics, VariableMonitoring, VariableMonitoringStatus, VariableStatus, AuthorizationTenant, } from './index.js';
|
|
10
|
+
export class DefaultSequelizeInstance {
|
|
11
|
+
/**
|
|
12
|
+
* Fields
|
|
13
|
+
*/
|
|
14
|
+
static DEFAULT_RETRIES = 5;
|
|
15
|
+
static DEFAULT_RETRY_DELAY = 5000;
|
|
16
|
+
static instance = null;
|
|
17
|
+
static logger;
|
|
18
|
+
static config;
|
|
19
|
+
constructor() { }
|
|
20
|
+
static getInstance(config, logger) {
|
|
21
|
+
if (!DefaultSequelizeInstance.instance) {
|
|
22
|
+
DefaultSequelizeInstance.config = config;
|
|
23
|
+
DefaultSequelizeInstance.logger = logger
|
|
24
|
+
? logger.getSubLogger({ name: this.name })
|
|
25
|
+
: new Logger({ name: this.name });
|
|
26
|
+
DefaultSequelizeInstance.instance = this.createSequelizeInstance();
|
|
27
|
+
}
|
|
28
|
+
return DefaultSequelizeInstance.instance;
|
|
29
|
+
}
|
|
30
|
+
static async initializeSequelize(_sync = false) {
|
|
31
|
+
let retryCount = 0;
|
|
32
|
+
const maxRetries = this.config.database.maxRetries ?? this.DEFAULT_RETRIES;
|
|
33
|
+
const retryDelay = this.config.database.retryDelay ?? this.DEFAULT_RETRY_DELAY;
|
|
34
|
+
while (retryCount < maxRetries) {
|
|
35
|
+
try {
|
|
36
|
+
await this.instance.authenticate();
|
|
37
|
+
this.logger.info('Database connection has been established successfully');
|
|
38
|
+
await this.syncDb();
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
retryCount++;
|
|
43
|
+
this.logger.error(`Failed to connect to the database (attempt ${retryCount}/${maxRetries}):`, error);
|
|
44
|
+
if (retryCount < maxRetries) {
|
|
45
|
+
this.logger.info(`Retrying in ${retryDelay / 1000} seconds...`);
|
|
46
|
+
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.logger.error('Max retries reached. Unable to establish database connection.');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
this.logger.info(`Sequelize initialized: ${JSON.stringify(this.instance?.config || {})}`);
|
|
54
|
+
}
|
|
55
|
+
static async syncDb() {
|
|
56
|
+
if (this.config.database.sync) {
|
|
57
|
+
const alter = this.config.database.alter;
|
|
58
|
+
const force = this.config.database.force;
|
|
59
|
+
if (force) {
|
|
60
|
+
this.logger.info('Database force synchronizing');
|
|
61
|
+
await this.instance.sync({ force: true });
|
|
62
|
+
this.logger.info('Database force synchronized');
|
|
63
|
+
}
|
|
64
|
+
else if (alter) {
|
|
65
|
+
this.logger.info('Database altering');
|
|
66
|
+
await this.instance.sync({ alter: true });
|
|
67
|
+
this.logger.info('Database altered');
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.logger.info('Database synchronizing');
|
|
71
|
+
await this.instance.sync();
|
|
72
|
+
this.logger.info('Database synchronized');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
static createSequelizeInstance() {
|
|
77
|
+
return new Sequelize({
|
|
78
|
+
host: this.config.database.host,
|
|
79
|
+
port: this.config.database.port,
|
|
80
|
+
database: this.config.database.database,
|
|
81
|
+
dialect: this.config.database.dialect,
|
|
82
|
+
username: this.config.database.username,
|
|
83
|
+
password: this.config.database.password,
|
|
84
|
+
models: [
|
|
85
|
+
Authorization,
|
|
86
|
+
Boot,
|
|
87
|
+
Certificate,
|
|
88
|
+
InstalledCertificate,
|
|
89
|
+
InstallCertificateAttempt,
|
|
90
|
+
DeleteCertificateAttempt,
|
|
91
|
+
ChangeConfiguration,
|
|
92
|
+
ChargingNeeds,
|
|
93
|
+
ChargingProfile,
|
|
94
|
+
ChargingSchedule,
|
|
95
|
+
ChargingStation,
|
|
96
|
+
ChargingStationNetworkProfile,
|
|
97
|
+
ChargingStationSecurityInfo,
|
|
98
|
+
ChargingStationSequence,
|
|
99
|
+
Component,
|
|
100
|
+
ComponentVariable,
|
|
101
|
+
CompositeSchedule,
|
|
102
|
+
Connector,
|
|
103
|
+
Evse,
|
|
104
|
+
EvseType,
|
|
105
|
+
EventData,
|
|
106
|
+
Location,
|
|
107
|
+
MeterValue,
|
|
108
|
+
MessageInfo,
|
|
109
|
+
OCPPMessage,
|
|
110
|
+
Reservation,
|
|
111
|
+
SalesTariff,
|
|
112
|
+
SecurityEvent,
|
|
113
|
+
SetNetworkProfile,
|
|
114
|
+
ServerNetworkProfile,
|
|
115
|
+
Transaction,
|
|
116
|
+
StartTransaction,
|
|
117
|
+
StatusNotification,
|
|
118
|
+
StopTransaction,
|
|
119
|
+
LatestStatusNotification,
|
|
120
|
+
Subscription,
|
|
121
|
+
TransactionEvent,
|
|
122
|
+
Tariff,
|
|
123
|
+
VariableAttribute,
|
|
124
|
+
VariableCharacteristics,
|
|
125
|
+
VariableMonitoring,
|
|
126
|
+
VariableMonitoringStatus,
|
|
127
|
+
VariableStatus,
|
|
128
|
+
Variable,
|
|
129
|
+
LocalListAuthorization,
|
|
130
|
+
LocalListVersion,
|
|
131
|
+
LocalListVersionAuthorization,
|
|
132
|
+
SendLocalList,
|
|
133
|
+
SendLocalListAuthorization,
|
|
134
|
+
Tenant,
|
|
135
|
+
TenantPartner,
|
|
136
|
+
AuthorizationTenant,
|
|
137
|
+
],
|
|
138
|
+
pool: this.config.database.pool,
|
|
139
|
+
logging: (_sql, _timing) => { },
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/layers/sequelize/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { Pbkdf2 } from './Pbkdf2.js';
|
|
5
|
+
export class CryptoUtils {
|
|
6
|
+
static passwordHashAlgorithm = new Pbkdf2();
|
|
7
|
+
static getPasswordHash(password) {
|
|
8
|
+
return CryptoUtils.passwordHashAlgorithm.getSaltedHash(password);
|
|
9
|
+
}
|
|
10
|
+
static isPasswordMatch(storedValue, inputPassword) {
|
|
11
|
+
return CryptoUtils.passwordHashAlgorithm.isHashMatch(storedValue, inputPassword);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=CryptoUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CryptoUtils.js","sourceRoot":"","sources":["../../src/util/CryptoUtils.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,qBAAqB,GAAG,IAAI,MAAM,EAAE,CAAC;IAE5C,MAAM,CAAC,eAAe,CAAC,QAAgB;QACrC,OAAO,WAAW,CAAC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,WAAmB,EAAE,aAAqB;QAC/D,OAAO,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface PasswordHashAlgorithm {
|
|
2
|
+
/**
|
|
3
|
+
* Generates a salted hash for a given password.
|
|
4
|
+
* @param password The plain text password.
|
|
5
|
+
* @returns A string containing the salt and hash separated by a colon.
|
|
6
|
+
*/
|
|
7
|
+
getSaltedHash(password: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Validates if an input password matches a stored salted hash.
|
|
10
|
+
* @param storedValue The stored value containing salt and hash separated by a colon.
|
|
11
|
+
* @param inputPassword The input password to validate.
|
|
12
|
+
* @returns A boolean indicating if the password matches.
|
|
13
|
+
*/
|
|
14
|
+
isHashMatch(storedValue: string, inputPassword: string): boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordHashAlgorithm.js","sourceRoot":"","sources":["../../src/util/PasswordHashAlgorithm.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PasswordHashAlgorithm } from './PasswordHashAlgorithm.js';
|
|
2
|
+
export declare class Pbkdf2 implements PasswordHashAlgorithm {
|
|
3
|
+
iterations: number;
|
|
4
|
+
keyLen: number;
|
|
5
|
+
digest: string;
|
|
6
|
+
getSaltedHash(password: string): string;
|
|
7
|
+
isHashMatch(storedValue: string, inputPassword: string): boolean;
|
|
8
|
+
getHashFromStringWithSalt(str: string, salt: string): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { pbkdf2Sync, randomBytes } from 'crypto';
|
|
2
|
+
export class Pbkdf2 {
|
|
3
|
+
iterations = 1000;
|
|
4
|
+
keyLen = 64;
|
|
5
|
+
digest = 'sha512';
|
|
6
|
+
getSaltedHash(password) {
|
|
7
|
+
const salt = randomBytes(16).toString('hex');
|
|
8
|
+
const hash = this.getHashFromStringWithSalt(password, salt);
|
|
9
|
+
return `PBKDF2:${this.iterations}:${this.keyLen}:${this.digest}:${salt}:${hash}`;
|
|
10
|
+
}
|
|
11
|
+
isHashMatch(storedValue, inputPassword) {
|
|
12
|
+
const [_algorithm, _iterations, _keyLen, _digest, salt, originalHash] = storedValue.split(':');
|
|
13
|
+
const hash = this.getHashFromStringWithSalt(inputPassword, salt);
|
|
14
|
+
return hash === originalHash;
|
|
15
|
+
}
|
|
16
|
+
getHashFromStringWithSalt(str, salt) {
|
|
17
|
+
return pbkdf2Sync(str, salt, this.iterations, this.keyLen, this.digest).toString('hex');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=Pbkdf2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pbkdf2.js","sourceRoot":"","sources":["../../src/util/Pbkdf2.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,OAAO,MAAM;IACjB,UAAU,GAAG,IAAI,CAAC;IAClB,MAAM,GAAG,EAAE,CAAC;IACZ,MAAM,GAAG,QAAQ,CAAC;IAElB,aAAa,CAAC,QAAgB;QAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,UAAU,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IACnF,CAAC;IAED,WAAW,CAAC,WAAmB,EAAE,aAAqB;QACpD,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACjE,OAAO,IAAI,KAAK,YAAY,CAAC;IAC/B,CAAC;IAED,yBAAyB,CAAC,GAAW,EAAE,IAAY;QACjD,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@zetra/citrineos-data",
|
|
3
|
+
"version": "1.8.3-fork.1",
|
|
4
|
+
"description": "The OCPP data module which includes all persistence layer implementation.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"prepublish": "npx eslint",
|
|
13
|
+
"test": "vitest run"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"ocpp",
|
|
17
|
+
"ocpp_v201"
|
|
18
|
+
],
|
|
19
|
+
"author": "S44",
|
|
20
|
+
"license": "Apache-2.0",
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@testcontainers/postgresql": "^11.14.0",
|
|
23
|
+
"@types/uuid": "9.0.1",
|
|
24
|
+
"eslint": "8.48.0",
|
|
25
|
+
"testcontainers": "^11.14.0",
|
|
26
|
+
"typescript": "^5.8.2"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@zetra/citrineos-base": "1.8.3-fork.1",
|
|
30
|
+
"@types/sequelize": "4.28.20",
|
|
31
|
+
"pg": "8.11.3",
|
|
32
|
+
"pg-hstore": "2.3.4",
|
|
33
|
+
"sequelize-typescript": "2.1.6",
|
|
34
|
+
"uuid": "^9.0.1"
|
|
35
|
+
}
|
|
36
|
+
}
|