Socket
Socket
Sign inDemoInstall

@spurreiter/geocoder

Package Overview
Dependencies
33
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.0 to 1.2.0

lib/formatter/gpx.cjs

2

package.json
{
"name": "@spurreiter/geocoder",
"version": "1.1.0",
"version": "1.2.0",
"description": "Node geocoding library, google maps, bing maps, mapquest, mapbox, here maps, arcgis, nominatim, ...",

@@ -5,0 +5,0 @@ "keywords": [

@@ -21,3 +21,3 @@ import { AbstractGeocoder, GeocoderResult, ForwardQuery, ReverseQuery } from './geocoder/index';

* forward geocoding
* @param query - address string or ip address
* @param query address string or ip address
*/

@@ -24,0 +24,0 @@ forward(query: string | ForwardQuery): Promise<GeocoderResult[]>;

import { GeocoderResult } from '../geocoder/abstract';
/**
* @see https://github.com/geocoders/geocodejson-spec
*/
export interface GeoJsonFeatureCollection {
type: "FeatureCollection";
geocoding: {
version: "0.1.0";
license?: string;
attribution?: string;
query?: string;
},
features: GeoJsonFeature[];

@@ -38,2 +47,8 @@ }

export function geoJsonFormatter(results: GeocoderResult[]): GeoJsonFeatureCollection;
interface GeoJsonGeocoding {
license?: string;
attribution?: string;
query?: string;
}
export function geoJsonFormatter(results: GeocoderResult[], options: GeoJsonGeocoding): GeoJsonFeatureCollection;
/**
* @see https://github.com/geocoders/geocodejson-spec
* @see https://datatracker.ietf.org/doc/html/rfc7946
*/
const featureCollection = (features) => ({
const featureCollection = (
features,
{ license = null, attribution = null, query = null } = {}
) => ({
type: 'FeatureCollection',
geocoding: {
version: '0.1.0',
license,
attribution,
query
},
features

@@ -58,6 +68,9 @@ })

export function geoJsonFormatter (results) {
export function geoJsonFormatter (
results,
opts
) {
if (!results) return
const features = results.map(feature)
const features = results.map(feature, opts)
return featureCollection(features)
}

@@ -1,1 +0,2 @@

export * from "./geojson.js";
export * from "./gpx";
export * from "./geojson";

@@ -0,1 +1,2 @@

export * from './gpx.js'
export * from './geojson.js'

@@ -50,3 +50,3 @@ /**

* forward geocoding
* @param {string|ForwardQuery} query - address string or ip address
* @param {string|ForwardQuery} query address string or ip address
* @returns {Promise<GeocoderResult[]>}

@@ -87,3 +87,3 @@ */

* @protected
* @param {string|ForwardQuery} query - address string or ip address
* @param {string|ForwardQuery} query address string or ip address
* @returns {Promise<GeocoderResult[]>}

@@ -90,0 +90,0 @@ */

import net from 'net'
import { URL, URLSearchParams } from 'url'
const wrapError400 = err => {
const wrapError400 = (err) => {
err.status = 400

@@ -67,3 +67,3 @@ return err

* forward geocoding
* @param {string|ForwardQuery} query - address string or ip address
* @param {string|ForwardQuery} query address string or ip address
* @returns {Promise<GeocoderResult[]>}

@@ -80,6 +80,10 @@ */

if (isIPv4 && !this.supportIPv4) {
throw wrapError400(new Error(`${this.constructor.name} does not support geocoding IPv4`))
throw wrapError400(
new Error(`${this.constructor.name} does not support geocoding IPv4`)
)
}
if (isIPv6 && !this.supportIPv6) {
throw wrapError400(new Error(`${this.constructor.name} does not support geocoding IPv6`))
throw wrapError400(
new Error(`${this.constructor.name} does not support geocoding IPv6`)
)
}

@@ -97,3 +101,3 @@

if (typeof query === 'string') {
const [lat, lng] = query.split(/[ ,]/).map(n => +n)
const [lat, lng] = query.split(/[ ,]/).map((n) => +n)
if (!isNaN(lat) && !isNaN(lng)) {

@@ -150,7 +154,9 @@ query = { lat, lng }

* @protected
* @param {string|ForwardQuery} query - address string or ip address
* @param {string|ForwardQuery} query address string or ip address
* @returns {Promise<GeocoderResult[]>}
*/
_forward () {
throw new Error(`${this.constructor.name} does not support geocoding`)
throw wrapError400(
new Error(`${this.constructor.name} does not support geocoding`)
)
}

@@ -165,4 +171,6 @@

_reverse () {
throw new Error(`${this.constructor.name} does not support reverse geocoding`)
throw wrapError400(
new Error(`${this.constructor.name} does not support reverse geocoding`)
)
}
}

@@ -12,4 +12,4 @@ /**

* @typedef {object} ArcGisReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit]

@@ -70,7 +70,7 @@ * @property {boolean} [returnIntersection]

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/

@@ -83,2 +83,2 @@ lng: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -18,4 +18,4 @@ import { AbstractGeocoder } from './abstract.js'

* @typedef {object} ArcGisReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit]

@@ -22,0 +22,0 @@ * @property {boolean} [returnIntersection]

@@ -10,4 +10,4 @@ /**

* @typedef {object} BingMapsReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit]

@@ -66,7 +66,7 @@ */

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/

@@ -76,2 +76,2 @@ lng: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -31,4 +31,4 @@ import { AbstractGeocoder } from './abstract.js'

* @typedef {object} BingMapsReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit]

@@ -35,0 +35,0 @@ */

@@ -93,2 +93,2 @@ /**

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -13,4 +13,4 @@ /**

* @typedef {object} GoogleReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {string} [language]

@@ -68,7 +68,7 @@ * @property {string} [result_type]

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/

@@ -80,2 +80,2 @@ lng: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -41,4 +41,4 @@ import { AbstractGeocoder } from './abstract.js'

* @typedef {object} GoogleReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {string} [language]

@@ -45,0 +45,0 @@ * @property {string} [result_type]

@@ -43,3 +43,3 @@ export class HereGeocoder extends AbstractGeocoder {

/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -50,7 +50,7 @@ limit?: number;

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/

@@ -60,6 +60,6 @@ lng: number;

/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/
limit?: number;
};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -8,3 +8,3 @@ import { AbstractGeocoder } from './abstract.js'

* @property {string} [language]
* @property {number} [limit=20] - Maximum number of results to be returned
* @property {number} [limit=20] Maximum number of results to be returned
*/

@@ -14,6 +14,6 @@

* @typedef {object} HereReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {string} [language]
* @property {number} [limit=1] - Maximum number of results to be returned
* @property {number} [limit=1] Maximum number of results to be returned
*/

@@ -20,0 +20,0 @@

@@ -1,17 +0,18 @@

export * from "./abstract.js";
export * from "./arcgis.js";
export * from "./bingmaps.js";
export * from "./geocodio.js";
export * from "./google.js";
export * from "./here.js";
export * from "./ipstack.js";
export * from "./localgeoip2.js";
export * from "./locationiq.js";
export * from "./mapbox.js";
export * from "./mapquest.js";
export * from "./opencage.js";
export * from "./osm.js";
export * from "./pelias.js";
export * from "./pickpoint.js";
export * from "./teleport.js";
export * from "./yandex.js";
export * from "./abstract";
export * from "./arcgis";
export * from "./bingmaps";
export * from "./geocodio";
export * from "./google";
export * from "./here";
export * from "./ipstack";
export * from "./localgeoip2";
export * from "./locationiq";
export * from "./mapbox";
export * from "./mapquest";
export * from "./opencage";
export * from "./opendatafrance";
export * from "./osm";
export * from "./pelias";
export * from "./pickpoint";
export * from "./teleport";
export * from "./yandex";

@@ -25,2 +25,2 @@ export class IpStackGeocoder extends AbstractGeocoder {

}
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -40,2 +40,2 @@ /**

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -72,2 +72,2 @@ export class LocationIqGeocoder extends AbstractGeocoder {

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";
/**
* @typedef {object} MapBoxForwardQuery
* @property {string} address -
* @property {number} [limit=5] - Maximum number of results to be returned
* @property {number} [limit=5] Maximum number of results to be returned
* @property {string} [language]

@@ -15,5 +15,5 @@ * @property {boolean} [autocomplete]

* @typedef {object} MapBoxReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=5] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=5] Maximum number of results to be returned
* @property {string} [language]

@@ -69,3 +69,3 @@ * @property {boolean} [routing]

/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -83,11 +83,11 @@ limit?: number;

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/
lng: number;
/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -99,2 +99,2 @@ limit?: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -7,3 +7,3 @@ import { AbstractGeocoder } from './abstract.js'

* @property {string} address -
* @property {number} [limit=5] - Maximum number of results to be returned
* @property {number} [limit=5] Maximum number of results to be returned
* @property {string} [language]

@@ -20,5 +20,5 @@ * @property {boolean} [autocomplete]

* @typedef {object} MapBoxReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=5] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=5] Maximum number of results to be returned
* @property {string} [language]

@@ -25,0 +25,0 @@ * @property {boolean} [routing]

/**
* @typedef {object} MapQuestForwardQuery
* @property {string} address -
* @property {number} [limit=5] - Maximum number of results to be returned
* @property {number} [limit=5] Maximum number of results to be returned
* @property {string} [language]

@@ -15,5 +15,5 @@ * @property {boolean} [autocomplete]

* @typedef {object} MapQuestReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=5] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=5] Maximum number of results to be returned
* @property {string} [language]

@@ -71,3 +71,3 @@ * @property {boolean} [routing]

/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -85,11 +85,11 @@ limit?: number;

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/
lng: number;
/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -101,2 +101,2 @@ limit?: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -7,3 +7,3 @@ import { AbstractGeocoder } from './abstract.js'

* @property {string} address -
* @property {number} [limit=5] - Maximum number of results to be returned
* @property {number} [limit=5] Maximum number of results to be returned
* @property {string} [language]

@@ -20,5 +20,5 @@ * @property {boolean} [autocomplete]

* @typedef {object} MapQuestReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=5] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=5] Maximum number of results to be returned
* @property {string} [language]

@@ -25,0 +25,0 @@ * @property {boolean} [routing]

@@ -46,3 +46,3 @@ export class OpenCageGeocoder extends AbstractGeocoder {

/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -58,11 +58,11 @@ limit?: number;

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/
lng: number;
/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -74,2 +74,2 @@ limit?: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -7,3 +7,3 @@ import { AbstractGeocoder } from './abstract.js'

* @property {string} address -
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -18,5 +18,5 @@ * @property {number} [abbrv]

* @typedef {object} OpenCageReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -23,0 +23,0 @@ * @property {number} [abbrv]

@@ -10,4 +10,4 @@ /**

* @typedef {object} OpendataFranceReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=5] Maximum number of results to be returned

@@ -65,7 +65,7 @@ */

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/

@@ -78,2 +78,2 @@ lng: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -14,4 +14,4 @@ import { AbstractGeocoder } from './abstract.js'

* @typedef {object} OpendataFranceReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=5] Maximum number of results to be returned

@@ -18,0 +18,0 @@ */

/**
* @typedef {object} OsmForwardQuery
* @property {string} address -
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -16,5 +16,5 @@ * @property {number} [addressdetails]

* @typedef {object} OsmReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -89,3 +89,3 @@ * @property {number} [addressdetails]

/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -104,11 +104,11 @@ limit?: number;

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/
lng: number;
/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -123,2 +123,2 @@ limit?: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -32,3 +32,3 @@ import { AbstractGeocoder } from './abstract.js'

* @property {string} address -
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -46,5 +46,5 @@ * @property {number} [addressdetails]

* @typedef {object} OsmReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -51,0 +51,0 @@ * @property {number} [addressdetails]

@@ -7,4 +7,4 @@ /**

* @typedef {object} PeliasReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
*/

@@ -17,3 +17,3 @@ export class PeliasGeocoder extends AbstractGeocoder {

* @param {object} options
* @param {string} [options.origin='https://api.geocode.earth'] - protocol + hostname for server
* @param {string} [options.origin='https://api.geocode.earth'] protocol + hostname for server
*/

@@ -50,10 +50,10 @@ constructor(adapter: Function, options?: {

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/
lng: number;
};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -11,4 +11,4 @@ import { AbstractGeocoder } from './abstract.js'

* @typedef {object} PeliasReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
*/

@@ -22,3 +22,3 @@

* @param {object} options
* @param {string} [options.origin='https://api.geocode.earth'] - protocol + hostname for server
* @param {string} [options.origin='https://api.geocode.earth'] protocol + hostname for server
*/

@@ -25,0 +25,0 @@ constructor (adapter, options = {}) {

@@ -5,3 +5,3 @@ /**

* @property {string} address -
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -18,5 +18,5 @@ * @property {string} [country] search by country

* @typedef {object} PickpointReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -48,3 +48,3 @@ * @property {string} [zoom] 0..18

/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -83,11 +83,11 @@ limit?: number;

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/
lng: number;
/**
* - Maximum number of results to be returned
* Maximum number of results to be returned
*/

@@ -94,0 +94,0 @@ limit?: number;

@@ -7,3 +7,3 @@ import { OsmGeocoder } from './osm.js'

* @property {string} address -
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -21,5 +21,5 @@ * @property {string} [country] search by country

* @typedef {object} PickpointReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} [limit=10] - Maximum number of results to be returned
* @property {number} lat latitude
* @property {number} lng longitude
* @property {number} [limit=10] Maximum number of results to be returned
* @property {string} [language]

@@ -26,0 +26,0 @@ * @property {string} [zoom] 0..18

@@ -7,4 +7,4 @@ /**

* @typedef {object} TeleportReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
*/

@@ -45,10 +45,10 @@ /**

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/
lng: number;
};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -33,4 +33,4 @@ /**

* @typedef {object} TeleportReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
*/

@@ -37,0 +37,0 @@

@@ -12,4 +12,4 @@ /**

* @typedef {object} YandexReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {string} [language]

@@ -70,7 +70,7 @@ */

/**
* - latitude
* latitude
*/
lat: number;
/**
* - longitude
* longitude
*/

@@ -80,2 +80,2 @@ lng: number;

};
import { AbstractGeocoder } from "./abstract.js";
import { AbstractGeocoder } from "./abstract";

@@ -16,4 +16,4 @@ import { AbstractGeocoder } from './abstract.js'

* @typedef {object} YandexReverseQuery
* @property {number} lat - latitude
* @property {number} lng - longitude
* @property {number} lat latitude
* @property {number} lng longitude
* @property {string} [language]

@@ -20,0 +20,0 @@ */

@@ -1,6 +0,6 @@

export * from "./adapter.js";
export * from "./cascade.js";
export * from "./combine.js";
export * from "./circuitbreaker.js";
export * from "./formatter/index.js";
export * from "./geocoder/index.js";
export * from "./adapter";
export * from "./cascade";
export * from "./combine";
export * from "./circuitbreaker";
export * from "./formatter/index";
export * from "./geocoder/index";

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc