tesla-fleet-api 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +284 -1
- package/dist/_virtual/_rolldown/runtime.cjs +32 -0
- package/dist/_virtual/_rolldown/runtime.mjs +12 -0
- package/dist/bluetooth/adapters/shared.cjs +38 -0
- package/dist/bluetooth/adapters/shared.mjs +36 -0
- package/dist/bluetooth/async.cjs +121 -0
- package/dist/bluetooth/async.d.cts +10 -0
- package/dist/bluetooth/async.d.mts +10 -0
- package/dist/bluetooth/async.mjs +116 -0
- package/dist/bluetooth/broadcast.cjs +153 -0
- package/dist/bluetooth/broadcast.d.cts +59 -0
- package/dist/bluetooth/broadcast.d.mts +59 -0
- package/dist/bluetooth/broadcast.mjs +151 -0
- package/dist/bluetooth/constants.cjs +99 -0
- package/dist/bluetooth/constants.d.cts +70 -0
- package/dist/bluetooth/constants.d.mts +70 -0
- package/dist/bluetooth/constants.mjs +72 -0
- package/dist/bluetooth/esphome.cjs +292 -0
- package/dist/bluetooth/esphome.d.cts +83 -0
- package/dist/bluetooth/esphome.d.mts +83 -0
- package/dist/bluetooth/esphome.mjs +291 -0
- package/dist/bluetooth/framing.cjs +125 -0
- package/dist/bluetooth/framing.d.cts +45 -0
- package/dist/bluetooth/framing.d.mts +45 -0
- package/dist/bluetooth/framing.mjs +122 -0
- package/dist/bluetooth/homey.cjs +155 -0
- package/dist/bluetooth/homey.d.cts +75 -0
- package/dist/bluetooth/homey.d.mts +75 -0
- package/dist/bluetooth/homey.mjs +150 -0
- package/dist/bluetooth/names.cjs +24 -0
- package/dist/bluetooth/names.d.cts +10 -0
- package/dist/bluetooth/names.d.mts +10 -0
- package/dist/bluetooth/names.mjs +20 -0
- package/dist/bluetooth/noble.cjs +178 -0
- package/dist/bluetooth/noble.d.cts +58 -0
- package/dist/bluetooth/noble.d.mts +58 -0
- package/dist/bluetooth/noble.mjs +177 -0
- package/dist/bluetooth/streamglue.cjs +157 -0
- package/dist/bluetooth/streamglue.d.cts +37 -0
- package/dist/bluetooth/streamglue.d.mts +37 -0
- package/dist/bluetooth/streamglue.mjs +154 -0
- package/dist/bluetooth/teslabluetooth.cjs +67 -0
- package/dist/bluetooth/teslabluetooth.d.cts +41 -0
- package/dist/bluetooth/teslabluetooth.d.mts +41 -0
- package/dist/bluetooth/teslabluetooth.mjs +66 -0
- package/dist/bluetooth/transport.cjs +10 -0
- package/dist/bluetooth/transport.d.cts +95 -0
- package/dist/bluetooth/transport.d.mts +95 -0
- package/dist/bluetooth/transport.mjs +10 -0
- package/dist/bluetooth/vehiclebluetooth.cjs +1272 -0
- package/dist/bluetooth/vehiclebluetooth.d.cts +495 -0
- package/dist/bluetooth/vehiclebluetooth.d.mts +495 -0
- package/dist/bluetooth/vehiclebluetooth.mjs +1270 -0
- package/dist/bluetooth/verify.cjs +93 -0
- package/dist/bluetooth/verify.d.cts +35 -0
- package/dist/bluetooth/verify.d.mts +35 -0
- package/dist/bluetooth/verify.mjs +91 -0
- package/dist/bluetooth.cjs +53 -0
- package/dist/bluetooth.d.cts +10 -0
- package/dist/bluetooth.d.mts +10 -0
- package/dist/bluetooth.mjs +9 -0
- package/dist/charging.cjs +53 -0
- package/dist/charging.d.cts +31 -0
- package/dist/charging.d.mts +30 -0
- package/dist/charging.mjs +53 -0
- package/dist/commands.cjs +1797 -0
- package/dist/commands.d.cts +881 -0
- package/dist/commands.d.mts +881 -0
- package/dist/commands.mjs +1791 -0
- package/dist/const.cjs +322 -0
- package/dist/const.d.cts +308 -0
- package/dist/const.d.mts +308 -0
- package/dist/const.mjs +282 -0
- package/dist/energy.cjs +142 -0
- package/dist/energy.d.cts +101 -0
- package/dist/energy.d.mts +100 -0
- package/dist/energy.mjs +142 -0
- package/dist/energyisland.cjs +38 -0
- package/dist/energyisland.mjs +37 -0
- package/dist/energyparsers.cjs +118 -0
- package/dist/energyparsers.d.cts +39 -0
- package/dist/energyparsers.d.mts +39 -0
- package/dist/energyparsers.mjs +116 -0
- package/dist/energyspecific.cjs +457 -0
- package/dist/energyspecific.d.cts +258 -0
- package/dist/energyspecific.d.mts +258 -0
- package/dist/energyspecific.mjs +451 -0
- package/dist/exceptions.cjs +1488 -0
- package/dist/exceptions.d.cts +1143 -0
- package/dist/exceptions.d.mts +1143 -0
- package/dist/exceptions.mjs +1325 -0
- package/dist/funnel.cjs +297 -0
- package/dist/funnel.d.cts +118 -0
- package/dist/funnel.d.mts +118 -0
- package/dist/funnel.mjs +292 -0
- package/dist/index.cjs +287 -0
- package/dist/index.d.cts +28 -0
- package/dist/index.d.mts +28 -0
- package/dist/index.mjs +27 -0
- package/dist/log.cjs +75 -0
- package/dist/log.d.cts +4 -0
- package/dist/log.d.mts +4 -0
- package/dist/log.mjs +71 -0
- package/dist/oauth.cjs +143 -0
- package/dist/oauth.d.cts +69 -0
- package/dist/oauth.d.mts +69 -0
- package/dist/oauth.mjs +143 -0
- package/dist/partner.cjs +32 -0
- package/dist/partner.d.cts +24 -0
- package/dist/partner.d.mts +23 -0
- package/dist/partner.mjs +32 -0
- package/dist/powerwall/client.cjs +818 -0
- package/dist/powerwall/client.d.cts +297 -0
- package/dist/powerwall/client.d.mts +297 -0
- package/dist/powerwall/client.mjs +807 -0
- package/dist/powerwall/components.cjs +188 -0
- package/dist/powerwall/components.d.cts +45 -0
- package/dist/powerwall/components.d.mts +45 -0
- package/dist/powerwall/components.mjs +182 -0
- package/dist/powerwall/energysite.cjs +216 -0
- package/dist/powerwall/energysite.d.cts +104 -0
- package/dist/powerwall/energysite.d.mts +104 -0
- package/dist/powerwall/energysite.mjs +214 -0
- package/dist/powerwall/exceptions.cjs +59 -0
- package/dist/powerwall/exceptions.d.cts +38 -0
- package/dist/powerwall/exceptions.d.mts +38 -0
- package/dist/powerwall/exceptions.mjs +51 -0
- package/dist/powerwall/gateway.cjs +102 -0
- package/dist/powerwall/gateway.d.cts +57 -0
- package/dist/powerwall/gateway.d.mts +57 -0
- package/dist/powerwall/gateway.mjs +101 -0
- package/dist/powerwall/merge.cjs +163 -0
- package/dist/powerwall/merge.d.cts +63 -0
- package/dist/powerwall/merge.d.mts +63 -0
- package/dist/powerwall/merge.mjs +159 -0
- package/dist/powerwall/models.d.cts +95 -0
- package/dist/powerwall/models.d.mts +95 -0
- package/dist/powerwall/queries.cjs +17 -0
- package/dist/powerwall/queries.mjs +10 -0
- package/dist/powerwall/transport.cjs +232 -0
- package/dist/powerwall/transport.mjs +227 -0
- package/dist/powerwall.cjs +47 -0
- package/dist/powerwall.d.cts +9 -0
- package/dist/powerwall.d.mts +9 -0
- package/dist/powerwall.mjs +8 -0
- package/dist/router/base.cjs +203 -0
- package/dist/router/base.d.cts +112 -0
- package/dist/router/base.d.mts +112 -0
- package/dist/router/base.mjs +200 -0
- package/dist/router/energysite.cjs +65 -0
- package/dist/router/energysite.d.cts +47 -0
- package/dist/router/energysite.d.mts +47 -0
- package/dist/router/energysite.mjs +60 -0
- package/dist/router.cjs +13 -0
- package/dist/router.d.cts +3 -0
- package/dist/router.d.mts +3 -0
- package/dist/router.mjs +3 -0
- package/dist/signing/crypto.cjs +59 -0
- package/dist/signing/crypto.mjs +52 -0
- package/dist/signing/energy.cjs +123 -0
- package/dist/signing/energy.d.cts +45 -0
- package/dist/signing/energy.d.mts +45 -0
- package/dist/signing/energy.mjs +120 -0
- package/dist/signing/jws.cjs +229 -0
- package/dist/signing/jws.d.cts +45 -0
- package/dist/signing/jws.d.mts +45 -0
- package/dist/signing/jws.mjs +211 -0
- package/dist/signing/keys.cjs +191 -0
- package/dist/signing/keys.d.cts +21 -0
- package/dist/signing/keys.d.mts +21 -0
- package/dist/signing/keys.mjs +182 -0
- package/dist/signing/session.cjs +186 -0
- package/dist/signing/session.d.cts +106 -0
- package/dist/signing/session.d.mts +106 -0
- package/dist/signing/session.mjs +184 -0
- package/dist/tariff.cjs +319 -0
- package/dist/tariff.d.cts +40 -0
- package/dist/tariff.d.mts +40 -0
- package/dist/tariff.mjs +317 -0
- package/dist/teslafleetapi.cjs +326 -0
- package/dist/teslafleetapi.d.cts +160 -0
- package/dist/teslafleetapi.d.mts +160 -0
- package/dist/teslafleetapi.mjs +326 -0
- package/dist/teslemetry.cjs +183 -0
- package/dist/teslemetry.d.cts +113 -0
- package/dist/teslemetry.d.mts +113 -0
- package/dist/teslemetry.mjs +181 -0
- package/dist/teslemetryenergy.cjs +287 -0
- package/dist/teslemetryenergy.d.cts +154 -0
- package/dist/teslemetryenergy.d.mts +154 -0
- package/dist/teslemetryenergy.mjs +282 -0
- package/dist/teslemetryvehicle.cjs +407 -0
- package/dist/teslemetryvehicle.d.cts +238 -0
- package/dist/teslemetryvehicle.d.mts +238 -0
- package/dist/teslemetryvehicle.mjs +405 -0
- package/dist/tessie.cjs +71 -0
- package/dist/tessie.d.cts +69 -0
- package/dist/tessie.d.mts +69 -0
- package/dist/tessie.mjs +71 -0
- package/dist/tessievehicle.cjs +514 -0
- package/dist/tessievehicle.d.cts +333 -0
- package/dist/tessievehicle.d.mts +333 -0
- package/dist/tessievehicle.mjs +513 -0
- package/dist/types/commands.d.cts +28 -0
- package/dist/types/commands.d.mts +28 -0
- package/dist/types/live_status.d.cts +30 -0
- package/dist/types/live_status.d.mts +30 -0
- package/dist/types/products.d.cts +58 -0
- package/dist/types/products.d.mts +58 -0
- package/dist/types/responses.d.cts +13 -0
- package/dist/types/responses.d.mts +13 -0
- package/dist/types/site_info.d.cts +154 -0
- package/dist/types/site_info.d.mts +154 -0
- package/dist/types/vehicle.d.cts +33 -0
- package/dist/types/vehicle.d.mts +33 -0
- package/dist/types/vehicle_data.d.cts +278 -0
- package/dist/types/vehicle_data.d.mts +278 -0
- package/dist/types.cjs +0 -0
- package/dist/types.d.cts +9 -0
- package/dist/types.d.mts +9 -0
- package/dist/types.mjs +1 -0
- package/dist/user.cjs +28 -0
- package/dist/user.d.cts +17 -0
- package/dist/user.d.mts +16 -0
- package/dist/user.mjs +28 -0
- package/dist/util.cjs +41 -0
- package/dist/util.d.cts +18 -0
- package/dist/util.d.mts +18 -0
- package/dist/util.mjs +40 -0
- package/dist/vehicle.cjs +847 -0
- package/dist/vehicle.d.cts +566 -0
- package/dist/vehicle.d.mts +565 -0
- package/dist/vehicle.mjs +847 -0
- package/dist/vehiclesigned.cjs +35 -0
- package/dist/vehiclesigned.d.cts +23 -0
- package/dist/vehiclesigned.d.mts +22 -0
- package/dist/vehiclesigned.mjs +35 -0
- package/dist/vehiclespecific.cjs +715 -0
- package/dist/vehiclespecific.d.cts +497 -0
- package/dist/vehiclespecific.d.mts +496 -0
- package/dist/vehiclespecific.mjs +715 -0
- package/package.json +178 -38
- package/dist/charging.d.ts +0 -30
- package/dist/charging.js +0 -51
- package/dist/charging.js.map +0 -1
- package/dist/commands.d.ts +0 -352
- package/dist/commands.js +0 -875
- package/dist/commands.js.map +0 -1
- package/dist/energy.d.ts +0 -94
- package/dist/energy.js +0 -125
- package/dist/energy.js.map +0 -1
- package/dist/energyspecific.d.ts +0 -77
- package/dist/energyspecific.js +0 -97
- package/dist/energyspecific.js.map +0 -1
- package/dist/helpers.d.ts +0 -2
- package/dist/helpers.js +0 -10
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.js +0 -15
- package/dist/index.js.map +0 -1
- package/dist/partner.d.ts +0 -23
- package/dist/partner.js +0 -31
- package/dist/partner.js.map +0 -1
- package/dist/signing/crypto.d.ts +0 -10
- package/dist/signing/crypto.js +0 -26
- package/dist/signing/crypto.js.map +0 -1
- package/dist/signing/errors.d.ts +0 -29
- package/dist/signing/errors.js +0 -40
- package/dist/signing/errors.js.map +0 -1
- package/dist/signing/session.d.ts +0 -69
- package/dist/signing/session.js +0 -102
- package/dist/signing/session.js.map +0 -1
- package/dist/tariff.d.ts +0 -29
- package/dist/tariff.js +0 -302
- package/dist/tariff.js.map +0 -1
- package/dist/teslafleetapi.d.ts +0 -58
- package/dist/teslafleetapi.js +0 -120
- package/dist/teslafleetapi.js.map +0 -1
- package/dist/teslemetry.d.ts +0 -29
- package/dist/teslemetry.js +0 -39
- package/dist/teslemetry.js.map +0 -1
- package/dist/tessie.d.ts +0 -23
- package/dist/tessie.js +0 -28
- package/dist/tessie.js.map +0 -1
- package/dist/types/commands.d.ts +0 -44
- package/dist/types/commands.js +0 -11
- package/dist/types/commands.js.map +0 -1
- package/dist/types/live_status.d.ts +0 -26
- package/dist/types/live_status.js +0 -2
- package/dist/types/live_status.js.map +0 -1
- package/dist/types/products.d.ts +0 -54
- package/dist/types/products.js +0 -2
- package/dist/types/products.js.map +0 -1
- package/dist/types/responses.d.ts +0 -5
- package/dist/types/responses.js +0 -2
- package/dist/types/responses.js.map +0 -1
- package/dist/types/site_info.d.ts +0 -150
- package/dist/types/site_info.js +0 -2
- package/dist/types/site_info.js.map +0 -1
- package/dist/types/vehicle.d.ts +0 -23
- package/dist/types/vehicle.js +0 -10
- package/dist/types/vehicle.js.map +0 -1
- package/dist/types/vehicle_data.d.ts +0 -274
- package/dist/types/vehicle_data.js +0 -2
- package/dist/types/vehicle_data.js.map +0 -1
- package/dist/user.d.ts +0 -16
- package/dist/user.js +0 -26
- package/dist/user.js.map +0 -1
- package/dist/vehicle.d.ts +0 -548
- package/dist/vehicle.js +0 -774
- package/dist/vehicle.js.map +0 -1
- package/dist/vehiclesigned.d.ts +0 -13
- package/dist/vehiclesigned.js +0 -19
- package/dist/vehiclesigned.js.map +0 -1
- package/dist/vehiclespecific.d.ts +0 -432
- package/dist/vehiclespecific.js +0 -601
- package/dist/vehiclespecific.js.map +0 -1
- package/src/charging.ts +0 -66
- package/src/commands.ts +0 -1134
- package/src/energy.ts +0 -217
- package/src/energyspecific.ts +0 -116
- package/src/helpers.ts +0 -11
- package/src/index.ts +0 -21
- package/src/partner.ts +0 -37
- package/src/signing/crypto.ts +0 -29
- package/src/signing/errors.ts +0 -50
- package/src/signing/session.ts +0 -132
- package/src/tariff.ts +0 -375
- package/src/teslafleetapi.ts +0 -182
- package/src/teslemetry.ts +0 -54
- package/src/tessie.ts +0 -42
- package/src/types/commands.ts +0 -62
- package/src/types/live_status.ts +0 -27
- package/src/types/products.ts +0 -61
- package/src/types/responses.ts +0 -1
- package/src/types/site_info.ts +0 -159
- package/src/types/vehicle.ts +0 -33
- package/src/types/vehicle_data.ts +0 -286
- package/src/user.ts +0 -35
- package/src/vehicle.ts +0 -886
- package/src/vehiclesigned.ts +0 -20
- package/src/vehiclespecific.ts +0 -818
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const require_commands = require("./commands.cjs");
|
|
2
|
+
let _teslemetry_tesla_protocol_command_universal_message = require("@teslemetry/tesla-protocol/command/universal_message");
|
|
3
|
+
// src/vehiclesigned.ts
|
|
4
|
+
/**
|
|
5
|
+
* The Fleet API `/signed_command` transport: fills `Commands`'s abstract
|
|
6
|
+
* `_send` seam by base64-encoding the signed `RoutableMessage`, POSTing it to
|
|
7
|
+
* the cloud `signed_command` endpoint, and decoding the reply. Replies here are
|
|
8
|
+
* singular and delivered whole, with no broadcast side channel, so `_send`
|
|
9
|
+
* has no use for `requires` or its options.
|
|
10
|
+
*/
|
|
11
|
+
var VehicleSigned = class extends require_commands.default {
|
|
12
|
+
_transport_name = "fleet";
|
|
13
|
+
/**
|
|
14
|
+
* Configures fleet telemetry via `fleet_telemetry_config_jws`, signing
|
|
15
|
+
* `config` as a Tesla.SS256 JWS with this vehicle's command key, as Tesla's
|
|
16
|
+
* vehicle-command proxy does. Any `iss` or `aud` in `config` is overwritten.
|
|
17
|
+
* @param config The config for this vehicle, or `{ vins, config }` as in Python.
|
|
18
|
+
* @throws SigningDisabled when this vehicle has no key.
|
|
19
|
+
*/
|
|
20
|
+
async fleet_telemetry_config_create(config) {
|
|
21
|
+
const { vins, config: claims } = "vins" in config ? config : {
|
|
22
|
+
vins: [this.vin],
|
|
23
|
+
config
|
|
24
|
+
};
|
|
25
|
+
return this.fleet_telemetry_config_jws(vins, this.signFleetTelemetryConfig(claims));
|
|
26
|
+
}
|
|
27
|
+
async _send(msg) {
|
|
28
|
+
const encoded = Buffer.from(_teslemetry_tesla_protocol_command_universal_message.RoutableMessage.encode(msg).finish()).toString("base64");
|
|
29
|
+
const json = await this.parent.signed_command(this.vin, encoded);
|
|
30
|
+
const resp = _teslemetry_tesla_protocol_command_universal_message.RoutableMessage.decode(Buffer.from(json.response, "base64"));
|
|
31
|
+
this.validate_msg(resp, Buffer.from(msg.uuid), msg.toDestination?.domain);
|
|
32
|
+
return resp;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.default = VehicleSigned;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import Commands from "./commands.cjs";
|
|
2
|
+
import { FleetTelemetryConfig } from "./types/commands.cjs";
|
|
3
|
+
import { RoutableMessage } from "@teslemetry/tesla-protocol/command/universal_message";
|
|
4
|
+
/**
|
|
5
|
+
* The Fleet API `/signed_command` transport: fills `Commands`'s abstract
|
|
6
|
+
* `_send` seam by base64-encoding the signed `RoutableMessage`, POSTing it to
|
|
7
|
+
* the cloud `signed_command` endpoint, and decoding the reply. Replies here are
|
|
8
|
+
* singular and delivered whole, with no broadcast side channel, so `_send`
|
|
9
|
+
* has no use for `requires` or its options.
|
|
10
|
+
*/
|
|
11
|
+
declare class VehicleSigned extends Commands {
|
|
12
|
+
readonly _transport_name: string;
|
|
13
|
+
/**
|
|
14
|
+
* Configures fleet telemetry via `fleet_telemetry_config_jws`, signing
|
|
15
|
+
* `config` as a Tesla.SS256 JWS with this vehicle's command key, as Tesla's
|
|
16
|
+
* vehicle-command proxy does. Any `iss` or `aud` in `config` is overwritten.
|
|
17
|
+
* @param config The config for this vehicle, or `{ vins, config }` as in Python.
|
|
18
|
+
* @throws SigningDisabled when this vehicle has no key.
|
|
19
|
+
*/
|
|
20
|
+
fleet_telemetry_config_create(config: FleetTelemetryConfig | FleetTelemetryConfig["config"]): Promise<Record<string, any>>;
|
|
21
|
+
protected _send(msg: RoutableMessage): Promise<RoutableMessage>;
|
|
22
|
+
}
|
|
23
|
+
export = VehicleSigned;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Commands from "./commands.mjs";
|
|
2
|
+
import { FleetTelemetryConfig } from "./types/commands.mjs";
|
|
3
|
+
import { RoutableMessage } from "@teslemetry/tesla-protocol/command/universal_message";
|
|
4
|
+
/**
|
|
5
|
+
* The Fleet API `/signed_command` transport: fills `Commands`'s abstract
|
|
6
|
+
* `_send` seam by base64-encoding the signed `RoutableMessage`, POSTing it to
|
|
7
|
+
* the cloud `signed_command` endpoint, and decoding the reply. Replies here are
|
|
8
|
+
* singular and delivered whole, with no broadcast side channel, so `_send`
|
|
9
|
+
* has no use for `requires` or its options.
|
|
10
|
+
*/
|
|
11
|
+
export default class VehicleSigned extends Commands {
|
|
12
|
+
readonly _transport_name: string;
|
|
13
|
+
/**
|
|
14
|
+
* Configures fleet telemetry via `fleet_telemetry_config_jws`, signing
|
|
15
|
+
* `config` as a Tesla.SS256 JWS with this vehicle's command key, as Tesla's
|
|
16
|
+
* vehicle-command proxy does. Any `iss` or `aud` in `config` is overwritten.
|
|
17
|
+
* @param config The config for this vehicle, or `{ vins, config }` as in Python.
|
|
18
|
+
* @throws SigningDisabled when this vehicle has no key.
|
|
19
|
+
*/
|
|
20
|
+
fleet_telemetry_config_create(config: FleetTelemetryConfig | FleetTelemetryConfig["config"]): Promise<Record<string, any>>;
|
|
21
|
+
protected _send(msg: RoutableMessage): Promise<RoutableMessage>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import Commands from "./commands.mjs";
|
|
2
|
+
import { RoutableMessage } from "@teslemetry/tesla-protocol/command/universal_message";
|
|
3
|
+
// src/vehiclesigned.ts
|
|
4
|
+
/**
|
|
5
|
+
* The Fleet API `/signed_command` transport: fills `Commands`'s abstract
|
|
6
|
+
* `_send` seam by base64-encoding the signed `RoutableMessage`, POSTing it to
|
|
7
|
+
* the cloud `signed_command` endpoint, and decoding the reply. Replies here are
|
|
8
|
+
* singular and delivered whole, with no broadcast side channel, so `_send`
|
|
9
|
+
* has no use for `requires` or its options.
|
|
10
|
+
*/
|
|
11
|
+
var VehicleSigned = class extends Commands {
|
|
12
|
+
_transport_name = "fleet";
|
|
13
|
+
/**
|
|
14
|
+
* Configures fleet telemetry via `fleet_telemetry_config_jws`, signing
|
|
15
|
+
* `config` as a Tesla.SS256 JWS with this vehicle's command key, as Tesla's
|
|
16
|
+
* vehicle-command proxy does. Any `iss` or `aud` in `config` is overwritten.
|
|
17
|
+
* @param config The config for this vehicle, or `{ vins, config }` as in Python.
|
|
18
|
+
* @throws SigningDisabled when this vehicle has no key.
|
|
19
|
+
*/
|
|
20
|
+
async fleet_telemetry_config_create(config) {
|
|
21
|
+
const { vins, config: claims } = "vins" in config ? config : {
|
|
22
|
+
vins: [this.vin],
|
|
23
|
+
config
|
|
24
|
+
};
|
|
25
|
+
return this.fleet_telemetry_config_jws(vins, this.signFleetTelemetryConfig(claims));
|
|
26
|
+
}
|
|
27
|
+
async _send(msg) {
|
|
28
|
+
const encoded = Buffer.from(RoutableMessage.encode(msg).finish()).toString("base64");
|
|
29
|
+
const json = await this.parent.signed_command(this.vin, encoded);
|
|
30
|
+
const resp = RoutableMessage.decode(Buffer.from(json.response, "base64"));
|
|
31
|
+
this.validate_msg(resp, Buffer.from(msg.uuid), msg.toDestination?.domain);
|
|
32
|
+
return resp;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export { VehicleSigned as default };
|