diff --git a/package.json b/package.json
index 8975c6c..9c288ef 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"test:e2e": "playwright test"
},
"dependencies": {
- "@ocpp-debugkit/toolkit": "^0.3.1",
+ "@ocpp-debugkit/toolkit": "^0.4.0",
"next": "16.2.10",
"react": "19.2.4",
"react-dom": "19.2.4"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e358896..57dc78a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@ocpp-debugkit/toolkit':
- specifier: ^0.3.1
- version: 0.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ specifier: ^0.4.0
+ version: 0.4.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
next:
specifier: 16.2.10
version: 16.2.10(@babel/core@7.29.7)(@playwright/test@1.61.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -424,8 +424,8 @@ packages:
resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
engines: {node: '>=12.4.0'}
- '@ocpp-debugkit/toolkit@0.3.1':
- resolution: {integrity: sha512-cENflhAwRSvY51P8LtsBEzguGLDqWSWbQDszfbFCgdcC38Z+F3gjlD6XxpMhwtBBUHAXfDAPKwYaJtTls0GLwA==}
+ '@ocpp-debugkit/toolkit@0.4.0':
+ resolution: {integrity: sha512-A/k7RdH0hNJhxSeB2wxYDrVoAzF28J7nypjyzQFcknchp780F4RfR4d447zOZJcL30SsfREpKQ/mcL4fgs/1cw==}
hasBin: true
peerDependencies:
react: ^18.0.0 || ^19.0.0
@@ -2364,7 +2364,7 @@ snapshots:
'@nolyfill/is-core-module@1.0.39': {}
- '@ocpp-debugkit/toolkit@0.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ '@ocpp-debugkit/toolkit@0.4.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
dependencies:
commander: 13.1.0
zod: 4.4.3
diff --git a/src/app/docs/cli/page.tsx b/src/app/docs/cli/page.tsx
index 35d7afd..6049216 100644
--- a/src/app/docs/cli/page.tsx
+++ b/src/app/docs/cli/page.tsx
@@ -134,6 +134,25 @@ ocpp-debugkit ci --format json`}
{`ocpp-debugkit diff trace-a.json trace-b.json`}
+
+ Convert any readable trace to the vendor-neutral Open OCPP Trace v1.1 format (JSONL), so it + can be consumed by other OCPP tools. +
+
+ {`ocpp-debugkit convert [options]`}
+
+ -o, --output <file> - Write converted trace to file (default: stdout)
+ Example:
+
+ {`ocpp-debugkit convert trace.json -o trace.openocpp.jsonl`}
+
+
DebugKit accepts three trace formats. All formats use the OCPP 1.6 JSON message structure. + It also reads and writes the vendor-neutral Open OCPP Trace interchange format, described + below.
Direction is inferred; timestamps are null.
++ The vendor-neutral{' '} + + Open OCPP Trace + {' '} + interchange format lets traces move between DebugKit and other OCPP tools. It is a stream of + records (JSONL or a JSON array), one frame per record: +
+
+ {`{"schemaVersion":"1.1","timestamp":"2024-01-15T10:30:00.000Z","transport":"json","direction":"cp-to-csms","messageType":"CALL","messageId":"msg-001","action":"BootNotification","payload":{"chargePointVendor":"SyntheticVendor","chargePointModel":"SM-100"}}
+{"schemaVersion":"1.1","timestamp":"2024-01-15T10:30:00.500Z","transport":"json","direction":"csms-to-cp","messageType":"CALLRESULT","messageId":"msg-001","payload":{"status":"Accepted"}}`}
+
+
+ Each record also carries a raw field with the verbatim frame, so byte-exact or
+ malformed frames survive the round trip. The inspector auto-detects this format on paste;
+ write it back out with the convert CLI command. The parser and exporter are
+ checked against the format's conformance fixtures in CI.
+
Three message types are supported:
+ The toolkit reads and writes the vendor-neutral{' '} + + Open OCPP Trace + {' '} + format, so a trace from a simulator, proxy, or CSMS test suite opens in + the inspector, and DebugKit can write the format back out for them. The + parser and exporter are checked against the format's conformance + fixtures in CI. +
+