{"version":3,"sources":["jsdelivr-header.js","/npm/google-distance-matrix@1.1.1/index.js"],"names":[],"mappings":"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","file":"/npm/google-distance-matrix@1.1.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/google-distance-matrix@1.1.1/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nvar request = require('request'),\n  debug = require('debug')(\"google:dm\"),\n  qs = require('qs-google-signature');\n\nvar validTravelModes = ['driving', 'walking', 'bicycling', 'transit'];\nvar validUnits = ['metric', 'imperial'];\nvar validRestrictions = ['tolls', 'highways', 'ferries', 'indoor'];\nvar validTrafficModel = ['best_guess', 'pessimistic', 'optimistic'];\nvar validTransitMode = ['bus', 'subway', 'train', 'tram', 'rail'];\nvar validTransitRoutingPreference = ['less_walking', 'fewer_transfers'];\n\nvar GOOGLE_DISTANCE_API_URL = 'https://maps.googleapis.com/maps/api/distancematrix/json?',\n  SEPARATOR = '|',\n\n  // free api key\n  GOOGLE_API_KEY = process.env.GOOGLE_API_KEY || null,\n\n  // maps for business users key\n  GOOGLE_CLIENT_KEY = process.env.GOOGLE_BUSINESS_CLIENT_KEY || null,\n  GOOGLE_SIGNATURE_KEY = process.env.GOOGLE_SIGNATURE_KEY || null;\n\n\nvar GoogleDistanceMatrix = function() {\n  this.options = {\n    origins: null,\n    destinations: null,\n    mode: 'driving',\n    units: 'metric',\n    language: 'en',\n    avoid: null\n  }\n  if (GOOGLE_CLIENT_KEY && GOOGLE_SIGNATURE_KEY) {\n    debug(\"Using Business Client/Key pair\", GOOGLE_CLIENT_KEY, GOOGLE_SIGNATURE_KEY)\n    this.options.client = GOOGLE_CLIENT_KEY;\n    this.options.signature = GOOGLE_SIGNATURE_KEY;\n  } else {\n    debug(\"Using simple API Key\", GOOGLE_API_KEY)\n    this.options.key = GOOGLE_API_KEY;\n  }\n};\n\nfunction formatLocations(locations) {\n  return locations.join(SEPARATOR);\n}\n\nfunction makeRequest(options, callback) {\n  debug(\"request options\", options)\n  var requestURL = GOOGLE_DISTANCE_API_URL + qs.stringify(options, GOOGLE_DISTANCE_API_URL);\n  debug(\"requestURL\", requestURL)\n  request(requestURL, function(err, response, data) {\n    if (err || response.statusCode != 200) {\n      return callback(new Error('Google API request error: ' + data));\n    }\n    callback(null, JSON.parse(data));\n  })\n}\n\nGoogleDistanceMatrix.prototype.matrix = function(args, cb) {\n\n  // validate arguments\n\n  if (arguments.length < 3) {\n    throw new Error('Invalid number of arguments');\n  }\n  var callback = arguments[arguments.length - 1];\n  if (typeof callback != 'function') {\n    throw new Error('Missing callback function');\n  }\n\n  // format arguments\n\n  this.options.origins = formatLocations(arguments[0]);\n  this.options.destinations = formatLocations(arguments[1]);\n\n  // makes a request to google api\n\n  makeRequest(this.options, function(err, data) {\n    if (err) {\n      return callback(err);\n    }\n    return callback(null, data);\n  });\n\n}\n\nGoogleDistanceMatrix.prototype.mode = function(mode) {\n  if (validTravelModes.indexOf(mode) < 0) {\n    throw new Error('Invalid mode: ' + mode);\n  }\n  this.options.mode = mode;\n}\n\nGoogleDistanceMatrix.prototype.language = function(language) {\n  this.options.language = language;\n}\n\nGoogleDistanceMatrix.prototype.avoid = function(avoid) {\n  if (validRestrictions.indexOf(avoid) < 0) {\n    throw new Error('Invalid restriction: ' + avoid);\n  }\n  this.options.avoid = avoid;\n}\n\nGoogleDistanceMatrix.prototype.units = function(units) {\n  if (validUnits.indexOf(units) < 0) {\n    throw new Error('Invalid units: ' + units);\n  }\n  this.options.units = units;\n}\n\nGoogleDistanceMatrix.prototype.departure_time = function(departure_time) {\n  this.options.departure_time = departure_time;\n}\n\nGoogleDistanceMatrix.prototype.arrival_time = function(arrival_time) {\n  this.options.arrival_time = arrival_time;\n}\n\nGoogleDistanceMatrix.prototype.key = function(key) {\n  delete this.options.client;\n  delete this.options.signature;\n  this.options.key = key;\n}\n\nGoogleDistanceMatrix.prototype.client = function(client) {\n  delete this.options.key;\n  this.options.client = client;\n}\n\nGoogleDistanceMatrix.prototype.signature = function(signature) {\n  delete this.options.key;\n  this.options.signature = signature;\n}\n\nGoogleDistanceMatrix.prototype.traffic_model = function(trafficModel) {\n  this.options.traffic_model = trafficModel;\n}\n\nGoogleDistanceMatrix.prototype.transit_mode = function(transitMode) {\n  this.options.transit_mode = transitMode;\n}\n\nGoogleDistanceMatrix.prototype.transit_routing_preference = function(transitRoutingPreference) {\n  this.options.transit_routing_preference = transitRoutingPreference;\n}\n\nGoogleDistanceMatrix.prototype.reset = function() {\n  this.options = {\n    origins: null,\n    destinations: null,\n    mode: 'driving',\n    units: 'metric',\n    language: 'en',\n    avoid: null\n  };\n}\n\nmodule.exports = new GoogleDistanceMatrix();\n"]}