@meterapp/vehicle-db 2.14.0 → 2.16.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 +18 -9
- package/dist/data.d.ts +1 -0
- package/dist/data.js +1 -1
- package/dist/identity-data.js +1 -1
- package/dist/identity.d.ts +1 -1
- package/dist/identity.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/search.js +2 -0
- package/package.json +1 -1
package/dist/identity-data.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const graph = { "schemaVersion": 1, "revision": "2026-09-24.1", "identities": [{ "id": "bmw:4", "kind": "line", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series", "names": ["4 Series"], "evidenceIds": ["oem:1"] }, { "id": "bmw:4:first", "kind": "generation", "makeId": 452, "vehicleTypeId": 2, "name": "First generation", "names": [], "evidenceIds": ["oem:3"], "parentId": "bmw:4", "years": [2014], "yearBasis": "model-year", "markets": ["US"] }, { "id": "bmw:4:second", "kind": "generation", "makeId": 452, "vehicleTypeId": 2, "name": "Second generation", "names": [], "evidenceIds": ["oem:1"], "parentId": "bmw:4", "years": [2024, 2025], "yearBasis": "model-year", "markets": ["US"] }, { "id": "kia:pegas", "kind": "line", "makeId": 499, "vehicleTypeId": 2, "name": "Pegas", "names": ["Pegas"], "evidenceIds": ["oem:0"], "years": [2025], "yearBasis": "model-year", "markets": ["SA"] }, { "id": "bmw:4:second:coupe", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "Coupe", "names": ["4 Series Coupe"], "evidenceIds": ["oem:1", "oem:5"], "years": [2025, 2024], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Coupe", "parentId": "bmw:4:second" }, { "id": "bmw:4:second:coupe:2025", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Coupe 2025", "names": [], "evidenceIds": ["oem:1", "oem:5"], "years": [2025], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "facelift", "parentId": "bmw:4:second:coupe" }, { "id": "bmw:4:second:convertible", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "Convertible", "names": ["4 Series Convertible"], "evidenceIds": ["oem:2", "oem:6"], "years": [2025, 2024], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Convertible", "parentId": "bmw:4:second" }, { "id": "bmw:4:second:convertible:2025", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Convertible 2025", "names": [], "evidenceIds": ["oem:2", "oem:6"], "years": [2025], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "facelift", "parentId": "bmw:4:second:convertible" }, { "id": "bmw:4:first:coupe", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "Coupe", "names": ["4 Series Coupe"], "evidenceIds": ["oem:3"], "years": [2014], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Coupe", "parentId": "bmw:4:first" }, { "id": "bmw:4:first:coupe:2014", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Coupe 2014", "names": [], "evidenceIds": ["oem:3"], "years": [2014], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "original", "parentId": "bmw:4:first:coupe" }, { "id": "lamborghini:huracan", "kind": "line", "makeId": 502, "vehicleTypeId": 2, "name": "Huracán", "names": ["Huracan"], "evidenceIds": ["oem:4"] }, { "id": "lamborghini:huracan:first", "kind": "generation", "makeId": 502, "vehicleTypeId": 2, "name": "Huracán generation", "names": [], "evidenceIds": ["oem:4"], "parentId": "lamborghini:huracan" }, { "id": "lamborghini:huracan:sto", "kind": "derivative", "makeId": 502, "vehicleTypeId": 2, "name": "STO", "names": ["Huracan STO"], "evidenceIds": ["oem:4"], "years": [2023], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Coupe", "parentId": "lamborghini:huracan:first" }, { "id": "lamborghini:huracan:sto:2023", "kind": "visual", "makeId": 502, "vehicleTypeId": 2, "name": "STO exterior", "names": [], "evidenceIds": ["oem:4"], "years": [2023], "yearBasis": "model-year", "markets": ["US"], "parentId": "lamborghini:huracan:sto" }, { "id": "bmw:4:second:coupe:2024", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Coupe 2024", "names": [], "evidenceIds": ["oem:5"], "years": [2024], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "original", "parentId": "bmw:4:second:coupe" }, { "id": "bmw:4:second:convertible:2024", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Convertible 2024", "names": [], "evidenceIds": ["oem:6"], "years": [2024], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "original", "parentId": "bmw:4:second:convertible" }, { "id": "bmw:4:second:gran-coupe", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "Gran Coupe", "names": ["4 Series Gran Coupe"], "evidenceIds": ["oem:7"], "years": [2024], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Gran Coupe", "parentId": "bmw:4:second" }, { "id": "bmw:4:second:gran-coupe:2024", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Gran Coupe 2024", "names": [], "evidenceIds": ["oem:7"], "years": [2024], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "original", "parentId": "bmw:4:second:gran-coupe" }, { "id": "porsche:macan", "kind": "line", "makeId": 584, "vehicleTypeId": 7, "name": "Macan", "names": ["Macan"], "evidenceIds": ["porsche:macan-name"] }, { "id": "toyota:prado", "kind": "line", "makeId": 448, "vehicleTypeId": 7, "name": "Land Cruiser Prado", "names": ["Land Cruiser Prado"], "evidenceIds": ["toyota:prado-name"] }], "aliases": [{ "text": "maccane", "targetId": "porsche:macan", "kind": "misspelling", "evidenceIds": ["porsche:macan-name"] }, { "text": "Prado", "targetId": "toyota:prado", "kind": "abbreviation", "evidenceIds": ["toyota:prado-name"] }], "catalogLinks": [{ "identityId": "kia:pegas", "year": 2025, "makeId": 499, "modelId": 2554132110, "vehicleTypeId": 2, "evidenceIds": ["oem:0"] }, { "identityId": "bmw:4:second:coupe", "year": 2025, "makeId": 452, "modelId": 1126006782, "vehicleTypeId": 2, "evidenceIds": ["oem:1", "oem:5"] }, { "identityId": "bmw:4:second:convertible", "year": 2025, "makeId": 452, "modelId": 2953619411, "vehicleTypeId": 2, "evidenceIds": ["oem:2", "oem:6"] }, { "identityId": "bmw:4:first:coupe", "year": 2014, "makeId": 452, "modelId": 1126006782, "vehicleTypeId": 2, "evidenceIds": ["oem:3"] }, { "identityId": "lamborghini:huracan:sto", "year": 2023, "makeId": 502, "modelId": 1352298313, "vehicleTypeId": 2, "evidenceIds": ["oem:4"] }, { "identityId": "bmw:4:second:coupe", "year": 2024, "makeId": 452, "modelId": 1126006782, "vehicleTypeId": 2, "evidenceIds": ["oem:5"] }, { "identityId": "bmw:4:second:convertible", "year": 2024, "makeId": 452, "modelId": 2953619411, "vehicleTypeId": 2, "evidenceIds": ["oem:6"] }, { "identityId": "bmw:4:second:gran-coupe", "year": 2024, "makeId": 452, "modelId": 2889216836, "vehicleTypeId": 2, "evidenceIds": ["oem:7"] }, { "identityId": "porsche:macan", "year": 2015, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2016, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2017, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2018, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2019, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2020, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2021, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2022, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2023, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2024, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2025, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2026, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2027, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "toyota:prado", "year": 2015, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2016, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2017, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2018, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2019, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2020, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2021, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2022, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2023, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2024, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2025, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2026, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }], "evidence": [{ "id": "oem:0", "sourceId": "manufacturer-reviewed", "url": "https://www.kia.com/content/dam/kwcms/sa/en/files/trim/Pegas/LX-D389.pdf", "retrievedAt": "2026-09-24", "note": "Manufacturer specification explicitly labels Pegas 2025 MY; Saudi distributor Aljabr." }, { "id": "oem:1", "sourceId": "manufacturer-reviewed", "url": "https://www.press.bmwgroup.com/usa/article/detail/T0439311EN_US/the-new-2025-bmw-4-series-coupe-and-convertible", "retrievedAt": "2026-09-24", "note": "BMW USA explicitly identifies 2025 model year and the two body derivatives; facelift, not a new generation." }, { "id": "oem:2", "sourceId": "manufacturer-reviewed", "url": "https://www.press.bmwgroup.com/usa/article/detail/T0439311EN_US/the-new-2025-bmw-4-series-coupe-and-convertible", "retrievedAt": "2026-09-24", "note": "BMW USA explicitly identifies 2025 model year and the two body derivatives; facelift, not a new generation." }, { "id": "oem:3", "sourceId": "manufacturer-reviewed", "url": "https://www.press.bmwgroup.com/usa/article/detail/T0142773EN_US/the-all-new-bmw-4-series-coupe", "retrievedAt": "2026-09-24", "note": "BMW USA introduces the first-generation Coupe as model year 2014." }, { "id": "oem:4", "sourceId": "manufacturer-reviewed", "url": "https://preowned.lamborghini.com/en_gb/vdp/30004705-2023-Hurac%C3%A1n-EVO-LP-640-2-STO", "retrievedAt": "2026-09-24", "note": "Lamborghini official pre-owned US dealer listing explicitly identifies model year 2023 STO; no VIN or individual vehicle data retained." }, { "id": "oem:5", "sourceId": "manufacturer-reviewed", "url": "https://bmwtechinfo.bmwgroup.com/sib_attachments/B000223%20Attachment%205%202024%20BMW%20Group%20models%20reference%20guide%209_23.pdf", "retrievedAt": "2026-09-24", "note": "BMW model-year 2024 reference guide lists G22 Coupe, G23 Convertible, and G26 Gran Coupe separately." }, { "id": "oem:6", "sourceId": "manufacturer-reviewed", "url": "https://bmwtechinfo.bmwgroup.com/sib_attachments/B000223%20Attachment%205%202024%20BMW%20Group%20models%20reference%20guide%209_23.pdf", "retrievedAt": "2026-09-24", "note": "BMW model-year 2024 reference guide lists G22 Coupe, G23 Convertible, and G26 Gran Coupe separately." }, { "id": "oem:7", "sourceId": "manufacturer-reviewed", "url": "https://bmwtechinfo.bmwgroup.com/sib_attachments/B000223%20Attachment%205%202024%20BMW%20Group%20models%20reference%20guide%209_23.pdf", "retrievedAt": "2026-09-24", "note": "BMW model-year 2024 reference guide lists G22 Coupe, G23 Convertible, and G26 Gran Coupe separately." }, { "id": "porsche:macan-name", "sourceId": "porsche-catalog", "url": "https://www.porsche.com/usa/models/macan/", "retrievedAt": "2026-09-24", "note": "Macan name evidence. Reviewed maccane spelling correction is lexical only and does not choose gasoline/electric generation." }, { "id": "toyota:prado-name", "sourceId": "toyota-catalog", "url": "https://www.toyota.com.au/prado", "retrievedAt": "2026-09-24", "note": "Toyota uses both Prado and LandCruiser Prado for the model line. No mapping to other Land Cruiser lines or generations." }], "homologation": [], "visualCompatibility": [] };
|
|
3
|
+
const graph = { "schemaVersion": 1, "revision": "2026-10-12.1", "identities": [{ "id": "bmw:4", "kind": "line", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series", "names": ["4 Series"], "evidenceIds": ["oem:1"] }, { "id": "bmw:4:first", "kind": "generation", "makeId": 452, "vehicleTypeId": 2, "name": "First generation", "names": [], "evidenceIds": ["oem:3"], "parentId": "bmw:4", "years": [2014], "yearBasis": "model-year", "markets": ["US"] }, { "id": "bmw:4:second", "kind": "generation", "makeId": 452, "vehicleTypeId": 2, "name": "Second generation", "names": [], "evidenceIds": ["oem:1"], "parentId": "bmw:4", "years": [2024, 2025], "yearBasis": "model-year", "markets": ["US"] }, { "id": "kia:pegas", "kind": "line", "makeId": 499, "vehicleTypeId": 2, "name": "Pegas", "names": ["Pegas"], "evidenceIds": ["oem:0"], "years": [2025], "yearBasis": "model-year", "markets": ["SA"] }, { "id": "bmw:4:second:coupe", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "Coupe", "names": ["4 Series Coupe"], "evidenceIds": ["oem:1", "oem:5"], "years": [2025, 2024], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Coupe", "parentId": "bmw:4:second" }, { "id": "bmw:4:second:coupe:2025", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Coupe 2025", "names": [], "evidenceIds": ["oem:1", "oem:5"], "years": [2025], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "facelift", "parentId": "bmw:4:second:coupe" }, { "id": "bmw:4:second:convertible", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "Convertible", "names": ["4 Series Convertible"], "evidenceIds": ["oem:2", "oem:6"], "years": [2025, 2024], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Convertible", "parentId": "bmw:4:second" }, { "id": "bmw:4:second:convertible:2025", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Convertible 2025", "names": [], "evidenceIds": ["oem:2", "oem:6"], "years": [2025], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "facelift", "parentId": "bmw:4:second:convertible" }, { "id": "bmw:4:first:coupe", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "Coupe", "names": ["4 Series Coupe"], "evidenceIds": ["oem:3"], "years": [2014], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Coupe", "parentId": "bmw:4:first" }, { "id": "bmw:4:first:coupe:2014", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Coupe 2014", "names": [], "evidenceIds": ["oem:3"], "years": [2014], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "original", "parentId": "bmw:4:first:coupe" }, { "id": "lamborghini:huracan", "kind": "line", "makeId": 502, "vehicleTypeId": 2, "name": "Huracán", "names": ["Huracan"], "evidenceIds": ["oem:4"] }, { "id": "lamborghini:huracan:first", "kind": "generation", "makeId": 502, "vehicleTypeId": 2, "name": "Huracán generation", "names": [], "evidenceIds": ["oem:4"], "parentId": "lamborghini:huracan" }, { "id": "lamborghini:huracan:sto", "kind": "derivative", "makeId": 502, "vehicleTypeId": 2, "name": "STO", "names": ["Huracan STO"], "evidenceIds": ["oem:4"], "years": [2023], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Coupe", "parentId": "lamborghini:huracan:first" }, { "id": "lamborghini:huracan:sto:2023", "kind": "visual", "makeId": 502, "vehicleTypeId": 2, "name": "STO exterior", "names": [], "evidenceIds": ["oem:4"], "years": [2023], "yearBasis": "model-year", "markets": ["US"], "parentId": "lamborghini:huracan:sto" }, { "id": "bmw:4:second:coupe:2024", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Coupe 2024", "names": [], "evidenceIds": ["oem:5"], "years": [2024], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "original", "parentId": "bmw:4:second:coupe" }, { "id": "bmw:4:second:convertible:2024", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Convertible 2024", "names": [], "evidenceIds": ["oem:6"], "years": [2024], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "original", "parentId": "bmw:4:second:convertible" }, { "id": "bmw:4:second:gran-coupe", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "Gran Coupe", "names": ["4 Series Gran Coupe"], "evidenceIds": ["oem:7"], "years": [2024], "yearBasis": "model-year", "markets": ["US"], "bodyStyle": "Gran Coupe", "parentId": "bmw:4:second" }, { "id": "bmw:4:second:gran-coupe:2024", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "4 Series Gran Coupe 2024", "names": [], "evidenceIds": ["oem:7"], "years": [2024], "yearBasis": "model-year", "markets": ["US"], "appearanceRevision": "original", "parentId": "bmw:4:second:gran-coupe" }, { "id": "porsche:macan", "kind": "line", "makeId": 584, "vehicleTypeId": 7, "name": "Macan", "names": ["Macan"], "evidenceIds": ["porsche:macan-name"] }, { "id": "toyota:prado", "kind": "line", "makeId": 448, "vehicleTypeId": 7, "name": "Land Cruiser Prado", "names": ["Land Cruiser Prado"], "evidenceIds": ["toyota:prado-name"] }, { "id": "catalog:11366:ec-van", "kind": "line", "makeId": 11366, "vehicleTypeId": 3, "name": "EC Van", "names": ["EC Van"], "evidenceIds": ["coverage:7"], "years": [2025], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:498:custin", "kind": "line", "makeId": 498, "vehicleTypeId": 7, "name": "Custin", "names": ["Custin"], "evidenceIds": ["coverage:8"], "years": [2024], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:482:viloran", "kind": "line", "makeId": 482, "vehicleTypeId": 7, "name": "Viloran", "names": ["Viloran"], "evidenceIds": ["coverage:9"], "years": [2025], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:482:teramont-x", "kind": "line", "makeId": 482, "vehicleTypeId": 7, "name": "Teramont X", "names": ["Teramont X"], "evidenceIds": ["coverage:10"], "years": [2025], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:3885285967:03+", "kind": "line", "makeId": 3885285967, "vehicleTypeId": 2, "name": "03+", "names": ["03+"], "evidenceIds": ["coverage:11"], "years": [2025], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:3885285967:05", "kind": "line", "makeId": 3885285967, "vehicleTypeId": 7, "name": "05", "names": ["05"], "evidenceIds": ["coverage:12"], "years": [2025], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:3885285967:06", "kind": "line", "makeId": 3885285967, "vehicleTypeId": 7, "name": "06", "names": ["06"], "evidenceIds": ["coverage:13"], "years": [2025], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:3885285967:09", "kind": "line", "makeId": 3885285967, "vehicleTypeId": 7, "name": "09", "names": ["09"], "evidenceIds": ["coverage:14"], "years": [2025], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:3885285967:03", "kind": "line", "makeId": 3885285967, "vehicleTypeId": 2, "name": "03", "names": ["03"], "evidenceIds": ["coverage:15"], "years": [2026], "markets": ["VN"], "yearBasis": "catalog-year" }, { "id": "catalog:3233934283:dzire", "kind": "line", "makeId": 3233934283, "vehicleTypeId": 2, "name": "Dzire", "names": ["Dzire"], "evidenceIds": ["coverage:16"], "years": [2026], "markets": ["IN"], "yearBasis": "catalog-year" }, { "id": "catalog:3233934283:s-presso", "kind": "line", "makeId": 3233934283, "vehicleTypeId": 2, "name": "S-Presso", "names": ["S-Presso"], "evidenceIds": ["coverage:17"], "years": [2026], "markets": ["IN"], "yearBasis": "catalog-year" }, { "id": "catalog:3233934283:brezza", "kind": "line", "makeId": 3233934283, "vehicleTypeId": 7, "name": "Brezza", "names": ["Brezza"], "evidenceIds": ["coverage:18"], "years": [2026], "markets": ["IN"], "yearBasis": "catalog-year" }, { "id": "catalog:3233934283:ertiga", "kind": "line", "makeId": 3233934283, "vehicleTypeId": 7, "name": "Ertiga", "names": ["Ertiga"], "evidenceIds": ["coverage:19"], "years": [2026], "markets": ["IN"], "yearBasis": "catalog-year" }, { "id": "catalog:3233934283:xl6", "kind": "line", "makeId": 3233934283, "vehicleTypeId": 7, "name": "XL6", "names": ["XL6"], "evidenceIds": ["coverage:20"], "years": [2026], "markets": ["IN"], "yearBasis": "catalog-year" }, { "id": "catalog:2146:bolero", "kind": "line", "makeId": 2146, "vehicleTypeId": 7, "name": "Bolero", "names": ["Bolero"], "evidenceIds": ["coverage:21"], "years": [2025], "markets": ["IN"], "yearBasis": "catalog-year" }, { "id": "catalog:2146:bolero-neo", "kind": "line", "makeId": 2146, "vehicleTypeId": 7, "name": "Bolero Neo", "names": ["Bolero Neo"], "evidenceIds": ["coverage:22"], "years": [2025], "markets": ["IN"], "yearBasis": "catalog-year" }, { "id": "catalog:1837396753:king-ev-max", "kind": "line", "makeId": 1837396753, "vehicleTypeId": 10001, "name": "King EV Max", "names": ["King EV Max"], "evidenceIds": ["coverage:23"], "years": [2025], "markets": ["IN"], "yearBasis": "catalog-year" }, { "id": "lr:defender", "kind": "line", "makeId": 444, "vehicleTypeId": 7, "name": "Defender", "names": [], "evidenceIds": ["coverage:defender-130"] }, { "id": "lr:defender:l663", "kind": "generation", "makeId": 444, "vehicleTypeId": 7, "name": "Modern Defender L663", "names": [], "evidenceIds": ["coverage:defender-130", "coverage:defender-modern-shape"], "years": [2023, 2025], "markets": ["US"], "yearBasis": "model-year", "codes": ["L663"], "parentId": "lr:defender" }, { "id": "lr:defender:l663:130", "kind": "derivative", "makeId": 444, "vehicleTypeId": 7, "name": "Defender 130", "names": ["Defender 130"], "evidenceIds": ["coverage:defender-130", "coverage:defender-modern-shape"], "years": [2023], "yearBasis": "model-year", "bodyStyle": "Five-door extended SUV", "parentId": "lr:defender:l663" }, { "id": "lr:defender:l663:130:my23", "kind": "visual", "makeId": 444, "vehicleTypeId": 7, "name": "Defender 130 MY2023", "names": [], "evidenceIds": ["coverage:defender-130", "coverage:defender-modern-shape"], "years": [2023], "yearBasis": "model-year", "appearanceRevision": "MY2023 extended body", "parentId": "lr:defender:l663:130" }, { "id": "lr:defender:historical", "kind": "generation", "makeId": 444, "vehicleTypeId": 7, "name": "Historical Defender", "names": [], "evidenceIds": ["coverage:defender-historical"], "years": [2012], "markets": ["GB"], "yearBasis": "model-year", "parentId": "lr:defender" }, { "id": "lr:defender:l663:octa", "kind": "derivative", "makeId": 444, "vehicleTypeId": 7, "name": "Defender OCTA", "names": ["Defender OCTA"], "evidenceIds": ["coverage:octa", "coverage:octa-shape"], "years": [2025], "yearBasis": "model-year", "bodyStyle": "Five-door performance SUV", "parentId": "lr:defender:l663" }, { "id": "lr:defender:l663:octa:my25", "kind": "visual", "makeId": 444, "vehicleTypeId": 7, "name": "OCTA MY2025", "names": [], "evidenceIds": ["coverage:octa", "coverage:octa-shape"], "years": [2025], "yearBasis": "model-year", "appearanceRevision": "OCTA wider body and bumpers", "parentId": "lr:defender:l663:octa" }, { "id": "lr:rrsport", "kind": "line", "makeId": 444, "vehicleTypeId": 7, "name": "Range Rover Sport", "names": [], "evidenceIds": ["coverage:lr:rrsport"] }, { "id": "lr:rrsport:2024", "kind": "generation", "makeId": 444, "vehicleTypeId": 7, "name": "Range Rover Sport SV generation", "names": [], "evidenceIds": ["coverage:lr:rrsport"], "years": [2024], "markets": ["US"], "yearBasis": "model-year", "parentId": "lr:rrsport" }, { "id": "lr:rrsport:2024:distinct", "kind": "derivative", "makeId": 444, "vehicleTypeId": 7, "name": "Range Rover Sport SV", "names": ["Range Rover Sport SV"], "evidenceIds": ["coverage:lr:rrsport"], "bodyStyle": "Performance SUV", "parentId": "lr:rrsport:2024" }, { "id": "lr:rrsport:2024:distinct:appearance", "kind": "visual", "makeId": 444, "vehicleTypeId": 7, "name": "Range Rover Sport SV original appearance", "names": [], "evidenceIds": ["coverage:lr:rrsport"], "appearanceRevision": "Original documented 2024 appearance", "parentId": "lr:rrsport:2024:distinct" }, { "id": "porsche:cayenne", "kind": "line", "makeId": 584, "vehicleTypeId": 7, "name": "Cayenne", "names": [], "evidenceIds": ["coverage:porsche:cayenne"] }, { "id": "porsche:cayenne:2026", "kind": "generation", "makeId": 584, "vehicleTypeId": 7, "name": "Cayenne Electric generation", "names": [], "evidenceIds": ["coverage:porsche:cayenne"], "years": [2026], "markets": ["US"], "yearBasis": "model-year", "parentId": "porsche:cayenne" }, { "id": "porsche:cayenne:2026:distinct", "kind": "derivative", "makeId": 584, "vehicleTypeId": 7, "name": "Cayenne Electric", "names": ["Cayenne Electric"], "evidenceIds": ["coverage:porsche:cayenne"], "bodyStyle": "Electric SUV", "parentId": "porsche:cayenne:2026" }, { "id": "porsche:cayenne:2026:distinct:appearance", "kind": "visual", "makeId": 584, "vehicleTypeId": 7, "name": "Cayenne Electric original appearance", "names": [], "evidenceIds": ["coverage:porsche:cayenne"], "appearanceRevision": "Original documented 2026 appearance", "parentId": "porsche:cayenne:2026:distinct" }, { "id": "bmw:5", "kind": "line", "makeId": 452, "vehicleTypeId": 2, "name": "5 Series", "names": [], "evidenceIds": ["coverage:bmw-g60"] }, { "id": "bmw:5:g60", "kind": "generation", "makeId": 452, "vehicleTypeId": 2, "name": "G60", "names": ["5 Series G60", "G60"], "evidenceIds": ["coverage:bmw-g60"], "years": [2024], "markets": ["US"], "yearBasis": "model-year", "codes": ["G60"], "parentId": "bmw:5" }, { "id": "bmw:5:g60:sedan", "kind": "derivative", "makeId": 452, "vehicleTypeId": 2, "name": "G60 Sedan", "names": [], "evidenceIds": ["coverage:bmw-g60"], "bodyStyle": "Four-door sedan", "parentId": "bmw:5:g60" }, { "id": "bmw:5:g60:sedan:my24", "kind": "visual", "makeId": 452, "vehicleTypeId": 2, "name": "G60 MY2024 sedan", "names": [], "evidenceIds": ["coverage:bmw-g60"], "appearanceRevision": "Original MY2024 G60 sedan", "parentId": "bmw:5:g60:sedan" }], "aliases": [{ "text": "maccane", "targetId": "porsche:macan", "kind": "misspelling", "evidenceIds": ["porsche:macan-name"] }, { "text": "Prado", "targetId": "toyota:prado", "kind": "abbreviation", "evidenceIds": ["toyota:prado-name"] }], "catalogLinks": [{ "identityId": "kia:pegas", "year": 2025, "makeId": 499, "modelId": 2554132110, "vehicleTypeId": 2, "evidenceIds": ["oem:0"] }, { "identityId": "bmw:4:second:coupe", "year": 2025, "makeId": 452, "modelId": 1126006782, "vehicleTypeId": 2, "evidenceIds": ["oem:1", "oem:5"] }, { "identityId": "bmw:4:second:convertible", "year": 2025, "makeId": 452, "modelId": 2953619411, "vehicleTypeId": 2, "evidenceIds": ["oem:2", "oem:6"] }, { "identityId": "bmw:4:first:coupe", "year": 2014, "makeId": 452, "modelId": 1126006782, "vehicleTypeId": 2, "evidenceIds": ["oem:3"] }, { "identityId": "lamborghini:huracan:sto", "year": 2023, "makeId": 502, "modelId": 1352298313, "vehicleTypeId": 2, "evidenceIds": ["oem:4"] }, { "identityId": "bmw:4:second:coupe", "year": 2024, "makeId": 452, "modelId": 1126006782, "vehicleTypeId": 2, "evidenceIds": ["oem:5"] }, { "identityId": "bmw:4:second:convertible", "year": 2024, "makeId": 452, "modelId": 2953619411, "vehicleTypeId": 2, "evidenceIds": ["oem:6"] }, { "identityId": "bmw:4:second:gran-coupe", "year": 2024, "makeId": 452, "modelId": 2889216836, "vehicleTypeId": 2, "evidenceIds": ["oem:7"] }, { "identityId": "porsche:macan", "year": 2015, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2016, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2017, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2018, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2019, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2020, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2021, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2022, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2023, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2024, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2025, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2026, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "porsche:macan", "year": 2027, "makeId": 584, "modelId": 8031, "vehicleTypeId": 7, "evidenceIds": ["porsche:macan-name"] }, { "identityId": "toyota:prado", "year": 2015, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2016, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2017, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2018, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2019, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2020, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2021, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2022, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2023, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2024, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2025, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "toyota:prado", "year": 2026, "makeId": 448, "modelId": 4481618588, "vehicleTypeId": 7, "evidenceIds": ["toyota:prado-name"] }, { "identityId": "catalog:11366:ec-van", "year": 2025, "makeId": 11366, "modelId": 1450051149, "vehicleTypeId": 3, "evidenceIds": ["coverage:7"] }, { "identityId": "catalog:498:custin", "year": 2024, "makeId": 498, "modelId": 1826316895, "vehicleTypeId": 7, "evidenceIds": ["coverage:8"] }, { "identityId": "catalog:482:viloran", "year": 2025, "makeId": 482, "modelId": 3792077351, "vehicleTypeId": 7, "evidenceIds": ["coverage:9"] }, { "identityId": "catalog:482:teramont-x", "year": 2025, "makeId": 482, "modelId": 4189100758, "vehicleTypeId": 7, "evidenceIds": ["coverage:10"] }, { "identityId": "catalog:3885285967:03+", "year": 2025, "makeId": 3885285967, "modelId": 4429705849, "vehicleTypeId": 2, "evidenceIds": ["coverage:11"] }, { "identityId": "catalog:3885285967:05", "year": 2025, "makeId": 3885285967, "modelId": 3173939418, "vehicleTypeId": 7, "evidenceIds": ["coverage:12"] }, { "identityId": "catalog:3885285967:06", "year": 2025, "makeId": 3885285967, "modelId": 3157161799, "vehicleTypeId": 7, "evidenceIds": ["coverage:13"] }, { "identityId": "catalog:3885285967:09", "year": 2025, "makeId": 3885285967, "modelId": 2972607990, "vehicleTypeId": 7, "evidenceIds": ["coverage:14"] }, { "identityId": "catalog:3885285967:03", "year": 2026, "makeId": 3885285967, "modelId": 3073273704, "vehicleTypeId": 2, "evidenceIds": ["coverage:15"] }, { "identityId": "catalog:3233934283:dzire", "year": 2026, "makeId": 3233934283, "modelId": 2021639177, "vehicleTypeId": 2, "evidenceIds": ["coverage:16"] }, { "identityId": "catalog:3233934283:s-presso", "year": 2026, "makeId": 3233934283, "modelId": 1194879807, "vehicleTypeId": 2, "evidenceIds": ["coverage:17"] }, { "identityId": "catalog:3233934283:brezza", "year": 2026, "makeId": 3233934283, "modelId": 3546204113, "vehicleTypeId": 7, "evidenceIds": ["coverage:18"] }, { "identityId": "catalog:3233934283:ertiga", "year": 2026, "makeId": 3233934283, "modelId": 1035954311, "vehicleTypeId": 7, "evidenceIds": ["coverage:19"] }, { "identityId": "catalog:3233934283:xl6", "year": 2026, "makeId": 3233934283, "modelId": 3945721295, "vehicleTypeId": 7, "evidenceIds": ["coverage:20"] }, { "identityId": "catalog:2146:bolero", "year": 2025, "makeId": 2146, "modelId": 3114026018, "vehicleTypeId": 7, "evidenceIds": ["coverage:21"] }, { "identityId": "catalog:2146:bolero-neo", "year": 2025, "makeId": 2146, "modelId": 3857168152, "vehicleTypeId": 7, "evidenceIds": ["coverage:22"] }, { "identityId": "catalog:1837396753:king-ev-max", "year": 2025, "makeId": 1837396753, "modelId": 3593650272, "vehicleTypeId": 10001, "evidenceIds": ["coverage:23"] }, { "identityId": "lr:defender:l663:130", "year": 2023, "makeId": 444, "modelId": 2889693437, "vehicleTypeId": 7, "evidenceIds": ["coverage:defender-130"] }, { "identityId": "lr:defender:l663:octa", "year": 2025, "makeId": 444, "modelId": 3392526662, "vehicleTypeId": 7, "evidenceIds": ["coverage:octa"] }, { "identityId": "lr:rrsport:2024:distinct", "year": 2024, "makeId": 444, "modelId": 4860815990, "vehicleTypeId": 7, "evidenceIds": ["coverage:lr:rrsport"] }, { "identityId": "porsche:cayenne:2026:distinct", "year": 2026, "makeId": 584, "modelId": 1040654207, "vehicleTypeId": 7, "evidenceIds": ["coverage:porsche:cayenne"] }, { "identityId": "bmw:5:g60:sedan", "year": 2024, "makeId": 452, "modelId": 1241822597, "vehicleTypeId": 2, "evidenceIds": ["coverage:bmw-g60"] }], "evidence": [{ "id": "oem:0", "sourceId": "manufacturer-reviewed", "url": "https://www.kia.com/content/dam/kwcms/sa/en/files/trim/Pegas/LX-D389.pdf", "retrievedAt": "2026-09-24", "note": "Manufacturer specification explicitly labels Pegas 2025 MY; Saudi distributor Aljabr." }, { "id": "oem:1", "sourceId": "manufacturer-reviewed", "url": "https://www.press.bmwgroup.com/usa/article/detail/T0439311EN_US/the-new-2025-bmw-4-series-coupe-and-convertible", "retrievedAt": "2026-09-24", "note": "BMW USA explicitly identifies 2025 model year and the two body derivatives; facelift, not a new generation." }, { "id": "oem:2", "sourceId": "manufacturer-reviewed", "url": "https://www.press.bmwgroup.com/usa/article/detail/T0439311EN_US/the-new-2025-bmw-4-series-coupe-and-convertible", "retrievedAt": "2026-09-24", "note": "BMW USA explicitly identifies 2025 model year and the two body derivatives; facelift, not a new generation." }, { "id": "oem:3", "sourceId": "manufacturer-reviewed", "url": "https://www.press.bmwgroup.com/usa/article/detail/T0142773EN_US/the-all-new-bmw-4-series-coupe", "retrievedAt": "2026-09-24", "note": "BMW USA introduces the first-generation Coupe as model year 2014." }, { "id": "oem:4", "sourceId": "manufacturer-reviewed", "url": "https://preowned.lamborghini.com/en_gb/vdp/30004705-2023-Hurac%C3%A1n-EVO-LP-640-2-STO", "retrievedAt": "2026-09-24", "note": "Lamborghini official pre-owned US dealer listing explicitly identifies model year 2023 STO; no VIN or individual vehicle data retained." }, { "id": "oem:5", "sourceId": "manufacturer-reviewed", "url": "https://bmwtechinfo.bmwgroup.com/sib_attachments/B000223%20Attachment%205%202024%20BMW%20Group%20models%20reference%20guide%209_23.pdf", "retrievedAt": "2026-09-24", "note": "BMW model-year 2024 reference guide lists G22 Coupe, G23 Convertible, and G26 Gran Coupe separately." }, { "id": "oem:6", "sourceId": "manufacturer-reviewed", "url": "https://bmwtechinfo.bmwgroup.com/sib_attachments/B000223%20Attachment%205%202024%20BMW%20Group%20models%20reference%20guide%209_23.pdf", "retrievedAt": "2026-09-24", "note": "BMW model-year 2024 reference guide lists G22 Coupe, G23 Convertible, and G26 Gran Coupe separately." }, { "id": "oem:7", "sourceId": "manufacturer-reviewed", "url": "https://bmwtechinfo.bmwgroup.com/sib_attachments/B000223%20Attachment%205%202024%20BMW%20Group%20models%20reference%20guide%209_23.pdf", "retrievedAt": "2026-09-24", "note": "BMW model-year 2024 reference guide lists G22 Coupe, G23 Convertible, and G26 Gran Coupe separately." }, { "id": "porsche:macan-name", "sourceId": "porsche-catalog", "url": "https://www.porsche.com/usa/models/macan/", "retrievedAt": "2026-09-24", "note": "Macan name evidence. Reviewed maccane spelling correction is lexical only and does not choose gasoline/electric generation." }, { "id": "toyota:prado-name", "sourceId": "toyota-catalog", "url": "https://www.toyota.com.au/prado", "retrievedAt": "2026-09-24", "note": "Toyota uses both Prado and LandCruiser Prado for the model line. No mapping to other Land Cruiser lines or generations." }, { "id": "coverage:7", "sourceId": "manufacturer-reviewed-catalog", "url": "https://static-cms-prod.vinfastauto.com/20250603_thong-bao-chinh-sach-thuc-day-ban-hang-thang-05.2025.pdf", "retrievedAt": "2026-10-12", "note": "VinFast May 2025 sales policy explicitly offers EC Van preorders May 25-30, 2025. Cargo van; marketed catalog year only, not MY2025 proof." }, { "id": "coverage:8", "sourceId": "manufacturer-reviewed-catalog", "url": "https://thegioiphuongtien.vn/uploaded/2024/Thang%202/News/TGPT%20-%20TC%20Group%20thong%20bao%20doanh%20so%20ban%20hang%20xe%20o%20to%20Hyundai%20thang%201%20nam%202024.pdf", "retrievedAt": "2026-10-12", "note": "TC Group manufacturer/distributor sales bulletin explicitly records Custin sales in January 2024. Primary authored bulletin mirrored by publication; catalog sales year, not model year. Official VN spelling Custin; Custo alias remains unreviewed." }, { "id": "coverage:9", "sourceId": "manufacturer-reviewed-catalog", "url": "https://newsletter.vw.com.vn/wp-content/uploads/2025/06/NEWSLETTER-T6_1080x1920-1.pdf", "retrievedAt": "2026-10-12", "note": "Volkswagen Vietnam June 2025 newsletter includes this marketed model; calendar catalog year, not MY. Viloran MPV and Teramont X SUV body identities stay separate from Teramont." }, { "id": "coverage:10", "sourceId": "manufacturer-reviewed-catalog", "url": "https://newsletter.vw.com.vn/wp-content/uploads/2025/06/NEWSLETTER-T6_1080x1920-1.pdf", "retrievedAt": "2026-10-12", "note": "Volkswagen Vietnam June 2025 newsletter includes this marketed model; calendar catalog year, not MY. Viloran MPV and Teramont X SUV body identities stay separate from Teramont." }, { "id": "coverage:11", "sourceId": "manufacturer-reviewed-catalog", "url": "https://lynkco.com.vn/tu-hao-tien-buoc-uu-dai-but-pha-cung-lynk-co-thang-9-2025", "retrievedAt": "2026-10-12", "note": "Official Vietnam sales offer explicitly applies September 1-30, 2025 and names this model. Catalog marketed year only; 03+ is distinct from 03." }, { "id": "coverage:12", "sourceId": "manufacturer-reviewed-catalog", "url": "https://lynkco.com.vn/tu-hao-tien-buoc-uu-dai-but-pha-cung-lynk-co-thang-9-2025", "retrievedAt": "2026-10-12", "note": "Official Vietnam sales offer explicitly applies September 1-30, 2025 and names this model. Catalog marketed year only; 03+ is distinct from 03." }, { "id": "coverage:13", "sourceId": "manufacturer-reviewed-catalog", "url": "https://lynkco.com.vn/tu-hao-tien-buoc-uu-dai-but-pha-cung-lynk-co-thang-9-2025", "retrievedAt": "2026-10-12", "note": "Official Vietnam sales offer explicitly applies September 1-30, 2025 and names this model. Catalog marketed year only; 03+ is distinct from 03." }, { "id": "coverage:14", "sourceId": "manufacturer-reviewed-catalog", "url": "https://lynkco.com.vn/tu-hao-tien-buoc-uu-dai-but-pha-cung-lynk-co-thang-9-2025", "retrievedAt": "2026-10-12", "note": "Official Vietnam sales offer explicitly applies September 1-30, 2025 and names this model. Catalog marketed year only; 03+ is distinct from 03." }, { "id": "coverage:15", "sourceId": "manufacturer-reviewed-catalog", "url": "https://lynkco.com.vn/en/lynk-co-chinh-thuc-gioi-thieu-lynk-co-02-va-lynk-co-03-hai-mau-xe-hoan-toan-moi-cua-thuong-hieu-tai-thi-truong-viet-nam", "retrievedAt": "2026-10-12", "note": "Official Vietnam launch and market offer dated August 12, 2026 names the 03 separately from 03+. This is marketed catalog year, not MY2026." }, { "id": "coverage:16", "sourceId": "manufacturer-reviewed-catalog", "url": "https://www.marutisuzuki.com/content/dam/arena-eds/corporate/press-release/assets/documents/2026/april/Press_Release_Maruti_Suzuki_sales_in_March_2026_and_FY_2025_26.pdf", "retrievedAt": "2026-10-12", "note": "Manufacturer March 2026 sales table explicitly includes the model in a category with positive March sales. Calendar catalog year of marketed range, not model year; existing Maruti make ID preserved." }, { "id": "coverage:17", "sourceId": "manufacturer-reviewed-catalog", "url": "https://www.marutisuzuki.com/content/dam/arena-eds/corporate/press-release/assets/documents/2026/april/Press_Release_Maruti_Suzuki_sales_in_March_2026_and_FY_2025_26.pdf", "retrievedAt": "2026-10-12", "note": "Manufacturer March 2026 sales table explicitly includes the model in a category with positive March sales. Calendar catalog year of marketed range, not model year; existing Maruti make ID preserved." }, { "id": "coverage:18", "sourceId": "manufacturer-reviewed-catalog", "url": "https://www.marutisuzuki.com/content/dam/arena-eds/corporate/press-release/assets/documents/2026/april/Press_Release_Maruti_Suzuki_sales_in_March_2026_and_FY_2025_26.pdf", "retrievedAt": "2026-10-12", "note": "Manufacturer March 2026 sales table explicitly includes the model in a category with positive March sales. Calendar catalog year of marketed range, not model year; existing Maruti make ID preserved." }, { "id": "coverage:19", "sourceId": "manufacturer-reviewed-catalog", "url": "https://www.marutisuzuki.com/content/dam/arena-eds/corporate/press-release/assets/documents/2026/april/Press_Release_Maruti_Suzuki_sales_in_March_2026_and_FY_2025_26.pdf", "retrievedAt": "2026-10-12", "note": "Manufacturer March 2026 sales table explicitly includes the model in a category with positive March sales. Calendar catalog year of marketed range, not model year; existing Maruti make ID preserved." }, { "id": "coverage:20", "sourceId": "manufacturer-reviewed-catalog", "url": "https://www.marutisuzuki.com/content/dam/arena-eds/corporate/press-release/assets/documents/2026/april/Press_Release_Maruti_Suzuki_sales_in_March_2026_and_FY_2025_26.pdf", "retrievedAt": "2026-10-12", "note": "Manufacturer March 2026 sales table explicitly includes the model in a category with positive March sales. Calendar catalog year of marketed range, not model year; existing Maruti make ID preserved." }, { "id": "coverage:21", "sourceId": "manufacturer-reviewed-catalog", "url": "https://auto.mahindra.com/press-release/mahindra-introduces-new-bolero-range.html", "retrievedAt": "2026-10-12", "note": "Mahindra India October 6, 2025 release offers this member of the new Bolero range. Calendar catalog year, not model-year history; Neo remains distinct." }, { "id": "coverage:22", "sourceId": "manufacturer-reviewed-catalog", "url": "https://auto.mahindra.com/press-release/mahindra-introduces-new-bolero-range.html", "retrievedAt": "2026-10-12", "note": "Mahindra India October 6, 2025 release offers this member of the new Bolero range. Calendar catalog year, not model-year history; Neo remains distinct." }, { "id": "coverage:23", "sourceId": "manufacturer-reviewed-catalog", "url": "https://www.tvsmotor.com/-/media/04C72359318E4567A12EF684616EB12B.ashx", "retrievedAt": "2026-10-12", "note": "TVS July 31, 2025 earnings-call transcript explicitly reports sales of the recently launched King EV Max electric passenger three-wheeler. Calendar catalog year only." }, { "id": "coverage:defender-130", "sourceId": "manufacturer-reviewed", "url": "https://static.nhtsa.gov/odi/rcl/2023/RCRIT-23V137-8571.pdf", "retrievedAt": "2026-10-12", "note": "JLR recall technical questions explicitly identify 2023 model-year Defender 130 and third-row seating; modern L663 body. Manufacturer document hosted by NHTSA." }, { "id": "coverage:defender-modern-shape", "sourceId": "manufacturer-reviewed", "url": "https://www.landroverusa.com/vehicles/defender-23my/defender-130/index", "retrievedAt": "2026-10-12", "note": "Official Defender 130 MY23 product page describes extended enclosed body, eight seats and third-row glazing; separate from historical Defender 130 pickup." }, { "id": "coverage:defender-historical", "sourceId": "manufacturer-reviewed", "url": "https://media.jlr.com/defender/en/press-kit", "retrievedAt": "2026-10-12", "note": "JLR explicitly separates historical Defender (1990-2016) from current 90, 110 and 130; this establishes separate generations, not equivalence or every historical year." }, { "id": "coverage:octa", "sourceId": "manufacturer-reviewed", "url": "https://media.jlr.com/corporate/en-us/news/2024/04/groundbreaking-new-defender-octa-will-be-revealed-july-3-following-exclusive-client", "retrievedAt": "2026-10-12", "note": "JLR explicitly allocates Defender OCTA to North American Model Year 2025. Distinct performance derivative; no base Defender substitution." }, { "id": "coverage:octa-shape", "sourceId": "manufacturer-reviewed", "url": "https://media.jlr.com/defender/news/2024/07/introducing-defender-octa-new-master-extreme-performance-and-road", "retrievedAt": "2026-10-12", "note": "JLR distinguishes OCTA performance chassis, wider track and flared wheel arches, raised ride height and revised bumpers. No base Defender appearance sharing." }, { "id": "coverage:lr:rrsport", "sourceId": "manufacturer-reviewed", "url": "https://media.jlr.com/range-rover/en-us/news/2023/05/new-range-rover-sport-sv-modern-luxury-performance-flagship", "retrievedAt": "2026-10-12", "note": "JLR US introduces SV as new for 2024 in the Range Rover Sport model-year update; EDITION ONE performance flagship with distinct chassis/body features, not SVR." }, { "id": "coverage:porsche:cayenne", "sourceId": "manufacturer-reviewed", "url": "https://newsroom.porsche.com/en_US/2025/products/new-porsche-all-rounder-Cayenne-nameplate-expands-portfolio-to-include-electrification-41132.html", "retrievedAt": "2026-10-12", "note": "Porsche USA explicitly introduces the 2026 Cayenne Electric SUV alongside separate combustion and plug-in hybrid variants." }, { "id": "coverage:bmw-g60", "sourceId": "manufacturer-reviewed", "url": "https://www.press.bmwgroup.com/usa/article/attachment/T0418778EN_US/624323", "retrievedAt": "2026-10-12", "note": "BMW USA technical specification explicitly identifies 2024 5 Series G60; four-door sedan, separate from other generations and Touring bodies." }], "homologation": [], "visualCompatibility": [] };
|
|
4
4
|
exports.default = graph;
|
package/dist/identity.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Portable identities. These IDs never replace published numeric catalog IDs. */
|
|
2
2
|
export type IdentityKind = "line" | "generation" | "derivative" | "specification" | "visual";
|
|
3
|
-
export type YearBasis = "model-year" | "manufacture-year" | "registration-year" | "first-admission-year";
|
|
3
|
+
export type YearBasis = "model-year" | "manufacture-year" | "registration-year" | "first-admission-year" | "catalog-year";
|
|
4
4
|
export interface IdentityScope {
|
|
5
5
|
years?: number[];
|
|
6
6
|
markets?: string[];
|
package/dist/identity.js
CHANGED
|
@@ -11,6 +11,8 @@ function scopeMatches(scope, context) {
|
|
|
11
11
|
}
|
|
12
12
|
function normalizeIdentityText(text) {
|
|
13
13
|
return text.normalize("NFKD").replace(/[\u0300-\u036f]/g, "").toLowerCase()
|
|
14
|
+
// A plus badge can identify a distinct body/performance model (03 vs 03+).
|
|
15
|
+
.replace(/\+/g, " plus ")
|
|
14
16
|
.replace(/[^a-z0-9\p{L}]+/gu, " ").trim().replace(/\s+/g, " ");
|
|
15
17
|
}
|
|
16
18
|
/** Direct, directional facts only; no reverse or transitive inference. */
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export interface DataSource {
|
|
|
11
11
|
region: string;
|
|
12
12
|
description: string;
|
|
13
13
|
retrievedAt: string;
|
|
14
|
+
/** Present on reviewed catalogs; catalog-year means marketed during that year, not model year. */
|
|
15
|
+
yearBasis?: "model-year" | "catalog-year";
|
|
14
16
|
vehicleTypeIds: number[];
|
|
15
17
|
yearFrom: number;
|
|
16
18
|
yearTo: number;
|
package/dist/index.js
CHANGED
|
@@ -66,6 +66,7 @@ function getDataSources() {
|
|
|
66
66
|
region: source.region,
|
|
67
67
|
description: source.description,
|
|
68
68
|
retrievedAt: source.retrieved_at,
|
|
69
|
+
...(source.year_basis ? { yearBasis: source.year_basis } : {}),
|
|
69
70
|
vehicleTypeIds: [...source.vehicle_type_ids],
|
|
70
71
|
yearFrom: source.year_from,
|
|
71
72
|
yearTo: source.year_to,
|
package/dist/search.js
CHANGED
|
@@ -21,6 +21,8 @@ const MAKE_SEARCH_ALIASES = new Map([
|
|
|
21
21
|
["harley davidson", ["harley"]],
|
|
22
22
|
["mercedes benz", ["mercedes", "benz", "merc"]],
|
|
23
23
|
["volkswagen", ["vw"]],
|
|
24
|
+
// TQ WULING is the official Malaysian brand; retain its published identity.
|
|
25
|
+
["tq wuling", ["wuling"]],
|
|
24
26
|
]);
|
|
25
27
|
const sourceMaskById = new Map(data_1.default.sources.map((source, index) => [source.source_id, 2 ** index]));
|
|
26
28
|
const vehicleTypeNameById = new Map(data_1.default.vehicleTypes.map((type) => [type.vehicle_type_id, type.vehicle_type_name]));
|