route4me-node
Version:
Access Route4Me's logistics-as-a-service API using our Node.js SDK
1 lines • 74.5 kB
JavaScript
(function e(t,r){if(typeof exports==="object"&&typeof module==="object")module.exports=r();else if(typeof define==="function"&&define.amd)define([],r);else if(typeof exports==="object")exports["route4me"]=r();else t["route4me"]=r()})(this,function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:false,exports:{}};e[i].call(n.exports,n,n.exports,r);n.l=true;return n.exports}r.m=e;r.c=t;r.i=function(e){return e};r.d=function(e,t,i){if(!r.o(e,t)){Object.defineProperty(e,t,{configurable:false,enumerable:true,get:i})}};r.n=function(e){var t=e&&e.__esModule?function t(){return e["default"]}:function t(){return e};r.d(t,"a",t);return t};r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};r.p="";return r(r.s=5)}([function(e,t,r){"use strict";var i=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol==="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function o(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var a=r(2)("route4me:utils");var s=r(1);var u=function(){function e(){o(this,e)}n(e,[{key:"debug",value:function e(t){}},{key:"info",value:function e(t){}},{key:"warn",value:function e(t){}},{key:"error",value:function e(t){}}]);return e}();var l=function(){function e(){o(this,e)}n(e,null,[{key:"fromJsonWithStatus",value:function e(t,r,i){if('{"status":true}'===i.text){a("fromJsonWithStatus: HACK for wrong content-type");return true}if(!t||"boolean"!==typeof t["status"]){return new s.Route4MeValidationError("Invalid response",t)}if(true===t["status"]){return true}return new s.Route4MeApiError("Failed",i)}}]);return e}();function f(e){return null!==e&&"object"===(typeof e==="undefined"?"undefined":i(e))}function c(e,t,r){if(undefined===e||null===e){return r}var i=e[t];if(undefined===i){return r}return i}function d(e,t){if(null===e||undefined===e){return e}var r={};Object.keys(t).forEach(function(i){var n=t[i];r[n]=e[i]});return r}function p(e){return JSON.parse(JSON.stringify(e))}function h(e){var t={};var r=[];e.forEach(function(e){if(!(e in t)){t[e]=true;r.push(e)}});return r}function v(e,t){var r=e;if("number"===typeof r){return[""+r]}if("string"===typeof r){if(false!==t){r=r.trim().split(/[,\s]+/)}else{r=r.split(/,+/)}}if(Array.isArray(r)){r=r.map(function(e){return""+e});return r}throw new s.Route4MeError("Argument is not a number OR CSV-string OR string OR array")}function m(e){var t=e;if("number"===typeof t){return[t]}if("string"===typeof t){t=t.split(/[,\s]+/)}if(Array.isArray(t)){t=t.map(function(e){return Number(e)}).filter(function(e){return"number"===typeof e});return t}throw new s.Route4MeError("Argument is not a number OR CSV-string OR string OR array")}function y(e){function t(e){if(1>e)return false;if(6<e)return false;return true}var r=void 0;try{r=m(e)}catch(e){return e}r=h(r.filter(t));return r.join(",")}function b(e){return e.toISOString().substring(0,10)}t.ILogger=u;t.CustomInternalPostProcessing=l;t.isObject=f;t.get=c;t.clone=p;t.mapObject=d;t.toStringArray=v;t.toIntArray=m;t.toOptimizationStatesSafe=y;t.toIsoDateString=b},function(e,t,r){"use strict";function i(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function n(e,t){if(!e){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return t&&(typeof t==="object"||typeof t==="function")?t:e}function o(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}function a(e){function t(){var t=Reflect.construct(e,Array.from(arguments));Object.setPrototypeOf(t,Object.getPrototypeOf(this));return t}t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(Object.setPrototypeOf){Object.setPrototypeOf(t,e)}else{t.__proto__=e}return t}var s=function(e){o(t,e);function t(e,r){i(this,t);var o=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));o.innerError=r||null;o.name="Route4MeError";return o}return t}(a(Error));var u=function(e){o(t,e);function t(e,r,o){i(this,t);var a=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,o));a.name="Route4MeApiError";a.statusCode=r.statusCode;a.apiPath=r.request.url;return a}return t}(s);var l=function(e){o(t,e);function t(e,r,o){i(this,t);var a=n(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,o));a.name="Route4MeValidationError";a.data=r;return a}return t}(s);t.Route4MeError=s;t.Route4MeApiError=u;t.Route4MeValidationError=l},function(e,t,r){(function(i){t=e.exports=r(21);t.log=a;t.formatArgs=o;t.save=s;t.load=u;t.useColors=n;t.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:l();t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function n(){if(typeof window!=="undefined"&&window&&typeof window.process!=="undefined"&&window.process.type==="renderer"){return true}return typeof document!=="undefined"&&document&&"WebkitAppearance"in document.documentElement.style||typeof window!=="undefined"&&window&&window.console&&(console.firebug||console.exception&&console.table)||typeof navigator!=="undefined"&&navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function o(e){var r=this.useColors;e[0]=(r?"%c":"")+this.namespace+(r?" %c":" ")+e[0]+(r?"%c ":" ")+"+"+t.humanize(this.diff);if(!r)return;var i="color: "+this.color;e.splice(1,0,i,"color: inherit");var n=0;var o=0;e[0].replace(/%[a-zA-Z%]/g,function(e){if("%%"===e)return;n++;if("%c"===e){o=n}});e.splice(o,0,i)}function a(){return"object"===typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function s(e){try{if(null==e){t.storage.removeItem("debug")}else{t.storage.debug=e}}catch(e){}}function u(){var e;try{e=t.storage.debug}catch(e){}if(!e&&typeof i!=="undefined"&&"env"in i){e=i.env.DEBUG}return e}t.enable(u());function l(){try{return window.localStorage}catch(e){}}}).call(t,r(25))},function(e,t){function r(e){return null!==e&&"object"===typeof e}e.exports=r},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(2)("route4me");var a=r(24);var s=r(7);var u=r(9);var l=r(8);var f=r(10);var c=r(11);var d=r(12);var p=r(13);var h=r(14);var v=r(15);var m=r(16);var y=r(17);var b=r(18);var _=r(19);var g=r(22);var k=r(0);var w=r(1);var x=r(6);var E=function(){function e(t,r){n(this,e);var i={};i["baseUrl"]=k.get(r,"baseUrl","https://route4me.com");i["logger"]=k.get(r,"logger",new k.ILogger);i["promise"]=k.get(r,"promise",false);i["validate"]=k.get(r,"validate",false);i["userAgent"]="superagent/3.3.2 ("+a.name+" "+a.version+"; Route4Me-"+a.name+"/"+e.version+") "+a.description;o("init",i);o("version",e.version);if(!t){throw new w.Route4MeError("'apiKey' is not set")}var g=new x(t,i);this._logger=i["logger"];this.ActivityFeed=new s(g);this.AddressBook=new l(g);this.Addresses=new u(g);this.AvoidanceZones=new f(g);this.Geocoding=new c(g);this.Members=new d(g);this.Notes=new p(g);this.Optimizations=new h(g);this.Orders=new v(g);this.Routes=new m(g);this.Territories=new y(g);this.Tracking=new b(g);this.Vehicles=new _(g);this._logger.debug({msg:"initialized",version:e.version})}i(e,[{key:"version",get:function e(){return g.version}}],[{key:"version",get:function e(){return g.version}}]);return e}();e.exports=E},function(e,t,r){"use strict";var i=r(1);var n=r(4);e.exports=function e(){for(var t=arguments.length,r=Array(t),i=0;i<t;i++){r[i]=arguments[i]}return new(Function.prototype.bind.apply(n,[null].concat(r)))};e.exports.version=n.version;e.exports.Route4Me=n;e.exports.Route4MeError=i.Route4MeError;e.exports.Route4MeApiError=i.Route4MeApiError;e.exports.Route4MeValidationError=i.Route4MeValidationError},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(26);var a=r(1);var s=function(){function e(t,r,i,o,a){n(this,e);var s="function"!==typeof a?function(e){return e}:a;this._logger=r;this._validate=i;this._validateContext=o;if(t){var u=this;this._p=new t(function(e,t){u._res=e;u._rej=t})}else{this._p=undefined;this._res=function(e){return s(null,e)};this._rej=function(e){return s(e)}}}i(e,[{key:"callback",value:function e(t,r){if(t){return this._handleError(t,r)}return this._handleOk(r)}},{key:"fail",value:function e(t){return this._rej(t)}},{key:"getPromise",value:function e(){return this._p}},{key:"_handleOk",value:function e(t){this.logger.debug({src:"route4me:request-manager:ResponseHandler:_handleOk",msg:"response ok"});var r=this._validate(t.body,this._validateContext,t);if(r instanceof a.Route4MeError){this._logger.warn({msg:"response validation error",err:r});return this.fail(r)}else if(r instanceof Error){this._logger.error({msg:"Unhandled error during validation",err:r,fatal:true});return this.fail(r)}this._logger.info({msg:"response ok"});return this._res(r)}},{key:"_handleError",value:function e(t,r){this.logger.debug({src:"route4me:request-manager:ResponseHandler:_handleError",msg:"response error"});var i=new a.Route4MeApiError(t.message,r,t);this._logger.warn({msg:"response error",err:i});return this.fail(i)}},{key:"logger",get:function e(){return this._logger}}]);return e}();var u=function(){function e(t,r){n(this,e);var i=r;this._apiKey=t;this._baseUrl=i["baseUrl"];this._userAgent=i["userAgent"];this._logger=i["logger"];this._validate="function"===typeof i["validate"]?i["validate"]:function(e){return e};if(true===i["promise"]){this.logger.debug({src:"route4me:request-manager:RequestManager",msg:"promises: global Promise"});this._promiseConstructor=Promise}else if("function"===typeof i["promise"]){this.logger.debug({src:"route4me:request-manager:RequestManager",msg:"promises: explicitly defined promise-lib"});this._promiseConstructor=i["promise"]}else{this.logger.debug({src:"route4me:request-manager:RequestManager",msg:"promises: off"});this._promiseConstructor=null}}i(e,[{key:"_makeRequest",value:function e(t,r){var i=t.qs||{};var n=t.body||null;var u=t.form||null;var l={response:5e3,deadline:1e4};var f=t.method.toLowerCase();if("delete"===f){f="del"}var c=void 0;if(t.url){this.logger.debug({src:"route4me:request-manager:RequestManager:_makeRequest",msg:"WARNING: _makeRequest called with FULL url, but MUST be called only for partial path",url:t.url});c=t.url}else{c=""+this._baseUrl+t.path}i["api_key"]=this._apiKey;if(undefined===t.validationContext){throw new a.Route4MeError("validationContext should not be undefined")}var d=this._validate;var p=t.validationContext||null;if("function"===typeof p){d=p;p=null}this.logger.info({src:"route4me:request-manager:RequestManager:_makeRequest",msg:"sending request",method:f,url:c,queryString:i});var h=new s(this._promiseConstructor,this._logger,d,p,r);var v=o[f](c).set("Route4Me-User-Agent",this._userAgent).timeout(l).redirects(1e3).accept("application/json").query(i);if(u){v.type("multipart/form-data").field(u)}else{v.type("application/json").send(n)}v.end(function(e,t){return h.callback(e,t)});return h.getPromise()}},{key:"_makeError",value:function e(t,r){var i=new s(this._promiseConstructor,this._logger,this._validate,null,r);setTimeout(function(){i.fail(t)},0);return i.getPromise()}},{key:"logger",get:function e(){return this._logger}}]);return e}();e.exports=u},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(0);var a={AreaAdded:"area-added",AreaRemoved:"area-removed",AreaUpdated:"area-updated",GeofenceEntered:"geofence-entered",GeofenceLeft:"geofence-left",RouteDelete:"route-delete",RouteOptimized:"route-optimized",RouteOwnerChanged:"route-owner-changed",DeleteDestination:"delete-destination",DestinationOutSequence:"destination-out-sequence",InsertDestination:"insert-destination",MarkDestinationDeparted:"mark-destination-departed",MarkDestinationVisited:"mark-destination-visited",MoveDestination:"move-destination",UpdateDestinations:"update-destinations",DriverArrivedEarly:"driver-arrived-early",DriverArrivedLate:"driver-arrived-late",DriverArrivedOnTime:"driver-arrived-on-time",MemberCreated:"member-created",MemberDeleted:"member-deleted",MemberModified:"member-modified",NoteInsert:"note-insert",UserMessage:"user_message"};var s={};Object.keys(a).forEach(function(e){var t=a[e];s[e]=t;s[t]=t});var u=Object.freeze(s);var l=function(){function e(t){n(this,e);this.r=t;this.__activityTypeEnum=a}i(e,[{key:"create",value:function e(t,r){var i={};i["activity_type"]="user_message";i["activity_message"]=t["message"];i["route_id"]=t["routeId"];return this.r._makeRequest({method:"POST",path:"/api.v4/activity_feed.php",body:i,validationContext:o.CustomInternalPostProcessing.fromJsonWithStatus},r)}},{key:"list",value:function e(t,r,i){var n={};var a=t;var s=r;var l=i;if("undefined"===typeof l&&"function"===typeof s){l=s;s=undefined}if("string"===typeof a){a={activityType:a}}if(!o.isObject(a)){a={}}if("activityType"in a&&a["activityType"]in u){n["activity_type"]=u[a["activityType"]]}else{this.r.logger.debug({src:"route4me:activity-feed:list",msg:"ignore 'activity_type' filter"})}if("routeId"in a){n["route_id"]=a["routeId"]}if(!o.isObject(s)){s={}}if("offset"in s){n["offset"]=s["offset"]}if("limit"in s){n["limit"]=s["limit"]}if(s["includeTeamActivities"]){n["team"]="true"}return this.r._makeRequest({method:"GET",path:"/api/get_activities.php",qs:n,validationContext:"ActivityFeed.ActivityFeedResult"},l)}},{key:"ActivityTypeEnum",get:function e(){return this.__activityTypeEnum}}]);return e}();e.exports=l},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(0);var a=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"create",value:function e(t,r){return this.r._makeRequest({method:"POST",path:"/api.v4/address_book.php",body:t,validationContext:"AddressBook.AddressBook"},r)}},{key:"getMany",value:function e(t,r){var i=o.toIntArray(t);return this.r._makeRequest({method:"GET",path:"/api.v4/address_book.php",qs:{address_id:i},validationContext:"AddressBook.AddressBookSearchResult"},r)}},{key:"list",value:function e(t,r){return this.search(undefined,t,r)}},{key:"search",value:function e(t,r,i){var n={};if(null!==t&&t!==undefined){n["query"]=t}if("offset"in r){n["offset"]=r.offset}if("limit"in r){n["limit"]=r.limit}if("fields"in r){n["fields"]=r.fields}if("routed"in r&&"boolean"===typeof r.routed){n["display"]=r.routed?"routed":"unrouted"}return this.r._makeRequest({method:"GET",path:"/api.v4/address_book.php",qs:n,validationContext:"AddressBook.AddressBookSearchResult"},i)}},{key:"update",value:function e(t,r,i){var n=o.clone(r);n["address_id"]=t;return this.r._makeRequest({method:"PUT",path:"/api.v4/address_book.php",body:n,validationContext:"AddressBook.AddressBook"},i)}},{key:"remove",value:function e(t,r){var i=o.toStringArray(t);return this.r._makeRequest({method:"DELETE",path:"/api.v4/address_book.php",body:{address_ids:i},validationContext:"AddressBook.RemoveSchema"},r)}}]);return e}();e.exports=a},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(1);function a(e){if(e&&true===e.status){return true}return new o.Route4MeValidationError("Invalid response",e)}var s=a;var u=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"get",value:function e(t,r,i,n){var o=n;var a=i;if("undefined"===typeof o&&"function"===typeof a){o=a;a={}}a=a||{};var s=false;if(undefined!==a.includeNotes){s=!!a.includeNotes}return this.r._makeRequest({method:"GET",path:"/api.v4/address.php",qs:{route_id:r,route_destination_id:t,notes:s?"1":"0"},validationContext:"Addresses.Address"},n)}},{key:"updateCustomData",value:function e(t,r,i,n){return this.r._makeRequest({method:"PUT",path:"/api.v4/address.php",qs:{route_id:r,route_destination_id:t},body:i,validationContext:"Addresses.Address"},n)}},{key:"markDetectedDeparted",value:function e(t,r,i,n){var o={route_destination_id:t,route_id:r};return this.r._makeRequest({method:"PUT",path:"/api.v4/address.php",qs:o,body:{is_departed:true===i},validationContext:"Addresses.Address"},n)}},{key:"markDetectedVisited",value:function e(t,r,i,n){var o={route_destination_id:t,route_id:r};return this.r._makeRequest({method:"PUT",path:"/api.v4/address.php",qs:o,body:{is_visited:true===i},validationContext:"Addresses.Address"},n)}},{key:"markVisited",value:function e(t,r,i,n,o){var s={address_id:t,route_id:r,member_id:i};s["is_visited"]=n?"1":"0";return this.r._makeRequest({method:"PUT",path:"/actions/address/update_address_visited.php",qs:s,validationContext:a},o)}},{key:"markDeparted",value:function e(t,r,i,n,o){var a={address_id:t,route_id:r,member_id:i};a["is_departed"]=n?"1":"0";return this.r._makeRequest({method:"PUT",path:"/api/route/mark_address_departed.php",qs:a,validationContext:s},o)}}]);return e}();e.exports=u},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"create",value:function e(t,r){return this.r._makeRequest({method:"POST",path:"/api.v4/avoidance.php",body:t,validationContext:"AvoidanceZones.AvoidanceZone"},r)}},{key:"get",value:function e(t,r){return this.r._makeRequest({method:"GET",path:"/api.v4/avoidance.php",qs:{territory_id:t},validationContext:"AvoidanceZones.AvoidanceZone"},r)}},{key:"list",value:function e(t){return this.r._makeRequest({method:"GET",path:"/api.v4/avoidance.php",validationContext:"AvoidanceZones.AvoidanceZones"},t)}},{key:"update",value:function e(t,r,i){return this.r._makeRequest({method:"PUT",path:"/api.v4/avoidance.php",qs:{territory_id:t},body:r,validationContext:"AvoidanceZones.AvoidanceZone"},i)}},{key:"remove",value:function e(t,r){return this.r._makeRequest({method:"DELETE",path:"/api.v4/avoidance.php",qs:{territory_id:t},validationContext:"AvoidanceZones.RemoveResponse"},r)}}]);return e}();e.exports=o},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"forward",value:function e(t,r){return this.r._makeRequest({method:"GET",path:"/api/geocoder.php",qs:{format:"json",addresses:t},validationContext:"Geocoding.Forward"},r)}},{key:"reverse",value:function e(t,r,i){return this.r._makeRequest({method:"GET",path:"/api/geocoder.php",qs:{format:"json",addresses:t+","+r},validationContext:"Geocoding.Reverse"},i)}},{key:"rapidGet",value:function e(t,r){var i=Number(t);var n="https://rapid.route4me.com/street_data/"+i+"/";return this.r._makeRequest({method:"GET",url:n,validationContext:"Geocoding.Rapid"},r)}},{key:"rapidSearch",value:function e(t,r,i){var n="";var o="";var a="";if(r&&"number"===typeof r["offset"]&&"number"===typeof r["limit"]){n=r.offset+"/"+r.limit+"/"}if(t){var s=t["zipCode"]||t["zipcode"];var u=t["houseNumber"]||t["housenumber"];if(s){o="zipcode/";a=s+"/"}if(u){o="service/";a=s+"/"+u+"/"}}var l="https://rapid.route4me.com/street_data/"+o+a+n;return this.r._makeRequest({method:"GET",url:l,validationContext:"Geocoding.Rapid"},i)}}]);return e}();e.exports=o},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(0);var a=r(1);function s(e,t){if(t in e){e[t]=e[t].toString().toUpperCase()}}function u(e){var t=o.clone(e);t.dateOfBirth=t.dateOfBirth.toString();s(t,"readonlyUser");s(t,"hideVisitedAddresses");s(t,"hideRoutedAddresses");s(t,"hideNonfutureRoutes");s(t,"showAllVehicles");s(t,"showAllDrivers");return o.mapObject(t,{phone:"member_phone",zipcode:"member_zipcode",routeCount:"route_count",email:"member_email",type:"member_type",dateOfBirth:"date_of_birth",firstName:"member_first_name",password:"member_password",lastName:"member_last_name",readonlyUser:"READONLY_USER",hideVisitedAddresses:"HIDE_VISITED_ADDRESSES",hideRoutedAddresses:"HIDE_ROUTED_ADDRESSES",hideNonfutureRoutes:"HIDE_NONFUTURE_ROUTES",showAllVehicles:"SHOW_ALL_VEHICLES",showAllDrivers:"SHOW_ALL_DRIVERS"})}function l(e){var t=o.clone(e);var r=o.mapObject(t,{industry:"strIndustry",firstName:"strFirstName",lastName:"strLastName",email:"strEmail",deviceType:"device_type",password:"strPassword_1"});r["strPassword_2"]=e["password"];r["chkTerms"]="1";r["format"]="json";return r}function f(e,t,r){if(!e||"boolean"!==typeof e.status){return new a.Route4MeValidationError("Invalid response",e)}if(true===e.status){return true}return new a.Route4MeApiError("Failed",r)}function c(e,t,r){if(!e||"boolean"!==typeof e.authenticated||"number"!==typeof e.member_id){return new a.Route4MeValidationError("Invalid response",e)}if(true!==e.authenticated){return new a.Route4MeApiError("Not authenticated",r)}return e.member_id}var d=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"create",value:function e(t,r){var i=u(t);return this.r._makeRequest({method:"POST",path:"/api.v4/user.php",body:i,validationContext:"Members.Members"},r)}},{key:"list",value:function e(t){return this.r._makeRequest({method:"GET",path:"/api/member/view_users.php",validationContext:"Members.Members"},t)}},{key:"get",value:function e(t,r){return this.r._makeRequest({method:"GET",path:"/api.v4/user.php",qs:{member_id:t},validationContext:"Members.Member"},r)}},{key:"update",value:function e(t,r,i){var n=u(r);n["member_id"]=t;return this.r._makeRequest({method:"PUT",path:"/api.v4/user.php",body:n,validationContext:"Members.Member"},i)}},{key:"remove",value:function e(t,r){var i={member_id:t};return this.r._makeRequest({method:"DELETE",path:"/api.v4/user.php",body:i,validationContext:f},r)}},{key:"authenticate",value:function e(t,r,i){return this.r._makeRequest({method:"POST",path:"/actions/authenticate.php",body:{strEmail:t,strPassword:r,format:"json"},validationContext:"Members.Member"},i)}},{key:"validateSession",value:function e(t,r,i){return this.r._makeRequest({method:"GET",path:"/datafeed/session/validate_session.php",qs:{session_guid:r,member_id:t,frmt:"json"},validationContext:c},i)}},{key:"registerAccount",value:function e(t,r){var i=l(t);return this.r._makeRequest({method:"POST",path:"/actions/register_action.php",qs:{plan:t.accountPlan},body:i,validationContext:"Members.Account"},r)}}]);return e}();e.exports=d},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(0);var a=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"create",value:function e(t,r){var i=o.mapObject(t,{routeId:"route_id",addressId:"address_id",deviceLatitude:"dev_lat",deviceLongitude:"dev_lng",deviceType:"device_type"});var n=t.type||"dropoff";i["strUpdateType"]=n;var a=void 0;if(t.note){a={strNoteContents:t.note}}else{a=t.file}return this.r._makeRequest({method:"POST",path:"/actions/addroutenotes.php",qs:i,body:a,validationContext:"Notes.NoteCreateResponse"},r)}}]);return e}();e.exports=a},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(0);var a=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"create",value:function e(t,r){return this.r._makeRequest({method:"POST",path:"/api.v4/optimization_problem.php",body:t,validationContext:"Optimizations.Response"},r)}},{key:"get",value:function e(t,r){return this.r._makeRequest({method:"GET",path:"/api.v4/optimization_problem.php",qs:{optimization_problem_id:t},validationContext:"Optimizations.Optimization"},r)}},{key:"list",value:function e(t,r,i){var n=o.toOptimizationStatesSafe(t);if(n instanceof Error){var a=n;return this.r._makeError(a,i)}var s={};if(n){s["states"]=n}if("offset"in r){s["offset"]=r.offset}if("limit"in r){s["limit"]=r.limit}return this.r._makeRequest({method:"GET",path:"/api.v4/optimization_problem.php",qs:s,validationContext:"Optimizations.Optimizations"},i)}},{key:"update",value:function e(t,r,i,n){var o=n;var a=i;if(undefined===o&&"function"===typeof a){o=a;a=false}return this.r._makeRequest({method:"PUT",path:"/api.v4/optimization_problem.php",qs:{optimization_problem_id:t,reoptimize:a?"1":"0"},body:r,validationContext:"Optimizations.Response"},o)}},{key:"remove",value:function e(t,r){return this.r._makeRequest({method:"DELETE",path:"/api.v4/optimization_problem.php",qs:{optimization_problem_id:t},validationContext:"Optimizations.RemoveResponse"},r)}},{key:"linkAddress",value:function e(t,r,i,n){var o=n;var a=i;if(undefined===o&&"function"===typeof a){o=a;a=false}return this.r._makeRequest({method:"PUT",path:"/api.v4/optimization_problem.php",qs:{optimization_problem_id:t,reoptimize:a?"1":"0"},body:{addresses:r},validationContext:"Addresses.Addresses"},o)}},{key:"unlinkAddress",value:function e(t,r,i){return this.r._makeRequest({method:"DELETE",path:"/api.v4/address.php",qs:{optimization_problem_id:t,route_destination_id:r},validationContext:"Optimizations.UnlinkAddressResponse"},i)}}]);return e}();e.exports=a},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(2)("route4me");var a=r(0);var s=r(1);var u=function(){function e(){n(this,e)}i(e,null,[{key:"list",value:function e(t,r,i){if(!t||!a.isObject(t)){return new s.Route4MeValidationError("Invalid response",t)}if(Array.isArray(t["results"])&&undefined!==t["total"]){o("Orders:list:pp received a response with an array");return t["results"]}if("number"===typeof t["order_id"]){o("Orders:list:pp received a response with one item (it will be wrapped)");return[t]}return new s.Route4MeApiError("Failed",i)}}]);return e}();var l=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"create",value:function e(t,r){var i=t;return this.r._makeRequest({method:"POST",path:"/api.v4/order.php",body:i,validationContext:"Orders.Order"},r)}},{key:"get",value:function e(t,r){var i=Number(t);return this.r._makeRequest({method:"GET",path:"/api.v4/order.php",qs:{order_id:i},validationContext:"Orders.Order"},r)}},{key:"list",value:function e(t,r){var i=t;var n=r;if(undefined===n&&"function"===typeof i){n=i;i=undefined}var o={};if(i||0===i){i=a.toIntArray(i);o["order_id"]=i}return this.r._makeRequest({method:"GET",path:"/api.v4/order.php",qs:o,validationContext:u.list},r)}},{key:"remove",value:function e(t,r){var i=a.toIntArray(t);var n={redirect:0};var o={order_ids:i};return this.r._makeRequest({method:"DELETE",path:"/api.v4/order.php",qs:n,body:o,validationContext:a.CustomInternalPostProcessing.fromJsonWithStatus},r)}},{key:"update",value:function e(t,r,i){var n={redirect:0};var o=a.clone(r);o["order_id"]=Number(t);return this.r._makeRequest({method:"PUT",path:"/api.v4/order.php",qs:n,body:o,validationContext:"Orders.Order"},i)}},{key:"search",value:function e(t,r,i){var n={redirect:0};var o=t;var s=r;var l=i;if("string"===typeof o){o={query:o}}if(!a.isObject(o)){o={}}if(undefined===l&&"function"===typeof s){l=s;s={}}if(!a.isObject(s)){s={}}if("offset"in s){n["offset"]=s.offset}if("limit"in s){n["limit"]=s.limit}if("fields"in s){n["fields"]=s.fields}if("query"in o){n["query"]=o["query"]}if("byAddDate"in o){var f=o["byAddDate"];n["day_added_YYMMDD"]=a.toIsoDateString(f)}if("byScheduledDate"in o){var c=o["byScheduledDate"];n["scheduled_for_YYMMDD"]=a.toIsoDateString(c)}return this.r._makeRequest({method:"GET",path:"/api.v4/order.php",qs:n,validationContext:u.list},i)}}]);return e}();e.exports=l},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(2)("route4me");var a=r(0);var s=r(1);var u=function(){function e(){n(this,e)}i(e,null,[{key:"duplicate",value:function e(t,r,i){if(!t||"boolean"!==typeof t["success"]||"string"!==typeof t["optimization_problem_id"]){return new s.Route4MeValidationError("Invalid response",t)}if(true===t["success"]){return t["optimization_problem_id"]}return new s.Route4MeApiError("Failed",i)}},{key:"pullAddress",value:function e(t,r,i){if(!t||"boolean"!==typeof t["success"]){return new s.Route4MeValidationError("Invalid response",t)}if(true===t["success"]){return true}return new s.Route4MeApiError("Failed",i)}},{key:"merge",value:function t(r,i,n){return e.duplicate(r,i,n)}},{key:"unlinkAddress",value:function e(t,r,i){if(!t||"boolean"!==typeof t.deleted){return new s.Route4MeValidationError("Invalid response",t)}if(true===t.deleted){return true}return new s.Route4MeApiError("Failed",i)}}]);return e}();var l=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"get",value:function e(t,r,i){var n=r;var o=i;if(o===undefined&&"function"===typeof n){o=n;n=null}if(!n){n={}}var a={};a["route_id"]=t;if(true===n["includeTracking"]){a["device_tracking_history"]="1"}if(true===n["includeDirections"]){a["directions"]="1"}if(undefined!==n["includeRoutePath"]){a["route_path_output"]=n.includeRoutePath?"Points":"None"}return this.r._makeRequest({method:"GET",path:"/api.v4/route.php",qs:a,validationContext:"Routes.Route"},o)}},{key:"list",value:function e(t,r){var i={};if("limit"in t){i["limit"]=t.limit}if("offset"in t){i["offset"]=t.offset}return this.r._makeRequest({method:"GET",path:"/api.v4/route.php",qs:i,validationContext:"Routes.Routes"},r)}},{key:"search",value:function e(t,r){var i={query:t.toString()};return this.r._makeRequest({method:"GET",path:"/api.v4/route.php",qs:i,validationContext:"Routes.Routes"},r)}},{key:"update",value:function e(t,r,i){var n={route_id:t};var o=r;return this.r._makeRequest({method:"PUT",path:"/api.v4/route.php",qs:n,body:o,validationContext:"Routes.Route"},i)}},{key:"remove",value:function e(t,r){var i=a.toStringArray(t);return this.r._makeRequest({method:"DELETE",path:"/api.v4/route.php",qs:{route_id:i},validationContext:"Routes.RemoveResponse"},r)}},{key:"linkAddress",value:function e(t,r,i,n){var o=i;var a=n;if(undefined===a&&"function"===typeof o){a=o;o={}}if(!o){o={}}var s=undefined===o.optimalPosition?true:!!o.optimalPosition;var u={};u["optimal_position"]=s;u["addresses"]=r;return this.r._makeRequest({method:"PUT",path:"/api.v4/route.php",qs:{route_id:t},body:u,validationContext:"Routes.Route"},a)}},{key:"unlinkAddress",value:function e(t,r,i){return this.r._makeRequest({method:"DELETE",path:"/api.v4/address.php",qs:{route_id:t,route_destination_id:r},validationContext:u.unlinkAddress},i)}},{key:"duplicate",value:function e(t,r){return this.r._makeRequest({method:"POST",path:"/actions/duplicate_route.php",qs:{route_id:t,to:"none"},validationContext:u.duplicate},r)}},{key:"merge",value:function e(t,r){var i=a.toStringArray(t);return this.r._makeRequest({method:"POST",path:"/actions/merge_routes.php",body:i,validationContext:u.merge},r)}},{key:"share",value:function e(t,r,i){var n={route_id:t,response_format:"json"};var o={recipient_email:r};return this.r._makeRequest({method:"POST",path:"/actions/route/share_route.php",qs:n,form:o,validationContext:a.CustomInternalPostProcessing.fromJsonWithStatus},i)}},{key:"pullAddress",value:function e(t,r,i,n){var o={to_route_id:t,route_destination_id:r,after_destination_id:i};return this.r._makeRequest({method:"POST",path:"/actions/route/move_route_destination.php",form:o,validationContext:u.pullAddress},n)}},{key:"resequence",value:function e(t,r,i){var n={route_id:t};var a=Object.keys(r).map(function(e){return{route_destination_id:Number(e),sequence_no:Number(r[e])}});var s={addresses:a};o("route resequence BODY: "+s);return this.r._makeRequest({method:"PUT",path:"/api.v4/route.php",qs:n,body:s,validationContext:"Routes.Route"},i)}},{key:"optimize",value:function e(t,r,i){var n={route_id:t,disable_optimization:"0",optimize:r};return this.r._makeRequest({method:"POST",path:"/api.v3/route/reoptimize_2.php",qs:n,validationContext:a.CustomInternalPostProcessing.fromJsonWithStatus},i)}}]);return e}();e.exports=l},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(0);var a=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"create",value:function e(t,r){return this.r._makeRequest({method:"POST",path:"/api.v4/territory.php",body:t,validationContext:"Territories.Territory"},r)}},{key:"get",value:function e(t,r,i){var n=i;var o=r;if("undefined"===typeof n&&"function"===typeof o){n=o;o={}}o=o||{};var a=false;if(undefined!==o.includeAddresses){a=!!o.includeAddresses}return this.r._makeRequest({method:"GET",path:"/api.v4/territory.php",qs:{territory_id:t,addresses:a?"1":"0"},validationContext:"Territories.Territory"},n)}},{key:"list",value:function e(t){return this.r._makeRequest({method:"GET",path:"/api.v4/territory.php",validationContext:"Territories.Territories"},t)}},{key:"update",value:function e(t,r,i){return this.r._makeRequest({method:"PUT",path:"/api.v4/territory.php",qs:{territory_id:t},body:r,validationContext:"Territories.Territory"},i)}},{key:"remove",value:function e(t,r){return this.r._makeRequest({method:"DELETE",path:"/api.v4/territory.php",qs:{territory_id:t},validationContext:o.CustomInternalPostProcessing.fromJsonWithStatus},r)}}]);return e}();e.exports=a},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=r(2)("route4me");var a=r(0);var s=r(1);function u(e,t,r){if(!e||"boolean"!==typeof e.status){return new s.Route4MeValidationError("Invalid response",e)}if(true===e.status){return true}return new s.Route4MeApiError("Failed",r)}var l=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"getAssetTracking",value:function e(t,r){return this.r._makeRequest({method:"GET",path:"/api.v4/status.php",qs:{tracking:t},validationContext:"Tracking.AssetTracking"},r)}},{key:"getRouteTrackingHistory",value:function e(t,r,i){var n={route_id:t};if(a.isObject(r)){var o=r.span||"custom";if("custom"===o){var s=r.from||r.start||r.begin;var u=r.trim||r.finish||r.end;n["start_date"]=Math.floor(s.valueOf()/1e3);n["end_date"]=Math.floor(u.valueOf()/1e3)}n["time_period"]=o}else{n["time_period"]=r.toString()}return this.r._makeRequest({method:"GET",path:"/get_device_location.php",qs:n,validationContext:"Tracking.TrackingHistory"},i)}},{key:"createRouteTracking",value:function e(t,r){var i={frm:"JSON"};i["member_id"]=t.memberId||t.member_id;i["route_id"]=t.routeId||t.route_id;i["course"]=t.course;i["speed"]=t.speed;i["lat"]=t.latitude||t.lat;i["lng"]=t.longitude||t.lng;i["device_type"]=t.deviceType||t.device_type;i["device_guid"]=t.deviceGuid||t.device_guid;o("createRouteTracking: parsed trackingData: "+i);return this.r._makeRequest({method:"POST",path:"/track/set.php",qs:i,validationContext:u},r)}}]);return e}();e.exports=l},function(e,t,r){"use strict";var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();function n(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=function(){function e(t){n(this,e);this.r=t}i(e,[{key:"list",value:function e(t){return this.r._makeRequest({method:"GET",path:"/api.v4/vehicle.php",validationContext:"Vehicles.ResponseMany"},t)}}]);return e}();e.exports=o},function(e,t,r){if(true){e.exports=i}function i(e){if(e)return n(e)}function n(e){for(var t in i.prototype){e[t]=i.prototype[t]}return e}i.prototype.on=i.prototype.addEventListener=function(e,t){this._callbacks=this._callbacks||{};(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t);return this};i.prototype.once=function(e,t){function r(){this.off(e,r);t.apply(this,arguments)}r.fn=t;this.on(e,r);return this};i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){this._callbacks=this._callbacks||{};if(0==arguments.length){this._callbacks={};return this}var r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length){delete this._callbacks["$"+e];return this}var i;for(var n=0;n<r.length;n++){i=r[n];if(i===t||i.fn===t){r.splice(n,1);break}}return this};i.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),r=this._callbacks["$"+e];if(r){r=r.slice(0);for(var i=0,n=r.length;i<n;++i){r[i].apply(this,t)}}return this};i.prototype.listeners=function(e){this._callbacks=this._callbacks||{};return this._callbacks["$"+e]||[]};i.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t,r){t=e.exports=o.debug=o["default"]=o;t.coerce=l;t.disable=s;t.enable=a;t.enabled=u;t.humanize=r(23);t.names=[];t.skips=[];t.formatters={};var i;function n(e){var r=0,i;for(i in e){r=(r<<5)-r+e.charCodeAt(i);r|=0}return t.colors[Math.abs(r)%t.colors.length]}function o(e){function r(){if(!r.enabled)return;var e=r;var n=+new Date;var o=n-(i||n);e.diff=o;e.prev=i;e.curr=n;i=n;var a=new Array(arguments.length);for(var s=0;s<a.length;s++){a[s]=arguments[s]}a[0]=t.coerce(a[0]);if("string"!==typeof a[0]){a.unshift("%O")}var u=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,function(r,i){if(r==="%%")return r;u++;var n=t.formatters[i];if("function"===typeof n){var o=a[u];r=n.call(e,o);a.splice(u,1);u--}return r});t.formatArgs.call(e,a);var l=r.log||t.log||console.log.bind(console);l.apply(e,a)}r.namespace=e;r.enabled=t.enabled(e);r.useColors=t.useColors();r.color=n(e);if("function"===typeof t.init){t.init(r)}return r}function a(e){t.save(e);t.names=[];t.skips=[];var r=(e||"").split(/[\s,]+/);var i=r.length;for(var n=0;n<i;n++){if(!r[n])continue;e=r[n].replace(/\*/g,".*?");if(e[0]==="-"){t.skips.push(new RegExp("^"+e.substr(1)+"$"))}else{t.names.push(new RegExp("^"+e+"$"))}}}function s(){t.enable("")}function u(e){var r,i;for(r=0,i=t.skips.length;r<i;r++){if(t.skips[r].test(e)){return false}}for(r=0,i=t.names.length;r<i;r++){if(t.names[r].test(e)){return true}}return false}function l(e){if(e instanceof Error)return e.stack||e.message;return e}},function(e,t){e.exports={version:"0.2.4"}},function(e,t){var r=1e3;var i=r*60;var n=i*60;var o=n*24;var a=o*365.25;e.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0){return s(e)}else if(r==="number"&&isNaN(e)===false){return t.long?l(e):u(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function s(e){e=String(e);if(e.length>1e4){return}var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(!t){return}var s=parseFloat(t[1]);var u=(t[2]||"ms").toLowerCase();switch(u){case"years":case"year":case"yrs":case"yr":case"y":return s*a;case"days":case"day":case"d":return s*o;case"hours":case"hour":case"hrs":case"hr":case"h":return s*n;case"minutes":case"minute":case"mins":case"min":case"m":return s*i;case"seconds":case"second":case"secs":case"sec":case"s":return s*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return undefined}}function u(e){if(e>=o){return Math.round(e/o)+"d"}if(e>=n){return Math.round(e/n)+"h"}if(e>=i){return Math.round(e/i)+"m"}if(e>=r){return Math.round(e/r)+"s"}return e+"ms"}function l(e){return f(e,o,"day")||f(e,n,"hour")||f(e,i,"minute")||f(e,r,"second")||e+" ms"}function f(e,t,r){if(e<t){return}if(e<t*1.5){return Math.floor(e/t)+" "+r}return Math.ceil(e/t)+" "+r+"s"}},function(e,t,r){(function(e,i){var n;(function(){"use strict";var o={function:true,object:true};var a=o[typeof window]&&window||this;var s=a;var u=o[typeof t]&&t;var l=o[typeof e]&&e&&!e.nodeType&&e;var f=u&&l&&typeof i=="object"&&i;if(f&&(f.global===f||f.window===f||f.self===f)){a=f}var c=Math.pow(2,53)-1;var d=/\bOpera/;var p=this;var h=Object.prototype;var v=h.hasOwnProperty;var m=h.toString;function y(e){e=String(e);return e.charAt(0).toUpperCase()+e.slice(1)}function b(e,t,r){var i={"10.0":"10",6.4:"10 Technical Preview",6.3:"8.1",6.2:"8",6.1:"Server 2008 R2 / 7","6.0":"Server 2008 / Vista",5.2:"Server 2003 / XP 64-bit",5.1:"XP",5.01:"2000 SP1","5.0":"2000","4.0":"NT","4.90":"ME"};if(t&&r&&/^Win/i.test(e)&&!/^Windows Phone /i.test(e)&&(i=i[/[\d.]+$/.exec(e)])){e="Windows "+i}e=String(e);if(t&&r){e=e.replace(RegExp(t,"i"),r)}e=g(e.replace(/ ce$/i," CE").replace(/\bhpw/i,"web").replace(/\bMacintosh\b/,"Mac OS").replace(/_PowerPC\b/i," OS").replace(/\b(OS X) [^ \d]+/i,"$1").replace(/\bMac (OS X)\b/,"$1").replace(/\/(\d)/," $1").replace(/_/g,".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i,"").replace(/\bx86\.64\b/gi,"x86_64").replace(/\b(Windows Phone) OS\b/,"$1").replace(/\b(Chrome OS \w+) [\d.]+\b/,"$1").split(" on ")[0]);return e}function _(e,t){var r=-1,i=e?e.length:0;if(typeof i=="number"&&i>-1&&i<=c){while(++r<i){t(e[r],r,e)}}else{k(e,t)}}function g(e){e=T(e);return/^(?:webOS|i(?:OS|P))/.test(e)?e:y(e)}function k(e,t){for(var r in e){if(v.call(e,r)){t(e[r],r,e)}}}function w(e){return e==null?y(e):m.call(e).slice(8,-1)}function x(e,t){var r=e!=null?typeof e[t]:"number";return!/^(?:boolean|number|string|undefined)$/.test(r)&&(r=="object"?!!e[t]:true)}function E(e){return String(e).replace(/([ -])(?!$)/g,"$1?")}function R(e,t){var r=null;_(e,function(i,n){r=t(r,i,n,e)});return r}function T(e){return String(e).replace(/^ +| +$/g,"")}function O(e){var t=a;var r=e&&typeof e=="object"&&w(e)!="String";if(r){t=e;e=null}var i=t.navigator||{};var n=i.userAgent||"";e||(e=n);var o=r||p==s;var u=r?!!i.likeChrome:/\bChrome\b/.test(e)&&!/internal|\n/i.test(m.toString());var l="Object",f=r?l:"ScriptBridgingProxyObject",c=r?l:"Environment",h=r&&t.java?"JavaPackage":w(t.java),v=r?l:"RuntimeObject";var y=/\bJava/.test(h)&&t.java;var _=y&&w(t.environment)==c;var S=y?"a":"α";var C=y?"b":"β";var A=t.document||{};var q=t.operamini||t.opera;var P=d.test(P=r&&q?q["[[Class]]"]:w(q))?P:q=null;var M;var j=e;var D=[];var I=null;var N=e==n;var z=N&&q&&typeof q.version=="function"&&q.version();var G;var L=H([{label:"EdgeHTML",pattern:"Edge"},"Trident",{label:"WebKit",pattern:"AppleWebKit"},"iCab","Presto","NetFront","Tasman","KHTML","Gecko"]);var B=V(["Adobe AIR","Arora","Avant Browser","Breach","Camino","Epiphany","Fennec","Flock","Galeon","GreenBrowser","iCab","Iceweasel","K-Meleon","Konqueror","Lunascape","Maxthon",{label:"Microsoft Edge",pattern:"Edge"},"Midori","Nook Browser","PaleMoon","PhantomJS","Raven","Rekonq","RockMelt","SeaMonkey",{label:"Silk",pattern:"(?:Cloud9|Silk-Accelerated)"},"Sleipnir","SlimBrowser",{label:"SRWare Iron",pattern:"Iron"},"Sunrise","Swiftfox","WebPositive","Opera Mini",{label:"Opera Mini",pattern:"OPiOS"},"Opera",{label:"Opera",pattern:"OPR"},"Chrome",{label:"Chrome Mobile",pattern:"(?:CriOS|CrMo)"},{label:"Firefox",pattern:"(?:Firefox|Minefield)"},{label:"Firefox for iOS",pattern:"FxiOS"},{label:"IE",pattern:"IEMobile"},{label:"IE",pattern:"MSIE"},"Safari"]);var U=K([{label:"BlackBerry",pattern:"BB10"},"BlackBerry",{label:"Galaxy S",pattern:"GT-I9000"},{label:"Galaxy S2",pattern:"GT-I9100"},{label:"Galaxy S3",pattern:"GT-I9300"},{label:"Galaxy S4",pattern:"GT-I9500"},"Google TV","Lumia","iPad","iPod","iPhone","Kindle",{label:"Kindle Fire",pattern:"(?:Cloud9|Silk-Accelerated)"},"Nexus","Nook","PlayBook","PlayStation 3","PlayStation 4","PlayStation Vita","TouchPad","Transformer",{label:"Wii U",pattern:"WiiU"},"Wii","Xbox One",{label:"Xbox 360",pattern:"Xbox"},"Xoom"]);var F=$({Apple:{iPad:1,iPhone:1,iPod:1},Archos:{},Amazon:{Kindle:1,"Kindle Fire":1},Asus:{Transformer:1},"Barnes & Noble":{Nook:1},BlackBerry:{PlayBook:1},Google:{"Google TV":1,Nexus:1},HP:{TouchPad:1},HTC:{},LG:{},Microsoft:{Xbox:1,"Xbox One":1},Motorola:{Xoom:1},Nintendo:{"Wii U":1,Wii:1},Nokia:{Lumia:1},Samsung:{"Galaxy S":1,"Galaxy S2":1,"Galaxy S3":1,"Galaxy S4":1},Sony:{"PlayStation 4":1,"PlayStation 3":1,"PlayStation Vita":1}});var W=X(["Windows Phone","Android","CentOS",{label:"Chrome OS",pattern:"CrOS"},"Debian","Fedora","FreeBSD","Gentoo","Haiku","Kubuntu","Linux Mint","OpenBSD","Red Hat","SuSE","Ubuntu","Xubuntu","Cygwin","Symbian OS","hpwOS","webOS ","webOS","Tablet OS","Linux","Mac OS X","Macintosh","Mac","Windows 98;","Windows "]);function H(t){return R(t,function(t,r){return t||RegExp("\\b"+(r.pattern||E(r))+"\\b","i").exec(e)&&(r.label||r)})}function $(t){return R(t,function(t,r,i){return t||(r[U]||r[/^[a-z]+(?: +[a-z]+\b)*/i.exec(U)]||RegExp("\\b"+E(i)+"(?:\\b|\\w*\\d)","i").exec(e))&&i})}function V(t){return R(t,function(t,r){return t||RegExp("\\b"+(r.pattern||E(r))+"\\b","i").exec(e)&&(r.label||r)})}function X(t){return R(t,function(t,r){var i=r.pattern||E(r);if(!t&&(t=RegExp("\\b"+i+"(?:/[\\d.]+|[ \\w.]*)","i").exec(e))){t=b(t,i,r.label||r)}return t})}function K(t){return R(t,function(t,r){var i=r.pattern||E(r);if(!t&&(t=RegExp("\\b"+i+" *\\d+[.\\w_]*","i").exec(e)||RegExp("\\b"+i+"(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)","i").exec(e))){if((t=String(r.label&&!RegExp(i,"i").test(r.label)?r.label:t).split("/"))[1]&&!/[\d.]+/.test(t[0])){t[0]+=" "+t[1]}r=r.label||r;t=g(t[0].replace(RegExp(i,"i"),r).replace(RegExp("; *(?:"+r+"[_-])?","i")," ").replace(RegExp("("+r+")[-_.]?(\\w)","i"),"$1 $2"))}return t})}function J(t){return R(t,function(t,r){return t||(RegExp(r+"(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)","i").exec(e)||0)[1]||null})}function Z(){return this.description||""}L&&(L=[L]);if(F&&!U){U=K([F])}if(M=/\bGoogle TV\b/.exec(U)){U=M[0]}if(/\bSimulator\b/i.test(e)){U=(U?U+" ":"")+"Simulator"}if(B=="Opera Mini"&&/\bOPiOS\b/.test(e)){D.push("running in Turbo/Uncompressed mode")}if(B=="IE"&&/\blike iPhone OS\b/.test(e)){M=O(e.replace(/like iPho