@teslemetry/tesla-protocol 0.5.0 → 1.0.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 +1 -3
- package/dist/charging/charging.cjs +550 -0
- package/dist/charging/charging.d.cts +75 -0
- package/dist/charging/charging.d.mts +75 -0
- package/dist/charging/charging.mjs +543 -0
- package/dist/command/car_server.cjs +212 -11
- package/dist/command/car_server.d.cts +121 -96
- package/dist/command/car_server.d.mts +121 -96
- package/dist/command/car_server.mjs +206 -12
- package/dist/command/common.cjs +43 -0
- package/dist/command/common.d.cts +6 -2
- package/dist/command/common.d.mts +6 -2
- package/dist/command/common.mjs +43 -1
- package/dist/command/managed_charging.d.cts +1 -1
- package/dist/command/managed_charging.d.mts +1 -1
- package/dist/command/session.d.cts +0 -4
- package/dist/command/session.d.mts +0 -4
- package/dist/command/universal_message.cjs +8 -3
- package/dist/command/universal_message.d.cts +5 -3
- package/dist/command/universal_message.d.mts +5 -3
- package/dist/command/universal_message.mjs +8 -3
- package/dist/command/vcsec.cjs +124 -39
- package/dist/command/vcsec.d.cts +50 -40
- package/dist/command/vcsec.d.mts +50 -40
- package/dist/command/vcsec.mjs +123 -40
- package/dist/command/vehicle.cjs +156 -18
- package/dist/command/vehicle.d.cts +70 -57
- package/dist/command/vehicle.d.mts +70 -57
- package/dist/command/vehicle.mjs +156 -20
- package/dist/dashcam/dashcam_sei.cjs +263 -0
- package/dist/dashcam/dashcam_sei.d.cts +60 -0
- package/dist/dashcam/dashcam_sei.d.mts +60 -0
- package/dist/dashcam/dashcam_sei.mjs +255 -0
- package/dist/energy_command/identifier_type.cjs +0 -5
- package/dist/energy_command/identifier_type.d.cts +0 -5
- package/dist/energy_command/identifier_type.d.mts +0 -5
- package/dist/energy_command/identifier_type.mjs +0 -5
- package/dist/energy_device/authorization_api.d.cts +0 -5
- package/dist/energy_device/authorization_api.d.mts +0 -5
- package/dist/energy_device/authorization_types.cjs +0 -5
- package/dist/energy_device/authorization_types.d.cts +0 -5
- package/dist/energy_device/authorization_types.d.mts +0 -5
- package/dist/energy_device/authorization_types.mjs +0 -5
- package/dist/energy_device/common_api.cjs +604 -11
- package/dist/energy_device/common_api.d.cts +60 -8
- package/dist/energy_device/common_api.d.mts +60 -8
- package/dist/energy_device/common_api.mjs +596 -12
- package/dist/energy_device/device.cjs +129 -5
- package/dist/energy_device/device.d.cts +13 -6
- package/dist/energy_device/device.d.mts +13 -6
- package/dist/energy_device/device.mjs +127 -6
- package/dist/energy_device/energy.cjs +0 -5
- package/dist/energy_device/energy.d.cts +0 -5
- package/dist/energy_device/energy.d.mts +0 -5
- package/dist/energy_device/energy.mjs +0 -5
- package/dist/energy_device/energy_site_net.cjs +747 -5
- package/dist/energy_device/energy_site_net.d.cts +84 -6
- package/dist/energy_device/energy_site_net.d.mts +84 -6
- package/dist/energy_device/energy_site_net.mjs +736 -6
- package/dist/energy_device/error.d.cts +0 -5
- package/dist/energy_device/error.d.mts +0 -5
- package/dist/energy_device/filestore_api.cjs +570 -0
- package/dist/energy_device/filestore_api.d.cts +76 -0
- package/dist/energy_device/filestore_api.d.mts +76 -0
- package/dist/energy_device/filestore_api.mjs +558 -0
- package/dist/energy_device/google/protobuf/duration.cjs +71 -0
- package/dist/energy_device/google/protobuf/duration.d.cts +95 -0
- package/dist/energy_device/google/protobuf/duration.d.mts +95 -0
- package/dist/energy_device/google/protobuf/duration.mjs +69 -0
- package/dist/energy_device/graphql_api.cjs +444 -0
- package/dist/energy_device/graphql_api.d.cts +73 -0
- package/dist/energy_device/graphql_api.d.mts +73 -0
- package/dist/energy_device/graphql_api.mjs +429 -0
- package/dist/energy_device/intra_site_api.cjs +1693 -0
- package/dist/energy_device/intra_site_api.d.cts +222 -0
- package/dist/energy_device/intra_site_api.d.mts +222 -0
- package/dist/energy_device/intra_site_api.mjs +1639 -0
- package/dist/energy_device/local_auth_api.cjs +500 -0
- package/dist/energy_device/local_auth_api.d.cts +68 -0
- package/dist/energy_device/local_auth_api.d.mts +68 -0
- package/dist/energy_device/local_auth_api.mjs +487 -0
- package/dist/energy_device/networking.cjs +20 -7
- package/dist/energy_device/networking.d.cts +2 -5
- package/dist/energy_device/networking.d.mts +2 -5
- package/dist/energy_device/networking.mjs +20 -7
- package/dist/energy_device/neurio_meter_api.cjs +1437 -0
- package/dist/energy_device/neurio_meter_api.d.cts +197 -0
- package/dist/energy_device/neurio_meter_api.d.mts +197 -0
- package/dist/energy_device/neurio_meter_api.mjs +1396 -0
- package/dist/energy_device/pvi_api.cjs +2949 -0
- package/dist/energy_device/pvi_api.d.cts +314 -0
- package/dist/energy_device/pvi_api.d.mts +314 -0
- package/dist/energy_device/pvi_api.mjs +2887 -0
- package/dist/energy_device/teg_api.cjs +5179 -147
- package/dist/energy_device/teg_api.d.cts +490 -80
- package/dist/energy_device/teg_api.d.mts +490 -80
- package/dist/energy_device/teg_api.mjs +5059 -148
- package/dist/energy_device/transport.cjs +82 -7
- package/dist/energy_device/transport.d.cts +16 -10
- package/dist/energy_device/transport.d.mts +16 -10
- package/dist/energy_device/transport.mjs +82 -7
- package/dist/energy_device/update.cjs +33 -11
- package/dist/energy_device/update.d.cts +3 -5
- package/dist/energy_device/update.d.mts +3 -5
- package/dist/energy_device/update.mjs +33 -11
- package/dist/energy_device/wall_connector.cjs +6729 -10
- package/dist/energy_device/wall_connector.d.cts +696 -7
- package/dist/energy_device/wall_connector.d.mts +696 -7
- package/dist/energy_device/wall_connector.mjs +6591 -11
- package/dist/telemetry/vehicle_data.cjs +1 -1
- package/dist/telemetry/vehicle_data.d.cts +1 -1
- package/dist/telemetry/vehicle_data.d.mts +1 -1
- package/dist/telemetry/vehicle_data.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,6 +15,4 @@ import { Payload } from "@teslemetry/tesla-protocol/telemetry/vehicle_data";
|
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
See the [repository README](https://github.com/Teslemetry/tesla-protocol) for
|
|
18
|
-
|
|
19
|
-
Teslemetry extensions from our own observations and contributions from the
|
|
20
|
-
community) and the release model.
|
|
18
|
+
the release model.
|
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let _bufbuild_protobuf_wire = require("@bufbuild/protobuf/wire");
|
|
3
|
+
//#region src/charging/charging.ts
|
|
4
|
+
const protobufPackage = "com.tesla.proto.charging.v1";
|
|
5
|
+
function createBaseEnergy() {
|
|
6
|
+
return {
|
|
7
|
+
wattHours: 0,
|
|
8
|
+
milliWattHours: 0
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
const Energy = {
|
|
12
|
+
encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
|
|
13
|
+
if (message.wattHours !== 0) writer.uint32(8).uint32(message.wattHours);
|
|
14
|
+
if (message.milliWattHours !== 0) writer.uint32(16).uint32(message.milliWattHours);
|
|
15
|
+
return writer;
|
|
16
|
+
},
|
|
17
|
+
decode(input, length) {
|
|
18
|
+
const reader = input instanceof _bufbuild_protobuf_wire.BinaryReader ? input : new _bufbuild_protobuf_wire.BinaryReader(input);
|
|
19
|
+
const end = length === void 0 ? reader.len : reader.pos + length;
|
|
20
|
+
const message = createBaseEnergy();
|
|
21
|
+
while (reader.pos < end) {
|
|
22
|
+
const tag = reader.uint32();
|
|
23
|
+
switch (tag >>> 3) {
|
|
24
|
+
case 1:
|
|
25
|
+
if (tag !== 8) break;
|
|
26
|
+
message.wattHours = reader.uint32();
|
|
27
|
+
continue;
|
|
28
|
+
case 2:
|
|
29
|
+
if (tag !== 16) break;
|
|
30
|
+
message.milliWattHours = reader.uint32();
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if ((tag & 7) === 4 || tag === 0) break;
|
|
34
|
+
reader.skip(tag & 7);
|
|
35
|
+
}
|
|
36
|
+
return message;
|
|
37
|
+
},
|
|
38
|
+
fromJSON(object) {
|
|
39
|
+
return {
|
|
40
|
+
wattHours: isSet(object.wattHours) ? globalThis.Number(object.wattHours) : 0,
|
|
41
|
+
milliWattHours: isSet(object.milliWattHours) ? globalThis.Number(object.milliWattHours) : 0
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
toJSON(message) {
|
|
45
|
+
const obj = {};
|
|
46
|
+
if (message.wattHours !== void 0) obj.wattHours = Math.round(message.wattHours);
|
|
47
|
+
if (message.milliWattHours !== void 0) obj.milliWattHours = Math.round(message.milliWattHours);
|
|
48
|
+
return obj;
|
|
49
|
+
},
|
|
50
|
+
create(base) {
|
|
51
|
+
return Energy.fromPartial(base ?? {});
|
|
52
|
+
},
|
|
53
|
+
fromPartial(object) {
|
|
54
|
+
const message = createBaseEnergy();
|
|
55
|
+
message.wattHours = object.wattHours ?? 0;
|
|
56
|
+
message.milliWattHours = object.milliWattHours ?? 0;
|
|
57
|
+
return message;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
function createBaseStemInfo() {
|
|
61
|
+
return {
|
|
62
|
+
fwGithash: /* @__PURE__ */ new Uint8Array(0),
|
|
63
|
+
serialNumber: "",
|
|
64
|
+
partNumber: "",
|
|
65
|
+
meterId: ""
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const StemInfo = {
|
|
69
|
+
encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
|
|
70
|
+
if (message.fwGithash.length !== 0) writer.uint32(10).bytes(message.fwGithash);
|
|
71
|
+
if (message.serialNumber !== "") writer.uint32(18).string(message.serialNumber);
|
|
72
|
+
if (message.partNumber !== "") writer.uint32(26).string(message.partNumber);
|
|
73
|
+
if (message.meterId !== "") writer.uint32(34).string(message.meterId);
|
|
74
|
+
return writer;
|
|
75
|
+
},
|
|
76
|
+
decode(input, length) {
|
|
77
|
+
const reader = input instanceof _bufbuild_protobuf_wire.BinaryReader ? input : new _bufbuild_protobuf_wire.BinaryReader(input);
|
|
78
|
+
const end = length === void 0 ? reader.len : reader.pos + length;
|
|
79
|
+
const message = createBaseStemInfo();
|
|
80
|
+
while (reader.pos < end) {
|
|
81
|
+
const tag = reader.uint32();
|
|
82
|
+
switch (tag >>> 3) {
|
|
83
|
+
case 1:
|
|
84
|
+
if (tag !== 10) break;
|
|
85
|
+
message.fwGithash = reader.bytes();
|
|
86
|
+
continue;
|
|
87
|
+
case 2:
|
|
88
|
+
if (tag !== 18) break;
|
|
89
|
+
message.serialNumber = reader.string();
|
|
90
|
+
continue;
|
|
91
|
+
case 3:
|
|
92
|
+
if (tag !== 26) break;
|
|
93
|
+
message.partNumber = reader.string();
|
|
94
|
+
continue;
|
|
95
|
+
case 4:
|
|
96
|
+
if (tag !== 34) break;
|
|
97
|
+
message.meterId = reader.string();
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if ((tag & 7) === 4 || tag === 0) break;
|
|
101
|
+
reader.skip(tag & 7);
|
|
102
|
+
}
|
|
103
|
+
return message;
|
|
104
|
+
},
|
|
105
|
+
fromJSON(object) {
|
|
106
|
+
return {
|
|
107
|
+
fwGithash: isSet(object.fwGithash) ? bytesFromBase64(object.fwGithash) : /* @__PURE__ */ new Uint8Array(0),
|
|
108
|
+
serialNumber: isSet(object.serialNumber) ? globalThis.String(object.serialNumber) : "",
|
|
109
|
+
partNumber: isSet(object.partNumber) ? globalThis.String(object.partNumber) : "",
|
|
110
|
+
meterId: isSet(object.meterId) ? globalThis.String(object.meterId) : ""
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
toJSON(message) {
|
|
114
|
+
const obj = {};
|
|
115
|
+
if (message.fwGithash !== void 0) obj.fwGithash = base64FromBytes(message.fwGithash);
|
|
116
|
+
if (message.serialNumber !== void 0) obj.serialNumber = message.serialNumber;
|
|
117
|
+
if (message.partNumber !== void 0) obj.partNumber = message.partNumber;
|
|
118
|
+
if (message.meterId !== void 0) obj.meterId = message.meterId;
|
|
119
|
+
return obj;
|
|
120
|
+
},
|
|
121
|
+
create(base) {
|
|
122
|
+
return StemInfo.fromPartial(base ?? {});
|
|
123
|
+
},
|
|
124
|
+
fromPartial(object) {
|
|
125
|
+
const message = createBaseStemInfo();
|
|
126
|
+
message.fwGithash = object.fwGithash ?? /* @__PURE__ */ new Uint8Array(0);
|
|
127
|
+
message.serialNumber = object.serialNumber ?? "";
|
|
128
|
+
message.partNumber = object.partNumber ?? "";
|
|
129
|
+
message.meterId = object.meterId ?? "";
|
|
130
|
+
return message;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
function createBaseStemEventInfo() {
|
|
134
|
+
return {
|
|
135
|
+
eventOccurred: false,
|
|
136
|
+
invalidated: false,
|
|
137
|
+
timeSynchronized: false
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
const StemEventInfo = {
|
|
141
|
+
encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
|
|
142
|
+
if (message.eventOccurred !== false) writer.uint32(8).bool(message.eventOccurred);
|
|
143
|
+
if (message.invalidated !== false) writer.uint32(16).bool(message.invalidated);
|
|
144
|
+
if (message.timeSynchronized !== false) writer.uint32(24).bool(message.timeSynchronized);
|
|
145
|
+
return writer;
|
|
146
|
+
},
|
|
147
|
+
decode(input, length) {
|
|
148
|
+
const reader = input instanceof _bufbuild_protobuf_wire.BinaryReader ? input : new _bufbuild_protobuf_wire.BinaryReader(input);
|
|
149
|
+
const end = length === void 0 ? reader.len : reader.pos + length;
|
|
150
|
+
const message = createBaseStemEventInfo();
|
|
151
|
+
while (reader.pos < end) {
|
|
152
|
+
const tag = reader.uint32();
|
|
153
|
+
switch (tag >>> 3) {
|
|
154
|
+
case 1:
|
|
155
|
+
if (tag !== 8) break;
|
|
156
|
+
message.eventOccurred = reader.bool();
|
|
157
|
+
continue;
|
|
158
|
+
case 2:
|
|
159
|
+
if (tag !== 16) break;
|
|
160
|
+
message.invalidated = reader.bool();
|
|
161
|
+
continue;
|
|
162
|
+
case 3:
|
|
163
|
+
if (tag !== 24) break;
|
|
164
|
+
message.timeSynchronized = reader.bool();
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if ((tag & 7) === 4 || tag === 0) break;
|
|
168
|
+
reader.skip(tag & 7);
|
|
169
|
+
}
|
|
170
|
+
return message;
|
|
171
|
+
},
|
|
172
|
+
fromJSON(object) {
|
|
173
|
+
return {
|
|
174
|
+
eventOccurred: isSet(object.eventOccurred) ? globalThis.Boolean(object.eventOccurred) : false,
|
|
175
|
+
invalidated: isSet(object.invalidated) ? globalThis.Boolean(object.invalidated) : false,
|
|
176
|
+
timeSynchronized: isSet(object.timeSynchronized) ? globalThis.Boolean(object.timeSynchronized) : false
|
|
177
|
+
};
|
|
178
|
+
},
|
|
179
|
+
toJSON(message) {
|
|
180
|
+
const obj = {};
|
|
181
|
+
if (message.eventOccurred !== void 0) obj.eventOccurred = message.eventOccurred;
|
|
182
|
+
if (message.invalidated !== void 0) obj.invalidated = message.invalidated;
|
|
183
|
+
if (message.timeSynchronized !== void 0) obj.timeSynchronized = message.timeSynchronized;
|
|
184
|
+
return obj;
|
|
185
|
+
},
|
|
186
|
+
create(base) {
|
|
187
|
+
return StemEventInfo.fromPartial(base ?? {});
|
|
188
|
+
},
|
|
189
|
+
fromPartial(object) {
|
|
190
|
+
const message = createBaseStemEventInfo();
|
|
191
|
+
message.eventOccurred = object.eventOccurred ?? false;
|
|
192
|
+
message.invalidated = object.invalidated ?? false;
|
|
193
|
+
message.timeSynchronized = object.timeSynchronized ?? false;
|
|
194
|
+
return message;
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
function createBaseChargeSessionTimeSeries() {
|
|
198
|
+
return {
|
|
199
|
+
startTimeEpochS: 0,
|
|
200
|
+
endTimeEpochS: 0,
|
|
201
|
+
totalEnergyVendedWh: 0,
|
|
202
|
+
bucketDurationS: 0,
|
|
203
|
+
firstBucketDurationS: 0,
|
|
204
|
+
bucketEnergyVendedWh: [],
|
|
205
|
+
totalEnergyVended: void 0,
|
|
206
|
+
bucketEnergyVended: []
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
const ChargeSessionTimeSeries = {
|
|
210
|
+
encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
|
|
211
|
+
if (message.startTimeEpochS !== 0) writer.uint32(8).uint64(message.startTimeEpochS);
|
|
212
|
+
if (message.endTimeEpochS !== 0) writer.uint32(16).uint64(message.endTimeEpochS);
|
|
213
|
+
if (message.totalEnergyVendedWh !== 0) writer.uint32(24).uint32(message.totalEnergyVendedWh);
|
|
214
|
+
if (message.bucketDurationS !== 0) writer.uint32(32).uint32(message.bucketDurationS);
|
|
215
|
+
if (message.firstBucketDurationS !== 0) writer.uint32(40).uint32(message.firstBucketDurationS);
|
|
216
|
+
writer.uint32(50).fork();
|
|
217
|
+
for (const v of message.bucketEnergyVendedWh) writer.uint32(v);
|
|
218
|
+
writer.join();
|
|
219
|
+
if (message.totalEnergyVended !== void 0) Energy.encode(message.totalEnergyVended, writer.uint32(58).fork()).join();
|
|
220
|
+
for (const v of message.bucketEnergyVended) Energy.encode(v, writer.uint32(66).fork()).join();
|
|
221
|
+
return writer;
|
|
222
|
+
},
|
|
223
|
+
decode(input, length) {
|
|
224
|
+
const reader = input instanceof _bufbuild_protobuf_wire.BinaryReader ? input : new _bufbuild_protobuf_wire.BinaryReader(input);
|
|
225
|
+
const end = length === void 0 ? reader.len : reader.pos + length;
|
|
226
|
+
const message = createBaseChargeSessionTimeSeries();
|
|
227
|
+
while (reader.pos < end) {
|
|
228
|
+
const tag = reader.uint32();
|
|
229
|
+
switch (tag >>> 3) {
|
|
230
|
+
case 1:
|
|
231
|
+
if (tag !== 8) break;
|
|
232
|
+
message.startTimeEpochS = longToNumber(reader.uint64());
|
|
233
|
+
continue;
|
|
234
|
+
case 2:
|
|
235
|
+
if (tag !== 16) break;
|
|
236
|
+
message.endTimeEpochS = longToNumber(reader.uint64());
|
|
237
|
+
continue;
|
|
238
|
+
case 3:
|
|
239
|
+
if (tag !== 24) break;
|
|
240
|
+
message.totalEnergyVendedWh = reader.uint32();
|
|
241
|
+
continue;
|
|
242
|
+
case 4:
|
|
243
|
+
if (tag !== 32) break;
|
|
244
|
+
message.bucketDurationS = reader.uint32();
|
|
245
|
+
continue;
|
|
246
|
+
case 5:
|
|
247
|
+
if (tag !== 40) break;
|
|
248
|
+
message.firstBucketDurationS = reader.uint32();
|
|
249
|
+
continue;
|
|
250
|
+
case 6:
|
|
251
|
+
if (tag === 48) {
|
|
252
|
+
message.bucketEnergyVendedWh.push(reader.uint32());
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
if (tag === 50) {
|
|
256
|
+
const end2 = reader.uint32() + reader.pos;
|
|
257
|
+
while (reader.pos < end2) message.bucketEnergyVendedWh.push(reader.uint32());
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
break;
|
|
261
|
+
case 7:
|
|
262
|
+
if (tag !== 58) break;
|
|
263
|
+
message.totalEnergyVended = Energy.decode(reader, reader.uint32());
|
|
264
|
+
continue;
|
|
265
|
+
case 8:
|
|
266
|
+
if (tag !== 66) break;
|
|
267
|
+
message.bucketEnergyVended.push(Energy.decode(reader, reader.uint32()));
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
if ((tag & 7) === 4 || tag === 0) break;
|
|
271
|
+
reader.skip(tag & 7);
|
|
272
|
+
}
|
|
273
|
+
return message;
|
|
274
|
+
},
|
|
275
|
+
fromJSON(object) {
|
|
276
|
+
return {
|
|
277
|
+
startTimeEpochS: isSet(object.startTimeEpochS) ? globalThis.Number(object.startTimeEpochS) : 0,
|
|
278
|
+
endTimeEpochS: isSet(object.endTimeEpochS) ? globalThis.Number(object.endTimeEpochS) : 0,
|
|
279
|
+
totalEnergyVendedWh: isSet(object.totalEnergyVendedWh) ? globalThis.Number(object.totalEnergyVendedWh) : 0,
|
|
280
|
+
bucketDurationS: isSet(object.bucketDurationS) ? globalThis.Number(object.bucketDurationS) : 0,
|
|
281
|
+
firstBucketDurationS: isSet(object.firstBucketDurationS) ? globalThis.Number(object.firstBucketDurationS) : 0,
|
|
282
|
+
bucketEnergyVendedWh: globalThis.Array.isArray(object?.bucketEnergyVendedWh) ? object.bucketEnergyVendedWh.map((e) => globalThis.Number(e)) : [],
|
|
283
|
+
totalEnergyVended: isSet(object.totalEnergyVended) ? Energy.fromJSON(object.totalEnergyVended) : void 0,
|
|
284
|
+
bucketEnergyVended: globalThis.Array.isArray(object?.bucketEnergyVended) ? object.bucketEnergyVended.map((e) => Energy.fromJSON(e)) : []
|
|
285
|
+
};
|
|
286
|
+
},
|
|
287
|
+
toJSON(message) {
|
|
288
|
+
const obj = {};
|
|
289
|
+
if (message.startTimeEpochS !== void 0) obj.startTimeEpochS = Math.round(message.startTimeEpochS);
|
|
290
|
+
if (message.endTimeEpochS !== void 0) obj.endTimeEpochS = Math.round(message.endTimeEpochS);
|
|
291
|
+
if (message.totalEnergyVendedWh !== void 0) obj.totalEnergyVendedWh = Math.round(message.totalEnergyVendedWh);
|
|
292
|
+
if (message.bucketDurationS !== void 0) obj.bucketDurationS = Math.round(message.bucketDurationS);
|
|
293
|
+
if (message.firstBucketDurationS !== void 0) obj.firstBucketDurationS = Math.round(message.firstBucketDurationS);
|
|
294
|
+
if (message.bucketEnergyVendedWh?.length) obj.bucketEnergyVendedWh = message.bucketEnergyVendedWh.map((e) => Math.round(e));
|
|
295
|
+
if (message.totalEnergyVended !== void 0) obj.totalEnergyVended = Energy.toJSON(message.totalEnergyVended);
|
|
296
|
+
if (message.bucketEnergyVended?.length) obj.bucketEnergyVended = message.bucketEnergyVended.map((e) => Energy.toJSON(e));
|
|
297
|
+
return obj;
|
|
298
|
+
},
|
|
299
|
+
create(base) {
|
|
300
|
+
return ChargeSessionTimeSeries.fromPartial(base ?? {});
|
|
301
|
+
},
|
|
302
|
+
fromPartial(object) {
|
|
303
|
+
const message = createBaseChargeSessionTimeSeries();
|
|
304
|
+
message.startTimeEpochS = object.startTimeEpochS ?? 0;
|
|
305
|
+
message.endTimeEpochS = object.endTimeEpochS ?? 0;
|
|
306
|
+
message.totalEnergyVendedWh = object.totalEnergyVendedWh ?? 0;
|
|
307
|
+
message.bucketDurationS = object.bucketDurationS ?? 0;
|
|
308
|
+
message.firstBucketDurationS = object.firstBucketDurationS ?? 0;
|
|
309
|
+
message.bucketEnergyVendedWh = object.bucketEnergyVendedWh?.map((e) => e) || [];
|
|
310
|
+
message.totalEnergyVended = object.totalEnergyVended !== void 0 && object.totalEnergyVended !== null ? Energy.fromPartial(object.totalEnergyVended) : void 0;
|
|
311
|
+
message.bucketEnergyVended = object.bucketEnergyVended?.map((e) => Energy.fromPartial(e)) || [];
|
|
312
|
+
return message;
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
function createBaseStemUi() {
|
|
316
|
+
return {
|
|
317
|
+
stemInfo: void 0,
|
|
318
|
+
sessionId: 0,
|
|
319
|
+
systemTimeEpochS: 0,
|
|
320
|
+
idleTimeS: 0,
|
|
321
|
+
startTimeEpochS: 0,
|
|
322
|
+
stemEventInfo: void 0,
|
|
323
|
+
sessionEnergyKwh: 0
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
const StemUi = {
|
|
327
|
+
encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
|
|
328
|
+
if (message.stemInfo !== void 0) StemInfo.encode(message.stemInfo, writer.uint32(10).fork()).join();
|
|
329
|
+
if (message.sessionId !== 0) writer.uint32(16).uint32(message.sessionId);
|
|
330
|
+
if (message.systemTimeEpochS !== 0) writer.uint32(24).uint64(message.systemTimeEpochS);
|
|
331
|
+
if (message.idleTimeS !== 0) writer.uint32(32).uint32(message.idleTimeS);
|
|
332
|
+
if (message.startTimeEpochS !== 0) writer.uint32(40).uint64(message.startTimeEpochS);
|
|
333
|
+
if (message.stemEventInfo !== void 0) StemEventInfo.encode(message.stemEventInfo, writer.uint32(50).fork()).join();
|
|
334
|
+
if (message.sessionEnergyKwh !== 0) writer.uint32(61).float(message.sessionEnergyKwh);
|
|
335
|
+
return writer;
|
|
336
|
+
},
|
|
337
|
+
decode(input, length) {
|
|
338
|
+
const reader = input instanceof _bufbuild_protobuf_wire.BinaryReader ? input : new _bufbuild_protobuf_wire.BinaryReader(input);
|
|
339
|
+
const end = length === void 0 ? reader.len : reader.pos + length;
|
|
340
|
+
const message = createBaseStemUi();
|
|
341
|
+
while (reader.pos < end) {
|
|
342
|
+
const tag = reader.uint32();
|
|
343
|
+
switch (tag >>> 3) {
|
|
344
|
+
case 1:
|
|
345
|
+
if (tag !== 10) break;
|
|
346
|
+
message.stemInfo = StemInfo.decode(reader, reader.uint32());
|
|
347
|
+
continue;
|
|
348
|
+
case 2:
|
|
349
|
+
if (tag !== 16) break;
|
|
350
|
+
message.sessionId = reader.uint32();
|
|
351
|
+
continue;
|
|
352
|
+
case 3:
|
|
353
|
+
if (tag !== 24) break;
|
|
354
|
+
message.systemTimeEpochS = longToNumber(reader.uint64());
|
|
355
|
+
continue;
|
|
356
|
+
case 4:
|
|
357
|
+
if (tag !== 32) break;
|
|
358
|
+
message.idleTimeS = reader.uint32();
|
|
359
|
+
continue;
|
|
360
|
+
case 5:
|
|
361
|
+
if (tag !== 40) break;
|
|
362
|
+
message.startTimeEpochS = longToNumber(reader.uint64());
|
|
363
|
+
continue;
|
|
364
|
+
case 6:
|
|
365
|
+
if (tag !== 50) break;
|
|
366
|
+
message.stemEventInfo = StemEventInfo.decode(reader, reader.uint32());
|
|
367
|
+
continue;
|
|
368
|
+
case 7:
|
|
369
|
+
if (tag !== 61) break;
|
|
370
|
+
message.sessionEnergyKwh = reader.float();
|
|
371
|
+
continue;
|
|
372
|
+
}
|
|
373
|
+
if ((tag & 7) === 4 || tag === 0) break;
|
|
374
|
+
reader.skip(tag & 7);
|
|
375
|
+
}
|
|
376
|
+
return message;
|
|
377
|
+
},
|
|
378
|
+
fromJSON(object) {
|
|
379
|
+
return {
|
|
380
|
+
stemInfo: isSet(object.stemInfo) ? StemInfo.fromJSON(object.stemInfo) : void 0,
|
|
381
|
+
sessionId: isSet(object.sessionId) ? globalThis.Number(object.sessionId) : 0,
|
|
382
|
+
systemTimeEpochS: isSet(object.systemTimeEpochS) ? globalThis.Number(object.systemTimeEpochS) : 0,
|
|
383
|
+
idleTimeS: isSet(object.idleTimeS) ? globalThis.Number(object.idleTimeS) : 0,
|
|
384
|
+
startTimeEpochS: isSet(object.startTimeEpochS) ? globalThis.Number(object.startTimeEpochS) : 0,
|
|
385
|
+
stemEventInfo: isSet(object.stemEventInfo) ? StemEventInfo.fromJSON(object.stemEventInfo) : void 0,
|
|
386
|
+
sessionEnergyKwh: isSet(object.sessionEnergyKwh) ? globalThis.Number(object.sessionEnergyKwh) : 0
|
|
387
|
+
};
|
|
388
|
+
},
|
|
389
|
+
toJSON(message) {
|
|
390
|
+
const obj = {};
|
|
391
|
+
if (message.stemInfo !== void 0) obj.stemInfo = StemInfo.toJSON(message.stemInfo);
|
|
392
|
+
if (message.sessionId !== void 0) obj.sessionId = Math.round(message.sessionId);
|
|
393
|
+
if (message.systemTimeEpochS !== void 0) obj.systemTimeEpochS = Math.round(message.systemTimeEpochS);
|
|
394
|
+
if (message.idleTimeS !== void 0) obj.idleTimeS = Math.round(message.idleTimeS);
|
|
395
|
+
if (message.startTimeEpochS !== void 0) obj.startTimeEpochS = Math.round(message.startTimeEpochS);
|
|
396
|
+
if (message.stemEventInfo !== void 0) obj.stemEventInfo = StemEventInfo.toJSON(message.stemEventInfo);
|
|
397
|
+
if (message.sessionEnergyKwh !== void 0) obj.sessionEnergyKwh = message.sessionEnergyKwh;
|
|
398
|
+
return obj;
|
|
399
|
+
},
|
|
400
|
+
create(base) {
|
|
401
|
+
return StemUi.fromPartial(base ?? {});
|
|
402
|
+
},
|
|
403
|
+
fromPartial(object) {
|
|
404
|
+
const message = createBaseStemUi();
|
|
405
|
+
message.stemInfo = object.stemInfo !== void 0 && object.stemInfo !== null ? StemInfo.fromPartial(object.stemInfo) : void 0;
|
|
406
|
+
message.sessionId = object.sessionId ?? 0;
|
|
407
|
+
message.systemTimeEpochS = object.systemTimeEpochS ?? 0;
|
|
408
|
+
message.idleTimeS = object.idleTimeS ?? 0;
|
|
409
|
+
message.startTimeEpochS = object.startTimeEpochS ?? 0;
|
|
410
|
+
message.stemEventInfo = object.stemEventInfo !== void 0 && object.stemEventInfo !== null ? StemEventInfo.fromPartial(object.stemEventInfo) : void 0;
|
|
411
|
+
message.sessionEnergyKwh = object.sessionEnergyKwh ?? 0;
|
|
412
|
+
return message;
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
function createBaseStemBilling() {
|
|
416
|
+
return {
|
|
417
|
+
stemInfo: void 0,
|
|
418
|
+
sessionId: 0,
|
|
419
|
+
stemEventInfo: void 0,
|
|
420
|
+
lifetimeEnergyStartKwh: 0,
|
|
421
|
+
lifetimeEnergyEndKwh: 0,
|
|
422
|
+
idleTimeS: 0,
|
|
423
|
+
chargeSessionTimeSeries: void 0
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
const StemBilling = {
|
|
427
|
+
encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
|
|
428
|
+
if (message.stemInfo !== void 0) StemInfo.encode(message.stemInfo, writer.uint32(10).fork()).join();
|
|
429
|
+
if (message.sessionId !== 0) writer.uint32(16).uint32(message.sessionId);
|
|
430
|
+
if (message.stemEventInfo !== void 0) StemEventInfo.encode(message.stemEventInfo, writer.uint32(26).fork()).join();
|
|
431
|
+
if (message.lifetimeEnergyStartKwh !== 0) writer.uint32(37).float(message.lifetimeEnergyStartKwh);
|
|
432
|
+
if (message.lifetimeEnergyEndKwh !== 0) writer.uint32(45).float(message.lifetimeEnergyEndKwh);
|
|
433
|
+
if (message.idleTimeS !== 0) writer.uint32(48).uint32(message.idleTimeS);
|
|
434
|
+
if (message.chargeSessionTimeSeries !== void 0) ChargeSessionTimeSeries.encode(message.chargeSessionTimeSeries, writer.uint32(58).fork()).join();
|
|
435
|
+
return writer;
|
|
436
|
+
},
|
|
437
|
+
decode(input, length) {
|
|
438
|
+
const reader = input instanceof _bufbuild_protobuf_wire.BinaryReader ? input : new _bufbuild_protobuf_wire.BinaryReader(input);
|
|
439
|
+
const end = length === void 0 ? reader.len : reader.pos + length;
|
|
440
|
+
const message = createBaseStemBilling();
|
|
441
|
+
while (reader.pos < end) {
|
|
442
|
+
const tag = reader.uint32();
|
|
443
|
+
switch (tag >>> 3) {
|
|
444
|
+
case 1:
|
|
445
|
+
if (tag !== 10) break;
|
|
446
|
+
message.stemInfo = StemInfo.decode(reader, reader.uint32());
|
|
447
|
+
continue;
|
|
448
|
+
case 2:
|
|
449
|
+
if (tag !== 16) break;
|
|
450
|
+
message.sessionId = reader.uint32();
|
|
451
|
+
continue;
|
|
452
|
+
case 3:
|
|
453
|
+
if (tag !== 26) break;
|
|
454
|
+
message.stemEventInfo = StemEventInfo.decode(reader, reader.uint32());
|
|
455
|
+
continue;
|
|
456
|
+
case 4:
|
|
457
|
+
if (tag !== 37) break;
|
|
458
|
+
message.lifetimeEnergyStartKwh = reader.float();
|
|
459
|
+
continue;
|
|
460
|
+
case 5:
|
|
461
|
+
if (tag !== 45) break;
|
|
462
|
+
message.lifetimeEnergyEndKwh = reader.float();
|
|
463
|
+
continue;
|
|
464
|
+
case 6:
|
|
465
|
+
if (tag !== 48) break;
|
|
466
|
+
message.idleTimeS = reader.uint32();
|
|
467
|
+
continue;
|
|
468
|
+
case 7:
|
|
469
|
+
if (tag !== 58) break;
|
|
470
|
+
message.chargeSessionTimeSeries = ChargeSessionTimeSeries.decode(reader, reader.uint32());
|
|
471
|
+
continue;
|
|
472
|
+
}
|
|
473
|
+
if ((tag & 7) === 4 || tag === 0) break;
|
|
474
|
+
reader.skip(tag & 7);
|
|
475
|
+
}
|
|
476
|
+
return message;
|
|
477
|
+
},
|
|
478
|
+
fromJSON(object) {
|
|
479
|
+
return {
|
|
480
|
+
stemInfo: isSet(object.stemInfo) ? StemInfo.fromJSON(object.stemInfo) : void 0,
|
|
481
|
+
sessionId: isSet(object.sessionId) ? globalThis.Number(object.sessionId) : 0,
|
|
482
|
+
stemEventInfo: isSet(object.stemEventInfo) ? StemEventInfo.fromJSON(object.stemEventInfo) : void 0,
|
|
483
|
+
lifetimeEnergyStartKwh: isSet(object.lifetimeEnergyStartKwh) ? globalThis.Number(object.lifetimeEnergyStartKwh) : 0,
|
|
484
|
+
lifetimeEnergyEndKwh: isSet(object.lifetimeEnergyEndKwh) ? globalThis.Number(object.lifetimeEnergyEndKwh) : 0,
|
|
485
|
+
idleTimeS: isSet(object.idleTimeS) ? globalThis.Number(object.idleTimeS) : 0,
|
|
486
|
+
chargeSessionTimeSeries: isSet(object.chargeSessionTimeSeries) ? ChargeSessionTimeSeries.fromJSON(object.chargeSessionTimeSeries) : void 0
|
|
487
|
+
};
|
|
488
|
+
},
|
|
489
|
+
toJSON(message) {
|
|
490
|
+
const obj = {};
|
|
491
|
+
if (message.stemInfo !== void 0) obj.stemInfo = StemInfo.toJSON(message.stemInfo);
|
|
492
|
+
if (message.sessionId !== void 0) obj.sessionId = Math.round(message.sessionId);
|
|
493
|
+
if (message.stemEventInfo !== void 0) obj.stemEventInfo = StemEventInfo.toJSON(message.stemEventInfo);
|
|
494
|
+
if (message.lifetimeEnergyStartKwh !== void 0) obj.lifetimeEnergyStartKwh = message.lifetimeEnergyStartKwh;
|
|
495
|
+
if (message.lifetimeEnergyEndKwh !== void 0) obj.lifetimeEnergyEndKwh = message.lifetimeEnergyEndKwh;
|
|
496
|
+
if (message.idleTimeS !== void 0) obj.idleTimeS = Math.round(message.idleTimeS);
|
|
497
|
+
if (message.chargeSessionTimeSeries !== void 0) obj.chargeSessionTimeSeries = ChargeSessionTimeSeries.toJSON(message.chargeSessionTimeSeries);
|
|
498
|
+
return obj;
|
|
499
|
+
},
|
|
500
|
+
create(base) {
|
|
501
|
+
return StemBilling.fromPartial(base ?? {});
|
|
502
|
+
},
|
|
503
|
+
fromPartial(object) {
|
|
504
|
+
const message = createBaseStemBilling();
|
|
505
|
+
message.stemInfo = object.stemInfo !== void 0 && object.stemInfo !== null ? StemInfo.fromPartial(object.stemInfo) : void 0;
|
|
506
|
+
message.sessionId = object.sessionId ?? 0;
|
|
507
|
+
message.stemEventInfo = object.stemEventInfo !== void 0 && object.stemEventInfo !== null ? StemEventInfo.fromPartial(object.stemEventInfo) : void 0;
|
|
508
|
+
message.lifetimeEnergyStartKwh = object.lifetimeEnergyStartKwh ?? 0;
|
|
509
|
+
message.lifetimeEnergyEndKwh = object.lifetimeEnergyEndKwh ?? 0;
|
|
510
|
+
message.idleTimeS = object.idleTimeS ?? 0;
|
|
511
|
+
message.chargeSessionTimeSeries = object.chargeSessionTimeSeries !== void 0 && object.chargeSessionTimeSeries !== null ? ChargeSessionTimeSeries.fromPartial(object.chargeSessionTimeSeries) : void 0;
|
|
512
|
+
return message;
|
|
513
|
+
}
|
|
514
|
+
};
|
|
515
|
+
function bytesFromBase64(b64) {
|
|
516
|
+
if (globalThis.Buffer) return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
|
|
517
|
+
else {
|
|
518
|
+
const bin = globalThis.atob(b64);
|
|
519
|
+
const arr = new Uint8Array(bin.length);
|
|
520
|
+
for (let i = 0; i < bin.length; ++i) arr[i] = bin.charCodeAt(i);
|
|
521
|
+
return arr;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
function base64FromBytes(arr) {
|
|
525
|
+
if (globalThis.Buffer) return globalThis.Buffer.from(arr).toString("base64");
|
|
526
|
+
else {
|
|
527
|
+
const bin = [];
|
|
528
|
+
arr.forEach((byte) => {
|
|
529
|
+
bin.push(globalThis.String.fromCharCode(byte));
|
|
530
|
+
});
|
|
531
|
+
return globalThis.btoa(bin.join(""));
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
function longToNumber(int64) {
|
|
535
|
+
const num = globalThis.Number(int64.toString());
|
|
536
|
+
if (num > globalThis.Number.MAX_SAFE_INTEGER) throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
|
|
537
|
+
if (num < globalThis.Number.MIN_SAFE_INTEGER) throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
|
|
538
|
+
return num;
|
|
539
|
+
}
|
|
540
|
+
function isSet(value) {
|
|
541
|
+
return value !== null && value !== void 0;
|
|
542
|
+
}
|
|
543
|
+
//#endregion
|
|
544
|
+
exports.ChargeSessionTimeSeries = ChargeSessionTimeSeries;
|
|
545
|
+
exports.Energy = Energy;
|
|
546
|
+
exports.StemBilling = StemBilling;
|
|
547
|
+
exports.StemEventInfo = StemEventInfo;
|
|
548
|
+
exports.StemInfo = StemInfo;
|
|
549
|
+
exports.StemUi = StemUi;
|
|
550
|
+
exports.protobufPackage = protobufPackage;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
//#region src/charging/charging.d.ts
|
|
3
|
+
declare const protobufPackage = "com.tesla.proto.charging.v1";
|
|
4
|
+
/**
|
|
5
|
+
* Split integer energy representation: whole watt-hours plus a
|
|
6
|
+
* sub-watt-hour remainder in milli-watt-hours.
|
|
7
|
+
*/
|
|
8
|
+
interface Energy {
|
|
9
|
+
wattHours: number;
|
|
10
|
+
milliWattHours: number;
|
|
11
|
+
}
|
|
12
|
+
/** Identity and firmware of the metering device that recorded a charge session. */
|
|
13
|
+
interface StemInfo {
|
|
14
|
+
fwGithash: Uint8Array;
|
|
15
|
+
serialNumber: string;
|
|
16
|
+
partNumber: string;
|
|
17
|
+
meterId: string;
|
|
18
|
+
}
|
|
19
|
+
/** Validity flags for a charge-session metering record. */
|
|
20
|
+
interface StemEventInfo {
|
|
21
|
+
eventOccurred: boolean;
|
|
22
|
+
invalidated: boolean;
|
|
23
|
+
timeSynchronized: boolean;
|
|
24
|
+
}
|
|
25
|
+
/** Bucketed energy vended (delivered) over a charge session. */
|
|
26
|
+
interface ChargeSessionTimeSeries {
|
|
27
|
+
startTimeEpochS: number;
|
|
28
|
+
endTimeEpochS: number;
|
|
29
|
+
totalEnergyVendedWh: number;
|
|
30
|
+
bucketDurationS: number;
|
|
31
|
+
firstBucketDurationS: number;
|
|
32
|
+
bucketEnergyVendedWh: number[];
|
|
33
|
+
totalEnergyVended: Energy | undefined;
|
|
34
|
+
bucketEnergyVended: Energy[];
|
|
35
|
+
}
|
|
36
|
+
/** UI-facing summary of a live or recently completed charge session. */
|
|
37
|
+
interface StemUi {
|
|
38
|
+
stemInfo: StemInfo | undefined;
|
|
39
|
+
sessionId: number;
|
|
40
|
+
systemTimeEpochS: number;
|
|
41
|
+
idleTimeS: number;
|
|
42
|
+
startTimeEpochS: number;
|
|
43
|
+
stemEventInfo: StemEventInfo | undefined;
|
|
44
|
+
sessionEnergyKwh: number;
|
|
45
|
+
}
|
|
46
|
+
/** Billing record for a completed charge session. */
|
|
47
|
+
interface StemBilling {
|
|
48
|
+
stemInfo: StemInfo | undefined;
|
|
49
|
+
sessionId: number;
|
|
50
|
+
stemEventInfo: StemEventInfo | undefined;
|
|
51
|
+
lifetimeEnergyStartKwh: number;
|
|
52
|
+
lifetimeEnergyEndKwh: number;
|
|
53
|
+
idleTimeS: number;
|
|
54
|
+
chargeSessionTimeSeries: ChargeSessionTimeSeries | undefined;
|
|
55
|
+
}
|
|
56
|
+
declare const Energy: MessageFns<Energy>;
|
|
57
|
+
declare const StemInfo: MessageFns<StemInfo>;
|
|
58
|
+
declare const StemEventInfo: MessageFns<StemEventInfo>;
|
|
59
|
+
declare const ChargeSessionTimeSeries: MessageFns<ChargeSessionTimeSeries>;
|
|
60
|
+
declare const StemUi: MessageFns<StemUi>;
|
|
61
|
+
declare const StemBilling: MessageFns<StemBilling>;
|
|
62
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
63
|
+
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]>; } : Partial<T>;
|
|
64
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
65
|
+
type Exact<P, I extends P> = P extends Builtin ? P : P & { [K in keyof P]: Exact<P[K], I[K]>; } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never; };
|
|
66
|
+
interface MessageFns<T> {
|
|
67
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
68
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
69
|
+
fromJSON(object: any): T;
|
|
70
|
+
toJSON(message: T): unknown;
|
|
71
|
+
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
|
|
72
|
+
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { ChargeSessionTimeSeries, DeepPartial, Energy, Exact, MessageFns, StemBilling, StemEventInfo, StemInfo, StemUi, protobufPackage };
|