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