build(deps-dev): apply updates
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / Requests.ts
index ed9dac1a71fe2d8de071adb90093a945de149eff..38cb22fc7377d8348129e7b18675d36f5b2c8f5b 100644 (file)
-import type ChargingStation from '../../charging-station/ChargingStation';
-import OCPPError from '../../exception/OCPPError';
-import { JsonType } from '../JsonType';
 import { OCPP16DiagnosticsStatus } from './1.6/DiagnosticsStatus';
-import { OCPP16MeterValuesRequest } from './1.6/MeterValues';
+import type { OCPP16MeterValuesRequest } from './1.6/MeterValues';
 import {
   OCPP16AvailabilityType,
-  OCPP16BootNotificationRequest,
-  OCPP16HeartbeatRequest,
+  type OCPP16BootNotificationRequest,
+  type OCPP16CancelReservationRequest,
+  type OCPP16DataTransferRequest,
+  type OCPP16DiagnosticsStatusNotificationRequest,
+  OCPP16FirmwareStatus,
+  type OCPP16FirmwareStatusNotificationRequest,
+  type OCPP16HeartbeatRequest,
   OCPP16IncomingRequestCommand,
+  OCPP16MessageTrigger,
   OCPP16RequestCommand,
-  OCPP16StatusNotificationRequest,
+  type OCPP16ReserveNowRequest,
+  type OCPP16StatusNotificationRequest,
 } from './1.6/Requests';
-import { MessageType } from './MessageType';
-
-export type RequestCommand = OCPP16RequestCommand;
+import { OperationalStatusEnumType } from './2.0/Common';
+import {
+  type OCPP20BootNotificationRequest,
+  OCPP20IncomingRequestCommand,
+  OCPP20RequestCommand,
+  type OCPP20StatusNotificationRequest,
+} from './2.0/Requests';
+import type { MessageType } from './MessageType';
+import type { ChargingStation } from '../../charging-station';
+import type { OCPPError } from '../../exception';
+import type { JsonType } from '../JsonType';
 
 export const RequestCommand = {
   ...OCPP16RequestCommand,
-};
+  ...OCPP20RequestCommand,
+} as const;
+export type RequestCommand = OCPP16RequestCommand | OCPP20RequestCommand;
 
 export type OutgoingRequest = [MessageType.CALL_MESSAGE, string, RequestCommand, JsonType];
 
-export interface RequestParams {
+export type RequestParams = {
   skipBufferingOnError?: boolean;
   triggerMessage?: boolean;
-}
-
-export type IncomingRequestCommand = OCPP16IncomingRequestCommand;
+  throwError?: boolean;
+};
 
 export const IncomingRequestCommand = {
   ...OCPP16IncomingRequestCommand,
-};
+  ...OCPP20IncomingRequestCommand,
+} as const;
+export type IncomingRequestCommand = OCPP16IncomingRequestCommand | OCPP20IncomingRequestCommand;
 
 export type IncomingRequest = [MessageType.CALL_MESSAGE, string, IncomingRequestCommand, JsonType];
 
+export type ResponseCallback = (payload: JsonType, requestPayload: JsonType) => void;
+
+export type ErrorCallback = (error: OCPPError, requestStatistic?: boolean) => void;
+
 export type CachedRequest = [
-  (payload: JsonType, requestPayload: JsonType) => void,
-  (error: OCPPError, requestStatistic?: boolean) => void,
+  ResponseCallback,
+  ErrorCallback,
   RequestCommand | IncomingRequestCommand,
-  JsonType
+  JsonType,
 ];
 
-export type BootNotificationRequest = OCPP16BootNotificationRequest;
+export const MessageTrigger = {
+  ...OCPP16MessageTrigger,
+} as const;
+export type MessageTrigger = OCPP16MessageTrigger;
+
+export type BootNotificationRequest = OCPP16BootNotificationRequest | OCPP20BootNotificationRequest;
 
 export type HeartbeatRequest = OCPP16HeartbeatRequest;
 
-export type StatusNotificationRequest = OCPP16StatusNotificationRequest;
+export type StatusNotificationRequest =
+  | OCPP16StatusNotificationRequest
+  | OCPP20StatusNotificationRequest;
 
 export type MeterValuesRequest = OCPP16MeterValuesRequest;
 
+export type DataTransferRequest = OCPP16DataTransferRequest;
+
+export type DiagnosticsStatusNotificationRequest = OCPP16DiagnosticsStatusNotificationRequest;
+
+export type FirmwareStatusNotificationRequest = OCPP16FirmwareStatusNotificationRequest;
+
 export type IncomingRequestHandler = (
   chargingStation: ChargingStation,
-  commandPayload: JsonType
+  commandPayload: JsonType,
 ) => JsonType | Promise<JsonType>;
 
-export type AvailabilityType = OCPP16AvailabilityType;
-
 export const AvailabilityType = {
   ...OCPP16AvailabilityType,
-};
-
-export type DiagnosticsStatus = OCPP16DiagnosticsStatus;
+  ...OperationalStatusEnumType,
+} as const;
+export type AvailabilityType = OCPP16AvailabilityType | OperationalStatusEnumType;
 
 export const DiagnosticsStatus = {
   ...OCPP16DiagnosticsStatus,
-};
+} as const;
+export type DiagnosticsStatus = OCPP16DiagnosticsStatus;
+
+export const FirmwareStatus = {
+  ...OCPP16FirmwareStatus,
+} as const;
+export type FirmwareStatus = OCPP16FirmwareStatus;
 
 export type ResponseType = JsonType | OCPPError;
+
+export type ReserveNowRequest = OCPP16ReserveNowRequest;
+
+export type CancelReservationRequest = OCPP16CancelReservationRequest;