@open-charging-cloud/chargy-core 0.15.1 → 0.16.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/CHANGELOG.md +190 -0
- package/README.md +2 -2
- package/dist/DocumentSignatures.d.ts +20 -4
- package/dist/DocumentSignatures.d.ts.map +1 -1
- package/dist/OCMF.d.ts.map +1 -1
- package/dist/OCMF_BET_TariffTextExtension.d.ts +34 -0
- package/dist/OCMF_BET_TariffTextExtension.d.ts.map +1 -1
- package/dist/browser/index.js +103 -8
- package/dist/browser/index.js.map +1 -1
- package/dist/chargy.d.ts +1 -0
- package/dist/chargy.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/interfaces/IChargeTransparencyLiveLink.d.ts +12 -10
- package/dist/interfaces/IChargeTransparencyLiveLink.d.ts.map +1 -1
- package/dist/interfaces/IChargeTransparencyRecord.d.ts +2 -0
- package/dist/interfaces/IChargeTransparencyRecord.d.ts.map +1 -1
- package/dist/interfaces/chargyInterfaces.d.ts +18 -4
- package/dist/interfaces/chargyInterfaces.d.ts.map +1 -1
- package/dist/node/index.js +98 -7
- package/dist/node/index.js.map +1 -1
- package/i18n.json +25 -0
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,196 @@ While the version number is below 1.0.0, breaking changes are released in minor
|
|
|
7
7
|
versions and are always listed first below.
|
|
8
8
|
|
|
9
9
|
|
|
10
|
+
## [0.16.1] - 2026-09-09
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **A signed log message is verified, not merely carried.** A legally relevant
|
|
15
|
+
log message may sign itself, and reading a live link now checks those
|
|
16
|
+
signatures alongside the document's own. The two prove different things: the
|
|
17
|
+
document signature says the message has not been changed since the operator
|
|
18
|
+
collected it, the message signature says the grid operator is who asked for
|
|
19
|
+
the constraint. Changing a message breaks both, since the document covers the
|
|
20
|
+
message - what only the message's signature survives is an operator who
|
|
21
|
+
re-signs the document around a forged constraint, which produces a document
|
|
22
|
+
that verifies as a whole while the grid never asked for anything.
|
|
23
|
+
|
|
24
|
+
`verifyEmbeddedSignatures(message, liveLink)` is exported for it: the
|
|
25
|
+
signatures sit on the message, the keys to check them and the
|
|
26
|
+
`keyIdGeneration` belong to the enclosing document, so the two objects are
|
|
27
|
+
passed separately. The message is canonicalized on its own, exactly as a
|
|
28
|
+
document is.
|
|
29
|
+
|
|
30
|
+
Nothing here refuses a document. A changed message, one signed with a key the
|
|
31
|
+
document does not list, and one carrying no signature at all are each reported
|
|
32
|
+
as a graded warning and change nothing else. There is deliberately no
|
|
33
|
+
`signatureVerification` written onto the message: that would change the very
|
|
34
|
+
bytes its signature covers.
|
|
35
|
+
|
|
36
|
+
- **`collectDocumentPublicKeys()` also collects `gridOperator.publicKeys`.**
|
|
37
|
+
A grid operator signs the constraints it sends rather than the document
|
|
38
|
+
carrying them, so its keys were listed in the fixtures and reachable by
|
|
39
|
+
nothing. The five new `LogMessageSignature_*` warning texts are in `i18n.json`.
|
|
40
|
+
|
|
41
|
+
- **`TT` may record a tariff change.** A Bonn tariff text names one tariff,
|
|
42
|
+
which is all a document needs until the tariff changes - and OCMF clearly
|
|
43
|
+
expects that it can, because it reserves a reading reason for exactly that
|
|
44
|
+
case. So this extends the format: `TT` carries the tariffs that have metered
|
|
45
|
+
something so far, separated by a vertical bar and in the order they took
|
|
46
|
+
effect.
|
|
47
|
+
|
|
48
|
+
001;EUR;0;35;0;0
|
|
49
|
+
001;EUR;0;35;0;0|001;EUR;0;25;0;0
|
|
50
|
+
001;EUR;0;35;0;0|001;EUR;0;25;0;0|001;EUR;0;35;0;0
|
|
51
|
+
|
|
52
|
+
The last entry is the tariff in effect, the ones before it are the history
|
|
53
|
+
that led there, and the list only grows - so the newest document carries the
|
|
54
|
+
whole history and no earlier one is needed. The entries are tariff periods
|
|
55
|
+
rather than distinct tariffs: a tariff that comes back is written again,
|
|
56
|
+
which is why the base price appears twice above. A session whose tariff never
|
|
57
|
+
changes writes a list of one, byte-identical to the single-tariff form.
|
|
58
|
+
|
|
59
|
+
`parseOCMFBonnTariffTexts()` reads the list, `parseOCMFBonnTariffText()` one
|
|
60
|
+
entry. The vertical bar is also the OCMF envelope separator, but `TT` sits
|
|
61
|
+
inside the JSON payload, which is read by tracking the brace depth rather
|
|
62
|
+
than by splitting on bars; a reader that does split must take the payload
|
|
63
|
+
between the first and the last bar.
|
|
64
|
+
|
|
65
|
+
- **The OCMF-Test-01 series states its tariffs and marks the changes.** The
|
|
66
|
+
session has three tariff periods - the base energy price, the lower one for
|
|
67
|
+
the minute the grid limits the power, and the base price again - and every
|
|
68
|
+
document now carries the history up to its last reading. The two readings at
|
|
69
|
+
the ends of the limit carry `TX` = `T`, the OCMF reading reason for a tariff
|
|
70
|
+
change, so where the tariff changed and what it changed to are stated in
|
|
71
|
+
agreement with each other.
|
|
72
|
+
|
|
73
|
+
### Fixed
|
|
74
|
+
|
|
75
|
+
- **A tariff change split a charging session in two, and silently lost half of
|
|
76
|
+
it.** `TT` was part of the key OCMF documents are grouped by, so the
|
|
77
|
+
documents before and after a tariff change formed two groups - and
|
|
78
|
+
`TryToParseOCMFDocuments()` returns only the first of them. Every reading
|
|
79
|
+
metered under a later tariff was parsed and then dropped without a word: for
|
|
80
|
+
the OCMF-Test-01 series, seven of thirty-three signed meter values. `TT` is
|
|
81
|
+
no longer part of that key. That only the first group is returned at all
|
|
82
|
+
remains as it was, and is worth revisiting separately.
|
|
83
|
+
|
|
84
|
+
- **Merging charge transparency records dropped the grid operators.** The merge
|
|
85
|
+
enumerates every top-level array by hand, and `gridOperators` was added to
|
|
86
|
+
`IChargeTransparencyRecord` in 0.16.0 without being added there - two records
|
|
87
|
+
merged into one lost a party, silently. A test now merges two records and
|
|
88
|
+
checks that both survive.
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## [0.16.0] - 2026-09-08
|
|
92
|
+
|
|
93
|
+
### Added
|
|
94
|
+
|
|
95
|
+
- **A grid operator is a party to a charging session.** When the grid asks a
|
|
96
|
+
station to charge more slowly, the session's power drops for a reason that is
|
|
97
|
+
neither the car's nor the station's, and without the constraint and the key
|
|
98
|
+
it was signed with that dip is indistinguishable from a fault. `IGridOperator`
|
|
99
|
+
carries the identity and the keys to tell the two apart: a charging station
|
|
100
|
+
operator minus everything about charging infrastructure, because a grid
|
|
101
|
+
operator runs no pools, stations or tariffs. `@id` is all it requires. A live
|
|
102
|
+
link names one in `gridOperator`, a charge transparency record several in
|
|
103
|
+
`gridOperators` - a live link describes one ongoing session, a record may
|
|
104
|
+
span several grids.
|
|
105
|
+
|
|
106
|
+
- **`signGridPowerConstraints` is the key usage a grid operator signs under.**
|
|
107
|
+
It joins `signCTRs` for whole records and `signMeterValues` /
|
|
108
|
+
`signEnergyMeterValues` for readings. A constraint is signed with every key
|
|
109
|
+
the operator holds for that usage, so a verifier supporting either algorithm
|
|
110
|
+
can check it.
|
|
111
|
+
|
|
112
|
+
- **The OCMF-Test-01 series carries a power constraint.** It is now a five
|
|
113
|
+
minute session in 35 documents instead of a three minute one in twenty, and
|
|
114
|
+
the grid operator limits the charging power to 6 kW for one minute in the
|
|
115
|
+
middle of it. The constraint is a `legallyRelevantLogMessage` signed by
|
|
116
|
+
`DE*VEN` under `signGridPowerConstraints` with one ECDSA and one Ed25519 key,
|
|
117
|
+
the meter takes an extra reading where it begins and where it ends, the power
|
|
118
|
+
in between stays below the limit, and the charging periods are cut at both
|
|
119
|
+
ends of it - which is the whole point of the fixture: a dip in the curve with
|
|
120
|
+
a signed explanation next to it. The generator gained
|
|
121
|
+
`OCMF-Test-01__LRLMs.json`, the log messages whose times are relative to the
|
|
122
|
+
start reading, and `--log-messages` / `--no-log-messages` to steer them.
|
|
123
|
+
|
|
124
|
+
- **Every optional property of the live link document may now be explicitly
|
|
125
|
+
`undefined`.**
|
|
126
|
+
Under `exactOptionalPropertyTypes` a bare `?:` means the property may be
|
|
127
|
+
omitted but not set to `undefined`, which made building a live link from
|
|
128
|
+
optional sources need a conditional per property. `description`, `timeSource`,
|
|
129
|
+
`chargingStationOperator`, `chargingStation`, `chargingSessionId`,
|
|
130
|
+
`eMobilityProvider`, `contract`, `warnings` and `signatureVerification` now
|
|
131
|
+
say `| undefined` like their neighbours already did.
|
|
132
|
+
|
|
133
|
+
### Fixed
|
|
134
|
+
|
|
135
|
+
- **The live link documentation described a format two releases old.** Every
|
|
136
|
+
one of these would have produced a document the current code turns away, and
|
|
137
|
+
the format documentation is where a producer looks first:
|
|
138
|
+
|
|
139
|
+
- The TOTP configuration was documented as `initialSharedSecret`, renamed to
|
|
140
|
+
`sharedSecret` in 0.15.0. `isTOTPConfig()` requires the new name, so a
|
|
141
|
+
transport copied from the documentation failed `isLiveTransport()` and was
|
|
142
|
+
dropped by a filtering reader without a word - the same failure 0.15.1
|
|
143
|
+
fixed in the fixtures, still sitting in the prose.
|
|
144
|
+
- Transports named their endpoint in `url`, removed in 0.15.0. A transport
|
|
145
|
+
copied from the documentation was well-formed and named no endpoint at all.
|
|
146
|
+
- The minimal document had no `created` and was described as the smallest
|
|
147
|
+
recognised live link. Since 0.15.0 it is not a live link at all:
|
|
148
|
+
recognition requires `@context`, `created` and `liveTransports`, and the
|
|
149
|
+
documentation still said `@context` alone decided it.
|
|
150
|
+
- Reading a document was described as filling in a missing `created`. It
|
|
151
|
+
stopped doing that in 0.15.0, because that timestamp recorded when the
|
|
152
|
+
document was *read*.
|
|
153
|
+
- The TOTP table listed two properties of seven and declared `timeStep`
|
|
154
|
+
required, which it is not; the paragraph below it said the format does not
|
|
155
|
+
specify a hash algorithm, digits or encoding, which it has since done in
|
|
156
|
+
`hashAlgorithm`, `totpLength` and `alphabet`.
|
|
157
|
+
- `refresh` was said to be validated by `IsAChargeTransparencyLiveLink()` and
|
|
158
|
+
the point-of-use guards to include an `isTransport`. Both are
|
|
159
|
+
`isLiveTransport()` now.
|
|
160
|
+
|
|
161
|
+
### Changed
|
|
162
|
+
|
|
163
|
+
- **The format documentation lists the properties a live link declares.** The
|
|
164
|
+
interfaces grew in 0.14.0 and 0.15.0 without the documentation following, so
|
|
165
|
+
`chargingSessionId`, `eMobilityProvider`, `chargingPeriods`,
|
|
166
|
+
`legallyRelevantLogMessages` and `supportMessages` appeared nowhere, while
|
|
167
|
+
nine properties that *are* declared were still listed as carried by the
|
|
168
|
+
fixtures and unvalidated. That section now holds what it says: `@id`,
|
|
169
|
+
`imageURLs` and the superseded `geoLocation` and `connector`.
|
|
170
|
+
|
|
171
|
+
- **An operator's `contact`, `support` and `privacy` are optional.**
|
|
172
|
+
`IChargingStationOperator` had required all three since it was written, and
|
|
173
|
+
`IGridOperator` inherited that when it took its shape. No document in the
|
|
174
|
+
repository carries any of them, nothing validates them, and requiring them
|
|
175
|
+
forced anyone building an operator in TypeScript to invent three properties
|
|
176
|
+
the format's own fixtures do without.
|
|
177
|
+
|
|
178
|
+
- **The fixtures write an operator's `name` as the `I18NString` it is typed
|
|
179
|
+
as.** The template said `"GraphDefined"` and `"Vanaheimr Electric"` where the
|
|
180
|
+
interfaces say a language-tag-to-string object, so the one document meant to
|
|
181
|
+
show the format did not follow it. It is `{ "en": ... }` now, and the series
|
|
182
|
+
is regenerated.
|
|
183
|
+
|
|
184
|
+
- **`ILegallyRelevantLogMessage` names its `text` before its `data`.** The
|
|
185
|
+
message comes before the payload that qualifies it, the way `ISupportMessage`
|
|
186
|
+
already had it.
|
|
187
|
+
|
|
188
|
+
- **`CTR_Format.md` lists `gridOperators`** among the top-level properties of a
|
|
189
|
+
charge transparency record.
|
|
190
|
+
|
|
191
|
+
- **Two live link tests no longer spell out what the generator regenerates.**
|
|
192
|
+
One asserted `created` to be a fixed timestamp and one the meter values to
|
|
193
|
+
number twenty; both are properties of the moment the fixture was generated
|
|
194
|
+
and of the session parameters, so both broke the first time the series was
|
|
195
|
+
regenerated. They now compare `created` against what the document itself
|
|
196
|
+
states - which is the actual assertion, that reading neither fills in nor
|
|
197
|
+
replaces it - and count the OCMF documents rather than naming a number.
|
|
198
|
+
|
|
199
|
+
|
|
10
200
|
## [0.15.1] - 2026-09-07
|
|
11
201
|
|
|
12
202
|
### Fixed
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ Currently supported formats include:
|
|
|
28
28
|
- **EMH** energy meter data
|
|
29
29
|
- **Mennekes** XML
|
|
30
30
|
- **OCMF**, versions v1.1 to v1.4
|
|
31
|
-
- Bonner Eichrechtstage **Tariff Text** Extensions
|
|
31
|
+
- Bonner Eichrechtstage (BET) **Tariff Text** Extensions including tariff changes
|
|
32
32
|
- EdDSA support: Ed25519 and Ed448
|
|
33
33
|
- Post-Quantum Cryptography support: ML-DSA-44, ML-DSA-65, ML-DSA-87
|
|
34
34
|
- **Porsche Charging Data Format (PCDF)**
|
|
@@ -185,7 +185,7 @@ npx playwright install chromium
|
|
|
185
185
|
## Publishing
|
|
186
186
|
|
|
187
187
|
```bash
|
|
188
|
-
npm version 0.
|
|
188
|
+
npm version 0.16.1 --no-git-tag-version
|
|
189
189
|
npm run verify
|
|
190
190
|
npm pack --dry-run
|
|
191
191
|
npm pack
|
|
@@ -48,10 +48,12 @@ export interface IDocumentPublicKey {
|
|
|
48
48
|
/**
|
|
49
49
|
* Every public key a document lists, in the order they appear.
|
|
50
50
|
*
|
|
51
|
-
* The keys of a charge transparency live link live in
|
|
52
|
-
* operator,
|
|
53
|
-
*
|
|
54
|
-
*
|
|
51
|
+
* The keys of a charge transparency live link live in three places: those of
|
|
52
|
+
* the charging station operator, the one of the energy meter of the EVSE, and
|
|
53
|
+
* those of the grid operator, which signs the power constraints it sends rather
|
|
54
|
+
* than the document carrying them. A key that does not carry the three things
|
|
55
|
+
* needed to use it - an algorithm, an encodings pipeline and a value - is
|
|
56
|
+
* skipped rather than guessed at.
|
|
55
57
|
*/
|
|
56
58
|
export declare function collectDocumentPublicKeys(Document: chargyLib.JSONObject): Array<IDocumentPublicKey>;
|
|
57
59
|
/**
|
|
@@ -67,4 +69,18 @@ export declare function collectDocumentPublicKeys(Document: chargyLib.JSONObject
|
|
|
67
69
|
* that are verified and makes a good signature look bad.
|
|
68
70
|
*/
|
|
69
71
|
export declare function verifyDocumentSignatures(Document: chargyLib.JSONObject): IDocumentSignaturesResult;
|
|
72
|
+
/**
|
|
73
|
+
* The signatures an object *inside* a document carries over itself.
|
|
74
|
+
*
|
|
75
|
+
* A legally relevant log message is the case this exists for: the grid operator
|
|
76
|
+
* signs the power constraint it sends, not the document it later travels in, so
|
|
77
|
+
* the signatures sit on the message while the keys to check them and the rule
|
|
78
|
+
* for computing key ids belong to the enclosing live link. Passing the two
|
|
79
|
+
* objects separately is the whole difference to verifyDocumentSignatures().
|
|
80
|
+
*
|
|
81
|
+
* The embedded object is canonicalized on its own, exactly as a document is:
|
|
82
|
+
* what a signature covers is stated by the signature, not by where the object
|
|
83
|
+
* sits.
|
|
84
|
+
*/
|
|
85
|
+
export declare function verifyEmbeddedSignatures(Embedded: chargyLib.JSONObject, EnclosingDocument: chargyLib.JSONObject): IDocumentSignaturesResult;
|
|
70
86
|
//# sourceMappingURL=DocumentSignatures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentSignatures.d.ts","sourceRoot":"","sources":["../src/DocumentSignatures.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,SAAS,MAAyB,wBAAwB,CAAA;AAQtE,wDAAwD;AACxD,MAAM,MAAM,uBAAuB;AAE/B,kEAAkE;AAClE,gBAAgB;AAEhB,6EAA6E;AAC7E,kBAAkB;AAElB,4EAA4E;AAC5E,kBAAkB;AAElB,mEAAmE;AACnE,sBAAsB;AAEtB,uDAAuD;AACvD,WAAW,CAAC;AAGhB,0DAA0D;AAC1D,MAAM,WAAW,wBAAwB;IAErC,8CAA8C;IAC9C,KAAK,EAAQ,MAAM,CAAC;IAEpB,yDAAyD;IACzD,KAAK,CAAC,EAAO,MAAM,CAAC;IAEpB,4DAA4D;IAC5D,SAAS,CAAC,EAAG,MAAM,CAAC;IAEpB,MAAM,EAAO,uBAAuB,CAAC;IAErC,2EAA2E;IAC3E,OAAO,CAAC,EAAK,MAAM,CAAC;CAEvB;AAGD,0CAA0C;AAC1C,MAAM,MAAM,wBAAwB;AAEhC,iEAAiE;AACjE,UAAU;AAEV,gCAAgC;AAChC,UAAU;AAEV,sDAAsD;AACtD,WAAW;AAEX,4DAA4D;AAC5D,WAAW,CAAC;AAGhB,MAAM,WAAW,yBAAyB;IACtC,MAAM,EAAO,wBAAwB,CAAC;IACtC,UAAU,EAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC7C,UAAU,EAAG,MAAM,CAAC;CACvB;AAGD,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAG,MAAM,CAAC;IACnB,SAAS,EAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,EAAO,MAAM,CAAC;IACnB,QAAQ,EAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B;AA8RD
|
|
1
|
+
{"version":3,"file":"DocumentSignatures.d.ts","sourceRoot":"","sources":["../src/DocumentSignatures.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,SAAS,MAAyB,wBAAwB,CAAA;AAQtE,wDAAwD;AACxD,MAAM,MAAM,uBAAuB;AAE/B,kEAAkE;AAClE,gBAAgB;AAEhB,6EAA6E;AAC7E,kBAAkB;AAElB,4EAA4E;AAC5E,kBAAkB;AAElB,mEAAmE;AACnE,sBAAsB;AAEtB,uDAAuD;AACvD,WAAW,CAAC;AAGhB,0DAA0D;AAC1D,MAAM,WAAW,wBAAwB;IAErC,8CAA8C;IAC9C,KAAK,EAAQ,MAAM,CAAC;IAEpB,yDAAyD;IACzD,KAAK,CAAC,EAAO,MAAM,CAAC;IAEpB,4DAA4D;IAC5D,SAAS,CAAC,EAAG,MAAM,CAAC;IAEpB,MAAM,EAAO,uBAAuB,CAAC;IAErC,2EAA2E;IAC3E,OAAO,CAAC,EAAK,MAAM,CAAC;CAEvB;AAGD,0CAA0C;AAC1C,MAAM,MAAM,wBAAwB;AAEhC,iEAAiE;AACjE,UAAU;AAEV,gCAAgC;AAChC,UAAU;AAEV,sDAAsD;AACtD,WAAW;AAEX,4DAA4D;AAC5D,WAAW,CAAC;AAGhB,MAAM,WAAW,yBAAyB;IACtC,MAAM,EAAO,wBAAwB,CAAC;IACtC,UAAU,EAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC7C,UAAU,EAAG,MAAM,CAAC;CACvB;AAGD,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAG,MAAM,CAAC;IACnB,SAAS,EAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,EAAO,MAAM,CAAC;IACnB,QAAQ,EAAI,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B;AA8RD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAAC,CA6CnG;AAiID;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,yBAAyB,CAalG;AAGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAY,SAAS,CAAC,UAAU,EACxC,iBAAiB,EAAG,SAAS,CAAC,UAAU,GAAG,yBAAyB,CAa5G"}
|
package/dist/OCMF.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OCMF.d.ts","sourceRoot":"","sources":["../src/OCMF.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"OCMF.d.ts","sourceRoot":"","sources":["../src/OCMF.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,40 @@ export declare class OCMFBonnTariffParseError extends Error {
|
|
|
27
27
|
readonly tariffText: string;
|
|
28
28
|
constructor(tariffText: string, message: string);
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* The separator between the tariffs of an OCMF "TT" field that records a tariff
|
|
32
|
+
* change.
|
|
33
|
+
*
|
|
34
|
+
* A vertical bar is also what separates the three parts of the OCMF envelope,
|
|
35
|
+
* but "TT" lives inside the JSON payload, and the payload is read by tracking
|
|
36
|
+
* the brace depth of the JSON rather than by splitting the envelope on bars -
|
|
37
|
+
* so a bar inside this field reaches a reader intact. A reader that does split
|
|
38
|
+
* the envelope naively must use the FIRST and the LAST bar, never the count.
|
|
39
|
+
*/
|
|
40
|
+
export declare const OCMFBonnTariffSeparator = "|";
|
|
41
|
+
/**
|
|
42
|
+
* The tariffs of one OCMF "TT" field, in the order they took effect.
|
|
43
|
+
*
|
|
44
|
+
* The Bonner Eichrechtstage define a tariff text for ONE tariff, which is all a
|
|
45
|
+
* document needs as long as the tariff does not change. It can: OCMF has a
|
|
46
|
+
* reading reason for exactly that, TX "T". This is the extension of that format
|
|
47
|
+
* for the case - the tariffs that have been in effect so far, separated by a
|
|
48
|
+
* vertical bar and in chronological order:
|
|
49
|
+
*
|
|
50
|
+
* 001;EUR;0;35;0;0
|
|
51
|
+
* 001;EUR;0;35;0;0|001;EUR;0;25;0;0
|
|
52
|
+
* 001;EUR;0;35;0;0|001;EUR;0;25;0;0|001;EUR;0;35;0;0
|
|
53
|
+
*
|
|
54
|
+
* The list grows with the session, so the last entry is the tariff in effect at
|
|
55
|
+
* the document's last reading and the entries before it are the history that
|
|
56
|
+
* led there. A tariff that comes back is written again rather than referenced:
|
|
57
|
+
* the position in the list is what pairs an entry with a TX "T" reading, so the
|
|
58
|
+
* third document above states three tariff periods, not two distinct tariffs.
|
|
59
|
+
*
|
|
60
|
+
* A field naming a single tariff parses as a list of one, which is what every
|
|
61
|
+
* document of a session with an unchanging tariff carries.
|
|
62
|
+
*/
|
|
63
|
+
export declare function parseOCMFBonnTariffTexts(tariffText: string): Array<IOCMFBonnTariff>;
|
|
30
64
|
export declare function parseOCMFBonnTariffText(tariffText: string): IOCMFBonnTariff;
|
|
31
65
|
export declare function tryParseOCMFBonnTariffText(tariffText: string): IOCMFBonnTariff | undefined;
|
|
32
66
|
export declare function ocmfBonnTariffToChargingTariff(tariff: IOCMFBonnTariff): IChargingTariff;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OCMF_BET_TariffTextExtension.d.ts","sourceRoot":"","sources":["../src/OCMF_BET_TariffTextExtension.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACR,eAAe,EAGlB,MAAM,+BAA+B,CAAC;AAGvC,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAa,MAAM,CAAC;IACvB,IAAI,EAAY,kBAAkB,CAAC;IACnC,QAAQ,EAAQ,KAAK,CAAC;IACtB,aAAa,EAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,IAAI,EAA4B,KAAK,CAAC;IACtC,oBAAoB,EAAY,MAAM,CAAC;IACvC,yBAAyB,EAAO,MAAM,CAAC;IACvC,sBAAsB,EAAU,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,IAAI,EAA4B,KAAK,CAAC;IACtC,oBAAoB,EAAY,MAAM,CAAC;IACvC,yBAAyB,EAAO,MAAM,CAAC;IACvC,8BAA8B,EAAE,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,IAAI,EAA4B,KAAK,CAAC;IACtC,qBAAqB,EAAW,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,CAAC;AAGjD,qBAAa,wBAAyB,SAAQ,KAAK;IAE/C,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAK,MAAM;CAOjC;AAqBD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAqD3E;AAGD,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAY1F;AAyBD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAkDvF"}
|
|
1
|
+
{"version":3,"file":"OCMF_BET_TariffTextExtension.d.ts","sourceRoot":"","sources":["../src/OCMF_BET_TariffTextExtension.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACR,eAAe,EAGlB,MAAM,+BAA+B,CAAC;AAGvC,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAa,MAAM,CAAC;IACvB,IAAI,EAAY,kBAAkB,CAAC;IACnC,QAAQ,EAAQ,KAAK,CAAC;IACtB,aAAa,EAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,IAAI,EAA4B,KAAK,CAAC;IACtC,oBAAoB,EAAY,MAAM,CAAC;IACvC,yBAAyB,EAAO,MAAM,CAAC;IACvC,sBAAsB,EAAU,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,IAAI,EAA4B,KAAK,CAAC;IACtC,oBAAoB,EAAY,MAAM,CAAC;IACvC,yBAAyB,EAAO,MAAM,CAAC;IACvC,8BAA8B,EAAE,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,IAAI,EAA4B,KAAK,CAAC;IACtC,qBAAqB,EAAW,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,CAAC;AAGjD,qBAAa,wBAAyB,SAAQ,KAAK;IAE/C,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAK,MAAM;CAOjC;AAqBD;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,CAEnF;AAGD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAqD3E;AAGD,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAY1F;AAyBD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAkDvF"}
|
package/dist/browser/index.js
CHANGED
|
@@ -18,7 +18,11 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
18
18
|
var __getProtoOf = Object.getPrototypeOf;
|
|
19
19
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
20
20
|
var __commonJS = (cb, mod) => function __require() {
|
|
21
|
-
|
|
21
|
+
try {
|
|
22
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
23
|
+
} catch (e) {
|
|
24
|
+
throw mod = 0, e;
|
|
25
|
+
}
|
|
22
26
|
};
|
|
23
27
|
var __export = (target, all) => {
|
|
24
28
|
for (var name in all)
|
|
@@ -7228,6 +7232,10 @@ function parseCents(value, tariffText, fieldName) {
|
|
|
7228
7232
|
throw new OCMFBonnTariffParseError(tariffText, `${fieldName} is outside the supported numeric range`);
|
|
7229
7233
|
return parsedValue;
|
|
7230
7234
|
}
|
|
7235
|
+
var OCMFBonnTariffSeparator = "|";
|
|
7236
|
+
function parseOCMFBonnTariffTexts(tariffText) {
|
|
7237
|
+
return tariffText.split(OCMFBonnTariffSeparator).map(parseOCMFBonnTariffText);
|
|
7238
|
+
}
|
|
7231
7239
|
function parseOCMFBonnTariffText(tariffText) {
|
|
7232
7240
|
const fields = tariffText.split(";");
|
|
7233
7241
|
const code = fields[0];
|
|
@@ -8685,7 +8693,13 @@ var OCMF = class {
|
|
|
8685
8693
|
for (const ocmfJSONDocument of ocmfJSONDocuments) {
|
|
8686
8694
|
try {
|
|
8687
8695
|
const groupingKey = (ocmfJSONDocument.payload.FV ?? "") + "|" + (ocmfJSONDocument.payload.GI ?? "") + "|" + (ocmfJSONDocument.payload.GS ?? "") + "|" + (ocmfJSONDocument.payload.GV ?? "") + "|" + (ocmfJSONDocument.payload.MV ?? "") + "|" + (ocmfJSONDocument.payload.MM ?? "") + "|" + (ocmfJSONDocument.payload.MS ?? "") + "|" + (ocmfJSONDocument.payload.MF ?? "") + "|" + (ocmfJSONDocument.payload.IS === true ? "1|" : "0|") + (ocmfJSONDocument.payload.IL ?? "") + "|" + //(ocmfJSONDocument.payload.IF ?? "") + "|" +
|
|
8688
|
-
(ocmfJSONDocument.payload.IT ?? "") + "|" + (ocmfJSONDocument.payload.ID ?? "") + "|" +
|
|
8696
|
+
(ocmfJSONDocument.payload.IT ?? "") + "|" + (ocmfJSONDocument.payload.ID ?? "") + "|" + // "TT" is deliberately NOT part of this key. A tariff may change
|
|
8697
|
+
// during a charging session - OCMF has a reading reason of its own
|
|
8698
|
+
// for it, TX "T" - and the documents before and after such a change
|
|
8699
|
+
// belong to one session, not to two. Grouping by "TT" split them,
|
|
8700
|
+
// and since only the first group is returned below, the readings
|
|
8701
|
+
// metered under every later tariff were dropped without a word.
|
|
8702
|
+
(ocmfJSONDocument.payload.CF ?? "") + "|" + (ocmfJSONDocument.payload.CT ?? "") + "|" + (ocmfJSONDocument.payload.CI ?? "");
|
|
8689
8703
|
if (!ocmfJSONDocumentGroups.has(groupingKey))
|
|
8690
8704
|
ocmfJSONDocumentGroups.set(groupingKey, new Array());
|
|
8691
8705
|
ocmfJSONDocumentGroups.get(groupingKey)?.push(ocmfJSONDocument);
|
|
@@ -12522,6 +12536,7 @@ function collectDocumentPublicKeys(Document) {
|
|
|
12522
12536
|
const evse = asJSONObject(chargingStation?.["EVSE"]);
|
|
12523
12537
|
collectFrom(asJSONObject(Document["chargingStationOperator"])?.["publicKeys"]);
|
|
12524
12538
|
collectFrom(asJSONObject(evse?.["energyMeter"])?.["publicKeys"]);
|
|
12539
|
+
collectFrom(asJSONObject(Document["gridOperator"])?.["publicKeys"]);
|
|
12525
12540
|
return publicKeys;
|
|
12526
12541
|
}
|
|
12527
12542
|
function verifyDocumentSignature(Document, Signature, Index, PublicKeys, KeyIdGeneration) {
|
|
@@ -12591,10 +12606,27 @@ function verifyDocumentSignatures(Document) {
|
|
|
12591
12606
|
const signatures = Document["signatures"];
|
|
12592
12607
|
if (!Array.isArray(signatures) || signatures.length === 0)
|
|
12593
12608
|
return { status: "unsigned", signatures: [], validCount: 0 };
|
|
12594
|
-
|
|
12595
|
-
|
|
12596
|
-
|
|
12597
|
-
(
|
|
12609
|
+
return verifySignaturesOf(
|
|
12610
|
+
Document,
|
|
12611
|
+
signatures,
|
|
12612
|
+
collectDocumentPublicKeys(Document),
|
|
12613
|
+
asStringArray(Document["keyIdGeneration"]) ?? defaultKeyIdGeneration
|
|
12614
|
+
);
|
|
12615
|
+
}
|
|
12616
|
+
function verifyEmbeddedSignatures(Embedded, EnclosingDocument) {
|
|
12617
|
+
const signatures = Embedded["signatures"];
|
|
12618
|
+
if (!Array.isArray(signatures) || signatures.length === 0)
|
|
12619
|
+
return { status: "unsigned", signatures: [], validCount: 0 };
|
|
12620
|
+
return verifySignaturesOf(
|
|
12621
|
+
Embedded,
|
|
12622
|
+
signatures,
|
|
12623
|
+
collectDocumentPublicKeys(EnclosingDocument),
|
|
12624
|
+
asStringArray(EnclosingDocument["keyIdGeneration"]) ?? defaultKeyIdGeneration
|
|
12625
|
+
);
|
|
12626
|
+
}
|
|
12627
|
+
function verifySignaturesOf(SignedObject, Signatures, PublicKeys, KeyIdGeneration) {
|
|
12628
|
+
const results = Signatures.map(
|
|
12629
|
+
(signature, index) => verifyDocumentSignature(SignedObject, signature, index, PublicKeys, KeyIdGeneration)
|
|
12598
12630
|
);
|
|
12599
12631
|
const validCount = results.filter((result) => result.status === "validSignature").length;
|
|
12600
12632
|
return {
|
|
@@ -13647,6 +13679,11 @@ var Chargy = class {
|
|
|
13647
13679
|
else if (processedFileResult.eMobilityProviders)
|
|
13648
13680
|
for (const eMobilityProvider of processedFileResult.eMobilityProviders)
|
|
13649
13681
|
mergedCTR.eMobilityProviders.push(eMobilityProvider);
|
|
13682
|
+
if (!mergedCTR.gridOperators)
|
|
13683
|
+
mergedCTR.gridOperators = processedFileResult.gridOperators;
|
|
13684
|
+
else if (processedFileResult.gridOperators)
|
|
13685
|
+
for (const gridOperator of processedFileResult.gridOperators)
|
|
13686
|
+
mergedCTR.gridOperators.push(gridOperator);
|
|
13650
13687
|
if (!mergedCTR.mediationServices)
|
|
13651
13688
|
mergedCTR.mediationServices = processedFileResult.mediationServices;
|
|
13652
13689
|
else if (processedFileResult.mediationServices)
|
|
@@ -13713,7 +13750,9 @@ var Chargy = class {
|
|
|
13713
13750
|
//#region (private) verifyLiveLinkSignatures(LiveLink)
|
|
13714
13751
|
// A live link may be signed as a whole by the operator, which is what ties
|
|
13715
13752
|
// the transport URLs and the listed public keys to whoever signed them.
|
|
13716
|
-
// Those signatures are verified whenever the document carries any
|
|
13753
|
+
// Those signatures are verified whenever the document carries any, and so
|
|
13754
|
+
// are the signatures its legally relevant log messages carry over
|
|
13755
|
+
// themselves - see verifyLiveLinkLogMessages().
|
|
13717
13756
|
//
|
|
13718
13757
|
// Nothing here rejects a document. An unsigned live link, an unknown key or
|
|
13719
13758
|
// even a signature that does not match is reported as a warning and the
|
|
@@ -13757,11 +13796,62 @@ var Chargy = class {
|
|
|
13757
13796
|
break;
|
|
13758
13797
|
}
|
|
13759
13798
|
}
|
|
13799
|
+
this.verifyLiveLinkLogMessages(LiveLink, warn);
|
|
13760
13800
|
LiveLink.signatureVerification = result;
|
|
13761
13801
|
if (warnings.length > 0)
|
|
13762
13802
|
LiveLink.warnings = [...LiveLink.warnings ?? [], ...warnings];
|
|
13763
13803
|
}
|
|
13764
13804
|
//#endregion
|
|
13805
|
+
//#region (private) verifyLiveLinkLogMessages(LiveLink, Warn)
|
|
13806
|
+
// A legally relevant log message - a grid operator's power constraint, say -
|
|
13807
|
+
// carries signatures of its own, made by whoever sent it rather than by
|
|
13808
|
+
// whoever assembled the document around it. The two prove different things:
|
|
13809
|
+
// the document signature says the message has not been changed since the
|
|
13810
|
+
// operator collected it, the message signature says the grid operator is
|
|
13811
|
+
// who asked for the constraint. Only the second one answers the question the
|
|
13812
|
+
// message exists for, which is why a dip in the charging curve has a signed
|
|
13813
|
+
// explanation next to it.
|
|
13814
|
+
//
|
|
13815
|
+
// The keys and the keyIdGeneration come from the live link, the signatures
|
|
13816
|
+
// from the message - see verifyEmbeddedSignatures().
|
|
13817
|
+
//
|
|
13818
|
+
// Nothing here rejects a document either. A message that does not verify is
|
|
13819
|
+
// reported and stays where it is; what a reader makes of that is the
|
|
13820
|
+
// reader's decision.
|
|
13821
|
+
verifyLiveLinkLogMessages(LiveLink, Warn) {
|
|
13822
|
+
const logMessages = LiveLink.legallyRelevantLogMessages;
|
|
13823
|
+
if (!Array.isArray(logMessages))
|
|
13824
|
+
return;
|
|
13825
|
+
for (const logMessage of logMessages) {
|
|
13826
|
+
const message = asJSONObject(logMessage);
|
|
13827
|
+
if (message === void 0)
|
|
13828
|
+
continue;
|
|
13829
|
+
const result = verifyEmbeddedSignatures(message, LiveLink);
|
|
13830
|
+
if (result.status === "unsigned") {
|
|
13831
|
+
Warn("LogMessageSignature_Missing", "low" /* low */);
|
|
13832
|
+
continue;
|
|
13833
|
+
}
|
|
13834
|
+
for (const signature of result.signatures) {
|
|
13835
|
+
switch (signature.status) {
|
|
13836
|
+
case "validSignature":
|
|
13837
|
+
break;
|
|
13838
|
+
case "invalidSignature":
|
|
13839
|
+
Warn("LogMessageSignature_Mismatch", "high" /* high */);
|
|
13840
|
+
break;
|
|
13841
|
+
case "unknownPublicKey":
|
|
13842
|
+
Warn("LogMessageSignature_UnknownPublicKey", "medium" /* medium */);
|
|
13843
|
+
break;
|
|
13844
|
+
case "unsupportedAlgorithm":
|
|
13845
|
+
Warn("LogMessageSignature_UnsupportedAlgorithm", "medium" /* medium */);
|
|
13846
|
+
break;
|
|
13847
|
+
case "malformed":
|
|
13848
|
+
Warn("LogMessageSignature_Malformed", "medium" /* medium */);
|
|
13849
|
+
break;
|
|
13850
|
+
}
|
|
13851
|
+
}
|
|
13852
|
+
}
|
|
13853
|
+
}
|
|
13854
|
+
//#endregion
|
|
13765
13855
|
//#region (private) collectLiveLinkMeterValueKeys(LiveLink)
|
|
13766
13856
|
// Every public key of the document that is allowed to sign meter values.
|
|
13767
13857
|
// A charging session is regularly signed by more than one of them: the
|
|
@@ -14118,6 +14208,11 @@ var Chargy = class {
|
|
|
14118
14208
|
else if (ctr.eMobilityProviders)
|
|
14119
14209
|
for (const eMobilityProvider of ctr.eMobilityProviders)
|
|
14120
14210
|
mergedCTR.eMobilityProviders.push(eMobilityProvider);
|
|
14211
|
+
if (!mergedCTR.gridOperators)
|
|
14212
|
+
mergedCTR.gridOperators = ctr.gridOperators;
|
|
14213
|
+
else if (ctr.gridOperators)
|
|
14214
|
+
for (const gridOperator of ctr.gridOperators)
|
|
14215
|
+
mergedCTR.gridOperators.push(gridOperator);
|
|
14121
14216
|
if (!mergedCTR.mediationServices)
|
|
14122
14217
|
mergedCTR.mediationServices = ctr.mediationServices;
|
|
14123
14218
|
else if (ctr.mediationServices)
|
|
@@ -14141,6 +14236,6 @@ buffer/index.js:
|
|
|
14141
14236
|
*)
|
|
14142
14237
|
*/
|
|
14143
14238
|
|
|
14144
|
-
export { ACrypt, Alfen, AlfenCrypt01, BSMCrypt01, CanonicalJSONError, ChargeIT, ChargePoint, ChargePointCrypt01, IChargeTransparencyLiveLink_exports as ChargeTransparencyLiveLink, ChargeTransparencyLiveLinkContext, IChargeTransparencyRecord_exports as ChargeTransparencyRecord, Chargy, chargyInterfaces_exports as ChargyInterfaces, Clone, CloneCTR, ConcatenateBuffers, CreateDiv, CreateDiv2, CreateError, CreateWarning, CryptoAlgorithms, CryptoHashAlgorithms, DayOfWeek, DisplayPrefixes, EDL40, EDL40Crypt01, EDL40ValidationError, EDL40_OBIS, EDL40_SESSION_CONTEXT, EDL40_SIGNATURE_CONTEXT, EMHCrypt01, ErrorLevel, GDFCrypt01, IECCurves, IEncoding, InformationRelevance, InformationRelevanceToString, IsAChargeTransparencyLiveLink, IsAChargeTransparencyRecord, IsAPublicKey, IsAPublicKeyLookup, IsAPublicKeySignature, IsAPublicKeyXY, IsASessionCryptoResult, IsAURL, IsNullOrEmpty, IsValidURL, JSONSignatureVerificationStatus, MENNEKES_EDL40_OBIS, MENNEKES_EDL40_XMLNS, Mennekes, MennekesCrypt01, OBIS2Hex, OBIS2MeasurementName, OBIS_RegExpr, OCMF, OCMFBonnTariffParseError, OCMFTransactionTypes, OCMF_SIGNATURE_ALGORITHMS, OCMFv1_x, OCPI, OIDInfo, PCDF, PCDFCrypt01, PCDFParseError, PCDFValidationError, PCDF_FIELD_ORDER, PCDF_PREFIX, PTB, ParseJSON_LD, PublicKeyFormats, IPublicKeyInfo_exports as PublicKeyInfo, SAFEXML, SessionVerificationResult, SetHex, SetInt8, SetText, SetText_withLength, SetTimestamp, SetTimestamp32, SetUInt32, SetUInt32_withCode, SetUInt64, SetUInt64D, SignMessage, SignatureFormats, IURL_exports as SimpleURL, TimeStatusTypes, URLContext, UTC2human, VerificationResult, VerifyJSONMessageSignatures, WarningLevel, WhenNullOrEmpty, XMLContainer, asJSONArray, asJSONObject, asNumber, asString, base64ToBytes, buf2hex, buildEDL40Signature, buildIsaSignature, buildMennekesSignatureData, bytesToBase64, bytesToHex, canParseEDL40, canonicalJSONBytes, canonicalJSONStringify, cleanHex, closeFullscreen, collectDocumentPublicKeys, createCompatibleCurve, createHexString, createLegacyP192Curve, dateToMennekesLocalEpochSeconds, decodeSmlMessages, defaultRefreshSeconds, extractMennekesChargingProcesses, findEntryByObis, findGetListRes, firstKey, firstValue, generateSignatureKeyPair, getArrayElement, getArrayLikeElement, getDirectChildByLocalName, getDirectChildrenByLocalName, getElementsByLocalName, getFirstArrayElement, getInt16Bytes, getInt32Bytes, getInt64Bytes, getInt8Bytes, getLastArrayElement, getOCMFSignatureDisplay, getSignatureSuite, getTrimmedTextContent, hashFile, hex2bin, hex32, hexToArrayBuffer, hexToBytes, intFromBytes, isConnector, isCustomHeaderValue, isCustomHeaderValueProvider, isCustomHeaders, isEncodedValue, isGeoLocation, isI18NString, isICryptoResult, isIFileInfo, isISessionCryptoResult1, isISessionCryptoResult2, isJSONLDObject, isMandatoryArrayOfStrings, isMandatoryBoolean, isMandatoryDecimal, isMandatoryJSONArray, isMandatoryJSONObject, isMandatoryNumber, isMandatoryString, isMandatoryURL, isOIDInfo, isObject, isOptionalArrayOfStrings, isOptionalDecimal, isOptionalJSONArray, isOptionalJSONArrayError, isOptionalJSONArrayOk, isOptionalJSONObject, isOptionalNumber, isOptionalString, isOptionalStringArray, isOptionalStringOrOIDInfo, isOptionalURL, isPCDFText, isPublicKeySubject, isString, isStringArray, isStringOrOIDInfo, isStringOrStringArray, isTOTPConfig, isLiveTransport as isTransport, isURL, isaListNameContext, jsonPrettyPrinter, measurementName2human, meterTimeZone, normalizePCDFPublicKeyHex, normalizeXMLText, ocmfBonnTariffToChargingTariff, openFullscreen, pad, parseAndVerifyJSONSignatures, parseDescription, parseEDL40, parseHexString, parseMennekesXMLDocument, parseNumber, parseOBIS, parseOCMFBonnTariffText, parsePCDFDocument, parsePCDFPublicKey, parsePCDFSignature, parseSmlTime, parseUTC, readQRCodeTextFromImage, readQRCodeTextFromImageData, readTLV, secp224k1, setUILocale, sha256, sha256____, sha384, sha384____, sha512, sha512____, signJSONMessage, signMessage, stripPCDFControlCharacters, stripTransport, time2human, timeZoneOffsetMinutes, toArrayBuffer, toSessionVerificationResults, toUint8Array, transformEDL40Status, tryParseOCMFBonnTariffText, unquotePCDFText, validatePCDFFields, verifyDocumentSignatures, verifyEDL40Document, verifyJSONMessageSignatureResults, verifyJSONMessageSignatures, verifyJSONSignature, verifyJSONSignatureResult, verifyPCDFDocument };
|
|
14239
|
+
export { ACrypt, Alfen, AlfenCrypt01, BSMCrypt01, CanonicalJSONError, ChargeIT, ChargePoint, ChargePointCrypt01, IChargeTransparencyLiveLink_exports as ChargeTransparencyLiveLink, ChargeTransparencyLiveLinkContext, IChargeTransparencyRecord_exports as ChargeTransparencyRecord, Chargy, chargyInterfaces_exports as ChargyInterfaces, Clone, CloneCTR, ConcatenateBuffers, CreateDiv, CreateDiv2, CreateError, CreateWarning, CryptoAlgorithms, CryptoHashAlgorithms, DayOfWeek, DisplayPrefixes, EDL40, EDL40Crypt01, EDL40ValidationError, EDL40_OBIS, EDL40_SESSION_CONTEXT, EDL40_SIGNATURE_CONTEXT, EMHCrypt01, ErrorLevel, GDFCrypt01, IECCurves, IEncoding, InformationRelevance, InformationRelevanceToString, IsAChargeTransparencyLiveLink, IsAChargeTransparencyRecord, IsAPublicKey, IsAPublicKeyLookup, IsAPublicKeySignature, IsAPublicKeyXY, IsASessionCryptoResult, IsAURL, IsNullOrEmpty, IsValidURL, JSONSignatureVerificationStatus, MENNEKES_EDL40_OBIS, MENNEKES_EDL40_XMLNS, Mennekes, MennekesCrypt01, OBIS2Hex, OBIS2MeasurementName, OBIS_RegExpr, OCMF, OCMFBonnTariffParseError, OCMFBonnTariffSeparator, OCMFTransactionTypes, OCMF_SIGNATURE_ALGORITHMS, OCMFv1_x, OCPI, OIDInfo, PCDF, PCDFCrypt01, PCDFParseError, PCDFValidationError, PCDF_FIELD_ORDER, PCDF_PREFIX, PTB, ParseJSON_LD, PublicKeyFormats, IPublicKeyInfo_exports as PublicKeyInfo, SAFEXML, SessionVerificationResult, SetHex, SetInt8, SetText, SetText_withLength, SetTimestamp, SetTimestamp32, SetUInt32, SetUInt32_withCode, SetUInt64, SetUInt64D, SignMessage, SignatureFormats, IURL_exports as SimpleURL, TimeStatusTypes, URLContext, UTC2human, VerificationResult, VerifyJSONMessageSignatures, WarningLevel, WhenNullOrEmpty, XMLContainer, asJSONArray, asJSONObject, asNumber, asString, base64ToBytes, buf2hex, buildEDL40Signature, buildIsaSignature, buildMennekesSignatureData, bytesToBase64, bytesToHex, canParseEDL40, canonicalJSONBytes, canonicalJSONStringify, cleanHex, closeFullscreen, collectDocumentPublicKeys, createCompatibleCurve, createHexString, createLegacyP192Curve, dateToMennekesLocalEpochSeconds, decodeSmlMessages, defaultRefreshSeconds, extractMennekesChargingProcesses, findEntryByObis, findGetListRes, firstKey, firstValue, generateSignatureKeyPair, getArrayElement, getArrayLikeElement, getDirectChildByLocalName, getDirectChildrenByLocalName, getElementsByLocalName, getFirstArrayElement, getInt16Bytes, getInt32Bytes, getInt64Bytes, getInt8Bytes, getLastArrayElement, getOCMFSignatureDisplay, getSignatureSuite, getTrimmedTextContent, hashFile, hex2bin, hex32, hexToArrayBuffer, hexToBytes, intFromBytes, isConnector, isCustomHeaderValue, isCustomHeaderValueProvider, isCustomHeaders, isEncodedValue, isGeoLocation, isI18NString, isICryptoResult, isIFileInfo, isISessionCryptoResult1, isISessionCryptoResult2, isJSONLDObject, isMandatoryArrayOfStrings, isMandatoryBoolean, isMandatoryDecimal, isMandatoryJSONArray, isMandatoryJSONObject, isMandatoryNumber, isMandatoryString, isMandatoryURL, isOIDInfo, isObject, isOptionalArrayOfStrings, isOptionalDecimal, isOptionalJSONArray, isOptionalJSONArrayError, isOptionalJSONArrayOk, isOptionalJSONObject, isOptionalNumber, isOptionalString, isOptionalStringArray, isOptionalStringOrOIDInfo, isOptionalURL, isPCDFText, isPublicKeySubject, isString, isStringArray, isStringOrOIDInfo, isStringOrStringArray, isTOTPConfig, isLiveTransport as isTransport, isURL, isaListNameContext, jsonPrettyPrinter, measurementName2human, meterTimeZone, normalizePCDFPublicKeyHex, normalizeXMLText, ocmfBonnTariffToChargingTariff, openFullscreen, pad, parseAndVerifyJSONSignatures, parseDescription, parseEDL40, parseHexString, parseMennekesXMLDocument, parseNumber, parseOBIS, parseOCMFBonnTariffText, parseOCMFBonnTariffTexts, parsePCDFDocument, parsePCDFPublicKey, parsePCDFSignature, parseSmlTime, parseUTC, readQRCodeTextFromImage, readQRCodeTextFromImageData, readTLV, secp224k1, setUILocale, sha256, sha256____, sha384, sha384____, sha512, sha512____, signJSONMessage, signMessage, stripPCDFControlCharacters, stripTransport, time2human, timeZoneOffsetMinutes, toArrayBuffer, toSessionVerificationResults, toUint8Array, transformEDL40Status, tryParseOCMFBonnTariffText, unquotePCDFText, validatePCDFFields, verifyDocumentSignatures, verifyEDL40Document, verifyEmbeddedSignatures, verifyJSONMessageSignatureResults, verifyJSONMessageSignatures, verifyJSONSignature, verifyJSONSignatureResult, verifyPCDFDocument };
|
|
14145
14240
|
//# sourceMappingURL=index.js.map
|
|
14146
14241
|
//# sourceMappingURL=index.js.map
|