@@ -110,6 +110,8 @@ This package is kept intentionally minimal. However, if you find a bug or have a
110110* [ wikidataQIDs] ( #wikidataQIDs ) (query: Location | Bbox): [ string]
111111* [ emojiFlag] ( #emojiFlag ) (query: Location | string | number, opts?: CodingOptions): string?
112112* [ emojiFlags] ( #emojiFlags ) (query: Location | Bbox): [ string]
113+ * [ ccTLD] ( #ccTLD ) (query: Location | string | number, opts?: CodingOptions): string?
114+ * [ ccTLDs] ( #ccTLDs ) (query: Location | Bbox): [ string]
113115* [ featuresContaining] ( #featuresContaining ) (query: Location | Bbox | string | number, strict: boolean): [ RegionFeature]
114116* [ featuresIn] ( #featuresIn ) (id: string | number, strict: boolean): [ RegionFeature]
115117* [ aggregateFeature] ( #aggregateFeature ) (id: string | number): [ RegionFeature]
@@ -152,6 +154,7 @@ feature('826'); // returns {United Kingdom}
152154feature (826 ); // returns {United Kingdom}
153155feature (' Q145' ); // returns {United Kingdom}
154156feature (' 🇬🇧' ); // returns {United Kingdom}
157+ feature (' .uk' ); // returns {United Kingdom}
155158feature (' UK' ); // returns {United Kingdom}
156159feature (' IM' ); // returns {Isle of Man}
157160feature (' United Kingdom' ); // returns {United Kingdom}
@@ -175,6 +178,7 @@ iso1A2Code('826'); // returns 'GB'
175178iso1A2Code (826 ); // returns 'GB'
176179iso1A2Code (' Q145' ); // returns 'GB'
177180iso1A2Code (' 🇬🇧' ); // returns 'GB'
181+ iso1A2Code (' .uk' ); // returns 'GB'
178182iso1A2Code (' UK' ); // returns 'GB'
179183iso1A2Code (' IMN' ); // returns 'IM'
180184iso1A2Code (' United Kingdom' ); // returns 'GB'
@@ -212,6 +216,7 @@ iso1A3Code('826'); // returns 'GBR'
212216iso1A3Code (826 ); // returns 'GBR'
213217iso1A3Code (' Q145' ); // returns 'GBR'
214218iso1A3Code (' 🇬🇧' ); // returns 'GBR'
219+ iso1A3Code (' .uk' ); // returns 'GBR'
215220iso1A3Code (' UK' ); // returns 'GBR'
216221iso1A3Code (' IM' ); // returns 'IMN'
217222iso1A3Code (' United Kingdom' ); // returns 'GBR'
@@ -248,6 +253,7 @@ iso1N3Code('GB'); // returns '826'
248253iso1N3Code (' GBR' ); // returns '826'
249254iso1N3Code (' Q145' ); // returns '826'
250255iso1N3Code (' 🇬🇧' ); // returns '826'
256+ iso1N3Code (' .uk' ); // returns '826'
251257iso1N3Code (' UK' ); // returns '826'
252258iso1N3Code (' IM' ); // returns '833'
253259iso1N3Code (' Q15' ); // returns null (Africa)
@@ -285,6 +291,7 @@ m49Code('GB'); // returns '826'
285291m49Code (' GBR' ); // returns '826'
286292m49Code (' Q145' ); // returns '826'
287293m49Code (' 🇬🇧' ); // returns '826'
294+ m49Code (' .uk' ); // returns '826'
288295m49Code (' UK' ); // returns '826'
289296m49Code (' IM' ); // returns '833'
290297m49Code (' Q15' ); // returns '002' (Africa)
@@ -323,6 +330,7 @@ wikidataQID('GBR'); // returns 'Q145'
323330wikidataQID (' 826' ); // returns 'Q145'
324331wikidataQID (826 ); // returns 'Q145'
325332wikidataQID (' 🇬🇧' ); // returns 'Q145'
333+ wikidataQID (' .uk' ); // returns 'Q145'
326334wikidataQID (' UK' ); // returns 'Q145'
327335wikidataQID (' IM' ); // returns 'Q9676'
328336wikidataQID (' United Kingdom' ); // returns 'Q145'
@@ -384,6 +392,43 @@ emojiFlags(pointGeoJSON.geometry); // returns ['🇮🇲', '🇬🇧', '🇺
384392```
385393
386394
395+ <a name =" ccTLD " href =" #ccTLD " >#</a > <b >ccTLD</b >(query: Location | string | number, opts?: CodingOptions): string?
396+
397+ Returns the country code top-level internet domain for the given location or identifier and options, if found.
398+
399+ ``` js
400+ ccTLD ([- 4.5 , 54.2 ]); // returns '.uk'
401+ ccTLD ([- 4.5 , 54.2 ], { level: ' territory' }); // returns '.im'
402+ ccTLD ([0 , 90 ]); // returns null
403+ ccTLD (' GB' ); // returns '.uk'
404+ ccTLD (' GBR' ); // returns '.uk'
405+ ccTLD (' 826' ); // returns '.uk'
406+ ccTLD (826 ); // returns '.uk'
407+ ccTLD (' Q145' ); // returns '.uk'
408+ ccTLD (' UK' ); // returns '.uk'
409+ ccTLD (' IM' ); // returns '.im'
410+ ccTLD (' United Kingdom' ); // returns '.uk'
411+
412+ let pointGeoJSON = { type: ' Feature' , geometry: { type: ' Point' , coordinates: [- 4.5 , 54.2 ] } };
413+ ccTLD (pointGeoJSON); // returns '.uk'
414+ ccTLD (pointGeoJSON .geometry ); // returns '.uk'
415+ ```
416+
417+
418+ <a name =" ccTLDs " href =" #ccTLDs " >#</a > <b >ccTLDs</b >(query: Location | Bbox): [ string]
419+
420+ Returns all the country code top-level internet domains for the given location or bounding box, if any.
421+
422+ ``` js
423+ ccTLDs ([- 4.5 , 54.2 ]); // returns ['.im', '.uk']
424+ ccTLDs ([0 , 90 ]); // returns []
425+
426+ let pointGeoJSON = { type: ' Feature' , geometry: { type: ' Point' , coordinates: [- 4.5 , 54.2 ] } };
427+ ccTLDs (pointGeoJSON); // returns ['.im', '.uk']
428+ ccTLDs (pointGeoJSON .geometry ); // returns ['.im', '.uk']
429+ ```
430+
431+
387432<a name =" featuresContaining " href =" #featuresContaining " >#</a > <b >featuresContaining</b >(query: Location | Bbox | string | number, strict: boolean): [ RegionFeature]
388433
389434Returns all the the features of any type that contain or match the given location, bounding box, or identifier, if any. If ` strict ` is ` true ` and ` query ` is an identifier, then only features that are strictly containing are returned.
@@ -399,6 +444,7 @@ featuresContaining('826'); // returns [{United Kingdom}, {United Nations
399444featuresContaining (826 ); // returns [{United Kingdom}, {United Nations}, {World}]
400445featuresContaining (' Q145' ); // returns [{United Kingdom}, {United Nations}, {World}]
401446featuresContaining (' 🇬🇧' ); // returns [{United Kingdom}, {United Nations}, {World}]
447+ featuresContaining (' .uk' ); // returns [{United Kingdom}, {United Nations}, {World}]
402448featuresContaining (' UK' ); // returns [{United Kingdom}, {United Nations}, {World}]
403449featuresContaining (' 154' ); // returns [{Northern Europe}, {Europe}, {World}]
404450featuresContaining (' GB' , true ); // returns [{United Nations}, {World}]
@@ -421,6 +467,7 @@ featuresIn('156'); // returns [{China}, {Mainland China}, {Hong Kong}, {
421467featuresIn (156 ); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
422468featuresIn (' Q148' ); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
423469featuresIn (' 🇨🇳' ); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
470+ featuresIn (' .cn' ); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
424471featuresIn (' China' ); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
425472featuresIn (' CN' , true ); // returns [{Mainland China}, {Hong Kong}, {Macau}]
426473```
@@ -437,6 +484,7 @@ aggregateFeature('156'); // returns Mainland China, Hong Kong, and Macau
437484aggregateFeature (156 ); // returns Mainland China, Hong Kong, and Macau as one feature
438485aggregateFeature (' Q148' ); // returns Mainland China, Hong Kong, and Macau as one feature
439486aggregateFeature (' 🇨🇳' ); // returns Mainland China, Hong Kong, and Macau as one feature
487+ aggregateFeature (' .cn' ); // returns Mainland China, Hong Kong, and Macau as one feature
440488aggregateFeature (' China' ); // returns Mainland China, Hong Kong, and Macau as one feature
441489```
442490
@@ -457,6 +505,7 @@ isIn('GB', '150'); // returns true
457505isIn (' GBR' , 150 ); // returns true
458506isIn (' 826' , ' Q46' ); // returns true
459507isIn (' 🇮🇲' , ' 🇬🇧' ); // returns true
508+ isIn (' .im' , ' .uk' ); // returns true
460509isIn (' United Kingdom' , ' Europe' ); // returns true
461510isIn (' United Kingdom' , ' Africa' ); // returns false
462511
@@ -483,9 +532,11 @@ isInEuropeanUnion('276'); // returns true
483532isInEuropeanUnion (276 ); // returns true
484533isInEuropeanUnion (' Q183' ); // returns true
485534isInEuropeanUnion (' 🇩🇪' ); // returns true
535+ isInEuropeanUnion (' .de' ); // returns true
486536isInEuropeanUnion (' Germany' ); // returns true
487537isInEuropeanUnion (' GB' ); // returns false
488538isInEuropeanUnion (' IM' ); // returns false
539+ isInEuropeanUnion (' .im' ); // returns false
489540isInEuropeanUnion (' CH' ); // returns false
490541
491542
@@ -512,9 +563,11 @@ isInUnitedNations('276'); // returns true
512563isInUnitedNations (276 ); // returns true
513564isInUnitedNations (' Q183' ); // returns true
514565isInUnitedNations (' 🇩🇪' ); // returns true
566+ isInUnitedNations (' .de' ); // returns true
515567isInUnitedNations (' Germany' ); // returns true
516568isInUnitedNations (' GB' ); // returns true
517569isInUnitedNations (' IM' ); // returns true
570+ isInUnitedNations (' .im' ); // returns true
518571isInUnitedNations (' CH' ); // returns true
519572isInUnitedNations (' XK' ); // returns false (Kosovo)
520573isInUnitedNations (' PS' ); // returns false (Palestine)
@@ -541,6 +594,7 @@ driveSide('826'); // returns 'left'
541594driveSide (826 ); // returns 'left'
542595driveSide (' Q145' ); // returns 'left'
543596driveSide (' 🇬🇧' ); // returns 'left'
597+ driveSide (' .uk' ); // returns 'left'
544598driveSide (' UK' ); // returns 'left'
545599driveSide (' United Kingdom' ); // returns 'left'
546600driveSide (' CH' ); // returns 'right'
@@ -566,6 +620,7 @@ roadSpeedUnit('826'); // returns 'mph'
566620roadSpeedUnit (826 ); // returns 'mph'
567621roadSpeedUnit (' Q145' ); // returns 'mph'
568622roadSpeedUnit (' 🇬🇧' ); // returns 'mph'
623+ roadSpeedUnit (' .uk' ); // returns 'mph'
569624roadSpeedUnit (' UK' ); // returns 'mph'
570625roadSpeedUnit (' United Kingdom' ); // returns 'mph'
571626roadSpeedUnit (' CH' ); // returns 'km/h'
@@ -591,6 +646,7 @@ roadHeightUnit('826'); // returns 'ft'
591646roadHeightUnit (826 ); // returns 'ft'
592647roadHeightUnit (' Q145' ); // returns 'ft'
593648roadHeightUnit (' 🇬🇧' ); // returns 'ft'
649+ roadHeightUnit (' .uk' ); // returns 'ft'
594650roadHeightUnit (' UK' ); // returns 'ft'
595651roadHeightUnit (' United Kingdom' ); // returns 'ft'
596652roadHeightUnit (' CH' ); // returns 'm'
@@ -615,6 +671,7 @@ callingCodes('826'); // returns ['44']
615671callingCodes (826 ); // returns ['44']
616672callingCodes (' Q145' ); // returns ['44']
617673callingCodes (' 🇬🇧' ); // returns ['44']
674+ callingCodes (' .uk' ); // returns ['44']
618675callingCodes (' UK' ); // returns ['44']
619676callingCodes (' United Kingdom' ); // returns ['44']
620677callingCodes (' BS' ); // returns ['1 242']
@@ -689,6 +746,7 @@ An object containing the attributes of a RegionFeature object.
689746- ` m49 ` : ` string ` , UN M49 code
690747- ` wikidata ` : ` string ` , Wikidata QID
691748- ` emojiFlag ` : ` string ` , the emoji flag sequence derived from this feature's ISO 3166-1 alpha-2 code
749+ - ` ccTLD ` : ` string ` , the ccTLD (country code top-level internet domain)
692750- ` nameEn ` : ` string ` , common name in English
693751- ` aliases ` : ` [string] ` , additional identifiers which can be used to look up this feature
694752- ` country ` : ` string ` , for features entirely within a country, the id for that country
0 commit comments