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.
package/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # node-tesla-fleet-api
2
+ Tesla Fleet API library for NodeJS
@@ -0,0 +1,29 @@
1
+ export default class Charging {
2
+ constructor(parent) {
3
+ this.parent = parent;
4
+ }
5
+ async history(vin, startTime, endTime, pageNo, pageSize, sortBy, sortOrder) {
6
+ return await this.parent._request("GET", "api/1/dx/charging/history", {
7
+ vin,
8
+ startTime,
9
+ endTime,
10
+ pageNo,
11
+ pageSize,
12
+ sortBy,
13
+ sortOrder,
14
+ });
15
+ }
16
+ async invoice(id) {
17
+ return await this.parent._request("GET", `api/1/dx/charging/invoices/${id}`);
18
+ }
19
+ async sessions(vin, date_from, date_to, limit, offset) {
20
+ return await this.parent._request("GET", "api/1/dx/charging/sessions", {
21
+ vin,
22
+ date_from,
23
+ date_to,
24
+ limit,
25
+ offset,
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=charging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charging.js","sourceRoot":"","sources":["../src/charging.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,QAAQ;IAGzB,YAAY,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAYD,KAAK,CAAC,OAAO,CACT,GAAY,EACZ,SAAkB,EAClB,OAAgB,EAChB,MAAe,EACf,QAAiB,EACjB,MAAe,EACf,SAAkB;QAElB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,2BAA2B,EAAE;YAClE,GAAG;YACH,SAAS;YACT,OAAO;YACP,MAAM;YACN,QAAQ;YACR,MAAM;YACN,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAMD,KAAK,CAAC,OAAO,CAAC,EAAU;QACpB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,8BAA8B,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAWD,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,SAAkB,EAAE,OAAgB,EAAE,KAAc,EAAE,MAAe;QAC9F,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,4BAA4B,EAAE;YACnE,GAAG;YACH,SAAS;YACT,OAAO;YACP,KAAK;YACL,MAAM;SACT,CAAC,CAAC;IACP,CAAC;CACJ"}
package/dist/energy.js ADDED
@@ -0,0 +1,45 @@
1
+ import EnergySpecific from "./energyspecific.js";
2
+ export default class Energy {
3
+ constructor(parent) {
4
+ this.parent = parent;
5
+ }
6
+ specific(energy_site_id) {
7
+ return new EnergySpecific(this, energy_site_id);
8
+ }
9
+ async backup(energy_site_id, backup_reserve_percent) {
10
+ return this.parent._request("POST", `api/1/energy_sites/${energy_site_id}/backup`, null, { backup_reserve_percent });
11
+ }
12
+ async backup_history(energy_site_id, kind, start_date, end_date, period, time_zone) {
13
+ return this.parent._request("GET", `api/1/energy_sites/${energy_site_id}/calendar_history`, null, { kind, start_date, end_date, period, time_zone });
14
+ }
15
+ async charge_history(energy_site_id, kind, start_date, end_date, time_zone) {
16
+ return this.parent._request("GET", `api/1/energy_sites/${energy_site_id}/telemetry_history`, null, { kind, start_date, end_date, time_zone });
17
+ }
18
+ async energy_history(energy_site_id, kind, start_date, end_date, period, time_zone) {
19
+ return this.parent._request("GET", `api/1/energy_sites/${energy_site_id}/calendar_history`, null, { kind, start_date, end_date, period, time_zone });
20
+ }
21
+ async grid_import_export(energy_site_id, disallow_charge_from_grid_with_solar_installed = null, customer_preferred_export_rule = null) {
22
+ return this.parent._request("POST", `api/1/energy_sites/${energy_site_id}/grid_import_export`, null, {
23
+ disallow_charge_from_grid_with_solar_installed,
24
+ customer_preferred_export_rule,
25
+ });
26
+ }
27
+ async live_status(energy_site_id) {
28
+ return this.parent._request("GET", `api/1/energy_sites/${energy_site_id}/live_status`);
29
+ }
30
+ async off_grid_vehicle_charging_reserve(energy_site_id, off_grid_vehicle_charging_reserve_percent) {
31
+ return this.parent._request("POST", `api/1/energy_sites/${energy_site_id}/off_grid_vehicle_charging_reserve`, null, {
32
+ off_grid_vehicle_charging_reserve_percent,
33
+ });
34
+ }
35
+ async operation(energy_site_id, default_real_mode) {
36
+ return this.parent._request("POST", `api/1/energy_sites/${energy_site_id}/operation`, null, { default_real_mode });
37
+ }
38
+ async site_info(energy_site_id) {
39
+ return this.parent._request("GET", `api/1/energy_sites/${energy_site_id}/site_info`);
40
+ }
41
+ async storm_mode(energy_site_id, enabled) {
42
+ return this.parent._request("POST", `api/1/energy_sites/${energy_site_id}/storm_mode`, null, { enabled });
43
+ }
44
+ }
45
+ //# sourceMappingURL=energy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"energy.js","sourceRoot":"","sources":["../src/energy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ export default class EnergySpecific {
2
+ constructor(parent, energy_site_id) {
3
+ this.parent = parent;
4
+ this.energy_site_id = energy_site_id;
5
+ }
6
+ async backup(backup_reserve_percent) {
7
+ return this.parent.parent._request("POST", `api/1/energy_sites/${this.energy_site_id}/backup`, null, { backup_reserve_percent });
8
+ }
9
+ async backup_history(kind, start_date, end_date, period, time_zone) {
10
+ return this.parent.parent._request("GET", `api/1/energy_sites/${this.energy_site_id}/calendar_history`, null, {
11
+ kind,
12
+ start_date,
13
+ end_date,
14
+ period,
15
+ time_zone,
16
+ });
17
+ }
18
+ async charge_history(kind, start_date, end_date, time_zone) {
19
+ return this.parent.parent._request("GET", `api/1/energy_sites/${this.energy_site_id}/telemetry_history`, null, {
20
+ kind,
21
+ start_date,
22
+ end_date,
23
+ time_zone,
24
+ });
25
+ }
26
+ async energy_history(kind, start_date, end_date, period, time_zone) {
27
+ return this.parent.parent._request("GET", `api/1/energy_sites/${this.energy_site_id}/calendar_history`, null, {
28
+ kind,
29
+ start_date,
30
+ end_date,
31
+ period,
32
+ time_zone,
33
+ });
34
+ }
35
+ async grid_import_export(disallow_charge_from_grid_with_solar_installed = null, customer_preferred_export_rule = null) {
36
+ return this.parent.parent._request("POST", `api/1/energy_sites/${this.energy_site_id}/grid_import_export`, null, {
37
+ disallow_charge_from_grid_with_solar_installed,
38
+ customer_preferred_export_rule,
39
+ });
40
+ }
41
+ async live_status() {
42
+ return this.parent.parent._request("GET", `api/1/energy_sites/${this.energy_site_id}/live_status`);
43
+ }
44
+ async off_grid_vehicle_charging_reserve(off_grid_vehicle_charging_reserve_percent) {
45
+ return this.parent.parent._request("POST", `api/1/energy_sites/${this.energy_site_id}/off_grid_vehicle_charging_reserve`, null, {
46
+ off_grid_vehicle_charging_reserve_percent,
47
+ });
48
+ }
49
+ async operation(default_real_mode) {
50
+ return this.parent.parent._request("POST", `api/1/energy_sites/${this.energy_site_id}/operation`, null, { default_real_mode });
51
+ }
52
+ async site_info() {
53
+ return this.parent.parent._request("GET", `api/1/energy_sites/${this.energy_site_id}/site_info`);
54
+ }
55
+ async storm_mode(enabled) {
56
+ return this.parent.parent._request("POST", `api/1/energy_sites/${this.energy_site_id}/storm_mode`, null, { enabled });
57
+ }
58
+ }
59
+ //# sourceMappingURL=energyspecific.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"energyspecific.js","sourceRoot":"","sources":["../src/energyspecific.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ import TeslaFleetApi from "./teslafleetapi.js";
2
+ import Telemetry from "./teslemetry.js";
3
+ import Tessie from "./tessie.js";
4
+ export { Telemetry, TeslaFleetApi, Tessie };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ export default class Partner {
2
+ constructor(parent) {
3
+ this.parent = parent;
4
+ }
5
+ async public_key(domain = null) {
6
+ return this.parent._request("GET", "api/1/partner_accounts/public_key", { domain });
7
+ }
8
+ async register(domain) {
9
+ return this.parent._request("POST", "api/1/partner_accounts", null, { domain });
10
+ }
11
+ async fleet_telemetry_errors(domain) {
12
+ return this.parent._request("GET", "api/1/partner_accounts/fleet_telemetry_errors", { domain });
13
+ }
14
+ }
15
+ //# sourceMappingURL=partner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner.js","sourceRoot":"","sources":["../src/partner.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,OAAO;IAGxB,YAAY,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAOD,KAAK,CAAC,UAAU,CAAC,SAAwB,IAAI;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,mCAAmC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,CAAC;IAOD,KAAK,CAAC,QAAQ,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAOD,KAAK,CAAC,sBAAsB,CAAC,MAAc;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,+CAA+C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACpG,CAAC;CACJ"}
@@ -0,0 +1,82 @@
1
+ import Charging from "./charging.js";
2
+ import Energy from "./energy.js";
3
+ import Partner from "./partner.js";
4
+ import User from "./user.js";
5
+ import Vehicle from "./vehicle.js";
6
+ const servers = {
7
+ na: "https://fleet-api.prd.na.vn.cloud.tesla.com",
8
+ eu: "https://fleet-api.prd.eu.vn.cloud.tesla.com",
9
+ cn: "https://fleet-api.prd.cn.vn.cloud.tesla.cn",
10
+ };
11
+ export default class TeslaFleetApi {
12
+ constructor(options) {
13
+ this.server = null;
14
+ this.accessToken = options.accessToken;
15
+ if (options.server) {
16
+ this.server = options.server;
17
+ }
18
+ else if (options.region && options.region in servers) {
19
+ this.server = servers[options.region];
20
+ }
21
+ else {
22
+ throw new Error("Either server or region must be provided.");
23
+ }
24
+ console.debug(`Using server ${this.server}`);
25
+ if (options.chargingScope !== false) {
26
+ this.charging = new Charging(this);
27
+ }
28
+ if (options.energyScope !== false) {
29
+ this.energy = new Energy(this);
30
+ }
31
+ if (options.userScope !== false) {
32
+ this.user = new User(this);
33
+ }
34
+ if (options.partnerScope !== false) {
35
+ this.partner = new Partner(this);
36
+ }
37
+ if (options.vehicleScope !== false) {
38
+ this.vehicle = new Vehicle(this);
39
+ }
40
+ }
41
+ async _request(method, path, params = null, json = null) {
42
+ if (!this.server) {
43
+ throw new Error("Server was not set at init. Call findServer() first.");
44
+ }
45
+ if (method === "GET" && json !== null) {
46
+ throw new Error("GET requests cannot have a body.");
47
+ }
48
+ console.debug(`Sending request to ${path}`);
49
+ if (params) {
50
+ params = Object.fromEntries(Object.entries(params).filter(([_, v]) => v != null));
51
+ console.debug(`Parameters: ${JSON.stringify(params)}`);
52
+ }
53
+ if (json) {
54
+ json = Object.fromEntries(Object.entries(json).filter(([_, v]) => v != null));
55
+ console.debug(`Body: ${JSON.stringify(json)}`);
56
+ }
57
+ const headers = {
58
+ Authorization: `Bearer ${this.accessToken}`,
59
+ "Content-Type": "application/json",
60
+ "X-Library": `node tesla_fleet_api`,
61
+ };
62
+ const query = new URLSearchParams(params).toString();
63
+ return fetch(`${this.server}/${path}${query}`, {
64
+ method,
65
+ headers,
66
+ body: json ? JSON.stringify(json) : null,
67
+ }).then((res) => {
68
+ console.debug(res.status);
69
+ if (!res.ok) {
70
+ throw new Error(`HTTP status code ${res.status}`);
71
+ }
72
+ if (res.headers.get("content-type").startsWith("application/json")) {
73
+ return res.json();
74
+ }
75
+ throw new Error(`Not JSON ${res.status}`);
76
+ });
77
+ }
78
+ async products() {
79
+ return this._request("GET", "api/1/products");
80
+ }
81
+ }
82
+ //# sourceMappingURL=teslafleetapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teslafleetapi.js","sourceRoot":"","sources":["../src/teslafleetapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import TeslaFleetApi from "./teslafleetapi.js";
2
+ export default class Telemetry extends TeslaFleetApi {
3
+ constructor(accessToken, region = "api") {
4
+ super({ accessToken, server: `https://${region}.teslemetry.com`, partnerScope: false, userScope: false });
5
+ }
6
+ async test() {
7
+ return this._request("GET", "/api/test");
8
+ }
9
+ async metadata(update_region = true) {
10
+ this._request("GET", "/api/metadata").then((metadata) => {
11
+ if (update_region) {
12
+ this.server = `https://${metadata.region}.teslemetry.com`;
13
+ }
14
+ return metadata;
15
+ });
16
+ }
17
+ }
18
+ //# sourceMappingURL=teslemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teslemetry.js","sourceRoot":"","sources":["../src/teslemetry.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAI/C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;IAChD,YAAY,WAAmB,EAAE,SAAiB,KAAK;QACnD,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,MAAM,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9G,CAAC;IAGD,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAGD,KAAK,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI;QAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpD,IAAI,aAAa,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,WAAW,QAAQ,CAAC,MAAM,iBAAiB,CAAC;YAC9D,CAAC;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
package/dist/tessie.js ADDED
@@ -0,0 +1,10 @@
1
+ import TeslaFleetApi from "./teslafleetapi.js";
2
+ export default class Telemetry extends TeslaFleetApi {
3
+ constructor(accessToken) {
4
+ super({ accessToken, server: `https://api.tessie.com`, partnerScope: false, userScope: false });
5
+ }
6
+ async tesla_scopes() {
7
+ return this._request("GET", "auth/tesla_scopes");
8
+ }
9
+ }
10
+ //# sourceMappingURL=tessie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tessie.js","sourceRoot":"","sources":["../src/tessie.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;IAChD,YAAY,WAAmB;QAC3B,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,wBAAwB,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACpG,CAAC;IAGD,KAAK,CAAC,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACrD,CAAC;CACJ"}
package/dist/types.js ADDED
@@ -0,0 +1,11 @@
1
+ export const Seats = {
2
+ FRONT_LEFT: 0,
3
+ FRONT_RIGHT: 1,
4
+ REAR_LEFT: 2,
5
+ REAR_CENTER: 4,
6
+ REAR_RIGHT: 5,
7
+ THIRD_ROW_LEFT: 6,
8
+ THIRD_ROW_RIGHT: 7,
9
+ };
10
+ export const ClimateModes = { Off: 0, Keep: 1, Dog: 2, Camp: 3 };
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;CACrB,CAAC;AAGF,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC"}
package/dist/user.js ADDED
@@ -0,0 +1,21 @@
1
+ export default class User {
2
+ constructor(parent) {
3
+ this.parent = parent;
4
+ }
5
+ async backup_key() {
6
+ return this.parent._request("GET", "api/1/users/backup_key");
7
+ }
8
+ async feature_config() {
9
+ return this.parent._request("GET", "api/1/users/feature_config");
10
+ }
11
+ async me() {
12
+ return this.parent._request("GET", "api/1/users/me");
13
+ }
14
+ async orders() {
15
+ return this.parent._request("GET", "api/1/users/orders");
16
+ }
17
+ async region() {
18
+ return this.parent._request("GET", "api/1/users/region");
19
+ }
20
+ }
21
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,IAAI;IAGrB,YAAY,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAGD,KAAK,CAAC,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACjE,CAAC;IAGD,KAAK,CAAC,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;IACrE,CAAC;IAGD,KAAK,CAAC,EAAE;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAGD,KAAK,CAAC,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAGD,KAAK,CAAC,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;CACJ"}