tesla-fleet-api 0.0.1

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.
@@ -0,0 +1,316 @@
1
+ import { ClimateModes, Seats } from "./types.js";
2
+ import VehicleSpecific from "./vehiclespecific.js";
3
+ export default class Vehicle {
4
+ constructor(parent) {
5
+ this.parent = parent;
6
+ }
7
+ specific(vin) {
8
+ return new VehicleSpecific(this, vin);
9
+ }
10
+ async actuate_truck(vehicle_tag, which_trunk) {
11
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/actuate_trunk`, null, { which_trunk });
12
+ }
13
+ async adjust_volume(vehicle_tag, volume) {
14
+ if (volume < 0 || volume > 11) {
15
+ throw new Error("Volume must a number from 0.0 to 11.0");
16
+ }
17
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/adjust_volume`, null, { volume });
18
+ }
19
+ async auto_conditioning_start(vehicle_tag) {
20
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/auto_conditioning_start`);
21
+ }
22
+ async auto_conditioning_stop(vehicle_tag) {
23
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/auto_conditioning_stop`);
24
+ }
25
+ async cancel_software_update(vehicle_tag) {
26
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/cancel_software_update`);
27
+ }
28
+ async charge_max_range(vehicle_tag) {
29
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/charge_max_range`);
30
+ }
31
+ async charge_port_door_close(vehicle_tag) {
32
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/charge_port_door_close`);
33
+ }
34
+ async charge_port_door_open(vehicle_tag) {
35
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/charge_port_door_open`);
36
+ }
37
+ async charge_standard(vehicle_tag) {
38
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/charge_standard`);
39
+ }
40
+ async charge_start(vehicle_tag) {
41
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/charge_start`);
42
+ }
43
+ async charge_stop(vehicle_tag) {
44
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/charge_stop`);
45
+ }
46
+ async clear_pin_to_drive_admin(vehicle_tag) {
47
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/clear_pin_to_drive_admin`);
48
+ }
49
+ async door_lock(vehicle_tag) {
50
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/door_lock`);
51
+ }
52
+ async door_unlock(vehicle_tag) {
53
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/door_unlock`);
54
+ }
55
+ async erase_user_data(vehicle_tag) {
56
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/erase_user_data`);
57
+ }
58
+ async flash_lights(vehicle_tag) {
59
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/flash_lights`);
60
+ }
61
+ async guest_mode(vehicle_tag, enable) {
62
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/guest_mode`, null, { enable });
63
+ }
64
+ async honk_horn(vehicle_tag) {
65
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/honk_horn`);
66
+ }
67
+ async media_next_fav(vehicle_tag) {
68
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/media_next_fav`);
69
+ }
70
+ async media_next_track(vehicle_tag) {
71
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/media_next_track`);
72
+ }
73
+ async media_prev_fav(vehicle_tag) {
74
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/media_prev_fav`);
75
+ }
76
+ async media_prev_track(vehicle_tag) {
77
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/media_prev_track`);
78
+ }
79
+ async media_toggle_playback(vehicle_tag) {
80
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/media_toggle_playback`);
81
+ }
82
+ async media_volume_down(vehicle_tag) {
83
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/media_volume_down`);
84
+ }
85
+ async navigation_gps_request(vehicle_tag, lat, lon, order) {
86
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/navigation_gps_request`, null, { lat, lon, order });
87
+ }
88
+ async navigation_request(vehicle_tag, value, locale, type = "share_ext_content_raw") {
89
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/navigation_request`, null, {
90
+ type,
91
+ locale,
92
+ timestamp_ms: String(Date.now()),
93
+ value: {
94
+ "android.intent.extra.TEXT": value,
95
+ },
96
+ });
97
+ }
98
+ async navigation_sc_request(vehicle_tag, id, order) {
99
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/navigation_sc_request`, null, { id, order });
100
+ }
101
+ async remote_auto_seat_climate_request(vehicle_tag, auto_seat_position, auto_climate_on) {
102
+ if (typeof auto_seat_position === "string") {
103
+ auto_seat_position = Seats[auto_seat_position];
104
+ }
105
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/remote_auto_seat_climate_request`, null, {
106
+ auto_seat_position,
107
+ auto_climate_on,
108
+ });
109
+ }
110
+ async remote_auto_steering_wheel_heat_climate_request(vehicle_tag, on) {
111
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/remote_auto_steering_wheel_heat_climate_request`, null, { on });
112
+ }
113
+ async remote_boombox(vehicle_tag, sound = 0) {
114
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/remote_boombox`, null, { sound });
115
+ }
116
+ async remote_seat_cooler_request(vehicle_tag, seat_position, seat_cooler_level) {
117
+ if (typeof seat_position === "string") {
118
+ seat_position = Seats[seat_position];
119
+ }
120
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/remote_seat_cooler_request`, null, {
121
+ seat_position,
122
+ seat_cooler_level,
123
+ });
124
+ }
125
+ async remote_seat_heater_request(vehicle_tag, seat_position, seat_heater_level) {
126
+ if (typeof seat_position === "string") {
127
+ seat_position = Seats[seat_position];
128
+ }
129
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/remote_seat_heater_request`, null, {
130
+ seat_position,
131
+ seat_heater_level,
132
+ });
133
+ }
134
+ async remote_start_drive(vehicle_tag) {
135
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/remote_start_drive`);
136
+ }
137
+ async remote_steering_wheel_heat_level_request(vehicle_tag, level) {
138
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/remote_steering_wheel_heat_level_request`, null, { level });
139
+ }
140
+ async remote_steering_wheel_heater_request(vehicle_tag, on) {
141
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/remote_steering_wheel_heater_request`, null, { on });
142
+ }
143
+ async reset_pin_to_drive_pin(vehicle_tag) {
144
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/reset_pin_to_drive_pin`);
145
+ }
146
+ async reset_valet_pin(vehicle_tag) {
147
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/reset_valet_pin`);
148
+ }
149
+ async schedule_software_update(vehicle_tag, offset_sec) {
150
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/schedule_software_update`, null, { offset_sec });
151
+ }
152
+ async set_bioweapon_mode(vehicle_tag, on, manual_override) {
153
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_bioweapon_mode`, null, { on, manual_override });
154
+ }
155
+ async set_cabin_overheat_protection(vehicle_tag, on, fan_only) {
156
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_cabin_overheat_protection`, null, { on, fan_only });
157
+ }
158
+ async set_charge_limit(vehicle_tag, percent) {
159
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_charge_limit`, null, { percent });
160
+ }
161
+ async set_charging_amps(vehicle_tag, charging_amps) {
162
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_charging_amps`, null, { charging_amps });
163
+ }
164
+ async set_climate_keeper_mode(vehicle_tag, climate_keeper_mode) {
165
+ if (typeof climate_keeper_mode === "string") {
166
+ climate_keeper_mode = ClimateModes[climate_keeper_mode];
167
+ }
168
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_climate_keeper_mode`, null, { climate_keeper_mode });
169
+ }
170
+ async set_cop_temp(vehicle_tag, cop_temp) {
171
+ if (cop_temp >= 90) {
172
+ cop_temp = (cop_temp - 90) / 5;
173
+ }
174
+ else if (cop_temp >= 30) {
175
+ cop_temp = (cop_temp - 30) / 5;
176
+ }
177
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_cop_temp`, null, { cop_temp });
178
+ }
179
+ async set_pin_to_drive(vehicle_tag, on, password) {
180
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_pin_to_drive`, null, { on, password: String(password) });
181
+ }
182
+ async set_preconditioning_max(vehicle_tag, on, manual_override) {
183
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_preconditioning_max`, null, { on, manual_override });
184
+ }
185
+ async set_scheduled_charging(vehicle_tag, enable, time) {
186
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_scheduled_charging`, null, { enable, time });
187
+ }
188
+ async set_scheduled_departure(vehicle_tag, enable = true, preconditioning_enabled = false, preconditioning_weekdays_only = false, departure_time = 0, off_peak_charging_enabled = false, off_peak_charging_weekdays_only = false, end_off_peak_time = 0) {
189
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_scheduled_departure`, null, {
190
+ enable,
191
+ preconditioning_enabled,
192
+ preconditioning_weekdays_only,
193
+ departure_time,
194
+ off_peak_charging_enabled,
195
+ off_peak_charging_weekdays_only,
196
+ end_off_peak_time,
197
+ });
198
+ }
199
+ async set_sentry_mode(vehicle_tag, on) {
200
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_sentry_mode`, null, { on });
201
+ }
202
+ async set_temps(vehicle_tag, driver_temp, passenger_temp) {
203
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_temps`, null, { driver_temp, passenger_temp });
204
+ }
205
+ async set_valet_mode(vehicle_tag, on, password) {
206
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_valet_mode`, null, { on, password: String(password) });
207
+ }
208
+ async set_vehicle_name(vehicle_tag, vehicle_name) {
209
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/set_vehicle_name`, null, { vehicle_name });
210
+ }
211
+ async speed_limit_activate(vehicle_tag, pin) {
212
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/speed_limit_activate`, null, { pin: String(pin) });
213
+ }
214
+ async speed_limit_clear_pin(vehicle_tag, pin) {
215
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/speed_limit_clear_pin`, null, { pin: String(pin) });
216
+ }
217
+ async speed_limit_clear_pin_admin(vehicle_tag) {
218
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/speed_limit_clear_pin_admin`);
219
+ }
220
+ async speed_limit_deactivate(vehicle_tag, pin) {
221
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/speed_limit_deactivate`, null, { pin: String(pin) });
222
+ }
223
+ async speed_limit_set_limit(vehicle_tag, limit_mph) {
224
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/speed_limit_set_limit`, null, { limit_mph });
225
+ }
226
+ async sun_roof_control(vehicle_tag, state) {
227
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/sun_roof_control`, null, { state });
228
+ }
229
+ async take_drivenote(vehicle_tag, note) {
230
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/take_drivenote`, null, { note });
231
+ }
232
+ async trigger_homelink(vehicle_tag, lat, lon, token) {
233
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/trigger_homelink`, null, { token, lat, lon });
234
+ }
235
+ async upcoming_calendar_entries(vehicle_tag, calendar_data) {
236
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/upcoming_calendar_entries`, null, { calendar_data });
237
+ }
238
+ async window_control(vehicle_tag, command, lat, lon) {
239
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/command/window_control`, null, { command, lat, lon });
240
+ }
241
+ async drivers(vehicle_tag) {
242
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/drivers`);
243
+ }
244
+ async drivers_remove(vehicle_tag, share_user_id) {
245
+ return this.parent._request("DELETE", `api/1/vehicles/${vehicle_tag}/drivers`, null, { share_user_id });
246
+ }
247
+ async eligible_subscriptions(vin) {
248
+ return this.parent._request("GET", "/api/1/dx/vehicles/subscriptions/eligibility", { vin });
249
+ }
250
+ async eligible_upgrades(vin) {
251
+ return this.parent._request("GET", "/api/1/dx/vehicles/upgrades/eligibility", { vin });
252
+ }
253
+ async fleet_status(vins) {
254
+ return this.parent._request("POST", "api/1/vehicles/fleet_status", null, { vins });
255
+ }
256
+ async fleet_telemetry_config(config) {
257
+ return this.parent._request("POST", "api/1/vehicles/fleet_telemetry_config", null, config);
258
+ }
259
+ async fleet_telemetry_config_delete(vehicle_tag) {
260
+ return this.parent._request("DELETE", `api/1/vehicles/${vehicle_tag}/fleet_telemetry_config`);
261
+ }
262
+ async fleet_telemetry_config_get(vehicle_tag) {
263
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/fleet_telemetry_config`);
264
+ }
265
+ async list(page, per_page) {
266
+ return this.parent._request("GET", "api/1/vehicles", { page, per_page });
267
+ }
268
+ async mobile_enabled(vehicle_tag) {
269
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/mobile_enabled`);
270
+ }
271
+ async nearby_charging_sites(vehicle_tag, count, radius, detail) {
272
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/nearby_charging_sites`, { count, radius, detail });
273
+ }
274
+ async options(vin) {
275
+ return this.parent._request("GET", "api/1/dx/vehicles/options", { vin });
276
+ }
277
+ async recent_alerts(vehicle_tag) {
278
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/recent_alerts`);
279
+ }
280
+ async release_notes(vehicle_tag, staged, language) {
281
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/release_notes`, { staged, language });
282
+ }
283
+ async service_data(vehicle_tag) {
284
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/service_data`);
285
+ }
286
+ async share_invites(vehicle_tag) {
287
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/invitations`);
288
+ }
289
+ async share_invites_create(vehicle_tag) {
290
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/invitations`);
291
+ }
292
+ async share_invites_redeem(code) {
293
+ return this.parent._request("POST", "api/1/invitations/redeem", { code });
294
+ }
295
+ async share_invites_revoke(vehicle_tag, id) {
296
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/invitations/${id}/revoke`);
297
+ }
298
+ async signed_command(vehicle_tag, routable_message) {
299
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/signed_command`, null, { routable_message });
300
+ }
301
+ async vehicle(vehicle_tag) {
302
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}`);
303
+ }
304
+ async vehicle_data(vehicle_tag, endpoints) {
305
+ if (typeof endpoints === "object")
306
+ endpoints = endpoints.join(";");
307
+ return this.parent._request("GET", `api/1/vehicles/${vehicle_tag}/vehicle_data`, null, { endpoints });
308
+ }
309
+ async wake_up(vehicle_tag) {
310
+ return this.parent._request("POST", `api/1/vehicles/${vehicle_tag}/wake_up`);
311
+ }
312
+ async warranty_details(vin) {
313
+ return this.parent._request("GET", "api/1/dx/warranty/details", { vin });
314
+ }
315
+ }
316
+ //# sourceMappingURL=vehicle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicle.js","sourceRoot":"","sources":["../src/vehicle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,310 @@
1
+ import { ClimateModes, Seats } from "./types.js";
2
+ export default class VehicleSpecific {
3
+ constructor(parent, vin) {
4
+ this.parent = parent;
5
+ this.vin = vin;
6
+ }
7
+ async actuate_truck(which_trunk) {
8
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/actuate_trunk`, null, { which_trunk });
9
+ }
10
+ async adjust_volume(volume) {
11
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/adjust_volume`, null, { volume });
12
+ }
13
+ async auto_conditioning_start() {
14
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/auto_conditioning_start`);
15
+ }
16
+ async auto_conditioning_stop() {
17
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/auto_conditioning_stop`);
18
+ }
19
+ async cancel_software_update() {
20
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/cancel_software_update`);
21
+ }
22
+ async charge_max_range() {
23
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/charge_max_range`);
24
+ }
25
+ async charge_port_door_close() {
26
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/charge_port_door_close`);
27
+ }
28
+ async charge_port_door_open() {
29
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/charge_port_door_open`);
30
+ }
31
+ async charge_standard() {
32
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/charge_standard`);
33
+ }
34
+ async charge_start() {
35
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/charge_start`);
36
+ }
37
+ async charge_stop() {
38
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/charge_stop`);
39
+ }
40
+ async clear_pin_to_drive_admin() {
41
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/clear_pin_to_drive_admin`);
42
+ }
43
+ async door_lock() {
44
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/door_lock`);
45
+ }
46
+ async door_unlock() {
47
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/door_unlock`);
48
+ }
49
+ async erase_user_data() {
50
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/erase_user_data`);
51
+ }
52
+ async flash_lights() {
53
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/flash_lights`);
54
+ }
55
+ async guest_mode(enable) {
56
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/guest_mode`, null, { enable });
57
+ }
58
+ async honk_horn() {
59
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/honk_horn`);
60
+ }
61
+ async media_next_fav() {
62
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/media_next_fav`);
63
+ }
64
+ async media_next_track() {
65
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/media_next_track`);
66
+ }
67
+ async media_prev_fav() {
68
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/media_prev_fav`);
69
+ }
70
+ async media_prev_track() {
71
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/media_prev_track`);
72
+ }
73
+ async media_toggle_playback() {
74
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/media_toggle_playback`);
75
+ }
76
+ async media_volume_down() {
77
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/media_volume_down`);
78
+ }
79
+ async navigation_gps_request(lat, lon, order) {
80
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/navigation_gps_request`, null, { lat, lon, order });
81
+ }
82
+ async navigation_request(value, locale, type = "share_ext_content_raw") {
83
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/navigation_request`, null, {
84
+ type,
85
+ locale,
86
+ timestamp_ms: String(Date.now()),
87
+ value: {
88
+ "android.intent.extra.TEXT": value,
89
+ },
90
+ });
91
+ }
92
+ async navigation_sc_request(id, order) {
93
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/navigation_sc_request`, null, { id, order });
94
+ }
95
+ async remote_auto_seat_climate_request(auto_seat_position, auto_climate_on) {
96
+ if (typeof auto_seat_position === "string") {
97
+ auto_seat_position = Seats[auto_seat_position];
98
+ }
99
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/remote_auto_seat_climate_request`, null, {
100
+ auto_seat_position,
101
+ auto_climate_on,
102
+ });
103
+ }
104
+ async remote_auto_steering_wheel_heat_climate_request(on) {
105
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/remote_auto_steering_wheel_heat_climate_request`, null, { on });
106
+ }
107
+ async remote_boombox(sound = 0) {
108
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/remote_boombox`, null, { sound });
109
+ }
110
+ async remote_seat_cooler_request(seat_position, seat_cooler_level) {
111
+ if (typeof seat_position === "string") {
112
+ seat_position = Seats[seat_position];
113
+ }
114
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/remote_seat_cooler_request`, null, {
115
+ seat_position,
116
+ seat_cooler_level,
117
+ });
118
+ }
119
+ async remote_seat_heater_request(seat_position, seat_heater_level) {
120
+ if (typeof seat_position === "string") {
121
+ seat_position = Seats[seat_position];
122
+ }
123
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/remote_seat_heater_request`, null, {
124
+ seat_position,
125
+ seat_heater_level,
126
+ });
127
+ }
128
+ async remote_start_drive() {
129
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/remote_start_drive`);
130
+ }
131
+ async remote_steering_wheel_heat_level_request(level) {
132
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/remote_steering_wheel_heat_level_request`, null, { level });
133
+ }
134
+ async remote_steering_wheel_heater_request(on) {
135
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/remote_steering_wheel_heater_request`, null, { on });
136
+ }
137
+ async reset_pin_to_drive_pin() {
138
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/reset_pin_to_drive_pin`);
139
+ }
140
+ async reset_valet_pin() {
141
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/reset_valet_pin`);
142
+ }
143
+ async schedule_software_update(offset_sec) {
144
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/schedule_software_update`, null, { offset_sec });
145
+ }
146
+ async set_bioweapon_mode(on, manual_override) {
147
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_bioweapon_mode`, null, { on, manual_override });
148
+ }
149
+ async set_cabin_overheat_protection(on, fan_only) {
150
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_cabin_overheat_protection`, null, { on, fan_only });
151
+ }
152
+ async set_charge_limit(percent) {
153
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_charge_limit`, null, { percent });
154
+ }
155
+ async set_charging_amps(charging_amps) {
156
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_charging_amps`, null, { charging_amps });
157
+ }
158
+ async set_climate_keeper_mode(climate_keeper_mode) {
159
+ if (typeof climate_keeper_mode === "string") {
160
+ climate_keeper_mode = ClimateModes[climate_keeper_mode];
161
+ }
162
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_climate_keeper_mode`, null, { climate_keeper_mode });
163
+ }
164
+ async set_cop_temp(cop_temp) {
165
+ if (cop_temp >= 90) {
166
+ cop_temp = (cop_temp - 90) / 5;
167
+ }
168
+ else if (cop_temp >= 30) {
169
+ cop_temp = (cop_temp - 30) / 5;
170
+ }
171
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_cop_temp`, null, { cop_temp });
172
+ }
173
+ async set_pin_to_drive(on, password) {
174
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_pin_to_drive`, null, { on, password: String(password) });
175
+ }
176
+ async set_preconditioning_max(on, manual_override) {
177
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_preconditioning_max`, null, { on, manual_override });
178
+ }
179
+ async set_scheduled_charging(enable, time) {
180
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_scheduled_charging`, null, { enable, time });
181
+ }
182
+ async set_scheduled_departure(enable = true, preconditioning_enabled = false, preconditioning_weekdays_only = false, departure_time = 0, off_peak_charging_enabled = false, off_peak_charging_weekdays_only = false, end_off_peak_time = 0) {
183
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_scheduled_departure`, null, {
184
+ enable,
185
+ preconditioning_enabled,
186
+ preconditioning_weekdays_only,
187
+ departure_time,
188
+ off_peak_charging_enabled,
189
+ off_peak_charging_weekdays_only,
190
+ end_off_peak_time,
191
+ });
192
+ }
193
+ async set_sentry_mode(on) {
194
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_sentry_mode`, null, { on });
195
+ }
196
+ async set_temps(driver_temp, passenger_temp) {
197
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_temps`, null, { driver_temp, passenger_temp });
198
+ }
199
+ async set_valet_mode(on, password) {
200
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_valet_mode`, null, { on, password: String(password) });
201
+ }
202
+ async set_vehicle_name(vehicle_name) {
203
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/set_vehicle_name`, null, { vehicle_name });
204
+ }
205
+ async speed_limit_activate(pin) {
206
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/speed_limit_activate`, null, { pin: String(pin) });
207
+ }
208
+ async speed_limit_clear_pin(pin) {
209
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/speed_limit_clear_pin`, null, { pin: String(pin) });
210
+ }
211
+ async speed_limit_clear_pin_admin() {
212
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/speed_limit_clear_pin_admin`);
213
+ }
214
+ async speed_limit_deactivate(pin) {
215
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/speed_limit_deactivate`, null, { pin: String(pin) });
216
+ }
217
+ async speed_limit_set_limit(limit_mph) {
218
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/speed_limit_set_limit`, null, { limit_mph });
219
+ }
220
+ async sun_roof_control(state) {
221
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/sun_roof_control`, null, { state });
222
+ }
223
+ async take_drivenote(note) {
224
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/take_drivenote`, null, { note });
225
+ }
226
+ async trigger_homelink(lat, lon, token) {
227
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/trigger_homelink`, null, { token, lat, lon });
228
+ }
229
+ async upcoming_calendar_entries(calendar_data) {
230
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/upcoming_calendar_entries`, null, { calendar_data });
231
+ }
232
+ async window_control(command, lat, lon) {
233
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/command/window_control`, null, { command, lat, lon });
234
+ }
235
+ async drivers() {
236
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/drivers`);
237
+ }
238
+ async drivers_remove(share_user_id) {
239
+ return this.parent.parent._request("DELETE", `api/1/vehicles/${this.vin}/drivers`, null, { share_user_id });
240
+ }
241
+ async eligible_subscriptions(vin) {
242
+ return this.parent.parent._request("GET", "/api/1/dx/vehicles/subscriptions/eligibility", { vin });
243
+ }
244
+ async eligible_upgrades(vin) {
245
+ return this.parent.parent._request("GET", "/api/1/dx/vehicles/upgrades/eligibility", { vin });
246
+ }
247
+ async fleet_status(vins) {
248
+ return this.parent.parent._request("POST", "api/1/vehicles/fleet_status", null, { vins });
249
+ }
250
+ async fleet_telemetry_config(config) {
251
+ return this.parent.parent._request("POST", "api/1/vehicles/fleet_telemetry_config", null, { vins: [this.vin], config });
252
+ }
253
+ async fleet_telemetry_config_delete() {
254
+ return this.parent.parent._request("DELETE", `api/1/vehicles/${this.vin}/fleet_telemetry_config`);
255
+ }
256
+ async fleet_telemetry_config_get() {
257
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/fleet_telemetry_config`);
258
+ }
259
+ async list(page, per_page) {
260
+ return this.parent.parent._request("GET", "api/1/vehicles", { page, per_page });
261
+ }
262
+ async mobile_enabled() {
263
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/mobile_enabled`);
264
+ }
265
+ async nearby_charging_sites(count, radius, detail) {
266
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/nearby_charging_sites`, { count, radius, detail });
267
+ }
268
+ async options(vin) {
269
+ return this.parent.parent._request("GET", "api/1/dx/vehicles/options", { vin });
270
+ }
271
+ async recent_alerts() {
272
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/recent_alerts`);
273
+ }
274
+ async release_notes(staged, language) {
275
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/release_notes`, { staged, language });
276
+ }
277
+ async service_data() {
278
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/service_data`);
279
+ }
280
+ async share_invites() {
281
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/invitations`);
282
+ }
283
+ async share_invites_create() {
284
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/invitations`);
285
+ }
286
+ async share_invites_redeem(code) {
287
+ return this.parent.parent._request("POST", "api/1/invitations/redeem", { code });
288
+ }
289
+ async share_invites_revoke(id) {
290
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/invitations/${id}/revoke`);
291
+ }
292
+ async signed_command(routable_message) {
293
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/signed_command`, null, { routable_message });
294
+ }
295
+ async vehicle() {
296
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}`);
297
+ }
298
+ async vehicle_data(endpoints) {
299
+ if (typeof endpoints === "object")
300
+ endpoints = endpoints.join(";");
301
+ return this.parent.parent._request("GET", `api/1/vehicles/${this.vin}/vehicle_data`, null, { endpoints });
302
+ }
303
+ async wake_up() {
304
+ return this.parent.parent._request("POST", `api/1/vehicles/${this.vin}/wake_up`);
305
+ }
306
+ async warranty_details(vin) {
307
+ return this.parent.parent._request("GET", "api/1/dx/warranty/details", { vin });
308
+ }
309
+ }
310
+ //# sourceMappingURL=vehiclespecific.js.map