@ocpp-debugkit/toolkit 0.2.1 → 0.3.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 (67) hide show
  1. package/README.md +234 -12
  2. package/dist/cli/commands/anonymize.d.ts +15 -0
  3. package/dist/cli/commands/anonymize.d.ts.map +1 -0
  4. package/dist/cli/commands/anonymize.js +104 -0
  5. package/dist/cli/commands/anonymize.js.map +1 -0
  6. package/dist/cli/commands/ci.d.ts +10 -0
  7. package/dist/cli/commands/ci.d.ts.map +1 -0
  8. package/dist/cli/commands/ci.js +96 -0
  9. package/dist/cli/commands/ci.js.map +1 -0
  10. package/dist/cli/commands/diff.d.ts +10 -0
  11. package/dist/cli/commands/diff.d.ts.map +1 -0
  12. package/dist/cli/commands/diff.js +71 -0
  13. package/dist/cli/commands/diff.js.map +1 -0
  14. package/dist/cli/index.js +27 -0
  15. package/dist/cli/index.js.map +1 -1
  16. package/dist/core/assertions.d.ts +36 -0
  17. package/dist/core/assertions.d.ts.map +1 -0
  18. package/dist/core/assertions.js +335 -0
  19. package/dist/core/assertions.js.map +1 -0
  20. package/dist/core/detection.d.ts +9 -1
  21. package/dist/core/detection.d.ts.map +1 -1
  22. package/dist/core/detection.js +344 -1
  23. package/dist/core/detection.js.map +1 -1
  24. package/dist/core/diff.d.ts +68 -0
  25. package/dist/core/diff.d.ts.map +1 -0
  26. package/dist/core/diff.js +199 -0
  27. package/dist/core/diff.js.map +1 -0
  28. package/dist/core/index.d.ts +4 -0
  29. package/dist/core/index.d.ts.map +1 -1
  30. package/dist/core/index.js +4 -0
  31. package/dist/core/index.js.map +1 -1
  32. package/dist/core/types.d.ts +77 -2
  33. package/dist/core/types.d.ts.map +1 -1
  34. package/dist/index.d.ts +3 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/scenarios/__scenarios__/heartbeat-irregular.d.ts +51 -0
  39. package/dist/scenarios/__scenarios__/heartbeat-irregular.d.ts.map +1 -0
  40. package/dist/scenarios/__scenarios__/heartbeat-irregular.js +81 -0
  41. package/dist/scenarios/__scenarios__/heartbeat-irregular.js.map +1 -0
  42. package/dist/scenarios/__scenarios__/meter-anomaly.d.ts +115 -0
  43. package/dist/scenarios/__scenarios__/meter-anomaly.d.ts.map +1 -0
  44. package/dist/scenarios/__scenarios__/meter-anomaly.js +152 -0
  45. package/dist/scenarios/__scenarios__/meter-anomaly.js.map +1 -0
  46. package/dist/scenarios/__scenarios__/short-session.d.ts +111 -0
  47. package/dist/scenarios/__scenarios__/short-session.d.ts.map +1 -0
  48. package/dist/scenarios/__scenarios__/short-session.js +129 -0
  49. package/dist/scenarios/__scenarios__/short-session.js.map +1 -0
  50. package/dist/scenarios/__scenarios__/slow-csms-response.d.ts +52 -0
  51. package/dist/scenarios/__scenarios__/slow-csms-response.d.ts.map +1 -0
  52. package/dist/scenarios/__scenarios__/slow-csms-response.js +61 -0
  53. package/dist/scenarios/__scenarios__/slow-csms-response.js.map +1 -0
  54. package/dist/scenarios/__scenarios__/unexpected-start.js +3 -3
  55. package/dist/scenarios/__scenarios__/unresponsive-csms.d.ts +53 -0
  56. package/dist/scenarios/__scenarios__/unresponsive-csms.d.ts.map +1 -0
  57. package/dist/scenarios/__scenarios__/unresponsive-csms.js +53 -0
  58. package/dist/scenarios/__scenarios__/unresponsive-csms.js.map +1 -0
  59. package/dist/scenarios/compare.d.ts +39 -0
  60. package/dist/scenarios/compare.d.ts.map +1 -0
  61. package/dist/scenarios/compare.js +77 -0
  62. package/dist/scenarios/compare.js.map +1 -0
  63. package/dist/scenarios/index.d.ts +10 -3
  64. package/dist/scenarios/index.d.ts.map +1 -1
  65. package/dist/scenarios/index.js +22 -1
  66. package/dist/scenarios/index.js.map +1 -1
  67. package/package.json +4 -4
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Failure detection — analyzes events and sessions for known failure patterns.
3
3
  *
4
- * 10 detection rules (v0.1 + v0.2):
4
+ * 16 detection rules (v0.1 + v0.2 + v0.3):
5
5
  *
6
6
  * v0.1:
7
7
  * 1. FAILED_AUTHORIZATION — Authorize response with idTagInfo.status = "Invalid"
@@ -17,6 +17,14 @@
17
17
  * 9. DIAGNOSTICS_FAILURE — DiagnosticsStatusNotification indicating failure
18
18
  * 10. FIRMWARE_UPDATE_FAILURE — FirmwareStatusNotification indicating failure
19
19
  *
20
+ * v0.3:
21
+ * 11. SUSPICIOUS_SESSION_DURATION — session < 60s or > 24h
22
+ * 12. SLOW_RESPONSE — gap between Call and matching CallResult/CallError > 10s
23
+ * 13. HEARTBEAT_INTERVAL_VIOLATION — heartbeat intervals deviate >50% from expected
24
+ * 14. METER_VALUE_ANOMALY — non-monotonic or negative meter readings
25
+ * 15. UNRESPONSIVE_CSMS — Call with no matching CallResult or CallError
26
+ * 16. REPEATED_BOOT_NOTIFICATION — 2+ BootNotification calls within 5 minutes
27
+ *
20
28
  * @see ADR-0003
21
29
  */
22
30
  // ---------------------------------------------------------------------------
@@ -88,6 +96,48 @@ const SUGGESTED_STEPS = {
88
96
  'Retry the firmware update after addressing the failure cause',
89
97
  'Contact the firmware provider if the image is defective',
90
98
  ],
99
+ SUSPICIOUS_SESSION_DURATION: [
100
+ 'Review the session duration in the trace timeline',
101
+ 'For very short sessions: check if the transaction was aborted or authorization failed mid-session',
102
+ 'For very long sessions: check if the station forgot to send StopTransaction',
103
+ 'Verify the station clock is synchronized (NTP)',
104
+ 'Check if the session spans a maintenance window or firmware update',
105
+ ],
106
+ SLOW_RESPONSE: [
107
+ 'Check the CSMS processing time for the affected message type',
108
+ 'Review system load and database performance on the CSMS',
109
+ 'Verify network latency between station and CSMS',
110
+ 'Check if the CSMS is running a long-running synchronous operation',
111
+ 'Review CSMS logs for the specific message ID',
112
+ ],
113
+ HEARTBEAT_INTERVAL_VIOLATION: [
114
+ 'Verify the heartbeat interval configured on the station matches the BootNotification response',
115
+ 'Check for network instability causing delayed heartbeats',
116
+ 'Review the station clock synchronization (NTP)',
117
+ 'Check if the station firmware has a known heartbeat timing bug',
118
+ 'Inspect the WebSocket connection stability',
119
+ ],
120
+ METER_VALUE_ANOMALY: [
121
+ 'Verify the meter is functioning correctly and is properly calibrated',
122
+ 'Check for meter communication errors or data corruption',
123
+ 'Review the meter value sampling and reporting configuration',
124
+ 'Inspect for potential tampering or hardware malfunction',
125
+ 'Contact the meter vendor if the issue persists',
126
+ ],
127
+ UNRESPONSIVE_CSMS: [
128
+ 'Check if the CSMS was online and accepting connections during the session',
129
+ 'Verify the WebSocket connection was stable at the time of the unanswered Call',
130
+ 'Review CSMS logs for the specific message ID',
131
+ 'Check if the CSMS crashed or restarted during the session',
132
+ 'Inspect the network path between station and CSMS for packet loss',
133
+ ],
134
+ REPEATED_BOOT_NOTIFICATION: [
135
+ 'Check whether the station rebooted unexpectedly',
136
+ 'Review station power and network stability during the boot window',
137
+ 'Inspect station firmware logs for watchdog resets or startup failures',
138
+ 'Verify the CSMS accepts the BootNotification and returns a valid interval',
139
+ 'Contact the station vendor if repeated boots persist',
140
+ ],
91
141
  };
92
142
  const SEVERITY = {
93
143
  FAILED_AUTHORIZATION: 'warning',
@@ -100,6 +150,12 @@ const SEVERITY = {
100
150
  STATUS_TRANSITION_VIOLATION: 'warning',
101
151
  DIAGNOSTICS_FAILURE: 'critical',
102
152
  FIRMWARE_UPDATE_FAILURE: 'warning',
153
+ SUSPICIOUS_SESSION_DURATION: 'warning',
154
+ SLOW_RESPONSE: 'warning',
155
+ HEARTBEAT_INTERVAL_VIOLATION: 'info',
156
+ METER_VALUE_ANOMALY: 'warning',
157
+ UNRESPONSIVE_CSMS: 'critical',
158
+ REPEATED_BOOT_NOTIFICATION: 'warning',
103
159
  };
104
160
  // ---------------------------------------------------------------------------
105
161
  // Payload extraction helpers
@@ -289,6 +345,13 @@ export function detectFailures(events, sessions) {
289
345
  failures.push(...detectStatusTransitionViolation(events));
290
346
  failures.push(...detectDiagnosticsFailure(events));
291
347
  failures.push(...detectFirmwareUpdateFailure(events));
348
+ // v0.3 rules
349
+ failures.push(...detectSuspiciousSessionDuration(events, sessions));
350
+ failures.push(...detectSlowResponse(events));
351
+ failures.push(...detectHeartbeatIntervalViolation(events));
352
+ failures.push(...detectMeterValueAnomaly(events, sessions));
353
+ failures.push(...detectUnresponsiveCsms(events));
354
+ failures.push(...detectRepeatedBootNotification(events));
292
355
  return failures;
293
356
  }
294
357
  // ---------------------------------------------------------------------------
@@ -555,4 +618,284 @@ function detectFirmwareUpdateFailure(events) {
555
618
  }
556
619
  return failures;
557
620
  }
621
+ // ---------------------------------------------------------------------------
622
+ // v0.3 detection rules
623
+ // ---------------------------------------------------------------------------
624
+ /** Minimum session duration to not be suspicious: 60 seconds. */
625
+ const MIN_SESSION_DURATION_MS = 60_000;
626
+ /** Maximum session duration to not be suspicious: 24 hours. */
627
+ const MAX_SESSION_DURATION_MS = 24 * 60 * 60 * 1000;
628
+ /** Threshold for slow response: 10 seconds. */
629
+ const SLOW_RESPONSE_THRESHOLD_MS = 10_000;
630
+ /** Deviation threshold for heartbeat interval violation: 50%. */
631
+ const HEARTBEAT_DEVIATION_THRESHOLD = 0.5;
632
+ /** Time window for repeated BootNotification calls: 5 minutes. */
633
+ const REPEATED_BOOT_NOTIFICATION_WINDOW_MS = 5 * 60 * 1000;
634
+ /**
635
+ * Rule 11: SUSPICIOUS_SESSION_DURATION
636
+ * Detects sessions that are suspiciously short (< 60s) or long (> 24h).
637
+ */
638
+ function detectSuspiciousSessionDuration(_events, sessions) {
639
+ const failures = [];
640
+ for (const session of sessions) {
641
+ if (session.transactionId === null)
642
+ continue;
643
+ if (session.startTime === null || session.endTime === null)
644
+ continue;
645
+ const durationMs = session.endTime - session.startTime;
646
+ if (durationMs < MIN_SESSION_DURATION_MS) {
647
+ failures.push({
648
+ code: 'SUSPICIOUS_SESSION_DURATION',
649
+ description: `Session ${session.sessionId} (transaction ${session.transactionId}) lasted only ${durationMs}ms — suspiciously short session may indicate aborted start or authorization failure`,
650
+ severity: SEVERITY.SUSPICIOUS_SESSION_DURATION,
651
+ eventIds: session.events
652
+ .filter((e) => e.messageType === 'Call' &&
653
+ (e.action === 'StartTransaction' || e.action === 'StopTransaction'))
654
+ .map((e) => e.id),
655
+ suggestedSteps: SUGGESTED_STEPS.SUSPICIOUS_SESSION_DURATION,
656
+ });
657
+ }
658
+ else if (durationMs > MAX_SESSION_DURATION_MS) {
659
+ failures.push({
660
+ code: 'SUSPICIOUS_SESSION_DURATION',
661
+ description: `Session ${session.sessionId} (transaction ${session.transactionId}) lasted ${Math.round(durationMs / (60 * 60 * 1000))} hours — suspiciously long session may indicate forgotten charging or missing StopTransaction`,
662
+ severity: SEVERITY.SUSPICIOUS_SESSION_DURATION,
663
+ eventIds: session.events
664
+ .filter((e) => e.messageType === 'Call' &&
665
+ (e.action === 'StartTransaction' || e.action === 'StopTransaction'))
666
+ .map((e) => e.id),
667
+ suggestedSteps: SUGGESTED_STEPS.SUSPICIOUS_SESSION_DURATION,
668
+ });
669
+ }
670
+ }
671
+ return failures;
672
+ }
673
+ /**
674
+ * Rule 12: SLOW_RESPONSE
675
+ * Detects when the gap between a Call and its matching CallResult/CallError
676
+ * exceeds the threshold (default 10s).
677
+ */
678
+ function detectSlowResponse(events) {
679
+ const failures = [];
680
+ // Build a map of messageId → CallResult/CallError timestamps
681
+ const responseMap = new Map();
682
+ for (const event of events) {
683
+ if ((event.messageType === 'CallResult' || event.messageType === 'CallError') &&
684
+ event.timestamp !== null) {
685
+ responseMap.set(event.messageId, event.timestamp);
686
+ }
687
+ }
688
+ for (const call of events) {
689
+ if (call.messageType !== 'Call' || call.timestamp === null)
690
+ continue;
691
+ const responseTime = responseMap.get(call.messageId);
692
+ if (responseTime === undefined)
693
+ continue; // No matching response — handled by UNRESPONSIVE_CSMS
694
+ const gapMs = responseTime - call.timestamp;
695
+ if (gapMs > SLOW_RESPONSE_THRESHOLD_MS) {
696
+ failures.push({
697
+ code: 'SLOW_RESPONSE',
698
+ description: `Response to ${call.action} (messageId: ${call.messageId}) took ${Math.round(gapMs / 1000)}s — exceeds ${SLOW_RESPONSE_THRESHOLD_MS / 1000}s threshold`,
699
+ severity: SEVERITY.SLOW_RESPONSE,
700
+ eventIds: [call.id],
701
+ suggestedSteps: SUGGESTED_STEPS.SLOW_RESPONSE,
702
+ });
703
+ }
704
+ }
705
+ return failures;
706
+ }
707
+ /**
708
+ * Rule 13: HEARTBEAT_INTERVAL_VIOLATION
709
+ * Detects when heartbeat intervals deviate >50% from the expected interval
710
+ * (from BootNotification response, or default 60s).
711
+ */
712
+ function detectHeartbeatIntervalViolation(events) {
713
+ const failures = [];
714
+ // Extract expected heartbeat interval from BootNotification response
715
+ let expectedIntervalMs = DEFAULT_HEARTBEAT_INTERVAL_MS;
716
+ const bootIndex = events.findIndex((e) => e.messageType === 'Call' && e.action === 'BootNotification');
717
+ if (bootIndex !== -1) {
718
+ const bootEvent = events[bootIndex];
719
+ if (bootEvent) {
720
+ const bootResponse = events.find((e) => e.messageType === 'CallResult' &&
721
+ e.messageId === bootEvent.messageId &&
722
+ typeof e.payload?.interval === 'number');
723
+ if (bootResponse) {
724
+ const interval = bootResponse.payload.interval;
725
+ expectedIntervalMs = interval * 1000;
726
+ }
727
+ }
728
+ }
729
+ // Collect heartbeat timestamps in order
730
+ const heartbeatTimestamps = events
731
+ .filter((e) => e.messageType === 'Call' && e.action === 'Heartbeat' && e.timestamp !== null)
732
+ .map((e) => ({ id: e.id, timestamp: e.timestamp }));
733
+ if (heartbeatTimestamps.length < 2)
734
+ return failures;
735
+ for (let i = 1; i < heartbeatTimestamps.length; i++) {
736
+ const prev = heartbeatTimestamps[i - 1];
737
+ const curr = heartbeatTimestamps[i];
738
+ if (!prev || !curr)
739
+ continue;
740
+ const actualGap = curr.timestamp - prev.timestamp;
741
+ const deviation = Math.abs(actualGap - expectedIntervalMs) / expectedIntervalMs;
742
+ if (deviation > HEARTBEAT_DEVIATION_THRESHOLD) {
743
+ failures.push({
744
+ code: 'HEARTBEAT_INTERVAL_VIOLATION',
745
+ description: `Heartbeat interval deviation: ${Math.round(actualGap / 1000)}s between heartbeats, expected ~${Math.round(expectedIntervalMs / 1000)}s (${Math.round(deviation * 100)}% deviation)`,
746
+ severity: SEVERITY.HEARTBEAT_INTERVAL_VIOLATION,
747
+ eventIds: [prev.id, curr.id],
748
+ suggestedSteps: SUGGESTED_STEPS.HEARTBEAT_INTERVAL_VIOLATION,
749
+ });
750
+ }
751
+ }
752
+ return failures;
753
+ }
754
+ /**
755
+ * Rule 14: METER_VALUE_ANOMALY
756
+ * Detects non-monotonic (decreasing) or negative meter readings during
757
+ * an active transaction.
758
+ */
759
+ function detectMeterValueAnomaly(_events, sessions) {
760
+ const failures = [];
761
+ for (const session of sessions) {
762
+ if (session.transactionId === null)
763
+ continue;
764
+ // Collect meter values from MeterValues calls in order
765
+ const meterEvents = session.events.filter((e) => e.messageType === 'Call' && e.action === 'MeterValues');
766
+ if (meterEvents.length === 0)
767
+ continue;
768
+ // Extract numeric meter values from the payload
769
+ // OCPP 1.6 MeterValues: { connectorId, transactionId, meterValue: [{ timestamp, sampledValue: [{ value, ... }] }] }
770
+ const readings = [];
771
+ for (const event of meterEvents) {
772
+ const payload = event.payload;
773
+ const meterValues = payload?.meterValue;
774
+ if (!Array.isArray(meterValues))
775
+ continue;
776
+ for (const mv of meterValues) {
777
+ const sampledValues = mv?.sampledValue;
778
+ if (!Array.isArray(sampledValues))
779
+ continue;
780
+ for (const sv of sampledValues) {
781
+ const rawValue = sv?.value;
782
+ if (typeof rawValue === 'string') {
783
+ const numValue = Number.parseFloat(rawValue);
784
+ if (!Number.isNaN(numValue)) {
785
+ readings.push({ eventId: event.id, value: numValue });
786
+ }
787
+ }
788
+ else if (typeof rawValue === 'number') {
789
+ readings.push({ eventId: event.id, value: rawValue });
790
+ }
791
+ }
792
+ }
793
+ }
794
+ if (readings.length === 0)
795
+ continue;
796
+ // Check for negative values
797
+ for (const reading of readings) {
798
+ if (reading.value < 0) {
799
+ failures.push({
800
+ code: 'METER_VALUE_ANOMALY',
801
+ description: `Negative meter value detected: ${reading.value} in session ${session.sessionId} (transaction ${session.transactionId})`,
802
+ severity: SEVERITY.METER_VALUE_ANOMALY,
803
+ eventIds: [reading.eventId],
804
+ suggestedSteps: SUGGESTED_STEPS.METER_VALUE_ANOMALY,
805
+ });
806
+ }
807
+ }
808
+ // Check for non-monotonic (decreasing) values
809
+ for (let i = 1; i < readings.length; i++) {
810
+ const prev = readings[i - 1];
811
+ const curr = readings[i];
812
+ if (!prev || !curr)
813
+ continue;
814
+ if (curr.value < prev.value) {
815
+ failures.push({
816
+ code: 'METER_VALUE_ANOMALY',
817
+ description: `Non-monotonic meter reading: value decreased from ${prev.value} to ${curr.value} in session ${session.sessionId} (transaction ${session.transactionId})`,
818
+ severity: SEVERITY.METER_VALUE_ANOMALY,
819
+ eventIds: [prev.eventId, curr.eventId],
820
+ suggestedSteps: SUGGESTED_STEPS.METER_VALUE_ANOMALY,
821
+ });
822
+ }
823
+ }
824
+ }
825
+ return failures;
826
+ }
827
+ /**
828
+ * Rule 15: UNRESPONSIVE_CSMS
829
+ * Detects Call messages that have no matching CallResult or CallError
830
+ * (the CSMS never responded).
831
+ */
832
+ function detectUnresponsiveCsms(events) {
833
+ const failures = [];
834
+ // Build a set of messageIds that have responses
835
+ const respondedMessageIds = new Set();
836
+ for (const event of events) {
837
+ if (event.messageType === 'CallResult' || event.messageType === 'CallError') {
838
+ respondedMessageIds.add(event.messageId);
839
+ }
840
+ }
841
+ for (const call of events) {
842
+ if (call.messageType !== 'Call')
843
+ continue;
844
+ if (!respondedMessageIds.has(call.messageId)) {
845
+ failures.push({
846
+ code: 'UNRESPONSIVE_CSMS',
847
+ description: `No response received for ${call.action} Call (messageId: ${call.messageId}) — CSMS did not respond with CallResult or CallError`,
848
+ severity: SEVERITY.UNRESPONSIVE_CSMS,
849
+ eventIds: [call.id],
850
+ suggestedSteps: SUGGESTED_STEPS.UNRESPONSIVE_CSMS,
851
+ });
852
+ }
853
+ }
854
+ return failures;
855
+ }
856
+ /**
857
+ * Rule 16: REPEATED_BOOT_NOTIFICATION
858
+ * Detects when a station sends 2+ BootNotification Calls within 5 minutes.
859
+ */
860
+ function detectRepeatedBootNotification(events) {
861
+ const failures = [];
862
+ const bootEvents = events
863
+ .filter((event) => event.messageType === 'Call' &&
864
+ event.action === 'BootNotification' &&
865
+ event.timestamp !== null)
866
+ .sort((a, b) => a.timestamp - b.timestamp);
867
+ for (let i = 0; i < bootEvents.length; i++) {
868
+ const firstBoot = bootEvents[i];
869
+ if (!firstBoot || firstBoot.timestamp === null)
870
+ continue;
871
+ const repeatedBoots = [firstBoot];
872
+ let j = i + 1;
873
+ while (j < bootEvents.length) {
874
+ const nextBoot = bootEvents[j];
875
+ if (!nextBoot || nextBoot.timestamp === null) {
876
+ j++;
877
+ continue;
878
+ }
879
+ if (nextBoot.timestamp - firstBoot.timestamp > REPEATED_BOOT_NOTIFICATION_WINDOW_MS) {
880
+ break;
881
+ }
882
+ repeatedBoots.push(nextBoot);
883
+ j++;
884
+ }
885
+ if (repeatedBoots.length >= 2) {
886
+ const windowSeconds = Math.round(((repeatedBoots[repeatedBoots.length - 1]?.timestamp ?? firstBoot.timestamp) -
887
+ firstBoot.timestamp) /
888
+ 1000);
889
+ failures.push({
890
+ code: 'REPEATED_BOOT_NOTIFICATION',
891
+ description: `${repeatedBoots.length} BootNotification calls detected within ${windowSeconds}s — station may be rebooting repeatedly or failing startup`,
892
+ severity: SEVERITY.REPEATED_BOOT_NOTIFICATION,
893
+ eventIds: repeatedBoots.map((event) => event.id),
894
+ suggestedSteps: SUGGESTED_STEPS.REPEATED_BOOT_NOTIFICATION,
895
+ });
896
+ i = j - 1;
897
+ }
898
+ }
899
+ return failures;
900
+ }
558
901
  //# sourceMappingURL=detection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detection.js","sourceRoot":"","sources":["../../src/core/detection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detection.js","sourceRoot":"","sources":["../../src/core/detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Trace diffing — compare two parsed traces and surface differences.
3
+ *
4
+ * Matches events by `messageId` (OCPP UniqueId), then compares:
5
+ * - timestamp, direction, action, payload (deep equality), errorCode
6
+ * - detected failures (by code)
7
+ * - session summaries (human-readable difference strings)
8
+ *
9
+ * Pure function — no I/O, no side effects. Browser-safe (no Node built-ins).
10
+ *
11
+ * @module @ocpp-debugkit/toolkit/core
12
+ */
13
+ import type { Event, Failure, ParseResult, SessionSummary } from './types.js';
14
+ /** A field-level difference between two events that share a messageId. */
15
+ export interface EventDiff {
16
+ /** The OCPP UniqueId shared by both events. */
17
+ messageId: string;
18
+ /** The field that differs. */
19
+ field: 'timestamp' | 'direction' | 'action' | 'payload' | 'errorCode';
20
+ /** The value in trace A (or null if the field was absent). */
21
+ valueA: unknown;
22
+ /** The value in trace B (or null if the field was absent). */
23
+ valueB: unknown;
24
+ }
25
+ /** Summary-level differences between two traces. */
26
+ export interface SummaryDiff {
27
+ /** Summary of trace A (or null if A has no sessions). */
28
+ a: SessionSummary | null;
29
+ /** Summary of trace B (or null if B has no sessions). */
30
+ b: SessionSummary | null;
31
+ /** Human-readable difference descriptions. */
32
+ differences: string[];
33
+ }
34
+ /** The complete diff result between two traces. */
35
+ export interface TraceDiff {
36
+ /** Events present in trace A but not B (by messageId). */
37
+ onlyInA: Event[];
38
+ /** Events present in trace B but not A (by messageId). */
39
+ onlyInB: Event[];
40
+ /** Events present in both but with field-level differences. */
41
+ modified: EventDiff[];
42
+ /** Failures detected in A but not B. */
43
+ failuresOnlyInA: Failure[];
44
+ /** Failures detected in B but not A. */
45
+ failuresOnlyInB: Failure[];
46
+ /** Summary differences. */
47
+ summaryDiff: SummaryDiff;
48
+ }
49
+ /**
50
+ * Compare two parsed traces and return a structured diff.
51
+ *
52
+ * @param a - Parse result of trace A
53
+ * @param b - Parse result of trace B
54
+ * @returns A {@link TraceDiff} describing all differences
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const resultA = parseTrace(traceAJson);
59
+ * const resultB = parseTrace(traceBJson);
60
+ * const diff = diffTraces(resultA, resultB);
61
+ *
62
+ * if (diff.onlyInA.length > 0) {
63
+ * console.log(`${diff.onlyInA.length} events only in trace A`);
64
+ * }
65
+ * ```
66
+ */
67
+ export declare function diffTraces(a: ParseResult, b: ParseResult): TraceDiff;
68
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/core/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAS9E,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IACtE,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACzB,yDAAyD;IACzD,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACzB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,mDAAmD;AACnD,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,0DAA0D;IAC1D,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,wCAAwC;IACxC,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,wCAAwC;IACxC,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,2BAA2B;IAC3B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAqCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,SAAS,CAyIpE"}