@meterapp/vehicle-db 1.0.0 → 1.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.
Files changed (2) hide show
  1. package/README.md +61 -70
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,15 +1,9 @@
1
- # vehicle-db
1
+ # @meterapp/vehicle-db
2
2
 
3
3
  Offline NHTSA vehicle database. All U.S. vehicle makes and models from 1990–2026, bundled as a 3.8 MB SQLite file inside the package. No network requests needed.
4
4
 
5
5
  Covers three vehicle types: **Passenger Car**, **Truck**, and **Multipurpose Passenger Vehicle (MPV)**.
6
6
 
7
- Drop-in replacement for these NHTSA vPIC API endpoints:
8
-
9
- - `GetMakesForVehicleType/{type}`
10
- - `GetModelsForMakeYear/make/{make}/modelyear/{year}`
11
- - `GetModelsForMakeIdYear/makeId/{id}/modelyear/{year}/vehicleType/{type}`
12
-
13
7
  ## Install
14
8
 
15
9
  ```bash
@@ -23,29 +17,42 @@ npm install @meterapp/vehicle-db
23
17
  ```typescript
24
18
  import {
25
19
  getVehicleTypes,
26
- getMakesForVehicleType,
27
- getModelsForMakeYear,
20
+ getMakes,
21
+ getModels,
28
22
  getAvailableYears,
29
23
  close,
30
24
  } from "@meterapp/vehicle-db";
31
25
 
32
26
  // List available vehicle types
33
27
  const types = getVehicleTypes();
34
- // => Passenger Car, Truck, Multipurpose Passenger Vehicle (MPV)
35
-
36
- // Get all truck makes for a given year
37
- const makes = getMakesForVehicleType("Truck", 2024);
38
- // => { Count: 171, Message: "...", Results: [...] }
39
-
40
- // Get all models for a make and year (all vehicle types)
41
- const models = getModelsForMakeYear("Toyota", 2024);
42
- // => { Count: 27, Message: "...", Results: [...] }
43
-
44
- // Filter models by vehicle type
45
- const trucks = getModelsForMakeYear("Ford", 2024, "Truck");
46
- // => { Count: 10, Message: "...", Results: [F-150, Ranger, ...] }
47
-
48
- // See what years are available
28
+ // => [
29
+ // { vehicleTypeId: 2, vehicleTypeName: "Passenger Car" },
30
+ // { vehicleTypeId: 3, vehicleTypeName: "Truck" },
31
+ // { vehicleTypeId: 7, vehicleTypeName: "Multipurpose Passenger Vehicle (MPV)" },
32
+ // ]
33
+
34
+ // Get all makes
35
+ const allMakes = getMakes();
36
+
37
+ // Get makes that have models in 2024
38
+ const makes2024 = getMakes({ year: 2024 });
39
+
40
+ // Get only truck makes for 2024
41
+ const truckMakes = getMakes({ year: 2024, vehicleTypeId: 3 });
42
+
43
+ // Get all Toyota models for 2024
44
+ const toyotaModels = getModels({ makeId: 474, year: 2024 });
45
+ // => [
46
+ // { modelId: 2469, modelName: "Camry", makeId: 474, makeName: "TOYOTA", vehicleTypeId: 2, vehicleTypeName: "Passenger Car" },
47
+ // { modelId: 2208, modelName: "Corolla", ... },
48
+ // ...
49
+ // ]
50
+
51
+ // Get only Ford trucks for 2024
52
+ const fordTrucks = getModels({ makeId: 460, year: 2024, vehicleTypeId: 3 });
53
+ // => [{ modelId: 1801, modelName: "F-150", ... }, ...]
54
+
55
+ // Get all available years
49
56
  const years = getAvailableYears();
50
57
  // => [1990, 1991, ..., 2026]
51
58
 
@@ -55,49 +62,54 @@ close();
55
62
 
56
63
  ## API
57
64
 
58
- ### `getVehicleTypes(): NHTSAResponse<VehicleType>`
65
+ ### `getVehicleTypes(): VehicleType[]`
59
66
 
60
67
  Returns all vehicle types in the database.
61
68
 
62
69
  ```typescript
63
- { VehicleTypeId: number; VehicleTypeName: string }
70
+ interface VehicleType {
71
+ vehicleTypeId: number; // e.g. 2
72
+ vehicleTypeName: string; // e.g. "Passenger Car"
73
+ }
64
74
  ```
65
75
 
66
- ### `getMakesForVehicleType(vehicleType: string, year: number): NHTSAResponse<MakeResult>`
76
+ ### `getMakes(options?): Make[]`
67
77
 
68
- Returns all makes for a given vehicle type and model year. Vehicle type is **case-insensitive**. Equivalent to:
78
+ Returns makes, optionally filtered by year and/or vehicle type.
69
79
 
80
+ ```typescript
81
+ getMakes() // all makes
82
+ getMakes({ year: 2024 }) // makes with models in 2024
83
+ getMakes({ vehicleTypeId: 3 }) // truck makes (all years)
84
+ getMakes({ year: 2024, vehicleTypeId: 3 }) // truck makes in 2024
70
85
  ```
71
- GET https://vpic.nhtsa.dot.gov/api/vehicles/GetMakesForVehicleType/truck?year=2024&format=json
72
- ```
73
-
74
- Each result contains:
75
86
 
76
87
  ```typescript
77
- {
78
- MakeId: number; // e.g. 460
79
- MakeName: string; // e.g. "FORD"
80
- VehicleTypeId: number; // e.g. 3
81
- VehicleTypeName: string; // e.g. "Truck"
88
+ interface Make {
89
+ makeId: number; // e.g. 460
90
+ makeName: string; // e.g. "FORD"
82
91
  }
83
92
  ```
84
93
 
85
- ### `getModelsForMakeYear(make: string, year: number, vehicleType?: string): NHTSAResponse<ModelResult>`
94
+ ### `getModels(options?): Model[]`
86
95
 
87
- Returns all models for a given make and year. Make name is **case-insensitive**. Optionally filter by vehicle type.
96
+ Returns models, optionally filtered by year, vehicle type, and/or make.
88
97
 
98
+ ```typescript
99
+ getModels({ makeId: 474, year: 2024 }) // Toyota 2024 (all types)
100
+ getModels({ makeId: 460, year: 2024, vehicleTypeId: 3 }) // Ford trucks 2024
101
+ getModels({ vehicleTypeId: 3 }) // all trucks (all years)
102
+ getModels({ year: 2024 }) // everything in 2024
89
103
  ```
90
- GET https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeYear/make/Ford/modelyear/2024?format=json
91
- ```
92
-
93
- Each result contains:
94
104
 
95
105
  ```typescript
96
- {
97
- Make_ID: number; // e.g. 460
98
- Make_Name: string; // e.g. "FORD"
99
- Model_ID: number; // e.g. 1801
100
- Model_Name: string; // e.g. "F-150"
106
+ interface Model {
107
+ modelId: number; // e.g. 1801
108
+ modelName: string; // e.g. "F-150"
109
+ makeId: number; // e.g. 460
110
+ makeName: string; // e.g. "FORD"
111
+ vehicleTypeId: number; // e.g. 3
112
+ vehicleTypeName: string; // e.g. "Truck"
101
113
  }
102
114
  ```
103
115
 
@@ -109,28 +121,6 @@ Returns all years present in the database, sorted ascending.
109
121
 
110
122
  Closes the SQLite connection. Safe to call multiple times. The connection reopens automatically on the next query.
111
123
 
112
- ## Migrating from the NHTSA API
113
-
114
- Replace your fetch calls directly:
115
-
116
- ```diff
117
- - const res = await fetch(
118
- - `https://vpic.nhtsa.dot.gov/api/vehicles/GetMakesForVehicleType/car?year=${year}&format=json`
119
- - );
120
- - const makes = await res.json();
121
- + const makes = getMakesForVehicleType("Passenger Car", year);
122
- ```
123
-
124
- ```diff
125
- - const res = await fetch(
126
- - `https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeYear/make/${encodeURIComponent(make)}/modelyear/${year}?format=json`
127
- - );
128
- - const models = await res.json();
129
- + const models = getModelsForMakeYear(make, year);
130
- ```
131
-
132
- The response shape (`Count`, `Message`, `SearchCriteria`, `Results`) matches the NHTSA API, so downstream code should work unchanged.
133
-
134
124
  ## Database stats
135
125
 
136
126
  | | |
@@ -140,6 +130,7 @@ The response shape (`Count`, `Message`, `SearchCriteria`, `Results`) matches the
140
130
  | **Makes** | 400 |
141
131
  | **Model entries** | 51,270 |
142
132
  | **SQLite file size** | 3.8 MB |
133
+ | **npm package size** | 1.5 MB |
143
134
 
144
135
  ## Rebuilding the database
145
136
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meterapp/vehicle-db",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Offline NHTSA vehicle makes/models database bundled as SQLite",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",