@teslemetry/api 0.2.1 → 0.3.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/dist/index.cjs CHANGED
@@ -4984,7 +4984,7 @@ const consoleLogger = {
4984
4984
 
4985
4985
  //#endregion
4986
4986
  //#region package.json
4987
- var version = "0.2.1";
4987
+ var version = "0.3.0";
4988
4988
 
4989
4989
  //#endregion
4990
4990
  //#region src/Teslemetry.ts
@@ -5055,12 +5055,14 @@ var Teslemetry = class {
5055
5055
  name: product.display_name ?? useTeslaModel(product.vin),
5056
5056
  vin: product.vin,
5057
5057
  api: this.api.getVehicle(product.vin),
5058
- sse: this.sse.getVehicle(product.vin)
5058
+ sse: this.sse.getVehicle(product.vin),
5059
+ product
5059
5060
  };
5060
5061
  if (product.device_type === "energy") result.energySites[product.energy_site_id] = {
5061
5062
  name: product.site_name ?? "Unnamed",
5062
5063
  site: product.energy_site_id,
5063
- api: this.api.getEnergySite(product.energy_site_id)
5064
+ api: this.api.getEnergySite(product.energy_site_id),
5065
+ product
5064
5066
  };
5065
5067
  });
5066
5068
  return result;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,101 @@
1
1
  //#region src/client/types.gen.d.ts
2
2
 
3
+ type GetApi1ProductsResponses = {
4
+ /**
5
+ * Default Response
6
+ */
7
+ 200: {
8
+ response: Array<{
9
+ id: number;
10
+ user_id: number;
11
+ vehicle_id: number;
12
+ vin: string;
13
+ color: null;
14
+ access_type: null | string;
15
+ display_name: string;
16
+ option_codes: null | string;
17
+ cached_data: null | string | {
18
+ [key: string]: unknown;
19
+ };
20
+ mobile_access_disabled: boolean;
21
+ granular_access: {
22
+ hide_private: boolean;
23
+ };
24
+ tokens: null;
25
+ state: string;
26
+ in_service: boolean;
27
+ id_s: string;
28
+ calendar_enabled: boolean;
29
+ api_version: number;
30
+ backseat_token: null;
31
+ backseat_token_updated_at: null;
32
+ ble_autopair_enrolled: boolean;
33
+ device_type: 'vehicle';
34
+ command_signing: string;
35
+ release_notes_supported?: boolean;
36
+ share_type_s?: string;
37
+ bnd_enrolled?: boolean;
38
+ } | {
39
+ energy_site_id: number;
40
+ device_type: 'energy';
41
+ resource_type: string;
42
+ site_name?: string;
43
+ id: string;
44
+ gateway_id?: string;
45
+ asset_site_id: string;
46
+ warp_site_number: string;
47
+ percentage_charged?: number;
48
+ battery_type?: string;
49
+ battery_power?: number;
50
+ go_off_grid_test_banner_enabled: null;
51
+ storm_mode_enabled: boolean | null;
52
+ powerwall_onboarding_settings_set: boolean | null;
53
+ powerwall_tesla_electric_interested_in: null;
54
+ vpp_tour_enabled: null;
55
+ components: {
56
+ battery: boolean;
57
+ battery_type?: string;
58
+ solar: boolean;
59
+ solar_type?: string;
60
+ grid: boolean;
61
+ load_meter: boolean;
62
+ market_type: string;
63
+ gateways?: Array<{
64
+ device_id: string;
65
+ din: string;
66
+ serial_number: string;
67
+ part_number: string;
68
+ is_active: boolean;
69
+ }>;
70
+ wall_connectors?: Array<{
71
+ device_id: string;
72
+ din: string;
73
+ serial_number: string;
74
+ part_number: string;
75
+ is_active: boolean;
76
+ }>;
77
+ inverters?: Array<{
78
+ device_id: string;
79
+ din: string;
80
+ serial_number: string;
81
+ part_number: string;
82
+ is_active: boolean;
83
+ site_id: string;
84
+ firmware_version?: string;
85
+ }>;
86
+ generator?: boolean;
87
+ };
88
+ features: {
89
+ rate_plan_manager_no_pricing_constraint?: boolean;
90
+ };
91
+ solar_power?: number;
92
+ charge_on_solar_capable?: boolean;
93
+ grid_installation_id?: string;
94
+ solar_type?: string;
95
+ }>;
96
+ count?: number;
97
+ };
98
+ };
3
99
  type GetApiConfigByVinResponses = {
4
100
  /**
5
101
  * Default Response
@@ -11002,18 +11098,29 @@ type SseConfig = ExtractSse<{
11002
11098
  type FieldsResponse = GetApiConfigByVinResponses[200]["fields"];
11003
11099
  type FieldsRequest = NonNullable<NonNullable<PatchApiConfigByVinData["body"]>["fields"]>;
11004
11100
  type Signals = keyof SseData["data"];
11101
+ type ProductsResponse = GetApi1ProductsResponses[200]["response"];
11102
+ type VehicleProduct = Extract<ProductsResponse[number], {
11103
+ device_type: "vehicle";
11104
+ }>;
11105
+ type EnergyProduct = Extract<ProductsResponse[number], {
11106
+ device_type: "energy";
11107
+ }>;
11108
+ interface VehicleDetails {
11109
+ name: string;
11110
+ vin: string;
11111
+ api: TeslemetryVehicleApi;
11112
+ sse: TeslemetryVehicleStream;
11113
+ product: VehicleProduct;
11114
+ }
11115
+ interface EnergyDetails {
11116
+ name: string;
11117
+ site: number;
11118
+ api: TeslemetryEnergyApi;
11119
+ product: EnergyProduct;
11120
+ }
11005
11121
  interface Products {
11006
- vehicles: Record<string, {
11007
- name: string;
11008
- vin: string;
11009
- api: TeslemetryVehicleApi;
11010
- sse: TeslemetryVehicleStream;
11011
- }>;
11012
- energySites: Record<string, {
11013
- name: string;
11014
- site: number;
11015
- api: TeslemetryEnergyApi;
11016
- }>;
11122
+ vehicles: Record<string, VehicleDetails>;
11123
+ energySites: Record<string, EnergyDetails>;
11017
11124
  }
11018
11125
  //#endregion
11019
11126
  //#region src/logger.d.ts
@@ -11787,7 +11894,7 @@ declare class Teslemetry {
11787
11894
  logger: Logger;
11788
11895
  private _user;
11789
11896
  private _charging;
11790
- constructor(access_token: string, options?: TeslemetryOptions);
11897
+ constructor(access_token: string | (() => Promise<string>), options?: TeslemetryOptions);
11791
11898
  /**
11792
11899
  * Get a vehicle instance with both API and SSE capabilities.
11793
11900
  * @param vin Vehicle Identification Number
@@ -11848,4 +11955,4 @@ declare class ValueError extends Error {
11848
11955
  constructor(message: string);
11849
11956
  }
11850
11957
  //#endregion
11851
- export { FieldsRequest, FieldsResponse, Products, Signals, SseAlerts, SseConfig, SseConnectivity, SseCredits, SseData, SseErrors, SseEvent, SseState, SseVehicleData, Teslemetry, TeslemetryApi, TeslemetryEnergyApi, TeslemetryStream, TeslemetryStreamConnectionError, TeslemetryStreamEnded, TeslemetryStreamError, TeslemetryVehicleApi, TeslemetryVehicleStream, TeslemetryVehicleStreamNotConfigured, ValueError };
11958
+ export { type EnergyDetails, FieldsRequest, FieldsResponse, type Products, Signals, SseAlerts, SseConfig, SseConnectivity, SseCredits, SseData, SseErrors, SseEvent, SseState, SseVehicleData, Teslemetry, TeslemetryApi, TeslemetryEnergyApi, TeslemetryStream, TeslemetryStreamConnectionError, TeslemetryStreamEnded, TeslemetryStreamError, TeslemetryVehicleApi, TeslemetryVehicleStream, TeslemetryVehicleStreamNotConfigured, ValueError, type VehicleDetails };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,101 @@
1
1
  //#region src/client/types.gen.d.ts
2
2
 
3
+ type GetApi1ProductsResponses = {
4
+ /**
5
+ * Default Response
6
+ */
7
+ 200: {
8
+ response: Array<{
9
+ id: number;
10
+ user_id: number;
11
+ vehicle_id: number;
12
+ vin: string;
13
+ color: null;
14
+ access_type: null | string;
15
+ display_name: string;
16
+ option_codes: null | string;
17
+ cached_data: null | string | {
18
+ [key: string]: unknown;
19
+ };
20
+ mobile_access_disabled: boolean;
21
+ granular_access: {
22
+ hide_private: boolean;
23
+ };
24
+ tokens: null;
25
+ state: string;
26
+ in_service: boolean;
27
+ id_s: string;
28
+ calendar_enabled: boolean;
29
+ api_version: number;
30
+ backseat_token: null;
31
+ backseat_token_updated_at: null;
32
+ ble_autopair_enrolled: boolean;
33
+ device_type: 'vehicle';
34
+ command_signing: string;
35
+ release_notes_supported?: boolean;
36
+ share_type_s?: string;
37
+ bnd_enrolled?: boolean;
38
+ } | {
39
+ energy_site_id: number;
40
+ device_type: 'energy';
41
+ resource_type: string;
42
+ site_name?: string;
43
+ id: string;
44
+ gateway_id?: string;
45
+ asset_site_id: string;
46
+ warp_site_number: string;
47
+ percentage_charged?: number;
48
+ battery_type?: string;
49
+ battery_power?: number;
50
+ go_off_grid_test_banner_enabled: null;
51
+ storm_mode_enabled: boolean | null;
52
+ powerwall_onboarding_settings_set: boolean | null;
53
+ powerwall_tesla_electric_interested_in: null;
54
+ vpp_tour_enabled: null;
55
+ components: {
56
+ battery: boolean;
57
+ battery_type?: string;
58
+ solar: boolean;
59
+ solar_type?: string;
60
+ grid: boolean;
61
+ load_meter: boolean;
62
+ market_type: string;
63
+ gateways?: Array<{
64
+ device_id: string;
65
+ din: string;
66
+ serial_number: string;
67
+ part_number: string;
68
+ is_active: boolean;
69
+ }>;
70
+ wall_connectors?: Array<{
71
+ device_id: string;
72
+ din: string;
73
+ serial_number: string;
74
+ part_number: string;
75
+ is_active: boolean;
76
+ }>;
77
+ inverters?: Array<{
78
+ device_id: string;
79
+ din: string;
80
+ serial_number: string;
81
+ part_number: string;
82
+ is_active: boolean;
83
+ site_id: string;
84
+ firmware_version?: string;
85
+ }>;
86
+ generator?: boolean;
87
+ };
88
+ features: {
89
+ rate_plan_manager_no_pricing_constraint?: boolean;
90
+ };
91
+ solar_power?: number;
92
+ charge_on_solar_capable?: boolean;
93
+ grid_installation_id?: string;
94
+ solar_type?: string;
95
+ }>;
96
+ count?: number;
97
+ };
98
+ };
3
99
  type GetApiConfigByVinResponses = {
4
100
  /**
5
101
  * Default Response
@@ -11002,18 +11098,29 @@ type SseConfig = ExtractSse<{
11002
11098
  type FieldsResponse = GetApiConfigByVinResponses[200]["fields"];
11003
11099
  type FieldsRequest = NonNullable<NonNullable<PatchApiConfigByVinData["body"]>["fields"]>;
11004
11100
  type Signals = keyof SseData["data"];
11101
+ type ProductsResponse = GetApi1ProductsResponses[200]["response"];
11102
+ type VehicleProduct = Extract<ProductsResponse[number], {
11103
+ device_type: "vehicle";
11104
+ }>;
11105
+ type EnergyProduct = Extract<ProductsResponse[number], {
11106
+ device_type: "energy";
11107
+ }>;
11108
+ interface VehicleDetails {
11109
+ name: string;
11110
+ vin: string;
11111
+ api: TeslemetryVehicleApi;
11112
+ sse: TeslemetryVehicleStream;
11113
+ product: VehicleProduct;
11114
+ }
11115
+ interface EnergyDetails {
11116
+ name: string;
11117
+ site: number;
11118
+ api: TeslemetryEnergyApi;
11119
+ product: EnergyProduct;
11120
+ }
11005
11121
  interface Products {
11006
- vehicles: Record<string, {
11007
- name: string;
11008
- vin: string;
11009
- api: TeslemetryVehicleApi;
11010
- sse: TeslemetryVehicleStream;
11011
- }>;
11012
- energySites: Record<string, {
11013
- name: string;
11014
- site: number;
11015
- api: TeslemetryEnergyApi;
11016
- }>;
11122
+ vehicles: Record<string, VehicleDetails>;
11123
+ energySites: Record<string, EnergyDetails>;
11017
11124
  }
11018
11125
  //#endregion
11019
11126
  //#region src/logger.d.ts
@@ -11787,7 +11894,7 @@ declare class Teslemetry {
11787
11894
  logger: Logger;
11788
11895
  private _user;
11789
11896
  private _charging;
11790
- constructor(access_token: string, options?: TeslemetryOptions);
11897
+ constructor(access_token: string | (() => Promise<string>), options?: TeslemetryOptions);
11791
11898
  /**
11792
11899
  * Get a vehicle instance with both API and SSE capabilities.
11793
11900
  * @param vin Vehicle Identification Number
@@ -11848,4 +11955,4 @@ declare class ValueError extends Error {
11848
11955
  constructor(message: string);
11849
11956
  }
11850
11957
  //#endregion
11851
- export { FieldsRequest, FieldsResponse, Products, Signals, SseAlerts, SseConfig, SseConnectivity, SseCredits, SseData, SseErrors, SseEvent, SseState, SseVehicleData, Teslemetry, TeslemetryApi, TeslemetryEnergyApi, TeslemetryStream, TeslemetryStreamConnectionError, TeslemetryStreamEnded, TeslemetryStreamError, TeslemetryVehicleApi, TeslemetryVehicleStream, TeslemetryVehicleStreamNotConfigured, ValueError };
11958
+ export { type EnergyDetails, FieldsRequest, FieldsResponse, type Products, Signals, SseAlerts, SseConfig, SseConnectivity, SseCredits, SseData, SseErrors, SseEvent, SseState, SseVehicleData, Teslemetry, TeslemetryApi, TeslemetryEnergyApi, TeslemetryStream, TeslemetryStreamConnectionError, TeslemetryStreamEnded, TeslemetryStreamError, TeslemetryVehicleApi, TeslemetryVehicleStream, TeslemetryVehicleStreamNotConfigured, ValueError, type VehicleDetails };
package/dist/index.mjs CHANGED
@@ -4983,7 +4983,7 @@ const consoleLogger = {
4983
4983
 
4984
4984
  //#endregion
4985
4985
  //#region package.json
4986
- var version = "0.2.1";
4986
+ var version = "0.3.0";
4987
4987
 
4988
4988
  //#endregion
4989
4989
  //#region src/Teslemetry.ts
@@ -5054,12 +5054,14 @@ var Teslemetry = class {
5054
5054
  name: product.display_name ?? useTeslaModel(product.vin),
5055
5055
  vin: product.vin,
5056
5056
  api: this.api.getVehicle(product.vin),
5057
- sse: this.sse.getVehicle(product.vin)
5057
+ sse: this.sse.getVehicle(product.vin),
5058
+ product
5058
5059
  };
5059
5060
  if (product.device_type === "energy") result.energySites[product.energy_site_id] = {
5060
5061
  name: product.site_name ?? "Unnamed",
5061
5062
  site: product.energy_site_id,
5062
- api: this.api.getEnergySite(product.energy_site_id)
5063
+ api: this.api.getEnergySite(product.energy_site_id),
5064
+ product
5063
5065
  };
5064
5066
  });
5065
5067
  return result;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teslemetry/api",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "API client for Teslemetry",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",