@fboes/aerofly-data 1.9.2 → 1.9.3
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/data/aircraft-liveries-missing.md +0 -240
- package/data/aircraft-liveries.json +700 -350
- package/data/airport-coordinates-object.json +3 -3
- package/data/airport-coordinates.json +2 -2
- package/data/airports.geojson +10818 -10819
- package/docs/update-liveries.md +13 -0
- package/package.json +1 -1
- package/src/aircraft-functions.js +8 -119
- package/src/livery-to-icao.json +301 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Update livery-to-ICAO mappings
|
|
2
|
+
|
|
3
|
+
Review `data/aircraft-liveries-missing.md` and update `src/livery-to-icao.json` with mappings for entries that are clearly official airlines.
|
|
4
|
+
|
|
5
|
+
- Use each livery name, converted to lowercase, as the JSON key.
|
|
6
|
+
- Use the airline's official three-letter ICAO designator, not its IATA code.
|
|
7
|
+
- Add a mapping only when both the airline identity and its ICAO designator are unambiguous. Check reliable sources when needed.
|
|
8
|
+
- For clear airline-branded variants (such as cargo, anniversary, or special liveries), use the airline's ICAO designator.
|
|
9
|
+
- Leave ambiguous names, fictional liveries, military/government liveries, and other non-airline designs unmapped. Do not guess.
|
|
10
|
+
- Preserve all existing mappings; do not overwrite a mapping with a different code without confirming and explaining the correction.
|
|
11
|
+
- Keep the JSON valid and do not modify the missing-livery list.
|
|
12
|
+
|
|
13
|
+
After editing, verify that the JSON parses, all keys are lowercase, no duplicate keys were introduced, and the aircraft-functions module still loads.
|
package/package.json
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path from "path";
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* @type {Record<string, string>}
|
|
8
|
+
*/
|
|
9
|
+
const LIVERY_TO_ICAO = JSON.parse(fs.readFileSync(new URL("./livery-to-icao.json", import.meta.url), "utf8"));
|
|
10
|
+
|
|
6
11
|
/**
|
|
7
12
|
* @typedef AeroflyAircraftParsed
|
|
8
13
|
* @type {{
|
|
@@ -123,126 +128,10 @@ export function getAeroflyAircraft(directory) {
|
|
|
123
128
|
* @param {string} airlineName
|
|
124
129
|
* @returns {string} icaoCode of airline
|
|
125
130
|
*/
|
|
126
|
-
|
|
131
|
+
function getLiveryIcaoCode(airlineName) {
|
|
127
132
|
const name = airlineName.toLowerCase();
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
case "all nippon airlines":
|
|
131
|
-
return "ANA";
|
|
132
|
-
case "american airlines":
|
|
133
|
-
case "american":
|
|
134
|
-
return "AAL";
|
|
135
|
-
case "all nippon airways":
|
|
136
|
-
return "ANA";
|
|
137
|
-
case "china eastern":
|
|
138
|
-
return "CES";
|
|
139
|
-
case "lufthansa":
|
|
140
|
-
case "lufthansa 100":
|
|
141
|
-
return "DLH";
|
|
142
|
-
case "united airlines":
|
|
143
|
-
case "united":
|
|
144
|
-
return "UAL";
|
|
145
|
-
case "delta air lines":
|
|
146
|
-
case "delta":
|
|
147
|
-
return "DAL";
|
|
148
|
-
case "emirates":
|
|
149
|
-
return "UAE";
|
|
150
|
-
case "singapore airlines":
|
|
151
|
-
return "SIA";
|
|
152
|
-
case "ethiopian":
|
|
153
|
-
return "ETH";
|
|
154
|
-
case "air france":
|
|
155
|
-
return "AFR";
|
|
156
|
-
case "british airways":
|
|
157
|
-
return "BAW";
|
|
158
|
-
case "china southern airlines":
|
|
159
|
-
return "CSN";
|
|
160
|
-
case "turkish airlines":
|
|
161
|
-
return "THY";
|
|
162
|
-
case "air canada":
|
|
163
|
-
return "ACA";
|
|
164
|
-
case "etihad airways":
|
|
165
|
-
case "etihad":
|
|
166
|
-
return "ETD";
|
|
167
|
-
case "latam airlines":
|
|
168
|
-
case "latam":
|
|
169
|
-
return "LAN";
|
|
170
|
-
case "tam airlines":
|
|
171
|
-
case "tam":
|
|
172
|
-
return "TAM";
|
|
173
|
-
case "jetblue airways":
|
|
174
|
-
case "jetblue":
|
|
175
|
-
return "JBU";
|
|
176
|
-
case "azul brazilian airlines":
|
|
177
|
-
return "AZU";
|
|
178
|
-
case "china eastern airlines":
|
|
179
|
-
return "CES";
|
|
180
|
-
case "ethiopian airlines":
|
|
181
|
-
return "ETH";
|
|
182
|
-
case "klm royal dutch airlines":
|
|
183
|
-
case "klm":
|
|
184
|
-
return "KLM";
|
|
185
|
-
case "korean air":
|
|
186
|
-
case "korean air lines":
|
|
187
|
-
case "korean airlines":
|
|
188
|
-
return "KAL";
|
|
189
|
-
case "qatar airways":
|
|
190
|
-
return "QTR";
|
|
191
|
-
case "swiss international air lines":
|
|
192
|
-
case "swiss":
|
|
193
|
-
return "SWR";
|
|
194
|
-
case "hawaiian airlines":
|
|
195
|
-
return "HVN";
|
|
196
|
-
case "eurowings":
|
|
197
|
-
return "EWG";
|
|
198
|
-
case "easyjet":
|
|
199
|
-
return "EZY";
|
|
200
|
-
case "iberia":
|
|
201
|
-
return "IBE";
|
|
202
|
-
case "sas":
|
|
203
|
-
return "SAS";
|
|
204
|
-
case "aeroflot":
|
|
205
|
-
return "AFL";
|
|
206
|
-
case "air china":
|
|
207
|
-
return "CCA";
|
|
208
|
-
case "alitalia":
|
|
209
|
-
return "AZA";
|
|
210
|
-
case "brussels airlines":
|
|
211
|
-
return "BEL";
|
|
212
|
-
case "cathay pacific":
|
|
213
|
-
return "CPA";
|
|
214
|
-
case "china southern":
|
|
215
|
-
return "CSN";
|
|
216
|
-
case "norwegian":
|
|
217
|
-
return "NAX";
|
|
218
|
-
case "aer lingus":
|
|
219
|
-
return "EIN";
|
|
220
|
-
case "avianca":
|
|
221
|
-
return "AVA";
|
|
222
|
-
case "finnair":
|
|
223
|
-
return "FIN";
|
|
224
|
-
case "tap portugal":
|
|
225
|
-
return "TAP";
|
|
226
|
-
case "egypt air":
|
|
227
|
-
return "MSR";
|
|
228
|
-
case "japan airlines":
|
|
229
|
-
return "JAL";
|
|
230
|
-
case "kuwait":
|
|
231
|
-
return "KAC";
|
|
232
|
-
case "saudia":
|
|
233
|
-
case "saudia arabian":
|
|
234
|
-
return "SVA";
|
|
235
|
-
case "virgin australia":
|
|
236
|
-
return "VOZ";
|
|
237
|
-
case "virgin":
|
|
238
|
-
case "virgin atlantic":
|
|
239
|
-
return "VIR";
|
|
240
|
-
case "qantas":
|
|
241
|
-
return "QFA";
|
|
242
|
-
default:
|
|
243
|
-
return "";
|
|
244
|
-
}
|
|
245
|
-
};
|
|
133
|
+
return Object.hasOwn(LIVERY_TO_ICAO, name) ? LIVERY_TO_ICAO[name] : "";
|
|
134
|
+
}
|
|
246
135
|
|
|
247
136
|
/**
|
|
248
137
|
* @param {string} tmdFileContent
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adria": "ADR",
|
|
3
|
+
"aegean": "AEE",
|
|
4
|
+
"aer lingus": "EIN",
|
|
5
|
+
"aero logic": "AEB",
|
|
6
|
+
"aeroflot": "AFL",
|
|
7
|
+
"aeroitalia": "AEZ",
|
|
8
|
+
"aerolineas argentinas": "ARG",
|
|
9
|
+
"aeromexico": "AMX",
|
|
10
|
+
"air algerie": "DAH",
|
|
11
|
+
"air asia": "AXM",
|
|
12
|
+
"air asia 100th": "AXM",
|
|
13
|
+
"air austral": "REU",
|
|
14
|
+
"air baltic": "BTI",
|
|
15
|
+
"air berlin": "BER",
|
|
16
|
+
"air busan": "ABL",
|
|
17
|
+
"air cairo": "MSC",
|
|
18
|
+
"air canada": "ACA",
|
|
19
|
+
"air canada rouge": "ROU",
|
|
20
|
+
"air caraibes": "FWI",
|
|
21
|
+
"air china": "CCA",
|
|
22
|
+
"air corsica": "CCM",
|
|
23
|
+
"air cote d'ivoire": "VRE",
|
|
24
|
+
"air europa": "AEA",
|
|
25
|
+
"air france": "AFR",
|
|
26
|
+
"air france cargo": "AFR",
|
|
27
|
+
"air india": "AIC",
|
|
28
|
+
"air jamaica": "AJM",
|
|
29
|
+
"air macau": "AMU",
|
|
30
|
+
"air mauritius": "MAU",
|
|
31
|
+
"air new zealand": "ANZ",
|
|
32
|
+
"air premia": "APZ",
|
|
33
|
+
"air seychelles": "SEY",
|
|
34
|
+
"air tahiti nui": "THT",
|
|
35
|
+
"air tanzania": "ATC",
|
|
36
|
+
"air transat": "TSC",
|
|
37
|
+
"airasia": "AXM",
|
|
38
|
+
"airberlin": "BER",
|
|
39
|
+
"aircalin": "ACI",
|
|
40
|
+
"ajet": "TKJ",
|
|
41
|
+
"alaska": "ASA",
|
|
42
|
+
"alaska airlines": "ASA",
|
|
43
|
+
"alitalia": "AZA",
|
|
44
|
+
"all nippon airlines": "ANA",
|
|
45
|
+
"all nippon airways": "ANA",
|
|
46
|
+
"allegiant": "AAY",
|
|
47
|
+
"america west": "AWE",
|
|
48
|
+
"american": "AAL",
|
|
49
|
+
"american airlines": "AAL",
|
|
50
|
+
"ana": "ANA",
|
|
51
|
+
"ana cargo": "ANA",
|
|
52
|
+
"ana kai": "ANA",
|
|
53
|
+
"ana kala": "ANA",
|
|
54
|
+
"ana lani": "ANA",
|
|
55
|
+
"angola airlines": "DTA",
|
|
56
|
+
"arik": "ARA",
|
|
57
|
+
"asiana": "AAR",
|
|
58
|
+
"atlantic airways": "FLI",
|
|
59
|
+
"atlas": "GTI",
|
|
60
|
+
"aurora": "SHU",
|
|
61
|
+
"austrian": "AUA",
|
|
62
|
+
"avelo": "VXP",
|
|
63
|
+
"avianca": "AVA",
|
|
64
|
+
"azerbaijan": "AHY",
|
|
65
|
+
"azores": "RZO",
|
|
66
|
+
"azul": "AZU",
|
|
67
|
+
"azul brazilian airlines": "AZU",
|
|
68
|
+
"bamboo": "BAV",
|
|
69
|
+
"bangkok air": "BKP",
|
|
70
|
+
"bangladesh airlines": "BBC",
|
|
71
|
+
"batik": "BTK",
|
|
72
|
+
"bhutan airlines": "BTN",
|
|
73
|
+
"braathens": "BTH",
|
|
74
|
+
"british airways": "BAW",
|
|
75
|
+
"british airways 1976": "BAW",
|
|
76
|
+
"british airways 1985": "BAW",
|
|
77
|
+
"british airways 1998": "BAW",
|
|
78
|
+
"british midland": "BMA",
|
|
79
|
+
"brussels": "BEL",
|
|
80
|
+
"brussels airlines": "BEL",
|
|
81
|
+
"camair-co": "CMR",
|
|
82
|
+
"caribbean airlines": "BWA",
|
|
83
|
+
"cathay pacific": "CPA",
|
|
84
|
+
"cebu pacific": "CEB",
|
|
85
|
+
"china airlines": "CAL",
|
|
86
|
+
"china airlines cargo": "CAL",
|
|
87
|
+
"china eastern": "CES",
|
|
88
|
+
"china eastern airlines": "CES",
|
|
89
|
+
"china eastern cargo": "CEA",
|
|
90
|
+
"china southern": "CSN",
|
|
91
|
+
"china southern airlines": "CSN",
|
|
92
|
+
"china southern cargo": "CSN",
|
|
93
|
+
"citilink": "CTV",
|
|
94
|
+
"cma cgm cargo": "CMA",
|
|
95
|
+
"condor": "CFG",
|
|
96
|
+
"condor island": "CFG",
|
|
97
|
+
"condor sea": "CFG",
|
|
98
|
+
"condor sunshine": "CFG",
|
|
99
|
+
"continental": "COA",
|
|
100
|
+
"continental airlines": "COA",
|
|
101
|
+
"copa airlines": "CMP",
|
|
102
|
+
"corendon": "CAI",
|
|
103
|
+
"corsair": "CRL",
|
|
104
|
+
"croatia": "CTN",
|
|
105
|
+
"cyprus": "CYP",
|
|
106
|
+
"czech airlines": "CSA",
|
|
107
|
+
"darwin": "DWT",
|
|
108
|
+
"delta": "DAL",
|
|
109
|
+
"delta air lines": "DAL",
|
|
110
|
+
"discover": "OCN",
|
|
111
|
+
"druk air": "DRK",
|
|
112
|
+
"drukair": "DRK",
|
|
113
|
+
"easyjet": "EZY",
|
|
114
|
+
"edelweiss": "EDW",
|
|
115
|
+
"egypt air": "MSR",
|
|
116
|
+
"egyptair": "MSR",
|
|
117
|
+
"el al": "ELY",
|
|
118
|
+
"emirates": "UAE",
|
|
119
|
+
"emirates cargo": "UAE",
|
|
120
|
+
"emirates expo": "UAE",
|
|
121
|
+
"enter air": "ENT",
|
|
122
|
+
"estonian air": "ELL",
|
|
123
|
+
"ethiad": "ETD",
|
|
124
|
+
"ethiopian": "ETH",
|
|
125
|
+
"ethiopian airlines": "ETH",
|
|
126
|
+
"ethiopian cargo": "ETH",
|
|
127
|
+
"etihad": "ETD",
|
|
128
|
+
"etihad 50": "ETD",
|
|
129
|
+
"etihad airways": "ETD",
|
|
130
|
+
"etihad cargo": "ETD",
|
|
131
|
+
"eurowings": "EWG",
|
|
132
|
+
"eva air": "EVA",
|
|
133
|
+
"eva air cargo": "EVA",
|
|
134
|
+
"eva airlines": "EVA",
|
|
135
|
+
"fedex": "FDX",
|
|
136
|
+
"fiji": "FJI",
|
|
137
|
+
"finnair": "FIN",
|
|
138
|
+
"fly arystan": "AYK",
|
|
139
|
+
"fly egypt": "FEG",
|
|
140
|
+
"flybe": "BEE",
|
|
141
|
+
"flybondi": "FBZ",
|
|
142
|
+
"flydubai": "FDB",
|
|
143
|
+
"flynas": "KNE",
|
|
144
|
+
"flyone": "FIA",
|
|
145
|
+
"flysafair": "SFR",
|
|
146
|
+
"freebird": "FHY",
|
|
147
|
+
"frenchbee": "FBU",
|
|
148
|
+
"frontier": "FFT",
|
|
149
|
+
"garuda": "GIA",
|
|
150
|
+
"garuda indonesia": "GIA",
|
|
151
|
+
"germanwings": "GWI",
|
|
152
|
+
"gol": "GLO",
|
|
153
|
+
"gulf air": "GFA",
|
|
154
|
+
"hainan": "CHH",
|
|
155
|
+
"hapag-lloyd": "HLF",
|
|
156
|
+
"hawaiian": "ASA",
|
|
157
|
+
"hawaiian airlines": "ASA",
|
|
158
|
+
"hong kong express": "HKE",
|
|
159
|
+
"iberia": "IBE",
|
|
160
|
+
"icelandair": "ICE",
|
|
161
|
+
"indigo": "IGO",
|
|
162
|
+
"israir": "ISR",
|
|
163
|
+
"ita airways": "ITY",
|
|
164
|
+
"japan air commuter": "JAC",
|
|
165
|
+
"japan airlines": "JAL",
|
|
166
|
+
"jazeera": "JZR",
|
|
167
|
+
"jeju air": "JJA",
|
|
168
|
+
"jet airways": "JAI",
|
|
169
|
+
"jet2": "EXS",
|
|
170
|
+
"jet2 holidays": "EXS",
|
|
171
|
+
"jetblue": "JBU",
|
|
172
|
+
"jetblue airways": "JBU",
|
|
173
|
+
"jetsmart": "JAT",
|
|
174
|
+
"jetstar": "JST",
|
|
175
|
+
"juneyao": "DKH",
|
|
176
|
+
"juneyao air": "DKH",
|
|
177
|
+
"kenya airways": "KQA",
|
|
178
|
+
"klm": "KLM",
|
|
179
|
+
"klm orange pride": "KLM",
|
|
180
|
+
"klm royal dutch airlines": "KLM",
|
|
181
|
+
"korean air": "KAL",
|
|
182
|
+
"korean air cargo": "KAL",
|
|
183
|
+
"korean air lines": "KAL",
|
|
184
|
+
"korean airlines": "KAL",
|
|
185
|
+
"kulula": "CAW",
|
|
186
|
+
"kuwait": "KAC",
|
|
187
|
+
"lan": "LAN",
|
|
188
|
+
"latam": "LAN",
|
|
189
|
+
"latam airlines": "LAN",
|
|
190
|
+
"latam cargo": "LCO",
|
|
191
|
+
"latam green": "LAN",
|
|
192
|
+
"lot": "LOT",
|
|
193
|
+
"lot polish airlines": "LOT",
|
|
194
|
+
"lufthansa": "DLH",
|
|
195
|
+
"lufthansa 100": "DLH",
|
|
196
|
+
"lufthansa 100 years": "DLH",
|
|
197
|
+
"lufthansa cargo": "GEC",
|
|
198
|
+
"luxair": "LGL",
|
|
199
|
+
"maersk": "MAE",
|
|
200
|
+
"malaysia": "MAS",
|
|
201
|
+
"malaysia airlines": "MAS",
|
|
202
|
+
"malev": "MAH",
|
|
203
|
+
"mavi gok": "MGH",
|
|
204
|
+
"mexicana": "MXA",
|
|
205
|
+
"neos": "NOS",
|
|
206
|
+
"nokair blue": "NOK",
|
|
207
|
+
"nokair green": "NOK",
|
|
208
|
+
"nokair orange": "NOK",
|
|
209
|
+
"nokair purple": "NOK",
|
|
210
|
+
"nordica": "NBT",
|
|
211
|
+
"norse": "NBT",
|
|
212
|
+
"northwest": "NWA",
|
|
213
|
+
"norwegian": "NAX",
|
|
214
|
+
"oman air": "OMA",
|
|
215
|
+
"pakistan": "PIA",
|
|
216
|
+
"passionair": "DIG",
|
|
217
|
+
"peach": "APJ",
|
|
218
|
+
"pegasus": "PGT",
|
|
219
|
+
"pelita air": "PAS",
|
|
220
|
+
"philippine airlines": "PAL",
|
|
221
|
+
"play": "FPY",
|
|
222
|
+
"porter": "POE",
|
|
223
|
+
"qanot sharq": "QNT",
|
|
224
|
+
"qantas": "QFA",
|
|
225
|
+
"qantas 100": "QFA",
|
|
226
|
+
"qatar": "QTR",
|
|
227
|
+
"qatar airways": "QTR",
|
|
228
|
+
"qatar cargo": "QTR",
|
|
229
|
+
"qatar oneworld": "QTR",
|
|
230
|
+
"qazaq": "QAZ",
|
|
231
|
+
"rex": "RXA",
|
|
232
|
+
"riyadh air": "RXI",
|
|
233
|
+
"royal air maroc": "RAM",
|
|
234
|
+
"royal jordanian": "RJA",
|
|
235
|
+
"ryanair": "RYR",
|
|
236
|
+
"s7": "SBI",
|
|
237
|
+
"sa express": "EXY",
|
|
238
|
+
"sas": "SAS",
|
|
239
|
+
"sas commuter": "SAS",
|
|
240
|
+
"saudi arabian": "SVA",
|
|
241
|
+
"saudi cargo": "SVA",
|
|
242
|
+
"saudia": "SVA",
|
|
243
|
+
"saudia arabian": "SVA",
|
|
244
|
+
"scandinavian airlines": "SAS",
|
|
245
|
+
"scat": "VSV",
|
|
246
|
+
"scoot": "SCO",
|
|
247
|
+
"shanghai airlines": "CSH",
|
|
248
|
+
"shenzhen airlines": "CSZ",
|
|
249
|
+
"sichuan airlines": "CSC",
|
|
250
|
+
"silkway": "AZG",
|
|
251
|
+
"singapore airlines": "SIA",
|
|
252
|
+
"skyalps": "SWU",
|
|
253
|
+
"skyup": "SQP",
|
|
254
|
+
"skywork": "SRK",
|
|
255
|
+
"smartwings": "TVS",
|
|
256
|
+
"south african": "SAA",
|
|
257
|
+
"southwest": "SWA",
|
|
258
|
+
"spicejet": "SEJ",
|
|
259
|
+
"spirit": "NKS",
|
|
260
|
+
"spring japan": "SJO",
|
|
261
|
+
"sriwijaya air": "SJY",
|
|
262
|
+
"starflyer": "SFJ",
|
|
263
|
+
"starlux": "SJX",
|
|
264
|
+
"starperu": "SRU",
|
|
265
|
+
"sun country": "SCX",
|
|
266
|
+
"sun express": "SXS",
|
|
267
|
+
"sunclass": "VKG",
|
|
268
|
+
"super air jet": "SJV",
|
|
269
|
+
"swiss": "SWR",
|
|
270
|
+
"swiss international air lines": "SWR",
|
|
271
|
+
"tam": "TAM",
|
|
272
|
+
"tam airlines": "TAM",
|
|
273
|
+
"tap": "TAP",
|
|
274
|
+
"tap portugal": "TAP",
|
|
275
|
+
"thai": "THA",
|
|
276
|
+
"thai airways": "THA",
|
|
277
|
+
"thai lion": "TLM",
|
|
278
|
+
"thaicargo": "THA",
|
|
279
|
+
"transavia": "TRA",
|
|
280
|
+
"transnusa": "TNU",
|
|
281
|
+
"tunisair": "TAR",
|
|
282
|
+
"turkish airlines": "THY",
|
|
283
|
+
"turkish cargo": "THY",
|
|
284
|
+
"united": "UAL",
|
|
285
|
+
"united airlines": "UAL",
|
|
286
|
+
"us airways": "AWE",
|
|
287
|
+
"vietjet air": "VJC",
|
|
288
|
+
"vietnam airlines": "HVN",
|
|
289
|
+
"virgin": "VIR",
|
|
290
|
+
"virgin atlantic": "VIR",
|
|
291
|
+
"virgin australia": "VOZ",
|
|
292
|
+
"vistara": "VTI",
|
|
293
|
+
"volaris": "VOI",
|
|
294
|
+
"volotea": "VOE",
|
|
295
|
+
"vueling": "VLG",
|
|
296
|
+
"westjet": "WJA",
|
|
297
|
+
"wideroe": "WIF",
|
|
298
|
+
"wizz": "WZZ",
|
|
299
|
+
"wizz air": "WZZ",
|
|
300
|
+
"xiamen air": "CXA"
|
|
301
|
+
}
|