@open-charging-cloud/chargy-core 0.8.0 → 0.9.0
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/README.md +54 -10
- package/dist/Alfen.d.ts.map +1 -1
- package/dist/OCMF.d.ts +15 -2
- package/dist/OCMF.d.ts.map +1 -1
- package/dist/OCMF_BET_TariffTextExtension.d.ts +33 -0
- package/dist/OCMF_BET_TariffTextExtension.d.ts.map +1 -0
- package/dist/PTBContainer.d.ts +49 -0
- package/dist/PTBContainer.d.ts.map +1 -0
- package/dist/browser/index.js +410 -22
- package/dist/browser/index.js.map +1 -1
- package/dist/chargy.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/interfaces/chargyInterfaces.d.ts +17 -14
- package/dist/interfaces/chargyInterfaces.d.ts.map +1 -1
- package/dist/node/index.js +410 -22
- package/dist/node/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/verificationResults.d.ts +0 -2
- package/dist/verificationResults.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -15,24 +15,66 @@ This software is written as a modern ESM TypeScript package with generated decla
|
|
|
15
15
|
|
|
16
16
|
## Supported Charge Transparency Data Formats
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
18
|
+
ChargyCore.TS supports a broad range of charge transparency data formats used by charging stations, energy meters, backend systems, and invoice-related exports.
|
|
19
|
+
|
|
20
|
+
Currently supported formats include:
|
|
21
|
+
- **Alfen** charge transparency data
|
|
22
|
+
- **Bauer** energy meter data (2 format variants)
|
|
23
|
+
- **ChargePoint** transparency data (2 format variants)
|
|
24
|
+
- **EDL40** and **ISA-EDL40 SML** data
|
|
25
|
+
- **EMH** energy meter data
|
|
26
|
+
- **Mennekes** XML
|
|
27
|
+
- **OCMF**, versions v1.1 to v1.4
|
|
28
|
+
- Bonner Eichrechtstage **Tariff Text** Extensions
|
|
29
|
+
- **Porsche Charging Data Format (PCDF)**
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## Supported Data Representations
|
|
33
|
+
|
|
34
|
+
ChargyCore.TS accepts multiple data representations in order to simplify the validation of individual charge transparency files as well as larger collections of transparency data, for example data sets attached to monthly invoices or exported from backend systems.
|
|
35
|
+
|
|
36
|
+
Supported representations include:
|
|
37
|
+
- **Plain Files** containing a single charge transparency data set.
|
|
38
|
+
- **chargeIT Container Format**, a JSON-based container format for a single charging session (2 format variants).
|
|
39
|
+
- **Chargy Container Format**, a JSON-based container format for multiple charging sessions.
|
|
40
|
+
- **SAFE XML Container Format**, an XML-based container format for a single charging session, optionally enriched with additional Chargy metadata about the charging session.
|
|
41
|
+
- **PTB Container Format**, a JSON-based container format for a single charging session.
|
|
42
|
+
- **Archive formats** such as ***tar, ZIP, tar.gz***, and similar formats that combine or compress multiple charge transparency files.
|
|
43
|
+
- **QR-Code images**, such as ***PNG, JPG, JPEG or SVG files***, where the QR-Code represents a charge transparency data set.
|
|
44
|
+
- **PDF/A-3** files transporting a charge transparency file as an embedded additional data stream.
|
|
45
|
+
|
|
46
|
+
This allows applications to pass transparency data to ChargyCore.TS in the form in which it was originally received, without having to manually unpack, decode, or normalize every file beforehand.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## Applications based on this library
|
|
50
|
+
|
|
51
|
+
- [Chargy Web App](https://github.com/OpenChargingCloud/ChargyWebApp/) (node.js), live demo at [https://chargy.charging.cloud](https://chargy.charging.cloud)
|
|
52
|
+
- [Chargy Desktop App](https://github.com/OpenChargingCloud/ChargyDesktopApp/) (Electron)
|
|
53
|
+
- [Chargy Mobile Apps](https://github.com/OpenChargingCloud/ChargyMobileApp/) (Android/iOS)
|
|
26
54
|
|
|
27
55
|
|
|
28
56
|
## Usage
|
|
29
57
|
|
|
58
|
+
This package is published on npm as [`@open-charging-cloud/chargy-core`](https://www.npmjs.com/package/@open-charging-cloud/chargy-core)
|
|
59
|
+
|
|
60
|
+
First install it e.g. via npm
|
|
61
|
+
```bash
|
|
62
|
+
npm install @open-charging-cloud/chargy-core@latest
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
or, for reproducible builds, pin a specific version:
|
|
66
|
+
```bash
|
|
67
|
+
npm install @open-charging-cloud/chargy-core@<version>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Basic Import (TypeScript / ESM) TypeScript
|
|
30
71
|
```ts
|
|
31
72
|
import { Chargy } from "@open-charging-cloud/chargy-core";
|
|
32
73
|
```
|
|
74
|
+
The package ships as a modern ESM package and includes generated TypeScript declarations, so it can be used directly in TypeScript projects without additional type packages.
|
|
33
75
|
|
|
34
76
|
|
|
35
|
-
|
|
77
|
+
### Runtime Architecture
|
|
36
78
|
|
|
37
79
|
ChargyCore is consumed in different JavaScript runtimes. The browser-based Chargy WebApp and Electron renderer processes have Web APIs such as `DOMParser`, `Blob`, `TextEncoder`, `ImageData`, `DOMMatrix`, `Path2D`, and browser worker loading semantics. Node.js-based tests, command line tools, server-side verification, and build-time checks do not provide the same environment.
|
|
38
80
|
|
|
@@ -57,6 +99,7 @@ Keeping these paths separate has several advantages:
|
|
|
57
99
|
When adding runtime-sensitive dependencies, avoid branching on runtime inside shared source code if that would make bundlers see both implementations. Prefer a small adapter under `src/` and let the build or conditional exports select the runtime-specific implementation.
|
|
58
100
|
|
|
59
101
|
|
|
102
|
+
|
|
60
103
|
## Development
|
|
61
104
|
|
|
62
105
|
```bash
|
|
@@ -99,9 +142,10 @@ For dependency, build, export, PDF.js, or browser-facing changes, run the indivi
|
|
|
99
142
|
npx playwright install chromium
|
|
100
143
|
```
|
|
101
144
|
|
|
145
|
+
## Publishing
|
|
102
146
|
|
|
103
147
|
```bash
|
|
104
|
-
npm version 0.
|
|
148
|
+
npm version 0.9.0 --no-git-tag-version
|
|
105
149
|
npm run verify
|
|
106
150
|
npm pack --dry-run
|
|
107
151
|
npm pack
|
package/dist/Alfen.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alfen.d.ts","sourceRoot":"","sources":["../src/Alfen.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAA0B,UAAU,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAA+B,UAAU,CAAA;AAC1D,OAAO,KAAK,gBAAgB,MAAoB,+BAA+B,CAAA;AAC/E,OAAO,KAAK,KAAK,wBAAwB,MAAO,wCAAwC,CAAA;AAiBxF,qBAAa,KAAK;IAEd,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAG,MAAM;IAI3B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IASf,qBAAqB,CAAC,OAAO,EAAU,MAAM,GAAC,MAAM,EAAE,EAChC,cAAc,EAAG,gBAAgB,CAAC,eAAe,GAExE,wBAAwB,CAAC,yBAAyB,GAClD,gBAAgB,CAAS,oBAAoB;
|
|
1
|
+
{"version":3,"file":"Alfen.d.ts","sourceRoot":"","sources":["../src/Alfen.ts"],"names":[],"mappings":"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"}
|
package/dist/OCMF.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import Decimal from 'decimal.js';
|
|
|
4
4
|
import type * as chargeTransparencyRecord from './interfaces/IChargeTransparencyRecord';
|
|
5
5
|
import type * as publicKeyInfoType from './interfaces/IPublicKeyInfo';
|
|
6
6
|
import * as chargyInterfaces from './interfaces/chargyInterfaces';
|
|
7
|
+
import { type IOCMFBonnTariff } from './OCMF_BET_TariffTextExtension';
|
|
7
8
|
export interface IOCMFv1_0MeasurementValue extends IOCMFMeasurementValue {
|
|
8
9
|
statusMeter: string;
|
|
9
10
|
secondsIndex: number;
|
|
@@ -53,8 +54,8 @@ export declare const enum TimeStatusTypes {
|
|
|
53
54
|
}
|
|
54
55
|
export interface IOCMFLossCompensation {
|
|
55
56
|
LN?: string;
|
|
56
|
-
LI?:
|
|
57
|
-
LR:
|
|
57
|
+
LI?: number;
|
|
58
|
+
LR: number;
|
|
58
59
|
LU: string;
|
|
59
60
|
}
|
|
60
61
|
export interface IOCMFReading {
|
|
@@ -65,6 +66,7 @@ export interface IOCMFReading {
|
|
|
65
66
|
RU?: string;
|
|
66
67
|
RT?: string;
|
|
67
68
|
CL?: number;
|
|
69
|
+
EI?: number;
|
|
68
70
|
EF?: string;
|
|
69
71
|
ST?: string;
|
|
70
72
|
}
|
|
@@ -135,6 +137,7 @@ export interface IOCMFMeasurementValue extends chargeTransparencyRecord.IMeasure
|
|
|
135
137
|
transaction?: string | undefined;
|
|
136
138
|
transactionType: OCMFTransactionTypes;
|
|
137
139
|
pagination: number;
|
|
140
|
+
errorIndex?: number | undefined;
|
|
138
141
|
errorFlags?: string | undefined;
|
|
139
142
|
cumulatedLoss?: Decimal | undefined;
|
|
140
143
|
status: string;
|
|
@@ -160,6 +163,16 @@ export interface IOCMFCTRExtensions {
|
|
|
160
163
|
gatewayInformation?: string | undefined;
|
|
161
164
|
gatewaySerial?: string | undefined;
|
|
162
165
|
gatewayVersion?: string | undefined;
|
|
166
|
+
meterVendor?: string | undefined;
|
|
167
|
+
meterModel?: string | undefined;
|
|
168
|
+
meterSerial?: string | undefined;
|
|
169
|
+
meterFirmware?: string | undefined;
|
|
170
|
+
tariffText?: string | undefined;
|
|
171
|
+
tariffTextInterpretation?: IOCMFBonnTariff | undefined;
|
|
172
|
+
controllerFirmwareVersion?: string | undefined;
|
|
173
|
+
lossCompensation?: IOCMFLossCompensation | undefined;
|
|
174
|
+
chargePointIdentificationType?: string | undefined;
|
|
175
|
+
chargePointIdentification?: string | undefined;
|
|
163
176
|
}
|
|
164
177
|
export interface IOCMFChargeTransparencyRecord extends chargeTransparencyRecord.IChargeTransparencyRecord {
|
|
165
178
|
ocmf?: IOCMFCTRExtensions | undefined;
|
package/dist/OCMF.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OCMF.d.ts","sourceRoot":"","sources":["../src/OCMF.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EACN,aAAa,EACI,MAAiB,UAAU,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAA+B,UAAU,CAAA;AAC1D,OAAO,OAAO,MAAkC,YAAY,CAAC;AAC7D,OAAO,KAAK,KAAK,wBAAwB,MAAO,wCAAwC,CAAA;AACxF,OAAO,KAAK,KAAK,iBAAiB,MAAc,6BAA6B,CAAA;AAG7E,OAAO,KAAK,gBAAgB,MAAoB,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"OCMF.d.ts","sourceRoot":"","sources":["../src/OCMF.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EACN,aAAa,EACI,MAAiB,UAAU,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAA+B,UAAU,CAAA;AAC1D,OAAO,OAAO,MAAkC,YAAY,CAAC;AAC7D,OAAO,KAAK,KAAK,wBAAwB,MAAO,wCAAwC,CAAA;AACxF,OAAO,KAAK,KAAK,iBAAiB,MAAc,6BAA6B,CAAA;AAG7E,OAAO,KAAK,gBAAgB,MAAoB,+BAA+B,CAAA;AAC/E,OAAO,EAGH,KAAK,eAAe,EACvB,MAAM,gCAAgC,CAAA;AAmBvC,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IAEpE,WAAW,EAAoB,MAAM,CAAC;IACtC,YAAY,EAAmB,MAAM,CAAC;IACtC,YAAY,EAAmB,MAAM,CAAC;IACtC,YAAY,EAAmB,MAAM,CAAA;CACxC;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB,CAAC,aAAa;IAEnE,WAAW,CAAC,EAAmB,MAAM,CAAC;IACtC,OAAO,CAAC,EAAuB,MAAM,CAAC;IACtC,KAAK,CAAC,EAAyB,gBAAgB,CAAC,YAAY,CAAC;IAC7D,SAAS,CAAC,EAAqB,MAAM,CAAC;IACtC,UAAU,CAAC,EAAoB,MAAM,CAAC;IACtC,YAAY,CAAC,EAAkB,MAAM,CAAC;IACtC,YAAY,CAAC,EAAkB,MAAM,CAAC;IACtC,IAAI,CAAC,EAA0B,MAAM,CAAC;IACtC,WAAW,CAAC,EAAmB,MAAM,CAAC;IACtC,KAAK,CAAC,EAAyB,MAAM,CAAC;IACtC,KAAK,CAAC,EAAyB,MAAM,CAAC;IACtC,YAAY,CAAC,EAAkB,MAAM,CAAC;IACtC,kBAAkB,CAAC,EAAY,MAAM,CAAC;IACtC,iBAAiB,CAAC,EAAa,MAAM,CAAC;IACtC,2BAA2B,CAAC,EAAG,MAAM,CAAC;IACtC,SAAS,CAAC,EAAqB,MAAM,CAAC;IACtC,eAAe,CAAC,EAAe,MAAM,CAAC;IACtC,mBAAmB,CAAC,EAAW,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAqB,gBAAgB,CAAC,YAAY,CAAA;CAC/D;AAED,qBAAa,QAAS,SAAQ,MAAM;IAEhC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAuC;gBAExD,MAAM,EAAG,MAAM;IAMrB,qBAAqB,CAAC,eAAe,EAAE,wBAAwB,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;IA4GjI,iBAAiB,CAAC,gBAAgB,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;IAc9F,OAAO,CAAC,iBAAiB;IAsHzB,OAAO,CAAC,mBAAmB;IAwBrB,eAAe,CAAC,gBAAgB,EAAO,yBAAyB,EAChD,SAAS,EAAc,cAAc,EACrC,QAAQ,EAAe,cAAc,EACrC,QAAQ,EAAe,cAAc,EACrC,YAAY,EAAW,cAAc,EACrC,kBAAkB,EAAK,cAAc,EACrC,YAAY,EAAW,cAAc,EACrC,oBAAoB,EAAG,cAAc,EACrC,iBAAiB,EAAM,cAAc,GAAI,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;CA8N5F;AAMD,0BAAkB,oBAAoB;IAElC,SAAS,cAAkB;IAC3B,MAAM,WAAkB;IACxB,WAAW,gBAAkB;CAChC;AAED,0BAAkB,eAAe;IAC7B,OAAO,YAAkB;IACzB,WAAW,gBAAkB;IAC7B,WAAW,gBAAkB;IAC7B,QAAQ,aAAkB;CAC7B;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,CAAC,EAAS,MAAM,CAAC;IACnB,EAAE,CAAC,EAAS,MAAM,CAAC;IACnB,EAAE,EAAU,MAAM,CAAC;IACnB,EAAE,EAAU,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAazB,EAAE,CAAC,EAAS,MAAM,CAAC;IAgBnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAanB,EAAE,CAAC,EAAS,OAAO,CAAC;IAOpB,EAAE,CAAC,EAAS,MAAM,CAAC;IAEnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAEnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAEnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAInB,EAAE,CAAC,EAAS,MAAM,CAAC;IAEnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAGnB,EAAE,CAAC,EAAS,MAAM,CAAA;CAiBrB;AAED,MAAM,WAAW,cAAc;IAO3B,EAAE,CAAC,EAAS,MAAM,CAAC;IAgBnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAMnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAKnB,EAAE,EAAU,MAAM,CAAA;IAKlB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IAMpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;CAIvB;AAED,MAAM,WAAW,YAAY;IA6BzB,EAAE,CAAC,EAAS,MAAM,CAAC;IAGnB,EAAE,CAAC,EAAS,MAAM,CAAC;IACnB,EAAE,CAAC,EAAS,MAAM,CAAC;IACnB,EAAE,CAAC,EAAS,MAAM,CAAC;IACnB,EAAE,CAAC,EAAS,MAAM,CAAC;IACnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAMnB,EAAE,EAAU,MAAM,CAAC;IAYnB,EAAE,CAAC,EAAS,MAAM,CAAC;IACnB,EAAE,CAAC,EAAS,MAAM,CAAC;IACnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAKnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAMnB,EAAE,EAAU,OAAO,GAAC,MAAM,CAAC;IAM3B,EAAE,CAAC,EAAS,MAAM,CAAC;IAmBnB,EAAE,CAAC,EAAS,MAAM,EAAE,CAAC;IA2BrB,EAAE,CAAC,EAAS,MAAM,CAAC;IA6BnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAEnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAOnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAInB,EAAE,CAAC,EAAS,qBAAqB,CAAC;IAwBlC,EAAE,CAAC,EAAS,MAAM,CAAC;IAOnB,EAAE,CAAC,EAAS,MAAM,CAAC;IAMnB,EAAE,EAAU,KAAK,CAAC,YAAY,CAAC,CAAC;IAOhC,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;IACpB,CAAC,CAAC,EAAU,OAAO,CAAC;CAIvB;AAED,MAAM,WAAW,iBAAiB;IAE9B,UAAU,EAAW,MAAM,GAAC,MAAM,EAAE,CAAC;IAErC,GAAG,CAAC,EAAiB,MAAM,GAAG,SAAS,CAAC;IACxC,UAAU,CAAC,EAAU,MAAM,GAAG,SAAS,CAAC;IAIxC,aAAa,EAAQ,MAAM,CAAC;IAC5B,SAAS,EAAY,MAAM,CAAC;IAE5B,OAAO,EAAc,YAAY,CAAC;IAClC,SAAS,EAAY,cAAc,CAAC;IACpC,WAAW,CAAC,EAAS,gBAAgB,CAAC,YAAY,GAAG,SAAS,CAAC;IAC/D,SAAS,CAAC,EAAW,MAAM,GAAC,iBAAiB,CAAC,YAAY,GAAG,SAAS,CAAC;IACvE,iBAAiB,CAAC,EAAG,MAAM,GAAG,SAAS,CAAC;IAExC,gBAAgB,CAAC,EAAI,gBAAgB,CAAC,kBAAkB,GAAG,SAAS,CAAA;CAEvE;AAMD,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB,CAAC,iBAAiB;IAErF,WAAW,CAAC,EAAgB,gBAAgB,GAAG,SAAS,CAAC;IACzD,QAAQ,EAAoB,MAAM,CAAC;IACnC,WAAW,CAAC,EAAgB,MAAM,GAAG,SAAS,CAAC;IAC/C,eAAe,EAAa,oBAAoB,CAAC;IACjD,UAAU,EAAkB,MAAM,CAAC;IACnC,UAAU,CAAC,EAAiB,MAAM,GAAG,SAAS,CAAC;IAC/C,UAAU,CAAC,EAAiB,MAAM,GAAG,SAAS,CAAC;IAC/C,aAAa,CAAC,EAAc,OAAO,GAAG,SAAS,CAAC;IAChD,MAAM,EAAsB,MAAM,CAAC;IACnC,YAAY,CAAC,EAAe,iBAAiB,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB,CAAC,YAAY;IAE3E,WAAW,CAAC,EAAgB,MAAM,GAAG,SAAS,CAAC;IAC/C,MAAM,EAAsB,KAAK,CAAC,qBAAqB,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB,CAAC,cAAc;IAEvE,oBAAoB,CAAC,EAAO,OAAO,GAAC,MAAM,GAAG,SAAS,CAAC;IACvD,mBAAmB,CAAC,EAAQ,MAAM,GAAG,SAAS,CAAC;IAC/C,mBAAmB,CAAC,EAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB,CAAC,gBAAgB;IAEnF,iBAAiB,CAAC,EAAU,MAAM,GAAG,SAAS,CAAC;IAC/C,kBAAkB,EAAU,kBAAkB,CAAC;IAC/C,KAAK,CAAC,EAAsB,gBAAgB,CAAC,YAAY,GAAG,SAAS,CAAC;IACtE,YAAY,EAAgB,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IAC/B,aAAa,CAAC,EAAkB,MAAM,GAAsB,SAAS,CAAC;IACtE,kBAAkB,CAAC,EAAa,MAAM,GAAsB,SAAS,CAAC;IACtE,aAAa,CAAC,EAAkB,MAAM,GAAsB,SAAS,CAAC;IACtE,cAAc,CAAC,EAAiB,MAAM,GAAsB,SAAS,CAAC;IACtE,WAAW,CAAC,EAAoB,MAAM,GAAsB,SAAS,CAAC;IACtE,UAAU,CAAC,EAAqB,MAAM,GAAsB,SAAS,CAAC;IACtE,WAAW,CAAC,EAAoB,MAAM,GAAsB,SAAS,CAAC;IACtE,aAAa,CAAC,EAAkB,MAAM,GAAsB,SAAS,CAAC;IACtE,UAAU,CAAC,EAAqB,MAAM,GAAsB,SAAS,CAAC;IACtE,wBAAwB,CAAC,EAAO,eAAe,GAAa,SAAS,CAAC;IACtE,yBAAyB,CAAC,EAAM,MAAM,GAAsB,SAAS,CAAC;IACtE,gBAAgB,CAAC,EAAe,qBAAqB,GAAO,SAAS,CAAC;IACtE,6BAA6B,CAAC,EAAE,MAAM,GAAsB,SAAS,CAAC;IACtE,yBAAyB,CAAC,EAAM,MAAM,GAAsB,SAAS,CAAA;CACxE;AAED,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB,CAAC,yBAAyB;IAErG,IAAI,CAAC,EAAuB,kBAAkB,GAAG,SAAS,CAAC;IAC3D,gBAAgB,CAAC,EAAW,KAAK,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC;CACvE;AAID,qBAAa,IAAI;IAEb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM;IAM1B,OAAO,CAAC,kBAAkB;YAkzBZ,qBAAqB;YA4QrB,sBAAsB;IA0UvB,sBAAsB,CAAC,YAAY,EAAS,MAAM,EAC3B,SAAS,CAAC,EAAW,MAAM,GAAC,iBAAiB,CAAC,YAAY,EAC1D,iBAAiB,CAAC,EAAG,MAAM,EAC3B,cAAc,CAAC,EAAM,gBAAgB,CAAC,eAAe,GAEnF,OAAO,CAAC,wBAAwB,CAAC,yBAAyB,GAClD,gBAAgB,CAAS,oBAAoB,CAAC;IAiB/C,uBAAuB,CAAC,aAAa,EAAQ,MAAM,EAAE,EAC7B,SAAS,CAAC,EAAW,MAAM,GAAC,iBAAiB,CAAC,YAAY,EAC1D,iBAAiB,CAAC,EAAG,MAAM,EAC3B,cAAc,CAAC,EAAM,gBAAgB,CAAC,eAAe,GAEpF,OAAO,CAAC,wBAAwB,CAAC,yBAAyB,GAClD,gBAAgB,CAAS,oBAAoB,CAAC;IA2I5D,OAAO,CAAC,gBAAgB;CAM3B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { IChargingTariff } from './interfaces/chargyInterfaces';
|
|
2
|
+
export type OCMFBonnTariffCode = "001" | "002" | "003";
|
|
3
|
+
export interface IOCMFBonnTariffBase {
|
|
4
|
+
raw: string;
|
|
5
|
+
code: OCMFBonnTariffCode;
|
|
6
|
+
currency: "EUR";
|
|
7
|
+
startFeeCents: number;
|
|
8
|
+
}
|
|
9
|
+
export interface IOCMFBonnTariff001 extends IOCMFBonnTariffBase {
|
|
10
|
+
code: "001";
|
|
11
|
+
energyFeeCentsPerKWh: number;
|
|
12
|
+
blockingFeeCentsPerMinute: number;
|
|
13
|
+
blockingFeeStartMinute: number;
|
|
14
|
+
}
|
|
15
|
+
export interface IOCMFBonnTariff002 extends IOCMFBonnTariffBase {
|
|
16
|
+
code: "002";
|
|
17
|
+
energyFeeCentsPerKWh: number;
|
|
18
|
+
blockingFeeCentsPerMinute: number;
|
|
19
|
+
blockingFeeStartsAfterCharging: true;
|
|
20
|
+
}
|
|
21
|
+
export interface IOCMFBonnTariff003 extends IOCMFBonnTariffBase {
|
|
22
|
+
code: "003";
|
|
23
|
+
timeFeeCentsPerMinute: number;
|
|
24
|
+
}
|
|
25
|
+
export type IOCMFBonnTariff = IOCMFBonnTariff001 | IOCMFBonnTariff002 | IOCMFBonnTariff003;
|
|
26
|
+
export declare class OCMFBonnTariffParseError extends Error {
|
|
27
|
+
readonly tariffText: string;
|
|
28
|
+
constructor(tariffText: string, message: string);
|
|
29
|
+
}
|
|
30
|
+
export declare function parseOCMFBonnTariffText(tariffText: string): IOCMFBonnTariff;
|
|
31
|
+
export declare function tryParseOCMFBonnTariffText(tariffText: string): IOCMFBonnTariff | undefined;
|
|
32
|
+
export declare function ocmfBonnTariffToChargingTariff(tariff: IOCMFBonnTariff): IChargingTariff;
|
|
33
|
+
//# sourceMappingURL=OCMF_BET_TariffTextExtension.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Chargy } from './chargy';
|
|
2
|
+
import type * as chargeTransparencyRecord from './interfaces/IChargeTransparencyRecord';
|
|
3
|
+
import * as chargyInterfaces from './interfaces/chargyInterfaces';
|
|
4
|
+
export interface IPTBAddress {
|
|
5
|
+
street: string;
|
|
6
|
+
houseNumber?: string | undefined;
|
|
7
|
+
zipCode?: string | undefined;
|
|
8
|
+
postalCode?: string | undefined;
|
|
9
|
+
town?: string | undefined;
|
|
10
|
+
city?: string | undefined;
|
|
11
|
+
country?: string | undefined;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
14
|
+
export interface IPTBGeoLocation {
|
|
15
|
+
lat: number;
|
|
16
|
+
lng: number;
|
|
17
|
+
}
|
|
18
|
+
export interface IPTBContainer {
|
|
19
|
+
format: "ptb";
|
|
20
|
+
formatVersion?: string | undefined;
|
|
21
|
+
publicKey: string;
|
|
22
|
+
chargeboxIdentifier: string;
|
|
23
|
+
address: IPTBAddress;
|
|
24
|
+
geoLocation: IPTBGeoLocation;
|
|
25
|
+
ocmfBegin: string;
|
|
26
|
+
ocmfEnd: string;
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
}
|
|
29
|
+
export interface IPTBValidationIssue {
|
|
30
|
+
path: string;
|
|
31
|
+
message: string;
|
|
32
|
+
}
|
|
33
|
+
export interface IPTBValidationError extends chargyInterfaces.ISessionCryptoResult {
|
|
34
|
+
format: "ptb";
|
|
35
|
+
issues: IPTBValidationIssue[];
|
|
36
|
+
}
|
|
37
|
+
export declare class PTB {
|
|
38
|
+
private readonly chargy;
|
|
39
|
+
constructor(chargy: Chargy);
|
|
40
|
+
TryToParsePTBContainer(container: unknown): Promise<chargeTransparencyRecord.IChargeTransparencyRecord | chargyInterfaces.ISessionCryptoResult>;
|
|
41
|
+
private validateContainer;
|
|
42
|
+
private validateAddress;
|
|
43
|
+
private validateGeoLocation;
|
|
44
|
+
private requireString;
|
|
45
|
+
private requireConstantString;
|
|
46
|
+
private normalizeAddress;
|
|
47
|
+
private validationError;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=PTBContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PTBContainer.d.ts","sourceRoot":"","sources":["../src/PTBContainer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAA0B,UAAU,CAAA;AAE1D,OAAO,KAAK,KAAK,wBAAwB,MAAO,wCAAwC,CAAA;AACxF,OAAO,KAAK,gBAAgB,MAAoB,+BAA+B,CAAA;AAI/E,MAAM,WAAW,WAAW;IACxB,MAAM,EAAS,MAAM,CAAC;IACtB,WAAW,CAAC,EAAG,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAO,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAI,MAAM,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAU,MAAM,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAU,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAO,MAAM,GAAG,SAAS,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAiB,KAAK,CAAC;IAC7B,aAAa,CAAC,EAAS,MAAM,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAc,MAAM,CAAC;IAC9B,mBAAmB,EAAI,MAAM,CAAC;IAC9B,OAAO,EAAgB,WAAW,CAAC;IACnC,WAAW,EAAY,eAAe,CAAC;IACvC,SAAS,EAAc,MAAM,CAAC;IAC9B,OAAO,EAAgB,MAAM,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAQ,MAAM,CAAC;IACnB,OAAO,EAAK,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB,CAAC,oBAAoB;IAC9E,MAAM,EAAM,KAAK,CAAC;IAClB,MAAM,EAAM,mBAAmB,EAAE,CAAC;CACrC;AAOD,qBAAa,GAAG;IAEZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM;IAKb,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAEhD,OAAO,CAAC,wBAAwB,CAAC,yBAAyB,GAClD,gBAAgB,CAAC,oBAAoB,CAAC;IAkCpD,OAAO,CAAC,iBAAiB;IAuFzB,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;CAe1B"}
|