const { shim } = require("lib/shim.js"); const { netUtils } = require("lib/net-utils.js"); class GeolocationNode { static async currentPosition(options = null) { if (!options) options = {}; const ip = await netUtils.ip(); let response = await shim.fetch("https://freegeoip.net/json/" + ip); if (!response.ok) throw new Error("Could not get geolocation: " + (await response.text())); response = await response.json(); return { timestamp: new Date().getTime(), coords: { longitude: response.longitude, altitude: 0, latitude: response.latitude, }, }; } } module.exports = { GeolocationNode };