tesla-fleet-api 0.2.2 → 0.4.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 (192) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +22 -0
  2. package/dist/_virtual/_rolldown/runtime.mjs +12 -0
  3. package/dist/charging.cjs +53 -0
  4. package/dist/charging.d.cts +31 -0
  5. package/dist/charging.d.mts +30 -0
  6. package/dist/charging.mjs +53 -0
  7. package/dist/commands.cjs +802 -0
  8. package/dist/commands.d.cts +350 -0
  9. package/dist/commands.d.mts +349 -0
  10. package/dist/commands.mjs +800 -0
  11. package/dist/const.cjs +300 -0
  12. package/dist/const.d.cts +287 -0
  13. package/dist/const.d.mts +287 -0
  14. package/dist/const.mjs +263 -0
  15. package/dist/energy.cjs +137 -0
  16. package/dist/energy.d.cts +95 -0
  17. package/{src/energy.ts → dist/energy.d.mts} +17 -140
  18. package/dist/energy.mjs +137 -0
  19. package/dist/energyspecific.cjs +99 -0
  20. package/dist/energyspecific.d.cts +78 -0
  21. package/dist/energyspecific.d.mts +77 -0
  22. package/dist/energyspecific.mjs +99 -0
  23. package/dist/exceptions.cjs +1487 -0
  24. package/dist/exceptions.d.cts +1142 -0
  25. package/dist/exceptions.d.mts +1142 -0
  26. package/dist/exceptions.mjs +1324 -0
  27. package/dist/index.cjs +226 -0
  28. package/dist/index.d.cts +14 -0
  29. package/dist/index.d.mts +14 -0
  30. package/dist/index.mjs +14 -0
  31. package/dist/partner.cjs +32 -0
  32. package/dist/partner.d.cts +24 -0
  33. package/dist/partner.d.mts +23 -0
  34. package/dist/partner.mjs +32 -0
  35. package/dist/router.cjs +0 -0
  36. package/dist/router.d.cts +1 -0
  37. package/dist/router.d.mts +1 -0
  38. package/dist/router.mjs +1 -0
  39. package/dist/signing/crypto.cjs +31 -0
  40. package/dist/signing/crypto.mjs +27 -0
  41. package/dist/signing/session.cjs +112 -0
  42. package/dist/signing/session.d.cts +69 -0
  43. package/dist/signing/session.d.mts +69 -0
  44. package/dist/signing/session.mjs +110 -0
  45. package/dist/tariff.cjs +292 -0
  46. package/dist/{tariff.d.ts → tariff.d.cts} +17 -17
  47. package/dist/tariff.d.mts +29 -0
  48. package/dist/tariff.mjs +291 -0
  49. package/dist/teslafleetapi.cjs +125 -0
  50. package/dist/teslafleetapi.d.cts +64 -0
  51. package/dist/teslafleetapi.d.mts +64 -0
  52. package/dist/teslafleetapi.mjs +125 -0
  53. package/dist/teslemetry.cjs +36 -0
  54. package/dist/teslemetry.d.cts +23 -0
  55. package/dist/teslemetry.d.mts +23 -0
  56. package/dist/teslemetry.mjs +36 -0
  57. package/dist/tessie.cjs +34 -0
  58. package/dist/tessie.d.cts +23 -0
  59. package/dist/tessie.d.mts +23 -0
  60. package/dist/tessie.mjs +34 -0
  61. package/dist/types/commands.d.cts +28 -0
  62. package/dist/types/commands.d.mts +28 -0
  63. package/dist/types/live_status.d.cts +30 -0
  64. package/dist/types/live_status.d.mts +30 -0
  65. package/dist/types/products.d.cts +58 -0
  66. package/dist/types/products.d.mts +58 -0
  67. package/dist/types/responses.d.cts +9 -0
  68. package/dist/types/responses.d.mts +9 -0
  69. package/dist/types/site_info.d.cts +154 -0
  70. package/dist/types/site_info.d.mts +154 -0
  71. package/dist/types/vehicle.d.cts +27 -0
  72. package/dist/types/vehicle.d.mts +27 -0
  73. package/dist/types/vehicle_data.d.cts +278 -0
  74. package/dist/types/vehicle_data.d.mts +278 -0
  75. package/dist/types.cjs +0 -0
  76. package/dist/types.d.cts +9 -0
  77. package/dist/types.d.mts +9 -0
  78. package/dist/types.mjs +1 -0
  79. package/dist/user.cjs +28 -0
  80. package/dist/user.d.cts +17 -0
  81. package/dist/user.d.mts +16 -0
  82. package/dist/user.mjs +28 -0
  83. package/dist/vehicle.cjs +804 -0
  84. package/dist/vehicle.d.cts +550 -0
  85. package/dist/vehicle.d.mts +549 -0
  86. package/dist/vehicle.mjs +804 -0
  87. package/dist/vehiclesigned.cjs +20 -0
  88. package/dist/vehiclesigned.d.cts +14 -0
  89. package/dist/{vehiclesigned.d.ts → vehiclesigned.d.mts} +3 -3
  90. package/dist/vehiclesigned.mjs +20 -0
  91. package/dist/vehiclespecific.cjs +604 -0
  92. package/dist/vehiclespecific.d.cts +433 -0
  93. package/dist/vehiclespecific.d.mts +432 -0
  94. package/dist/vehiclespecific.mjs +604 -0
  95. package/package.json +108 -35
  96. package/dist/charging.d.ts +0 -30
  97. package/dist/charging.js +0 -51
  98. package/dist/charging.js.map +0 -1
  99. package/dist/commands.d.ts +0 -352
  100. package/dist/commands.js +0 -875
  101. package/dist/commands.js.map +0 -1
  102. package/dist/energy.d.ts +0 -94
  103. package/dist/energy.js +0 -125
  104. package/dist/energy.js.map +0 -1
  105. package/dist/energyspecific.d.ts +0 -77
  106. package/dist/energyspecific.js +0 -97
  107. package/dist/energyspecific.js.map +0 -1
  108. package/dist/helpers.d.ts +0 -2
  109. package/dist/helpers.js +0 -10
  110. package/dist/helpers.js.map +0 -1
  111. package/dist/index.d.ts +0 -14
  112. package/dist/index.js +0 -14
  113. package/dist/index.js.map +0 -1
  114. package/dist/partner.d.ts +0 -23
  115. package/dist/partner.js +0 -31
  116. package/dist/partner.js.map +0 -1
  117. package/dist/signing/crypto.d.ts +0 -10
  118. package/dist/signing/crypto.js +0 -26
  119. package/dist/signing/crypto.js.map +0 -1
  120. package/dist/signing/errors.d.ts +0 -29
  121. package/dist/signing/errors.js +0 -40
  122. package/dist/signing/errors.js.map +0 -1
  123. package/dist/signing/session.d.ts +0 -69
  124. package/dist/signing/session.js +0 -102
  125. package/dist/signing/session.js.map +0 -1
  126. package/dist/tariff.js +0 -302
  127. package/dist/tariff.js.map +0 -1
  128. package/dist/teslafleetapi.d.ts +0 -58
  129. package/dist/teslafleetapi.js +0 -120
  130. package/dist/teslafleetapi.js.map +0 -1
  131. package/dist/teslemetry.d.ts +0 -29
  132. package/dist/teslemetry.js +0 -39
  133. package/dist/teslemetry.js.map +0 -1
  134. package/dist/tessie.d.ts +0 -23
  135. package/dist/tessie.js +0 -28
  136. package/dist/tessie.js.map +0 -1
  137. package/dist/types/commands.d.ts +0 -44
  138. package/dist/types/commands.js +0 -11
  139. package/dist/types/commands.js.map +0 -1
  140. package/dist/types/live_status.d.ts +0 -26
  141. package/dist/types/live_status.js +0 -2
  142. package/dist/types/live_status.js.map +0 -1
  143. package/dist/types/products.d.ts +0 -54
  144. package/dist/types/products.js +0 -2
  145. package/dist/types/products.js.map +0 -1
  146. package/dist/types/responses.d.ts +0 -5
  147. package/dist/types/responses.js +0 -2
  148. package/dist/types/responses.js.map +0 -1
  149. package/dist/types/site_info.d.ts +0 -150
  150. package/dist/types/site_info.js +0 -2
  151. package/dist/types/site_info.js.map +0 -1
  152. package/dist/types/vehicle.d.ts +0 -22
  153. package/dist/types/vehicle.js +0 -2
  154. package/dist/types/vehicle.js.map +0 -1
  155. package/dist/types/vehicle_data.d.ts +0 -274
  156. package/dist/types/vehicle_data.js +0 -2
  157. package/dist/types/vehicle_data.js.map +0 -1
  158. package/dist/user.d.ts +0 -16
  159. package/dist/user.js +0 -26
  160. package/dist/user.js.map +0 -1
  161. package/dist/vehicle.d.ts +0 -548
  162. package/dist/vehicle.js +0 -781
  163. package/dist/vehicle.js.map +0 -1
  164. package/dist/vehiclesigned.js +0 -19
  165. package/dist/vehiclesigned.js.map +0 -1
  166. package/dist/vehiclespecific.d.ts +0 -432
  167. package/dist/vehiclespecific.js +0 -601
  168. package/dist/vehiclespecific.js.map +0 -1
  169. package/src/charging.ts +0 -66
  170. package/src/commands.ts +0 -1134
  171. package/src/energyspecific.ts +0 -116
  172. package/src/helpers.ts +0 -11
  173. package/src/index.ts +0 -20
  174. package/src/partner.ts +0 -37
  175. package/src/signing/crypto.ts +0 -29
  176. package/src/signing/errors.ts +0 -50
  177. package/src/signing/session.ts +0 -132
  178. package/src/tariff.ts +0 -375
  179. package/src/teslafleetapi.ts +0 -182
  180. package/src/teslemetry.ts +0 -54
  181. package/src/tessie.ts +0 -42
  182. package/src/types/commands.ts +0 -62
  183. package/src/types/live_status.ts +0 -27
  184. package/src/types/products.ts +0 -61
  185. package/src/types/responses.ts +0 -1
  186. package/src/types/site_info.ts +0 -159
  187. package/src/types/vehicle.ts +0 -23
  188. package/src/types/vehicle_data.ts +0 -286
  189. package/src/user.ts +0 -35
  190. package/src/vehicle.ts +0 -895
  191. package/src/vehiclesigned.ts +0 -20
  192. package/src/vehiclespecific.ts +0 -818
@@ -1,120 +0,0 @@
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.debug = false;
15
- this.debug = !!options.debug;
16
- this.accessToken = options.accessToken;
17
- if (options.server) {
18
- this.server = options.server;
19
- }
20
- else if (options.region && options.region in servers) {
21
- this.server = servers[options.region];
22
- }
23
- else {
24
- throw new Error("Either server or region must be provided.");
25
- }
26
- this.debug && console.debug(`Using server ${this.server}`);
27
- if (options.chargingScope !== false) {
28
- this.charging = new Charging(this);
29
- }
30
- if (options.energyScope !== false) {
31
- this.energy = new Energy(this);
32
- }
33
- if (options.userScope !== false) {
34
- this.user = new User(this);
35
- }
36
- if (options.partnerScope !== false) {
37
- this.partner = new Partner(this);
38
- }
39
- if (options.vehicleScope !== false) {
40
- this.vehicle = new Vehicle(this);
41
- }
42
- }
43
- async _response(resp) {
44
- return { status: resp.status, data: await resp.json() };
45
- }
46
- /**
47
- * Make a request to the Tesla Fleet API.
48
- * @param method
49
- * @param path
50
- * @param params
51
- * @param json
52
- * @returns
53
- */
54
- async _request(method, path, params = null, json = null) {
55
- if (!this.server) {
56
- throw new Error("Server was not set at init. Call findServer() first.");
57
- }
58
- if (method === "GET" && json !== null) {
59
- throw new Error("GET requests cannot have a body.");
60
- }
61
- this.debug && console.debug(`Sending request to ${path}`);
62
- // Remove null and undefined values from params and json
63
- if (params) {
64
- params = Object.fromEntries(Object.entries(params).filter(([_, v]) => v != null));
65
- this.debug && console.debug(`Parameters: ${JSON.stringify(params)}`);
66
- }
67
- if (json) {
68
- json = Object.fromEntries(Object.entries(json).filter(([_, v]) => v != null));
69
- this.debug && console.debug(`Body: ${JSON.stringify(json)}`);
70
- }
71
- const headers = {
72
- Authorization: `Bearer ${this.accessToken}`,
73
- "Content-Type": "application/json",
74
- "X-Library": `node tesla_fleet_api`,
75
- };
76
- const query = params ? "?" + new URLSearchParams(params).toString() : "";
77
- return fetch(`${this.server}/${path}${query}`, {
78
- method,
79
- headers,
80
- body: json ? JSON.stringify(json) : null,
81
- })
82
- .then(this._response)
83
- .then(({ status, data }) => {
84
- if (status <= 299)
85
- return data;
86
- return Promise.reject({ status, data });
87
- }, (e) => Promise.reject({ error: e }));
88
- }
89
- /**
90
- * Returns products mapped to user.
91
- * @returns An array of products including both vehicles and energy sites.
92
- */
93
- async products() {
94
- return this._request("GET", "api/1/products").then(({ response }) => response);
95
- }
96
- /**
97
- * Return Tesla products separated into vehicles and energy_sites
98
- * @returns A dictionary of vehicles and energy sites, each with an array of those products
99
- */
100
- async products_by_type() {
101
- return this.products().then((products) => ({
102
- vehicles: products.filter((product) => "vin" in product),
103
- energy_sites: products.filter((product) => "energy_site_id" in product),
104
- }));
105
- }
106
- async loadPrivateKey(path) {
107
- // Try read file, if not create it
108
- return (await import("fs")).promises.readFile(path, "utf8").then((key) => {
109
- this.accessToken = key;
110
- }).catch(async () => {
111
- // Create SECP256R1 private key and save it as a pem file at path
112
- const { privateKey } = (await import("crypto")).generateKeyPairSync("ec", {
113
- namedCurve: "secp256r1",
114
- publicKeyEncoding: { type: "spki", format: "pem" },
115
- privateKeyEncoding: { type: "pkcs8", format: "pem" },
116
- });
117
- });
118
- }
119
- }
120
- //# sourceMappingURL=teslafleetapi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"teslafleetapi.js","sourceRoot":"","sources":["../src/teslafleetapi.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import TeslaFleetApi from "./teslafleetapi.js";
2
- import { Scope } from "./types/commands.js";
3
- type Region = "na" | "eu" | "api";
4
- type Test = {
5
- response: boolean;
6
- };
7
- type Metadata = {
8
- uid: string;
9
- region: "NA" | "EU";
10
- scopes: Scope[];
11
- vins: string[];
12
- };
13
- export default class Telemetry extends TeslaFleetApi {
14
- constructor(accessToken: string, region?: Region);
15
- _response(resp: Response): Promise<{
16
- status: number;
17
- data: any;
18
- }>;
19
- /**
20
- * Test the connection to Teslemetry
21
- */
22
- test(): Promise<Test>;
23
- /**
24
- * Get details about your Teslemetry account
25
- * @param update_region Update the server URL based on the region in the metadata
26
- */
27
- metadata(update_region?: boolean): Promise<Metadata>;
28
- }
29
- export {};
@@ -1,39 +0,0 @@
1
- import TeslaFleetApi from "./teslafleetapi.js";
2
- export default class Telemetry extends TeslaFleetApi {
3
- constructor(accessToken, region = "api") {
4
- super({
5
- accessToken,
6
- server: `https://${region}.teslemetry.com`,
7
- partnerScope: false,
8
- userScope: false,
9
- });
10
- }
11
- async _response(resp) {
12
- if (resp.headers.has("x-region")) {
13
- const region = resp.headers.get("x-region")?.toLowerCase();
14
- if (region) {
15
- this.server = `https://${region}.teslemetry.com`;
16
- }
17
- }
18
- return super._response(resp);
19
- }
20
- /**
21
- * Test the connection to Teslemetry
22
- */
23
- async test() {
24
- return this._request("GET", "/api/test").then(({ response }) => response);
25
- }
26
- /**
27
- * Get details about your Teslemetry account
28
- * @param update_region Update the server URL based on the region in the metadata
29
- */
30
- async metadata(update_region = true) {
31
- return this._request("GET", "/api/metadata").then((metadata) => {
32
- if (update_region) {
33
- this.server = `https://${metadata.region.toLowerCase()}.teslemetry.com`;
34
- }
35
- return metadata;
36
- });
37
- }
38
- }
39
- //# sourceMappingURL=teslemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"teslemetry.js","sourceRoot":"","sources":["../src/teslemetry.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAc/C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;IAClD,YAAY,WAAmB,EAAE,SAAiB,KAAK;QACrD,KAAK,CAAC;YACJ,WAAW;YACX,MAAM,EAAE,WAAW,MAAM,iBAAiB;YAC1C,YAAY,EAAE,KAAK;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAc;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;YAC3D,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,GAAG,WAAW,MAAM,iBAAiB,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7D,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,GAAG,WAAW,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC;YAC1E,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
package/dist/tessie.d.ts DELETED
@@ -1,23 +0,0 @@
1
- import TeslaFleetApi from "./teslafleetapi.js";
2
- import { Scope } from "./types/commands.js";
3
- import { VehicleDataResponse } from "./types/vehicle_data.js";
4
- type TessieVehicleResponse = {
5
- vin: string;
6
- is_active: boolean;
7
- last_state: VehicleDataResponse;
8
- };
9
- export default class Telemetry extends TeslaFleetApi {
10
- constructor(accessToken: string);
11
- /**
12
- * Get your approved Tesla scopes
13
- */
14
- tesla_scopes(): Promise<Scope[]>;
15
- metadata(): Promise<{
16
- scopes: Scope[];
17
- }>;
18
- status(vin: string): Promise<"asleep" | "waiting_for_sleep" | "awake">;
19
- state(vin: string, use_cache?: boolean): Promise<VehicleDataResponse>;
20
- vehicles(only_active?: boolean): Promise<TessieVehicleResponse[]>;
21
- wake(vin: string): Promise<boolean>;
22
- }
23
- export {};
package/dist/tessie.js DELETED
@@ -1,28 +0,0 @@
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
- /**
7
- * Get your approved Tesla scopes
8
- */
9
- async tesla_scopes() {
10
- return this._request("GET", "auth/tesla_scopes").then(({ scopes }) => scopes);
11
- }
12
- async metadata() {
13
- return this._request("GET", "auth/tesla_scopes");
14
- }
15
- async status(vin) {
16
- return this._request("GET", `${vin}/status`).then(({ status }) => status);
17
- }
18
- async state(vin, use_cache = true) {
19
- return this._request("GET", `${vin}/state`, { use_cache });
20
- }
21
- async vehicles(only_active = false) {
22
- return this._request("GET", "vehicles", { only_active }).then(({ results }) => results);
23
- }
24
- async wake(vin) {
25
- return this._request("POST", `${vin}/wake`).then(({ result }) => result);
26
- }
27
- }
28
- //# sourceMappingURL=tessie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tessie.js","sourceRoot":"","sources":["../src/tessie.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAU/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;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,YAAqB,IAAI;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,cAAuB,KAAK;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;CACJ"}
@@ -1,44 +0,0 @@
1
- export interface CommandResponse {
2
- response: {
3
- result: boolean;
4
- reason: string;
5
- };
6
- error?: string;
7
- }
8
- export type Scope = "user_data" | "vehicle_device_data" | "vehicle_cmds" | "vehicle_charging_cmds" | "energy_device_data" | "energy_cmds" | "offline_access" | "openid";
9
- export type Trunk = "front" | "rear";
10
- export declare const Seats: {
11
- FRONT_LEFT: number;
12
- FRONT_RIGHT: number;
13
- REAR_LEFT: number;
14
- REAR_CENTER: number;
15
- REAR_RIGHT: number;
16
- THIRD_ROW_LEFT: number;
17
- THIRD_ROW_RIGHT: number;
18
- };
19
- export type Seat = keyof typeof Seats;
20
- export type Level = 0 | 1 | 2 | 3;
21
- export declare const ClimateModes: {
22
- Off: number;
23
- Keep: number;
24
- Dog: number;
25
- Camp: number;
26
- };
27
- export type ClimateMode = keyof typeof ClimateModes;
28
- export type VehicleDataEndpoint = "charge_state" | "climate_state" | "closures_state" | "drive_state" | "gui_settings" | "location_data" | "vehicle_config" | "vehicle_state" | "vehicle_data_combo";
29
- export type AlertTypes = "customer" | "service";
30
- export interface FleetTelemetryConfig {
31
- vins: string[];
32
- config: {
33
- hostname: string;
34
- ca: string;
35
- fields: {
36
- [key: string]: {
37
- interval_seconds: number;
38
- };
39
- };
40
- alert_types: AlertTypes[];
41
- exp: number;
42
- port: number;
43
- };
44
- }
@@ -1,11 +0,0 @@
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=commands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/types/commands.ts"],"names":[],"mappings":"AAqBA,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"}
@@ -1,26 +0,0 @@
1
- export type LiveStatusResponse = {
2
- solar_power?: number;
3
- energy_left?: number;
4
- total_pack_energy?: number;
5
- percentage_charged?: number;
6
- backup_capable?: boolean;
7
- battery_power?: number;
8
- load_power?: number;
9
- grid_status?: string;
10
- grid_services_active?: boolean;
11
- grid_power?: number;
12
- grid_services_power?: number;
13
- generator_power?: number;
14
- island_status?: string;
15
- storm_mode_active?: boolean;
16
- timestamp: Date;
17
- wall_connectors?: WallConnector[];
18
- };
19
- export type WallConnector = {
20
- din: string;
21
- vin?: string;
22
- wall_connector_state: number;
23
- wall_connector_fault_state: number;
24
- wall_connector_power: number;
25
- ocpp_status: number;
26
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=live_status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live_status.js","sourceRoot":"","sources":["../../src/types/live_status.ts"],"names":[],"mappings":""}
@@ -1,54 +0,0 @@
1
- import { VehicleResponse } from "./vehicle.js";
2
- import { VehicleConfig } from "./vehicle_data.js";
3
- export type ProductsData = {
4
- response: ProductsResponse;
5
- count: number;
6
- };
7
- export type ProductsResponse = (VehicleProduct | EnergyProduct)[];
8
- export type VehicleProduct = VehicleResponse & {
9
- vehicle_config: VehicleConfig;
10
- command_signing: string;
11
- release_notes_supported: boolean;
12
- };
13
- export type EnergyProduct = {
14
- energy_site_id: number;
15
- resource_type: string;
16
- site_name: string;
17
- id: string;
18
- gateway_id: string;
19
- asset_site_id: string;
20
- warp_site_number: string;
21
- energy_left: number;
22
- total_pack_energy: number;
23
- percentage_charged: number;
24
- battery_type: string;
25
- backup_capable: boolean;
26
- battery_power: number;
27
- go_off_grid_test_banner_enabled: null | boolean;
28
- storm_mode_enabled: boolean;
29
- powerwall_onboarding_settings_set: boolean;
30
- powerwall_tesla_electric_interested_in: null | boolean;
31
- vpp_tour_enabled: null | boolean;
32
- sync_grid_alert_enabled: boolean;
33
- breaker_alert_enabled: boolean;
34
- components: Components;
35
- features: Features;
36
- };
37
- export type Components = {
38
- battery: boolean;
39
- battery_type: string;
40
- solar: boolean;
41
- solar_type: string;
42
- grid: boolean;
43
- load_meter: boolean;
44
- market_type: string;
45
- wall_connectors: WallConnector[];
46
- };
47
- export type WallConnector = {
48
- device_id: string;
49
- din: string;
50
- is_active: boolean;
51
- };
52
- export type Features = {
53
- rate_plan_manager_no_pricing_constraint: boolean;
54
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=products.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/types/products.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export type OptionsResponse = {
2
- code: string;
3
- displayName: string;
4
- isActive: boolean;
5
- }[];
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=responses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/types/responses.ts"],"names":[],"mappings":""}
@@ -1,150 +0,0 @@
1
- export type SiteInfoResponse = {
2
- id: string;
3
- site_name: string;
4
- backup_reserve_percent: number;
5
- default_real_mode: string;
6
- installation_date: Date;
7
- user_settings: UserSettings;
8
- components: Components;
9
- version?: string;
10
- battery_count?: number;
11
- tou_settings?: TouSettings;
12
- nameplate_power?: number;
13
- nameplate_energy?: number;
14
- installation_time_zone: string;
15
- max_site_meter_power_ac?: number;
16
- min_site_meter_power_ac?: number;
17
- vpp_backup_reserve_percent?: number;
18
- tariff_content_v2?: TariffContentV2;
19
- };
20
- export type Components = {
21
- solar: boolean;
22
- solar_type?: string;
23
- battery: boolean;
24
- grid: boolean;
25
- backup: boolean;
26
- gateway: string;
27
- load_meter: boolean;
28
- tou_capable: boolean;
29
- storm_mode_capable: boolean;
30
- flex_energy_request_capable: boolean;
31
- car_charging_data_supported: boolean;
32
- off_grid_vehicle_charging_reserve_supported: boolean;
33
- vehicle_charging_performance_view_enabled: boolean;
34
- vehicle_charging_solar_offset_view_enabled: boolean;
35
- battery_solar_offset_view_enabled: boolean;
36
- solar_value_enabled?: boolean;
37
- energy_value_header?: string;
38
- energy_value_subheader?: string;
39
- energy_service_self_scheduling_enabled: boolean;
40
- show_grid_import_battery_source_cards?: boolean;
41
- set_islanding_mode_enabled?: boolean;
42
- wifi_commissioning_enabled?: boolean;
43
- backup_time_remaining_enabled?: boolean;
44
- battery_type?: string;
45
- configurable?: boolean;
46
- grid_services_enabled?: boolean;
47
- gateways?: Gateway[];
48
- batteries?: Battery[];
49
- wall_connectors?: WallConnector[];
50
- disallow_charge_from_grid_with_solar_installed?: boolean;
51
- customer_preferred_export_rule?: string;
52
- net_meter_mode?: string;
53
- system_alerts_enabled?: boolean;
54
- nbt_supported?: boolean;
55
- };
56
- export type Battery = {
57
- device_id: string;
58
- din: string;
59
- serial_number: string;
60
- part_number: string;
61
- part_type: number;
62
- part_name: string;
63
- nameplate_max_charge_power: number;
64
- nameplate_max_discharge_power: number;
65
- nameplate_energy: number;
66
- };
67
- export type Gateway = {
68
- device_id: string;
69
- din: string;
70
- serial_number: string;
71
- part_number: string;
72
- part_type: number;
73
- part_name: string;
74
- is_active: boolean;
75
- site_id: string;
76
- firmware_version: string;
77
- updated_datetime: Date;
78
- };
79
- export type WallConnector = {
80
- device_id: string;
81
- din: string;
82
- part_name: string;
83
- is_active: boolean;
84
- };
85
- export type TouSettings = {
86
- optimization_strategy: string;
87
- schedule: Schedule[];
88
- };
89
- export type Schedule = {
90
- target: string;
91
- week_days: number[];
92
- start_seconds: number;
93
- end_seconds: number;
94
- };
95
- export type UserSettings = {
96
- go_off_grid_test_banner_enabled: boolean;
97
- storm_mode_enabled: boolean;
98
- powerwall_onboarding_settings_set: boolean;
99
- powerwall_tesla_electric_interested_in: boolean;
100
- vpp_tour_enabled: boolean;
101
- sync_grid_alert_enabled: boolean;
102
- breaker_alert_enabled: boolean;
103
- off_grid_vehicle_charging_enabled: boolean;
104
- };
105
- export type TariffPeriodWindow = {
106
- fromDayOfWeek?: number;
107
- toDayOfWeek?: number;
108
- fromHour?: number;
109
- toHour?: number;
110
- fromMinute?: number;
111
- toMinute?: number;
112
- };
113
- export type TouPeriods = Record<string, {
114
- periods: TariffPeriodWindow[];
115
- }>;
116
- export type Season = {
117
- fromDay?: number;
118
- toDay?: number;
119
- fromMonth?: number;
120
- toMonth?: number;
121
- tou_periods?: TouPeriods;
122
- };
123
- export type EnergyCharges = Record<string, {
124
- rates?: Record<string, number>;
125
- }>;
126
- export type SellTariff = {
127
- name?: string;
128
- utility?: string;
129
- daily_charges?: Record<string, any>[];
130
- demand_charges?: Record<string, any>;
131
- energy_charges: EnergyCharges;
132
- seasons?: Record<string, Season>;
133
- };
134
- export type TariffContentV2 = {
135
- version: number;
136
- monthly_minimum_bill?: number;
137
- min_applicable_demand?: number;
138
- max_applicable_demand?: number;
139
- monthly_charges?: number;
140
- utility: string;
141
- code: string;
142
- name: string;
143
- currency: string;
144
- daily_charges: Record<string, any>[];
145
- daily_demand_charges?: Record<string, any>;
146
- demand_charges: Record<string, any>;
147
- energy_charges: EnergyCharges;
148
- seasons: Record<string, Season>;
149
- sell_tariff?: SellTariff;
150
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=site_info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"site_info.js","sourceRoot":"","sources":["../../src/types/site_info.ts"],"names":[],"mappings":""}
@@ -1,22 +0,0 @@
1
- export type VehicleResponse = {
2
- id: number;
3
- vehicle_id: number;
4
- vin: string;
5
- color: null;
6
- access_type: string;
7
- display_name: string;
8
- option_codes: null;
9
- granular_access: GranularAccess;
10
- tokens: string[];
11
- state: string;
12
- in_service: boolean;
13
- id_s: string;
14
- calendar_enabled: boolean;
15
- api_version: number;
16
- backseat_token: null;
17
- backseat_token_updated_at: null;
18
- ble_autopair_enrolled: boolean;
19
- };
20
- export type GranularAccess = {
21
- hide_private: boolean;
22
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=vehicle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vehicle.js","sourceRoot":"","sources":["../../src/types/vehicle.ts"],"names":[],"mappings":""}