@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
@@ -1,4 +1,4 @@
1
- import { ChargePortLatchState, ChargeSchedule, ChargingAlert, LatLong, OffPeakChargingTimes, PreconditionSchedule, PreconditioningTimes, Void, accessoryLightbarTypeFromJSON, accessoryLightbarTypeToJSON, chassisTypeFromJSON, chassisTypeToJSON, fasciaTypeFromJSON, fasciaTypeToJSON, gtwDiagLevelFromJSON, gtwDiagLevelToJSON, mediaPlaybackStatusFromJSON, mediaPlaybackStatusToJSON, rearSeatHeaterTypeFromJSON, rearSeatHeaterTypeToJSON, stwHeatLevelFromJSON, stwHeatLevelToJSON, suspensionActuationStateFromJSON, suspensionActuationStateToJSON, suspensionLevelFromJSON, suspensionLevelToJSON, zoneLightRequestFromJSON, zoneLightRequestToJSON } from "./common.mjs";
1
+ import { ChargePortLatchState, ChargeSchedule, ChargingAlert, LatLong, OffPeakChargingTimes, PreconditionSchedule, PreconditioningTimes, SuspensionLevelObj, Void, accessoryLightbarTypeFromJSON, accessoryLightbarTypeToJSON, chassisTypeFromJSON, chassisTypeToJSON, fasciaTypeFromJSON, fasciaTypeToJSON, gtwDiagLevelFromJSON, gtwDiagLevelToJSON, mediaPlaybackStatusFromJSON, mediaPlaybackStatusToJSON, rearSeatHeaterTypeFromJSON, rearSeatHeaterTypeToJSON, stwHeatLevelFromJSON, stwHeatLevelToJSON, suspensionActuationStateFromJSON, suspensionActuationStateToJSON, suspensionLevelFromJSON, suspensionLevelToJSON, zoneLightRequestFromJSON, zoneLightRequestToJSON } from "./common.mjs";
2
2
  import { Timestamp } from "./google/protobuf/timestamp.mjs";
3
3
  import { closureStateEFromJSON, closureStateEToJSON } from "./vcsec.mjs";
4
4
  import { chargeOnSolarNoChargeReasonFromJSON, chargeOnSolarNoChargeReasonToJSON } from "./managed_charging.mjs";
@@ -11,7 +11,7 @@ const protobufPackage = "CarServer";
11
11
  * UPSTREAM-COMMIT: see upstream.json
12
12
  * This file = upstream base + Teslemetry extensions marked TESLEMETRY-EXT.
13
13
  */
14
- /** ===== TESLEMETRY-EXT BEGIN (app-4.58.6) ===== */
14
+ /** ===== TESLEMETRY-EXT BEGIN ===== */
15
15
  let AutopilotBase = /* @__PURE__ */ function(AutopilotBase) {
16
16
  AutopilotBase[AutopilotBase["AutopilotBase_NONE"] = 0] = "AutopilotBase_NONE";
17
17
  AutopilotBase[AutopilotBase["AutopilotBase_HIGHWAY"] = 1] = "AutopilotBase_HIGHWAY";
@@ -96,7 +96,7 @@ function autopilotOverrideStateToJSON(object) {
96
96
  default: return "UNRECOGNIZED";
97
97
  }
98
98
  }
99
- /** ===== TESLEMETRY-EXT BEGIN (app-4.58.6) ===== */
99
+ /** ===== TESLEMETRY-EXT BEGIN ===== */
100
100
  let DashCamState = /* @__PURE__ */ function(DashCamState) {
101
101
  DashCamState[DashCamState["DashCamState_UNAVAILABLE"] = 0] = "DashCamState_UNAVAILABLE";
102
102
  DashCamState[DashCamState["DashCamState_AVAILABLE"] = 1] = "DashCamState_AVAILABLE";
@@ -143,7 +143,7 @@ function dashCamStateToJSON(object) {
143
143
  default: return "UNRECOGNIZED";
144
144
  }
145
145
  }
146
- /** ===== TESLEMETRY-EXT BEGIN (app-4.58.6) ===== */
146
+ /** ===== TESLEMETRY-EXT BEGIN ===== */
147
147
  let TheaterSource = /* @__PURE__ */ function(TheaterSource) {
148
148
  TheaterSource[TheaterSource["TheaterSource_None"] = 0] = "TheaterSource_None";
149
149
  TheaterSource[TheaterSource["TheaterSource_YouTube"] = 1] = "TheaterSource_YouTube";
@@ -254,7 +254,7 @@ let MediaSourceType = /* @__PURE__ */ function(MediaSourceType) {
254
254
  MediaSourceType[MediaSourceType["MediaSourceType_OnlineRadio"] = 24] = "MediaSourceType_OnlineRadio";
255
255
  MediaSourceType[MediaSourceType["MediaSourceType_OnlineRadio2"] = 25] = "MediaSourceType_OnlineRadio2";
256
256
  MediaSourceType[MediaSourceType["MediaSourceType_NetEaseMusic"] = 26] = "MediaSourceType_NetEaseMusic";
257
- /** MediaSourceType_AppleMusic - TESLEMETRY-EXT (app-4.58.6) */
257
+ /** MediaSourceType_AppleMusic - TESLEMETRY-EXT */
258
258
  MediaSourceType[MediaSourceType["MediaSourceType_AppleMusic"] = 27] = "MediaSourceType_AppleMusic";
259
259
  /** MediaSourceType_Browser - Entertainment sources */
260
260
  MediaSourceType[MediaSourceType["MediaSourceType_Browser"] = 28] = "MediaSourceType_Browser";
@@ -265,23 +265,23 @@ let MediaSourceType = /* @__PURE__ */ function(MediaSourceType) {
265
265
  MediaSourceType[MediaSourceType["MediaSourceType_RecentsFavorites"] = 33] = "MediaSourceType_RecentsFavorites";
266
266
  MediaSourceType[MediaSourceType["MediaSourceType_HomeApps"] = 34] = "MediaSourceType_HomeApps";
267
267
  MediaSourceType[MediaSourceType["MediaSourceType_Search"] = 35] = "MediaSourceType_Search";
268
- /** MediaSourceType_ApplePodcasts - TESLEMETRY-EXT (app-4.58.6) */
268
+ /** MediaSourceType_ApplePodcasts - TESLEMETRY-EXT */
269
269
  MediaSourceType[MediaSourceType["MediaSourceType_ApplePodcasts"] = 36] = "MediaSourceType_ApplePodcasts";
270
- /** MediaSourceType_Audible - TESLEMETRY-EXT (app-4.58.6) */
270
+ /** MediaSourceType_Audible - TESLEMETRY-EXT */
271
271
  MediaSourceType[MediaSourceType["MediaSourceType_Audible"] = 37] = "MediaSourceType_Audible";
272
- /** MediaSourceType_AmazonMusic - TESLEMETRY-EXT (app-4.58.6) */
272
+ /** MediaSourceType_AmazonMusic - TESLEMETRY-EXT */
273
273
  MediaSourceType[MediaSourceType["MediaSourceType_AmazonMusic"] = 38] = "MediaSourceType_AmazonMusic";
274
- /** MediaSourceType_YouTubeMusic - TESLEMETRY-EXT (app-4.58.6) */
274
+ /** MediaSourceType_YouTubeMusic - TESLEMETRY-EXT */
275
275
  MediaSourceType[MediaSourceType["MediaSourceType_YouTubeMusic"] = 39] = "MediaSourceType_YouTubeMusic";
276
- /** MediaSourceType_SiriusXmWeb - TESLEMETRY-EXT (app-4.58.6) */
276
+ /** MediaSourceType_SiriusXmWeb - TESLEMETRY-EXT */
277
277
  MediaSourceType[MediaSourceType["MediaSourceType_SiriusXmWeb"] = 40] = "MediaSourceType_SiriusXmWeb";
278
- /** MediaSourceType_Yunting - TESLEMETRY-EXT (app-4.58.6) */
278
+ /** MediaSourceType_Yunting - TESLEMETRY-EXT */
279
279
  MediaSourceType[MediaSourceType["MediaSourceType_Yunting"] = 41] = "MediaSourceType_Yunting";
280
- /** MediaSourceType_TuneInWeb - TESLEMETRY-EXT (app-4.58.6) */
280
+ /** MediaSourceType_TuneInWeb - TESLEMETRY-EXT */
281
281
  MediaSourceType[MediaSourceType["MediaSourceType_TuneInWeb"] = 42] = "MediaSourceType_TuneInWeb";
282
- /** MediaSourceType_Kugou - TESLEMETRY-EXT (app-4.58.6) */
282
+ /** MediaSourceType_Kugou - TESLEMETRY-EXT */
283
283
  MediaSourceType[MediaSourceType["MediaSourceType_Kugou"] = 43] = "MediaSourceType_Kugou";
284
- /** MediaSourceType_Vohico - TESLEMETRY-EXT (app-4.58.6) */
284
+ /** MediaSourceType_Vohico - TESLEMETRY-EXT */
285
285
  MediaSourceType[MediaSourceType["MediaSourceType_Vohico"] = 44] = "MediaSourceType_Vohico";
286
286
  MediaSourceType[MediaSourceType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
287
287
  return MediaSourceType;
@@ -542,7 +542,7 @@ let ChargeState_ChargeLimitReason = /* @__PURE__ */ function(ChargeState_ChargeL
542
542
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["ChargeLimitReasonBattTempLow"] = 3] = "ChargeLimitReasonBattTempLow";
543
543
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["ChargeLimitReasonHighSoc"] = 4] = "ChargeLimitReasonHighSoc";
544
544
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["ChargeLimitReasonCabin"] = 5] = "ChargeLimitReasonCabin";
545
- /** ChargeLimitReasonEvseRelocationRecommended - TESLEMETRY-EXT (app-4.58.6) */
545
+ /** ChargeLimitReasonEvseRelocationRecommended - TESLEMETRY-EXT */
546
546
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["ChargeLimitReasonEvseRelocationRecommended"] = 6] = "ChargeLimitReasonEvseRelocationRecommended";
547
547
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
548
548
  return ChargeState_ChargeLimitReason;
@@ -678,7 +678,7 @@ let ChargeState_PowershareType = /* @__PURE__ */ function(ChargeState_Powershare
678
678
  ChargeState_PowershareType[ChargeState_PowershareType["PowershareTypeNone"] = 0] = "PowershareTypeNone";
679
679
  ChargeState_PowershareType[ChargeState_PowershareType["PowershareTypeLoad"] = 1] = "PowershareTypeLoad";
680
680
  ChargeState_PowershareType[ChargeState_PowershareType["PowershareTypeHome"] = 2] = "PowershareTypeHome";
681
- /** PowershareTypeGrid - TESLEMETRY-EXT (app-4.58.6) */
681
+ /** PowershareTypeGrid - TESLEMETRY-EXT */
682
682
  ChargeState_PowershareType[ChargeState_PowershareType["PowershareTypeGrid"] = 3] = "PowershareTypeGrid";
683
683
  ChargeState_PowershareType[ChargeState_PowershareType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
684
684
  return ChargeState_PowershareType;
@@ -713,9 +713,9 @@ let ChargeState_PowershareStopReason = /* @__PURE__ */ function(ChargeState_Powe
713
713
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonUser"] = 4] = "PowershareStopReasonUser";
714
714
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonReconnecting"] = 5] = "PowershareStopReasonReconnecting";
715
715
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonAuthentication"] = 6] = "PowershareStopReasonAuthentication";
716
- /** PowershareStopReasonAdapterUpdating - TESLEMETRY-EXT (app-4.58.6) */
716
+ /** PowershareStopReasonAdapterUpdating - TESLEMETRY-EXT */
717
717
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonAdapterUpdating"] = 7] = "PowershareStopReasonAdapterUpdating";
718
- /** PowershareStopReasonAdapterInitializationFailed - TESLEMETRY-EXT (app-4.58.6) */
718
+ /** PowershareStopReasonAdapterInitializationFailed - TESLEMETRY-EXT */
719
719
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonAdapterInitializationFailed"] = 8] = "PowershareStopReasonAdapterInitializationFailed";
720
720
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
721
721
  return ChargeState_PowershareStopReason;
@@ -937,7 +937,7 @@ function climateState_COPNotRunningReasonToJSON(object) {
937
937
  default: return "UNRECOGNIZED";
938
938
  }
939
939
  }
940
- /** TESLEMETRY-EXT (app-4.58.6) */
940
+ /** TESLEMETRY-EXT */
941
941
  let ClimateState_DogModeState = /* @__PURE__ */ function(ClimateState_DogModeState) {
942
942
  ClimateState_DogModeState[ClimateState_DogModeState["DogModeStateUnavailableFault"] = 0] = "DogModeStateUnavailableFault";
943
943
  ClimateState_DogModeState[ClimateState_DogModeState["DogModeStateUnavailableTooHot"] = 1] = "DogModeStateUnavailableTooHot";
@@ -1338,6 +1338,7 @@ function createBaseVehicleData() {
1338
1338
  chargeScheduleState: void 0,
1339
1339
  preconditioningScheduleState: void 0,
1340
1340
  sohState: void 0,
1341
+ unknown: /* @__PURE__ */ new Uint8Array(0),
1341
1342
  tirePressureState: void 0,
1342
1343
  mediaState: void 0,
1343
1344
  mediaDetailState: void 0,
@@ -1368,6 +1369,7 @@ const VehicleData = {
1368
1369
  if (message.chargeScheduleState !== void 0) ChargeScheduleState.encode(message.chargeScheduleState, writer.uint32(122).fork()).join();
1369
1370
  if (message.preconditioningScheduleState !== void 0) PreconditioningScheduleState.encode(message.preconditioningScheduleState, writer.uint32(130).fork()).join();
1370
1371
  if (message.sohState !== void 0) SohState.encode(message.sohState, writer.uint32(138).fork()).join();
1372
+ if (message.unknown.length !== 0) writer.uint32(146).bytes(message.unknown);
1371
1373
  if (message.tirePressureState !== void 0) TirePressureState.encode(message.tirePressureState, writer.uint32(154).fork()).join();
1372
1374
  if (message.mediaState !== void 0) MediaState.encode(message.mediaState, writer.uint32(162).fork()).join();
1373
1375
  if (message.mediaDetailState !== void 0) MediaDetailState.encode(message.mediaDetailState, writer.uint32(170).fork()).join();
@@ -1445,6 +1447,10 @@ const VehicleData = {
1445
1447
  if (tag !== 138) break;
1446
1448
  message.sohState = SohState.decode(reader, reader.uint32());
1447
1449
  continue;
1450
+ case 18:
1451
+ if (tag !== 146) break;
1452
+ message.unknown = reader.bytes();
1453
+ continue;
1448
1454
  case 19:
1449
1455
  if (tag !== 154) break;
1450
1456
  message.tirePressureState = TirePressureState.decode(reader, reader.uint32());
@@ -1515,6 +1521,7 @@ const VehicleData = {
1515
1521
  chargeScheduleState: isSet(object.chargeScheduleState) ? ChargeScheduleState.fromJSON(object.chargeScheduleState) : void 0,
1516
1522
  preconditioningScheduleState: isSet(object.preconditioningScheduleState) ? PreconditioningScheduleState.fromJSON(object.preconditioningScheduleState) : void 0,
1517
1523
  sohState: isSet(object.sohState) ? SohState.fromJSON(object.sohState) : void 0,
1524
+ unknown: isSet(object.unknown) ? bytesFromBase64(object.unknown) : /* @__PURE__ */ new Uint8Array(0),
1518
1525
  tirePressureState: isSet(object.tirePressureState) ? TirePressureState.fromJSON(object.tirePressureState) : void 0,
1519
1526
  mediaState: isSet(object.mediaState) ? MediaState.fromJSON(object.mediaState) : void 0,
1520
1527
  mediaDetailState: isSet(object.mediaDetailState) ? MediaDetailState.fromJSON(object.mediaDetailState) : void 0,
@@ -1545,6 +1552,7 @@ const VehicleData = {
1545
1552
  if (message.chargeScheduleState !== void 0) obj.chargeScheduleState = ChargeScheduleState.toJSON(message.chargeScheduleState);
1546
1553
  if (message.preconditioningScheduleState !== void 0) obj.preconditioningScheduleState = PreconditioningScheduleState.toJSON(message.preconditioningScheduleState);
1547
1554
  if (message.sohState !== void 0) obj.sohState = SohState.toJSON(message.sohState);
1555
+ if (message.unknown !== void 0) obj.unknown = base64FromBytes(message.unknown);
1548
1556
  if (message.tirePressureState !== void 0) obj.tirePressureState = TirePressureState.toJSON(message.tirePressureState);
1549
1557
  if (message.mediaState !== void 0) obj.mediaState = MediaState.toJSON(message.mediaState);
1550
1558
  if (message.mediaDetailState !== void 0) obj.mediaDetailState = MediaDetailState.toJSON(message.mediaDetailState);
@@ -1578,6 +1586,7 @@ const VehicleData = {
1578
1586
  message.chargeScheduleState = object.chargeScheduleState !== void 0 && object.chargeScheduleState !== null ? ChargeScheduleState.fromPartial(object.chargeScheduleState) : void 0;
1579
1587
  message.preconditioningScheduleState = object.preconditioningScheduleState !== void 0 && object.preconditioningScheduleState !== null ? PreconditioningScheduleState.fromPartial(object.preconditioningScheduleState) : void 0;
1580
1588
  message.sohState = object.sohState !== void 0 && object.sohState !== null ? SohState.fromPartial(object.sohState) : void 0;
1589
+ message.unknown = object.unknown ?? /* @__PURE__ */ new Uint8Array(0);
1581
1590
  message.tirePressureState = object.tirePressureState !== void 0 && object.tirePressureState !== null ? TirePressureState.fromPartial(object.tirePressureState) : void 0;
1582
1591
  message.mediaState = object.mediaState !== void 0 && object.mediaState !== null ? MediaState.fromPartial(object.mediaState) : void 0;
1583
1592
  message.mediaDetailState = object.mediaDetailState !== void 0 && object.mediaDetailState !== null ? MediaDetailState.fromPartial(object.mediaDetailState) : void 0;
@@ -5294,6 +5303,8 @@ function createBaseVehicleState() {
5294
5303
  tpmsLastSeenPressureTimeFr: void 0,
5295
5304
  tpmsLastSeenPressureTimeRl: void 0,
5296
5305
  tpmsLastSeenPressureTimeRr: void 0,
5306
+ deckLightsOn: void 0,
5307
+ hazardsOn: void 0,
5297
5308
  legacyMediaInfo: void 0,
5298
5309
  allowAuthorizedMobileDevicesOnly: void 0,
5299
5310
  guestMode: void 0,
@@ -5375,6 +5386,8 @@ const VehicleState = {
5375
5386
  if (message.tpmsLastSeenPressureTimeFr !== void 0) Timestamp.encode(toTimestamp(message.tpmsLastSeenPressureTimeFr), writer.uint32(474).fork()).join();
5376
5387
  if (message.tpmsLastSeenPressureTimeRl !== void 0) Timestamp.encode(toTimestamp(message.tpmsLastSeenPressureTimeRl), writer.uint32(482).fork()).join();
5377
5388
  if (message.tpmsLastSeenPressureTimeRr !== void 0) Timestamp.encode(toTimestamp(message.tpmsLastSeenPressureTimeRr), writer.uint32(490).fork()).join();
5389
+ if (message.deckLightsOn !== void 0) writer.uint32(536).bool(message.deckLightsOn);
5390
+ if (message.hazardsOn !== void 0) writer.uint32(544).bool(message.hazardsOn);
5378
5391
  if (message.legacyMediaInfo !== void 0) LegacyMediaInfo.encode(message.legacyMediaInfo, writer.uint32(578).fork()).join();
5379
5392
  if (message.allowAuthorizedMobileDevicesOnly !== void 0) writer.uint32(584).bool(message.allowAuthorizedMobileDevicesOnly);
5380
5393
  if (message.guestMode !== void 0) VehicleState_GuestMode.encode(message.guestMode, writer.uint32(594).fork()).join();
@@ -5490,6 +5503,14 @@ const VehicleState = {
5490
5503
  if (tag !== 490) break;
5491
5504
  message.tpmsLastSeenPressureTimeRr = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
5492
5505
  continue;
5506
+ case 67:
5507
+ if (tag !== 536) break;
5508
+ message.deckLightsOn = reader.bool();
5509
+ continue;
5510
+ case 68:
5511
+ if (tag !== 544) break;
5512
+ message.hazardsOn = reader.bool();
5513
+ continue;
5493
5514
  case 72:
5494
5515
  if (tag !== 578) break;
5495
5516
  message.legacyMediaInfo = LegacyMediaInfo.decode(reader, reader.uint32());
@@ -5774,6 +5795,8 @@ const VehicleState = {
5774
5795
  tpmsLastSeenPressureTimeFr: isSet(object.tpmsLastSeenPressureTimeFr) ? fromJsonTimestamp(object.tpmsLastSeenPressureTimeFr) : void 0,
5775
5796
  tpmsLastSeenPressureTimeRl: isSet(object.tpmsLastSeenPressureTimeRl) ? fromJsonTimestamp(object.tpmsLastSeenPressureTimeRl) : void 0,
5776
5797
  tpmsLastSeenPressureTimeRr: isSet(object.tpmsLastSeenPressureTimeRr) ? fromJsonTimestamp(object.tpmsLastSeenPressureTimeRr) : void 0,
5798
+ deckLightsOn: isSet(object.deckLightsOn) ? globalThis.Boolean(object.deckLightsOn) : void 0,
5799
+ hazardsOn: isSet(object.hazardsOn) ? globalThis.Boolean(object.hazardsOn) : void 0,
5777
5800
  legacyMediaInfo: isSet(object.legacyMediaInfo) ? LegacyMediaInfo.fromJSON(object.legacyMediaInfo) : void 0,
5778
5801
  allowAuthorizedMobileDevicesOnly: isSet(object.allowAuthorizedMobileDevicesOnly) ? globalThis.Boolean(object.allowAuthorizedMobileDevicesOnly) : void 0,
5779
5802
  guestMode: isSet(object.guestMode) ? VehicleState_GuestMode.fromJSON(object.guestMode) : void 0,
@@ -5853,6 +5876,8 @@ const VehicleState = {
5853
5876
  if (message.tpmsLastSeenPressureTimeFr !== void 0) obj.tpmsLastSeenPressureTimeFr = message.tpmsLastSeenPressureTimeFr.toISOString();
5854
5877
  if (message.tpmsLastSeenPressureTimeRl !== void 0) obj.tpmsLastSeenPressureTimeRl = message.tpmsLastSeenPressureTimeRl.toISOString();
5855
5878
  if (message.tpmsLastSeenPressureTimeRr !== void 0) obj.tpmsLastSeenPressureTimeRr = message.tpmsLastSeenPressureTimeRr.toISOString();
5879
+ if (message.deckLightsOn !== void 0) obj.deckLightsOn = message.deckLightsOn;
5880
+ if (message.hazardsOn !== void 0) obj.hazardsOn = message.hazardsOn;
5856
5881
  if (message.legacyMediaInfo !== void 0) obj.legacyMediaInfo = LegacyMediaInfo.toJSON(message.legacyMediaInfo);
5857
5882
  if (message.allowAuthorizedMobileDevicesOnly !== void 0) obj.allowAuthorizedMobileDevicesOnly = message.allowAuthorizedMobileDevicesOnly;
5858
5883
  if (message.guestMode !== void 0) obj.guestMode = VehicleState_GuestMode.toJSON(message.guestMode);
@@ -5935,6 +5960,8 @@ const VehicleState = {
5935
5960
  message.tpmsLastSeenPressureTimeFr = object.tpmsLastSeenPressureTimeFr ?? void 0;
5936
5961
  message.tpmsLastSeenPressureTimeRl = object.tpmsLastSeenPressureTimeRl ?? void 0;
5937
5962
  message.tpmsLastSeenPressureTimeRr = object.tpmsLastSeenPressureTimeRr ?? void 0;
5963
+ message.deckLightsOn = object.deckLightsOn ?? void 0;
5964
+ message.hazardsOn = object.hazardsOn ?? void 0;
5938
5965
  message.legacyMediaInfo = object.legacyMediaInfo !== void 0 && object.legacyMediaInfo !== null ? LegacyMediaInfo.fromPartial(object.legacyMediaInfo) : void 0;
5939
5966
  message.allowAuthorizedMobileDevicesOnly = object.allowAuthorizedMobileDevicesOnly ?? void 0;
5940
5967
  message.guestMode = object.guestMode !== void 0 && object.guestMode !== null ? VehicleState_GuestMode.fromPartial(object.guestMode) : void 0;
@@ -9165,6 +9192,7 @@ const ParkedAccessoryState = {
9165
9192
  function createBaseSohState() {
9166
9193
  return {
9167
9194
  sohTestState: void 0,
9195
+ sohTestEndMode: void 0,
9168
9196
  sohResult: void 0,
9169
9197
  timestamp: void 0
9170
9198
  };
@@ -9172,6 +9200,7 @@ function createBaseSohState() {
9172
9200
  const SohState = {
9173
9201
  encode(message, writer = new BinaryWriter()) {
9174
9202
  if (message.sohTestState !== void 0) SohState_SohTestState.encode(message.sohTestState, writer.uint32(10).fork()).join();
9203
+ if (message.sohTestEndMode !== void 0) SohState_SohTestEndMode.encode(message.sohTestEndMode, writer.uint32(18).fork()).join();
9175
9204
  if (message.sohResult !== void 0) SohState_SohResult.encode(message.sohResult, writer.uint32(26).fork()).join();
9176
9205
  if (message.timestamp !== void 0) Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(34).fork()).join();
9177
9206
  return writer;
@@ -9187,6 +9216,10 @@ const SohState = {
9187
9216
  if (tag !== 10) break;
9188
9217
  message.sohTestState = SohState_SohTestState.decode(reader, reader.uint32());
9189
9218
  continue;
9219
+ case 2:
9220
+ if (tag !== 18) break;
9221
+ message.sohTestEndMode = SohState_SohTestEndMode.decode(reader, reader.uint32());
9222
+ continue;
9190
9223
  case 3:
9191
9224
  if (tag !== 26) break;
9192
9225
  message.sohResult = SohState_SohResult.decode(reader, reader.uint32());
@@ -9204,6 +9237,7 @@ const SohState = {
9204
9237
  fromJSON(object) {
9205
9238
  return {
9206
9239
  sohTestState: isSet(object.sohTestState) ? SohState_SohTestState.fromJSON(object.sohTestState) : void 0,
9240
+ sohTestEndMode: isSet(object.sohTestEndMode) ? SohState_SohTestEndMode.fromJSON(object.sohTestEndMode) : void 0,
9207
9241
  sohResult: isSet(object.sohResult) ? SohState_SohResult.fromJSON(object.sohResult) : void 0,
9208
9242
  timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : void 0
9209
9243
  };
@@ -9211,6 +9245,7 @@ const SohState = {
9211
9245
  toJSON(message) {
9212
9246
  const obj = {};
9213
9247
  if (message.sohTestState !== void 0) obj.sohTestState = SohState_SohTestState.toJSON(message.sohTestState);
9248
+ if (message.sohTestEndMode !== void 0) obj.sohTestEndMode = SohState_SohTestEndMode.toJSON(message.sohTestEndMode);
9214
9249
  if (message.sohResult !== void 0) obj.sohResult = SohState_SohResult.toJSON(message.sohResult);
9215
9250
  if (message.timestamp !== void 0) obj.timestamp = message.timestamp.toISOString();
9216
9251
  return obj;
@@ -9221,19 +9256,86 @@ const SohState = {
9221
9256
  fromPartial(object) {
9222
9257
  const message = createBaseSohState();
9223
9258
  message.sohTestState = object.sohTestState !== void 0 && object.sohTestState !== null ? SohState_SohTestState.fromPartial(object.sohTestState) : void 0;
9259
+ message.sohTestEndMode = object.sohTestEndMode !== void 0 && object.sohTestEndMode !== null ? SohState_SohTestEndMode.fromPartial(object.sohTestEndMode) : void 0;
9224
9260
  message.sohResult = object.sohResult !== void 0 && object.sohResult !== null ? SohState_SohResult.fromPartial(object.sohResult) : void 0;
9225
9261
  message.timestamp = object.timestamp ?? void 0;
9226
9262
  return message;
9227
9263
  }
9228
9264
  };
9265
+ function createBaseSohState_SohTestPhase() {
9266
+ return {};
9267
+ }
9268
+ const SohState_SohTestPhase = {
9269
+ encode(_, writer = new BinaryWriter()) {
9270
+ return writer;
9271
+ },
9272
+ decode(input, length) {
9273
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
9274
+ const end = length === void 0 ? reader.len : reader.pos + length;
9275
+ const message = createBaseSohState_SohTestPhase();
9276
+ while (reader.pos < end) {
9277
+ const tag = reader.uint32();
9278
+ switch (tag >>> 3) {}
9279
+ if ((tag & 7) === 4 || tag === 0) break;
9280
+ reader.skip(tag & 7);
9281
+ }
9282
+ return message;
9283
+ },
9284
+ fromJSON(_) {
9285
+ return {};
9286
+ },
9287
+ toJSON(_) {
9288
+ return {};
9289
+ },
9290
+ create(base) {
9291
+ return SohState_SohTestPhase.fromPartial(base ?? {});
9292
+ },
9293
+ fromPartial(_) {
9294
+ return createBaseSohState_SohTestPhase();
9295
+ }
9296
+ };
9297
+ function createBaseSohState_SohTestEndMode() {
9298
+ return {};
9299
+ }
9300
+ const SohState_SohTestEndMode = {
9301
+ encode(_, writer = new BinaryWriter()) {
9302
+ return writer;
9303
+ },
9304
+ decode(input, length) {
9305
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
9306
+ const end = length === void 0 ? reader.len : reader.pos + length;
9307
+ const message = createBaseSohState_SohTestEndMode();
9308
+ while (reader.pos < end) {
9309
+ const tag = reader.uint32();
9310
+ switch (tag >>> 3) {}
9311
+ if ((tag & 7) === 4 || tag === 0) break;
9312
+ reader.skip(tag & 7);
9313
+ }
9314
+ return message;
9315
+ },
9316
+ fromJSON(_) {
9317
+ return {};
9318
+ },
9319
+ toJSON(_) {
9320
+ return {};
9321
+ },
9322
+ create(base) {
9323
+ return SohState_SohTestEndMode.fromPartial(base ?? {});
9324
+ },
9325
+ fromPartial(_) {
9326
+ return createBaseSohState_SohTestEndMode();
9327
+ }
9328
+ };
9229
9329
  function createBaseSohState_SohTestState() {
9230
9330
  return {
9331
+ sohTestPhase: void 0,
9231
9332
  sohTimeEstimate: void 0,
9232
9333
  sohTimeRemaining: void 0
9233
9334
  };
9234
9335
  }
9235
9336
  const SohState_SohTestState = {
9236
9337
  encode(message, writer = new BinaryWriter()) {
9338
+ if (message.sohTestPhase !== void 0) SohState_SohTestPhase.encode(message.sohTestPhase, writer.uint32(10).fork()).join();
9237
9339
  if (message.sohTimeEstimate !== void 0) writer.uint32(21).float(message.sohTimeEstimate);
9238
9340
  if (message.sohTimeRemaining !== void 0) writer.uint32(29).float(message.sohTimeRemaining);
9239
9341
  return writer;
@@ -9245,6 +9347,10 @@ const SohState_SohTestState = {
9245
9347
  while (reader.pos < end) {
9246
9348
  const tag = reader.uint32();
9247
9349
  switch (tag >>> 3) {
9350
+ case 1:
9351
+ if (tag !== 10) break;
9352
+ message.sohTestPhase = SohState_SohTestPhase.decode(reader, reader.uint32());
9353
+ continue;
9248
9354
  case 2:
9249
9355
  if (tag !== 21) break;
9250
9356
  message.sohTimeEstimate = reader.float();
@@ -9261,12 +9367,14 @@ const SohState_SohTestState = {
9261
9367
  },
9262
9368
  fromJSON(object) {
9263
9369
  return {
9370
+ sohTestPhase: isSet(object.sohTestPhase) ? SohState_SohTestPhase.fromJSON(object.sohTestPhase) : void 0,
9264
9371
  sohTimeEstimate: isSet(object.sohTimeEstimate) ? globalThis.Number(object.sohTimeEstimate) : void 0,
9265
9372
  sohTimeRemaining: isSet(object.sohTimeRemaining) ? globalThis.Number(object.sohTimeRemaining) : void 0
9266
9373
  };
9267
9374
  },
9268
9375
  toJSON(message) {
9269
9376
  const obj = {};
9377
+ if (message.sohTestPhase !== void 0) obj.sohTestPhase = SohState_SohTestPhase.toJSON(message.sohTestPhase);
9270
9378
  if (message.sohTimeEstimate !== void 0) obj.sohTimeEstimate = message.sohTimeEstimate;
9271
9379
  if (message.sohTimeRemaining !== void 0) obj.sohTimeRemaining = message.sohTimeRemaining;
9272
9380
  return obj;
@@ -9276,6 +9384,7 @@ const SohState_SohTestState = {
9276
9384
  },
9277
9385
  fromPartial(object) {
9278
9386
  const message = createBaseSohState_SohTestState();
9387
+ message.sohTestPhase = object.sohTestPhase !== void 0 && object.sohTestPhase !== null ? SohState_SohTestPhase.fromPartial(object.sohTestPhase) : void 0;
9279
9388
  message.sohTimeEstimate = object.sohTimeEstimate ?? void 0;
9280
9389
  message.sohTimeRemaining = object.sohTimeRemaining ?? void 0;
9281
9390
  return message;
@@ -9723,6 +9832,7 @@ function createBaseVehicleImage() {
9723
9832
  return {
9724
9833
  imageId: /* @__PURE__ */ new Uint8Array(0),
9725
9834
  assetData: void 0,
9835
+ imageType: 0,
9726
9836
  isLocalImage: false,
9727
9837
  totalImageSize: 0
9728
9838
  };
@@ -9731,6 +9841,7 @@ const VehicleImage = {
9731
9841
  encode(message, writer = new BinaryWriter()) {
9732
9842
  if (message.imageId.length !== 0) writer.uint32(10).bytes(message.imageId);
9733
9843
  if (message.assetData !== void 0) VehicleImageData.encode(message.assetData, writer.uint32(18).fork()).join();
9844
+ if (message.imageType !== 0) writer.uint32(24).int32(message.imageType);
9734
9845
  if (message.isLocalImage !== false) writer.uint32(32).bool(message.isLocalImage);
9735
9846
  if (message.totalImageSize !== 0) writer.uint32(40).uint32(message.totalImageSize);
9736
9847
  return writer;
@@ -9750,6 +9861,10 @@ const VehicleImage = {
9750
9861
  if (tag !== 18) break;
9751
9862
  message.assetData = VehicleImageData.decode(reader, reader.uint32());
9752
9863
  continue;
9864
+ case 3:
9865
+ if (tag !== 24) break;
9866
+ message.imageType = reader.int32();
9867
+ continue;
9753
9868
  case 4:
9754
9869
  if (tag !== 32) break;
9755
9870
  message.isLocalImage = reader.bool();
@@ -9768,6 +9883,7 @@ const VehicleImage = {
9768
9883
  return {
9769
9884
  imageId: isSet(object.imageId) ? bytesFromBase64(object.imageId) : /* @__PURE__ */ new Uint8Array(0),
9770
9885
  assetData: isSet(object.assetData) ? VehicleImageData.fromJSON(object.assetData) : void 0,
9886
+ imageType: isSet(object.imageType) ? vehicleImageStateTypeFromJSON(object.imageType) : 0,
9771
9887
  isLocalImage: isSet(object.isLocalImage) ? globalThis.Boolean(object.isLocalImage) : false,
9772
9888
  totalImageSize: isSet(object.totalImageSize) ? globalThis.Number(object.totalImageSize) : 0
9773
9889
  };
@@ -9776,6 +9892,7 @@ const VehicleImage = {
9776
9892
  const obj = {};
9777
9893
  if (message.imageId !== void 0) obj.imageId = base64FromBytes(message.imageId);
9778
9894
  if (message.assetData !== void 0) obj.assetData = VehicleImageData.toJSON(message.assetData);
9895
+ if (message.imageType !== void 0) obj.imageType = vehicleImageStateTypeToJSON(message.imageType);
9779
9896
  if (message.isLocalImage !== void 0) obj.isLocalImage = message.isLocalImage;
9780
9897
  if (message.totalImageSize !== void 0) obj.totalImageSize = Math.round(message.totalImageSize);
9781
9898
  return obj;
@@ -9787,6 +9904,7 @@ const VehicleImage = {
9787
9904
  const message = createBaseVehicleImage();
9788
9905
  message.imageId = object.imageId ?? /* @__PURE__ */ new Uint8Array(0);
9789
9906
  message.assetData = object.assetData !== void 0 && object.assetData !== null ? VehicleImageData.fromPartial(object.assetData) : void 0;
9907
+ message.imageType = object.imageType ?? 0;
9790
9908
  message.isLocalImage = object.isLocalImage ?? false;
9791
9909
  message.totalImageSize = object.totalImageSize ?? 0;
9792
9910
  return message;
@@ -9849,21 +9967,25 @@ const VehicleImageState = {
9849
9967
  };
9850
9968
  function createBaseSuspensionState() {
9851
9969
  return {
9970
+ allowedLevels: [],
9852
9971
  currentLevel: void 0,
9853
9972
  targetLevel: void 0,
9854
9973
  movementState: void 0,
9855
9974
  offroadOn: void 0,
9856
9975
  disabledReason: void 0,
9976
+ levelOptions: [],
9857
9977
  timestamp: void 0
9858
9978
  };
9859
9979
  }
9860
9980
  const SuspensionState = {
9861
9981
  encode(message, writer = new BinaryWriter()) {
9982
+ for (const v of message.allowedLevels) SuspensionLevelObj.encode(v, writer.uint32(10).fork()).join();
9862
9983
  if (message.currentLevel !== void 0) writer.uint32(16).int32(message.currentLevel);
9863
9984
  if (message.targetLevel !== void 0) writer.uint32(24).int32(message.targetLevel);
9864
9985
  if (message.movementState !== void 0) writer.uint32(32).int32(message.movementState);
9865
9986
  if (message.offroadOn !== void 0) writer.uint32(40).bool(message.offroadOn);
9866
9987
  if (message.disabledReason !== void 0) writer.uint32(50).string(message.disabledReason);
9988
+ for (const v of message.levelOptions) SuspensionLevelObj.encode(v, writer.uint32(58).fork()).join();
9867
9989
  if (message.timestamp !== void 0) Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(16002).fork()).join();
9868
9990
  return writer;
9869
9991
  },
@@ -9874,6 +9996,10 @@ const SuspensionState = {
9874
9996
  while (reader.pos < end) {
9875
9997
  const tag = reader.uint32();
9876
9998
  switch (tag >>> 3) {
9999
+ case 1:
10000
+ if (tag !== 10) break;
10001
+ message.allowedLevels.push(SuspensionLevelObj.decode(reader, reader.uint32()));
10002
+ continue;
9877
10003
  case 2:
9878
10004
  if (tag !== 16) break;
9879
10005
  message.currentLevel = reader.int32();
@@ -9894,6 +10020,10 @@ const SuspensionState = {
9894
10020
  if (tag !== 50) break;
9895
10021
  message.disabledReason = reader.string();
9896
10022
  continue;
10023
+ case 7:
10024
+ if (tag !== 58) break;
10025
+ message.levelOptions.push(SuspensionLevelObj.decode(reader, reader.uint32()));
10026
+ continue;
9897
10027
  case 2e3:
9898
10028
  if (tag !== 16002) break;
9899
10029
  message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
@@ -9906,21 +10036,25 @@ const SuspensionState = {
9906
10036
  },
9907
10037
  fromJSON(object) {
9908
10038
  return {
10039
+ allowedLevels: globalThis.Array.isArray(object?.allowedLevels) ? object.allowedLevels.map((e) => SuspensionLevelObj.fromJSON(e)) : [],
9909
10040
  currentLevel: isSet(object.currentLevel) ? suspensionLevelFromJSON(object.currentLevel) : void 0,
9910
10041
  targetLevel: isSet(object.targetLevel) ? suspensionLevelFromJSON(object.targetLevel) : void 0,
9911
10042
  movementState: isSet(object.movementState) ? suspensionActuationStateFromJSON(object.movementState) : void 0,
9912
10043
  offroadOn: isSet(object.offroadOn) ? globalThis.Boolean(object.offroadOn) : void 0,
9913
10044
  disabledReason: isSet(object.disabledReason) ? globalThis.String(object.disabledReason) : void 0,
10045
+ levelOptions: globalThis.Array.isArray(object?.levelOptions) ? object.levelOptions.map((e) => SuspensionLevelObj.fromJSON(e)) : [],
9914
10046
  timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : void 0
9915
10047
  };
9916
10048
  },
9917
10049
  toJSON(message) {
9918
10050
  const obj = {};
10051
+ if (message.allowedLevels?.length) obj.allowedLevels = message.allowedLevels.map((e) => SuspensionLevelObj.toJSON(e));
9919
10052
  if (message.currentLevel !== void 0) obj.currentLevel = suspensionLevelToJSON(message.currentLevel);
9920
10053
  if (message.targetLevel !== void 0) obj.targetLevel = suspensionLevelToJSON(message.targetLevel);
9921
10054
  if (message.movementState !== void 0) obj.movementState = suspensionActuationStateToJSON(message.movementState);
9922
10055
  if (message.offroadOn !== void 0) obj.offroadOn = message.offroadOn;
9923
10056
  if (message.disabledReason !== void 0) obj.disabledReason = message.disabledReason;
10057
+ if (message.levelOptions?.length) obj.levelOptions = message.levelOptions.map((e) => SuspensionLevelObj.toJSON(e));
9924
10058
  if (message.timestamp !== void 0) obj.timestamp = message.timestamp.toISOString();
9925
10059
  return obj;
9926
10060
  },
@@ -9929,11 +10063,13 @@ const SuspensionState = {
9929
10063
  },
9930
10064
  fromPartial(object) {
9931
10065
  const message = createBaseSuspensionState();
10066
+ message.allowedLevels = object.allowedLevels?.map((e) => SuspensionLevelObj.fromPartial(e)) || [];
9932
10067
  message.currentLevel = object.currentLevel ?? void 0;
9933
10068
  message.targetLevel = object.targetLevel ?? void 0;
9934
10069
  message.movementState = object.movementState ?? void 0;
9935
10070
  message.offroadOn = object.offroadOn ?? void 0;
9936
10071
  message.disabledReason = object.disabledReason ?? void 0;
10072
+ message.levelOptions = object.levelOptions?.map((e) => SuspensionLevelObj.fromPartial(e)) || [];
9937
10073
  message.timestamp = object.timestamp ?? void 0;
9938
10074
  return message;
9939
10075
  }
@@ -10165,4 +10301,4 @@ function isSet(value) {
10165
10301
  return value !== null && value !== void 0;
10166
10302
  }
10167
10303
  //#endregion
10168
- export { AlertState, AutopilotBase, AutopilotOverrideState, ChargeOnSolarState, ChargeOnSolarStateChargingOnAnything, ChargeOnSolarStateChargingOnExcessSolar, ChargeOnSolarStateError, ChargeOnSolarStateNoChargeRecommended, ChargeOnSolarStateNotAllowed, ChargeOnSolarStateUserDisabled, ChargeOnSolarStateUserStopped, ChargeOnSolarStateWaitingForServer, ChargeScheduleState, ChargeState, ChargeState_CableType, ChargeState_ChargeLimitReason, ChargeState_ChargePortColorE, ChargeState_ChargerBrand, ChargeState_ChargerType, ChargeState_ChargingState, ChargeState_OutletState, ChargeState_PowerFeedState, ChargeState_PowershareStatus, ChargeState_PowershareStopReason, ChargeState_PowershareType, ChargeState_ScheduledChargingMode, ChildPresenceDetectionState, ClimateState, ClimateState_COPNotRunningReason, ClimateState_CabinOverheatProtectionE, ClimateState_ClimateKeeperMode, ClimateState_CopActivationTemp, ClimateState_DefrostMode, ClimateState_DogModeState, ClimateState_HvacAutoRequest, ClimateState_SeatCoolingLevelE, ClimateState_SeatHeaterLevelE, ClosuresState, ClosuresState_DisplayState, ClosuresState_SentryModeState, ClosuresState_SunRoofState, DashCamState, DriveState, DriveState_FsdLast7DaysUsage, DriveState_FsdMonthlyMileage, GuiSettings, GuiSettings_TirePressureUnit, LegacyMediaInfo, LegacyMediaState, LightShowOption, LightShowSettings, LightShowState, LocationState, LocationState_GPSCoordinateType, ManagedChargingState, MediaDetailState, MediaSourceType, MediaState, ParentalControlsSettings, ParentalControlsState, ParkedAccessoryState, PreconditioningScheduleState, ShiftState, SoftwareUpdateState, SoftwareUpdateState_SoftwareUpdateStatus, SohState, SohState_SohResult, SohState_SohTestState, SohState_WarrantyServiceResult, SpeedLimitMode, SuspensionState, TheaterSource, TirePressureState, VehicleConfig, VehicleConfig_AuxParkLampsE, VehicleConfig_BadgingMaterialType, VehicleConfig_BedLightingType, VehicleConfig_DrivetrainType, VehicleConfig_ExteriorTrimType, VehicleConfig_FrontFasciaCameraType, VehicleConfig_HeadlampTypeE, VehicleConfig_InteriorTrimType, VehicleConfig_InteriorUpperTrimType, VehicleConfig_RearLightHardwareVariant, VehicleConfig_RearLightType, VehicleConfig_SeatTrimType, VehicleConfig_TurnIndicatorControlType, VehicleData, VehicleDetailState, VehicleImage, VehicleImageData, VehicleImageState, VehicleImageStateType, VehicleState, VehicleState_GuestMode, autopilotBaseFromJSON, autopilotBaseToJSON, autopilotOverrideStateFromJSON, autopilotOverrideStateToJSON, chargeState_ChargeLimitReasonFromJSON, chargeState_ChargeLimitReasonToJSON, chargeState_ChargePortColorEFromJSON, chargeState_ChargePortColorEToJSON, chargeState_OutletStateFromJSON, chargeState_OutletStateToJSON, chargeState_PowerFeedStateFromJSON, chargeState_PowerFeedStateToJSON, chargeState_PowershareStatusFromJSON, chargeState_PowershareStatusToJSON, chargeState_PowershareStopReasonFromJSON, chargeState_PowershareStopReasonToJSON, chargeState_PowershareTypeFromJSON, chargeState_PowershareTypeToJSON, chargeState_ScheduledChargingModeFromJSON, chargeState_ScheduledChargingModeToJSON, climateState_COPNotRunningReasonFromJSON, climateState_COPNotRunningReasonToJSON, climateState_CabinOverheatProtectionEFromJSON, climateState_CabinOverheatProtectionEToJSON, climateState_CopActivationTempFromJSON, climateState_CopActivationTempToJSON, climateState_DogModeStateFromJSON, climateState_DogModeStateToJSON, climateState_HvacAutoRequestFromJSON, climateState_HvacAutoRequestToJSON, climateState_SeatCoolingLevelEFromJSON, climateState_SeatCoolingLevelEToJSON, climateState_SeatHeaterLevelEFromJSON, climateState_SeatHeaterLevelEToJSON, dashCamStateFromJSON, dashCamStateToJSON, guiSettings_TirePressureUnitFromJSON, guiSettings_TirePressureUnitToJSON, mediaSourceTypeFromJSON, mediaSourceTypeToJSON, protobufPackage, sohState_WarrantyServiceResultFromJSON, sohState_WarrantyServiceResultToJSON, theaterSourceFromJSON, theaterSourceToJSON, vehicleConfig_AuxParkLampsEFromJSON, vehicleConfig_AuxParkLampsEToJSON, vehicleConfig_BadgingMaterialTypeFromJSON, vehicleConfig_BadgingMaterialTypeToJSON, vehicleConfig_BedLightingTypeFromJSON, vehicleConfig_BedLightingTypeToJSON, vehicleConfig_DrivetrainTypeFromJSON, vehicleConfig_DrivetrainTypeToJSON, vehicleConfig_FrontFasciaCameraTypeFromJSON, vehicleConfig_FrontFasciaCameraTypeToJSON, vehicleConfig_HeadlampTypeEFromJSON, vehicleConfig_HeadlampTypeEToJSON, vehicleConfig_InteriorUpperTrimTypeFromJSON, vehicleConfig_InteriorUpperTrimTypeToJSON, vehicleConfig_RearLightHardwareVariantFromJSON, vehicleConfig_RearLightHardwareVariantToJSON, vehicleConfig_RearLightTypeFromJSON, vehicleConfig_RearLightTypeToJSON, vehicleConfig_SeatTrimTypeFromJSON, vehicleConfig_SeatTrimTypeToJSON, vehicleConfig_TurnIndicatorControlTypeFromJSON, vehicleConfig_TurnIndicatorControlTypeToJSON, vehicleImageStateTypeFromJSON, vehicleImageStateTypeToJSON };
10304
+ export { AlertState, AutopilotBase, AutopilotOverrideState, ChargeOnSolarState, ChargeOnSolarStateChargingOnAnything, ChargeOnSolarStateChargingOnExcessSolar, ChargeOnSolarStateError, ChargeOnSolarStateNoChargeRecommended, ChargeOnSolarStateNotAllowed, ChargeOnSolarStateUserDisabled, ChargeOnSolarStateUserStopped, ChargeOnSolarStateWaitingForServer, ChargeScheduleState, ChargeState, ChargeState_CableType, ChargeState_ChargeLimitReason, ChargeState_ChargePortColorE, ChargeState_ChargerBrand, ChargeState_ChargerType, ChargeState_ChargingState, ChargeState_OutletState, ChargeState_PowerFeedState, ChargeState_PowershareStatus, ChargeState_PowershareStopReason, ChargeState_PowershareType, ChargeState_ScheduledChargingMode, ChildPresenceDetectionState, ClimateState, ClimateState_COPNotRunningReason, ClimateState_CabinOverheatProtectionE, ClimateState_ClimateKeeperMode, ClimateState_CopActivationTemp, ClimateState_DefrostMode, ClimateState_DogModeState, ClimateState_HvacAutoRequest, ClimateState_SeatCoolingLevelE, ClimateState_SeatHeaterLevelE, ClosuresState, ClosuresState_DisplayState, ClosuresState_SentryModeState, ClosuresState_SunRoofState, DashCamState, DriveState, DriveState_FsdLast7DaysUsage, DriveState_FsdMonthlyMileage, GuiSettings, GuiSettings_TirePressureUnit, LegacyMediaInfo, LegacyMediaState, LightShowOption, LightShowSettings, LightShowState, LocationState, LocationState_GPSCoordinateType, ManagedChargingState, MediaDetailState, MediaSourceType, MediaState, ParentalControlsSettings, ParentalControlsState, ParkedAccessoryState, PreconditioningScheduleState, ShiftState, SoftwareUpdateState, SoftwareUpdateState_SoftwareUpdateStatus, SohState, SohState_SohResult, SohState_SohTestEndMode, SohState_SohTestPhase, SohState_SohTestState, SohState_WarrantyServiceResult, SpeedLimitMode, SuspensionState, TheaterSource, TirePressureState, VehicleConfig, VehicleConfig_AuxParkLampsE, VehicleConfig_BadgingMaterialType, VehicleConfig_BedLightingType, VehicleConfig_DrivetrainType, VehicleConfig_ExteriorTrimType, VehicleConfig_FrontFasciaCameraType, VehicleConfig_HeadlampTypeE, VehicleConfig_InteriorTrimType, VehicleConfig_InteriorUpperTrimType, VehicleConfig_RearLightHardwareVariant, VehicleConfig_RearLightType, VehicleConfig_SeatTrimType, VehicleConfig_TurnIndicatorControlType, VehicleData, VehicleDetailState, VehicleImage, VehicleImageData, VehicleImageState, VehicleImageStateType, VehicleState, VehicleState_GuestMode, autopilotBaseFromJSON, autopilotBaseToJSON, autopilotOverrideStateFromJSON, autopilotOverrideStateToJSON, chargeState_ChargeLimitReasonFromJSON, chargeState_ChargeLimitReasonToJSON, chargeState_ChargePortColorEFromJSON, chargeState_ChargePortColorEToJSON, chargeState_OutletStateFromJSON, chargeState_OutletStateToJSON, chargeState_PowerFeedStateFromJSON, chargeState_PowerFeedStateToJSON, chargeState_PowershareStatusFromJSON, chargeState_PowershareStatusToJSON, chargeState_PowershareStopReasonFromJSON, chargeState_PowershareStopReasonToJSON, chargeState_PowershareTypeFromJSON, chargeState_PowershareTypeToJSON, chargeState_ScheduledChargingModeFromJSON, chargeState_ScheduledChargingModeToJSON, climateState_COPNotRunningReasonFromJSON, climateState_COPNotRunningReasonToJSON, climateState_CabinOverheatProtectionEFromJSON, climateState_CabinOverheatProtectionEToJSON, climateState_CopActivationTempFromJSON, climateState_CopActivationTempToJSON, climateState_DogModeStateFromJSON, climateState_DogModeStateToJSON, climateState_HvacAutoRequestFromJSON, climateState_HvacAutoRequestToJSON, climateState_SeatCoolingLevelEFromJSON, climateState_SeatCoolingLevelEToJSON, climateState_SeatHeaterLevelEFromJSON, climateState_SeatHeaterLevelEToJSON, dashCamStateFromJSON, dashCamStateToJSON, guiSettings_TirePressureUnitFromJSON, guiSettings_TirePressureUnitToJSON, mediaSourceTypeFromJSON, mediaSourceTypeToJSON, protobufPackage, sohState_WarrantyServiceResultFromJSON, sohState_WarrantyServiceResultToJSON, theaterSourceFromJSON, theaterSourceToJSON, vehicleConfig_AuxParkLampsEFromJSON, vehicleConfig_AuxParkLampsEToJSON, vehicleConfig_BadgingMaterialTypeFromJSON, vehicleConfig_BadgingMaterialTypeToJSON, vehicleConfig_BedLightingTypeFromJSON, vehicleConfig_BedLightingTypeToJSON, vehicleConfig_DrivetrainTypeFromJSON, vehicleConfig_DrivetrainTypeToJSON, vehicleConfig_FrontFasciaCameraTypeFromJSON, vehicleConfig_FrontFasciaCameraTypeToJSON, vehicleConfig_HeadlampTypeEFromJSON, vehicleConfig_HeadlampTypeEToJSON, vehicleConfig_InteriorUpperTrimTypeFromJSON, vehicleConfig_InteriorUpperTrimTypeToJSON, vehicleConfig_RearLightHardwareVariantFromJSON, vehicleConfig_RearLightHardwareVariantToJSON, vehicleConfig_RearLightTypeFromJSON, vehicleConfig_RearLightTypeToJSON, vehicleConfig_SeatTrimTypeFromJSON, vehicleConfig_SeatTrimTypeToJSON, vehicleConfig_TurnIndicatorControlTypeFromJSON, vehicleConfig_TurnIndicatorControlTypeToJSON, vehicleImageStateTypeFromJSON, vehicleImageStateTypeToJSON };