@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
@@ -12,7 +12,7 @@ const protobufPackage = "CarServer";
12
12
  * UPSTREAM-COMMIT: see upstream.json
13
13
  * This file = upstream base + Teslemetry extensions marked TESLEMETRY-EXT.
14
14
  */
15
- /** ===== TESLEMETRY-EXT BEGIN (app-4.58.6) ===== */
15
+ /** ===== TESLEMETRY-EXT BEGIN ===== */
16
16
  let AutopilotBase = /* @__PURE__ */ function(AutopilotBase) {
17
17
  AutopilotBase[AutopilotBase["AutopilotBase_NONE"] = 0] = "AutopilotBase_NONE";
18
18
  AutopilotBase[AutopilotBase["AutopilotBase_HIGHWAY"] = 1] = "AutopilotBase_HIGHWAY";
@@ -97,7 +97,7 @@ function autopilotOverrideStateToJSON(object) {
97
97
  default: return "UNRECOGNIZED";
98
98
  }
99
99
  }
100
- /** ===== TESLEMETRY-EXT BEGIN (app-4.58.6) ===== */
100
+ /** ===== TESLEMETRY-EXT BEGIN ===== */
101
101
  let DashCamState = /* @__PURE__ */ function(DashCamState) {
102
102
  DashCamState[DashCamState["DashCamState_UNAVAILABLE"] = 0] = "DashCamState_UNAVAILABLE";
103
103
  DashCamState[DashCamState["DashCamState_AVAILABLE"] = 1] = "DashCamState_AVAILABLE";
@@ -144,7 +144,7 @@ function dashCamStateToJSON(object) {
144
144
  default: return "UNRECOGNIZED";
145
145
  }
146
146
  }
147
- /** ===== TESLEMETRY-EXT BEGIN (app-4.58.6) ===== */
147
+ /** ===== TESLEMETRY-EXT BEGIN ===== */
148
148
  let TheaterSource = /* @__PURE__ */ function(TheaterSource) {
149
149
  TheaterSource[TheaterSource["TheaterSource_None"] = 0] = "TheaterSource_None";
150
150
  TheaterSource[TheaterSource["TheaterSource_YouTube"] = 1] = "TheaterSource_YouTube";
@@ -255,7 +255,7 @@ let MediaSourceType = /* @__PURE__ */ function(MediaSourceType) {
255
255
  MediaSourceType[MediaSourceType["MediaSourceType_OnlineRadio"] = 24] = "MediaSourceType_OnlineRadio";
256
256
  MediaSourceType[MediaSourceType["MediaSourceType_OnlineRadio2"] = 25] = "MediaSourceType_OnlineRadio2";
257
257
  MediaSourceType[MediaSourceType["MediaSourceType_NetEaseMusic"] = 26] = "MediaSourceType_NetEaseMusic";
258
- /** MediaSourceType_AppleMusic - TESLEMETRY-EXT (app-4.58.6) */
258
+ /** MediaSourceType_AppleMusic - TESLEMETRY-EXT */
259
259
  MediaSourceType[MediaSourceType["MediaSourceType_AppleMusic"] = 27] = "MediaSourceType_AppleMusic";
260
260
  /** MediaSourceType_Browser - Entertainment sources */
261
261
  MediaSourceType[MediaSourceType["MediaSourceType_Browser"] = 28] = "MediaSourceType_Browser";
@@ -266,23 +266,23 @@ let MediaSourceType = /* @__PURE__ */ function(MediaSourceType) {
266
266
  MediaSourceType[MediaSourceType["MediaSourceType_RecentsFavorites"] = 33] = "MediaSourceType_RecentsFavorites";
267
267
  MediaSourceType[MediaSourceType["MediaSourceType_HomeApps"] = 34] = "MediaSourceType_HomeApps";
268
268
  MediaSourceType[MediaSourceType["MediaSourceType_Search"] = 35] = "MediaSourceType_Search";
269
- /** MediaSourceType_ApplePodcasts - TESLEMETRY-EXT (app-4.58.6) */
269
+ /** MediaSourceType_ApplePodcasts - TESLEMETRY-EXT */
270
270
  MediaSourceType[MediaSourceType["MediaSourceType_ApplePodcasts"] = 36] = "MediaSourceType_ApplePodcasts";
271
- /** MediaSourceType_Audible - TESLEMETRY-EXT (app-4.58.6) */
271
+ /** MediaSourceType_Audible - TESLEMETRY-EXT */
272
272
  MediaSourceType[MediaSourceType["MediaSourceType_Audible"] = 37] = "MediaSourceType_Audible";
273
- /** MediaSourceType_AmazonMusic - TESLEMETRY-EXT (app-4.58.6) */
273
+ /** MediaSourceType_AmazonMusic - TESLEMETRY-EXT */
274
274
  MediaSourceType[MediaSourceType["MediaSourceType_AmazonMusic"] = 38] = "MediaSourceType_AmazonMusic";
275
- /** MediaSourceType_YouTubeMusic - TESLEMETRY-EXT (app-4.58.6) */
275
+ /** MediaSourceType_YouTubeMusic - TESLEMETRY-EXT */
276
276
  MediaSourceType[MediaSourceType["MediaSourceType_YouTubeMusic"] = 39] = "MediaSourceType_YouTubeMusic";
277
- /** MediaSourceType_SiriusXmWeb - TESLEMETRY-EXT (app-4.58.6) */
277
+ /** MediaSourceType_SiriusXmWeb - TESLEMETRY-EXT */
278
278
  MediaSourceType[MediaSourceType["MediaSourceType_SiriusXmWeb"] = 40] = "MediaSourceType_SiriusXmWeb";
279
- /** MediaSourceType_Yunting - TESLEMETRY-EXT (app-4.58.6) */
279
+ /** MediaSourceType_Yunting - TESLEMETRY-EXT */
280
280
  MediaSourceType[MediaSourceType["MediaSourceType_Yunting"] = 41] = "MediaSourceType_Yunting";
281
- /** MediaSourceType_TuneInWeb - TESLEMETRY-EXT (app-4.58.6) */
281
+ /** MediaSourceType_TuneInWeb - TESLEMETRY-EXT */
282
282
  MediaSourceType[MediaSourceType["MediaSourceType_TuneInWeb"] = 42] = "MediaSourceType_TuneInWeb";
283
- /** MediaSourceType_Kugou - TESLEMETRY-EXT (app-4.58.6) */
283
+ /** MediaSourceType_Kugou - TESLEMETRY-EXT */
284
284
  MediaSourceType[MediaSourceType["MediaSourceType_Kugou"] = 43] = "MediaSourceType_Kugou";
285
- /** MediaSourceType_Vohico - TESLEMETRY-EXT (app-4.58.6) */
285
+ /** MediaSourceType_Vohico - TESLEMETRY-EXT */
286
286
  MediaSourceType[MediaSourceType["MediaSourceType_Vohico"] = 44] = "MediaSourceType_Vohico";
287
287
  MediaSourceType[MediaSourceType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
288
288
  return MediaSourceType;
@@ -543,7 +543,7 @@ let ChargeState_ChargeLimitReason = /* @__PURE__ */ function(ChargeState_ChargeL
543
543
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["ChargeLimitReasonBattTempLow"] = 3] = "ChargeLimitReasonBattTempLow";
544
544
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["ChargeLimitReasonHighSoc"] = 4] = "ChargeLimitReasonHighSoc";
545
545
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["ChargeLimitReasonCabin"] = 5] = "ChargeLimitReasonCabin";
546
- /** ChargeLimitReasonEvseRelocationRecommended - TESLEMETRY-EXT (app-4.58.6) */
546
+ /** ChargeLimitReasonEvseRelocationRecommended - TESLEMETRY-EXT */
547
547
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["ChargeLimitReasonEvseRelocationRecommended"] = 6] = "ChargeLimitReasonEvseRelocationRecommended";
548
548
  ChargeState_ChargeLimitReason[ChargeState_ChargeLimitReason["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
549
549
  return ChargeState_ChargeLimitReason;
@@ -679,7 +679,7 @@ let ChargeState_PowershareType = /* @__PURE__ */ function(ChargeState_Powershare
679
679
  ChargeState_PowershareType[ChargeState_PowershareType["PowershareTypeNone"] = 0] = "PowershareTypeNone";
680
680
  ChargeState_PowershareType[ChargeState_PowershareType["PowershareTypeLoad"] = 1] = "PowershareTypeLoad";
681
681
  ChargeState_PowershareType[ChargeState_PowershareType["PowershareTypeHome"] = 2] = "PowershareTypeHome";
682
- /** PowershareTypeGrid - TESLEMETRY-EXT (app-4.58.6) */
682
+ /** PowershareTypeGrid - TESLEMETRY-EXT */
683
683
  ChargeState_PowershareType[ChargeState_PowershareType["PowershareTypeGrid"] = 3] = "PowershareTypeGrid";
684
684
  ChargeState_PowershareType[ChargeState_PowershareType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
685
685
  return ChargeState_PowershareType;
@@ -714,9 +714,9 @@ let ChargeState_PowershareStopReason = /* @__PURE__ */ function(ChargeState_Powe
714
714
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonUser"] = 4] = "PowershareStopReasonUser";
715
715
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonReconnecting"] = 5] = "PowershareStopReasonReconnecting";
716
716
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonAuthentication"] = 6] = "PowershareStopReasonAuthentication";
717
- /** PowershareStopReasonAdapterUpdating - TESLEMETRY-EXT (app-4.58.6) */
717
+ /** PowershareStopReasonAdapterUpdating - TESLEMETRY-EXT */
718
718
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonAdapterUpdating"] = 7] = "PowershareStopReasonAdapterUpdating";
719
- /** PowershareStopReasonAdapterInitializationFailed - TESLEMETRY-EXT (app-4.58.6) */
719
+ /** PowershareStopReasonAdapterInitializationFailed - TESLEMETRY-EXT */
720
720
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["PowershareStopReasonAdapterInitializationFailed"] = 8] = "PowershareStopReasonAdapterInitializationFailed";
721
721
  ChargeState_PowershareStopReason[ChargeState_PowershareStopReason["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
722
722
  return ChargeState_PowershareStopReason;
@@ -938,7 +938,7 @@ function climateState_COPNotRunningReasonToJSON(object) {
938
938
  default: return "UNRECOGNIZED";
939
939
  }
940
940
  }
941
- /** TESLEMETRY-EXT (app-4.58.6) */
941
+ /** TESLEMETRY-EXT */
942
942
  let ClimateState_DogModeState = /* @__PURE__ */ function(ClimateState_DogModeState) {
943
943
  ClimateState_DogModeState[ClimateState_DogModeState["DogModeStateUnavailableFault"] = 0] = "DogModeStateUnavailableFault";
944
944
  ClimateState_DogModeState[ClimateState_DogModeState["DogModeStateUnavailableTooHot"] = 1] = "DogModeStateUnavailableTooHot";
@@ -1339,6 +1339,7 @@ function createBaseVehicleData() {
1339
1339
  chargeScheduleState: void 0,
1340
1340
  preconditioningScheduleState: void 0,
1341
1341
  sohState: void 0,
1342
+ unknown: /* @__PURE__ */ new Uint8Array(0),
1342
1343
  tirePressureState: void 0,
1343
1344
  mediaState: void 0,
1344
1345
  mediaDetailState: void 0,
@@ -1369,6 +1370,7 @@ const VehicleData = {
1369
1370
  if (message.chargeScheduleState !== void 0) ChargeScheduleState.encode(message.chargeScheduleState, writer.uint32(122).fork()).join();
1370
1371
  if (message.preconditioningScheduleState !== void 0) PreconditioningScheduleState.encode(message.preconditioningScheduleState, writer.uint32(130).fork()).join();
1371
1372
  if (message.sohState !== void 0) SohState.encode(message.sohState, writer.uint32(138).fork()).join();
1373
+ if (message.unknown.length !== 0) writer.uint32(146).bytes(message.unknown);
1372
1374
  if (message.tirePressureState !== void 0) TirePressureState.encode(message.tirePressureState, writer.uint32(154).fork()).join();
1373
1375
  if (message.mediaState !== void 0) MediaState.encode(message.mediaState, writer.uint32(162).fork()).join();
1374
1376
  if (message.mediaDetailState !== void 0) MediaDetailState.encode(message.mediaDetailState, writer.uint32(170).fork()).join();
@@ -1446,6 +1448,10 @@ const VehicleData = {
1446
1448
  if (tag !== 138) break;
1447
1449
  message.sohState = SohState.decode(reader, reader.uint32());
1448
1450
  continue;
1451
+ case 18:
1452
+ if (tag !== 146) break;
1453
+ message.unknown = reader.bytes();
1454
+ continue;
1449
1455
  case 19:
1450
1456
  if (tag !== 154) break;
1451
1457
  message.tirePressureState = TirePressureState.decode(reader, reader.uint32());
@@ -1516,6 +1522,7 @@ const VehicleData = {
1516
1522
  chargeScheduleState: isSet(object.chargeScheduleState) ? ChargeScheduleState.fromJSON(object.chargeScheduleState) : void 0,
1517
1523
  preconditioningScheduleState: isSet(object.preconditioningScheduleState) ? PreconditioningScheduleState.fromJSON(object.preconditioningScheduleState) : void 0,
1518
1524
  sohState: isSet(object.sohState) ? SohState.fromJSON(object.sohState) : void 0,
1525
+ unknown: isSet(object.unknown) ? bytesFromBase64(object.unknown) : /* @__PURE__ */ new Uint8Array(0),
1519
1526
  tirePressureState: isSet(object.tirePressureState) ? TirePressureState.fromJSON(object.tirePressureState) : void 0,
1520
1527
  mediaState: isSet(object.mediaState) ? MediaState.fromJSON(object.mediaState) : void 0,
1521
1528
  mediaDetailState: isSet(object.mediaDetailState) ? MediaDetailState.fromJSON(object.mediaDetailState) : void 0,
@@ -1546,6 +1553,7 @@ const VehicleData = {
1546
1553
  if (message.chargeScheduleState !== void 0) obj.chargeScheduleState = ChargeScheduleState.toJSON(message.chargeScheduleState);
1547
1554
  if (message.preconditioningScheduleState !== void 0) obj.preconditioningScheduleState = PreconditioningScheduleState.toJSON(message.preconditioningScheduleState);
1548
1555
  if (message.sohState !== void 0) obj.sohState = SohState.toJSON(message.sohState);
1556
+ if (message.unknown !== void 0) obj.unknown = base64FromBytes(message.unknown);
1549
1557
  if (message.tirePressureState !== void 0) obj.tirePressureState = TirePressureState.toJSON(message.tirePressureState);
1550
1558
  if (message.mediaState !== void 0) obj.mediaState = MediaState.toJSON(message.mediaState);
1551
1559
  if (message.mediaDetailState !== void 0) obj.mediaDetailState = MediaDetailState.toJSON(message.mediaDetailState);
@@ -1579,6 +1587,7 @@ const VehicleData = {
1579
1587
  message.chargeScheduleState = object.chargeScheduleState !== void 0 && object.chargeScheduleState !== null ? ChargeScheduleState.fromPartial(object.chargeScheduleState) : void 0;
1580
1588
  message.preconditioningScheduleState = object.preconditioningScheduleState !== void 0 && object.preconditioningScheduleState !== null ? PreconditioningScheduleState.fromPartial(object.preconditioningScheduleState) : void 0;
1581
1589
  message.sohState = object.sohState !== void 0 && object.sohState !== null ? SohState.fromPartial(object.sohState) : void 0;
1590
+ message.unknown = object.unknown ?? /* @__PURE__ */ new Uint8Array(0);
1582
1591
  message.tirePressureState = object.tirePressureState !== void 0 && object.tirePressureState !== null ? TirePressureState.fromPartial(object.tirePressureState) : void 0;
1583
1592
  message.mediaState = object.mediaState !== void 0 && object.mediaState !== null ? MediaState.fromPartial(object.mediaState) : void 0;
1584
1593
  message.mediaDetailState = object.mediaDetailState !== void 0 && object.mediaDetailState !== null ? MediaDetailState.fromPartial(object.mediaDetailState) : void 0;
@@ -5295,6 +5304,8 @@ function createBaseVehicleState() {
5295
5304
  tpmsLastSeenPressureTimeFr: void 0,
5296
5305
  tpmsLastSeenPressureTimeRl: void 0,
5297
5306
  tpmsLastSeenPressureTimeRr: void 0,
5307
+ deckLightsOn: void 0,
5308
+ hazardsOn: void 0,
5298
5309
  legacyMediaInfo: void 0,
5299
5310
  allowAuthorizedMobileDevicesOnly: void 0,
5300
5311
  guestMode: void 0,
@@ -5376,6 +5387,8 @@ const VehicleState = {
5376
5387
  if (message.tpmsLastSeenPressureTimeFr !== void 0) require_command_google_protobuf_timestamp.Timestamp.encode(toTimestamp(message.tpmsLastSeenPressureTimeFr), writer.uint32(474).fork()).join();
5377
5388
  if (message.tpmsLastSeenPressureTimeRl !== void 0) require_command_google_protobuf_timestamp.Timestamp.encode(toTimestamp(message.tpmsLastSeenPressureTimeRl), writer.uint32(482).fork()).join();
5378
5389
  if (message.tpmsLastSeenPressureTimeRr !== void 0) require_command_google_protobuf_timestamp.Timestamp.encode(toTimestamp(message.tpmsLastSeenPressureTimeRr), writer.uint32(490).fork()).join();
5390
+ if (message.deckLightsOn !== void 0) writer.uint32(536).bool(message.deckLightsOn);
5391
+ if (message.hazardsOn !== void 0) writer.uint32(544).bool(message.hazardsOn);
5379
5392
  if (message.legacyMediaInfo !== void 0) LegacyMediaInfo.encode(message.legacyMediaInfo, writer.uint32(578).fork()).join();
5380
5393
  if (message.allowAuthorizedMobileDevicesOnly !== void 0) writer.uint32(584).bool(message.allowAuthorizedMobileDevicesOnly);
5381
5394
  if (message.guestMode !== void 0) VehicleState_GuestMode.encode(message.guestMode, writer.uint32(594).fork()).join();
@@ -5491,6 +5504,14 @@ const VehicleState = {
5491
5504
  if (tag !== 490) break;
5492
5505
  message.tpmsLastSeenPressureTimeRr = fromTimestamp(require_command_google_protobuf_timestamp.Timestamp.decode(reader, reader.uint32()));
5493
5506
  continue;
5507
+ case 67:
5508
+ if (tag !== 536) break;
5509
+ message.deckLightsOn = reader.bool();
5510
+ continue;
5511
+ case 68:
5512
+ if (tag !== 544) break;
5513
+ message.hazardsOn = reader.bool();
5514
+ continue;
5494
5515
  case 72:
5495
5516
  if (tag !== 578) break;
5496
5517
  message.legacyMediaInfo = LegacyMediaInfo.decode(reader, reader.uint32());
@@ -5775,6 +5796,8 @@ const VehicleState = {
5775
5796
  tpmsLastSeenPressureTimeFr: isSet(object.tpmsLastSeenPressureTimeFr) ? fromJsonTimestamp(object.tpmsLastSeenPressureTimeFr) : void 0,
5776
5797
  tpmsLastSeenPressureTimeRl: isSet(object.tpmsLastSeenPressureTimeRl) ? fromJsonTimestamp(object.tpmsLastSeenPressureTimeRl) : void 0,
5777
5798
  tpmsLastSeenPressureTimeRr: isSet(object.tpmsLastSeenPressureTimeRr) ? fromJsonTimestamp(object.tpmsLastSeenPressureTimeRr) : void 0,
5799
+ deckLightsOn: isSet(object.deckLightsOn) ? globalThis.Boolean(object.deckLightsOn) : void 0,
5800
+ hazardsOn: isSet(object.hazardsOn) ? globalThis.Boolean(object.hazardsOn) : void 0,
5778
5801
  legacyMediaInfo: isSet(object.legacyMediaInfo) ? LegacyMediaInfo.fromJSON(object.legacyMediaInfo) : void 0,
5779
5802
  allowAuthorizedMobileDevicesOnly: isSet(object.allowAuthorizedMobileDevicesOnly) ? globalThis.Boolean(object.allowAuthorizedMobileDevicesOnly) : void 0,
5780
5803
  guestMode: isSet(object.guestMode) ? VehicleState_GuestMode.fromJSON(object.guestMode) : void 0,
@@ -5854,6 +5877,8 @@ const VehicleState = {
5854
5877
  if (message.tpmsLastSeenPressureTimeFr !== void 0) obj.tpmsLastSeenPressureTimeFr = message.tpmsLastSeenPressureTimeFr.toISOString();
5855
5878
  if (message.tpmsLastSeenPressureTimeRl !== void 0) obj.tpmsLastSeenPressureTimeRl = message.tpmsLastSeenPressureTimeRl.toISOString();
5856
5879
  if (message.tpmsLastSeenPressureTimeRr !== void 0) obj.tpmsLastSeenPressureTimeRr = message.tpmsLastSeenPressureTimeRr.toISOString();
5880
+ if (message.deckLightsOn !== void 0) obj.deckLightsOn = message.deckLightsOn;
5881
+ if (message.hazardsOn !== void 0) obj.hazardsOn = message.hazardsOn;
5857
5882
  if (message.legacyMediaInfo !== void 0) obj.legacyMediaInfo = LegacyMediaInfo.toJSON(message.legacyMediaInfo);
5858
5883
  if (message.allowAuthorizedMobileDevicesOnly !== void 0) obj.allowAuthorizedMobileDevicesOnly = message.allowAuthorizedMobileDevicesOnly;
5859
5884
  if (message.guestMode !== void 0) obj.guestMode = VehicleState_GuestMode.toJSON(message.guestMode);
@@ -5936,6 +5961,8 @@ const VehicleState = {
5936
5961
  message.tpmsLastSeenPressureTimeFr = object.tpmsLastSeenPressureTimeFr ?? void 0;
5937
5962
  message.tpmsLastSeenPressureTimeRl = object.tpmsLastSeenPressureTimeRl ?? void 0;
5938
5963
  message.tpmsLastSeenPressureTimeRr = object.tpmsLastSeenPressureTimeRr ?? void 0;
5964
+ message.deckLightsOn = object.deckLightsOn ?? void 0;
5965
+ message.hazardsOn = object.hazardsOn ?? void 0;
5939
5966
  message.legacyMediaInfo = object.legacyMediaInfo !== void 0 && object.legacyMediaInfo !== null ? LegacyMediaInfo.fromPartial(object.legacyMediaInfo) : void 0;
5940
5967
  message.allowAuthorizedMobileDevicesOnly = object.allowAuthorizedMobileDevicesOnly ?? void 0;
5941
5968
  message.guestMode = object.guestMode !== void 0 && object.guestMode !== null ? VehicleState_GuestMode.fromPartial(object.guestMode) : void 0;
@@ -9166,6 +9193,7 @@ const ParkedAccessoryState = {
9166
9193
  function createBaseSohState() {
9167
9194
  return {
9168
9195
  sohTestState: void 0,
9196
+ sohTestEndMode: void 0,
9169
9197
  sohResult: void 0,
9170
9198
  timestamp: void 0
9171
9199
  };
@@ -9173,6 +9201,7 @@ function createBaseSohState() {
9173
9201
  const SohState = {
9174
9202
  encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
9175
9203
  if (message.sohTestState !== void 0) SohState_SohTestState.encode(message.sohTestState, writer.uint32(10).fork()).join();
9204
+ if (message.sohTestEndMode !== void 0) SohState_SohTestEndMode.encode(message.sohTestEndMode, writer.uint32(18).fork()).join();
9176
9205
  if (message.sohResult !== void 0) SohState_SohResult.encode(message.sohResult, writer.uint32(26).fork()).join();
9177
9206
  if (message.timestamp !== void 0) require_command_google_protobuf_timestamp.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(34).fork()).join();
9178
9207
  return writer;
@@ -9188,6 +9217,10 @@ const SohState = {
9188
9217
  if (tag !== 10) break;
9189
9218
  message.sohTestState = SohState_SohTestState.decode(reader, reader.uint32());
9190
9219
  continue;
9220
+ case 2:
9221
+ if (tag !== 18) break;
9222
+ message.sohTestEndMode = SohState_SohTestEndMode.decode(reader, reader.uint32());
9223
+ continue;
9191
9224
  case 3:
9192
9225
  if (tag !== 26) break;
9193
9226
  message.sohResult = SohState_SohResult.decode(reader, reader.uint32());
@@ -9205,6 +9238,7 @@ const SohState = {
9205
9238
  fromJSON(object) {
9206
9239
  return {
9207
9240
  sohTestState: isSet(object.sohTestState) ? SohState_SohTestState.fromJSON(object.sohTestState) : void 0,
9241
+ sohTestEndMode: isSet(object.sohTestEndMode) ? SohState_SohTestEndMode.fromJSON(object.sohTestEndMode) : void 0,
9208
9242
  sohResult: isSet(object.sohResult) ? SohState_SohResult.fromJSON(object.sohResult) : void 0,
9209
9243
  timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : void 0
9210
9244
  };
@@ -9212,6 +9246,7 @@ const SohState = {
9212
9246
  toJSON(message) {
9213
9247
  const obj = {};
9214
9248
  if (message.sohTestState !== void 0) obj.sohTestState = SohState_SohTestState.toJSON(message.sohTestState);
9249
+ if (message.sohTestEndMode !== void 0) obj.sohTestEndMode = SohState_SohTestEndMode.toJSON(message.sohTestEndMode);
9215
9250
  if (message.sohResult !== void 0) obj.sohResult = SohState_SohResult.toJSON(message.sohResult);
9216
9251
  if (message.timestamp !== void 0) obj.timestamp = message.timestamp.toISOString();
9217
9252
  return obj;
@@ -9222,19 +9257,86 @@ const SohState = {
9222
9257
  fromPartial(object) {
9223
9258
  const message = createBaseSohState();
9224
9259
  message.sohTestState = object.sohTestState !== void 0 && object.sohTestState !== null ? SohState_SohTestState.fromPartial(object.sohTestState) : void 0;
9260
+ message.sohTestEndMode = object.sohTestEndMode !== void 0 && object.sohTestEndMode !== null ? SohState_SohTestEndMode.fromPartial(object.sohTestEndMode) : void 0;
9225
9261
  message.sohResult = object.sohResult !== void 0 && object.sohResult !== null ? SohState_SohResult.fromPartial(object.sohResult) : void 0;
9226
9262
  message.timestamp = object.timestamp ?? void 0;
9227
9263
  return message;
9228
9264
  }
9229
9265
  };
9266
+ function createBaseSohState_SohTestPhase() {
9267
+ return {};
9268
+ }
9269
+ const SohState_SohTestPhase = {
9270
+ encode(_, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
9271
+ return writer;
9272
+ },
9273
+ decode(input, length) {
9274
+ const reader = input instanceof _bufbuild_protobuf_wire.BinaryReader ? input : new _bufbuild_protobuf_wire.BinaryReader(input);
9275
+ const end = length === void 0 ? reader.len : reader.pos + length;
9276
+ const message = createBaseSohState_SohTestPhase();
9277
+ while (reader.pos < end) {
9278
+ const tag = reader.uint32();
9279
+ switch (tag >>> 3) {}
9280
+ if ((tag & 7) === 4 || tag === 0) break;
9281
+ reader.skip(tag & 7);
9282
+ }
9283
+ return message;
9284
+ },
9285
+ fromJSON(_) {
9286
+ return {};
9287
+ },
9288
+ toJSON(_) {
9289
+ return {};
9290
+ },
9291
+ create(base) {
9292
+ return SohState_SohTestPhase.fromPartial(base ?? {});
9293
+ },
9294
+ fromPartial(_) {
9295
+ return createBaseSohState_SohTestPhase();
9296
+ }
9297
+ };
9298
+ function createBaseSohState_SohTestEndMode() {
9299
+ return {};
9300
+ }
9301
+ const SohState_SohTestEndMode = {
9302
+ encode(_, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
9303
+ return writer;
9304
+ },
9305
+ decode(input, length) {
9306
+ const reader = input instanceof _bufbuild_protobuf_wire.BinaryReader ? input : new _bufbuild_protobuf_wire.BinaryReader(input);
9307
+ const end = length === void 0 ? reader.len : reader.pos + length;
9308
+ const message = createBaseSohState_SohTestEndMode();
9309
+ while (reader.pos < end) {
9310
+ const tag = reader.uint32();
9311
+ switch (tag >>> 3) {}
9312
+ if ((tag & 7) === 4 || tag === 0) break;
9313
+ reader.skip(tag & 7);
9314
+ }
9315
+ return message;
9316
+ },
9317
+ fromJSON(_) {
9318
+ return {};
9319
+ },
9320
+ toJSON(_) {
9321
+ return {};
9322
+ },
9323
+ create(base) {
9324
+ return SohState_SohTestEndMode.fromPartial(base ?? {});
9325
+ },
9326
+ fromPartial(_) {
9327
+ return createBaseSohState_SohTestEndMode();
9328
+ }
9329
+ };
9230
9330
  function createBaseSohState_SohTestState() {
9231
9331
  return {
9332
+ sohTestPhase: void 0,
9232
9333
  sohTimeEstimate: void 0,
9233
9334
  sohTimeRemaining: void 0
9234
9335
  };
9235
9336
  }
9236
9337
  const SohState_SohTestState = {
9237
9338
  encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
9339
+ if (message.sohTestPhase !== void 0) SohState_SohTestPhase.encode(message.sohTestPhase, writer.uint32(10).fork()).join();
9238
9340
  if (message.sohTimeEstimate !== void 0) writer.uint32(21).float(message.sohTimeEstimate);
9239
9341
  if (message.sohTimeRemaining !== void 0) writer.uint32(29).float(message.sohTimeRemaining);
9240
9342
  return writer;
@@ -9246,6 +9348,10 @@ const SohState_SohTestState = {
9246
9348
  while (reader.pos < end) {
9247
9349
  const tag = reader.uint32();
9248
9350
  switch (tag >>> 3) {
9351
+ case 1:
9352
+ if (tag !== 10) break;
9353
+ message.sohTestPhase = SohState_SohTestPhase.decode(reader, reader.uint32());
9354
+ continue;
9249
9355
  case 2:
9250
9356
  if (tag !== 21) break;
9251
9357
  message.sohTimeEstimate = reader.float();
@@ -9262,12 +9368,14 @@ const SohState_SohTestState = {
9262
9368
  },
9263
9369
  fromJSON(object) {
9264
9370
  return {
9371
+ sohTestPhase: isSet(object.sohTestPhase) ? SohState_SohTestPhase.fromJSON(object.sohTestPhase) : void 0,
9265
9372
  sohTimeEstimate: isSet(object.sohTimeEstimate) ? globalThis.Number(object.sohTimeEstimate) : void 0,
9266
9373
  sohTimeRemaining: isSet(object.sohTimeRemaining) ? globalThis.Number(object.sohTimeRemaining) : void 0
9267
9374
  };
9268
9375
  },
9269
9376
  toJSON(message) {
9270
9377
  const obj = {};
9378
+ if (message.sohTestPhase !== void 0) obj.sohTestPhase = SohState_SohTestPhase.toJSON(message.sohTestPhase);
9271
9379
  if (message.sohTimeEstimate !== void 0) obj.sohTimeEstimate = message.sohTimeEstimate;
9272
9380
  if (message.sohTimeRemaining !== void 0) obj.sohTimeRemaining = message.sohTimeRemaining;
9273
9381
  return obj;
@@ -9277,6 +9385,7 @@ const SohState_SohTestState = {
9277
9385
  },
9278
9386
  fromPartial(object) {
9279
9387
  const message = createBaseSohState_SohTestState();
9388
+ message.sohTestPhase = object.sohTestPhase !== void 0 && object.sohTestPhase !== null ? SohState_SohTestPhase.fromPartial(object.sohTestPhase) : void 0;
9280
9389
  message.sohTimeEstimate = object.sohTimeEstimate ?? void 0;
9281
9390
  message.sohTimeRemaining = object.sohTimeRemaining ?? void 0;
9282
9391
  return message;
@@ -9724,6 +9833,7 @@ function createBaseVehicleImage() {
9724
9833
  return {
9725
9834
  imageId: /* @__PURE__ */ new Uint8Array(0),
9726
9835
  assetData: void 0,
9836
+ imageType: 0,
9727
9837
  isLocalImage: false,
9728
9838
  totalImageSize: 0
9729
9839
  };
@@ -9732,6 +9842,7 @@ const VehicleImage = {
9732
9842
  encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
9733
9843
  if (message.imageId.length !== 0) writer.uint32(10).bytes(message.imageId);
9734
9844
  if (message.assetData !== void 0) VehicleImageData.encode(message.assetData, writer.uint32(18).fork()).join();
9845
+ if (message.imageType !== 0) writer.uint32(24).int32(message.imageType);
9735
9846
  if (message.isLocalImage !== false) writer.uint32(32).bool(message.isLocalImage);
9736
9847
  if (message.totalImageSize !== 0) writer.uint32(40).uint32(message.totalImageSize);
9737
9848
  return writer;
@@ -9751,6 +9862,10 @@ const VehicleImage = {
9751
9862
  if (tag !== 18) break;
9752
9863
  message.assetData = VehicleImageData.decode(reader, reader.uint32());
9753
9864
  continue;
9865
+ case 3:
9866
+ if (tag !== 24) break;
9867
+ message.imageType = reader.int32();
9868
+ continue;
9754
9869
  case 4:
9755
9870
  if (tag !== 32) break;
9756
9871
  message.isLocalImage = reader.bool();
@@ -9769,6 +9884,7 @@ const VehicleImage = {
9769
9884
  return {
9770
9885
  imageId: isSet(object.imageId) ? bytesFromBase64(object.imageId) : /* @__PURE__ */ new Uint8Array(0),
9771
9886
  assetData: isSet(object.assetData) ? VehicleImageData.fromJSON(object.assetData) : void 0,
9887
+ imageType: isSet(object.imageType) ? vehicleImageStateTypeFromJSON(object.imageType) : 0,
9772
9888
  isLocalImage: isSet(object.isLocalImage) ? globalThis.Boolean(object.isLocalImage) : false,
9773
9889
  totalImageSize: isSet(object.totalImageSize) ? globalThis.Number(object.totalImageSize) : 0
9774
9890
  };
@@ -9777,6 +9893,7 @@ const VehicleImage = {
9777
9893
  const obj = {};
9778
9894
  if (message.imageId !== void 0) obj.imageId = base64FromBytes(message.imageId);
9779
9895
  if (message.assetData !== void 0) obj.assetData = VehicleImageData.toJSON(message.assetData);
9896
+ if (message.imageType !== void 0) obj.imageType = vehicleImageStateTypeToJSON(message.imageType);
9780
9897
  if (message.isLocalImage !== void 0) obj.isLocalImage = message.isLocalImage;
9781
9898
  if (message.totalImageSize !== void 0) obj.totalImageSize = Math.round(message.totalImageSize);
9782
9899
  return obj;
@@ -9788,6 +9905,7 @@ const VehicleImage = {
9788
9905
  const message = createBaseVehicleImage();
9789
9906
  message.imageId = object.imageId ?? /* @__PURE__ */ new Uint8Array(0);
9790
9907
  message.assetData = object.assetData !== void 0 && object.assetData !== null ? VehicleImageData.fromPartial(object.assetData) : void 0;
9908
+ message.imageType = object.imageType ?? 0;
9791
9909
  message.isLocalImage = object.isLocalImage ?? false;
9792
9910
  message.totalImageSize = object.totalImageSize ?? 0;
9793
9911
  return message;
@@ -9850,21 +9968,25 @@ const VehicleImageState = {
9850
9968
  };
9851
9969
  function createBaseSuspensionState() {
9852
9970
  return {
9971
+ allowedLevels: [],
9853
9972
  currentLevel: void 0,
9854
9973
  targetLevel: void 0,
9855
9974
  movementState: void 0,
9856
9975
  offroadOn: void 0,
9857
9976
  disabledReason: void 0,
9977
+ levelOptions: [],
9858
9978
  timestamp: void 0
9859
9979
  };
9860
9980
  }
9861
9981
  const SuspensionState = {
9862
9982
  encode(message, writer = new _bufbuild_protobuf_wire.BinaryWriter()) {
9983
+ for (const v of message.allowedLevels) require_command_common.SuspensionLevelObj.encode(v, writer.uint32(10).fork()).join();
9863
9984
  if (message.currentLevel !== void 0) writer.uint32(16).int32(message.currentLevel);
9864
9985
  if (message.targetLevel !== void 0) writer.uint32(24).int32(message.targetLevel);
9865
9986
  if (message.movementState !== void 0) writer.uint32(32).int32(message.movementState);
9866
9987
  if (message.offroadOn !== void 0) writer.uint32(40).bool(message.offroadOn);
9867
9988
  if (message.disabledReason !== void 0) writer.uint32(50).string(message.disabledReason);
9989
+ for (const v of message.levelOptions) require_command_common.SuspensionLevelObj.encode(v, writer.uint32(58).fork()).join();
9868
9990
  if (message.timestamp !== void 0) require_command_google_protobuf_timestamp.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(16002).fork()).join();
9869
9991
  return writer;
9870
9992
  },
@@ -9875,6 +9997,10 @@ const SuspensionState = {
9875
9997
  while (reader.pos < end) {
9876
9998
  const tag = reader.uint32();
9877
9999
  switch (tag >>> 3) {
10000
+ case 1:
10001
+ if (tag !== 10) break;
10002
+ message.allowedLevels.push(require_command_common.SuspensionLevelObj.decode(reader, reader.uint32()));
10003
+ continue;
9878
10004
  case 2:
9879
10005
  if (tag !== 16) break;
9880
10006
  message.currentLevel = reader.int32();
@@ -9895,6 +10021,10 @@ const SuspensionState = {
9895
10021
  if (tag !== 50) break;
9896
10022
  message.disabledReason = reader.string();
9897
10023
  continue;
10024
+ case 7:
10025
+ if (tag !== 58) break;
10026
+ message.levelOptions.push(require_command_common.SuspensionLevelObj.decode(reader, reader.uint32()));
10027
+ continue;
9898
10028
  case 2e3:
9899
10029
  if (tag !== 16002) break;
9900
10030
  message.timestamp = fromTimestamp(require_command_google_protobuf_timestamp.Timestamp.decode(reader, reader.uint32()));
@@ -9907,21 +10037,25 @@ const SuspensionState = {
9907
10037
  },
9908
10038
  fromJSON(object) {
9909
10039
  return {
10040
+ allowedLevels: globalThis.Array.isArray(object?.allowedLevels) ? object.allowedLevels.map((e) => require_command_common.SuspensionLevelObj.fromJSON(e)) : [],
9910
10041
  currentLevel: isSet(object.currentLevel) ? require_command_common.suspensionLevelFromJSON(object.currentLevel) : void 0,
9911
10042
  targetLevel: isSet(object.targetLevel) ? require_command_common.suspensionLevelFromJSON(object.targetLevel) : void 0,
9912
10043
  movementState: isSet(object.movementState) ? require_command_common.suspensionActuationStateFromJSON(object.movementState) : void 0,
9913
10044
  offroadOn: isSet(object.offroadOn) ? globalThis.Boolean(object.offroadOn) : void 0,
9914
10045
  disabledReason: isSet(object.disabledReason) ? globalThis.String(object.disabledReason) : void 0,
10046
+ levelOptions: globalThis.Array.isArray(object?.levelOptions) ? object.levelOptions.map((e) => require_command_common.SuspensionLevelObj.fromJSON(e)) : [],
9915
10047
  timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : void 0
9916
10048
  };
9917
10049
  },
9918
10050
  toJSON(message) {
9919
10051
  const obj = {};
10052
+ if (message.allowedLevels?.length) obj.allowedLevels = message.allowedLevels.map((e) => require_command_common.SuspensionLevelObj.toJSON(e));
9920
10053
  if (message.currentLevel !== void 0) obj.currentLevel = require_command_common.suspensionLevelToJSON(message.currentLevel);
9921
10054
  if (message.targetLevel !== void 0) obj.targetLevel = require_command_common.suspensionLevelToJSON(message.targetLevel);
9922
10055
  if (message.movementState !== void 0) obj.movementState = require_command_common.suspensionActuationStateToJSON(message.movementState);
9923
10056
  if (message.offroadOn !== void 0) obj.offroadOn = message.offroadOn;
9924
10057
  if (message.disabledReason !== void 0) obj.disabledReason = message.disabledReason;
10058
+ if (message.levelOptions?.length) obj.levelOptions = message.levelOptions.map((e) => require_command_common.SuspensionLevelObj.toJSON(e));
9925
10059
  if (message.timestamp !== void 0) obj.timestamp = message.timestamp.toISOString();
9926
10060
  return obj;
9927
10061
  },
@@ -9930,11 +10064,13 @@ const SuspensionState = {
9930
10064
  },
9931
10065
  fromPartial(object) {
9932
10066
  const message = createBaseSuspensionState();
10067
+ message.allowedLevels = object.allowedLevels?.map((e) => require_command_common.SuspensionLevelObj.fromPartial(e)) || [];
9933
10068
  message.currentLevel = object.currentLevel ?? void 0;
9934
10069
  message.targetLevel = object.targetLevel ?? void 0;
9935
10070
  message.movementState = object.movementState ?? void 0;
9936
10071
  message.offroadOn = object.offroadOn ?? void 0;
9937
10072
  message.disabledReason = object.disabledReason ?? void 0;
10073
+ message.levelOptions = object.levelOptions?.map((e) => require_command_common.SuspensionLevelObj.fromPartial(e)) || [];
9938
10074
  message.timestamp = object.timestamp ?? void 0;
9939
10075
  return message;
9940
10076
  }
@@ -10233,6 +10369,8 @@ exports.SoftwareUpdateState = SoftwareUpdateState;
10233
10369
  exports.SoftwareUpdateState_SoftwareUpdateStatus = SoftwareUpdateState_SoftwareUpdateStatus;
10234
10370
  exports.SohState = SohState;
10235
10371
  exports.SohState_SohResult = SohState_SohResult;
10372
+ exports.SohState_SohTestEndMode = SohState_SohTestEndMode;
10373
+ exports.SohState_SohTestPhase = SohState_SohTestPhase;
10236
10374
  exports.SohState_SohTestState = SohState_SohTestState;
10237
10375
  exports.SohState_WarrantyServiceResult = SohState_WarrantyServiceResult;
10238
10376
  exports.SpeedLimitMode = SpeedLimitMode;