@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.
Files changed (417) hide show
  1. package/dist/index.d.ts +9 -0
  2. package/dist/index.js +12 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/interfaces/dtos/GenerateCertificateChainRequest.d.ts +13 -0
  5. package/dist/interfaces/dtos/GenerateCertificateChainRequest.js +30 -0
  6. package/dist/interfaces/dtos/GenerateCertificateChainRequest.js.map +1 -0
  7. package/dist/interfaces/dtos/InstallRootCertificateRequest.d.ts +9 -0
  8. package/dist/interfaces/dtos/InstallRootCertificateRequest.js +22 -0
  9. package/dist/interfaces/dtos/InstallRootCertificateRequest.js.map +1 -0
  10. package/dist/interfaces/dtos/RegenerateExistingCertificate.d.ts +4 -0
  11. package/dist/interfaces/dtos/RegenerateExistingCertificate.js +8 -0
  12. package/dist/interfaces/dtos/RegenerateExistingCertificate.js.map +1 -0
  13. package/dist/interfaces/dtos/TlsCertificatesRequest.d.ts +7 -0
  14. package/dist/interfaces/dtos/TlsCertificatesRequest.js +17 -0
  15. package/dist/interfaces/dtos/TlsCertificatesRequest.js.map +1 -0
  16. package/dist/interfaces/dtos/UploadExistingCertificate.d.ts +6 -0
  17. package/dist/interfaces/dtos/UploadExistingCertificate.js +10 -0
  18. package/dist/interfaces/dtos/UploadExistingCertificate.js.map +1 -0
  19. package/dist/interfaces/index.d.ts +35 -0
  20. package/dist/interfaces/index.js +28 -0
  21. package/dist/interfaces/index.js.map +1 -0
  22. package/dist/interfaces/projections/AuthorizationRestrictions.d.ts +18 -0
  23. package/dist/interfaces/projections/AuthorizationRestrictions.js +5 -0
  24. package/dist/interfaces/projections/AuthorizationRestrictions.js.map +1 -0
  25. package/dist/interfaces/projections/schemas/AuthorizationRestrictionsSchema.json +20 -0
  26. package/dist/interfaces/projections/schemas/TariffSchema.json +37 -0
  27. package/dist/interfaces/queries/Authorization.d.ts +5 -0
  28. package/dist/interfaces/queries/Authorization.js +17 -0
  29. package/dist/interfaces/queries/Authorization.js.map +1 -0
  30. package/dist/interfaces/queries/ChargingStation.d.ts +5 -0
  31. package/dist/interfaces/queries/ChargingStation.js +18 -0
  32. package/dist/interfaces/queries/ChargingStation.js.map +1 -0
  33. package/dist/interfaces/queries/Connection.d.ts +5 -0
  34. package/dist/interfaces/queries/Connection.js +17 -0
  35. package/dist/interfaces/queries/Connection.js.map +1 -0
  36. package/dist/interfaces/queries/Model.d.ts +5 -0
  37. package/dist/interfaces/queries/Model.js +18 -0
  38. package/dist/interfaces/queries/Model.js.map +1 -0
  39. package/dist/interfaces/queries/NetworkProfile.d.ts +11 -0
  40. package/dist/interfaces/queries/NetworkProfile.js +36 -0
  41. package/dist/interfaces/queries/NetworkProfile.js.map +1 -0
  42. package/dist/interfaces/queries/RootCertificate.d.ts +4 -0
  43. package/dist/interfaces/queries/RootCertificate.js +100 -0
  44. package/dist/interfaces/queries/RootCertificate.js.map +1 -0
  45. package/dist/interfaces/queries/Subscription.d.ts +1 -0
  46. package/dist/interfaces/queries/Subscription.js +37 -0
  47. package/dist/interfaces/queries/Subscription.js.map +1 -0
  48. package/dist/interfaces/queries/Tariff.d.ts +5 -0
  49. package/dist/interfaces/queries/Tariff.js +17 -0
  50. package/dist/interfaces/queries/Tariff.js.map +1 -0
  51. package/dist/interfaces/queries/Tenant.d.ts +5 -0
  52. package/dist/interfaces/queries/Tenant.js +41 -0
  53. package/dist/interfaces/queries/Tenant.js.map +1 -0
  54. package/dist/interfaces/queries/TlsCertificate.d.ts +5 -0
  55. package/dist/interfaces/queries/TlsCertificate.js +32 -0
  56. package/dist/interfaces/queries/TlsCertificate.js.map +1 -0
  57. package/dist/interfaces/queries/TransactionEvent.d.ts +6 -0
  58. package/dist/interfaces/queries/TransactionEvent.js +23 -0
  59. package/dist/interfaces/queries/TransactionEvent.js.map +1 -0
  60. package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.d.ts +5 -0
  61. package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.js +17 -0
  62. package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.js.map +1 -0
  63. package/dist/interfaces/queries/VariableAttribute.d.ts +21 -0
  64. package/dist/interfaces/queries/VariableAttribute.js +71 -0
  65. package/dist/interfaces/queries/VariableAttribute.js.map +1 -0
  66. package/dist/interfaces/queries/Websocket.d.ts +17 -0
  67. package/dist/interfaces/queries/Websocket.js +115 -0
  68. package/dist/interfaces/queries/Websocket.js.map +1 -0
  69. package/dist/interfaces/repositories.d.ts +164 -0
  70. package/dist/interfaces/repositories.js +5 -0
  71. package/dist/interfaces/repositories.js.map +1 -0
  72. package/dist/layers/sequelize/index.d.ts +51 -0
  73. package/dist/layers/sequelize/index.js +58 -0
  74. package/dist/layers/sequelize/index.js.map +1 -0
  75. package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.d.ts +6 -0
  76. package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.js +37 -0
  77. package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.js.map +1 -0
  78. package/dist/layers/sequelize/mapper/1.6/BootMapper.d.ts +4 -0
  79. package/dist/layers/sequelize/mapper/1.6/BootMapper.js +19 -0
  80. package/dist/layers/sequelize/mapper/1.6/BootMapper.js.map +1 -0
  81. package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.d.ts +66 -0
  82. package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.js +82 -0
  83. package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.js.map +1 -0
  84. package/dist/layers/sequelize/mapper/1.6/LocationMapper.d.ts +6 -0
  85. package/dist/layers/sequelize/mapper/1.6/LocationMapper.js +69 -0
  86. package/dist/layers/sequelize/mapper/1.6/LocationMapper.js.map +1 -0
  87. package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.d.ts +65 -0
  88. package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.js +431 -0
  89. package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.js.map +1 -0
  90. package/dist/layers/sequelize/mapper/1.6/index.d.ts +5 -0
  91. package/dist/layers/sequelize/mapper/1.6/index.js +9 -0
  92. package/dist/layers/sequelize/mapper/1.6/index.js.map +1 -0
  93. package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.d.ts +14 -0
  94. package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.js +153 -0
  95. package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.js.map +1 -0
  96. package/dist/layers/sequelize/mapper/2.0.1/BootMapper.d.ts +5 -0
  97. package/dist/layers/sequelize/mapper/2.0.1/BootMapper.js +29 -0
  98. package/dist/layers/sequelize/mapper/2.0.1/BootMapper.js.map +1 -0
  99. package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.d.ts +84 -0
  100. package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.js +152 -0
  101. package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.js.map +1 -0
  102. package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.d.ts +5 -0
  103. package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.js +23 -0
  104. package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.js.map +1 -0
  105. package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.d.ts +45 -0
  106. package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.js +375 -0
  107. package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.js.map +1 -0
  108. package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.d.ts +5 -0
  109. package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.js +18 -0
  110. package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.js.map +1 -0
  111. package/dist/layers/sequelize/mapper/2.0.1/index.d.ts +6 -0
  112. package/dist/layers/sequelize/mapper/2.0.1/index.js +10 -0
  113. package/dist/layers/sequelize/mapper/2.0.1/index.js.map +1 -0
  114. package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.d.ts +45 -0
  115. package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.js +137 -0
  116. package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.js.map +1 -0
  117. package/dist/layers/sequelize/model/AsyncJob/index.d.ts +1 -0
  118. package/dist/layers/sequelize/model/AsyncJob/index.js +5 -0
  119. package/dist/layers/sequelize/model/AsyncJob/index.js.map +1 -0
  120. package/dist/layers/sequelize/model/Authorization/Authorization.d.ts +29 -0
  121. package/dist/layers/sequelize/model/Authorization/Authorization.js +122 -0
  122. package/dist/layers/sequelize/model/Authorization/Authorization.js.map +1 -0
  123. package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.d.ts +39 -0
  124. package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.js +141 -0
  125. package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.js.map +1 -0
  126. package/dist/layers/sequelize/model/Authorization/LocalListVersion.d.ts +15 -0
  127. package/dist/layers/sequelize/model/Authorization/LocalListVersion.js +74 -0
  128. package/dist/layers/sequelize/model/Authorization/LocalListVersion.js.map +1 -0
  129. package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.d.ts +11 -0
  130. package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.js +69 -0
  131. package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.js.map +1 -0
  132. package/dist/layers/sequelize/model/Authorization/SendLocalList.d.ts +17 -0
  133. package/dist/layers/sequelize/model/Authorization/SendLocalList.js +108 -0
  134. package/dist/layers/sequelize/model/Authorization/SendLocalList.js.map +1 -0
  135. package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.d.ts +11 -0
  136. package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.js +69 -0
  137. package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.js.map +1 -0
  138. package/dist/layers/sequelize/model/Authorization/index.d.ts +6 -0
  139. package/dist/layers/sequelize/model/Authorization/index.js +10 -0
  140. package/dist/layers/sequelize/model/Authorization/index.js.map +1 -0
  141. package/dist/layers/sequelize/model/AuthorizationTenant.d.ts +5 -0
  142. package/dist/layers/sequelize/model/AuthorizationTenant.js +32 -0
  143. package/dist/layers/sequelize/model/AuthorizationTenant.js.map +1 -0
  144. package/dist/layers/sequelize/model/BaseModelWithTenant.d.ts +8 -0
  145. package/dist/layers/sequelize/model/BaseModelWithTenant.js +50 -0
  146. package/dist/layers/sequelize/model/BaseModelWithTenant.js.map +1 -0
  147. package/dist/layers/sequelize/model/Boot.d.ts +29 -0
  148. package/dist/layers/sequelize/model/Boot.js +112 -0
  149. package/dist/layers/sequelize/model/Boot.js.map +1 -0
  150. package/dist/layers/sequelize/model/Cdrs/Cdrs.d.ts +105 -0
  151. package/dist/layers/sequelize/model/Cdrs/Cdrs.js +180 -0
  152. package/dist/layers/sequelize/model/Cdrs/Cdrs.js.map +1 -0
  153. package/dist/layers/sequelize/model/Cdrs/index.d.ts +1 -0
  154. package/dist/layers/sequelize/model/Cdrs/index.js +2 -0
  155. package/dist/layers/sequelize/model/Cdrs/index.js.map +1 -0
  156. package/dist/layers/sequelize/model/Certificate/Certificate.d.ts +27 -0
  157. package/dist/layers/sequelize/model/Certificate/Certificate.js +128 -0
  158. package/dist/layers/sequelize/model/Certificate/Certificate.js.map +1 -0
  159. package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.d.ts +17 -0
  160. package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.js +95 -0
  161. package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.js.map +1 -0
  162. package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.d.ts +17 -0
  163. package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.js +98 -0
  164. package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.js.map +1 -0
  165. package/dist/layers/sequelize/model/Certificate/InstalledCertificate.d.ts +18 -0
  166. package/dist/layers/sequelize/model/Certificate/InstalledCertificate.js +108 -0
  167. package/dist/layers/sequelize/model/Certificate/InstalledCertificate.js.map +1 -0
  168. package/dist/layers/sequelize/model/Certificate/index.d.ts +11 -0
  169. package/dist/layers/sequelize/model/Certificate/index.js +17 -0
  170. package/dist/layers/sequelize/model/Certificate/index.js.map +1 -0
  171. package/dist/layers/sequelize/model/ChangeConfiguration.d.ts +13 -0
  172. package/dist/layers/sequelize/model/ChangeConfiguration.js +80 -0
  173. package/dist/layers/sequelize/model/ChangeConfiguration.js.map +1 -0
  174. package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.d.ts +27 -0
  175. package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.js +99 -0
  176. package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.js.map +1 -0
  177. package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.d.ts +31 -0
  178. package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.js +141 -0
  179. package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.js.map +1 -0
  180. package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.d.ts +28 -0
  181. package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.js +118 -0
  182. package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.js.map +1 -0
  183. package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.d.ts +16 -0
  184. package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.js +86 -0
  185. package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.js.map +1 -0
  186. package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.d.ts +24 -0
  187. package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.js +91 -0
  188. package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.js.map +1 -0
  189. package/dist/layers/sequelize/model/ChargingProfile/index.d.ts +5 -0
  190. package/dist/layers/sequelize/model/ChargingProfile/index.js +9 -0
  191. package/dist/layers/sequelize/model/ChargingProfile/index.js.map +1 -0
  192. package/dist/layers/sequelize/model/ChargingStationSecurityInfo.d.ts +14 -0
  193. package/dist/layers/sequelize/model/ChargingStationSecurityInfo.js +76 -0
  194. package/dist/layers/sequelize/model/ChargingStationSecurityInfo.js.map +1 -0
  195. package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.d.ts +14 -0
  196. package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.js +85 -0
  197. package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.js.map +1 -0
  198. package/dist/layers/sequelize/model/ChargingStationSequence/index.d.ts +1 -0
  199. package/dist/layers/sequelize/model/ChargingStationSequence/index.js +5 -0
  200. package/dist/layers/sequelize/model/ChargingStationSequence/index.js.map +1 -0
  201. package/dist/layers/sequelize/model/DeviceModel/Component.d.ts +26 -0
  202. package/dist/layers/sequelize/model/DeviceModel/Component.js +99 -0
  203. package/dist/layers/sequelize/model/DeviceModel/Component.js.map +1 -0
  204. package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.d.ts +11 -0
  205. package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.js +69 -0
  206. package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.js.map +1 -0
  207. package/dist/layers/sequelize/model/DeviceModel/EvseType.d.ts +17 -0
  208. package/dist/layers/sequelize/model/DeviceModel/EvseType.js +83 -0
  209. package/dist/layers/sequelize/model/DeviceModel/EvseType.js.map +1 -0
  210. package/dist/layers/sequelize/model/DeviceModel/Variable.d.ts +27 -0
  211. package/dist/layers/sequelize/model/DeviceModel/Variable.js +96 -0
  212. package/dist/layers/sequelize/model/DeviceModel/Variable.js.map +1 -0
  213. package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.d.ts +38 -0
  214. package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.js +242 -0
  215. package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.js.map +1 -0
  216. package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.d.ts +25 -0
  217. package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.js +90 -0
  218. package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.js.map +1 -0
  219. package/dist/layers/sequelize/model/DeviceModel/VariableStatus.d.ts +19 -0
  220. package/dist/layers/sequelize/model/DeviceModel/VariableStatus.js +75 -0
  221. package/dist/layers/sequelize/model/DeviceModel/VariableStatus.js.map +1 -0
  222. package/dist/layers/sequelize/model/DeviceModel/index.d.ts +6 -0
  223. package/dist/layers/sequelize/model/DeviceModel/index.js +10 -0
  224. package/dist/layers/sequelize/model/DeviceModel/index.js.map +1 -0
  225. package/dist/layers/sequelize/model/Location/ChargingStation.d.ts +56 -0
  226. package/dist/layers/sequelize/model/Location/ChargingStation.js +178 -0
  227. package/dist/layers/sequelize/model/Location/ChargingStation.js.map +1 -0
  228. package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.d.ts +27 -0
  229. package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.js +93 -0
  230. package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.js.map +1 -0
  231. package/dist/layers/sequelize/model/Location/Connector.d.ts +32 -0
  232. package/dist/layers/sequelize/model/Location/Connector.js +166 -0
  233. package/dist/layers/sequelize/model/Location/Connector.js.map +1 -0
  234. package/dist/layers/sequelize/model/Location/Evse.d.ts +28 -0
  235. package/dist/layers/sequelize/model/Location/Evse.js +122 -0
  236. package/dist/layers/sequelize/model/Location/Evse.js.map +1 -0
  237. package/dist/layers/sequelize/model/Location/LatestStatusNotification.d.ts +16 -0
  238. package/dist/layers/sequelize/model/Location/LatestStatusNotification.js +74 -0
  239. package/dist/layers/sequelize/model/Location/LatestStatusNotification.js.map +1 -0
  240. package/dist/layers/sequelize/model/Location/Location.d.ts +44 -0
  241. package/dist/layers/sequelize/model/Location/Location.js +182 -0
  242. package/dist/layers/sequelize/model/Location/Location.js.map +1 -0
  243. package/dist/layers/sequelize/model/Location/ServerNetworkProfile.d.ts +26 -0
  244. package/dist/layers/sequelize/model/Location/ServerNetworkProfile.js +120 -0
  245. package/dist/layers/sequelize/model/Location/ServerNetworkProfile.js.map +1 -0
  246. package/dist/layers/sequelize/model/Location/SetNetworkProfile.d.ts +52 -0
  247. package/dist/layers/sequelize/model/Location/SetNetworkProfile.js +120 -0
  248. package/dist/layers/sequelize/model/Location/SetNetworkProfile.js.map +1 -0
  249. package/dist/layers/sequelize/model/Location/StatusNotification.d.ts +20 -0
  250. package/dist/layers/sequelize/model/Location/StatusNotification.js +100 -0
  251. package/dist/layers/sequelize/model/Location/StatusNotification.js.map +1 -0
  252. package/dist/layers/sequelize/model/Location/index.d.ts +9 -0
  253. package/dist/layers/sequelize/model/Location/index.js +13 -0
  254. package/dist/layers/sequelize/model/Location/index.js.map +1 -0
  255. package/dist/layers/sequelize/model/MessageInfo/MessageInfo.d.ts +29 -0
  256. package/dist/layers/sequelize/model/MessageInfo/MessageInfo.js +126 -0
  257. package/dist/layers/sequelize/model/MessageInfo/MessageInfo.js.map +1 -0
  258. package/dist/layers/sequelize/model/MessageInfo/index.d.ts +1 -0
  259. package/dist/layers/sequelize/model/MessageInfo/index.js +5 -0
  260. package/dist/layers/sequelize/model/MessageInfo/index.js.map +1 -0
  261. package/dist/layers/sequelize/model/OCPPMessage.d.ts +21 -0
  262. package/dist/layers/sequelize/model/OCPPMessage.js +110 -0
  263. package/dist/layers/sequelize/model/OCPPMessage.js.map +1 -0
  264. package/dist/layers/sequelize/model/Reservation.d.ts +29 -0
  265. package/dist/layers/sequelize/model/Reservation.js +116 -0
  266. package/dist/layers/sequelize/model/Reservation.js.map +1 -0
  267. package/dist/layers/sequelize/model/SecurityEvent.d.ts +18 -0
  268. package/dist/layers/sequelize/model/SecurityEvent.js +78 -0
  269. package/dist/layers/sequelize/model/SecurityEvent.js.map +1 -0
  270. package/dist/layers/sequelize/model/Subscription/Subscription.d.ts +16 -0
  271. package/dist/layers/sequelize/model/Subscription/Subscription.js +94 -0
  272. package/dist/layers/sequelize/model/Subscription/Subscription.js.map +1 -0
  273. package/dist/layers/sequelize/model/Subscription/index.d.ts +1 -0
  274. package/dist/layers/sequelize/model/Subscription/index.js +5 -0
  275. package/dist/layers/sequelize/model/Subscription/index.js.map +1 -0
  276. package/dist/layers/sequelize/model/Tariff/TariffElements.d.ts +12 -0
  277. package/dist/layers/sequelize/model/Tariff/TariffElements.js +57 -0
  278. package/dist/layers/sequelize/model/Tariff/TariffElements.js.map +1 -0
  279. package/dist/layers/sequelize/model/Tariff/Tariffs.d.ts +37 -0
  280. package/dist/layers/sequelize/model/Tariff/Tariffs.js +181 -0
  281. package/dist/layers/sequelize/model/Tariff/Tariffs.js.map +1 -0
  282. package/dist/layers/sequelize/model/Tariff/index.d.ts +1 -0
  283. package/dist/layers/sequelize/model/Tariff/index.js +5 -0
  284. package/dist/layers/sequelize/model/Tariff/index.js.map +1 -0
  285. package/dist/layers/sequelize/model/Tenant.d.ts +96 -0
  286. package/dist/layers/sequelize/model/Tenant.js +268 -0
  287. package/dist/layers/sequelize/model/Tenant.js.map +1 -0
  288. package/dist/layers/sequelize/model/TenantPartner.d.ts +14 -0
  289. package/dist/layers/sequelize/model/TenantPartner.js +70 -0
  290. package/dist/layers/sequelize/model/TenantPartner.js.map +1 -0
  291. package/dist/layers/sequelize/model/TransactionEvent/MeterValue.d.ts +18 -0
  292. package/dist/layers/sequelize/model/TransactionEvent/MeterValue.js +98 -0
  293. package/dist/layers/sequelize/model/TransactionEvent/MeterValue.js.map +1 -0
  294. package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.d.ts +19 -0
  295. package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.js +96 -0
  296. package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.js.map +1 -0
  297. package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.d.ts +20 -0
  298. package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.js +100 -0
  299. package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.js.map +1 -0
  300. package/dist/layers/sequelize/model/TransactionEvent/Transaction.d.ts +48 -0
  301. package/dist/layers/sequelize/model/TransactionEvent/Transaction.js +216 -0
  302. package/dist/layers/sequelize/model/TransactionEvent/Transaction.js.map +1 -0
  303. package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.d.ts +30 -0
  304. package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.js +129 -0
  305. package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.js.map +1 -0
  306. package/dist/layers/sequelize/model/TransactionEvent/index.d.ts +5 -0
  307. package/dist/layers/sequelize/model/TransactionEvent/index.js +9 -0
  308. package/dist/layers/sequelize/model/TransactionEvent/index.js.map +1 -0
  309. package/dist/layers/sequelize/model/VariableMonitoring/EventData.d.ts +33 -0
  310. package/dist/layers/sequelize/model/VariableMonitoring/EventData.js +137 -0
  311. package/dist/layers/sequelize/model/VariableMonitoring/EventData.js.map +1 -0
  312. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.d.ts +28 -0
  313. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.js +113 -0
  314. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.js.map +1 -0
  315. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.d.ts +18 -0
  316. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.js +71 -0
  317. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.js.map +1 -0
  318. package/dist/layers/sequelize/model/VariableMonitoring/index.d.ts +3 -0
  319. package/dist/layers/sequelize/model/VariableMonitoring/index.js +7 -0
  320. package/dist/layers/sequelize/model/VariableMonitoring/index.js.map +1 -0
  321. package/dist/layers/sequelize/model/index.d.ts +22 -0
  322. package/dist/layers/sequelize/model/index.js +27 -0
  323. package/dist/layers/sequelize/model/index.js.map +1 -0
  324. package/dist/layers/sequelize/repository/AsyncJobStatus.d.ts +24 -0
  325. package/dist/layers/sequelize/repository/AsyncJobStatus.js +39 -0
  326. package/dist/layers/sequelize/repository/AsyncJobStatus.js.map +1 -0
  327. package/dist/layers/sequelize/repository/Authorization.d.ts +18 -0
  328. package/dist/layers/sequelize/repository/Authorization.js +51 -0
  329. package/dist/layers/sequelize/repository/Authorization.js.map +1 -0
  330. package/dist/layers/sequelize/repository/Base.d.ts +28 -0
  331. package/dist/layers/sequelize/repository/Base.js +135 -0
  332. package/dist/layers/sequelize/repository/Base.js.map +1 -0
  333. package/dist/layers/sequelize/repository/BaseJunction.d.ts +33 -0
  334. package/dist/layers/sequelize/repository/BaseJunction.js +178 -0
  335. package/dist/layers/sequelize/repository/BaseJunction.js.map +1 -0
  336. package/dist/layers/sequelize/repository/Boot.d.ts +20 -0
  337. package/dist/layers/sequelize/repository/Boot.js +78 -0
  338. package/dist/layers/sequelize/repository/Boot.js.map +1 -0
  339. package/dist/layers/sequelize/repository/Certificate.d.ts +11 -0
  340. package/dist/layers/sequelize/repository/Certificate.js +39 -0
  341. package/dist/layers/sequelize/repository/Certificate.js.map +1 -0
  342. package/dist/layers/sequelize/repository/ChangeConfiguration.d.ts +10 -0
  343. package/dist/layers/sequelize/repository/ChangeConfiguration.js +36 -0
  344. package/dist/layers/sequelize/repository/ChangeConfiguration.js.map +1 -0
  345. package/dist/layers/sequelize/repository/ChargingProfile.d.ts +25 -0
  346. package/dist/layers/sequelize/repository/ChargingProfile.js +156 -0
  347. package/dist/layers/sequelize/repository/ChargingProfile.js.map +1 -0
  348. package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.d.ts +12 -0
  349. package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.js +28 -0
  350. package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.js.map +1 -0
  351. package/dist/layers/sequelize/repository/ChargingStationSequence.d.ts +21 -0
  352. package/dist/layers/sequelize/repository/ChargingStationSequence.js +52 -0
  353. package/dist/layers/sequelize/repository/ChargingStationSequence.js.map +1 -0
  354. package/dist/layers/sequelize/repository/DeleteCertificateAttempt.d.ts +10 -0
  355. package/dist/layers/sequelize/repository/DeleteCertificateAttempt.js +13 -0
  356. package/dist/layers/sequelize/repository/DeleteCertificateAttempt.js.map +1 -0
  357. package/dist/layers/sequelize/repository/DeviceModel.d.ts +36 -0
  358. package/dist/layers/sequelize/repository/DeviceModel.js +417 -0
  359. package/dist/layers/sequelize/repository/DeviceModel.js.map +1 -0
  360. package/dist/layers/sequelize/repository/InstallCertificateAttempt.d.ts +10 -0
  361. package/dist/layers/sequelize/repository/InstallCertificateAttempt.js +13 -0
  362. package/dist/layers/sequelize/repository/InstallCertificateAttempt.js.map +1 -0
  363. package/dist/layers/sequelize/repository/InstalledCertificate.d.ts +10 -0
  364. package/dist/layers/sequelize/repository/InstalledCertificate.js +13 -0
  365. package/dist/layers/sequelize/repository/InstalledCertificate.js.map +1 -0
  366. package/dist/layers/sequelize/repository/LocalAuthList.d.ts +20 -0
  367. package/dist/layers/sequelize/repository/LocalAuthList.js +192 -0
  368. package/dist/layers/sequelize/repository/LocalAuthList.js.map +1 -0
  369. package/dist/layers/sequelize/repository/Location.d.ts +30 -0
  370. package/dist/layers/sequelize/repository/Location.js +263 -0
  371. package/dist/layers/sequelize/repository/Location.js.map +1 -0
  372. package/dist/layers/sequelize/repository/MessageInfo.d.ts +13 -0
  373. package/dist/layers/sequelize/repository/MessageInfo.js +55 -0
  374. package/dist/layers/sequelize/repository/MessageInfo.js.map +1 -0
  375. package/dist/layers/sequelize/repository/OCPPMessage.d.ts +12 -0
  376. package/dist/layers/sequelize/repository/OCPPMessage.js +65 -0
  377. package/dist/layers/sequelize/repository/OCPPMessage.js.map +1 -0
  378. package/dist/layers/sequelize/repository/RepositoryStore.d.ts +34 -0
  379. package/dist/layers/sequelize/repository/RepositoryStore.js +79 -0
  380. package/dist/layers/sequelize/repository/RepositoryStore.js.map +1 -0
  381. package/dist/layers/sequelize/repository/Reservation.d.ts +15 -0
  382. package/dist/layers/sequelize/repository/Reservation.js +68 -0
  383. package/dist/layers/sequelize/repository/Reservation.js.map +1 -0
  384. package/dist/layers/sequelize/repository/SecurityEvent.d.ts +18 -0
  385. package/dist/layers/sequelize/repository/SecurityEvent.js +46 -0
  386. package/dist/layers/sequelize/repository/SecurityEvent.js.map +1 -0
  387. package/dist/layers/sequelize/repository/ServerNetworkProfile.d.ts +14 -0
  388. package/dist/layers/sequelize/repository/ServerNetworkProfile.js +40 -0
  389. package/dist/layers/sequelize/repository/ServerNetworkProfile.js.map +1 -0
  390. package/dist/layers/sequelize/repository/Subscription.d.ts +20 -0
  391. package/dist/layers/sequelize/repository/Subscription.js +32 -0
  392. package/dist/layers/sequelize/repository/Subscription.js.map +1 -0
  393. package/dist/layers/sequelize/repository/Tariff.d.ts +15 -0
  394. package/dist/layers/sequelize/repository/Tariff.js +64 -0
  395. package/dist/layers/sequelize/repository/Tariff.js.map +1 -0
  396. package/dist/layers/sequelize/repository/Tenant.d.ts +11 -0
  397. package/dist/layers/sequelize/repository/Tenant.js +21 -0
  398. package/dist/layers/sequelize/repository/Tenant.js.map +1 -0
  399. package/dist/layers/sequelize/repository/TransactionEvent.d.ts +46 -0
  400. package/dist/layers/sequelize/repository/TransactionEvent.js +597 -0
  401. package/dist/layers/sequelize/repository/TransactionEvent.js.map +1 -0
  402. package/dist/layers/sequelize/repository/VariableMonitoring.d.ts +20 -0
  403. package/dist/layers/sequelize/repository/VariableMonitoring.js +168 -0
  404. package/dist/layers/sequelize/repository/VariableMonitoring.js.map +1 -0
  405. package/dist/layers/sequelize/util.d.ts +18 -0
  406. package/dist/layers/sequelize/util.js +143 -0
  407. package/dist/layers/sequelize/util.js.map +1 -0
  408. package/dist/util/CryptoUtils.d.ts +6 -0
  409. package/dist/util/CryptoUtils.js +14 -0
  410. package/dist/util/CryptoUtils.js.map +1 -0
  411. package/dist/util/PasswordHashAlgorithm.d.ts +15 -0
  412. package/dist/util/PasswordHashAlgorithm.js +2 -0
  413. package/dist/util/PasswordHashAlgorithm.js.map +1 -0
  414. package/dist/util/Pbkdf2.d.ts +9 -0
  415. package/dist/util/Pbkdf2.js +20 -0
  416. package/dist/util/Pbkdf2.js.map +1 -0
  417. 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,6 @@
1
+ import { Pbkdf2 } from './Pbkdf2.js';
2
+ export declare class CryptoUtils {
3
+ static passwordHashAlgorithm: Pbkdf2;
4
+ static getPasswordHash(password: string): string;
5
+ static isPasswordMatch(storedValue: string, inputPassword: string): boolean;
6
+ }
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PasswordHashAlgorithm.js.map
@@ -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
+ }