From d00628c76bba6cd6ae05c50932d9c730bdaeac5e Mon Sep 17 00:00:00 2001 From: Hugo Romano Date: Tue, 8 Oct 2024 14:00:32 +0100 Subject: [PATCH] feat: optimize PoPs data structure The changes in this commit optimize the data structure used to represent the PoPs (Points of Presence) data. The key improvements are: 1. Initialize location entries with geo data and an empty providers array, instead of relying on dynamic property creation. 2. Iterate over the providers and populate the location data, avoiding unnecessary filtering and mapping. 3. Remove duplicate IATA codes and sort the provider code arrays for better performance and readability. These changes improve the overall efficiency and maintainability of the PoPs data handling in the application. --- dist/bundle.js | 2 +- src/main.js | 43 ++++++++++++++++++++----------------------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/dist/bundle.js b/dist/bundle.js index fa065afd..4c1e3351 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -1 +1 @@ -const A={iata:new Map([["AAE",[36.82,7.81]],["ABE",[40.65,-75.43]],["ABJ",[5.25,-3.93]],["ABQ",[35.05,-106.62]],["ACC",[5.61,-.17]],["ADB",[38.29,27.15]],["ADL",[-34.94,138.54]],["AKL",[-37,174.78]],["ALA",[43.35,77.01]],["ALG",[36.7,3.21]],["AMD",[23.07,72.62]],["AMM",[31.72,35.99]],["AMS",[52.31,4.76]],["ANC",[61.17,-150]],["ARI",[-18.35,-70.34]],["ARN",[59.65,17.93]],["ARU",[-21.14,-50.43]],["ASK",[6.82,-5.28]],["ASU",[-25.24,-57.51]],["ATH",[37.94,23.95]],["ATL",[33.64,-84.44]],["AUH",[24.43,54.65]],["AUS",[30.2,-97.67]],["AVL",[35.44,-82.54]],["BAH",[26.27,50.63]],["BAQ",[10.89,-74.78]],["BAX",[53.36,83.55]],["BBI",[20.25,85.82]],["BCN",[41.3,2.08]],["BEG",[44.82,20.31]],["BEL",[-1.39,-48.48]],["BEY",[33.83,35.49]],["BGI",[13.08,-59.49]],["BGR",[44.81,-68.82]],["BGW",[33.28,44.5]],["BHY",[21.54,109.29]],["BKK",[13.69,100.75]],["BLR",[13.2,77.71]],["BMA",[59.36,17.95]],["BNA",[36.13,-86.67]],["BNE",[-27.4,153.11]],["BNU",[-27,-49]],["BOD",[44.83,-.7]],["BOG",[4.7,-74.14]],["BOM",[19.1,72.87]],["BOS",[42.37,-71.02]],["BRU",[50.9,4.48]],["BSB",[-15.87,-47.92]],["BSR",[30.56,47.79]],["BTH",[1.12,104.12]],["BTS",[48.17,17.2]],["BUD",[47.43,19.26]],["BUF",[42.93,-78.73]],["BUR",[34.2,-118.35]],["BWN",[4.95,114.93]],["CAI",[30.12,31.41]],["CAN",[23.39,113.3]],["CAW",[-21.7,-41.3]],["CBF",[41.26,-95.76]],["CBR",[-35.31,149.19]],["CCU",[22.65,88.44]],["CDG",[49,2.57]],["CEB",[10.31,123.98]],["CFC",[-26.79,-50.94]],["CGB",[-15.65,-56.12]],["CGD",[28.92,111.64]],["CGH",[-23.63,-46.66]],["CGK",[-6.13,106.66]],["CGO",[34.53,113.84]],["CGP",[22.25,91.82]],["CGY",[8.61,124.46]],["CHA",[35.04,-85.2]],["CHC",[-43.49,172.54]],["CHI",[41.88,-87.77]],["CHS",[32.88,-80.04]],["CJR",[38.53,-77.86]],["CKG",[29.72,106.63]],["CLE",[41.41,-81.84]],["CLT",[35.22,-80.94]],["CMB",[7.17,79.89]],["CMH",[40,-82.88]],["CNF",[-19.63,-43.96]],["CNN",[56.9,124.88]],["CNX",[18.77,98.97]],["COK",[10.16,76.39]],["COR",[-31.32,-64.21]],["CPH",[55.63,12.65]],["CPM",[33.89,-118.24]],["CPT",[-33.97,18.6]],["CRK",[15.18,120.55]],["CSX",[28.19,113.21]],["CTU",[30.58,103.96]],["CVG",[39.06,-84.66]],["CWB",[-25.53,-49.18]],["CWL",[51.4,-3.34]],["CYS",[41.16,-104.82]],["CZX",[31.91,119.78]],["DAC",[23.85,90.41]],["DAD",[16.06,108.2]],["DAL",[32.84,-96.85]],["DAR",[-6.87,39.2]],["DCA",[38.85,-77.04]],["DEL",[28.56,77.1]],["DEN",[39.85,-104.67]],["DFW",[32.9,-97.04]],["DKR",[14.74,-17.49]],["DLC",[38.96,121.54]],["DLS",[45.62,-121.16]],["DME",[55.41,37.9]],["DMM",[26.47,49.8]],["DOH",[25.27,51.56]],["DPS",[-8.75,115.17]],["DSM",[41.53,-93.65]],["DTW",[42.21,-83.36]],["DUB",[53.43,-6.24]],["DUR",[-29.61,31.12]],["DUS",[51.28,6.77]],["DVN",[41.61,-90.59]],["DXB",[25.25,55.35]],["EBB",[.05,32.44]],["EBL",[36.24,43.96]],["EDI",[55.95,-3.36]],["ENS",[52.27,6.88]],["ESB",[40.11,32.99]],["EVN",[40.15,44.4]],["EWR",[40.69,-74.18]],["EZE",[-34.81,-58.54]],["FCO",[41.79,12.25]],["FIH",[-4.39,15.45]],["FJR",[25.11,56.33]],["FLL",[26.07,-80.14]],["FLN",[-27.66,-48.55]],["FOC",[25.93,119.67]],["FOR",[-3.78,-38.54]],["FRA",[50.05,8.57]],["FRU",[43.05,74.47]],["FSD",[43.58,-96.73]],["FTY",[33.78,-84.52]],["FUK",[33.58,130.44]],["FUO",[23.13,113.28]],["GBE",[-24.56,25.92]],["GDL",[20.53,-103.3]],["GEO",[6.5,-58.25]],["GIG",[-22.81,-43.25]],["GND",[12,-61.79]],["GNV",[29.69,-82.28]],["GOJ",[56.22,43.79]],["GOT",[57.67,12.29]],["GRQ",[53.12,6.58]],["GRU",[-23.43,-46.48]],["GUA",[14.59,-90.53]],["GUM",[13.49,144.8]],["GVA",[46.23,6.11]],["GYD",[40.46,50.05]],["GYE",[-2.14,-79.88]],["GYN",[-16.63,-49.23]],["HAK",[19.94,110.46]],["HAM",[53.63,10.01]],["HAN",[21.21,105.8]],["HBA",[-42.84,147.51]],["HEF",[38.72,-77.52]],["HEL",[60.32,24.97]],["HET",[40.85,111.81]],["HFA",[32.81,35.04]],["HFE",[31.99,116.98]],["HGH",[30.24,120.43]],["HHN",[49.95,7.26]],["HHP",[22.29,114.15]],["HIO",[45.54,-122.95]],["HKG",[22.32,113.94]],["HND",[35.55,139.78]],["HNL",[21.33,-157.92]],["HRE",[-17.92,31.1]],["HYD",[17.24,78.43]],["HYN",[28.56,121.42]],["IAD",[38.95,-77.45]],["IAH",[29.98,-95.34]],["ICN",[37.45,126.45]],["ICT",[37.65,-97.43]],["IEV",[50.4,30.45]],["IND",[39.71,-86.3]],["ISB",[33.61,73.11]],["IST",[40.98,28.82]],["ISU",[35.56,45.31]],["ITJ",[-26.88,-48.65]],["ITM",[34.79,135.44]],["IXC",[30.67,76.8]],["JAX",[30.49,-81.68]],["JDO",[-7.2,-39.32]],["JED",[21.67,39.15]],["JFK",[40.64,-73.79]],["JHB",[1.64,103.67]],["JIB",[11.55,43.15]],["JNB",[-26.13,28.23]],["JOG",[-7.79,110.44]],["JOI",[-26.23,-48.78]],["JRS",[31.87,35.21]],["JSR",[23.18,89.16]],["KBP",[50.34,30.9]],["KEF",[64,-22.62]],["KGL",[-1.96,30.14]],["KHH",[22.57,120.35]],["KHI",[24.9,67.17]],["KHN",[28.86,115.91]],["KHV",[48.52,135.17]],["KIN",[17.94,-76.78]],["KIV",[46.94,28.93]],["KIX",[34.44,135.24]],["KJA",[56.18,92.48]],["KLD",[56.92,35.92]],["KMG",[25.1,102.93]],["KNU",[26.4,80.41]],["KTM",[27.7,85.36]],["KUF",[53.51,50.15]],["KUL",[2.76,101.71]],["KWE",[26.54,106.8]],["KWI",[29.24,47.97]],["KZN",[55.61,49.3]],["LAD",[-8.85,13.23]],["LAS",[36.09,-115.15]],["LAX",[33.94,-118.41]],["LCA",[34.88,33.63]],["LCK",[39.81,-82.93]],["LCY",[51.5,.05]],["LED",[59.81,30.31]],["LEE",[28.83,-81.81]],["LGA",[40.77,-73.87]],["LGW",[51.16,-.16]],["LHE",[31.52,74.4]],["LHR",[51.47,-.45]],["LHW",[36.51,103.62]],["LIM",[-12.02,-77.11]],["LIN",[45.46,9.28]],["LIS",[38.77,-9.13]],["LLA",[65.55,22.12]],["LLK",[38.75,48.82]],["LOS",[6.58,3.32]],["LPB",[-16.51,-68.18]],["LPP",[61.05,28.16]],["LUX",[49.63,6.21]],["LYS",[45.72,5.08]],["MAA",[12.98,80.16]],["MAD",[40.47,-3.57]],["MAN",[53.36,-2.27]],["MAO",[-3.03,-60.05]],["MBA",[-4.03,39.6]],["MCI",[39.29,-94.72]],["MCO",[28.43,-81.31]],["MCT",[23.59,58.29]],["MDE",[6.17,-75.43]],["MDL",[21.94,96.09]],["MEB",[-37.74,144.9]],["MEL",[-37.67,144.85]],["MEM",[35.04,-89.98]],["MEX",[19.44,-99.07]],["MFE",[26.18,-98.24]],["MFM",[22.16,113.57]],["MGM",[32.31,-86.39]],["MIA",[25.8,-80.28]],["MLE",[4.2,73.52]],["MNL",[14.51,121.01]],["MPM",[-25.92,32.57]],["MRN",[35.82,-81.61]],["MRS",[43.44,5.22]],["MRU",[-20.43,57.68]],["MSP",[44.88,-93.21]],["MSQ",[53.89,28.03]],["MTY",[25.78,-100.11]],["MUC",[48.35,11.79]],["MXP",[45.63,8.71]],["NAG",[21.09,79.06]],["NAP",[40.89,14.29]],["NBO",[-1.32,36.93]],["NJF",[31.99,44.4]],["NNG",[22.61,108.17]],["NOU",[-22.02,166.22]],["NQN",[-38.95,-68.15]],["NQZ",[51.03,71.46]],["NRT",[35.77,140.39]],["NUE",[49.49,11.08]],["NVT",[-26.87,-48.63]],["OKA",[26.2,127.65]],["OKC",[35.4,-97.6]],["OMA",[41.3,-95.9]],["ORD",[41.98,-87.9]],["ORF",[36.9,-76.21]],["ORK",[51.85,-8.49]],["ORN",[35.62,-.61]],["ORY",[48.73,2.36]],["OSL",[60.19,11.1]],["OTP",[44.57,26.08]],["OUA",[12.36,-1.51]],["OVB",[55.01,82.67]],["OXR",[34.2,-119.21]],["PAE",[47.91,-122.28]],["PAO",[37.46,-122.11]],["PAT",[25.59,85.09]],["PBC",[19.14,-98.37]],["PBH",[27.43,89.42]],["PBM",[5.45,-55.19]],["PDK",[33.88,-84.3]],["PDX",[45.59,-122.59]],["PEK",[40.08,116.59]],["PER",[-31.93,115.96]],["PES",[61.68,34.33]],["PHL",[39.88,-75.24]],["PHX",[33.44,-112]],["PIT",[40.5,-80.26]],["PKV",[57.82,28.3]],["PKX",[39.51,116.41]],["PMO",[38.19,13.1]],["PMW",[-10.24,-48.35]],["PNH",[11.55,104.85]],["PNQ",[18.58,73.92]],["PNS",[30.48,-87.19]],["POA",[-29.99,-51.18]],["POS",[10.6,-61.34]],["POX",[49.05,2.1]],["PPT",[-17.56,-149.61]],["PRG",[50.11,14.27]],["PTY",[9.07,-79.39]],["PUS",[35.18,128.95]],["PWQ",[52.18,77.07]],["QHI",[13.23,100.96]],["QPG",[1.35,103.9]],["QRO",[20.6,-100.38]],["QWJ",[-22.74,-47.33]],["QZO",[43.46,11.85]],["RAO",[-21.14,-47.77]],["RDU",[35.87,-78.79]],["REC",[-8.13,-34.92]],["RGN",[16.9,96.13]],["RHV",[37.33,-121.82]],["RIC",[37.51,-77.32]],["RIX",[56.92,23.98]],["RMQ",[24.26,120.61]],["ROV",[47.25,39.75]],["RTM",[51.95,4.43]],["RUH",[24.96,46.7]],["RUN",[-20.89,55.51]],["SAN",[32.73,-117.2]],["SAT",[29.52,-98.47]],["SBN",[41.7,-86.31]],["SCL",[-33.4,-70.79]],["SDF",[38.19,-85.74]],["SDQ",[18.43,-69.68]],["SDV",[32.1,34.79]],["SEA",[47.44,-122.3]],["SFO",[37.62,-122.39]],["SGN",[10.81,106.66]],["SHA",[31.2,121.34]],["SIN",[1.36,103.99]],["SJC",[37.37,-121.93]],["SJK",[-23.18,-46.12]],["SJO",[10,-84.2]],["SJP",[-20.82,-49.42]],["SJU",[18.44,-66]],["SJW",[38.27,114.69]],["SKG",[40.52,22.97]],["SKP",[41.96,21.63]],["SLC",[40.79,-111.98]],["SMF",[38.69,-121.59]],["SOD",[-23.48,-47.45]],["SOF",[42.69,23.41]],["SSA",[-12.91,-38.34]],["STI",[19.4,-70.6]],["STL",[38.74,-90.37]],["STP",[44.93,-93.07]],["STR",[48.69,9.19]],["SUV",[-18.05,178.56]],["SVQ",[37.42,-5.9]],["SVX",[56.75,60.8]],["SYD",[-33.93,151.18]],["SZX",[22.64,113.81]],["TAO",[36.27,120.38]],["TAS",[41.26,69.27]],["TBS",[41.67,44.96]],["TGU",[14.06,-87.22]],["TIA",[41.42,19.71]],["TIR",[13.64,79.54]],["TLH",[30.4,-84.34]],["TLL",[59.42,24.8]],["TLV",[32,34.87]],["TNA",[36.86,117.21]],["TNR",[-18.8,47.48]],["TPA",[27.98,-82.54]],["TPE",[25.08,121.22]],["TSN",[39.12,117.34]],["TUL",[36.19,-95.89]],["TUN",[36.85,10.22]],["TXL",[52.55,13.29]],["TYN",[37.75,112.63]],["TYO",[35.55,139.78]],["UDI",[-18.88,-48.23]],["UFA",[54.57,55.88]],["UIO",[-.12,-78.36]],["ULN",[47.85,106.76]],["URT",[9.13,99.14]],["VCP",[-23.01,-47.14]],["VIE",[48.12,16.56]],["VIX",[-20.26,-40.29]],["VNO",[54.64,25.28]],["VNY",[34.21,-118.49]],["VOZ",[51.81,39.23]],["VTE",[17.98,102.57]],["VVO",[43.38,132.14]],["WAW",[52.17,20.97]],["WDH",[-22.49,17.46]],["WHU",[31.37,118.37]],["WLG",[-41.33,174.81]],["XAP",[-27.09,-52.63]],["XFN",[32.15,112.29]],["XIY",[34.44,108.76]],["XNH",[30.94,46.09]],["XNN",[36.53,102.04]],["YHZ",[44.88,-63.51]],["YOW",[45.32,-75.67]],["YQB",[46.79,-71.38]],["YUL",[45.46,-73.75]],["YVR",[49.19,-123.18]],["YWG",[49.9,-97.23]],["YXE",[52.17,-106.69]],["YYC",[51.13,-114.01]],["YYZ",[43.68,-79.61]],["ZAG",[45.73,16.06]],["ZDM",[32.27,35.02]],["ZGN",[22.52,113.37]],["ZHY",[37.57,105.15]],["ZPM",[49.01,12.1]],["ZQZ",[40.74,114.93]],["ZRH",[47.45,8.56]]]),providers:{adaptive:{name:"Adaptive Link",url:"https://adaptive.link",pops:["AMS","BOM","CDG","CMH","DFW","DUB","GRU","HEL","ICN","JFK","LHR","MAD","MEX","MIA","NRT","NUE","PDX","SFO","SIN","SYD","YYZ"]},alibaba:{name:"Alibaba Cloud",url:"https://www.alibabacloud.com/",pops:["BOM","CGK","CTU","DXB","FRA","HET","HGH","HKG","IAD","KUL","LHR","NRT","PEK","SHA","SIN","SJC","SYD","SZX","TAO","ZQZ"]},arubacloud:{name:"Aruba Cloud",url:"https://www.arubacloud.com/",pops:["CDG","FRA","LHR","MXP","PRG","QZO","WAW"]},atlanticnet:{name:"Atlantic.Net",url:"https://www.atlantic.net/",pops:["DFW","IAD","JFK","LHR","MCO","SFO","SIN","YYZ"]},azurecdn:{name:"Azure CDN",url:"https://azure.microsoft.com/en-us/services/cdn/",pops:["AKL","AMS","ARN","ATL","BAQ","BLR","BOS","BTH","BUR","CDG","CGK","CPH","CPM","DCA","DEL","DEN","DFW","EWR","EZE","FJR","FLL","FRA","GIG","GRU","HEL","HHP","HKG","HND","IAD","ICN","ITM","JFK","JNB","KHH","KIX","LAX","LCY","LGA","LHR","LIM","MAA","MAD","MCT","MDE","MEB","MEL","MEX","MIA","MRS","MXP","NAG","NRT","ORD","ORY","OXR","PAE","PBC","PHL","PNQ","POX","QRO","RHV","RIX","RTM","SCL","SEA","SIN","SJC","SYD","TIR","UIO","VIE","VNY","WAW"]},azurevm:{name:"Azure VM",url:"https://azure.microsoft.com/en-us/global-infrastructure/services/?products=virtual-machines",pops:["AMS","BOM","CBR","CDG","CHI","CWL","CYS","DFW","DSM","DUB","DXB","FRA","GRU","HKG","IAD","ICN","ITM","JNB","LAX","LHR","MAA","MEL","OSL","PEK","PHX","PNQ","PUS","SAN","SEA","SHA","SIN","SJC","SYD","TYO","YQB","YYZ","ZRH"]},backblaze:{name:"Backblaze",url:"https://www.backblaze.com/",pops:["AMS","PHX","SMF"]},bunnycdn:{name:"BunnyCDN",url:"https://bunnycdn.com/",pops:["ADL","AKL","AMS","ATL","BLR","BNE","BOM","CDG","DEN","DFW","DME","FRA","GRU","HEL","HKG","IAD","ICN","IST","JFK","JNB","LAX","LHR","LOS","MAD","MEL","MIA","MXP","NRT","ORD","OSL","OTP","PER","PRG","SCL","SEA","SIN","SJC","SYD","TLV","VNO","WAW","YYZ"]},cachefly:{name:"CacheFly",url:"https://www.cachefly.com/",pops:["AMS","ARN","ATL","BKK","BOG","BOM","BOS","CDG","CGK","DEN","DFW","DME","DOH","DVN","DXB","EZE","FOR","FRA","GIG","GRU","HEL","HKG","IAD","ICN","IST","JFK","JNB","LAX","LED","LHR","LIM","LIS","LPB","MAD","MEL","MIA","MXP","NRT","ORD","OTP","PEK","PER","PHX","PRG","QRO","RUH","SCL","SEA","SHA","SIN","SJC","SJU","SYD","TLV","VIE","WAW","YUL","YYC","YYZ","ZRH"]},cdn77:{name:"CDN77",url:"https://www.cdn77.com/",pops:["AMS","ARN","ATL","BOG","BOM","BTS","CDG","CGK","CPT","DEN","DFW","DME","EBL","EZE","FJR","FRA","GRU","GYE","HKG","IAD","IEV","IST","JED","JFK","KBP","LAX","LHR","LIM","MAD","MCT","MIA","MRS","MSQ","MXP","NRT","ORD","OTP","PRG","PTY","QRO","RUH","SCL","SEA","SIN","SJC","SOF","SYD","TLV","TPE","UIO","VIE","WAW","YYZ","ZAG","ZRH"]},cloudflare:{name:"Cloudflare",url:"https://www.cloudflare.com",pops:["AAE","ABJ","ABQ","ACC","ADB","ADL","AKL","ALA","ALG","AMD","AMM","AMS","ANC","ARI","ARN","ARU","ASK","ASU","ATH","ATL","AUS","BAH","BAQ","BBI","BCN","BEG","BEL","BEY","BGI","BGR","BGW","BHY","BKK","BLR","BNA","BNE","BNU","BOD","BOG","BOM","BOS","BRU","BSB","BSR","BTS","BUD","BUF","BWN","CAI","CAN","CAW","CBR","CCU","CDG","CEB","CFC","CGB","CGD","CGK","CGO","CGP","CGY","CHC","CKG","CLE","CLT","CMB","CMH","CNF","CNN","CNX","COK","COR","CPH","CPT","CRK","CSX","CTU","CWB","CZX","DAC","DAD","DAR","DEL","DEN","DFW","DKR","DLC","DME","DMM","DOH","DPS","DTW","DUB","DUR","DUS","DXB","EBB","EBL","EDI","EVN","EWR","EZE","FCO","FIH","FLN","FOC","FOR","FRA","FSD","FUK","FUO","GBE","GDL","GEO","GIG","GND","GOT","GRU","GUA","GUM","GVA","GYD","GYE","GYN","HAK","HAM","HAN","HBA","HEL","HFA","HFE","HGH","HKG","HNL","HRE","HYD","HYN","IAD","IAH","ICN","IND","ISB","IST","ISU","ITJ","IXC","JAX","JDO","JED","JHB","JIB","JNB","JOG","JOI","JSR","JXG","KBP","KEF","KGL","KHH","KHI","KHN","KIN","KIV","KIX","KJA","KLD","KMG","KNU","KTM","KUL","KWE","KWI","LAD","LAS","LAX","LCA","LED","LHE","LHR","LHW","LIM","LIS","LLK","LOS","LPB","LUX","LYS","MAA","MAD","MAN","MAO","MBA","MCI","MCT","MDE","MDL","MEL","MEM","MEX","MFE","MFM","MGM","MIA","MLE","MNL","MPM","MRS","MRU","MSP","MSQ","MUC","MXP","NAG","NBO","NJF","NNG","NOU","NQN","NQZ","NRT","NVT","OKA","OKC","OMA","ORD","ORF","ORK","ORN","OSL","OTP","OUA","PAT","PBH","PBM","PDX","PER","PHL","PHX","PIT","PKX","PMO","PMW","PNH","POA","POS","PPT","PRG","PTY","QRO","QWJ","RAO","RDU","REC","RGN","RIC","RIX","RUH","RUN","SAN","SAT","SCL","SDQ","SEA","SFO","SGN","SHA","SIN","SJC","SJK","SJO","SJP","SJU","SJW","SKG","SKP","SLC","SMF","SOD","SOF","SSA","STI","STL","STR","SUV","SVX","SYD","SZX","TAO","TAS","TBS","TGU","TIA","TLH","TLL","TLV","TNA","TNR","TPA","TPE","TSN","TUN","TXL","TYN","UDI","UIO","ULN","URT","VCP","VIE","VIX","VNO","VTE","WAW","WDH","WHU","XAP","XFN","XIY","XNH","XNN","YHZ","YOW","YUL","YVR","YWG","YXE","YYC","YYZ","ZAG","ZDM","ZGN","ZRH"]},cloudfront:{name:"AWS Cloudfront",url:"https://aws.amazon.com/cloudfront/",pops:["AKL","AMS","ARN","ATH","ATL","BAH","BKK","BLR","BOG","BOM","BOS","BRU","BUD","CCU","CDG","CGK","CPH","CPT","DEL","DEN","DFW","DUB","DUS","DXB","EWR","EZE","FCO","FJR","FRA","GIG","GRU","HAM","HEL","HIO","HKG","HYD","IAD","IAH","ICN","IND","JAX","JFK","JNB","KIX","KUL","LAX","LHR","LIS","MAA","MAD","MAN","MEL","MIA","MNL","MRS","MSP","MUC","MXP","NBO","NRT","ORD","OSL","OTP","PEK","PER","PHL","PHX","PMO","PRG","QRO","SCL","SEA","SFO","SHA","SIN","SLC","SOF","SYD","SZX","TLV","TPE","TXL","VIE","WAW","YUL","YVR","YYZ","ZAG","ZHY","ZRH"]},cloudsigma:{name:"CloudSigma",url:"https://www.cloudsigma.com",pops:["CRK","DUB","FRA","GVA","HNL","IAD","LLA","MEL","MNL","NRT","PER","RUH","SJC","ZRH"]},deno:{name:"Deno Deploy",url:"https://deno.com/deploy",pops:["AMS","BOM","BRU","CDG","CGK","CHS","CMH","DEL","DFW","DSM","FRA","GRU","HEL","HKG","IAD","ICN","KIX","LAS","LAX","LHR","MAD","MEL","MXP","NRT","PDX","SCL","SIN","SLC","SYD","TLV","TPE","WAW","YUL","YYZ","ZRH"]},digitalocean:{name:"DigitalOcean",url:"https://www.digitalocean.com",pops:["AMS","BLR","FRA","JFK","LHR","SFO","SIN","SYD","YYZ"]},equinix:{name:"Equinix",url:"https://www.equinix.com/",pops:["ADL","AMS","ARN","ATL","AUH","BCN","BNE","BOG","BOS","CBR","CDG","CGK","CJR","DEN","DFW","DUB","DUS","DXB","ENS","EWR","FRA","GIG","GRQ","GRU","GVA","HAM","HEL","HKG","IAD","IAH","ICN","IST","KIX","LAX","LCY","LHR","LIS","MAD","MAN","MCT","MEL","MEX","MIA","MTY","MUC","MXP","NRT","ORD","PER","PHL","SEA","SHA","SIN","SJC","SOF","SVQ","SYD","WAW","YYZ","ZRH"]},ec2:{name:"AWS EC2",url:"https://aws.amazon.com/ec2/",pops:["ARN","AUH","BAH","BOM","CDG","CGK","CMH","CPT","DUB","FRA","GRU","HKG","HYD","IAD","ICN","KIX","LHR","MAD","MEL","MXP","NRT","PDX","SIN","SJC","SYD","TLV","YUL","YYC","ZRH"]},fastly:{name:"Fastly",url:"https://www.fastly.com",pops:["ACC","ADL","AKL","AMS","ATL","BKK","BMA","BNE","BOG","BOM","BOS","BRU","BUR","CCU","CGH","CHC","CHI","CMH","CPH","CPT","CWB","DAL","DEL","DEN","DFW","DTW","DUB","DXB","EWR","EZE","FCO","FJR","FOR","FRA","FTY","GIG","GNV","GRU","HEL","HHN","HKG","HND","HNL","HYD","IAD","IAH","ICN","ITM","JFK","JNB","KUL","LAX","LCK","LCY","LEE","LGA","LGW","LHR","LIM","LIN","LIS","MAA","MAD","MAN","MCI","MEL","MIA","MNL","MRS","MSP","MUC","MXP","NRT","ORY","OSL","PAO","PDK","PDX","PER","PHX","PMO","QPG","SCL","SEA","SJC","SOF","STL","STP","SYD","TYO","VIE","WLG","YUL","YVR","YYC","YYZ"]},flexential:{name:"Flexential",url:"https://www.flexential.com/",pops:["ABE","ATL","BNA","CLT","CVG","DEN","DFW","FLL","JAX","LAS","MSP","PDX","PHL","PHX","RDU","RIC","SDF","SLC","TPA"]},gcore:{name:"G-Core Labs",url:"https://gcorelabs.com/cdn/",pops:["ALA","AMS","ARN","ATL","BAX","BOG","BOM","CDG","DEN","DFW","DME","DXB","EZE","FRA","FRU","GOJ","GRU","HKG","IAD","ICN","IST","JFK","JNB","KBP","KHV","KJA","KUF","KZN","LAX","LED","LHR","LIM","MAD","MIA","MSQ","MXP","NQZ","NRT","ORD","OVB","PES","PKV","PRG","PWQ","ROV","SCL","SEA","SIN","SJC","SVX","SYD","TAS","TLV","UFA","VOZ","VVO","WAW"]},googlecdn:{name:"Google Cloud CDN",url:"https://cloud.google.com/cdn",pops:["AMS","ARN","ATL","BOG","BOM","BRU","BUD","CBF","CDG","CGK","CHS","DEL","DEN","DFW","DLS","DUB","EZE","FJR","FLL","FRA","GIG","GRQ","GRU","HAM","HKG","IAD","JFK","JNB","KIX","KUL","LAS","LAX","LGW","LHR","LOS","LPP","MAA","MAD","MBA","MCT","MIA","MRN","MRS","MUC","MXP","NRT","ORD","PRG","QRO","RMQ","SCL","SEA","SFO","SIN","SLC","SOF","SYD","TPE","TUL","VNY","WAW","YUL","YYZ","ZRH"]},googlecompute:{name:"Google Compute Engine",url:"https://cloud.google.com/compute",pops:["AMS","BOM","BRU","CBF","CGK","CHA","CHS","FRA","GRU","HEL","HKG","IAD","ICN","KIX","LAS","LAX","LHR","NRT","PDX","SIN","SLC","SYD","TPE","YUL","ZRH"]},heroku:{name:"Heroku",url:"https://www.heroku.com/",pops:["DUB","FRA","IAD","NRT","PDX","SYD"]},hetzner:{name:"Hetzner Cloud",url:"https://www.hetzner.com/cloud",pops:["HEL","HIO","IAD","NUE","ZPM"]},hivelocity:{name:"Hivelocity",url:"https://www.hivelocity.net/",pops:["AMS","ATL","DFW","FRA","JFK","LAX","MIA","ORD","SEA","TPA"]},hostwinds:{name:"Hostwinds",url:"https://www.hostwinds.com/",pops:["AMS","DFW","SEA"]},imperva:{name:"Imperva",url:"https://www.imperva.com/",pops:["AKL","AMS","ARN","ATL","BKK","BOM","CDG","CGK","CPH","DEL","DFW","DME","DXB","EZE","FRA","GRU","HKG","IAD","ICN","IST","JFK","JNB","KIX","KUL","LAX","LHR","MAD","MEL","MEX","MIA","MXP","NRT","ORD","SEA","SIN","SJC","SYD","TLV","TPE","VIE","WAW","YVR","YYZ","ZRH"]},ionos:{name:"Ionos Cloud Servers",url:"https://www.ionos.com/cloud/cloud-servers",pops:["EWR","FRA","LAS","LHR","MAD"]},kamatera:{name:"Kamatera Express",url:"https://www.kamatera.com/express/",pops:["AMS","DFW","FRA","HKG","JFK","JRS","LHR","SDV","SJC","TLV","YYZ"]},keycdn:{name:"KeyCDN",url:"https://www.keycdn.com/",pops:["AKL","ALA","AMS","ARN","ATH","ATL","BLR","BNE","BOG","CDG","CPH","DEN","DFW","DME","DUB","DXB","EZE","FRA","GRU","HEL","HKG","IST","JFK","JNB","KBP","LAX","LHR","LIM","LIS","LOS","MAD","MEL","MEX","MIA","MXP","NRT","ORD","OSL","OTP","PER","SCL","SEA","SFO","SIN","SYD","TLV","VIE","WAW","YUL","ZRH"]},leapswitch:{name:"LeapSwitch",url:"https://leapswitch.com/",pops:["AVL","BCN","BOM","DFW","FRA","IEV","LIS","PNQ","SBN"]},lightsail:{name:"AWS Lightsail",url:"https://aws.amazon.com/lightsail/",pops:["ARN","BOM","CDG","CMH","DUB","FRA","IAD","ICN","LHR","NRT","PDX","SIN","SYD","YUL"]},limelight:{name:"Limelight Networks",url:"https://www.limelight.com/",pops:["ADB","ARN","ATL","BEY","BKK","BOG","BOM","BOS","BUR","CDG","CGK","DCA","DEL","DEN","DFW","DOH","DUS","DXB","ESB","EWR","EZE","FCO","FRA","GRU","HAN","HKG","IAD","ICN","IST","JFK","JNB","KIX","KUL","KWI","LAX","LHR","LOS","MAA","MAD","MAN","MCI","MIA","MNL","MRS","MRU","MSP","MXP","NAP","NRT","ORD","PAO","PHL","PHX","PMO","QHI","SCL","SEA","SIN","SJC","SYD","TLV","VIE","YHZ","YUL","YVR","YYZ","ZRH"]},linode:{name:"Linode",url:"https://www.linode.com/",pops:["ARN","ATL","BOM","CDG","DFW","EWR","FRA","IAD","ITM","LHR","MXP","NRT","ORD","PAO","SEA","SIN","SJC","SYD","YYZ"]},mnx:{name:"MNX.io",url:"https://mnx.io/",pops:["ORD"]},netlify:{name:"Netlify",url:"https://www.netlify.com/",pops:["BOM","CMH","DME","DSM","DUB","DXB","FRA","GRU","HEL","JFK","JNB","LHR","MAA","NRT","PUS","SFO","SIN","SYD","YYZ"]},ovh:{name:"OVH",url:"https://www.ovh.com/",pops:["CDG","FRA","LHR","SIN","SYD","WAW"]},packet:{name:"Packet",url:"https://www.packet.com",pops:["AMS","ATL","DFW","DTW","EWR","FRA","HKG","IAD","IAH","LAX","MCI","MRS","NRT","ORD","PHX","PIT","SEA","SIN","SJC","SYD","YYZ"]},scaleway:{name:"Scaleway",url:"https://www.scaleway.com/",pops:["AMS","CDG","WAW"]},stackpath:{name:"StackPath",url:"https://www.stackpath.com/",pops:["AMS","ARN","ATL","BOG","BOS","BRU","CDG","DCA","DEN","DFW","DTW","DXB","EZE","FRA","GIG","GRU","HKG","ICN","ICT","JFK","JNB","KIX","LAX","LHR","LIM","MAD","MEL","MFE","MIA","MRS","MXP","NRT","ORD","PHX","PNS","SCL","SEA","SFO","SIN","SJC","STL","SYD","WAW","YYZ"]},sucuri:{name:"Sucuri",url:"https://sucuri.net/",pops:["AMS","DFW","FRA","GRU","IAD","LHR","MIA","NRT","ORD","SIN","SJC","SOF","SYD"]},upcloud:{name:"UpCloud",url:"https://upcloud.com/",pops:["AMS","ARN","FRA","HEL","JFK","LHR","MAD","ORD","SIN","SJC","SYD","WAW"]},verizonmedia:{name:"Verizon Media",url:"https://www.verizondigitalmedia.com/",pops:["AKL","AMS","ARN","ATL","BAQ","BKK","BLR","BOG","BOM","BOS","BTH","CDG","CGK","CPH","DCA","DEL","DEN","DFW","DTW","EWR","EZE","FJR","FRA","GDL","GIG","GRU","HEL","HKG","IAD","IAH","ICN","JFK","JNB","KHH","KIX","KWI","LAS","LAX","LHR","LIM","LIS","MAA","MAD","MAN","MCT","MDE","MEL","MEX","MIA","MNL","MRS","MUC","MXP","NBO","NRT","ORD","OTP","PHL","PHX","PIT","RIX","SCL","SEA","SIN","SJC","SOF","SYD","TPE","UIO","VIE","WAW"]},vercel:{name:"Vercel",url:"https://vercel.com/",pops:["ARN","BOM","CDG","CLE","DUB","FRA","GRU","HKG","HND","IAD","ICN","LHR","PDX","SFO","SIN","SYD"]},vultr:{name:"Vultr",url:"https://www.vultr.com/",pops:["AMS","ARN","ATL","BLR","BOM","CDG","DEL","DFW","EWR","FRA","GRU","HNL","ICN","JNB","KIX","LAX","LHR","MAD","MAN","MEL","MEX","MIA","NRT","ORD","SCL","SEA","SIN","SJC","SYD","TLV","WAW","YYZ"]},wasabi:{name:"Wasabi",url:"https://wasabi.com",pops:["AMS","CDG","DFW","FRA","HEF","HIO","IAD","KIX","LHR","NRT","YYZ"]}}},S=(()=>{const S={all:{code:Array.from(A.iata.keys()),geo:Array.from(A.iata.values())}},L=Object.keys(A.providers);for(const D of L){const L=new Map([...A.iata].filter((([S])=>A.providers[D].pops.includes(S))));S[D]={code:[],geo:[]};for(let A of L.values())S[D].geo.push(A);for(let R of L.keys())S[D].code.push(R),void 0===S[R]&&(S[R]={geo:A.iata.get(R),providers:[]}),S[R].providers.push(D);S[D].code=[...new Set(S[D].code)].sort()}return S})();export{S as default}; +const A={iata:new Map([["AAE",[36.82,7.81]],["ABE",[40.65,-75.43]],["ABJ",[5.25,-3.93]],["ABQ",[35.05,-106.62]],["ACC",[5.61,-.17]],["ADB",[38.29,27.15]],["ADL",[-34.94,138.54]],["AKL",[-37,174.78]],["ALA",[43.35,77.01]],["ALG",[36.7,3.21]],["AMD",[23.07,72.62]],["AMM",[31.72,35.99]],["AMS",[52.31,4.76]],["ANC",[61.17,-150]],["ARI",[-18.35,-70.34]],["ARN",[59.65,17.93]],["ARU",[-21.14,-50.43]],["ASK",[6.82,-5.28]],["ASU",[-25.24,-57.51]],["ATH",[37.94,23.95]],["ATL",[33.64,-84.44]],["AUH",[24.43,54.65]],["AUS",[30.2,-97.67]],["AVL",[35.44,-82.54]],["BAH",[26.27,50.63]],["BAQ",[10.89,-74.78]],["BAX",[53.36,83.55]],["BBI",[20.25,85.82]],["BCN",[41.3,2.08]],["BEG",[44.82,20.31]],["BEL",[-1.39,-48.48]],["BEY",[33.83,35.49]],["BGI",[13.08,-59.49]],["BGR",[44.81,-68.82]],["BGW",[33.28,44.5]],["BHY",[21.54,109.29]],["BKK",[13.69,100.75]],["BLR",[13.2,77.71]],["BMA",[59.36,17.95]],["BNA",[36.13,-86.67]],["BNE",[-27.4,153.11]],["BNU",[-27,-49]],["BOD",[44.83,-.7]],["BOG",[4.7,-74.14]],["BOM",[19.1,72.87]],["BOS",[42.37,-71.02]],["BRU",[50.9,4.48]],["BSB",[-15.87,-47.92]],["BSR",[30.56,47.79]],["BTH",[1.12,104.12]],["BTS",[48.17,17.2]],["BUD",[47.43,19.26]],["BUF",[42.93,-78.73]],["BUR",[34.2,-118.35]],["BWN",[4.95,114.93]],["CAI",[30.12,31.41]],["CAN",[23.39,113.3]],["CAW",[-21.7,-41.3]],["CBF",[41.26,-95.76]],["CBR",[-35.31,149.19]],["CCU",[22.65,88.44]],["CDG",[49,2.57]],["CEB",[10.31,123.98]],["CFC",[-26.79,-50.94]],["CGB",[-15.65,-56.12]],["CGD",[28.92,111.64]],["CGH",[-23.63,-46.66]],["CGK",[-6.13,106.66]],["CGO",[34.53,113.84]],["CGP",[22.25,91.82]],["CGY",[8.61,124.46]],["CHA",[35.04,-85.2]],["CHC",[-43.49,172.54]],["CHI",[41.88,-87.77]],["CHS",[32.88,-80.04]],["CJR",[38.53,-77.86]],["CKG",[29.72,106.63]],["CLE",[41.41,-81.84]],["CLT",[35.22,-80.94]],["CMB",[7.17,79.89]],["CMH",[40,-82.88]],["CNF",[-19.63,-43.96]],["CNN",[56.9,124.88]],["CNX",[18.77,98.97]],["COK",[10.16,76.39]],["COR",[-31.32,-64.21]],["CPH",[55.63,12.65]],["CPM",[33.89,-118.24]],["CPT",[-33.97,18.6]],["CRK",[15.18,120.55]],["CSX",[28.19,113.21]],["CTU",[30.58,103.96]],["CVG",[39.06,-84.66]],["CWB",[-25.53,-49.18]],["CWL",[51.4,-3.34]],["CYS",[41.16,-104.82]],["CZX",[31.91,119.78]],["DAC",[23.85,90.41]],["DAD",[16.06,108.2]],["DAL",[32.84,-96.85]],["DAR",[-6.87,39.2]],["DCA",[38.85,-77.04]],["DEL",[28.56,77.1]],["DEN",[39.85,-104.67]],["DFW",[32.9,-97.04]],["DKR",[14.74,-17.49]],["DLC",[38.96,121.54]],["DLS",[45.62,-121.16]],["DME",[55.41,37.9]],["DMM",[26.47,49.8]],["DOH",[25.27,51.56]],["DPS",[-8.75,115.17]],["DSM",[41.53,-93.65]],["DTW",[42.21,-83.36]],["DUB",[53.43,-6.24]],["DUR",[-29.61,31.12]],["DUS",[51.28,6.77]],["DVN",[41.61,-90.59]],["DXB",[25.25,55.35]],["EBB",[.05,32.44]],["EBL",[36.24,43.96]],["EDI",[55.95,-3.36]],["ENS",[52.27,6.88]],["ESB",[40.11,32.99]],["EVN",[40.15,44.4]],["EWR",[40.69,-74.18]],["EZE",[-34.81,-58.54]],["FCO",[41.79,12.25]],["FIH",[-4.39,15.45]],["FJR",[25.11,56.33]],["FLL",[26.07,-80.14]],["FLN",[-27.66,-48.55]],["FOC",[25.93,119.67]],["FOR",[-3.78,-38.54]],["FRA",[50.05,8.57]],["FRU",[43.05,74.47]],["FSD",[43.58,-96.73]],["FTY",[33.78,-84.52]],["FUK",[33.58,130.44]],["FUO",[23.13,113.28]],["GBE",[-24.56,25.92]],["GDL",[20.53,-103.3]],["GEO",[6.5,-58.25]],["GIG",[-22.81,-43.25]],["GND",[12,-61.79]],["GNV",[29.69,-82.28]],["GOJ",[56.22,43.79]],["GOT",[57.67,12.29]],["GRQ",[53.12,6.58]],["GRU",[-23.43,-46.48]],["GUA",[14.59,-90.53]],["GUM",[13.49,144.8]],["GVA",[46.23,6.11]],["GYD",[40.46,50.05]],["GYE",[-2.14,-79.88]],["GYN",[-16.63,-49.23]],["HAK",[19.94,110.46]],["HAM",[53.63,10.01]],["HAN",[21.21,105.8]],["HBA",[-42.84,147.51]],["HEF",[38.72,-77.52]],["HEL",[60.32,24.97]],["HET",[40.85,111.81]],["HFA",[32.81,35.04]],["HFE",[31.99,116.98]],["HGH",[30.24,120.43]],["HHN",[49.95,7.26]],["HHP",[22.29,114.15]],["HIO",[45.54,-122.95]],["HKG",[22.32,113.94]],["HND",[35.55,139.78]],["HNL",[21.33,-157.92]],["HRE",[-17.92,31.1]],["HYD",[17.24,78.43]],["HYN",[28.56,121.42]],["IAD",[38.95,-77.45]],["IAH",[29.98,-95.34]],["ICN",[37.45,126.45]],["ICT",[37.65,-97.43]],["IEV",[50.4,30.45]],["IND",[39.71,-86.3]],["ISB",[33.61,73.11]],["IST",[40.98,28.82]],["ISU",[35.56,45.31]],["ITJ",[-26.88,-48.65]],["ITM",[34.79,135.44]],["IXC",[30.67,76.8]],["JAX",[30.49,-81.68]],["JDO",[-7.2,-39.32]],["JED",[21.67,39.15]],["JFK",[40.64,-73.79]],["JHB",[1.64,103.67]],["JIB",[11.55,43.15]],["JNB",[-26.13,28.23]],["JOG",[-7.79,110.44]],["JOI",[-26.23,-48.78]],["JRS",[31.87,35.21]],["JSR",[23.18,89.16]],["KBP",[50.34,30.9]],["KEF",[64,-22.62]],["KGL",[-1.96,30.14]],["KHH",[22.57,120.35]],["KHI",[24.9,67.17]],["KHN",[28.86,115.91]],["KHV",[48.52,135.17]],["KIN",[17.94,-76.78]],["KIV",[46.94,28.93]],["KIX",[34.44,135.24]],["KJA",[56.18,92.48]],["KLD",[56.92,35.92]],["KMG",[25.1,102.93]],["KNU",[26.4,80.41]],["KTM",[27.7,85.36]],["KUF",[53.51,50.15]],["KUL",[2.76,101.71]],["KWE",[26.54,106.8]],["KWI",[29.24,47.97]],["KZN",[55.61,49.3]],["LAD",[-8.85,13.23]],["LAS",[36.09,-115.15]],["LAX",[33.94,-118.41]],["LCA",[34.88,33.63]],["LCK",[39.81,-82.93]],["LCY",[51.5,.05]],["LED",[59.81,30.31]],["LEE",[28.83,-81.81]],["LGA",[40.77,-73.87]],["LGW",[51.16,-.16]],["LHE",[31.52,74.4]],["LHR",[51.47,-.45]],["LHW",[36.51,103.62]],["LIM",[-12.02,-77.11]],["LIN",[45.46,9.28]],["LIS",[38.77,-9.13]],["LLA",[65.55,22.12]],["LLK",[38.75,48.82]],["LOS",[6.58,3.32]],["LPB",[-16.51,-68.18]],["LPP",[61.05,28.16]],["LUX",[49.63,6.21]],["LYS",[45.72,5.08]],["MAA",[12.98,80.16]],["MAD",[40.47,-3.57]],["MAN",[53.36,-2.27]],["MAO",[-3.03,-60.05]],["MBA",[-4.03,39.6]],["MCI",[39.29,-94.72]],["MCO",[28.43,-81.31]],["MCT",[23.59,58.29]],["MDE",[6.17,-75.43]],["MDL",[21.94,96.09]],["MEB",[-37.74,144.9]],["MEL",[-37.67,144.85]],["MEM",[35.04,-89.98]],["MEX",[19.44,-99.07]],["MFE",[26.18,-98.24]],["MFM",[22.16,113.57]],["MGM",[32.31,-86.39]],["MIA",[25.8,-80.28]],["MLE",[4.2,73.52]],["MNL",[14.51,121.01]],["MPM",[-25.92,32.57]],["MRN",[35.82,-81.61]],["MRS",[43.44,5.22]],["MRU",[-20.43,57.68]],["MSP",[44.88,-93.21]],["MSQ",[53.89,28.03]],["MTY",[25.78,-100.11]],["MUC",[48.35,11.79]],["MXP",[45.63,8.71]],["NAG",[21.09,79.06]],["NAP",[40.89,14.29]],["NBO",[-1.32,36.93]],["NJF",[31.99,44.4]],["NNG",[22.61,108.17]],["NOU",[-22.02,166.22]],["NQN",[-38.95,-68.15]],["NQZ",[51.03,71.46]],["NRT",[35.77,140.39]],["NUE",[49.49,11.08]],["NVT",[-26.87,-48.63]],["OKA",[26.2,127.65]],["OKC",[35.4,-97.6]],["OMA",[41.3,-95.9]],["ORD",[41.98,-87.9]],["ORF",[36.9,-76.21]],["ORK",[51.85,-8.49]],["ORN",[35.62,-.61]],["ORY",[48.73,2.36]],["OSL",[60.19,11.1]],["OTP",[44.57,26.08]],["OUA",[12.36,-1.51]],["OVB",[55.01,82.67]],["OXR",[34.2,-119.21]],["PAE",[47.91,-122.28]],["PAO",[37.46,-122.11]],["PAT",[25.59,85.09]],["PBC",[19.14,-98.37]],["PBH",[27.43,89.42]],["PBM",[5.45,-55.19]],["PDK",[33.88,-84.3]],["PDX",[45.59,-122.59]],["PEK",[40.08,116.59]],["PER",[-31.93,115.96]],["PES",[61.68,34.33]],["PHL",[39.88,-75.24]],["PHX",[33.44,-112]],["PIT",[40.5,-80.26]],["PKV",[57.82,28.3]],["PKX",[39.51,116.41]],["PMO",[38.19,13.1]],["PMW",[-10.24,-48.35]],["PNH",[11.55,104.85]],["PNQ",[18.58,73.92]],["PNS",[30.48,-87.19]],["POA",[-29.99,-51.18]],["POS",[10.6,-61.34]],["POX",[49.05,2.1]],["PPT",[-17.56,-149.61]],["PRG",[50.11,14.27]],["PTY",[9.07,-79.39]],["PUS",[35.18,128.95]],["PWQ",[52.18,77.07]],["QHI",[13.23,100.96]],["QPG",[1.35,103.9]],["QRO",[20.6,-100.38]],["QWJ",[-22.74,-47.33]],["QZO",[43.46,11.85]],["RAO",[-21.14,-47.77]],["RDU",[35.87,-78.79]],["REC",[-8.13,-34.92]],["RGN",[16.9,96.13]],["RHV",[37.33,-121.82]],["RIC",[37.51,-77.32]],["RIX",[56.92,23.98]],["RMQ",[24.26,120.61]],["ROV",[47.25,39.75]],["RTM",[51.95,4.43]],["RUH",[24.96,46.7]],["RUN",[-20.89,55.51]],["SAN",[32.73,-117.2]],["SAT",[29.52,-98.47]],["SBN",[41.7,-86.31]],["SCL",[-33.4,-70.79]],["SDF",[38.19,-85.74]],["SDQ",[18.43,-69.68]],["SDV",[32.1,34.79]],["SEA",[47.44,-122.3]],["SFO",[37.62,-122.39]],["SGN",[10.81,106.66]],["SHA",[31.2,121.34]],["SIN",[1.36,103.99]],["SJC",[37.37,-121.93]],["SJK",[-23.18,-46.12]],["SJO",[10,-84.2]],["SJP",[-20.82,-49.42]],["SJU",[18.44,-66]],["SJW",[38.27,114.69]],["SKG",[40.52,22.97]],["SKP",[41.96,21.63]],["SLC",[40.79,-111.98]],["SMF",[38.69,-121.59]],["SOD",[-23.48,-47.45]],["SOF",[42.69,23.41]],["SSA",[-12.91,-38.34]],["STI",[19.4,-70.6]],["STL",[38.74,-90.37]],["STP",[44.93,-93.07]],["STR",[48.69,9.19]],["SUV",[-18.05,178.56]],["SVQ",[37.42,-5.9]],["SVX",[56.75,60.8]],["SYD",[-33.93,151.18]],["SZX",[22.64,113.81]],["TAO",[36.27,120.38]],["TAS",[41.26,69.27]],["TBS",[41.67,44.96]],["TGU",[14.06,-87.22]],["TIA",[41.42,19.71]],["TIR",[13.64,79.54]],["TLH",[30.4,-84.34]],["TLL",[59.42,24.8]],["TLV",[32,34.87]],["TNA",[36.86,117.21]],["TNR",[-18.8,47.48]],["TPA",[27.98,-82.54]],["TPE",[25.08,121.22]],["TSN",[39.12,117.34]],["TUL",[36.19,-95.89]],["TUN",[36.85,10.22]],["TXL",[52.55,13.29]],["TYN",[37.75,112.63]],["TYO",[35.55,139.78]],["UDI",[-18.88,-48.23]],["UFA",[54.57,55.88]],["UIO",[-.12,-78.36]],["ULN",[47.85,106.76]],["URT",[9.13,99.14]],["VCP",[-23.01,-47.14]],["VIE",[48.12,16.56]],["VIX",[-20.26,-40.29]],["VNO",[54.64,25.28]],["VNY",[34.21,-118.49]],["VOZ",[51.81,39.23]],["VTE",[17.98,102.57]],["VVO",[43.38,132.14]],["WAW",[52.17,20.97]],["WDH",[-22.49,17.46]],["WHU",[31.37,118.37]],["WLG",[-41.33,174.81]],["XAP",[-27.09,-52.63]],["XFN",[32.15,112.29]],["XIY",[34.44,108.76]],["XNH",[30.94,46.09]],["XNN",[36.53,102.04]],["YHZ",[44.88,-63.51]],["YOW",[45.32,-75.67]],["YQB",[46.79,-71.38]],["YUL",[45.46,-73.75]],["YVR",[49.19,-123.18]],["YWG",[49.9,-97.23]],["YXE",[52.17,-106.69]],["YYC",[51.13,-114.01]],["YYZ",[43.68,-79.61]],["ZAG",[45.73,16.06]],["ZDM",[32.27,35.02]],["ZGN",[22.52,113.37]],["ZHY",[37.57,105.15]],["ZPM",[49.01,12.1]],["ZQZ",[40.74,114.93]],["ZRH",[47.45,8.56]]]),providers:{adaptive:{name:"Adaptive Link",url:"https://adaptive.link",pops:["AMS","BOM","CDG","CMH","DFW","DUB","GRU","HEL","ICN","JFK","LHR","MAD","MEX","MIA","NRT","NUE","PDX","SFO","SIN","SYD","YYZ"]},alibaba:{name:"Alibaba Cloud",url:"https://www.alibabacloud.com/",pops:["BOM","CGK","CTU","DXB","FRA","HET","HGH","HKG","IAD","KUL","LHR","NRT","PEK","SHA","SIN","SJC","SYD","SZX","TAO","ZQZ"]},arubacloud:{name:"Aruba Cloud",url:"https://www.arubacloud.com/",pops:["CDG","FRA","LHR","MXP","PRG","QZO","WAW"]},atlanticnet:{name:"Atlantic.Net",url:"https://www.atlantic.net/",pops:["DFW","IAD","JFK","LHR","MCO","SFO","SIN","YYZ"]},azurecdn:{name:"Azure CDN",url:"https://azure.microsoft.com/en-us/services/cdn/",pops:["AKL","AMS","ARN","ATL","BAQ","BLR","BOS","BTH","BUR","CDG","CGK","CPH","CPM","DCA","DEL","DEN","DFW","EWR","EZE","FJR","FLL","FRA","GIG","GRU","HEL","HHP","HKG","HND","IAD","ICN","ITM","JFK","JNB","KHH","KIX","LAX","LCY","LGA","LHR","LIM","MAA","MAD","MCT","MDE","MEB","MEL","MEX","MIA","MRS","MXP","NAG","NRT","ORD","ORY","OXR","PAE","PBC","PHL","PNQ","POX","QRO","RHV","RIX","RTM","SCL","SEA","SIN","SJC","SYD","TIR","UIO","VIE","VNY","WAW"]},azurevm:{name:"Azure VM",url:"https://azure.microsoft.com/en-us/global-infrastructure/services/?products=virtual-machines",pops:["AMS","BOM","CBR","CDG","CHI","CWL","CYS","DFW","DSM","DUB","DXB","FRA","GRU","HKG","IAD","ICN","ITM","JNB","LAX","LHR","MAA","MEL","OSL","PEK","PHX","PNQ","PUS","SAN","SEA","SHA","SIN","SJC","SYD","TYO","YQB","YYZ","ZRH"]},backblaze:{name:"Backblaze",url:"https://www.backblaze.com/",pops:["AMS","PHX","SMF"]},bunnycdn:{name:"BunnyCDN",url:"https://bunnycdn.com/",pops:["ADL","AKL","AMS","ATL","BLR","BNE","BOM","CDG","DEN","DFW","DME","FRA","GRU","HEL","HKG","IAD","ICN","IST","JFK","JNB","LAX","LHR","LOS","MAD","MEL","MIA","MXP","NRT","ORD","OSL","OTP","PER","PRG","SCL","SEA","SIN","SJC","SYD","TLV","VNO","WAW","YYZ"]},cachefly:{name:"CacheFly",url:"https://www.cachefly.com/",pops:["AMS","ARN","ATL","BKK","BOG","BOM","BOS","CDG","CGK","DEN","DFW","DME","DOH","DVN","DXB","EZE","FOR","FRA","GIG","GRU","HEL","HKG","IAD","ICN","IST","JFK","JNB","LAX","LED","LHR","LIM","LIS","LPB","MAD","MEL","MIA","MXP","NRT","ORD","OTP","PEK","PER","PHX","PRG","QRO","RUH","SCL","SEA","SHA","SIN","SJC","SJU","SYD","TLV","VIE","WAW","YUL","YYC","YYZ","ZRH"]},cdn77:{name:"CDN77",url:"https://www.cdn77.com/",pops:["AMS","ARN","ATL","BOG","BOM","BTS","CDG","CGK","CPT","DEN","DFW","DME","EBL","EZE","FJR","FRA","GRU","GYE","HKG","IAD","IEV","IST","JED","JFK","KBP","LAX","LHR","LIM","MAD","MCT","MIA","MRS","MSQ","MXP","NRT","ORD","OTP","PRG","PTY","QRO","RUH","SCL","SEA","SIN","SJC","SOF","SYD","TLV","TPE","UIO","VIE","WAW","YYZ","ZAG","ZRH"]},cloudflare:{name:"Cloudflare",url:"https://www.cloudflare.com",pops:["AAE","ABJ","ABQ","ACC","ADB","ADL","AKL","ALA","ALG","AMD","AMM","AMS","ANC","ARI","ARN","ARU","ASK","ASU","ATH","ATL","AUS","BAH","BAQ","BBI","BCN","BEG","BEL","BEY","BGI","BGR","BGW","BHY","BKK","BLR","BNA","BNE","BNU","BOD","BOG","BOM","BOS","BRU","BSB","BSR","BTS","BUD","BUF","BWN","CAI","CAN","CAW","CBR","CCU","CDG","CEB","CFC","CGB","CGD","CGK","CGO","CGP","CGY","CHC","CKG","CLE","CLT","CMB","CMH","CNF","CNN","CNX","COK","COR","CPH","CPT","CRK","CSX","CTU","CWB","CZX","DAC","DAD","DAR","DEL","DEN","DFW","DKR","DLC","DME","DMM","DOH","DPS","DTW","DUB","DUR","DUS","DXB","EBB","EBL","EDI","EVN","EWR","EZE","FCO","FIH","FLN","FOC","FOR","FRA","FSD","FUK","FUO","GBE","GDL","GEO","GIG","GND","GOT","GRU","GUA","GUM","GVA","GYD","GYE","GYN","HAK","HAM","HAN","HBA","HEL","HFA","HFE","HGH","HKG","HNL","HRE","HYD","HYN","IAD","IAH","ICN","IND","ISB","IST","ISU","ITJ","IXC","JAX","JDO","JED","JHB","JIB","JNB","JOG","JOI","JSR","JXG","KBP","KEF","KGL","KHH","KHI","KHN","KIN","KIV","KIX","KJA","KLD","KMG","KNU","KTM","KUL","KWE","KWI","LAD","LAS","LAX","LCA","LED","LHE","LHR","LHW","LIM","LIS","LLK","LOS","LPB","LUX","LYS","MAA","MAD","MAN","MAO","MBA","MCI","MCT","MDE","MDL","MEL","MEM","MEX","MFE","MFM","MGM","MIA","MLE","MNL","MPM","MRS","MRU","MSP","MSQ","MUC","MXP","NAG","NBO","NJF","NNG","NOU","NQN","NQZ","NRT","NVT","OKA","OKC","OMA","ORD","ORF","ORK","ORN","OSL","OTP","OUA","PAT","PBH","PBM","PDX","PER","PHL","PHX","PIT","PKX","PMO","PMW","PNH","POA","POS","PPT","PRG","PTY","QRO","QWJ","RAO","RDU","REC","RGN","RIC","RIX","RUH","RUN","SAN","SAT","SCL","SDQ","SEA","SFO","SGN","SHA","SIN","SJC","SJK","SJO","SJP","SJU","SJW","SKG","SKP","SLC","SMF","SOD","SOF","SSA","STI","STL","STR","SUV","SVX","SYD","SZX","TAO","TAS","TBS","TGU","TIA","TLH","TLL","TLV","TNA","TNR","TPA","TPE","TSN","TUN","TXL","TYN","UDI","UIO","ULN","URT","VCP","VIE","VIX","VNO","VTE","WAW","WDH","WHU","XAP","XFN","XIY","XNH","XNN","YHZ","YOW","YUL","YVR","YWG","YXE","YYC","YYZ","ZAG","ZDM","ZGN","ZRH"]},cloudfront:{name:"AWS Cloudfront",url:"https://aws.amazon.com/cloudfront/",pops:["AKL","AMS","ARN","ATH","ATL","BAH","BKK","BLR","BOG","BOM","BOS","BRU","BUD","CCU","CDG","CGK","CPH","CPT","DEL","DEN","DFW","DUB","DUS","DXB","EWR","EZE","FCO","FJR","FRA","GIG","GRU","HAM","HEL","HIO","HKG","HYD","IAD","IAH","ICN","IND","JAX","JFK","JNB","KIX","KUL","LAX","LHR","LIS","MAA","MAD","MAN","MEL","MIA","MNL","MRS","MSP","MUC","MXP","NBO","NRT","ORD","OSL","OTP","PEK","PER","PHL","PHX","PMO","PRG","QRO","SCL","SEA","SFO","SHA","SIN","SLC","SOF","SYD","SZX","TLV","TPE","TXL","VIE","WAW","YUL","YVR","YYZ","ZAG","ZHY","ZRH"]},cloudsigma:{name:"CloudSigma",url:"https://www.cloudsigma.com",pops:["CRK","DUB","FRA","GVA","HNL","IAD","LLA","MEL","MNL","NRT","PER","RUH","SJC","ZRH"]},deno:{name:"Deno Deploy",url:"https://deno.com/deploy",pops:["AMS","BOM","BRU","CDG","CGK","CHS","CMH","DEL","DFW","DSM","FRA","GRU","HEL","HKG","IAD","ICN","KIX","LAS","LAX","LHR","MAD","MEL","MXP","NRT","PDX","SCL","SIN","SLC","SYD","TLV","TPE","WAW","YUL","YYZ","ZRH"]},digitalocean:{name:"DigitalOcean",url:"https://www.digitalocean.com",pops:["AMS","BLR","FRA","JFK","LHR","SFO","SIN","SYD","YYZ"]},equinix:{name:"Equinix",url:"https://www.equinix.com/",pops:["ADL","AMS","ARN","ATL","AUH","BCN","BNE","BOG","BOS","CBR","CDG","CGK","CJR","DEN","DFW","DUB","DUS","DXB","ENS","EWR","FRA","GIG","GRQ","GRU","GVA","HAM","HEL","HKG","IAD","IAH","ICN","IST","KIX","LAX","LCY","LHR","LIS","MAD","MAN","MCT","MEL","MEX","MIA","MTY","MUC","MXP","NRT","ORD","PER","PHL","SEA","SHA","SIN","SJC","SOF","SVQ","SYD","WAW","YYZ","ZRH"]},ec2:{name:"AWS EC2",url:"https://aws.amazon.com/ec2/",pops:["ARN","AUH","BAH","BOM","CDG","CGK","CMH","CPT","DUB","FRA","GRU","HKG","HYD","IAD","ICN","KIX","LHR","MAD","MEL","MXP","NRT","PDX","SIN","SJC","SYD","TLV","YUL","YYC","ZRH"]},fastly:{name:"Fastly",url:"https://www.fastly.com",pops:["ACC","ADL","AKL","AMS","ATL","BKK","BMA","BNE","BOG","BOM","BOS","BRU","BUR","CCU","CGH","CHC","CHI","CMH","CPH","CPT","CWB","DAL","DEL","DEN","DFW","DTW","DUB","DXB","EWR","EZE","FCO","FJR","FOR","FRA","FTY","GIG","GNV","GRU","HEL","HHN","HKG","HND","HNL","HYD","IAD","IAH","ICN","ITM","JFK","JNB","KUL","LAX","LCK","LCY","LEE","LGA","LGW","LHR","LIM","LIN","LIS","MAA","MAD","MAN","MCI","MEL","MIA","MNL","MRS","MSP","MUC","MXP","NRT","ORY","OSL","PAO","PDK","PDX","PER","PHX","PMO","QPG","SCL","SEA","SJC","SOF","STL","STP","SYD","TYO","VIE","WLG","YUL","YVR","YYC","YYZ"]},flexential:{name:"Flexential",url:"https://www.flexential.com/",pops:["ABE","ATL","BNA","CLT","CVG","DEN","DFW","FLL","JAX","LAS","MSP","PDX","PHL","PHX","RDU","RIC","SDF","SLC","TPA"]},gcore:{name:"G-Core Labs",url:"https://gcorelabs.com/cdn/",pops:["ALA","AMS","ARN","ATL","BAX","BOG","BOM","CDG","DEN","DFW","DME","DXB","EZE","FRA","FRU","GOJ","GRU","HKG","IAD","ICN","IST","JFK","JNB","KBP","KHV","KJA","KUF","KZN","LAX","LED","LHR","LIM","MAD","MIA","MSQ","MXP","NQZ","NRT","ORD","OVB","PES","PKV","PRG","PWQ","ROV","SCL","SEA","SIN","SJC","SVX","SYD","TAS","TLV","UFA","VOZ","VVO","WAW"]},googlecdn:{name:"Google Cloud CDN",url:"https://cloud.google.com/cdn",pops:["AMS","ARN","ATL","BOG","BOM","BRU","BUD","CBF","CDG","CGK","CHS","DEL","DEN","DFW","DLS","DUB","EZE","FJR","FLL","FRA","GIG","GRQ","GRU","HAM","HKG","IAD","JFK","JNB","KIX","KUL","LAS","LAX","LGW","LHR","LOS","LPP","MAA","MAD","MBA","MCT","MIA","MRN","MRS","MUC","MXP","NRT","ORD","PRG","QRO","RMQ","SCL","SEA","SFO","SIN","SLC","SOF","SYD","TPE","TUL","VNY","WAW","YUL","YYZ","ZRH"]},googlecompute:{name:"Google Compute Engine",url:"https://cloud.google.com/compute",pops:["AMS","BOM","BRU","CBF","CGK","CHA","CHS","FRA","GRU","HEL","HKG","IAD","ICN","KIX","LAS","LAX","LHR","NRT","PDX","SIN","SLC","SYD","TPE","YUL","ZRH"]},heroku:{name:"Heroku",url:"https://www.heroku.com/",pops:["DUB","FRA","IAD","NRT","PDX","SYD"]},hetzner:{name:"Hetzner Cloud",url:"https://www.hetzner.com/cloud",pops:["HEL","HIO","IAD","NUE","ZPM"]},hivelocity:{name:"Hivelocity",url:"https://www.hivelocity.net/",pops:["AMS","ATL","DFW","FRA","JFK","LAX","MIA","ORD","SEA","TPA"]},hostwinds:{name:"Hostwinds",url:"https://www.hostwinds.com/",pops:["AMS","DFW","SEA"]},imperva:{name:"Imperva",url:"https://www.imperva.com/",pops:["AKL","AMS","ARN","ATL","BKK","BOM","CDG","CGK","CPH","DEL","DFW","DME","DXB","EZE","FRA","GRU","HKG","IAD","ICN","IST","JFK","JNB","KIX","KUL","LAX","LHR","MAD","MEL","MEX","MIA","MXP","NRT","ORD","SEA","SIN","SJC","SYD","TLV","TPE","VIE","WAW","YVR","YYZ","ZRH"]},ionos:{name:"Ionos Cloud Servers",url:"https://www.ionos.com/cloud/cloud-servers",pops:["EWR","FRA","LAS","LHR","MAD"]},kamatera:{name:"Kamatera Express",url:"https://www.kamatera.com/express/",pops:["AMS","DFW","FRA","HKG","JFK","JRS","LHR","SDV","SJC","TLV","YYZ"]},keycdn:{name:"KeyCDN",url:"https://www.keycdn.com/",pops:["AKL","ALA","AMS","ARN","ATH","ATL","BLR","BNE","BOG","CDG","CPH","DEN","DFW","DME","DUB","DXB","EZE","FRA","GRU","HEL","HKG","IST","JFK","JNB","KBP","LAX","LHR","LIM","LIS","LOS","MAD","MEL","MEX","MIA","MXP","NRT","ORD","OSL","OTP","PER","SCL","SEA","SFO","SIN","SYD","TLV","VIE","WAW","YUL","ZRH"]},leapswitch:{name:"LeapSwitch",url:"https://leapswitch.com/",pops:["AVL","BCN","BOM","DFW","FRA","IEV","LIS","PNQ","SBN"]},lightsail:{name:"AWS Lightsail",url:"https://aws.amazon.com/lightsail/",pops:["ARN","BOM","CDG","CMH","DUB","FRA","IAD","ICN","LHR","NRT","PDX","SIN","SYD","YUL"]},limelight:{name:"Limelight Networks",url:"https://www.limelight.com/",pops:["ADB","ARN","ATL","BEY","BKK","BOG","BOM","BOS","BUR","CDG","CGK","DCA","DEL","DEN","DFW","DOH","DUS","DXB","ESB","EWR","EZE","FCO","FRA","GRU","HAN","HKG","IAD","ICN","IST","JFK","JNB","KIX","KUL","KWI","LAX","LHR","LOS","MAA","MAD","MAN","MCI","MIA","MNL","MRS","MRU","MSP","MXP","NAP","NRT","ORD","PAO","PHL","PHX","PMO","QHI","SCL","SEA","SIN","SJC","SYD","TLV","VIE","YHZ","YUL","YVR","YYZ","ZRH"]},linode:{name:"Linode",url:"https://www.linode.com/",pops:["ARN","ATL","BOM","CDG","DFW","EWR","FRA","IAD","ITM","LHR","MXP","NRT","ORD","PAO","SEA","SIN","SJC","SYD","YYZ"]},mnx:{name:"MNX.io",url:"https://mnx.io/",pops:["ORD"]},netlify:{name:"Netlify",url:"https://www.netlify.com/",pops:["BOM","CMH","DME","DSM","DUB","DXB","FRA","GRU","HEL","JFK","JNB","LHR","MAA","NRT","PUS","SFO","SIN","SYD","YYZ"]},ovh:{name:"OVH",url:"https://www.ovh.com/",pops:["CDG","FRA","LHR","SIN","SYD","WAW"]},packet:{name:"Packet",url:"https://www.packet.com",pops:["AMS","ATL","DFW","DTW","EWR","FRA","HKG","IAD","IAH","LAX","MCI","MRS","NRT","ORD","PHX","PIT","SEA","SIN","SJC","SYD","YYZ"]},scaleway:{name:"Scaleway",url:"https://www.scaleway.com/",pops:["AMS","CDG","WAW"]},stackpath:{name:"StackPath",url:"https://www.stackpath.com/",pops:["AMS","ARN","ATL","BOG","BOS","BRU","CDG","DCA","DEN","DFW","DTW","DXB","EZE","FRA","GIG","GRU","HKG","ICN","ICT","JFK","JNB","KIX","LAX","LHR","LIM","MAD","MEL","MFE","MIA","MRS","MXP","NRT","ORD","PHX","PNS","SCL","SEA","SFO","SIN","SJC","STL","SYD","WAW","YYZ"]},sucuri:{name:"Sucuri",url:"https://sucuri.net/",pops:["AMS","DFW","FRA","GRU","IAD","LHR","MIA","NRT","ORD","SIN","SJC","SOF","SYD"]},upcloud:{name:"UpCloud",url:"https://upcloud.com/",pops:["AMS","ARN","FRA","HEL","JFK","LHR","MAD","ORD","SIN","SJC","SYD","WAW"]},verizonmedia:{name:"Verizon Media",url:"https://www.verizondigitalmedia.com/",pops:["AKL","AMS","ARN","ATL","BAQ","BKK","BLR","BOG","BOM","BOS","BTH","CDG","CGK","CPH","DCA","DEL","DEN","DFW","DTW","EWR","EZE","FJR","FRA","GDL","GIG","GRU","HEL","HKG","IAD","IAH","ICN","JFK","JNB","KHH","KIX","KWI","LAS","LAX","LHR","LIM","LIS","MAA","MAD","MAN","MCT","MDE","MEL","MEX","MIA","MNL","MRS","MUC","MXP","NBO","NRT","ORD","OTP","PHL","PHX","PIT","RIX","SCL","SEA","SIN","SJC","SOF","SYD","TPE","UIO","VIE","WAW"]},vercel:{name:"Vercel",url:"https://vercel.com/",pops:["ARN","BOM","CDG","CPT","CLE","DUB","FRA","GRU","HKG","HND","IAD","ICN","LHR","KIX","PDX","SFO","SIN","SYD"]},vultr:{name:"Vultr",url:"https://www.vultr.com/",pops:["AMS","ARN","ATL","BLR","BOM","CDG","DEL","DFW","EWR","FRA","GRU","HNL","ICN","JNB","KIX","LAX","LHR","MAD","MAN","MEL","MEX","MIA","NRT","ORD","SCL","SEA","SIN","SJC","SYD","TLV","WAW","YYZ"]},wasabi:{name:"Wasabi",url:"https://wasabi.com",pops:["AMS","CDG","DFW","FRA","HEF","HIO","IAD","KIX","LHR","NRT","YYZ"]}}},S=(()=>{const S={all:{code:Array.from(A.iata.keys()),geo:Array.from(A.iata.values())}};for(const[L,D]of A.iata)S[L]={geo:D,providers:[]};for(const L of Object.keys(A.providers)){const D=A.providers[L].pops;S[L]={code:[],geo:[]};for(const R of D){const D=A.iata.get(R);D&&(S[L].code.push(R),S[L].geo.push(D),S[R].providers.push(L))}S[L].code=[...new Set(S[L].code)].sort()}return S})();export{S as default}; diff --git a/src/main.js b/src/main.js index d5122017..7cdc4107 100644 --- a/src/main.js +++ b/src/main.js @@ -1,44 +1,41 @@ import popsData from "../data/index.js"; const PoPs = (() => { - const Output = { + const output = { all: { code: Array.from(popsData.iata.keys()), geo: Array.from(popsData.iata.values()) } }; - const keys = Object.keys(popsData.providers); - - for (const key of keys) { - const map = new Map( - [...popsData.iata].filter(([k]) => - popsData.providers[key].pops.includes(k) - ) - ); + // Initialize location entries with geo data and empty providers array + for (const [iataCode, geoData] of popsData.iata) { + output[iataCode] = { + geo: geoData, + providers: [] + }; + } - Output[key] = { code: [], geo: [] }; + for (const providerKey of Object.keys(popsData.providers)) { + const providerPops = popsData.providers[providerKey].pops; - for (let value of map.values()) { - Output[key].geo.push(value); - } + output[providerKey] = { code: [], geo: [] }; - for (let e of map.keys()) { - Output[key].code.push(e); + for (const iataCode of providerPops) { + const geoData = popsData.iata.get(iataCode); + if (geoData) { + output[providerKey].code.push(iataCode); + output[providerKey].geo.push(geoData); - if (Output[e] === undefined) { - Output[e] = { - geo: popsData.iata.get(e), - providers: [] - }; + output[iataCode].providers.push(providerKey); } - Output[e].providers.push(key); } - Output[key].code = [...new Set(Output[key].code)].sort(); + // Remove duplicates and sort codes + output[providerKey].code = [...new Set(output[providerKey].code)].sort(); } - return Output; + return output; })(); export default PoPs;