From 80837a3cc6e2b6b4c2261f8b3a3d924e477d2291 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Tue, 24 Dec 2024 15:41:06 +0800 Subject: [PATCH 1/5] added export on resolver and lookup, patched place and driver resource --- src/fleetbase.js | 3 ++- src/resolver.js | 1 + src/resources.js | 4 +++- src/resources/driver.js | 2 +- src/resources/organization.js | 9 +++++++++ src/resources/place.js | 2 +- 6 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 src/resources/organization.js diff --git a/src/fleetbase.js b/src/fleetbase.js index 94442eb..ca3f93a 100644 --- a/src/fleetbase.js +++ b/src/fleetbase.js @@ -1,6 +1,6 @@ import Store from './store'; import Resource from './resource'; -import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources'; +import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources'; import { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters'; import { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils'; import { pluralize, singularize, classify, dasherize, camelize } from './utils/string'; @@ -98,6 +98,7 @@ export { ServiceArea, ServiceRate, ServiceQuote, + Organization, BrowserAdapter, NodeAdapter, EmberJsAdapter, diff --git a/src/resolver.js b/src/resolver.js index 23ab3dc..978a2e7 100644 --- a/src/resolver.js +++ b/src/resolver.js @@ -54,3 +54,4 @@ const lookup = function () { }; export { Resolver, lookup }; +export default Resolver; diff --git a/src/resources.js b/src/resources.js index e2c446d..43f27ee 100644 --- a/src/resources.js +++ b/src/resources.js @@ -12,6 +12,7 @@ import Zone from './resources/zone'; import ServiceArea from './resources/service-area'; import ServiceRate from './resources/service-rate'; import ServiceQuote from './resources/service-quote'; +import Organization from './resources/organization'; export { Order, @@ -27,5 +28,6 @@ export { Zone, ServiceArea, ServiceRate, - ServiceQuote + ServiceQuote, + Organization }; diff --git a/src/resources/driver.js b/src/resources/driver.js index ab90486..72b0dc2 100644 --- a/src/resources/driver.js +++ b/src/resources/driver.js @@ -1,5 +1,5 @@ import Resource from '../resource'; -import { StoreActions, isPhone, isEmail } from '../utils'; +import { StoreActions, isPhone, isEmail, Point } from '../utils'; const driverActions = new StoreActions({ // const { error } = await fleetbase.drivers.login('+1 111-1111'); diff --git a/src/resources/organization.js b/src/resources/organization.js new file mode 100644 index 0000000..c7dac78 --- /dev/null +++ b/src/resources/organization.js @@ -0,0 +1,9 @@ +import Resource from '../resource'; + +class Organization extends Resource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'organization', options); + } +} + +export default Organization; diff --git a/src/resources/place.js b/src/resources/place.js index 4349207..6df68f7 100644 --- a/src/resources/place.js +++ b/src/resources/place.js @@ -12,7 +12,7 @@ class Place extends Resource { name: null, address: googleAddress.getAttribute('address'), location: new Point(latitude, longitude), - street1: googleAddress.getAttribute('streetName'), + street1: googleAddress.getAttribute('address'), street2: null, city: googleAddress.getAttribute('city'), province: googleAddress.getAttribute('stateLong'), From aec6431086dfec7ca28912a2560a37cb1d670398 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Tue, 24 Dec 2024 15:45:58 +0800 Subject: [PATCH 2/5] remove build --- dist/@fleetbase/sdk.min.js | 2 -- dist/@fleetbase/sdk.min.js.map | 1 - dist/cjs/fleetbase.js | 2 -- dist/cjs/fleetbase.js.map | 1 - dist/esm/fleetbase.js | 2 -- dist/esm/fleetbase.js.map | 1 - 6 files changed, 9 deletions(-) delete mode 100644 dist/@fleetbase/sdk.min.js delete mode 100644 dist/@fleetbase/sdk.min.js.map delete mode 100644 dist/cjs/fleetbase.js delete mode 100644 dist/cjs/fleetbase.js.map delete mode 100644 dist/esm/fleetbase.js delete mode 100644 dist/esm/fleetbase.js.map diff --git a/dist/@fleetbase/sdk.min.js b/dist/@fleetbase/sdk.min.js deleted file mode 100644 index 8eb3663..0000000 --- a/dist/@fleetbase/sdk.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios"),require("date-fns")):"function"==typeof define&&define.amd?define(["exports","axios","date-fns"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/sdk"]={},t.axios)}(this,(function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e);function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function o(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,i=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(z(t))if(i.length<=C)t.splice.apply(t,[e,n].concat(E(i)));else{t.splice(e,n);for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:N,n=[],i=new Set,r="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=r(t);i.has(e)||(i.add(e),n.push(t))})),n},q=function(t){return t instanceof Q},B=function(t,e){return z(t)?t[e]:q(t)?t.objectAt(e):null},U=function(t,e){return 2===D.length?function(n){return e===n[t]}:function(e){return Boolean(e[t])}},I=function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=t.length,r=n;r2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3?arguments[3]:void 0,r=t.length;n<0&&(n+=r);var o=i&&e!=e?function(t){return t!=t}:function(t){return t===e};return I(t,o,n)},G=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return L(t,e,n,[]),t},H=function(t,e,n){return L(t,e,0,[n]),n},Q=function(t){d(n,t);var e=A(n);function n(){for(var t=arguments.length,i=new Array(t),r=0;r0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return B(this,0)}},{key:"last",get:function(){return B(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return L(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return B(e,t)}))}},{key:"objectAt",value:function(t){return B(this,t)}},{key:"indexOf",value:function(t,e){return M(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var i=e;i>=0;i--)if(B(this,i)===t)return i;return-1}},{key:"includes",value:function(t,e){return-1!==M(this,t,e,!0)}},{key:"findBy",value:function(){return J(this,U.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return I(this,U.apply(void 0,arguments))}},{key:"isEvery",value:function(){return K(this,U.apply(void 0,arguments))}},{key:"isAny",value:function(){return W(this,U.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i=0;){B(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(k(Array)),V=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=s(t);if("object"===n){var i=t.size;if("number"==typeof i)return!i}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var r=t.length;if("number"==typeof r)return!r}return!1},Z=function(t){return V(t)||"string"==typeof t&&!1===/\S/.test(t)};function Y(t){return isFinite(t)&&Math.abs(t)<=90}function X(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function tt(t){return t instanceof vt}var et=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},nt=function(){var t,e,n,i,r;return!("undefined"==typeof process||"object"!==s(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(i=window)||void 0===i||null===(r=i.navigator)||void 0===r?void 0:r.product))},it=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return nt()?It("adapter","NodeAdapter",t):It("adapter","BrowserAdapter",t)},rt=Array.isArray,ot=function(){function t(e){c(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return l(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=o(o({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),st=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;c(this,t),this.type="Point",this.coordinates=[n,e]}return l(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=x(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}(),at=function(t){return"object"===s(t)&&!V(null==t?void 0:t.attributes)&&"object"===s(null==t?void 0:t.attributes)},ut=function(t,e){var n=t();return Array.isArray(n)||"object"===s(n)?ct(n,e):null},ct=function t(e,n){var i=e,r=s(e),o="object"===r,a="function"===r,u=Array.isArray(e),c="string"===s(n)&&n.includes(".")?n.split("."):[n];if(u||o){for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;c(this,t),this.actions=e,this.bind=n}return l(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===s(this.actions))for(var n in this.actions){var i=this.actions[n];"function"==typeof i?ht(e,n,i.bind(e)):ht(e,n,i)}return this}}]),t}(),vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};c(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=i,this.options=r,this.version=r.version||"v1",this.setAdapter(n)}return l(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Kt(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return V(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===s(t))return this.setAttributes(t);var i=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return ht(this.attributes,t,n),ht(this.dirtyAttributes,t,i),z(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:i,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=ct(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===i?n:i}},{key:"hasAttribute",value:function(t){if(z(t)){var e,n=t,i=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return i.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return z(t)?this.hasAttribute(t)&&t.every((function(t){return!V(e.getAttribute(t))})):this.hasAttribute(t)&&!V(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!z(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=o(o({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),dt=new lt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,i).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,i)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,i)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),ft=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"order",o({actions:dt},r))}return l(n,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),n}(vt),gt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"payload",r)}return l(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new Q(this.waypoints)}}]),n}(vt),pt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"entity",r)}return n}(vt),yt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"place",r)}return l(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return tt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.getAttribute("coordinates"),o=x(r,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new st(s,a),street1:t.getAttribute("streetName"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,i)}}]),n}(vt),bt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"waypoint",r)}return n}(yt),kt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"tracking-status",r)}return n}(vt),mt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"vehicle",r)}return n}(vt),wt=new lt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(et(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",o({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",o({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),At=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"driver",o({actions:wt},r))}return l(n,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),n}(vt),xt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"vendor",r)}return n}(vt),Et=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"contact",r)}return n}(vt),Rt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"zone",r)}return n}(vt),$t=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-area",r)}return n}(vt),jt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-rate",r)}return n}(vt),Ot=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-quote",r)}return l(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(vt),St=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},_t=function(t){d(n,t);var e=A(n);function n(t){var i;return c(this,n),(i=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),i}return l(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=o(o({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(r.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),o({method:n,mode:r.mode||"cors",headers:new Headers(o(o({},e.headers||{}),r.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Z(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),n}(St),Pt=function(t){d(n,t);var e=A(n);function n(t){var r;return c(this,n),(r=e.call(this,t)).axios=i.default.create({baseURL:"".concat(r.host,"/").concat(r.namespace),headers:{Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),r}return l(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=o(o({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(z(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Z(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(i?"?".concat(i):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),n}(St),Ft=function(t){d(n,t);var e=A(n);function n(){return c(this,n),e.apply(this,arguments)}return n}(St),zt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];c(this,t),v(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),v(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),v(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),v(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),v(this,"idSuffix",new RegExp("(_ids|_id)$","g")),v(this,"underbar",new RegExp("_","g")),v(this,"spaceOrUnderbar",new RegExp("[ _]","g")),v(this,"uppercase",new RegExp("([A-Z])","g")),v(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return l(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,i){if(i)t=i;else if(!(n.indexOf(t.toLowerCase())>-1))for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),i=0;i1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=z(e)?e:[e],!z(e))return e instanceof lt&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};c(this,t),this.resource=e,this.adapter=n||it(),this.namespace=Dt(e),this.storage=new Q,this.options=i,this.extendActions(i.actions)}return l(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Jt(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return It("resource",Tt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return Wt(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var r=u(regeneratorRuntime.mark((function r(o,s){var a;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:a=r.sent,o(a);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=u(regeneratorRuntime.mark((function n(i,r){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(r);case 2:o=n.sent,i(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=tt(t)?t.getAttribute("id"):t;return new Promise(function(){var t=u(regeneratorRuntime.mark((function t(r,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,r(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),Mt=function(){function t(e){var n,i,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(c(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(i=o.host)&&void 0!==i?i:"https://api.fleetbase.io",namespace:null!==(r=o.namespace)&&void 0!==r?r:this.version,debug:s,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!nt()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||it(this.options),this.orders=new Kt("order",this.adapter).extendActions(dt),this.entities=new Kt("entity",this.adapter),this.places=new Kt("place",this.adapter),this.drivers=new Kt("driver",this.adapter).extendActions(wt),this.vehicles=new Kt("vehicle",this.adapter),this.vendors=new Kt("vendor",this.adapter),this.contacts=new Kt("contact",this.adapter)}return l(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return y(t,Array.prototype.slice.call(arguments))}}]),t}();t.Adapter=St,t.BrowserAdapter=_t,t.Collection=Q,t.Contact=Et,t.Driver=At,t.EmberJsAdapter=Ft,t.Entity=pt,t.GoogleAddress=ot,t.NodeAdapter=Pt,t.Order=ft,t.Payload=gt,t.Place=yt,t.Point=st,t.Resource=vt,t.ServiceArea=$t,t.ServiceQuote=Ot,t.ServiceRate=jt,t.Store=Kt,t.StoreActions=lt,t.TrackingStatus=kt,t.Vehicle=mt,t.Vendor=xt,t.Waypoint=bt,t.Zone=Rt,t.camelize=Lt,t.classify=Tt,t.dasherize=Nt,t.default=Mt,t.extendStoreActions=Jt,t.isLatitude=Y,t.isLongitude=X,t.isNodeEnvironment=nt,t.isResource=tt,t.pluralize=Dt,t.singularize=Ct})); -//# sourceMappingURL=sdk.min.js.map diff --git a/dist/@fleetbase/sdk.min.js.map b/dist/@fleetbase/sdk.min.js.map deleted file mode 100644 index f26d171..0000000 --- a/dist/@fleetbase/sdk.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sdk.min.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('streetName'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","uniqBy","key","ret","seen","Set","getter","get","forEach","val","has","add","push","mixed","Collection","objectAt","index","iter","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","withNaNCheck","removeAt","insertAt","this","indexes","map","idx","_this2","object","methodName","args","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","includes","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isLatitude","coordinate","isFinite","Math","abs","isLongitude","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","dasherize","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","serialized","resourceInstance","deposit","storage","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts"],"mappings":"48JAAA,IAAQA,EAAYC,MAAZD,8CCOFE,EAAa,IAIbC,EAAU,SAACC,EAAOC,EAAOC,OAAaC,yDAAQ,MAC5CP,EAAQI,MACJG,EAAMC,QAAUN,EAChBE,EAAMK,aAANL,GAAaC,EAAOC,YAAgBC,SACjC,CACHH,EAAMK,OAAOJ,EAAOC,OAEf,IAAII,EAAI,EAAGA,EAAIH,EAAMC,OAAQE,GAAKR,EAAY,KAC3CS,EAAQJ,EAAMK,MAAMF,EAAGA,EAAIR,GAC/BE,EAAMK,aAANL,GAAaC,EAAQK,EAAG,YAAMC,WAG/BE,EAAaC,MACpBV,EAAMD,QAAQE,EAAOC,EAAaC,IAIpCQ,EAAmB,SAACC,UAASA,GAE7BC,EAAS,SAACb,OAAOc,yDAAMH,EACrBI,EAAM,GACNC,EAAO,IAAIC,IACXC,EAAwB,mBAARJ,EAAqBA,EAAM,SAACF,UAASO,IAAIP,EAAME,WAEnEd,EAAMoB,SAAQ,SAACR,OACPS,EAAMH,EAAON,GACZI,EAAKM,IAAID,KACVL,EAAKO,IAAIF,GACTN,EAAIS,KAAKZ,OAIVG,GAGLN,EAAe,SAACgB,UAAUA,aAAiBC,GAE3CC,EAAW,SAAC3B,EAAO4B,UACjBhC,EAAQI,GACDA,EAAM4B,GACNnB,EAAaT,GACbA,EAAM2B,SAASC,GAGnB,MAGLC,EAAO,SAACf,EAAKgB,UAC0B,IAArBC,EAAU3B,OACP,SAACQ,UAASkB,IAAUlB,EAAKE,IAAO,SAACF,UAASoB,QAAQpB,EAAKE,MAG5EmB,EAAY,SAACjC,EAAOkC,WAAWC,yDAAU,EACvCC,EAAMpC,EAAMI,OACPwB,EAAQO,EAASP,EAAQQ,EAAKR,IAAS,KACxChB,EAAOe,EAAS3B,EAAO4B,MACvBM,EAAUtB,EAAMgB,EAAO5B,UAChB4B,SAGP,GAGNS,EAAO,SAACrC,EAAOsC,EAAUC,OACvBL,EAAYI,EAASE,KAAKD,GAC1BX,EAAQK,EAAUjC,EAAOkC,EAAW,UACtB,IAAXN,OAAea,EAAYd,EAAS3B,EAAO4B,IAGhDc,EAAM,SAAC1C,EAAOsC,EAAUC,OACtBL,EAAYI,EAASE,KAAKD,UACa,IAApCN,EAAUjC,EAAOkC,EAAW,IAGjCS,EAAQ,SAAC3C,EAAOsC,EAAUC,OACxBK,EAAKN,EAASE,KAAKD,UAEoB,IAApCN,EAAUjC,GADD,SAACY,EAAMgB,EAAO5B,UAAW4C,EAAGhC,EAAMgB,EAAO5B,KACtB,IAGjC6C,EAAU,SAAC7C,EAAOqB,OAAKc,yDAAU,EAAGW,yCAClCV,EAAMpC,EAAMI,OAEZ+B,EAAU,IACVA,GAAWC,OAIXF,EAAYY,GAAgBzB,GAAQA,EAAM,SAACT,UAASA,GAASA,GAAO,SAACA,UAASA,IAASS,UACpFY,EAAUjC,EAAOkC,EAAWC,IAGjCY,EAAW,SAAC/C,EAAO4B,OAAOQ,yDAAM,SAClCrC,EAAQC,EAAO4B,EAAOQ,EAAK,IACpBpC,GAGLgD,EAAW,SAAChD,EAAO4B,EAAOhB,UAC5Bb,EAAQC,EAAO4B,EAAO,EAAG,CAAChB,IACnBA,GAGLc,wEACavB,2BAAAA,qCACPP,EAAQmC,UAAU,mCACTA,UAAU,mBAEVA,4CAIjB,kBACWkB,KAAK7C,OAAS,qBAGzB,kBAC2B,IAAhB6C,KAAK7C,0BAGhB,kBACWuB,EAASsB,KAAM,qBAG1B,kBACWtB,EAASsB,KAAMA,KAAK7C,OAAS,0BAGxC,SAAQH,EAAOC,OAAaC,yDAAQ,UAChCJ,EAAQkD,KAAMhD,EAAOC,EAAaC,GAE3B8C,8BAGX,SAAUC,qBACCA,EAAQC,KAAI,SAACC,UAAQzB,EAAS0B,EAAMD,8BAG/C,SAASxB,UACED,EAASsB,KAAMrB,0BAG1B,SAAQ0B,EAAQnB,UACLU,EAAQI,KAAMK,EAAQnB,GAAS,8BAG1C,SAAYmB,EAAQnB,OACZC,EAAMa,KAAK7C,aAECqC,IAAZN,GAAyBA,GAAWC,KACpCD,EAAUC,EAAM,GAGhBD,EAAU,IACVA,GAAWC,OAGV,IAAIgB,EAAMjB,EAASiB,GAAO,EAAGA,OAC1BzB,EAASsB,KAAMG,KAASE,SACjBF,SAIP,0BAGZ,SAASE,EAAQnB,UACoC,IAA1CU,EAAQI,KAAMK,EAAQnB,GAAS,yBAG1C,kBACWE,EAAKY,KAAMpB,eAAQE,uCAG9B,kBACWE,EAAUgB,KAAMpB,eAAQE,mCAGnC,kBACWY,EAAMM,KAAMpB,eAAQE,iCAG/B,kBACWW,EAAIO,KAAMpB,eAAQE,kCAG7B,SAAOwB,8BAAeC,mCAAAA,wBACdzC,EAAM,eAELK,SAAQ,SAACR,gBAASG,EAAIS,eAAKZ,EAAK2C,uBAALE,gBAAA7C,UAAsB4C,QAE/CzC,yBAGX,kBACWkC,KAAKE,KAAI,SAACvC,UAASA,4BAG9B,kBACWqC,KAAKS,QAAO,SAAC5B,UAAmB,MAATA,2BAGlC,eACQ6B,EAAW5B,iBAERkB,KAAKW,MAAK,SAACC,EAAGC,OACZ,IAAIxD,EAAI,EAAGA,EAAIqD,EAASvD,OAAQE,IAAK,KAClCQ,EAAM6C,EAASrD,GACfyD,EAAQF,EAAE/C,GACVkD,EAAQF,EAAEhD,GAEVmD,EAAeC,QAAQH,EAAOC,MAE9BC,SACOA,SAGR,2BAIf,SAAOnD,UACID,EAAOoC,KAAMnC,0BAGxB,SAAQgB,OACCmB,KAAKkB,SAASrC,UACRmB,SAIPf,EAAYJ,GAAUA,EAAQ,SAAClB,UAASA,IAASkB,GAAQ,SAAClB,UAASA,GAASA,UACzEqC,KAAKS,OAAOxB,wBAGvB,eACQE,EAAMa,KAAK7C,cACH,IAARgC,QAICrC,QAAQ,EAAGqC,EAAK,IAHVa,6BAOf,SAASG,EAAKE,UACVN,EAASC,KAAMG,EAAKE,GACbL,8BAGX,SAAUG,EAAKE,UACJL,KAAKlD,QAAQqD,EAAK,EAAG,CAACE,4BAGjC,SAASrD,EAAOmC,UACLW,EAASE,KAAMhD,EAAOmC,6BAGjC,SAAWgC,UACAnB,KAAKD,SAASC,KAAK7C,OAAQgE,8BAGtC,SAAYC,eACHtE,QAAQkD,KAAK7C,OAAQ,EAAGiE,GACtBpB,8BAGX,eACQb,EAAMa,KAAK7C,UACH,IAARgC,SACO,SAGPrB,EAAMY,EAASsB,KAAMb,EAAM,eAC1BW,SAASX,EAAM,EAAG,GAChBrB,6BAGX,cACwB,IAAhBkC,KAAK7C,cACE,SAGPW,EAAMY,EAASsB,KAAM,eACpBF,SAAS,GACPhC,+BAGX,SAAcqD,UACHpB,EAASC,KAAM,EAAGmB,iCAG7B,SAAeC,eACNtE,QAAQ,EAAG,EAAGsE,GACZpB,mCAGX,eACQb,EAAMa,KAAK7C,UACH,IAARgC,SACOa,SAGPoB,EAAUpB,KAAKqB,UAAUC,sBACxBxE,QAAQ,EAAGqC,EAAKiC,GACdpB,+BAGX,SAAWoB,MACgB,IAAnBA,EAAQjE,cACD6C,KAAKuB,YAGZpC,EAAMa,KAAK7C,mBACVL,QAAQ,EAAGqC,EAAKiC,GACdpB,iCAGX,SAAamB,WACLK,EAAMxB,KAAK7C,QAAU,IAChBqE,GAAO,GAAG,CACC9C,EAASsB,KAAMwB,KAEbL,QACTrB,SAAS0B,UAGfxB,kCAGX,SAAcoB,OACL,IAAI/D,EAAI+D,EAAQjE,OAAS,EAAGE,GAAK,EAAGA,SAChCoE,aAAaL,EAAQ/D,WAGvB2C,8BAGX,SAAUmB,UACSnB,KAAKkB,SAASC,SAGpBO,WAAWP,GAGbnB,+BAGX,SAAWoB,qBACPA,EAAQjD,SAAQ,SAACgD,UAAQQ,EAAKC,UAAUT,MACjCnB,cAvPUpD,QCjHnBiF,EAAU,SAACV,OACPW,EAAOX,MAAAA,KACTW,SACOA,KAGa,iBAAbX,EAAIY,YACHZ,EAAIY,SAGVC,IAAoBb,MAEP,WAAfa,EAAyB,KACjBD,EAASZ,EAATY,QACY,iBAATA,SACCA,KAIU,iBAAfZ,EAAIhE,QAAsC,aAAf6E,SAC1Bb,EAAIhE,UAGG,WAAf6E,EAAyB,KACjB7E,EAAWgE,EAAXhE,UACc,iBAAXA,SACCA,SAIT,GC5BL8E,EAAU,SAACd,UAAQU,EAAQV,IAAwB,iBAARA,IAAuC,IAAnB,KAAKe,KAAKf,ICFhE,SAASgB,EAAWC,UACxBC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,GCD5C,SAASI,EAAYJ,UACzBC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,KAAOE,KAAKC,IAAIH,IAAe,GCC3E,SAASK,GAAWC,UACxBA,aAAkBC,GCH7B,IAAMC,GAAU,eAACC,yDAAQ,SACd,iDAAiDX,KAAKW,ICI3DC,GAAoB,iCACK,oBAAZC,SAAqD,WAAxBC,YAAOD,4BAAAE,EAASC,OAAqE,eAAjDH,QAAQI,kCAASC,2BAAMC,OAAO,gBAA4C,oBAAXC,QAAyD,2BAA/BA,iCAAQC,gCAAWC,WCH1LC,GAAgB,eAACC,yDAAU,UACzBZ,KACOa,GAAO,UAAW,cAAeD,GAGrCC,GAAO,UAAW,iBAAkBD,ICRvC/G,GAAYC,MAAZD,QAEFiH,yBACUC,kBACHA,MAAQA,OACRC,SAAWD,MAAAA,SAAAA,EAAOC,cAClBC,WAAa/D,KAAKgE,uBAClBC,WAAajE,KAAKkE,iDAG3B,gBACSF,uBACAE,iDAGT,wCAC6BL,4BAAOM,qBAAsB,IAAIC,QAAO,SAAUC,EAAKC,UAC5EA,EAAKC,MAAMpG,SAAQ,SAAUqG,GACzBH,EAAIG,GAAQF,KAETD,IACR,mCAKP,iBACUJ,EAAa,CACfQ,aAAczE,KAAK9B,IAAI,iBACvBwG,WAAY1E,KAAK9B,IAAI,SACrByG,2BAAkBb,yBAAUc,SAAWC,OAAOC,OAAO9E,KAAK8D,SAASc,UAAY,CAAC,EAAG,GACnFG,KAAM/E,KAAKgF,GAAG,CAAC,WAAY,cAAe,sBAAuB,eAAgB,8BAA+B,gCAChHC,OAAQjF,KAAK9B,IAAI,+BACjBgH,WAAYlF,KAAK9B,IAAI,+BAA+B,GACpDiH,UAAWnF,KAAK9B,IAAI,+BACpBkH,aAAcpF,KAAK9B,IAAI,WAAW,GAClCmH,QAASrF,KAAK9B,IAAI,WAAW,GAC7BoH,YAAatF,KAAK9B,IAAI,WACtBqH,WAAYvF,KAAK9B,IAAI,uBAGzB+F,EAAWuB,QAAU,CAACvB,EAAWQ,aAAcR,EAAWS,YAAYjE,OAAO1B,SAAS0G,KAAK,KAEpFxB,qBAGX,kBACWjE,KAAKiE,6BAGhB,mBAAGyB,yDAAO,GACGrI,EAAI,EAAGA,EAAIqI,EAAKvI,OAAQE,IAAK,KAC5BQ,EAAM6H,EAAKrI,MAEbV,GAAQkB,QACF8H,EAAO9H,EAAI,GACX+H,EAAQ/H,EAAI,MAEdmC,KAAK3B,IAAIsH,UACF3F,KAAK9B,IAAIyH,EAAMC,WAM1B5F,KAAK3B,IAAIR,UACFmC,KAAK9B,IAAIL,UAIjB,wBAGX,SAAIA,UACQA,KAAOmC,KAAK+D,8BAGxB,SAAIlG,OAAK+H,iEACC/H,KAAOmC,KAAK+D,WAIX6B,EAAQ5F,KAAK+D,WAAWlG,GAAKgI,WAAa7F,KAAK+D,WAAWlG,GAAKiI,UAH3D,kCAMf,eAAc7B,yDAAa,eAClBA,kBAAiBjE,KAAKiE,YAAeA,GAEnCjE,iCAGX,SAAanC,EAAKgB,eACToF,WAAWpG,GAAOgB,EAEhBmB,iCAGX,SAAanC,UACFmC,KAAKiE,WAAWpG,IAAQ,cClGlBkI,+BACLC,yDAAW,EAAGC,yDAAY,iBAC7BzB,KAAO,aACPG,YAAc,CAACsB,EAAWD,mCAGnC,kBACWhG,KAAK2E,YAAY,0BAG5B,kBACW3E,KAAK2E,YAAY,sBAG5B,kBACW3E,KAAKgG,4BAGhB,kBACWhG,KAAKiG,mCAShB,iBACW,CACHzB,KAAM,QACN0B,YAAa,CAAClG,KAAKmG,MAAOnG,KAAKoG,8BAIvC,kBACWpG,KAAKqG,oCAGhB,4BACerG,KAAKgG,sBAAahG,KAAKiG,4CAlBtC,SAAmBK,WACWA,EAAK3B,sBAA7BsB,eAAWD,cAEN,IAAID,EAAMC,SAAUC,oBCvB7BxD,GAAa,SAACjE,SAA2B,WAAjBwE,EAAOxE,KAAuBqD,EAAQrD,MAAAA,SAAAA,EAAOyF,aAA4C,WAA7BjB,EAAOxE,MAAAA,SAAAA,EAAOyF,aAIlGsC,GAAc,SAACC,EAAMC,OACjBC,EAAWF,WACV5J,MAAMD,QAAQ+J,IAAiC,WAApB1D,EAAO0D,GAAwBxI,GAAIwI,EAAUD,GAAQ,MASrFvI,GAAM,SAANA,EAAOmC,EAAQoG,OACbE,EAAUtG,EAERmE,IAAcnE,GACduG,EAAoB,WAATpC,EACXqC,EAAsB,aAATrC,EACb7H,EAAUC,MAAMD,QAAQ0D,GAKxByG,EAF4B,aADVL,IAEaA,EAAKvF,SAAS,KAClBuF,EAAKM,MAAM,KAAO,CAACN,MAEhD9J,GAAWiK,EAAU,KAChB,IAAIvJ,EAAI,EAAGA,EAAIyJ,EAAU3J,OAAQE,IAAK,IACnCsJ,QAAqCnH,IAA1BmH,EAAQG,EAAUzJ,WACtB,KACJ,GAAIsJ,EAAS,IAChBA,EAAUA,EAAQG,EAAUzJ,IAGxBoF,GAAWkE,SAAiCnH,IAArBsH,EAAUzJ,EAAI,GAAkB,KACjD2J,EAAUF,EAAUvJ,MAAMF,EAAI,GAAGoI,KAAK,YAErCvH,EAAIyI,EAAQ1C,WAAY+C,MAIZ,mBAAZL,EAAwB,KACzBK,EAAUF,EAAUvJ,MAAMF,EAAI,GAAGoI,KAAK,YACrCc,GAAYI,EAASK,YAIjCL,KAGPE,SACON,GAAYlG,EAAQoG,IAqB7BQ,GAAM,SAAC5G,EAAQoG,EAAM5H,OACnB8H,EAAUtG,EAERuG,EAAoB,aADNvG,GAGd1D,EAAUC,MAAMD,QAAQ0D,GAUxByG,EAF4B,aADVL,IAEaA,EAAKvF,SAAS,KAClBuF,EAAKM,MAAM,KAAO,CAACN,GAC9CS,EAAaJ,EAAU3J,UAEzBR,GAAWiK,EAAU,KAChB,IAAIvJ,EAAI,EAAGA,EAAI6J,EAAa,EAAG7J,IAC3BsJ,EAAQG,EAAUzJ,MACnBsJ,EAAQG,EAAUzJ,IAAM,IAE5BsJ,EAAUA,EAAQG,EAAUzJ,IAGhCsJ,EAAQG,EAAUI,EAAa,IAAMrI,SAGlCA,GCvGUsI,+BACLC,yDAAU,GAAI7H,yDAAO,oBACxB6H,QAAUA,OACV7H,KAAOA,kCAGhB,eAAO8H,yDAAS,KACNC,EAAUD,GAAUrH,KAAKT,SAE1B+H,SACMtH,QAGPA,MAAAA,WAAMoH,SAAmC,WAAxBpE,EAAOhD,KAAKoH,aACxB,IAAIG,KAAUvH,KAAKoH,QAAS,KACvBI,EAAKxH,KAAKoH,QAAQG,GAEN,mBAAPC,EAKXP,GAAIK,EAASC,EAAQC,EAAGjI,KAAK+H,IAJzBL,GAAIK,EAASC,EAAQC,UAQ1BxH,cCvBT2C,+BAMUsB,yDAAa,GAAIwD,yCAASC,yCAAUhE,yDAAU,kBACjDO,WAAaA,OACb0D,gBAAkB,QAClBC,QAAU,QACVC,WAAY,OACZC,UAAW,OACXC,cAAe,OACfC,aAAc,OACdN,SAAWA,OACXhE,QAAUA,OACVuE,QAAUvE,EAAQuE,SAAW,UAC7BC,WAAWT,uCASpB,SAAWA,qBACFA,QAAUA,OACVU,MAAQ,IAAIC,GAAMpI,KAAK0H,SAAUD,EAAS,CAC3CY,aAAcrI,KAAKsI,eAAe/I,KAAKS,MACvCoH,kBAASpH,KAAK0D,4BAAL6E,EAAcnB,UAGpBpH,qBAQX,kBACWA,KAAKwI,aAAa,4BAS7B,sBAAOvE,yDAAa,GACVK,EAAOtE,KAAKyI,gBAAgBxE,eAC7ByE,SAAS,CAAC,YAAa,aAErB1I,KAAKmI,MAAMQ,OAAOrE,GAAMsE,MAAK,SAACC,UAClCC,EAAKJ,SAAS,CAAC,YAAa,aAAa,GAElCG,2BAUd,sBAAO5E,yDAAa,eACXyE,SAAS,CAAC,YAAa,aAErB1I,KAAKmI,MAAMY,OAAO/I,KAAKiE,WAAW+E,GAAI/E,GAAY2E,MAAK,SAACC,UAC5DzI,EAAKsI,SAAS,CAAC,YAAa,aAAa,GAElCG,4BASd,kCACSH,SAAS,CAAC,YAAa,iBAErB1I,KAAKmI,MAAMc,QAAQjJ,KAAKiE,WAAW+E,IAAIJ,MAAK,SAACC,UACjDlH,EAAK+G,SAAS,CAAC,YAAa,iBAAiB,GAEtCG,2BASd,kCACSH,SAAS,CAAC,YAAa,gBAErB1I,KAAKmI,MAAMe,WAAWlJ,KAAKiE,WAAW+E,IAAIJ,MAAK,SAACC,UACpDM,EAAKC,QAEEP,6BASd,mBAASQ,yDAAQ,GAAIC,6DACXC,EAAa,CAAC,YAAa,WAAY,cAAe,gBAEpDlM,EAAI,EAAGA,EAAIgM,EAAMlM,OAAQE,IAAK,KAC5BmM,EAAOH,EAAMhM,MAEC,iBAATmM,IAAsBD,EAAWrI,SAASsI,SAC3C,IAAIC,gBAASD,iCAGlBA,GAAQF,SAGVtJ,0BAQX,uBACS2H,gBAAkB,QAClBC,QAAU,QACVC,WAAY,OACZC,UAAW,OACXE,aAAc,EAEZhI,0BAQX,uBACSoJ,aACAM,UAAY,GAEV1J,yBAQX,eAAK0D,yDAAU,GACLO,EAAajE,KAAK2J,uBAEpB9H,EAAQ7B,KAAKgJ,IACNhJ,KAAK2I,OAAO1E,IAGG,IAAtBP,EAAQkG,UACD5J,KAAK6J,YAGT7J,KAAK+I,OAAO9E,4BAQvB,mBACU6F,EAAqBjF,OAAOa,KAAK1F,KAAK2H,iBACtCA,EAAkB,GAEftK,EAAI,EAAGA,EAAIyM,EAAmB3M,OAAQE,IAAK,KAC1CQ,EAAMiM,EAAmBzM,GAC/BsK,EAAgB9J,GAAOmC,KAAKwI,aAAa3K,UAGtCmC,KAAK+I,OAAOpB,qBAQvB,kBACW3H,KAAKwI,aAAa,OAAQ,2BAQrC,kBACWxI,KAAK+J,kBAAkB,cAAgB,IAAIC,KAAKhK,KAAKwI,aAAa,eAAiB,4BAQ9F,kBACWxI,KAAK+J,kBAAkB,cAAgB,IAAIC,KAAKhK,KAAKwI,aAAa,eAAiB,2BAQ9F,kBACWxI,KAAKiK,cAAc,CAAC,aAAc,4BAQ7C,kBACsD,IAA3CpF,OAAOC,OAAO9E,MAAAA,YAAAA,KAAMiE,YAAY9G,0BAQ3C,kBACY6C,KAAKgJ,wBAQjB,kBACYhJ,KAAKkK,OAASlK,KAAKmK,gCAQ/B,kBACWnK,KAAKiK,cAAc,CAAC,UAAW,sCAQ1C,SAAc5K,sBACc,mBAAbA,GAIXwF,OAAOa,eAAK1F,MAAAA,YAAAA,KAAMiE,0BAAc,IAAI9F,SAAQ,SAACiM,OACnCvL,EAAQwL,EAAK7B,aAAa4B,GAChC/K,EAASiL,KAAKD,EAAMxL,EAAOuL,MALpBpK,4BAgBf,kBACWA,KAAK4H,0CAQhB,kBACW5H,KAAK2H,uCAShB,SAAQyC,UACGA,KAAYpK,KAAK2H,kDAQ5B,wBACW9C,OAAOa,eAAK1F,MAAAA,YAAAA,KAAM2H,+BAAmB,IAAIxK,OAAS,wBAS7D,SAAOiN,EAAUvL,QACRoF,WAAWmG,GAAYvL,8BAShC,SAAauL,SAAUvL,yDAAQ,QACb,OAAVA,GAAsC,WAApBmE,EAAOoH,UAClBpK,KAAKuK,cAAcH,OAGxBI,YAAgBxK,MAAAA,YAAAA,KAAMiE,WAAWmG,kBAAa,YAGpDnD,GAAIjH,KAAKiE,WAAYmG,EAAUvL,GAC/BoI,GAAIjH,KAAK2H,gBAAiByC,EAAUI,GAM/B7N,EAAQqD,MAAAA,YAAAA,KAAM4H,QAAQwC,WAClBxC,QAAQwC,GAAY,SAGxBxC,QAAQwC,GAAU7L,KAAK,CACxB6L,SAAAA,EACAI,cAAAA,EACA3L,MAAAA,EACA4L,UAAW,IAAIT,OAGZhK,kCAQX,eAAciE,yDAAa,OAClB,IAAImG,KAAYnG,OACZyG,aAAaN,EAAUnG,EAAWmG,WAGpCpK,iCASX,SAAa2K,SAAWC,yDAAe,KAC7B/L,EAAQX,aAAI8B,MAAAA,YAAAA,KAAMiE,0BAAc,GAAI0G,eAE5BnL,IAAVX,EACO+L,EAGJ/L,8BASX,SAAauL,MACLzN,EAAQyN,GAAW,OACbS,EAAaT,EACbU,EAAgBjG,OAAOa,eAAK1F,KAAKiE,0BAAc,WAE9C4G,EAAWnL,OAAM,SAACqL,UAASD,EAAc5J,SAAS6J,cAGxD/K,MAAAA,OAAAA,KAAMiE,aAIJmG,KAAYpK,KAAKiE,wCAS5B,eAAc4G,yDAAa,UAChB7K,KAAKgL,aAAaH,oCAS7B,SAAkBT,qBACVzN,EAAQyN,GACDpK,KAAKgL,aAAaZ,IAAaA,EAAS1K,OAAM,SAACqL,UAAUlJ,EAAQoJ,EAAKzC,aAAauC,OAGvF/K,KAAKgL,aAAaZ,KAAcvI,EAAQ7B,KAAKwI,aAAa4B,iCASrE,SAAcS,OACJ5G,EAAa,MAEf4G,MAAAA,SACO7K,KAAK2J,cAAc9E,OAAOa,KAAK1F,KAAKiE,gBAGrB,iBAAf4G,SACA7K,KAAKwI,wCAAiB1J,gBAG5BnC,EAAQkO,SACH,IAAIpB,MAAM,yCAGf,IAAIpM,EAAI,EAAGA,EAAIwN,EAAW1N,OAAQE,IAAK,SAClC+M,EAAWS,EAAWxN,MAEJ,iBAAb+M,OAIPvL,EAAQmB,KAAKwI,aAAa4B,GAEG,WAA7BpH,YAAOnE,sBAAAqM,EAAOjH,aAA4BtH,YAAQkC,sBAAAsM,EAAOlH,cACzDpF,EAAQA,EAAMoF,YAGlBA,EAAWmG,GAAYvL,UAGpBoF,2BAQX,kBACWjE,KAAK2J,+CAShB,iBAAgB1F,yDAAa,GACnBmH,YAAkBpL,MAAAA,YAAAA,KAAMiE,0BAAc,eACvCA,kBAAkBmH,GAAoBnH,GAEpCjE,KAAKiE,yCAShB,eAAeqC,yDAAO,QACbrC,WAAaqC,WC5fpB+E,GAAe,IAAIlE,GAAa,CAClCmE,mBAAoB,SAAUtC,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC9C1D,KAAKyH,QAAQvJ,cAAO8B,KAAKwL,sBAAaxC,wBAAwBuC,EAAQ7H,IAGjF+H,gBAAiB,SAAUzC,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC3C1D,KAAKyH,QAAQvJ,cAAO8B,KAAKwL,sBAAaxC,oBAAoBuC,EAAQ7H,IAG7EgI,SAAU,SAAU1C,OAAIuC,yDAAS,GAAI7H,yDAAU,UACpC1D,KAAKyH,QAAQkE,eAAQ3L,KAAKwL,sBAAaxC,eAAeuC,EAAQ7H,GAASkF,KAAK5I,KAAK4L,WAAWrM,KAAKS,QAG5GhD,MAAO,SAAUgM,OAAIuC,yDAAS,GAAI7H,yDAAU,UACjC1D,KAAKyH,QAAQkE,eAAQ3L,KAAKwL,sBAAaxC,YAAYuC,EAAQ7H,GAASkF,KAAK5I,KAAK4L,WAAWrM,KAAKS,QAGzG6L,eAAgB,SAAU7C,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC1C1D,KAAKyH,QAAQkE,eAAQ3L,KAAKwL,sBAAaxC,sBAAsBuC,EAAQ7H,GAASkF,KAAK5I,KAAK4L,WAAWrM,KAAKS,QAGnH8L,eAAgB,SAAU9C,EAAI+C,OAAeR,yDAAS,GAAI7H,yDAAU,UAC5DjB,GAAWsJ,KACXA,EAAgBA,EAAc/C,IAG3BhJ,KAAKyH,QAAQkE,eAAQ3L,KAAKwL,sBAAaxC,8BAAsB+C,GAAiBR,EAAQ7H,GAASkF,KAAK5I,KAAK4L,WAAWrM,KAAKS,QAGpIgM,cAAe,SAAUhD,OAAIiD,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC9DjB,GAAWwJ,KACXA,EAAYA,EAAUjD,IAGnBhJ,KAAKyH,QAAQkE,eAAQ3L,KAAKwL,sBAAaxC,wBAAiBiD,EAAiB,IAAMA,EAAX,IAAwBV,EAAQ7H,IAG/GwI,iBAAkB,SAAUlD,OAAIiD,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UACjEjB,GAAWwJ,KACXA,EAAYA,EAAUjD,IAGnBhJ,KAAKyH,QAAQkE,eAAQ3L,KAAKwL,sBAAaxC,+BAAwBiD,EAAiB,IAAMA,EAAX,IAAwBV,EAAQ7H,IAGtHyI,SAAU,SAAUnD,OAAIuC,yDAAS,GAAI7H,yDAAU,UACpC1D,KAAKyH,QAAQkE,eAAQ3L,KAAKwL,sBAAaxC,eAAeuC,EAAQ7H,GAASkF,KAAK5I,KAAK4L,WAAWrM,KAAKS,QAG5GoM,OAAQ,SAAUpD,OAAIuC,yDAAS,GAAI7H,yDAAU,UAClC1D,KAAKyH,yBAAkBzH,KAAKwL,sBAAaxC,aAAauC,EAAQ7H,GAASkF,KAAK5I,KAAK4L,WAAWrM,KAAKS,UAI1GqM,kDACUpI,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,WAAWL,QAASiE,IAAiB3H,gDAGpE,eAAmB6H,yDAAS,GAAI7H,yDAAU,UAC/B1D,KAAKmI,MAAMmD,mBAAmBtL,KAAKgJ,GAAIuC,EAAQ7H,2BAG1D,eAAS6H,yDAAS,GAAI7H,yDAAU,UACrB1D,KAAKmI,MAAMuD,SAAS1L,KAAKgJ,GAAIuC,EAAQ7H,wBAGhD,eAAM6H,yDAAS,GAAI7H,yDAAU,UAClB1D,KAAKmI,MAAMnL,MAAMgD,KAAKgJ,GAAIuC,EAAQ7H,iCAG7C,SAAeqI,OAAeR,yDAAS,GAAI7H,yDAAU,UAC1C1D,KAAKmI,MAAM2D,eAAe9L,KAAKgJ,GAAI+C,EAAeR,EAAQ7H,gCAGrE,eAAcuI,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC5C1D,KAAKmI,MAAM6D,cAAchM,KAAKgJ,GAAIiD,EAAWV,EAAQ7H,mCAGhE,eAAiBuI,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC/C1D,KAAKmI,MAAM+D,iBAAiBlM,KAAKgJ,GAAIiD,EAAWV,EAAQ7H,kCAGnE,eAAgB6H,yDAAS,GAAI7H,yDAAU,UAC5B1D,KAAKmI,MAAMsD,gBAAgBzL,KAAKgJ,GAAIuC,EAAQ7H,iCAGvD,eAAe6H,yDAAS,GAAI7H,yDAAU,UAC3B1D,KAAKmI,MAAM0D,eAAe7L,KAAKgJ,GAAIuC,EAAQ7H,yBAGtD,eAAO6H,yDAAS,GAAI7H,yDAAU,UACnB1D,KAAKmI,MAAMiE,OAAOpM,KAAKgJ,GAAIuC,EAAQ7H,2BAG9C,eAAS6H,yDAAS,GAAI7H,yDAAU,UACrB1D,KAAKmI,MAAMgE,SAASnM,KAAKgJ,GAAIuC,EAAQ7H,6BAGhD,kBACkD,OAAvC1D,KAAKwI,aAAa,8CAG7B,kBACiD,MAAtCxI,KAAKwI,aAAa,wCAG7B,kBAC+C,OAApCxI,KAAKwI,aAAa,wCAG7B,kBAC8C,MAAnCxI,KAAKwI,aAAa,uCAG7B,iBAC0C,aAA/BxI,KAAKwI,aAAa,kCAG7B,iBAC0C,YAA/BxI,KAAKwI,aAAa,iCAG7B,iBAC0C,kBAA/BxI,KAAKwI,aAAa,WAAiE,YAAhCxI,KAAKwI,aAAa,oCAGhF,kBACWxI,KAAKsM,YAActM,KAAKuM,aAAevM,KAAKwM,qCAGvD,kBACWxM,KAAK+J,kBAAkB,gBAAkB,IAAIC,KAAKhK,KAAKwI,aAAa,iBAAmB,4BAGlG,kBACWxI,KAAK+J,kBAAkB,cAAgB,IAAIC,KAAKhK,KAAKwI,aAAa,eAAiB,+BAG9F,kBACWxI,KAAK+J,kBAAkB,iBAAmB,IAAIC,KAAKhK,KAAKwI,aAAa,kBAAoB,yBAGpG,kBACWxI,KAAKwI,aAAa,iBA1Fb7F,ICvDd8J,kDACOxI,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACnCO,EAAYwD,EAAS,UAAW/D,mCAU1C,SAAOgJ,0BASP,iCASA,gCASA,mCASA,kBACW,IAAIjO,EAAWuB,KAAK2M,kBAjDbhK,ICDhBiK,kDACU3I,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,SAAU/D,aAFxBf,ICCfkK,kDACU5I,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,QAAS/D,qEA+B7B1D,KAAKwI,aAAa,WAAY,IAAIzC,wBAAlC+G,EAA4CnI,YAAY,0BAQnE,kCACW3E,KAAKwI,aAAa,WAAY,IAAIzC,wBAAlCgH,EAA4CpI,YAAY,4BAQnE,iBAGY,CAFwB3E,KAAxBgG,SAAwBhG,KAAdiG,mCAWtB,SAAS+G,UACDvK,GAAWuK,SACNtC,aAAa,QAASsC,EAAMhE,IAGhB,iBAAVgE,QACFtC,aAAa,QAASsC,GAGxBhN,wCAlEX,SAAyBiN,EAAexF,OAAS/D,yDAAU,KACvBuJ,EAAczE,aAAa,wBAAnDxC,OAAUC,OACZhC,EAAa,CACfb,KAAM,KACNoC,QAASyH,EAAczE,aAAa,WACpC5D,SAAU,IAAImB,GAAMC,EAAUC,GAC9BiH,QAASD,EAAczE,aAAa,cACpC2E,QAAS,KACTpI,KAAMkI,EAAczE,aAAa,QACjC4E,SAAUH,EAAczE,aAAa,aACrC6E,YAAaJ,EAAczE,aAAa,cACxC8E,aAAcL,EAAc/O,IAAI,gBAChCqP,SAAUN,EAAczE,aAAa,UACrCgF,SAAUP,EAAc/O,IAAI,YAC5BmH,QAAS4H,EAAczE,aAAa,gBACpC3F,MAAO,KACP4K,qBAAsB,aAGnB,IAAIZ,EAAM5I,EAAYwD,EAAS/D,UAxB1Bf,ICDd+K,kDACUzJ,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,WAAY/D,aAFxBmJ,ICAjBc,kDACU1J,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,kBAAmB/D,aAFzBf,ICAvBiL,kDACU3J,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,UAAW/D,aAFxBf,ICChBkL,GAAgB,IAAI1G,GAAa,CAEnC2G,MAAO,SAAUC,OAAUC,yDAAW,KAAM/J,yDAAa,MAEjDrB,GAAQmL,UACD/N,KAAKyH,QAAQkE,KAAK,yBAA0B,CAAE9I,MAAOkL,QAG3DC,QACK,IAAIvE,MAAM,mCAGbzJ,KAAKyH,QAAQkE,KAAK,mBAAmBoC,SAAAA,EAAUC,SAAAA,GAAa/J,IAAc2E,KAAK5I,KAAK4L,WAAWrM,KAAKS,QAG/GiO,WAAY,SAAUF,EAAUG,OAAMjK,yDAAa,UACxCjE,KAAKyH,QAAQkE,KAAK,yBAAyBoC,SAAAA,EAAUG,KAAAA,GAASjK,IAAc2E,KAAK5I,KAAK4L,WAAWrM,KAAKS,QAGjHmO,MAAO,SAAUnF,OAAIuC,yDAAS,GAAI7H,yDAAU,UACjC1D,KAAKyH,QAAQkE,uBAAgB3C,YAAYuC,EAAQ7H,GAASkF,KAAK5I,KAAK4L,WAAWrM,KAAKS,QAG/FoO,SAAU,SAAUpF,UACThJ,KAAKkJ,WAAWF,IAG3BqF,oBAAWrF,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC3B1D,KAAKyH,QAAQkE,uBAAgB3C,sBAAsBuC,EAAQ7H,MAIpE4K,kDACUrK,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,YAAYL,QAASyG,IAAkBnK,iCAwCtE,kBACW1D,KAAKwI,aAAa,+BAG7B,kBAC2C,IAAhCxI,KAAKwI,aAAa,kEA5BlBxI,KAAKwI,aAAa,WAAY,IAAIzC,2BAAlC+G,EAA4CnI,YAAY,0BAQnE,kCACW3E,KAAKwI,aAAa,WAAY,IAAIzC,2BAAlCgH,EAA4CpI,YAAY,4BAQnE,iBAGW,CAFyB3E,KAAxBgG,SAAwBhG,KAAdiG,gCAatB,eAAMsF,yDAAS,GAAI7H,yDAAU,UAClB1D,KAAKmI,MAAMgG,MAAMnO,KAAKgJ,GAAIuC,EAAQ7H,6BAG7C,eAAW6H,yDAAS,GAAI7H,yDAAU,UACvB1D,KAAKmI,MAAMkG,WAAWrO,KAAKgJ,GAAIuC,EAAQ7H,UAvDjCf,ICjCf4L,kDACUtK,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,SAAU/D,aAFxBf,ICAf6L,kDACUvK,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,UAAW/D,aAFxBf,ICAhB8L,kDACUxK,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,OAAQ/D,aAFxBf,ICAb+L,kDACUzK,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,eAAgB/D,aAFzBf,ICApBgM,kDACU1K,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,eAAgB/D,aAFzBf,ICApBiM,kDACU3K,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,gBAAiB/D,4CAGhD,uCAIA,mBATuBf,ICFrBkM,GAMF,iBAAYC,yDAAS,kBACZ7G,QAAU6G,EAAO7G,SAAW,UAC5B8G,KAAOD,EAAOC,MAAQ,UACtBvD,UAAYsD,EAAOtD,WAAa,UAChCwD,QAAUF,EAAOE,SAAW,ICPnCC,4CAKUH,yCACFA,IAEDI,WAAW,CACZC,+BAAyBL,EAAOM,0BAChB,gCACF,iEAStB,eAAWJ,yDAAU,eACZA,eAAehP,KAAKgP,SAAYA,GAE9BhP,8BAWX,SAAU6I,UACC,IAAIwG,SAAQ,SAACC,EAASC,UAAW1G,EACnCvC,OACAsC,MAAK,SAACtC,UAASgJ,EAAQ,CACpBE,WAAY3G,EAAS2G,WACrBC,OAAQ5G,EAAS4G,OACjBC,GAAI7G,EAAS6G,GACbpJ,KAAAA,cAEG,WACHiJ,EAAO,IAAI9F,MAAM,wFAc7B,SAAQhD,cAAMkJ,yDAAS,MAAOrL,yDAAO,GAAIZ,yDAAU,UACxC,IAAI2L,SAAQ,SAACC,EAASC,UAAWK,MAAMlM,EAAQmM,eAAUzP,EAAK2O,iBAAQ3O,EAAKoL,sBAAa/E,MAC3FkJ,OAAAA,EACAG,KAAMpM,EAAQoM,MAAQ,OACtBd,QAAS,IAAIe,eACL3P,EAAK4O,SAAW,IAChBtL,EAAQsL,SAAW,MAExB1K,IAEFsE,KAAKxI,EAAK4P,WACVpH,MAAK,SAACC,UACCA,EAAS6G,GACFJ,EAAQzG,EAASvC,MAGrBiJ,EAAO,IAAI9F,MAAMZ,EAASvC,KAAK2J,OAASpH,EAASvC,KAAK2J,OAAO,GAAKpH,EAAS2G,uBAE/E,SAACU,GACJX,EAAOW,4BAanB,SAAIzJ,OAAM0J,yDAAQ,GAAIzM,yDAAU,GACtB0M,EAAanO,EAAQkO,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,kBAExDtQ,KAAKuQ,kBAAW9J,UAAO2J,aAAgBA,GAAc,IAAM,MAAO,GAAI1M,uBAYjF,SAAK+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACrB1D,KAAKuQ,QAAQ9J,EAAM,OAAQ,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,sBAYtE,SAAI+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACpB1D,KAAKuQ,QAAQ9J,EAAM,MAAO,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,yBAYrE,SAAO+C,OAAM/C,yDAAU,UACZ1D,KAAKuQ,QAAQ9J,EAAM,SAAU,GAAI/C,wBAW5C,SAAM+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACtB1D,KAAKuQ,QAAQ9J,EAAM,QAAS,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,UAhJ9CmL,ICEvB8B,4CACU7B,yCACFA,IAED8B,MAAQA,UAAMjI,OAAO,CACtBkI,kBAAY/H,EAAKiG,iBAAQjG,EAAK0C,WAC9BwD,QAAS,CACLG,+BAAyBL,EAAOM,0BAChB,gCACF,+DAU1B,eAAWJ,yDAAU,GACX8B,EAAgB9Q,KAAK4Q,MAAMG,SAAS/B,QAAQgC,mBAC7CJ,MAAMG,SAAS/B,QAAQgC,cAAcF,GAAkB9B,GAErDhP,8BASX,SAAU6I,UACCA,EAASvE,gCASpB,SAAY4L,MACJA,EAAMrH,SAAU,KACRvE,EAAS4L,EAAMrH,SAAfvE,QAEJ3H,EAAQ2H,EAAK2L,cACP,IAAIxG,MAAMnF,EAAK2L,OAAO,OAG5B3L,EAAK4L,YACC,IAAIzG,MAAMnF,EAAK4L,aAIvBA,qBAYV,SAAIzJ,OAAM0J,yDAAQ,GAAIzM,yDAAU,GACtB0M,EAAanO,EAAQkO,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,kBAExDtQ,KAAK4Q,MACP1S,cAAOuI,UAAO2J,aAAgBA,GAAc,IAAM1M,GAClDkF,KAAK5I,KAAKiR,UAAU1R,KAAKS,aACnBA,KAAKkR,YAAY3R,KAAKS,2BAYrC,SAAKyG,OAAMnC,yDAAO,GAAIZ,yDAAU,UACrB1D,KAAK4Q,MAAMjF,KAAKlF,EAAMnC,EAAMZ,GAASkF,KAAK5I,KAAKiR,UAAU1R,KAAKS,aAAaA,KAAKkR,YAAY3R,KAAKS,0BAY5G,SAAIyG,OAAMnC,yDAAO,GAAIZ,yDAAU,UACpB1D,KAAK4Q,MAAMO,IAAI1K,EAAMnC,EAAMZ,GAASkF,KAAK5I,KAAKiR,UAAU1R,KAAKS,aAAaA,KAAKkR,YAAY3R,KAAKS,6BAY3G,SAAOyG,OAAM/C,yDAAU,UACZ1D,KAAK4Q,aAAanK,EAAM/C,GAASkF,KAAK5I,KAAKiR,UAAU1R,KAAKS,aAAaA,KAAKkR,YAAY3R,KAAKS,4BAWxG,SAAMyG,OAAMnC,yDAAO,GAAIZ,yDAAU,UACtB1D,KAAK4Q,MAAMQ,MAAM3K,EAAMnC,EAAMZ,GAASkF,KAAK5I,KAAKiR,UAAU1R,KAAKS,aAAaA,KAAKkR,YAAY3R,KAAKS,cA5HvF6O,ICHpBwC,iGAAuBxC,ICoBRyC,yBACLC,OAAQC,iGAKD,CAAC,YAAa,cAAe,OAAQ,QAAS,UAAW,SAAU,OAAQ,QAAS,QAAS,OAAQ,8BAE1G,CACV,CAAC,IAAIC,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,WAAY,MAAO,SAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,eAAgB,MAAO,QACnC,CAAC,IAAIA,OAAO,iBAAkB,MAAO,OACrC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,SAAU,MAAO,SAC7B,CAAC,IAAIA,OAAO,yBAA0B,MAAO,SAC7C,CAAC,IAAIA,OAAO,YAAa,MAAO,OAChC,CAAC,IAAIA,OAAO,OAAQ,MAAO,OAC3B,CAAC,IAAIA,OAAO,wBAAyB,MAAO,WAC5C,CAAC,IAAIA,OAAO,UAAW,MAAO,OAC9B,CAAC,IAAIA,OAAO,mBAAoB,MAAO,SACvC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,wBAAyB,MAAO,UAC5C,CAAC,IAAIA,OAAO,eAAgB,MAAO,SACnC,CAAC,IAAIA,OAAO,UAAW,MAAO,SAC9B,CAAC,IAAIA,OAAO,KAAM,MAAO,KACzB,CAAC,IAAIA,OAAO,IAAK,MAAO,8BAGZ,CACZ,CAAC,IAAIA,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,cAAe,MAAO,MAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,QAC/B,CAAC,IAAIA,OAAO,gEAAiE,MAAO,WACpF,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,YAAa,MAAO,MAChC,CAAC,IAAIA,OAAO,aAAc,MAAO,OACjC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,qBAAsB,MAAO,OACzC,CAAC,IAAIA,OAAO,YAAa,MAAO,WAChC,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,MACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,UAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,MAC7B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,oBAAqB,MAAO,QACxC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,oBAAqB,MAAO,MACxC,CAAC,IAAIA,OAAO,UAAW,MAAO,MAC9B,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,aAAc,MAAO,MACjC,CAAC,IAAIA,OAAO,KAAM,MAAO,kCAGR,CAAC,MAAO,KAAM,MAAO,IAAK,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,OAAQ,OAAQ,KAAM,OAAQ,MAAO,MAAO,KAAM,OAAQ,OAAQ,0BAExJ,IAAIA,OAAO,cAAe,wBAC1B,IAAIA,OAAO,IAAK,+BACT,IAAIA,OAAO,OAAQ,yBACzB,IAAIA,OAAO,UAAW,8BACjB,IAAIA,OAAO,YAhEnBC,IAAMH,OACNC,MAAQA,+BAiEjB,kBACWxR,KAAK0R,8BAGhB,SAAWA,EAAKC,EAAOC,EAAMC,MACrBA,EACAH,EAAMG,YAEOD,EAAKhS,QAAQ8R,EAAII,gBAAkB,OAEvC,IAAIC,EAAI,EAAGA,EAAIJ,EAAMxU,OAAQ4U,OAC1BL,EAAIM,MAAML,EAAMI,GAAG,IAAK,CACxBL,EAAMA,EAAI5U,QAAQ6U,EAAMI,GAAG,GAAIJ,EAAMI,GAAG,sBAQnDL,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,2BASX,SAAUA,OAAKO,yDAAS,YACpBP,EAAMA,GAAO1R,KAAK0R,IAEX1R,KAAKkS,WAAWR,EAAK1R,KAAKmS,YAAanS,KAAKoS,iBAAkBH,8BASzE,SAAYP,EAAKW,UACbX,EAAMA,GAAO1R,KAAK0R,IAEX1R,KAAKkS,WAAWR,EAAK1R,KAAKsS,cAAetS,KAAKoS,iBAAkBC,2BAO3E,SAASX,EAAKa,WAGNC,GAFJd,EAAMA,GAAO1R,KAAK0R,KAEC3K,MAAM,KAChB1J,EAAI,EAAGA,EAAImV,EAASrV,OAAQE,IAAK,SAClCoV,EAAUD,EAASnV,GAAG0J,MAAM,KAGvBgL,EAFGQ,GAAkBlV,EAAI,IAAMmV,EAASrV,OAAS,EAAI,EAE1C4U,EAAIU,EAAQtV,OAAQ4U,IACpCU,EAAQV,GAAKU,EAAQV,GAAGW,OAAO,GAAGC,cAAgBF,EAAQV,GAAGa,UAAU,GAE3EJ,EAASnV,GAAKoV,EAAQhN,KAAK,OAE/BiM,EAAMc,EAAS/M,KAAK,OAGG,IAAnB8M,EAAyB,KACrBM,EAAQnB,EAAIgB,OAAO,GAAGZ,cACtBgB,EAAOpB,EAAInU,MAAM,GACrBmU,EAAMmB,EAAQC,cAIbpB,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,4BAOX,SAAWA,WAGHc,GAFJd,EAAMA,GAAO1R,KAAK0R,KAEC3K,MAAM,MAChB1J,EAAI,EAAGA,EAAImV,EAASrV,OAAQE,IACjCmV,EAASnV,GAAKmV,EAASnV,GAAGP,QAAQkD,KAAK+S,UAAW,OAClDP,EAASnV,GAAKmV,EAASnV,GAAGP,QAAQkD,KAAKgT,eAAgB,WAE3DtB,EAAMc,EAAS/M,KAAK,KAAKqM,mBAGpBJ,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,0BAOX,SAASA,EAAKa,UAKVb,GADAA,GADIA,GAFJA,EAAMA,GAAO1R,KAAK0R,KAEJI,eACJhV,QAAQkD,KAAKiT,SAAU,KACvBnW,QAAQkD,KAAKkT,SAAU,KAC5BX,IACDb,EAAM1R,KAAKmT,WAAWzB,SAIrBA,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,4BAOX,SAAWA,UAIPA,GADAA,GAFAA,EAAMA,GAAO1R,KAAK0R,KAERI,eACAc,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,QAGnDlB,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,2BAOX,SAAUA,UAINA,GADAA,GAFAA,EAAMA,GAAO1R,KAAK0R,KAER5U,QAAQkD,KAAKoT,gBAAiB,MAC9BtB,mBAGLJ,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,yBAQX,SAAQA,EAAK2B,GACT3B,EAAMA,GAAO1R,KAAK0R,KAGI,IAAlB2B,GACA3B,EAAM1R,KAAKsT,SAAS5B,GACpBA,EAAM1R,KAAKuT,WAAW7B,IAEtBA,EAAMA,EAAII,sBAIVW,GADJf,EAAMA,EAAI5U,QAAQkD,KAAKkT,SAAU,MACfnM,MAAM,KACfgL,EAAI,EAAGA,EAAIU,EAAQtV,OAAQ4U,IAAK,SACjCyB,EAAIf,EAAQV,GAAGhL,MAAM,KAChB1J,EAAI,EAAGA,EAAImW,EAAErW,OAAQE,IACtB2C,KAAKyT,mBAAmB7T,QAAQ4T,EAAEnW,GAAGyU,eAAiB,IACtD0B,EAAEnW,GAAK2C,KAAKmT,WAAWK,EAAEnW,KAGjCoV,EAAQV,GAAKyB,EAAE/N,KAAK,YAGxBiM,GADAA,EAAMe,EAAQhN,KAAK,MACTmN,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,QAGnDlB,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,4BAMX,SAAWA,OAGHe,GAFJf,EAAMA,GAAO1R,KAAK0R,KAEA3K,MAAM,aACxB2K,EAAMe,EAAQA,EAAQtV,OAAS,QAG1BuU,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,0BAMX,SAASA,UACLA,EAAMA,GAAO1R,KAAK0R,IAElBA,EAAM1R,KAAK0T,UAAU1T,KAAKuT,WAAW7B,SAGhCA,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,0BAMX,SAASA,UACLA,EAAMA,GAAO1R,KAAK0R,IAElBA,EAAM1R,KAAK2T,YAAY3T,KAAKsT,SAAS5B,SAGhCA,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,4BAOX,SAAWA,OAAKkC,iEACZlC,EAAMA,GAAO1R,KAAK0R,IAElBA,EAAM1R,KAAKuT,WAAWvT,KAAK6T,WAAWnC,KAASkC,EAAa,GAAK,KAAO,UAGnElC,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,4BAMX,SAAWA,WAGHe,GAFJf,EAAMA,GAAO1R,KAAK0R,KAEA3K,MAAM,KACfgL,EAAI,EAAGA,EAAIU,EAAQtV,OAAQ4U,IAAK,IAE3B+B,MADFC,SAAStB,EAAQV,IACV,KACPiC,EAAMvB,EAAQV,GAAGa,UAAUH,EAAQV,GAAG5U,OAAS,GAC/C8W,EAAKxB,EAAQV,GAAGa,UAAUH,EAAQV,GAAG5U,OAAS,GAC9C+W,EAAM,KACC,MAAPF,GAAsB,MAAPA,GAAsB,MAAPA,IACnB,MAAPC,EACAC,EAAM,KACQ,MAAPD,EACPC,EAAM,KACQ,MAAPD,IACPC,EAAM,OAGdzB,EAAQV,IAAMmC,UAGtBxC,EAAMe,EAAQhN,KAAK,UAGdiM,IAAMA,GAEQ,IAAf1R,KAAKwR,MACExR,KAIJ0R,0BAMX,eACUyC,EAAOtP,OAAOC,OAAOhG,WACrBsV,EAAW,IAAI9C,EAAO,MAAM,GAC5B3B,EAAS7Q,UAAU,UACzBqV,EAAKE,QAE2B,mBAArBD,EAASzE,GACTyE,EAASzE,SAATyE,IAAoBD,IAGxB,cAITT,GAAY,eACRS,GAAQ,+CAAgBrV,mBAEvBwS,GAAOgD,aAAPhD,KAAiB6C,KAGtBR,GAAc,eACVQ,GAAQ,iDAAkBrV,mBAEzBwS,GAAOgD,aAAPhD,KAAiB6C,KAetBb,GAAW,eACPa,GAAQ,8CAAerV,mBAEtBwS,GAAOgD,aAAPhD,KAAiB6C,KAStBI,GAAY,eACRJ,GAAQ,+CAAgBrV,mBAEvBwS,GAAOgD,aAAPhD,KAAiB6C,KAqBtBK,GAAW,eACPL,GAAQ,8CAAerV,mBAEtBwS,GAAOgD,aAAPhD,KAAiB6C,KC1ftBM,GAAY,CACdjG,QAAAA,GACAF,OAAAA,GACA1B,OAAAA,GACAP,MAAAA,GACAI,QAAAA,GACAI,MAAAA,GACAc,eAAAA,GACAC,QAAAA,GACAW,OAAAA,GACAb,SAAAA,GACAe,KAAAA,GACAC,YAAAA,GACAC,YAAAA,GACAC,aAAAA,IAGE8F,GAAW,CACbzF,eAAAA,GACA0B,YAAAA,GACAU,eAAAA,IAGEsD,iDAEOF,UAAYA,QACZC,SAAWA,GAET1U,KAAK2D,kBAAU7E,2CAG1B,SAAO0F,EAAMoQ,OACH/W,EAAM6V,GAAUlP,GAChB+G,EAAS3O,2BAAIkC,WAAWvB,MAAM,OAE/ByC,KAAKnC,SACA,IAAI4L,MAAM,yCAGfzJ,KAAKnC,GAAK+W,SACL,IAAInL,mBAAYkK,GAAYnP,qBAAeoQ,2BAG1C5U,KAAKnC,GAAK+W,KAAcrJ,aAIrC5H,GAAS,oBACAgR,8BAAY7V,aC9CrB+V,GAAqB,SAAC1M,OAAOf,yDAAU,MACzCe,EAAMf,QAAUzK,EAAQyK,GAAWA,EAAU,CAACA,IAE1CzK,EAAQyK,UASRA,aAAmBD,IACnBC,EAAQ0N,OAAO3M,GAGZA,MAZE,IAAI9K,EAAI,EAAGA,EAAI+J,EAAQjK,OAAQE,IAAK,KAC/BkK,EAASH,EAAQ/J,GAEvB8K,EAAM4M,cAAcxN,KAY1BqE,GAAa,SAACzD,EAAO7B,MACmB,mBAA/B6B,EAAMzE,QAAQ2E,cACrBF,EAAMzE,QAAQ2E,aAAa/B,GAG3B3J,EAAQ2J,GAAO,SACT0O,EAAa,GAEV3X,EAAI,EAAGA,EAAIiJ,EAAKnJ,OAAQE,IAC7B2X,EAAWzW,KAAK4J,EAAMyD,WAAWtF,EAAKjJ,cAG/BoB,EAAcuW,OAGvBC,EAAmB9M,EAAM9B,UAAUC,UAClC6B,EAAM+M,QAAQD,IAGnB7M,yBACUV,EAAUD,OAAS/D,yDAAU,kBAChCgE,SAAWA,OACXD,QAAUA,GAAWhE,UACrB+H,UAAYkI,GAAUhM,QACtByN,QAAU,IAAI1W,OACdiF,QAAUA,OACVqR,cAAcrR,EAAQ0D,gDAG/B,eAAcA,yDAAU,UACbyN,GAAmB7U,KAAMoH,0BAGpC,SAAQ6N,UAGGA,2BAGX,SAAU3O,UACC3C,GAAO,WAAY6Q,GAASxU,KAAK0H,UAAWpB,EAAMtG,KAAKyH,mCAGlE,SAAWnB,UACAsF,GAAW5L,KAAMsG,yBAG5B,sBAAOrC,yDAAa,GAAIP,yDAAU,UACvB,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRzG,EAAKrB,QAAQkE,eAAQ7C,EAAK0C,WAAavH,EAAYP,GAASkF,KAAKE,EAAK8C,WAAWrM,KAAKuJ,UAAayG,UAApH1G,SAENyG,EAAQzG,6HAIhB,SAAOG,cAAI/E,yDAAa,GAAIP,yDAAU,UAC3B,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRnP,EAAKqH,QAAQ0J,cAAO/Q,EAAKoL,sBAAaxC,GAAM/E,EAAYP,GAASkF,KAAKxI,EAAKwL,WAAWrM,KAAKa,UAAamP,UAAzH1G,SAENyG,EAAQzG,iIAIhB,SAAWG,cAAItF,yDAAU,UACd,IAAI2L,oDAAQ,WAAOC,EAASC,yGACR5N,EAAK8F,QAAQvJ,cAAOyD,EAAK6J,sBAAaxC,GAAM,GAAItF,GAASkF,KAAKjH,EAAKiK,WAAWrM,KAAKoC,UAAa4N,UAAjH1G,SAENyG,EAAQzG,8HAIhB,sBAAQnF,yDAAU,UACP,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRpG,EAAK1B,QAAQvJ,cAAOiL,EAAKqC,WAAa,GAAI9H,GAASkF,KAAKO,EAAKyC,WAAWrM,KAAK4J,UAAaoG,UAA3G1G,SAENyG,EAAQzG,4HAIhB,sBAAMsH,yDAAQ,GAAIzM,yDAAU,UACjB,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRlF,EAAK5C,QAAQvJ,cAAOmM,EAAKmB,WAAa2E,EAAOzM,GAASkF,KAAKyB,EAAKuB,WAAWrM,KAAK8K,UAAakF,UAA9G1G,SAENyG,EAAQzG,kIAIhB,sBAAYsH,yDAAQ,GAAIzM,yDAAU,UAC9ByM,EAAMiF,QAAS,EAER,IAAI/F,oDAAQ,WAAOC,EAASC,yGACRtE,EAAKxD,QAAQvJ,cAAO+M,EAAKO,WAAa2E,EAAOzM,GAASkF,KAAKqC,EAAKW,WAAWrM,KAAK0L,UAAasE,UAA9G1G,SAENyG,EAAQzG,8HAIhB,SAAQnG,cAAQgB,yDAAU,GAChBsF,EAAKvG,GAAWC,GAAUA,EAAO8F,aAAa,MAAQ9F,SAErD,IAAI2M,oDAAQ,WAAOC,EAASC,yGACR8F,EAAK5N,yBAAkB4N,EAAK7J,sBAAaxC,GAAM,GAAItF,GAASkF,KAAKyM,EAAKzJ,WAAWrM,KAAK8V,UAAa9F,UAApH1G,SAENyG,EAAQzG,gHChGCyM,yBASLlG,aAAWN,yDAAS,GAAIyG,4EAC3BtN,kBAAU6G,EAAO7G,uBAAW,UAC5BvE,QAAU,CACXuE,QAASjI,KAAKiI,QACd8G,eAAMD,EAAOC,oBAAQ,2BACrBvD,oBAAWsD,EAAOtD,yBAAaxL,KAAKiI,QACpCsN,MAAAA,EACAnG,UAAAA,GAGqB,iBAAdA,GAA+C,IAArBA,EAAUjS,aACrC,IAAIsM,MAAM,oDAGf3G,MAAuBsM,EAAU0C,cAAc0D,WAAW,WACrD,IAAI/L,MAAM,sFAGfhC,QAAUqH,EAAOrH,SAAWhE,GAAczD,KAAK0D,cAE/C+R,OAAS,IAAIrN,GAAM,QAASpI,KAAKyH,SAASsN,cAAc1J,SACxDqK,SAAW,IAAItN,GAAM,SAAUpI,KAAKyH,cACpCkO,OAAS,IAAIvN,GAAM,QAASpI,KAAKyH,cACjCmO,QAAU,IAAIxN,GAAM,SAAUpI,KAAKyH,SAASsN,cAAclH,SAC1DgI,SAAW,IAAIzN,GAAM,UAAWpI,KAAKyH,cACrCqO,QAAU,IAAI1N,GAAM,SAAUpI,KAAKyH,cACnCsO,SAAW,IAAI3N,GAAM,UAAWpI,KAAKyH,6CAO9C,SAAWA,QACFA,QAAUA,4BAGnB,kBACWzH,KAAKyH,qCAThB,oBACe6N,6BAAaxW"} \ No newline at end of file diff --git a/dist/cjs/fleetbase.js b/dist/cjs/fleetbase.js deleted file mode 100644 index 5e620bc..0000000 --- a/dist/cjs/fleetbase.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("axios");function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}require("date-fns");var n=e(t);function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(E(t))if(r.length<=6e4)t.splice.apply(t,[e,n].concat(w(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;n<0&&(n+=i);var o=r&&e!=e?function(t){return t!=t}:function(t){return t===e};return P(t,o,n)},L=function(t,e,n){return $(t,e,0,[n]),n},N=function(t){v(n,y(Array));var e=k(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return S(this,0)}},{key:"last",get:function(){return S(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return $(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return S(e,t)}))}},{key:"objectAt",value:function(t){return S(this,t)}},{key:"indexOf",value:function(t,e){return C(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(S(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==C(this,t,e,!0)}},{key:"findBy",value:function(){return F(this,_.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return P(this,_.apply(void 0,arguments))}},{key:"isEvery",value:function(){return D(this,_.apply(void 0,arguments))}},{key:"isAny",value:function(){return z(this,_.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:j,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return L(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return $(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=S(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=S(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return L(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){S(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),T=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=o(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},q=function(t){return T(t)||"string"==typeof t&&!1===/\S/.test(t)};function B(t){return t instanceof Z}var U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},I=function(){var t,e,n,r,i;return!("undefined"==typeof process||"object"!==o(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(r=window)||void 0===r||null===(i=r.navigator)||void 0===i?void 0:i.product))},J=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return I()?Rt("adapter","NodeAdapter",t):Rt("adapter","BrowserAdapter",t)},W=Array.isArray,M=function(){function t(e){u(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return h(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=i(i({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),K=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;u(this,t),this.type="Point",this.coordinates=[n,e]}return h(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=m(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}();"undefined"==typeof arguments||arguments;var G=function(t,e){var n=t();return Array.isArray(n)||"object"===o(n)?H(n,e):null},H=function t(e,n){var r,i=e,s=o(e),a="object"===s,u="function"===s,c=Array.isArray(e),h="string"===o(n)&&n.includes(".")?n.split("."):[n];if(c||a){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u(this,t),this.actions=e,this.bind=n}return h(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===o(this.actions))for(var n in this.actions){var r=this.actions[n];"function"==typeof r?Q(e,n,r.bind(e)):Q(e,n,r)}return this}}]),t}(),Z=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};u(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return h(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new jt(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return T(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===o(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Q(this.attributes,t,n),Q(this.dirtyAttributes,t,r),E(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=H(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(E(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return E(t)?this.hasAttribute(t)&&t.every((function(t){return!T(e.getAttribute(t))})):this.hasAttribute(t)&&!T(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!E(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=i(i({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Y=new V({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),X=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"order",i({actions:Y},o))}return h(n,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),n}(),tt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"payload",i)}return h(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new N(this.waypoints)}}]),n}(),et=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"entity",i)}return n}(),nt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"place",i)}return h(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return B(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getAttribute("coordinates"),o=m(i,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new K(s,a),street1:t.getAttribute("streetName"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,r)}}]),n}(),rt=function(t){v(n,nt);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"waypoint",i)}return n}(),it=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"tracking-status",i)}return n}(),ot=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vehicle",i)}return n}(),st=new V({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(U(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",i({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",i({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),at=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"driver",i({actions:st},o))}return h(n,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),n}(),ut=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vendor",i)}return n}(),ct=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"contact",i)}return n}(),ht=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"zone",i)}return n}(),lt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-area",i)}return n}(),vt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-rate",i)}return n}(),dt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-quote",i)}return h(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),ft=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},gt=function(t){v(n,ft);var e=k(n);function n(t){var r;return u(this,n),(r=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),r}return h(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=i(i({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),i({method:n,mode:o.mode||"cors",headers:new Headers(i(i({},e.headers||{}),o.headers||{}))},r)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),n}(),pt=function(t){v(r,ft);var e=k(r);function r(t){var i;return u(this,r),(i=e.call(this,t)).axios=n.default.create({baseURL:"".concat(i.host,"/").concat(i.namespace),headers:{Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),i}return h(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=i(i({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(E(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),r}(),yt=function(t){v(n,ft);var e=k(n);function n(){return u(this,n),e.apply(this,arguments)}return n}(),bt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];u(this,t),l(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),l(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),l(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),l(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),l(this,"idSuffix",new RegExp("(_ids|_id)$","g")),l(this,"underbar",new RegExp("_","g")),l(this,"spaceOrUnderbar",new RegExp("[ _]","g")),l(this,"uppercase",new RegExp("([A-Z])","g")),l(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return h(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=E(e)?e:[e],!E(e))return e instanceof V&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};u(this,t),this.resource=e,this.adapter=n||J(),this.namespace=kt(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return $t(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return Rt("resource",wt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),E(e)){for(var n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var i=a(regeneratorRuntime.mark((function i(o,s){var a;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,r).then(e.afterFetch.bind(e)).catch(s);case 2:a=i.sent,o(a);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=a(regeneratorRuntime.mark((function n(r,i){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(i);case 2:o=n.sent,r(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=B(t)?t.getAttribute("id"):t;return new Promise(function(){var t=a(regeneratorRuntime.mark((function t(i,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(r),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,i(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),Ot=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:s,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!I()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||J(this.options),this.orders=new jt("order",this.adapter).extendActions(Y),this.entities=new jt("entity",this.adapter),this.places=new jt("place",this.adapter),this.drivers=new jt("driver",this.adapter).extendActions(st),this.vehicles=new jt("vehicle",this.adapter),this.vendors=new jt("vendor",this.adapter),this.contacts=new jt("contact",this.adapter)}return h(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return p(t,Array.prototype.slice.call(arguments))}}]),t}();exports.Adapter=ft,exports.BrowserAdapter=gt,exports.Collection=N,exports.Contact=ct,exports.Driver=at,exports.EmberJsAdapter=yt,exports.Entity=et,exports.GoogleAddress=M,exports.NodeAdapter=pt,exports.Order=X,exports.Payload=tt,exports.Place=nt,exports.Point=K,exports.Resource=Z,exports.ServiceArea=lt,exports.ServiceQuote=dt,exports.ServiceRate=vt,exports.Store=jt,exports.StoreActions=V,exports.TrackingStatus=it,exports.Vehicle=ot,exports.Vendor=ut,exports.Waypoint=rt,exports.Zone=ht,exports.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return bt.invoke.apply(bt,w(t))},exports.classify=wt,exports.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return bt.invoke.apply(bt,w(t))},exports.default=Ot,exports.extendStoreActions=$t,exports.isLatitude=function(t){return isFinite(t)&&Math.abs(t)<=90},exports.isLongitude=function(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90},exports.isNodeEnvironment=I,exports.isResource=B,exports.pluralize=kt,exports.singularize=mt; -//# sourceMappingURL=fleetbase.js.map diff --git a/dist/cjs/fleetbase.js.map b/dist/cjs/fleetbase.js.map deleted file mode 100644 index 7345513..0000000 --- a/dist/cjs/fleetbase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('streetName'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n"],"names":["isArray","Array","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","val","withNaNCheck","insertAt","this","indexes","map","idx","_this2","object","methodName","args","ret","forEach","push","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","seen","Set","getter","get","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","storage","resourceInstance","serialized","deposit","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","coordinate","isFinite","Math","abs"],"mappings":"kuJAAA,IAAQA,EAAYC,MAAZD,yDCWFE,EAAU,SAACC,EAAOC,EAAOC,OAAaC,yDAAQ,MAC5CN,EAAQG,MACJG,EAAMC,QANC,IAOPJ,EAAMK,aAANL,GAAaC,EAAOC,YAAgBC,SACjC,CACHH,EAAMK,OAAOJ,EAAOC,OAEf,IAAII,EAAI,EAAGA,EAAIH,EAAMC,OAAQE,GAX3B,IAW4C,KAC3CC,EAAQJ,EAAMK,MAAMF,EAAGA,EAZxB,KAaHN,EAAMK,aAANL,GAAaC,EAAQK,EAAG,YAAMC,WAG/BE,EAAaC,MACpBV,EAAMD,QAAQE,EAAOC,EAAaC,IAIpCQ,EAAmB,SAACC,UAASA,GAkB7BH,EAAe,SAACI,UAAUA,aAAiBC,GAE3CC,EAAW,SAACf,EAAOgB,UACjBnB,EAAQG,GACDA,EAAMgB,GACNP,EAAaT,GACbA,EAAMe,SAASC,GAGnB,MAGLC,EAAO,SAACC,EAAKC,UAC0B,IAArBC,EAAUhB,OACP,SAACQ,UAASO,IAAUP,EAAKM,IAAO,SAACN,UAASS,QAAQT,EAAKM,MAG5EI,EAAY,SAACtB,EAAOuB,WAAWC,yDAAU,EACvCC,EAAMzB,EAAMI,OACPY,EAAQQ,EAASR,EAAQS,EAAKT,IAAS,KACxCJ,EAAOG,EAASf,EAAOgB,MACvBO,EAAUX,EAAMI,EAAOhB,UAChBgB,SAGP,GAGNU,EAAO,SAAC1B,EAAO2B,EAAUC,OACvBL,EAAYI,EAASE,KAAKD,GAC1BZ,EAAQM,EAAUtB,EAAOuB,EAAW,UACtB,IAAXP,OAAec,EAAYf,EAASf,EAAOgB,IAGhDe,EAAM,SAAC/B,EAAO2B,EAAUC,OACtBL,EAAYI,EAASE,KAAKD,UACa,IAApCN,EAAUtB,EAAOuB,EAAW,IAGjCS,EAAQ,SAAChC,EAAO2B,EAAUC,OACxBK,EAAKN,EAASE,KAAKD,UAEoB,IAApCN,EAAUtB,GADD,SAACY,EAAMI,EAAOhB,UAAWiC,EAAGrB,EAAMI,EAAOhB,KACtB,IAGjCkC,EAAU,SAAClC,EAAOmC,OAAKX,yDAAU,EAAGY,yCAClCX,EAAMzB,EAAMI,OAEZoB,EAAU,IACVA,GAAWC,OAIXF,EAAYa,GAAgBD,GAAQA,EAAM,SAACvB,UAASA,GAASA,GAAO,SAACA,UAASA,IAASuB,UACpFb,EAAUtB,EAAOuB,EAAWC,IAQjCa,EAAW,SAACrC,EAAOgB,EAAOJ,UAC5Bb,EAAQC,EAAOgB,EAAO,EAAG,CAACJ,IACnBA,GAGLE,oBAAmBhB,2DACNK,2BAAAA,qCACPN,EAAQuB,UAAU,mCACTA,UAAU,mBAEVA,4CAIjB,kBACWkB,KAAKlC,OAAS,qBAGzB,kBAC2B,IAAhBkC,KAAKlC,0BAGhB,kBACWW,EAASuB,KAAM,qBAG1B,kBACWvB,EAASuB,KAAMA,KAAKlC,OAAS,0BAGxC,SAAQH,EAAOC,OAAaC,yDAAQ,UAChCJ,EAAQuC,KAAMrC,EAAOC,EAAaC,GAE3BmC,8BAGX,SAAUC,qBACCA,EAAQC,KAAI,SAACC,UAAQ1B,EAAS2B,EAAMD,8BAG/C,SAASzB,UACED,EAASuB,KAAMtB,0BAG1B,SAAQ2B,EAAQnB,UACLU,EAAQI,KAAMK,EAAQnB,GAAS,8BAG1C,SAAYmB,EAAQnB,OACZC,EAAMa,KAAKlC,aAEC0B,IAAZN,GAAyBA,GAAWC,KACpCD,EAAUC,EAAM,GAGhBD,EAAU,IACVA,GAAWC,OAGV,IAAIgB,EAAMjB,EAASiB,GAAO,EAAGA,OAC1B1B,EAASuB,KAAMG,KAASE,SACjBF,SAIP,0BAGZ,SAASE,EAAQnB,UACoC,IAA1CU,EAAQI,KAAMK,EAAQnB,GAAS,yBAG1C,kBACWE,EAAKY,KAAMrB,eAAQG,uCAG9B,kBACWE,EAAUgB,KAAMrB,eAAQG,mCAGnC,kBACWY,EAAMM,KAAMrB,eAAQG,iCAG/B,kBACWW,EAAIO,KAAMrB,eAAQG,kCAG7B,SAAOwB,8BAAeC,mCAAAA,wBACdC,EAAM,eAELC,SAAQ,SAACnC,gBAASkC,EAAIE,eAAKpC,EAAKgC,uBAALK,gBAAArC,UAAsBiC,QAE/CC,yBAGX,kBACWR,KAAKE,KAAI,SAAC5B,UAASA,4BAG9B,kBACW0B,KAAKY,QAAO,SAAC/B,UAAmB,MAATA,2BAGlC,eACQgC,EAAW/B,iBAERkB,KAAKc,MAAK,SAACC,EAAGC,OACZ,IAAIhD,EAAI,EAAGA,EAAI6C,EAAS/C,OAAQE,IAAK,KAClCY,EAAMiC,EAAS7C,GACfiD,EAAQF,EAAEnC,GACVsC,EAAQF,EAAEpC,GAEVuC,EAAeC,QAAQH,EAAOC,MAE9BC,SACOA,SAGR,2BAIf,SAAOvC,UAzMI,SAAClB,OAAOkB,yDAAMP,EACrBmC,EAAM,GACNa,EAAO,IAAIC,IACXC,EAAwB,mBAAR3C,EAAqBA,EAAM,SAACN,UAASkD,IAAIlD,EAAMM,WAEnElB,EAAM+C,SAAQ,SAACnC,OACPuB,EAAM0B,EAAOjD,GACZ+C,EAAKI,IAAI5B,KACVwB,EAAKK,IAAI7B,GACTW,EAAIE,KAAKpC,OAIVkC,EA6LImB,CAAO3B,KAAMpB,0BAGxB,SAAQC,OACCmB,KAAK4B,SAAS/C,UACRmB,SAIPf,EAAYJ,GAAUA,EAAQ,SAACP,UAASA,IAASO,GAAQ,SAACP,UAASA,GAASA,UACzE0B,KAAKY,OAAO3B,wBAGvB,eACQE,EAAMa,KAAKlC,cACH,IAARqB,QAIC1B,QAAQ,EAAG0B,EAAK,IAHVa,6BAOf,SAASG,EAAKE,UACVN,EAASC,KAAMG,EAAKE,GACbL,8BAGX,SAAUG,EAAKE,UACJL,KAAKvC,QAAQ0C,EAAK,EAAG,CAACE,4BAGjC,SAAS1C,EAAOwB,UAjKH,SAACzB,EAAOgB,UACrBjB,EAAQC,EAAOgB,yDADmB,EACP,IACpBhB,EAgKImE,CAAS7B,KAAMrC,EAAOwB,6BAGjC,SAAW2C,UACA9B,KAAKD,SAASC,KAAKlC,OAAQgE,8BAGtC,SAAYC,eACHtE,QAAQuC,KAAKlC,OAAQ,EAAGiE,GACtB/B,8BAGX,eACQb,EAAMa,KAAKlC,UACH,IAARqB,SACO,SAGPqB,EAAM/B,EAASuB,KAAMb,EAAM,eAC1B0C,SAAS1C,EAAM,EAAG,GAChBqB,6BAGX,cACwB,IAAhBR,KAAKlC,cACE,SAGP0C,EAAM/B,EAASuB,KAAM,eACpB6B,SAAS,GACPrB,+BAGX,SAAcsB,UACH/B,EAASC,KAAM,EAAG8B,iCAG7B,SAAeC,eACNtE,QAAQ,EAAG,EAAGsE,GACZ/B,mCAGX,eACQb,EAAMa,KAAKlC,UACH,IAARqB,SACOa,SAGP+B,EAAU/B,KAAKgC,UAAUC,sBACxBxE,QAAQ,EAAG0B,EAAK4C,GACd/B,+BAGX,SAAW+B,MACgB,IAAnBA,EAAQjE,cACDkC,KAAKkC,YAGZ/C,EAAMa,KAAKlC,mBACVL,QAAQ,EAAG0B,EAAK4C,GACd/B,iCAGX,SAAa8B,WACLK,EAAMnC,KAAKlC,QAAU,IAChBqE,GAAO,GAAG,CACC1D,EAASuB,KAAMmC,KAEbL,QACTD,SAASM,UAGfnC,kCAGX,SAAc+B,OACL,IAAI/D,EAAI+D,EAAQjE,OAAS,EAAGE,GAAK,EAAGA,SAChCoE,aAAaL,EAAQ/D,WAGvBgC,8BAGX,SAAU8B,UACS9B,KAAK4B,SAASE,SAGpBO,WAAWP,GAGb9B,+BAGX,SAAW+B,qBACPA,EAAQtB,SAAQ,SAACqB,UAAQQ,EAAKC,UAAUT,MACjC9B,cCxWTwC,EAAU,SAACV,OACPW,EAAOX,MAAAA,KACTW,SACOA,KAGa,iBAAbX,EAAIY,YACHZ,EAAIY,SAGVC,IAAoBb,MAEP,WAAfa,EAAyB,KACjBD,EAASZ,EAATY,QACY,iBAATA,SACCA,KAIU,iBAAfZ,EAAIhE,QAAsC,aAAf6E,SAC1Bb,EAAIhE,UAGG,WAAf6E,EAAyB,KACjB7E,EAAWgE,EAAXhE,UACc,iBAAXA,SACCA,SAIT,GC5BL8E,EAAU,SAACd,UAAQU,EAAQV,IAAwB,iBAARA,IAAuC,IAAnB,KAAKe,KAAKf,ICAhE,SAASgB,EAAWC,UACxBA,aAAkBC,ECH7B,IAAMC,EAAU,eAACC,yDAAQ,SACd,iDAAiDL,KAAKK,ICI3DC,EAAoB,iCACK,oBAAZC,SAAqD,WAAxBC,YAAOD,4BAAAE,EAASC,OAAqE,eAAjDH,QAAQI,kCAASC,2BAAMC,OAAO,gBAA4C,oBAAXC,QAAyD,2BAA/BA,iCAAQC,gCAAWC,WCH1LC,EAAgB,eAACC,yDAAU,UACzBZ,IACOa,GAAO,UAAW,cAAeD,GAGrCC,GAAO,UAAW,iBAAkBD,ICRvCxG,EAAYC,MAAZD,QAEF0G,wBACUC,kBACHA,MAAQA,OACRC,SAAWD,MAAAA,SAAAA,EAAOC,cAClBC,WAAapE,KAAKqE,uBAClBC,WAAatE,KAAKuE,iDAG3B,gBACSF,uBACAE,iDAGT,wCAC6BL,4BAAOM,qBAAsB,IAAIC,QAAO,SAAUC,EAAKC,UAC5EA,EAAKC,MAAMnE,SAAQ,SAAUoE,GACzBH,EAAIG,GAAQF,KAETD,IACR,mCAKP,iBACUJ,EAAa,CACfQ,aAAc9E,KAAKwB,IAAI,iBACvBuD,WAAY/E,KAAKwB,IAAI,SACrBwD,2BAAkBb,yBAAUc,SAAWC,OAAOC,OAAOnF,KAAKmE,SAASc,UAAY,CAAC,EAAG,GACnFG,KAAMpF,KAAKqF,GAAG,CAAC,WAAY,cAAe,sBAAuB,eAAgB,8BAA+B,gCAChHC,OAAQtF,KAAKwB,IAAI,+BACjB+D,WAAYvF,KAAKwB,IAAI,+BAA+B,GACpDgE,UAAWxF,KAAKwB,IAAI,+BACpBiE,aAAczF,KAAKwB,IAAI,WAAW,GAClCkE,QAAS1F,KAAKwB,IAAI,WAAW,GAC7BmE,YAAa3F,KAAKwB,IAAI,WACtBoE,WAAY5F,KAAKwB,IAAI,uBAGzB8C,EAAWuB,QAAU,CAACvB,EAAWQ,aAAcR,EAAWS,YAAYnE,OAAO7B,SAAS+G,KAAK,KAEpFxB,qBAGX,kBACWtE,KAAKsE,6BAGhB,mBAAGyB,yDAAO,GACG/H,EAAI,EAAGA,EAAI+H,EAAKjI,OAAQE,IAAK,KAC5BY,EAAMmH,EAAK/H,MAEbT,EAAQqB,QACFoH,EAAOpH,EAAI,GACXqH,EAAQrH,EAAI,MAEdoB,KAAKyB,IAAIuE,UACFhG,KAAKwB,IAAIwE,EAAMC,WAM1BjG,KAAKyB,IAAI7C,UACFoB,KAAKwB,IAAI5C,UAIjB,wBAGX,SAAIA,UACQA,KAAOoB,KAAKoE,8BAGxB,SAAIxF,OAAKqH,iEACCrH,KAAOoB,KAAKoE,WAIX6B,EAAQjG,KAAKoE,WAAWxF,GAAKsH,WAAalG,KAAKoE,WAAWxF,GAAKuH,UAH3D,kCAMf,eAAc7B,yDAAa,eAClBA,kBAAiBtE,KAAKsE,YAAeA,GAEnCtE,iCAGX,SAAapB,EAAKC,eACTyF,WAAW1F,GAAOC,EAEhBmB,iCAGX,SAAapB,UACFoB,KAAKsE,WAAW1F,IAAQ,cClGlBwH,8BACLC,yDAAW,EAAGC,yDAAY,iBAC7BzB,KAAO,aACPG,YAAc,CAACsB,EAAWD,mCAGnC,kBACWrG,KAAKgF,YAAY,0BAG5B,kBACWhF,KAAKgF,YAAY,sBAG5B,kBACWhF,KAAKqG,4BAGhB,kBACWrG,KAAKsG,mCAShB,iBACW,CACHzB,KAAM,QACN0B,YAAa,CAACvG,KAAKwG,MAAOxG,KAAKyG,8BAIvC,kBACWzG,KAAK0G,oCAGhB,4BACe1G,KAAKqG,sBAAarG,KAAKsG,4CAlBtC,SAAmBK,WACWA,EAAK3B,sBAA7BsB,eAAWD,cAEN,IAAID,EAAMC,SAAUC,6DCvBnC,IAIMM,EAAc,SAACC,EAAMC,OACjBC,EAAWF,WACVrJ,MAAMD,QAAQwJ,IAAiC,WAApB1D,EAAO0D,GAAwBvF,EAAIuF,EAAUD,GAAQ,MASrFtF,EAAM,SAANA,EAAOnB,EAAQyG,OAfDvI,EAgBZyI,EAAU3G,EAERwE,IAAcxE,GACd4G,EAAoB,WAATpC,EACXqC,EAAsB,aAATrC,EACbtH,EAAUC,MAAMD,QAAQ8C,GAKxB8G,EAF4B,aADVL,IAEaA,EAAKlF,SAAS,KAClBkF,EAAKM,MAAM,KAAO,CAACN,MAEhDvJ,GAAW0J,EAAU,KAChB,IAAIjJ,EAAI,EAAGA,EAAImJ,EAAUrJ,OAAQE,IAAK,IACnCgJ,QAAqCxH,IAA1BwH,EAAQG,EAAUnJ,WACtB,KACJ,GAAIgJ,EAAS,IAChBA,EAAUA,EAAQG,EAAUnJ,IAjCG,WAAjBqF,EAAV9E,EAoCWyI,KApC6BxE,EAAQjE,MAAAA,SAAAA,EAAO+F,aAA4C,WAA7BjB,EAAO9E,MAAAA,SAAAA,EAAO+F,kBAoCxC9E,IAArB2H,EAAUnJ,EAAI,GAAkB,KACjDqJ,EAAUF,EAAUjJ,MAAMF,EAAI,GAAG8H,KAAK,YAErCtE,EAAIwF,EAAQ1C,WAAY+C,MAIZ,mBAAZL,EAAwB,KACzBK,EAAUF,EAAUjJ,MAAMF,EAAI,GAAG8H,KAAK,YACrCc,EAAYI,EAASK,YAIjCL,KAGPE,SACON,EAAYvG,EAAQyG,IAqB7BQ,EAAM,SAACjH,EAAQyG,EAAMjI,OACnBmI,EAAU3G,EAER4G,EAAoB,aADN5G,GAGd9C,EAAUC,MAAMD,QAAQ8C,GAUxB8G,EAF4B,aADVL,IAEaA,EAAKlF,SAAS,KAClBkF,EAAKM,MAAM,KAAO,CAACN,GAC9CS,EAAaJ,EAAUrJ,UAEzBP,GAAW0J,EAAU,KAChB,IAAIjJ,EAAI,EAAGA,EAAIuJ,EAAa,EAAGvJ,IAC3BgJ,EAAQG,EAAUnJ,MACnBgJ,EAAQG,EAAUnJ,IAAM,IAE5BgJ,EAAUA,EAAQG,EAAUnJ,IAGhCgJ,EAAQG,EAAUI,EAAa,IAAM1I,SAGlCA,GCvGU2I,8BACLC,yDAAU,GAAIlI,yDAAO,oBACxBkI,QAAUA,OACVlI,KAAOA,kCAGhB,eAAOmI,yDAAS,KACNC,EAAUD,GAAU1H,KAAKT,SAE1BoI,SACM3H,QAGPA,MAAAA,WAAMyH,SAAmC,WAAxBpE,EAAOrD,KAAKyH,aACxB,IAAIG,KAAU5H,KAAKyH,QAAS,KACvBI,EAAK7H,KAAKyH,QAAQG,GAEN,mBAAPC,EAKXP,EAAIK,EAASC,EAAQC,EAAGtI,KAAKoI,IAJzBL,EAAIK,EAASC,EAAQC,UAQ1B7H,cCvBTgD,8BAMUsB,yDAAa,GAAIwD,yCAASC,yCAAUhE,yDAAU,kBACjDO,WAAaA,OACb0D,gBAAkB,QAClBC,QAAU,QACVC,WAAY,OACZC,UAAW,OACXC,cAAe,OACfC,aAAc,OACdN,SAAWA,OACXhE,QAAUA,OACVuE,QAAUvE,EAAQuE,SAAW,UAC7BC,WAAWT,uCASpB,SAAWA,qBACFA,QAAUA,OACVU,MAAQ,IAAIC,GAAMzI,KAAK+H,SAAUD,EAAS,CAC3CY,aAAc1I,KAAK2I,eAAepJ,KAAKS,MACvCyH,kBAASzH,KAAK+D,4BAAL6E,EAAcnB,UAGpBzH,qBAQX,kBACWA,KAAK6I,aAAa,4BAS7B,sBAAOvE,yDAAa,GACVK,EAAO3E,KAAK8I,gBAAgBxE,eAC7ByE,SAAS,CAAC,YAAa,aAErB/I,KAAKwI,MAAMQ,OAAOrE,GAAMsE,MAAK,SAACC,UAClCC,EAAKJ,SAAS,CAAC,YAAa,aAAa,GAElCG,2BAUd,sBAAO5E,yDAAa,eACXyE,SAAS,CAAC,YAAa,aAErB/I,KAAKwI,MAAMY,OAAOpJ,KAAKsE,WAAW+E,GAAI/E,GAAY2E,MAAK,SAACC,UAC5D9I,EAAK2I,SAAS,CAAC,YAAa,aAAa,GAElCG,4BASd,kCACSH,SAAS,CAAC,YAAa,iBAErB/I,KAAKwI,MAAMc,QAAQtJ,KAAKsE,WAAW+E,IAAIJ,MAAK,SAACC,UACjD5G,EAAKyG,SAAS,CAAC,YAAa,iBAAiB,GAEtCG,2BASd,kCACSH,SAAS,CAAC,YAAa,gBAErB/I,KAAKwI,MAAMe,WAAWvJ,KAAKsE,WAAW+E,IAAIJ,MAAK,SAACC,UACpDM,EAAKC,QAEEP,6BASd,mBAASQ,yDAAQ,GAAIC,6DACXC,EAAa,CAAC,YAAa,WAAY,cAAe,gBAEpD5L,EAAI,EAAGA,EAAI0L,EAAM5L,OAAQE,IAAK,KAC5B6L,EAAOH,EAAM1L,MAEC,iBAAT6L,IAAsBD,EAAWhI,SAASiI,SAC3C,IAAIC,gBAASD,iCAGlBA,GAAQF,SAGV3J,0BAQX,uBACSgI,gBAAkB,QAClBC,QAAU,QACVC,WAAY,OACZC,UAAW,OACXE,aAAc,EAEZrI,0BAQX,uBACSyJ,aACAM,UAAY,GAEV/J,yBAQX,eAAK+D,yDAAU,GACLO,EAAatE,KAAKgK,uBAEpBxH,EAAQxC,KAAKqJ,IACNrJ,KAAKgJ,OAAO1E,IAGG,IAAtBP,EAAQkG,UACDjK,KAAKkK,YAGTlK,KAAKoJ,OAAO9E,4BAQvB,mBACU6F,EAAqBjF,OAAOa,KAAK/F,KAAKgI,iBACtCA,EAAkB,GAEfhK,EAAI,EAAGA,EAAImM,EAAmBrM,OAAQE,IAAK,KAC1CY,EAAMuL,EAAmBnM,GAC/BgK,EAAgBpJ,GAAOoB,KAAK6I,aAAajK,UAGtCoB,KAAKoJ,OAAOpB,qBAQvB,kBACWhI,KAAK6I,aAAa,OAAQ,2BAQrC,kBACW7I,KAAKoK,kBAAkB,cAAgB,IAAIC,KAAKrK,KAAK6I,aAAa,eAAiB,4BAQ9F,kBACW7I,KAAKoK,kBAAkB,cAAgB,IAAIC,KAAKrK,KAAK6I,aAAa,eAAiB,2BAQ9F,kBACW7I,KAAKsK,cAAc,CAAC,aAAc,4BAQ7C,kBACsD,IAA3CpF,OAAOC,OAAOnF,MAAAA,YAAAA,KAAMsE,YAAYxG,0BAQ3C,kBACYkC,KAAKqJ,wBAQjB,kBACYrJ,KAAKuK,OAASvK,KAAKwK,gCAQ/B,kBACWxK,KAAKsK,cAAc,CAAC,UAAW,sCAQ1C,SAAcjL,sBACc,mBAAbA,GAIX6F,OAAOa,eAAK/F,MAAAA,YAAAA,KAAMsE,0BAAc,IAAI7D,SAAQ,SAACgK,OACnC5L,EAAQ6L,EAAK7B,aAAa4B,GAChCpL,EAASsL,KAAKD,EAAM7L,EAAO4L,MALpBzK,4BAgBf,kBACWA,KAAKiI,0CAQhB,kBACWjI,KAAKgI,uCAShB,SAAQyC,UACGA,KAAYzK,KAAKgI,kDAQ5B,wBACW9C,OAAOa,eAAK/F,MAAAA,YAAAA,KAAMgI,+BAAmB,IAAIlK,OAAS,wBAS7D,SAAO2M,EAAU5L,QACRyF,WAAWmG,GAAY5L,8BAShC,SAAa4L,SAAU5L,yDAAQ,QACb,OAAVA,GAAsC,WAApBwE,EAAOoH,UAClBzK,KAAK4K,cAAcH,OAGxBI,YAAgB7K,MAAAA,YAAAA,KAAMsE,WAAWmG,kBAAa,YAGpDnD,EAAItH,KAAKsE,WAAYmG,EAAU5L,GAC/ByI,EAAItH,KAAKgI,gBAAiByC,EAAUI,GAM/BtN,EAAQyC,MAAAA,YAAAA,KAAMiI,QAAQwC,WAClBxC,QAAQwC,GAAY,SAGxBxC,QAAQwC,GAAU/J,KAAK,CACxB+J,SAAAA,EACAI,cAAAA,EACAhM,MAAAA,EACAiM,UAAW,IAAIT,OAGZrK,kCAQX,eAAcsE,yDAAa,OAClB,IAAImG,KAAYnG,OACZyG,aAAaN,EAAUnG,EAAWmG,WAGpCzK,iCASX,SAAagL,SAAWC,yDAAe,KAC7BpM,EAAQ2C,YAAIxB,MAAAA,YAAAA,KAAMsE,0BAAc,GAAI0G,eAE5BxL,IAAVX,EACOoM,EAGJpM,8BASX,SAAa4L,MACLlN,EAAQkN,GAAW,OACbS,EAAaT,EACbU,EAAgBjG,OAAOa,eAAK/F,KAAKsE,0BAAc,WAE9C4G,EAAWxL,OAAM,SAAC0L,UAASD,EAAcvJ,SAASwJ,cAGxDpL,MAAAA,OAAAA,KAAMsE,aAIJmG,KAAYzK,KAAKsE,wCAS5B,eAAc4G,yDAAa,UAChBlL,KAAKqL,aAAaH,oCAS7B,SAAkBT,qBACVlN,EAAQkN,GACDzK,KAAKqL,aAAaZ,IAAaA,EAAS/K,OAAM,SAAC0L,UAAU5I,EAAQ8I,EAAKzC,aAAauC,OAGvFpL,KAAKqL,aAAaZ,KAAcjI,EAAQxC,KAAK6I,aAAa4B,iCASrE,SAAcS,OACJ5G,EAAa,MAEf4G,MAAAA,SACOlL,KAAKgK,cAAc9E,OAAOa,KAAK/F,KAAKsE,gBAGrB,iBAAf4G,SACAlL,KAAK6I,wCAAiB/J,gBAG5BvB,EAAQ2N,SACH,IAAIpB,MAAM,yCAGf,IAAI9L,EAAI,EAAGA,EAAIkN,EAAWpN,OAAQE,IAAK,SAClCyM,EAAWS,EAAWlN,MAEJ,iBAAbyM,OAIP5L,EAAQmB,KAAK6I,aAAa4B,GAEG,WAA7BpH,YAAOxE,sBAAA0M,EAAOjH,aAA4B/G,YAAQsB,sBAAA2M,EAAOlH,cACzDzF,EAAQA,EAAMyF,YAGlBA,EAAWmG,GAAY5L,UAGpByF,2BAQX,kBACWtE,KAAKgK,+CAShB,iBAAgB1F,yDAAa,GACnBmH,YAAkBzL,MAAAA,YAAAA,KAAMsE,0BAAc,eACvCA,kBAAkBmH,GAAoBnH,GAEpCtE,KAAKsE,yCAShB,eAAeqC,yDAAO,QACbrC,WAAaqC,WC5fpB+E,EAAe,IAAIlE,EAAa,CAClCmE,mBAAoB,SAAUtC,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC9C/D,KAAK8H,QAAQtG,cAAOxB,KAAK6L,sBAAaxC,wBAAwBuC,EAAQ7H,IAGjF+H,gBAAiB,SAAUzC,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC3C/D,KAAK8H,QAAQtG,cAAOxB,KAAK6L,sBAAaxC,oBAAoBuC,EAAQ7H,IAG7EgI,SAAU,SAAU1C,OAAIuC,yDAAS,GAAI7H,yDAAU,UACpC/D,KAAK8H,QAAQkE,eAAQhM,KAAK6L,sBAAaxC,eAAeuC,EAAQ7H,GAASkF,KAAKjJ,KAAKiM,WAAW1M,KAAKS,QAG5GrC,MAAO,SAAU0L,OAAIuC,yDAAS,GAAI7H,yDAAU,UACjC/D,KAAK8H,QAAQkE,eAAQhM,KAAK6L,sBAAaxC,YAAYuC,EAAQ7H,GAASkF,KAAKjJ,KAAKiM,WAAW1M,KAAKS,QAGzGkM,eAAgB,SAAU7C,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC1C/D,KAAK8H,QAAQkE,eAAQhM,KAAK6L,sBAAaxC,sBAAsBuC,EAAQ7H,GAASkF,KAAKjJ,KAAKiM,WAAW1M,KAAKS,QAGnHmM,eAAgB,SAAU9C,EAAI+C,OAAeR,yDAAS,GAAI7H,yDAAU,UAC5DjB,EAAWsJ,KACXA,EAAgBA,EAAc/C,IAG3BrJ,KAAK8H,QAAQkE,eAAQhM,KAAK6L,sBAAaxC,8BAAsB+C,GAAiBR,EAAQ7H,GAASkF,KAAKjJ,KAAKiM,WAAW1M,KAAKS,QAGpIqM,cAAe,SAAUhD,OAAIiD,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC9DjB,EAAWwJ,KACXA,EAAYA,EAAUjD,IAGnBrJ,KAAK8H,QAAQkE,eAAQhM,KAAK6L,sBAAaxC,wBAAiBiD,EAAiB,IAAMA,EAAX,IAAwBV,EAAQ7H,IAG/GwI,iBAAkB,SAAUlD,OAAIiD,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UACjEjB,EAAWwJ,KACXA,EAAYA,EAAUjD,IAGnBrJ,KAAK8H,QAAQkE,eAAQhM,KAAK6L,sBAAaxC,+BAAwBiD,EAAiB,IAAMA,EAAX,IAAwBV,EAAQ7H,IAGtHyI,SAAU,SAAUnD,OAAIuC,yDAAS,GAAI7H,yDAAU,UACpC/D,KAAK8H,QAAQkE,eAAQhM,KAAK6L,sBAAaxC,eAAeuC,EAAQ7H,GAASkF,KAAKjJ,KAAKiM,WAAW1M,KAAKS,QAG5GyM,OAAQ,SAAUpD,OAAIuC,yDAAS,GAAI7H,yDAAU,UAClC/D,KAAK8H,yBAAkB9H,KAAK6L,sBAAaxC,aAAauC,EAAQ7H,GAASkF,KAAKjJ,KAAKiM,WAAW1M,KAAKS,UAI1G0M,kBAAc1J,+BACJsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,WAAWL,QAASiE,GAAiB3H,gDAGpE,eAAmB6H,yDAAS,GAAI7H,yDAAU,UAC/B/D,KAAKwI,MAAMmD,mBAAmB3L,KAAKqJ,GAAIuC,EAAQ7H,2BAG1D,eAAS6H,yDAAS,GAAI7H,yDAAU,UACrB/D,KAAKwI,MAAMuD,SAAS/L,KAAKqJ,GAAIuC,EAAQ7H,wBAGhD,eAAM6H,yDAAS,GAAI7H,yDAAU,UAClB/D,KAAKwI,MAAM7K,MAAMqC,KAAKqJ,GAAIuC,EAAQ7H,iCAG7C,SAAeqI,OAAeR,yDAAS,GAAI7H,yDAAU,UAC1C/D,KAAKwI,MAAM2D,eAAenM,KAAKqJ,GAAI+C,EAAeR,EAAQ7H,gCAGrE,eAAcuI,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC5C/D,KAAKwI,MAAM6D,cAAcrM,KAAKqJ,GAAIiD,EAAWV,EAAQ7H,mCAGhE,eAAiBuI,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC/C/D,KAAKwI,MAAM+D,iBAAiBvM,KAAKqJ,GAAIiD,EAAWV,EAAQ7H,kCAGnE,eAAgB6H,yDAAS,GAAI7H,yDAAU,UAC5B/D,KAAKwI,MAAMsD,gBAAgB9L,KAAKqJ,GAAIuC,EAAQ7H,iCAGvD,eAAe6H,yDAAS,GAAI7H,yDAAU,UAC3B/D,KAAKwI,MAAM0D,eAAelM,KAAKqJ,GAAIuC,EAAQ7H,yBAGtD,eAAO6H,yDAAS,GAAI7H,yDAAU,UACnB/D,KAAKwI,MAAMiE,OAAOzM,KAAKqJ,GAAIuC,EAAQ7H,2BAG9C,eAAS6H,yDAAS,GAAI7H,yDAAU,UACrB/D,KAAKwI,MAAMgE,SAASxM,KAAKqJ,GAAIuC,EAAQ7H,6BAGhD,kBACkD,OAAvC/D,KAAK6I,aAAa,8CAG7B,kBACiD,MAAtC7I,KAAK6I,aAAa,wCAG7B,kBAC+C,OAApC7I,KAAK6I,aAAa,wCAG7B,kBAC8C,MAAnC7I,KAAK6I,aAAa,uCAG7B,iBAC0C,aAA/B7I,KAAK6I,aAAa,kCAG7B,iBAC0C,YAA/B7I,KAAK6I,aAAa,iCAG7B,iBAC0C,kBAA/B7I,KAAK6I,aAAa,WAAiE,YAAhC7I,KAAK6I,aAAa,oCAGhF,kBACW7I,KAAK2M,YAAc3M,KAAK4M,aAAe5M,KAAK6M,qCAGvD,kBACW7M,KAAKoK,kBAAkB,gBAAkB,IAAIC,KAAKrK,KAAK6I,aAAa,iBAAmB,4BAGlG,kBACW7I,KAAKoK,kBAAkB,cAAgB,IAAIC,KAAKrK,KAAK6I,aAAa,eAAiB,+BAG9F,kBACW7I,KAAKoK,kBAAkB,iBAAmB,IAAIC,KAAKrK,KAAK6I,aAAa,kBAAoB,yBAGpG,kBACW7I,KAAK6I,aAAa,mBCjJ3BiE,mBAAgB9J,+BACTsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACnCO,EAAYwD,EAAS,UAAW/D,mCAU1C,SAAOgJ,0BASP,iCASA,gCASA,mCASA,kBACW,IAAIvO,EAAWwB,KAAKgN,oBClD7BC,mBAAejK,+BACLsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,SAAU/D,eCDvCmJ,mBAAclK,+BACJsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,QAAS/D,qEA+B7B/D,KAAK6I,aAAa,WAAY,IAAIzC,uBAAlC+G,EAA4CnI,YAAY,0BAQnE,kCACWhF,KAAK6I,aAAa,WAAY,IAAIzC,uBAAlCgH,EAA4CpI,YAAY,4BAQnE,iBAGY,CAFwBhF,KAAxBqG,SAAwBrG,KAAdsG,mCAWtB,SAAS+G,UACDvK,EAAWuK,SACNtC,aAAa,QAASsC,EAAMhE,IAGhB,iBAAVgE,QACFtC,aAAa,QAASsC,GAGxBrN,wCAlEX,SAAyBsN,EAAexF,OAAS/D,yDAAU,KACvBuJ,EAAczE,aAAa,wBAAnDxC,OAAUC,OACZhC,EAAa,CACfb,KAAM,KACNoC,QAASyH,EAAczE,aAAa,WACpC5D,SAAU,IAAImB,EAAMC,EAAUC,GAC9BiH,QAASD,EAAczE,aAAa,cACpC2E,QAAS,KACTpI,KAAMkI,EAAczE,aAAa,QACjC4E,SAAUH,EAAczE,aAAa,aACrC6E,YAAaJ,EAAczE,aAAa,cACxC8E,aAAcL,EAAc9L,IAAI,gBAChCoM,SAAUN,EAAczE,aAAa,UACrCgF,SAAUP,EAAc9L,IAAI,YAC5BkE,QAAS4H,EAAczE,aAAa,gBACpC3F,MAAO,KACP4K,qBAAsB,aAGnB,IAAIZ,EAAM5I,EAAYwD,EAAS/D,YCzBxCgK,mBAAiBb,gCACP5I,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,WAAY/D,eCFzCiK,mBAAuBhL,+BACbsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,kBAAmB/D,eCFhDkK,mBAAgBjL,+BACNsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,UAAW/D,eCDxCmK,GAAgB,IAAI1G,EAAa,CAEnC2G,MAAO,SAAUC,OAAUC,yDAAW,KAAM/J,yDAAa,MAEjDrB,EAAQmL,UACDpO,KAAK8H,QAAQkE,KAAK,yBAA0B,CAAE9I,MAAOkL,QAG3DC,QACK,IAAIvE,MAAM,mCAGb9J,KAAK8H,QAAQkE,KAAK,mBAAmBoC,SAAAA,EAAUC,SAAAA,GAAa/J,IAAc2E,KAAKjJ,KAAKiM,WAAW1M,KAAKS,QAG/GsO,WAAY,SAAUF,EAAUG,OAAMjK,yDAAa,UACxCtE,KAAK8H,QAAQkE,KAAK,yBAAyBoC,SAAAA,EAAUG,KAAAA,GAASjK,IAAc2E,KAAKjJ,KAAKiM,WAAW1M,KAAKS,QAGjHwO,MAAO,SAAUnF,OAAIuC,yDAAS,GAAI7H,yDAAU,UACjC/D,KAAK8H,QAAQkE,uBAAgB3C,YAAYuC,EAAQ7H,GAASkF,KAAKjJ,KAAKiM,WAAW1M,KAAKS,QAG/FyO,SAAU,SAAUpF,UACTrJ,KAAKuJ,WAAWF,IAG3BqF,oBAAWrF,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC3B/D,KAAK8H,QAAQkE,uBAAgB3C,sBAAsBuC,EAAQ7H,MAIpE4K,mBAAe3L,+BACLsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,YAAYL,QAASyG,IAAkBnK,iCAwCtE,kBACW/D,KAAK6I,aAAa,+BAG7B,kBAC2C,IAAhC7I,KAAK6I,aAAa,kEA5BlB7I,KAAK6I,aAAa,WAAY,IAAIzC,2BAAlC+G,EAA4CnI,YAAY,0BAQnE,kCACWhF,KAAK6I,aAAa,WAAY,IAAIzC,2BAAlCgH,EAA4CpI,YAAY,4BAQnE,iBAGW,CAFyBhF,KAAxBqG,SAAwBrG,KAAdsG,gCAatB,eAAMsF,yDAAS,GAAI7H,yDAAU,UAClB/D,KAAKwI,MAAMgG,MAAMxO,KAAKqJ,GAAIuC,EAAQ7H,6BAG7C,eAAW6H,yDAAS,GAAI7H,yDAAU,UACvB/D,KAAKwI,MAAMkG,WAAW1O,KAAKqJ,GAAIuC,EAAQ7H,YCxFhD6K,mBAAe5L,+BACLsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,SAAU/D,eCFvC8K,mBAAgB7L,+BACNsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,UAAW/D,eCFxC+K,mBAAa9L,+BACHsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,OAAQ/D,eCFrCgL,mBAAoB/L,+BACVsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,eAAgB/D,eCF7CiL,mBAAoBhM,+BACVsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,eAAgB/D,eCF7CkL,mBAAqBjM,+BACXsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,gBAAiB/D,4CAGhD,uCAIA,qBCXEmL,GAMF,iBAAYC,yDAAS,kBACZ7G,QAAU6G,EAAO7G,SAAW,UAC5B8G,KAAOD,EAAOC,MAAQ,UACtBvD,UAAYsD,EAAOtD,WAAa,UAChCwD,QAAUF,EAAOE,SAAW,ICPnCC,mBAAuBJ,0BAKbC,yCACFA,IAEDI,WAAW,CACZC,+BAAyBL,EAAOM,0BAChB,gCACF,iEAStB,eAAWJ,yDAAU,eACZA,eAAerP,KAAKqP,SAAYA,GAE9BrP,8BAWX,SAAUkJ,UACC,IAAIwG,SAAQ,SAACC,EAASC,UAAW1G,EACnCvC,OACAsC,MAAK,SAACtC,UAASgJ,EAAQ,CACpBE,WAAY3G,EAAS2G,WACrBC,OAAQ5G,EAAS4G,OACjBC,GAAI7G,EAAS6G,GACbpJ,KAAAA,cAEG,WACHiJ,EAAO,IAAI9F,MAAM,wFAc7B,SAAQhD,cAAMkJ,yDAAS,MAAOrL,yDAAO,GAAIZ,yDAAU,UACxC,IAAI2L,SAAQ,SAACC,EAASC,UAAWK,MAAMlM,EAAQmM,eAAU9P,EAAKgP,iBAAQhP,EAAKyL,sBAAa/E,MAC3FkJ,OAAAA,EACAG,KAAMpM,EAAQoM,MAAQ,OACtBd,QAAS,IAAIe,eACLhQ,EAAKiP,SAAW,IAChBtL,EAAQsL,SAAW,MAExB1K,IAEFsE,KAAK7I,EAAKiQ,WACVpH,MAAK,SAACC,UACCA,EAAS6G,GACFJ,EAAQzG,EAASvC,MAGrBiJ,EAAO,IAAI9F,MAAMZ,EAASvC,KAAK2J,OAASpH,EAASvC,KAAK2J,OAAO,GAAKpH,EAAS2G,uBAE/E,SAACU,GACJX,EAAOW,4BAanB,SAAIzJ,OAAM0J,yDAAQ,GAAIzM,yDAAU,GACtB0M,EAAa7N,EAAQ4N,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,kBAExD3Q,KAAK4Q,kBAAW9J,UAAO2J,aAAgBA,GAAc,IAAM,MAAO,GAAI1M,uBAYjF,SAAK+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACrB/D,KAAK4Q,QAAQ9J,EAAM,OAAQ,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,sBAYtE,SAAI+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACpB/D,KAAK4Q,QAAQ9J,EAAM,MAAO,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,yBAYrE,SAAO+C,OAAM/C,yDAAU,UACZ/D,KAAK4Q,QAAQ9J,EAAM,SAAU,GAAI/C,wBAW5C,SAAM+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACtB/D,KAAK4Q,QAAQ9J,EAAM,QAAS,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,YC9IrEiN,mBAAoB9B,0BACVC,yCACFA,IAED8B,MAAQA,UAAMjI,OAAO,CACtBkI,kBAAY/H,EAAKiG,iBAAQjG,EAAK0C,WAC9BwD,QAAS,CACLG,+BAAyBL,EAAOM,0BAChB,gCACF,+DAU1B,eAAWJ,yDAAU,GACX8B,EAAgBnR,KAAKiR,MAAMG,SAAS/B,QAAQgC,mBAC7CJ,MAAMG,SAAS/B,QAAQgC,cAAcF,GAAkB9B,GAErDrP,8BASX,SAAUkJ,UACCA,EAASvE,gCASpB,SAAY4L,MACJA,EAAMrH,SAAU,KACRvE,EAAS4L,EAAMrH,SAAfvE,QAEJpH,EAAQoH,EAAK2L,cACP,IAAIxG,MAAMnF,EAAK2L,OAAO,OAG5B3L,EAAK4L,YACC,IAAIzG,MAAMnF,EAAK4L,aAIvBA,qBAYV,SAAIzJ,OAAM0J,yDAAQ,GAAIzM,yDAAU,GACtB0M,EAAa7N,EAAQ4N,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,kBAExD3Q,KAAKiR,MACPzP,cAAOsF,UAAO2J,aAAgBA,GAAc,IAAM1M,GAClDkF,KAAKjJ,KAAKsR,UAAU/R,KAAKS,aACnBA,KAAKuR,YAAYhS,KAAKS,2BAYrC,SAAK8G,OAAMnC,yDAAO,GAAIZ,yDAAU,UACrB/D,KAAKiR,MAAMjF,KAAKlF,EAAMnC,EAAMZ,GAASkF,KAAKjJ,KAAKsR,UAAU/R,KAAKS,aAAaA,KAAKuR,YAAYhS,KAAKS,0BAY5G,SAAI8G,OAAMnC,yDAAO,GAAIZ,yDAAU,UACpB/D,KAAKiR,MAAMO,IAAI1K,EAAMnC,EAAMZ,GAASkF,KAAKjJ,KAAKsR,UAAU/R,KAAKS,aAAaA,KAAKuR,YAAYhS,KAAKS,6BAY3G,SAAO8G,OAAM/C,yDAAU,UACZ/D,KAAKiR,aAAanK,EAAM/C,GAASkF,KAAKjJ,KAAKsR,UAAU/R,KAAKS,aAAaA,KAAKuR,YAAYhS,KAAKS,4BAWxG,SAAM8G,OAAMnC,yDAAO,GAAIZ,yDAAU,UACtB/D,KAAKiR,MAAMQ,MAAM3K,EAAMnC,EAAMZ,GAASkF,KAAKjJ,KAAKsR,UAAU/R,KAAKS,aAAaA,KAAKuR,YAAYhS,KAAKS,gBC/H3G0R,mBAAuBxC,iFCoBRyC,yBACLC,OAAQC,iGAKD,CAAC,YAAa,cAAe,OAAQ,QAAS,UAAW,SAAU,OAAQ,QAAS,QAAS,OAAQ,8BAE1G,CACV,CAAC,IAAIC,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,WAAY,MAAO,SAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,eAAgB,MAAO,QACnC,CAAC,IAAIA,OAAO,iBAAkB,MAAO,OACrC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,SAAU,MAAO,SAC7B,CAAC,IAAIA,OAAO,yBAA0B,MAAO,SAC7C,CAAC,IAAIA,OAAO,YAAa,MAAO,OAChC,CAAC,IAAIA,OAAO,OAAQ,MAAO,OAC3B,CAAC,IAAIA,OAAO,wBAAyB,MAAO,WAC5C,CAAC,IAAIA,OAAO,UAAW,MAAO,OAC9B,CAAC,IAAIA,OAAO,mBAAoB,MAAO,SACvC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,wBAAyB,MAAO,UAC5C,CAAC,IAAIA,OAAO,eAAgB,MAAO,SACnC,CAAC,IAAIA,OAAO,UAAW,MAAO,SAC9B,CAAC,IAAIA,OAAO,KAAM,MAAO,KACzB,CAAC,IAAIA,OAAO,IAAK,MAAO,8BAGZ,CACZ,CAAC,IAAIA,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,cAAe,MAAO,MAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,QAC/B,CAAC,IAAIA,OAAO,gEAAiE,MAAO,WACpF,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,YAAa,MAAO,MAChC,CAAC,IAAIA,OAAO,aAAc,MAAO,OACjC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,qBAAsB,MAAO,OACzC,CAAC,IAAIA,OAAO,YAAa,MAAO,WAChC,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,MACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,UAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,MAC7B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,oBAAqB,MAAO,QACxC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,oBAAqB,MAAO,MACxC,CAAC,IAAIA,OAAO,UAAW,MAAO,MAC9B,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,aAAc,MAAO,MACjC,CAAC,IAAIA,OAAO,KAAM,MAAO,kCAGR,CAAC,MAAO,KAAM,MAAO,IAAK,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,OAAQ,OAAQ,KAAM,OAAQ,MAAO,MAAO,KAAM,OAAQ,OAAQ,0BAExJ,IAAIA,OAAO,cAAe,wBAC1B,IAAIA,OAAO,IAAK,+BACT,IAAIA,OAAO,OAAQ,yBACzB,IAAIA,OAAO,UAAW,8BACjB,IAAIA,OAAO,YAhEnBC,IAAMH,OACNC,MAAQA,+BAiEjB,kBACW7R,KAAK+R,8BAGhB,SAAWA,EAAKC,EAAOC,EAAMC,MACrBA,EACAH,EAAMG,YAEOD,EAAKrS,QAAQmS,EAAII,gBAAkB,OAEvC,IAAIC,EAAI,EAAGA,EAAIJ,EAAMlU,OAAQsU,OAC1BL,EAAIM,MAAML,EAAMI,GAAG,IAAK,CACxBL,EAAMA,EAAItU,QAAQuU,EAAMI,GAAG,GAAIJ,EAAMI,GAAG,sBAQnDL,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,2BASX,SAAUA,OAAKO,yDAAS,YACpBP,EAAMA,GAAO/R,KAAK+R,IAEX/R,KAAKuS,WAAWR,EAAK/R,KAAKwS,YAAaxS,KAAKyS,iBAAkBH,8BASzE,SAAYP,EAAKW,UACbX,EAAMA,GAAO/R,KAAK+R,IAEX/R,KAAKuS,WAAWR,EAAK/R,KAAK2S,cAAe3S,KAAKyS,iBAAkBC,2BAO3E,SAASX,EAAKa,WAGNC,GAFJd,EAAMA,GAAO/R,KAAK+R,KAEC3K,MAAM,KAChBpJ,EAAI,EAAGA,EAAI6U,EAAS/U,OAAQE,IAAK,SAClC8U,EAAUD,EAAS7U,GAAGoJ,MAAM,KAGvBgL,EAFGQ,GAAkB5U,EAAI,IAAM6U,EAAS/U,OAAS,EAAI,EAE1CsU,EAAIU,EAAQhV,OAAQsU,IACpCU,EAAQV,GAAKU,EAAQV,GAAGW,OAAO,GAAGC,cAAgBF,EAAQV,GAAGa,UAAU,GAE3EJ,EAAS7U,GAAK8U,EAAQhN,KAAK,OAE/BiM,EAAMc,EAAS/M,KAAK,OAGG,IAAnB8M,EAAyB,KACrBM,EAAQnB,EAAIgB,OAAO,GAAGZ,cACtBgB,EAAOpB,EAAI7T,MAAM,GACrB6T,EAAMmB,EAAQC,cAIbpB,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,4BAOX,SAAWA,WAGHc,GAFJd,EAAMA,GAAO/R,KAAK+R,KAEC3K,MAAM,MAChBpJ,EAAI,EAAGA,EAAI6U,EAAS/U,OAAQE,IACjC6U,EAAS7U,GAAK6U,EAAS7U,GAAGP,QAAQuC,KAAKoT,UAAW,OAClDP,EAAS7U,GAAK6U,EAAS7U,GAAGP,QAAQuC,KAAKqT,eAAgB,WAE3DtB,EAAMc,EAAS/M,KAAK,KAAKqM,mBAGpBJ,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,0BAOX,SAASA,EAAKa,UAKVb,GADAA,GADIA,GAFJA,EAAMA,GAAO/R,KAAK+R,KAEJI,eACJ1U,QAAQuC,KAAKsT,SAAU,KACvB7V,QAAQuC,KAAKuT,SAAU,KAC5BX,IACDb,EAAM/R,KAAKwT,WAAWzB,SAIrBA,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,4BAOX,SAAWA,UAIPA,GADAA,GAFAA,EAAMA,GAAO/R,KAAK+R,KAERI,eACAc,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,QAGnDlB,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,2BAOX,SAAUA,UAINA,GADAA,GAFAA,EAAMA,GAAO/R,KAAK+R,KAERtU,QAAQuC,KAAKyT,gBAAiB,MAC9BtB,mBAGLJ,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,yBAQX,SAAQA,EAAK2B,GACT3B,EAAMA,GAAO/R,KAAK+R,KAGI,IAAlB2B,GACA3B,EAAM/R,KAAK2T,SAAS5B,GACpBA,EAAM/R,KAAK4T,WAAW7B,IAEtBA,EAAMA,EAAII,sBAIVW,GADJf,EAAMA,EAAItU,QAAQuC,KAAKuT,SAAU,MACfnM,MAAM,KACfgL,EAAI,EAAGA,EAAIU,EAAQhV,OAAQsU,IAAK,SACjCyB,EAAIf,EAAQV,GAAGhL,MAAM,KAChBpJ,EAAI,EAAGA,EAAI6V,EAAE/V,OAAQE,IACtBgC,KAAK8T,mBAAmBlU,QAAQiU,EAAE7V,GAAGmU,eAAiB,IACtD0B,EAAE7V,GAAKgC,KAAKwT,WAAWK,EAAE7V,KAGjC8U,EAAQV,GAAKyB,EAAE/N,KAAK,YAGxBiM,GADAA,EAAMe,EAAQhN,KAAK,MACTmN,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,QAGnDlB,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,4BAMX,SAAWA,OAGHe,GAFJf,EAAMA,GAAO/R,KAAK+R,KAEA3K,MAAM,aACxB2K,EAAMe,EAAQA,EAAQhV,OAAS,QAG1BiU,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,0BAMX,SAASA,UACLA,EAAMA,GAAO/R,KAAK+R,IAElBA,EAAM/R,KAAK+T,UAAU/T,KAAK4T,WAAW7B,SAGhCA,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,0BAMX,SAASA,UACLA,EAAMA,GAAO/R,KAAK+R,IAElBA,EAAM/R,KAAKgU,YAAYhU,KAAK2T,SAAS5B,SAGhCA,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,4BAOX,SAAWA,OAAKkC,iEACZlC,EAAMA,GAAO/R,KAAK+R,IAElBA,EAAM/R,KAAK4T,WAAW5T,KAAKkU,WAAWnC,KAASkC,EAAa,GAAK,KAAO,UAGnElC,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,4BAMX,SAAWA,WAGHe,GAFJf,EAAMA,GAAO/R,KAAK+R,KAEA3K,MAAM,KACfgL,EAAI,EAAGA,EAAIU,EAAQhV,OAAQsU,IAAK,IAE3B+B,MADFC,SAAStB,EAAQV,IACV,KACPiC,EAAMvB,EAAQV,GAAGa,UAAUH,EAAQV,GAAGtU,OAAS,GAC/CwW,EAAKxB,EAAQV,GAAGa,UAAUH,EAAQV,GAAGtU,OAAS,GAC9CyW,EAAM,KACC,MAAPF,GAAsB,MAAPA,GAAsB,MAAPA,IACnB,MAAPC,EACAC,EAAM,KACQ,MAAPD,EACPC,EAAM,KACQ,MAAPD,IACPC,EAAM,OAGdzB,EAAQV,IAAMmC,UAGtBxC,EAAMe,EAAQhN,KAAK,UAGdiM,IAAMA,GAEQ,IAAf/R,KAAK6R,MACE7R,KAIJ+R,0BAMX,eACUyC,EAAOtP,OAAOC,OAAOrG,WACrB2V,EAAW,IAAI9C,EAAO,MAAM,GAC5B3B,EAASlR,UAAU,UACzB0V,EAAKE,QAE2B,mBAArBD,EAASzE,GACTyE,EAASzE,SAATyE,IAAoBD,IAGxB,cAITT,GAAY,eACRS,GAAQ,+CAAgB1V,mBAEvB6S,GAAOgD,aAAPhD,KAAiB6C,KAGtBR,GAAc,eACVQ,GAAQ,iDAAkB1V,mBAEzB6S,GAAOgD,aAAPhD,KAAiB6C,KAmDtBI,GAAW,eACPJ,GAAQ,8CAAe1V,mBAEtB6S,GAAOgD,aAAPhD,KAAiB6C,KC1ftBK,GAAY,CACdhG,QAAAA,GACAF,OAAAA,GACA1B,OAAAA,GACAP,MAAAA,EACAI,QAAAA,GACAI,MAAAA,GACAc,eAAAA,GACAC,QAAAA,GACAW,OAAAA,GACAb,SAAAA,GACAe,KAAAA,GACAC,YAAAA,GACAC,YAAAA,GACAC,aAAAA,IAGE6F,GAAW,CACbxF,eAAAA,GACA0B,YAAAA,GACAU,eAAAA,IAGEqD,iDAEOF,UAAYA,QACZC,SAAWA,GAET9U,KAAKgE,kBAAUlF,2CAG1B,SAAO+F,EAAMmQ,OACHpW,EAAMmV,GAAUlP,GAChB+G,EAASpO,2BAAIsB,WAAWZ,MAAM,OAE/B8B,KAAKpB,SACA,IAAIkL,MAAM,yCAGf9J,KAAKpB,GAAKoW,SACL,IAAIlL,mBAAYkK,GAAYnP,qBAAemQ,2BAG1ChV,KAAKpB,GAAKoW,KAAcpJ,aAIrC5H,GAAS,oBACA+Q,8BAAYjW,aC9CrBmW,GAAqB,SAACzM,OAAOf,yDAAU,MACzCe,EAAMf,QAAUlK,EAAQkK,GAAWA,EAAU,CAACA,IAE1ClK,EAAQkK,UASRA,aAAmBD,GACnBC,EAAQyN,OAAO1M,GAGZA,MAZE,IAAIxK,EAAI,EAAGA,EAAIyJ,EAAQ3J,OAAQE,IAAK,KAC/B4J,EAASH,EAAQzJ,GAEvBwK,EAAM2M,cAAcvN,KA+B1Ba,yBACUV,EAAUD,OAAS/D,yDAAU,kBAChCgE,SAAWA,OACXD,QAAUA,GAAWhE,SACrB+H,UAAYkI,GAAUhM,QACtBqN,QAAU,IAAI5W,OACduF,QAAUA,OACVoR,cAAcpR,EAAQ0D,gDAG/B,eAAcA,yDAAU,UACbwN,GAAmBjV,KAAMyH,0BAGpC,SAAQ4N,UAGGA,2BAGX,SAAU1O,UACC3C,GAAO,WAAY4Q,GAAS5U,KAAK+H,UAAWpB,EAAM3G,KAAK8H,mCAGlE,SAAWnB,UA3CI,SAAC6B,EAAO7B,MACmB,mBAA/B6B,EAAMzE,QAAQ2E,cACrBF,EAAMzE,QAAQ2E,aAAa/B,GAG3BpJ,EAAQoJ,GAAO,SACT2O,EAAa,GAEVtX,EAAI,EAAGA,EAAI2I,EAAK7I,OAAQE,IAC7BsX,EAAW5U,KAAK8H,EAAMyD,WAAWtF,EAAK3I,cAG/BQ,EAAc8W,OAGvBD,EAAmB7M,EAAM9B,UAAUC,UAClC6B,EAAM+M,QAAQF,GA4BVpJ,CAAWjM,KAAM2G,yBAG5B,sBAAOrC,yDAAa,GAAIP,yDAAU,UACvB,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRzG,EAAKrB,QAAQkE,eAAQ7C,EAAK0C,WAAavH,EAAYP,GAASkF,KAAKE,EAAK8C,WAAW1M,KAAK4J,UAAayG,UAApH1G,SAENyG,EAAQzG,6HAIhB,SAAOG,cAAI/E,yDAAa,GAAIP,yDAAU,UAC3B,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRxP,EAAK0H,QAAQ0J,cAAOpR,EAAKyL,sBAAaxC,GAAM/E,EAAYP,GAASkF,KAAK7I,EAAK6L,WAAW1M,KAAKa,UAAawP,UAAzH1G,SAENyG,EAAQzG,iIAIhB,SAAWG,cAAItF,yDAAU,UACd,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRtN,EAAKwF,QAAQtG,cAAOc,EAAKuJ,sBAAaxC,GAAM,GAAItF,GAASkF,KAAK3G,EAAK2J,WAAW1M,KAAK+C,UAAasN,UAAjH1G,SAENyG,EAAQzG,8HAIhB,sBAAQnF,yDAAU,UACP,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRpG,EAAK1B,QAAQtG,cAAOgI,EAAKqC,WAAa,GAAI9H,GAASkF,KAAKO,EAAKyC,WAAW1M,KAAKiK,UAAaoG,UAA3G1G,SAENyG,EAAQzG,4HAIhB,sBAAMsH,yDAAQ,GAAIzM,yDAAU,UACjB,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRlF,EAAK5C,QAAQtG,cAAOkJ,EAAKmB,WAAa2E,EAAOzM,GAASkF,KAAKyB,EAAKuB,WAAW1M,KAAKmL,UAAakF,UAA9G1G,SAENyG,EAAQzG,kIAIhB,sBAAYsH,yDAAQ,GAAIzM,yDAAU,UAC9ByM,EAAMgF,QAAS,EAER,IAAI9F,oDAAQ,WAAOC,EAASC,yGACRtE,EAAKxD,QAAQtG,cAAO8J,EAAKO,WAAa2E,EAAOzM,GAASkF,KAAKqC,EAAKW,WAAW1M,KAAK+L,UAAasE,UAA9G1G,SAENyG,EAAQzG,8HAIhB,SAAQnG,cAAQgB,yDAAU,GAChBsF,EAAKvG,EAAWC,GAAUA,EAAO8F,aAAa,MAAQ9F,SAErD,IAAI2M,oDAAQ,WAAOC,EAASC,yGACR6F,EAAK3N,yBAAkB2N,EAAK5J,sBAAaxC,GAAM,GAAItF,GAASkF,KAAKwM,EAAKxJ,WAAW1M,KAAKkW,UAAa7F,UAApH1G,SAENyG,EAAQzG,gHChGCwM,yBASLjG,aAAWN,yDAAS,GAAIwG,4EAC3BrN,kBAAU6G,EAAO7G,uBAAW,UAC5BvE,QAAU,CACXuE,QAAStI,KAAKsI,QACd8G,eAAMD,EAAOC,oBAAQ,2BACrBvD,oBAAWsD,EAAOtD,yBAAa7L,KAAKsI,QACpCqN,MAAAA,EACAlG,UAAAA,GAGqB,iBAAdA,GAA+C,IAArBA,EAAU3R,aACrC,IAAIgM,MAAM,oDAGf3G,KAAuBsM,EAAU0C,cAAcyD,WAAW,WACrD,IAAI9L,MAAM,sFAGfhC,QAAUqH,EAAOrH,SAAWhE,EAAc9D,KAAK+D,cAE/C8R,OAAS,IAAIpN,GAAM,QAASzI,KAAK8H,SAASqN,cAAczJ,QACxDoK,SAAW,IAAIrN,GAAM,SAAUzI,KAAK8H,cACpCiO,OAAS,IAAItN,GAAM,QAASzI,KAAK8H,cACjCkO,QAAU,IAAIvN,GAAM,SAAUzI,KAAK8H,SAASqN,cAAcjH,SAC1D+H,SAAW,IAAIxN,GAAM,UAAWzI,KAAK8H,cACrCoO,QAAU,IAAIzN,GAAM,SAAUzI,KAAK8H,cACnCqO,SAAW,IAAI1N,GAAM,UAAWzI,KAAK8H,6CAO9C,SAAWA,QACFA,QAAUA,4BAGnB,kBACW9H,KAAK8H,qCAThB,oBACe4N,6BAAa5W,ghBHgZf,eACP0V,GAAQ,8CAAe1V,mBAEtB6S,GAAOgD,aAAPhD,KAAiB6C,2CASV,eACRA,GAAQ,+CAAgB1V,mBAEvB6S,GAAOgD,aAAPhD,KAAiB6C,yEIteb,SAAoB4B,UACxBC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,wBCD5C,SAAqBA,UACzBC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,KAAOE,KAAKC,IAAIH,IAAe"} \ No newline at end of file diff --git a/dist/esm/fleetbase.js b/dist/esm/fleetbase.js deleted file mode 100644 index 76a13ca..0000000 --- a/dist/esm/fleetbase.js +++ /dev/null @@ -1,2 +0,0 @@ -import t from"axios";import"date-fns";function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function n(t){for(var n=1;nt.length)&&(e=t.length);for(var n=0,i=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(A(t))if(i.length<=6e4)t.splice.apply(t,[e,n].concat(k(i)));else{t.splice(e,n);for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:0,i=t.length,r=n;r2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3?arguments[3]:void 0,r=t.length;n<0&&(n+=r);var o=i&&e!=e?function(t){return t!=t}:function(t){return t===e};return S(t,o,n)},D=function(t,e,n){return $(t,e,0,[n]),n},C=function(t){h(n,g(Array));var e=y(n);function n(){for(var t=arguments.length,i=new Array(t),r=0;r0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return j(this,0)}},{key:"last",get:function(){return j(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return $(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return j(e,t)}))}},{key:"objectAt",value:function(t){return j(this,t)}},{key:"indexOf",value:function(t,e){return z(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var i=e;i>=0;i--)if(j(this,i)===t)return i;return-1}},{key:"includes",value:function(t,e){return-1!==z(this,t,e,!0)}},{key:"findBy",value:function(){return _(this,O.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return S(this,O.apply(void 0,arguments))}},{key:"isEvery",value:function(){return F(this,O.apply(void 0,arguments))}},{key:"isAny",value:function(){return P(this,O.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:R,n=[],i=new Set,r="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=r(t);i.has(e)||(i.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return D(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return $(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=j(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=j(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return D(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){j(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),L=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=i(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var o=t.length;if("number"==typeof o)return!o}return!1},N=function(t){return L(t)||"string"==typeof t&&!1===/\S/.test(t)};function T(t){return isFinite(t)&&Math.abs(t)<=90}function q(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function B(t){return t instanceof Z}var U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},I=function(){var t,e,n,r,o;return!("undefined"==typeof process||"object"!==i(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(r=window)||void 0===r||null===(o=r.navigator)||void 0===o?void 0:o.product))},J=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return I()?jt("adapter","NodeAdapter",t):jt("adapter","BrowserAdapter",t)},W=Array.isArray,K=function(){function t(e){s(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return u(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=n(n({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),M=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;s(this,t),this.type="Point",this.coordinates=[n,e]}return u(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=b(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}();"undefined"==typeof arguments||arguments;var H=function(t,e){var n=t();return Array.isArray(n)||"object"===i(n)?G(n,e):null},G=function t(e,n){var r,o=e,s=i(e),a="object"===s,u="function"===s,c=Array.isArray(e),h="string"===i(n)&&n.includes(".")?n.split("."):[n];if(c||a){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;s(this,t),this.actions=e,this.bind=n}return u(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===i(this.actions))for(var n in this.actions){var r=this.actions[n];"function"==typeof r?Q(e,n,r.bind(e)):Q(e,n,r)}return this}}]),t}(),Z=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};s(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=i,this.options=r,this.version=r.version||"v1",this.setAdapter(n)}return u(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new St(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return L(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===i(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Q(this.attributes,t,n),Q(this.dirtyAttributes,t,r),A(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=G(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===i?n:i}},{key:"hasAttribute",value:function(t){if(A(t)){var e,n=t,i=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return i.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return A(t)?this.hasAttribute(t)&&t.every((function(t){return!L(e.getAttribute(t))})):this.hasAttribute(t)&&!L(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!A(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},i=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=n(n({},i),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Y=new V({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,i).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,i)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,i)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),X=function(t){h(i,Z);var e=y(i);function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,i),e.call(this,t,r,"order",n({actions:Y},o))}return u(i,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),i}(),tt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"payload",r)}return u(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new C(this.waypoints)}}]),n}(),et=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"entity",r)}return n}(),nt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"place",r)}return u(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return B(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.getAttribute("coordinates"),o=b(r,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new M(s,a),street1:t.getAttribute("streetName"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,i)}}]),n}(),it=function(t){h(n,nt);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"waypoint",r)}return n}(),rt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"tracking-status",r)}return n}(),ot=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"vehicle",r)}return n}(),st=new V({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(U(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",n({identity:t,password:e},i)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",n({identity:t,code:e},i)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),at=function(t){h(i,Z);var e=y(i);function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,i),e.call(this,t,r,"driver",n({actions:st},o))}return u(i,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),i}(),ut=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"vendor",r)}return n}(),ct=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"contact",r)}return n}(),ht=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"zone",r)}return n}(),lt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-area",r)}return n}(),vt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-rate",r)}return n}(),dt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-quote",r)}return u(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),ft=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},gt=function(t){h(i,ft);var e=y(i);function i(t){var n;return s(this,i),(n=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return u(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=n(n({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),n({method:i,mode:o.mode||"cors",headers:new Headers(n(n({},e.headers||{}),o.headers||{}))},r)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=N(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),i}(),pt=function(e){h(r,ft);var i=y(r);function r(e){var n;return s(this,r),(n=i.call(this,e)).axios=t.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n}return u(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=n(n({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(A(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=N(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(i?"?".concat(i):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),r}(),yt=function(t){h(n,ft);var e=y(n);function n(){return s(this,n),e.apply(this,arguments)}return n}(),bt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];s(this,t),c(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),c(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),c(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),c(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),c(this,"idSuffix",new RegExp("(_ids|_id)$","g")),c(this,"underbar",new RegExp("_","g")),c(this,"spaceOrUnderbar",new RegExp("[ _]","g")),c(this,"uppercase",new RegExp("([A-Z])","g")),c(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return u(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,i){if(i)t=i;else if(!(n.indexOf(t.toLowerCase())>-1))for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),i=0;i1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=A(e)?e:[e],!A(e))return e instanceof V&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};s(this,t),this.resource=e,this.adapter=n||J(),this.namespace=kt(e),this.storage=new C,this.options=i,this.extendActions(i.actions)}return u(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Ot(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return jt("resource",xt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),A(e)){for(var n=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var r=o(regeneratorRuntime.mark((function r(o,s){var a;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:a=r.sent,o(a);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=o(regeneratorRuntime.mark((function n(i,r){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(r);case 2:o=n.sent,i(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=B(t)?t.getAttribute("id"):t;return new Promise(function(){var t=o(regeneratorRuntime.mark((function t(r,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,r(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),_t=function(){function t(e){var n,i,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(i=o.host)&&void 0!==i?i:"https://api.fleetbase.io",namespace:null!==(r=o.namespace)&&void 0!==r?r:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!I()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||J(this.options),this.orders=new St("order",this.adapter).extendActions(Y),this.entities=new St("entity",this.adapter),this.places=new St("place",this.adapter),this.drivers=new St("driver",this.adapter).extendActions(st),this.vehicles=new St("vehicle",this.adapter),this.vendors=new St("vendor",this.adapter),this.contacts=new St("contact",this.adapter)}return u(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return f(t,Array.prototype.slice.call(arguments))}}]),t}();export{ft as Adapter,gt as BrowserAdapter,C as Collection,ct as Contact,at as Driver,yt as EmberJsAdapter,et as Entity,K as GoogleAddress,pt as NodeAdapter,X as Order,tt as Payload,nt as Place,M as Point,Z as Resource,lt as ServiceArea,dt as ServiceQuote,vt as ServiceRate,St as Store,V as StoreActions,rt as TrackingStatus,ot as Vehicle,ut as Vendor,it as Waypoint,ht as Zone,wt as camelize,xt as classify,At as dasherize,_t as default,Ot as extendStoreActions,T as isLatitude,q as isLongitude,I as isNodeEnvironment,B as isResource,kt as pluralize,mt as singularize}; -//# sourceMappingURL=fleetbase.js.map diff --git a/dist/esm/fleetbase.js.map b/dist/esm/fleetbase.js.map deleted file mode 100644 index 8fc839e..0000000 --- a/dist/esm/fleetbase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('streetName'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n"],"names":["isArray","Array","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","val","withNaNCheck","insertAt","this","indexes","map","idx","_this2","object","methodName","args","ret","forEach","push","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","seen","Set","getter","get","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isLatitude","coordinate","isFinite","Math","abs","isLongitude","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","dasherize","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","storage","resourceInstance","serialized","deposit","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts"],"mappings":"skJAAA,IAAQA,EAAYC,MAAZD,yDCWFE,EAAU,SAACC,EAAOC,EAAOC,OAAaC,yDAAQ,MAC5CN,EAAQG,MACJG,EAAMC,QANC,IAOPJ,EAAMK,aAANL,GAAaC,EAAOC,YAAgBC,SACjC,CACHH,EAAMK,OAAOJ,EAAOC,OAEf,IAAII,EAAI,EAAGA,EAAIH,EAAMC,OAAQE,GAX3B,IAW4C,KAC3CC,EAAQJ,EAAMK,MAAMF,EAAGA,EAZxB,KAaHN,EAAMK,aAANL,GAAaC,EAAQK,EAAG,YAAMC,WAG/BE,EAAaC,MACpBV,EAAMD,QAAQE,EAAOC,EAAaC,IAIpCQ,EAAmB,SAACC,UAASA,GAkB7BH,EAAe,SAACI,UAAUA,aAAiBC,GAE3CC,EAAW,SAACf,EAAOgB,UACjBnB,EAAQG,GACDA,EAAMgB,GACNP,EAAaT,GACbA,EAAMe,SAASC,GAGnB,MAGLC,EAAO,SAACC,EAAKC,UAC0B,IAArBC,EAAUhB,OACP,SAACQ,UAASO,IAAUP,EAAKM,IAAO,SAACN,UAASS,QAAQT,EAAKM,MAG5EI,EAAY,SAACtB,EAAOuB,WAAWC,yDAAU,EACvCC,EAAMzB,EAAMI,OACPY,EAAQQ,EAASR,EAAQS,EAAKT,IAAS,KACxCJ,EAAOG,EAASf,EAAOgB,MACvBO,EAAUX,EAAMI,EAAOhB,UAChBgB,SAGP,GAGNU,EAAO,SAAC1B,EAAO2B,EAAUC,OACvBL,EAAYI,EAASE,KAAKD,GAC1BZ,EAAQM,EAAUtB,EAAOuB,EAAW,UACtB,IAAXP,OAAec,EAAYf,EAASf,EAAOgB,IAGhDe,EAAM,SAAC/B,EAAO2B,EAAUC,OACtBL,EAAYI,EAASE,KAAKD,UACa,IAApCN,EAAUtB,EAAOuB,EAAW,IAGjCS,EAAQ,SAAChC,EAAO2B,EAAUC,OACxBK,EAAKN,EAASE,KAAKD,UAEoB,IAApCN,EAAUtB,GADD,SAACY,EAAMI,EAAOhB,UAAWiC,EAAGrB,EAAMI,EAAOhB,KACtB,IAGjCkC,EAAU,SAAClC,EAAOmC,OAAKX,yDAAU,EAAGY,yCAClCX,EAAMzB,EAAMI,OAEZoB,EAAU,IACVA,GAAWC,OAIXF,EAAYa,GAAgBD,GAAQA,EAAM,SAACvB,UAASA,GAASA,GAAO,SAACA,UAASA,IAASuB,UACpFb,EAAUtB,EAAOuB,EAAWC,IAQjCa,EAAW,SAACrC,EAAOgB,EAAOJ,UAC5Bb,EAAQC,EAAOgB,EAAO,EAAG,CAACJ,IACnBA,GAGLE,oBAAmBhB,2DACNK,2BAAAA,qCACPN,EAAQuB,UAAU,mCACTA,UAAU,mBAEVA,4CAIjB,kBACWkB,KAAKlC,OAAS,qBAGzB,kBAC2B,IAAhBkC,KAAKlC,0BAGhB,kBACWW,EAASuB,KAAM,qBAG1B,kBACWvB,EAASuB,KAAMA,KAAKlC,OAAS,0BAGxC,SAAQH,EAAOC,OAAaC,yDAAQ,UAChCJ,EAAQuC,KAAMrC,EAAOC,EAAaC,GAE3BmC,8BAGX,SAAUC,qBACCA,EAAQC,KAAI,SAACC,UAAQ1B,EAAS2B,EAAMD,8BAG/C,SAASzB,UACED,EAASuB,KAAMtB,0BAG1B,SAAQ2B,EAAQnB,UACLU,EAAQI,KAAMK,EAAQnB,GAAS,8BAG1C,SAAYmB,EAAQnB,OACZC,EAAMa,KAAKlC,aAEC0B,IAAZN,GAAyBA,GAAWC,KACpCD,EAAUC,EAAM,GAGhBD,EAAU,IACVA,GAAWC,OAGV,IAAIgB,EAAMjB,EAASiB,GAAO,EAAGA,OAC1B1B,EAASuB,KAAMG,KAASE,SACjBF,SAIP,0BAGZ,SAASE,EAAQnB,UACoC,IAA1CU,EAAQI,KAAMK,EAAQnB,GAAS,yBAG1C,kBACWE,EAAKY,KAAMrB,eAAQG,uCAG9B,kBACWE,EAAUgB,KAAMrB,eAAQG,mCAGnC,kBACWY,EAAMM,KAAMrB,eAAQG,iCAG/B,kBACWW,EAAIO,KAAMrB,eAAQG,kCAG7B,SAAOwB,8BAAeC,mCAAAA,wBACdC,EAAM,eAELC,SAAQ,SAACnC,gBAASkC,EAAIE,eAAKpC,EAAKgC,uBAALK,gBAAArC,UAAsBiC,QAE/CC,yBAGX,kBACWR,KAAKE,KAAI,SAAC5B,UAASA,4BAG9B,kBACW0B,KAAKY,QAAO,SAAC/B,UAAmB,MAATA,2BAGlC,eACQgC,EAAW/B,iBAERkB,KAAKc,MAAK,SAACC,EAAGC,OACZ,IAAIhD,EAAI,EAAGA,EAAI6C,EAAS/C,OAAQE,IAAK,KAClCY,EAAMiC,EAAS7C,GACfiD,EAAQF,EAAEnC,GACVsC,EAAQF,EAAEpC,GAEVuC,EAAeC,QAAQH,EAAOC,MAE9BC,SACOA,SAGR,2BAIf,SAAOvC,UAzMI,SAAClB,OAAOkB,yDAAMP,EACrBmC,EAAM,GACNa,EAAO,IAAIC,IACXC,EAAwB,mBAAR3C,EAAqBA,EAAM,SAACN,UAASkD,IAAIlD,EAAMM,WAEnElB,EAAM+C,SAAQ,SAACnC,OACPuB,EAAM0B,EAAOjD,GACZ+C,EAAKI,IAAI5B,KACVwB,EAAKK,IAAI7B,GACTW,EAAIE,KAAKpC,OAIVkC,EA6LImB,CAAO3B,KAAMpB,0BAGxB,SAAQC,OACCmB,KAAK4B,SAAS/C,UACRmB,SAIPf,EAAYJ,GAAUA,EAAQ,SAACP,UAASA,IAASO,GAAQ,SAACP,UAASA,GAASA,UACzE0B,KAAKY,OAAO3B,wBAGvB,eACQE,EAAMa,KAAKlC,cACH,IAARqB,QAIC1B,QAAQ,EAAG0B,EAAK,IAHVa,6BAOf,SAASG,EAAKE,UACVN,EAASC,KAAMG,EAAKE,GACbL,8BAGX,SAAUG,EAAKE,UACJL,KAAKvC,QAAQ0C,EAAK,EAAG,CAACE,4BAGjC,SAAS1C,EAAOwB,UAjKH,SAACzB,EAAOgB,UACrBjB,EAAQC,EAAOgB,yDADmB,EACP,IACpBhB,EAgKImE,CAAS7B,KAAMrC,EAAOwB,6BAGjC,SAAW2C,UACA9B,KAAKD,SAASC,KAAKlC,OAAQgE,8BAGtC,SAAYC,eACHtE,QAAQuC,KAAKlC,OAAQ,EAAGiE,GACtB/B,8BAGX,eACQb,EAAMa,KAAKlC,UACH,IAARqB,SACO,SAGPqB,EAAM/B,EAASuB,KAAMb,EAAM,eAC1B0C,SAAS1C,EAAM,EAAG,GAChBqB,6BAGX,cACwB,IAAhBR,KAAKlC,cACE,SAGP0C,EAAM/B,EAASuB,KAAM,eACpB6B,SAAS,GACPrB,+BAGX,SAAcsB,UACH/B,EAASC,KAAM,EAAG8B,iCAG7B,SAAeC,eACNtE,QAAQ,EAAG,EAAGsE,GACZ/B,mCAGX,eACQb,EAAMa,KAAKlC,UACH,IAARqB,SACOa,SAGP+B,EAAU/B,KAAKgC,UAAUC,sBACxBxE,QAAQ,EAAG0B,EAAK4C,GACd/B,+BAGX,SAAW+B,MACgB,IAAnBA,EAAQjE,cACDkC,KAAKkC,YAGZ/C,EAAMa,KAAKlC,mBACVL,QAAQ,EAAG0B,EAAK4C,GACd/B,iCAGX,SAAa8B,WACLK,EAAMnC,KAAKlC,QAAU,IAChBqE,GAAO,GAAG,CACC1D,EAASuB,KAAMmC,KAEbL,QACTD,SAASM,UAGfnC,kCAGX,SAAc+B,OACL,IAAI/D,EAAI+D,EAAQjE,OAAS,EAAGE,GAAK,EAAGA,SAChCoE,aAAaL,EAAQ/D,WAGvBgC,8BAGX,SAAU8B,UACS9B,KAAK4B,SAASE,SAGpBO,WAAWP,GAGb9B,+BAGX,SAAW+B,qBACPA,EAAQtB,SAAQ,SAACqB,UAAQQ,EAAKC,UAAUT,MACjC9B,cCxWTwC,EAAU,SAACV,OACPW,EAAOX,MAAAA,KACTW,SACOA,KAGa,iBAAbX,EAAIY,YACHZ,EAAIY,SAGVC,IAAoBb,MAEP,WAAfa,EAAyB,KACjBD,EAASZ,EAATY,QACY,iBAATA,SACCA,KAIU,iBAAfZ,EAAIhE,QAAsC,aAAf6E,SAC1Bb,EAAIhE,UAGG,WAAf6E,EAAyB,KACjB7E,EAAWgE,EAAXhE,UACc,iBAAXA,SACCA,SAIT,GC5BL8E,EAAU,SAACd,UAAQU,EAAQV,IAAwB,iBAARA,IAAuC,IAAnB,KAAKe,KAAKf,ICFhE,SAASgB,EAAWC,UACxBC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,GCD5C,SAASI,EAAYJ,UACzBC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,KAAOE,KAAKC,IAAIH,IAAe,GCC3E,SAASK,EAAWC,UACxBA,aAAkBC,ECH7B,IAAMC,EAAU,eAACC,yDAAQ,SACd,iDAAiDX,KAAKW,ICI3DC,EAAoB,iCACK,oBAAZC,SAAqD,WAAxBC,YAAOD,4BAAAE,EAASC,OAAqE,eAAjDH,QAAQI,kCAASC,2BAAMC,OAAO,gBAA4C,oBAAXC,QAAyD,2BAA/BA,iCAAQC,gCAAWC,WCH1LC,EAAgB,eAACC,yDAAU,UACzBZ,IACOa,GAAO,UAAW,cAAeD,GAGrCC,GAAO,UAAW,iBAAkBD,ICRvC9G,EAAYC,MAAZD,QAEFgH,wBACUC,kBACHA,MAAQA,OACRC,SAAWD,MAAAA,SAAAA,EAAOC,cAClBC,WAAa1E,KAAK2E,uBAClBC,WAAa5E,KAAK6E,iDAG3B,gBACSF,uBACAE,iDAGT,wCAC6BL,4BAAOM,qBAAsB,IAAIC,QAAO,SAAUC,EAAKC,UAC5EA,EAAKC,MAAMzE,SAAQ,SAAU0E,GACzBH,EAAIG,GAAQF,KAETD,IACR,mCAKP,iBACUJ,EAAa,CACfQ,aAAcpF,KAAKwB,IAAI,iBACvB6D,WAAYrF,KAAKwB,IAAI,SACrB8D,2BAAkBb,yBAAUc,SAAWC,OAAOC,OAAOzF,KAAKyE,SAASc,UAAY,CAAC,EAAG,GACnFG,KAAM1F,KAAK2F,GAAG,CAAC,WAAY,cAAe,sBAAuB,eAAgB,8BAA+B,gCAChHC,OAAQ5F,KAAKwB,IAAI,+BACjBqE,WAAY7F,KAAKwB,IAAI,+BAA+B,GACpDsE,UAAW9F,KAAKwB,IAAI,+BACpBuE,aAAc/F,KAAKwB,IAAI,WAAW,GAClCwE,QAAShG,KAAKwB,IAAI,WAAW,GAC7ByE,YAAajG,KAAKwB,IAAI,WACtB0E,WAAYlG,KAAKwB,IAAI,uBAGzBoD,EAAWuB,QAAU,CAACvB,EAAWQ,aAAcR,EAAWS,YAAYzE,OAAO7B,SAASqH,KAAK,KAEpFxB,qBAGX,kBACW5E,KAAK4E,6BAGhB,mBAAGyB,yDAAO,GACGrI,EAAI,EAAGA,EAAIqI,EAAKvI,OAAQE,IAAK,KAC5BY,EAAMyH,EAAKrI,MAEbT,EAAQqB,QACF0H,EAAO1H,EAAI,GACX2H,EAAQ3H,EAAI,MAEdoB,KAAKyB,IAAI6E,UACFtG,KAAKwB,IAAI8E,EAAMC,WAM1BvG,KAAKyB,IAAI7C,UACFoB,KAAKwB,IAAI5C,UAIjB,wBAGX,SAAIA,UACQA,KAAOoB,KAAK0E,8BAGxB,SAAI9F,OAAK2H,iEACC3H,KAAOoB,KAAK0E,WAIX6B,EAAQvG,KAAK0E,WAAW9F,GAAK4H,WAAaxG,KAAK0E,WAAW9F,GAAK6H,UAH3D,kCAMf,eAAc7B,yDAAa,eAClBA,kBAAiB5E,KAAK4E,YAAeA,GAEnC5E,iCAGX,SAAapB,EAAKC,eACT+F,WAAWhG,GAAOC,EAEhBmB,iCAGX,SAAapB,UACFoB,KAAK4E,WAAWhG,IAAQ,cClGlB8H,8BACLC,yDAAW,EAAGC,yDAAY,iBAC7BzB,KAAO,aACPG,YAAc,CAACsB,EAAWD,mCAGnC,kBACW3G,KAAKsF,YAAY,0BAG5B,kBACWtF,KAAKsF,YAAY,sBAG5B,kBACWtF,KAAK2G,4BAGhB,kBACW3G,KAAK4G,mCAShB,iBACW,CACHzB,KAAM,QACN0B,YAAa,CAAC7G,KAAK8G,MAAO9G,KAAK+G,8BAIvC,kBACW/G,KAAKgH,oCAGhB,4BACehH,KAAK2G,sBAAa3G,KAAK4G,4CAlBtC,SAAmBK,WACWA,EAAK3B,sBAA7BsB,eAAWD,cAEN,IAAID,EAAMC,SAAUC,6DCvBnC,IAIMM,EAAc,SAACC,EAAMC,OACjBC,EAAWF,WACV3J,MAAMD,QAAQ8J,IAAiC,WAApB1D,EAAO0D,GAAwB7F,EAAI6F,EAAUD,GAAQ,MASrF5F,EAAM,SAANA,EAAOnB,EAAQ+G,OAfD7I,EAgBZ+I,EAAUjH,EAER8E,IAAc9E,GACdkH,EAAoB,WAATpC,EACXqC,EAAsB,aAATrC,EACb5H,EAAUC,MAAMD,QAAQ8C,GAKxBoH,EAF4B,aADVL,IAEaA,EAAKxF,SAAS,KAClBwF,EAAKM,MAAM,KAAO,CAACN,MAEhD7J,GAAWgK,EAAU,KAChB,IAAIvJ,EAAI,EAAGA,EAAIyJ,EAAU3J,OAAQE,IAAK,IACnCsJ,QAAqC9H,IAA1B8H,EAAQG,EAAUzJ,WACtB,KACJ,GAAIsJ,EAAS,IAChBA,EAAUA,EAAQG,EAAUzJ,IAjCG,WAAjB2F,EAAVpF,EAoCW+I,KApC6B9E,EAAQjE,MAAAA,SAAAA,EAAOqG,aAA4C,WAA7BjB,EAAOpF,MAAAA,SAAAA,EAAOqG,kBAoCxCpF,IAArBiI,EAAUzJ,EAAI,GAAkB,KACjD2J,EAAUF,EAAUvJ,MAAMF,EAAI,GAAGoI,KAAK,YAErC5E,EAAI8F,EAAQ1C,WAAY+C,MAIZ,mBAAZL,EAAwB,KACzBK,EAAUF,EAAUvJ,MAAMF,EAAI,GAAGoI,KAAK,YACrCc,EAAYI,EAASK,YAIjCL,KAGPE,SACON,EAAY7G,EAAQ+G,IAqB7BQ,EAAM,SAACvH,EAAQ+G,EAAMvI,OACnByI,EAAUjH,EAERkH,EAAoB,aADNlH,GAGd9C,EAAUC,MAAMD,QAAQ8C,GAUxBoH,EAF4B,aADVL,IAEaA,EAAKxF,SAAS,KAClBwF,EAAKM,MAAM,KAAO,CAACN,GAC9CS,EAAaJ,EAAU3J,UAEzBP,GAAWgK,EAAU,KAChB,IAAIvJ,EAAI,EAAGA,EAAI6J,EAAa,EAAG7J,IAC3BsJ,EAAQG,EAAUzJ,MACnBsJ,EAAQG,EAAUzJ,IAAM,IAE5BsJ,EAAUA,EAAQG,EAAUzJ,IAGhCsJ,EAAQG,EAAUI,EAAa,IAAMhJ,SAGlCA,GCvGUiJ,8BACLC,yDAAU,GAAIxI,yDAAO,oBACxBwI,QAAUA,OACVxI,KAAOA,kCAGhB,eAAOyI,yDAAS,KACNC,EAAUD,GAAUhI,KAAKT,SAE1B0I,SACMjI,QAGPA,MAAAA,WAAM+H,SAAmC,WAAxBpE,EAAO3D,KAAK+H,aACxB,IAAIG,KAAUlI,KAAK+H,QAAS,KACvBI,EAAKnI,KAAK+H,QAAQG,GAEN,mBAAPC,EAKXP,EAAIK,EAASC,EAAQC,EAAG5I,KAAK0I,IAJzBL,EAAIK,EAASC,EAAQC,UAQ1BnI,cCvBTsD,8BAMUsB,yDAAa,GAAIwD,yCAASC,yCAAUhE,yDAAU,kBACjDO,WAAaA,OACb0D,gBAAkB,QAClBC,QAAU,QACVC,WAAY,OACZC,UAAW,OACXC,cAAe,OACfC,aAAc,OACdN,SAAWA,OACXhE,QAAUA,OACVuE,QAAUvE,EAAQuE,SAAW,UAC7BC,WAAWT,uCASpB,SAAWA,qBACFA,QAAUA,OACVU,MAAQ,IAAIC,GAAM/I,KAAKqI,SAAUD,EAAS,CAC3CY,aAAchJ,KAAKiJ,eAAe1J,KAAKS,MACvC+H,kBAAS/H,KAAKqE,4BAAL6E,EAAcnB,UAGpB/H,qBAQX,kBACWA,KAAKmJ,aAAa,4BAS7B,sBAAOvE,yDAAa,GACVK,EAAOjF,KAAKoJ,gBAAgBxE,eAC7ByE,SAAS,CAAC,YAAa,aAErBrJ,KAAK8I,MAAMQ,OAAOrE,GAAMsE,MAAK,SAACC,UAClCC,EAAKJ,SAAS,CAAC,YAAa,aAAa,GAElCG,2BAUd,sBAAO5E,yDAAa,eACXyE,SAAS,CAAC,YAAa,aAErBrJ,KAAK8I,MAAMY,OAAO1J,KAAK4E,WAAW+E,GAAI/E,GAAY2E,MAAK,SAACC,UAC5DpJ,EAAKiJ,SAAS,CAAC,YAAa,aAAa,GAElCG,4BASd,kCACSH,SAAS,CAAC,YAAa,iBAErBrJ,KAAK8I,MAAMc,QAAQ5J,KAAK4E,WAAW+E,IAAIJ,MAAK,SAACC,UACjDlH,EAAK+G,SAAS,CAAC,YAAa,iBAAiB,GAEtCG,2BASd,kCACSH,SAAS,CAAC,YAAa,gBAErBrJ,KAAK8I,MAAMe,WAAW7J,KAAK4E,WAAW+E,IAAIJ,MAAK,SAACC,UACpDM,EAAKC,QAEEP,6BASd,mBAASQ,yDAAQ,GAAIC,6DACXC,EAAa,CAAC,YAAa,WAAY,cAAe,gBAEpDlM,EAAI,EAAGA,EAAIgM,EAAMlM,OAAQE,IAAK,KAC5BmM,EAAOH,EAAMhM,MAEC,iBAATmM,IAAsBD,EAAWtI,SAASuI,SAC3C,IAAIC,gBAASD,iCAGlBA,GAAQF,SAGVjK,0BAQX,uBACSsI,gBAAkB,QAClBC,QAAU,QACVC,WAAY,OACZC,UAAW,OACXE,aAAc,EAEZ3I,0BAQX,uBACS+J,aACAM,UAAY,GAEVrK,yBAQX,eAAKqE,yDAAU,GACLO,EAAa5E,KAAKsK,uBAEpB9H,EAAQxC,KAAK2J,IACN3J,KAAKsJ,OAAO1E,IAGG,IAAtBP,EAAQkG,UACDvK,KAAKwK,YAGTxK,KAAK0J,OAAO9E,4BAQvB,mBACU6F,EAAqBjF,OAAOa,KAAKrG,KAAKsI,iBACtCA,EAAkB,GAEftK,EAAI,EAAGA,EAAIyM,EAAmB3M,OAAQE,IAAK,KAC1CY,EAAM6L,EAAmBzM,GAC/BsK,EAAgB1J,GAAOoB,KAAKmJ,aAAavK,UAGtCoB,KAAK0J,OAAOpB,qBAQvB,kBACWtI,KAAKmJ,aAAa,OAAQ,2BAQrC,kBACWnJ,KAAK0K,kBAAkB,cAAgB,IAAIC,KAAK3K,KAAKmJ,aAAa,eAAiB,4BAQ9F,kBACWnJ,KAAK0K,kBAAkB,cAAgB,IAAIC,KAAK3K,KAAKmJ,aAAa,eAAiB,2BAQ9F,kBACWnJ,KAAK4K,cAAc,CAAC,aAAc,4BAQ7C,kBACsD,IAA3CpF,OAAOC,OAAOzF,MAAAA,YAAAA,KAAM4E,YAAY9G,0BAQ3C,kBACYkC,KAAK2J,wBAQjB,kBACY3J,KAAK6K,OAAS7K,KAAK8K,gCAQ/B,kBACW9K,KAAK4K,cAAc,CAAC,UAAW,sCAQ1C,SAAcvL,sBACc,mBAAbA,GAIXmG,OAAOa,eAAKrG,MAAAA,YAAAA,KAAM4E,0BAAc,IAAInE,SAAQ,SAACsK,OACnClM,EAAQmM,EAAK7B,aAAa4B,GAChC1L,EAAS4L,KAAKD,EAAMnM,EAAOkM,MALpB/K,4BAgBf,kBACWA,KAAKuI,0CAQhB,kBACWvI,KAAKsI,uCAShB,SAAQyC,UACGA,KAAY/K,KAAKsI,kDAQ5B,wBACW9C,OAAOa,eAAKrG,MAAAA,YAAAA,KAAMsI,+BAAmB,IAAIxK,OAAS,wBAS7D,SAAOiN,EAAUlM,QACR+F,WAAWmG,GAAYlM,8BAShC,SAAakM,SAAUlM,yDAAQ,QACb,OAAVA,GAAsC,WAApB8E,EAAOoH,UAClB/K,KAAKkL,cAAcH,OAGxBI,YAAgBnL,MAAAA,YAAAA,KAAM4E,WAAWmG,kBAAa,YAGpDnD,EAAI5H,KAAK4E,WAAYmG,EAAUlM,GAC/B+I,EAAI5H,KAAKsI,gBAAiByC,EAAUI,GAM/B5N,EAAQyC,MAAAA,YAAAA,KAAMuI,QAAQwC,WAClBxC,QAAQwC,GAAY,SAGxBxC,QAAQwC,GAAUrK,KAAK,CACxBqK,SAAAA,EACAI,cAAAA,EACAtM,MAAAA,EACAuM,UAAW,IAAIT,OAGZ3K,kCAQX,eAAc4E,yDAAa,OAClB,IAAImG,KAAYnG,OACZyG,aAAaN,EAAUnG,EAAWmG,WAGpC/K,iCASX,SAAasL,SAAWC,yDAAe,KAC7B1M,EAAQ2C,YAAIxB,MAAAA,YAAAA,KAAM4E,0BAAc,GAAI0G,eAE5B9L,IAAVX,EACO0M,EAGJ1M,8BASX,SAAakM,MACLxN,EAAQwN,GAAW,OACbS,EAAaT,EACbU,EAAgBjG,OAAOa,eAAKrG,KAAK4E,0BAAc,WAE9C4G,EAAW9L,OAAM,SAACgM,UAASD,EAAc7J,SAAS8J,cAGxD1L,MAAAA,OAAAA,KAAM4E,aAIJmG,KAAY/K,KAAK4E,wCAS5B,eAAc4G,yDAAa,UAChBxL,KAAK2L,aAAaH,oCAS7B,SAAkBT,qBACVxN,EAAQwN,GACD/K,KAAK2L,aAAaZ,IAAaA,EAASrL,OAAM,SAACgM,UAAUlJ,EAAQoJ,EAAKzC,aAAauC,OAGvF1L,KAAK2L,aAAaZ,KAAcvI,EAAQxC,KAAKmJ,aAAa4B,iCASrE,SAAcS,OACJ5G,EAAa,MAEf4G,MAAAA,SACOxL,KAAKsK,cAAc9E,OAAOa,KAAKrG,KAAK4E,gBAGrB,iBAAf4G,SACAxL,KAAKmJ,wCAAiBrK,gBAG5BvB,EAAQiO,SACH,IAAIpB,MAAM,yCAGf,IAAIpM,EAAI,EAAGA,EAAIwN,EAAW1N,OAAQE,IAAK,SAClC+M,EAAWS,EAAWxN,MAEJ,iBAAb+M,OAIPlM,EAAQmB,KAAKmJ,aAAa4B,GAEG,WAA7BpH,YAAO9E,sBAAAgN,EAAOjH,aAA4BrH,YAAQsB,sBAAAiN,EAAOlH,cACzD/F,EAAQA,EAAM+F,YAGlBA,EAAWmG,GAAYlM,UAGpB+F,2BAQX,kBACW5E,KAAKsK,+CAShB,iBAAgB1F,yDAAa,GACnBmH,YAAkB/L,MAAAA,YAAAA,KAAM4E,0BAAc,eACvCA,kBAAkBmH,GAAoBnH,GAEpC5E,KAAK4E,yCAShB,eAAeqC,yDAAO,QACbrC,WAAaqC,WC5fpB+E,EAAe,IAAIlE,EAAa,CAClCmE,mBAAoB,SAAUtC,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC9CrE,KAAKoI,QAAQ5G,cAAOxB,KAAKmM,sBAAaxC,wBAAwBuC,EAAQ7H,IAGjF+H,gBAAiB,SAAUzC,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC3CrE,KAAKoI,QAAQ5G,cAAOxB,KAAKmM,sBAAaxC,oBAAoBuC,EAAQ7H,IAG7EgI,SAAU,SAAU1C,OAAIuC,yDAAS,GAAI7H,yDAAU,UACpCrE,KAAKoI,QAAQkE,eAAQtM,KAAKmM,sBAAaxC,eAAeuC,EAAQ7H,GAASkF,KAAKvJ,KAAKuM,WAAWhN,KAAKS,QAG5GrC,MAAO,SAAUgM,OAAIuC,yDAAS,GAAI7H,yDAAU,UACjCrE,KAAKoI,QAAQkE,eAAQtM,KAAKmM,sBAAaxC,YAAYuC,EAAQ7H,GAASkF,KAAKvJ,KAAKuM,WAAWhN,KAAKS,QAGzGwM,eAAgB,SAAU7C,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC1CrE,KAAKoI,QAAQkE,eAAQtM,KAAKmM,sBAAaxC,sBAAsBuC,EAAQ7H,GAASkF,KAAKvJ,KAAKuM,WAAWhN,KAAKS,QAGnHyM,eAAgB,SAAU9C,EAAI+C,OAAeR,yDAAS,GAAI7H,yDAAU,UAC5DjB,EAAWsJ,KACXA,EAAgBA,EAAc/C,IAG3B3J,KAAKoI,QAAQkE,eAAQtM,KAAKmM,sBAAaxC,8BAAsB+C,GAAiBR,EAAQ7H,GAASkF,KAAKvJ,KAAKuM,WAAWhN,KAAKS,QAGpI2M,cAAe,SAAUhD,OAAIiD,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC9DjB,EAAWwJ,KACXA,EAAYA,EAAUjD,IAGnB3J,KAAKoI,QAAQkE,eAAQtM,KAAKmM,sBAAaxC,wBAAiBiD,EAAiB,IAAMA,EAAX,IAAwBV,EAAQ7H,IAG/GwI,iBAAkB,SAAUlD,OAAIiD,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UACjEjB,EAAWwJ,KACXA,EAAYA,EAAUjD,IAGnB3J,KAAKoI,QAAQkE,eAAQtM,KAAKmM,sBAAaxC,+BAAwBiD,EAAiB,IAAMA,EAAX,IAAwBV,EAAQ7H,IAGtHyI,SAAU,SAAUnD,OAAIuC,yDAAS,GAAI7H,yDAAU,UACpCrE,KAAKoI,QAAQkE,eAAQtM,KAAKmM,sBAAaxC,eAAeuC,EAAQ7H,GAASkF,KAAKvJ,KAAKuM,WAAWhN,KAAKS,QAG5G+M,OAAQ,SAAUpD,OAAIuC,yDAAS,GAAI7H,yDAAU,UAClCrE,KAAKoI,yBAAkBpI,KAAKmM,sBAAaxC,aAAauC,EAAQ7H,GAASkF,KAAKvJ,KAAKuM,WAAWhN,KAAKS,UAI1GgN,kBAAc1J,+BACJsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,WAAWL,QAASiE,GAAiB3H,gDAGpE,eAAmB6H,yDAAS,GAAI7H,yDAAU,UAC/BrE,KAAK8I,MAAMmD,mBAAmBjM,KAAK2J,GAAIuC,EAAQ7H,2BAG1D,eAAS6H,yDAAS,GAAI7H,yDAAU,UACrBrE,KAAK8I,MAAMuD,SAASrM,KAAK2J,GAAIuC,EAAQ7H,wBAGhD,eAAM6H,yDAAS,GAAI7H,yDAAU,UAClBrE,KAAK8I,MAAMnL,MAAMqC,KAAK2J,GAAIuC,EAAQ7H,iCAG7C,SAAeqI,OAAeR,yDAAS,GAAI7H,yDAAU,UAC1CrE,KAAK8I,MAAM2D,eAAezM,KAAK2J,GAAI+C,EAAeR,EAAQ7H,gCAGrE,eAAcuI,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC5CrE,KAAK8I,MAAM6D,cAAc3M,KAAK2J,GAAIiD,EAAWV,EAAQ7H,mCAGhE,eAAiBuI,yDAAY,KAAMV,yDAAS,GAAI7H,yDAAU,UAC/CrE,KAAK8I,MAAM+D,iBAAiB7M,KAAK2J,GAAIiD,EAAWV,EAAQ7H,kCAGnE,eAAgB6H,yDAAS,GAAI7H,yDAAU,UAC5BrE,KAAK8I,MAAMsD,gBAAgBpM,KAAK2J,GAAIuC,EAAQ7H,iCAGvD,eAAe6H,yDAAS,GAAI7H,yDAAU,UAC3BrE,KAAK8I,MAAM0D,eAAexM,KAAK2J,GAAIuC,EAAQ7H,yBAGtD,eAAO6H,yDAAS,GAAI7H,yDAAU,UACnBrE,KAAK8I,MAAMiE,OAAO/M,KAAK2J,GAAIuC,EAAQ7H,2BAG9C,eAAS6H,yDAAS,GAAI7H,yDAAU,UACrBrE,KAAK8I,MAAMgE,SAAS9M,KAAK2J,GAAIuC,EAAQ7H,6BAGhD,kBACkD,OAAvCrE,KAAKmJ,aAAa,8CAG7B,kBACiD,MAAtCnJ,KAAKmJ,aAAa,wCAG7B,kBAC+C,OAApCnJ,KAAKmJ,aAAa,wCAG7B,kBAC8C,MAAnCnJ,KAAKmJ,aAAa,uCAG7B,iBAC0C,aAA/BnJ,KAAKmJ,aAAa,kCAG7B,iBAC0C,YAA/BnJ,KAAKmJ,aAAa,iCAG7B,iBAC0C,kBAA/BnJ,KAAKmJ,aAAa,WAAiE,YAAhCnJ,KAAKmJ,aAAa,oCAGhF,kBACWnJ,KAAKiN,YAAcjN,KAAKkN,aAAelN,KAAKmN,qCAGvD,kBACWnN,KAAK0K,kBAAkB,gBAAkB,IAAIC,KAAK3K,KAAKmJ,aAAa,iBAAmB,4BAGlG,kBACWnJ,KAAK0K,kBAAkB,cAAgB,IAAIC,KAAK3K,KAAKmJ,aAAa,eAAiB,+BAG9F,kBACWnJ,KAAK0K,kBAAkB,iBAAmB,IAAIC,KAAK3K,KAAKmJ,aAAa,kBAAoB,yBAGpG,kBACWnJ,KAAKmJ,aAAa,mBCjJ3BiE,mBAAgB9J,+BACTsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACnCO,EAAYwD,EAAS,UAAW/D,mCAU1C,SAAOgJ,0BASP,iCASA,gCASA,mCASA,kBACW,IAAI7O,EAAWwB,KAAKsN,oBClD7BC,mBAAejK,+BACLsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,SAAU/D,eCDvCmJ,mBAAclK,+BACJsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,QAAS/D,qEA+B7BrE,KAAKmJ,aAAa,WAAY,IAAIzC,uBAAlC+G,EAA4CnI,YAAY,0BAQnE,kCACWtF,KAAKmJ,aAAa,WAAY,IAAIzC,uBAAlCgH,EAA4CpI,YAAY,4BAQnE,iBAGY,CAFwBtF,KAAxB2G,SAAwB3G,KAAd4G,mCAWtB,SAAS+G,UACDvK,EAAWuK,SACNtC,aAAa,QAASsC,EAAMhE,IAGhB,iBAAVgE,QACFtC,aAAa,QAASsC,GAGxB3N,wCAlEX,SAAyB4N,EAAexF,OAAS/D,yDAAU,KACvBuJ,EAAczE,aAAa,wBAAnDxC,OAAUC,OACZhC,EAAa,CACfb,KAAM,KACNoC,QAASyH,EAAczE,aAAa,WACpC5D,SAAU,IAAImB,EAAMC,EAAUC,GAC9BiH,QAASD,EAAczE,aAAa,cACpC2E,QAAS,KACTpI,KAAMkI,EAAczE,aAAa,QACjC4E,SAAUH,EAAczE,aAAa,aACrC6E,YAAaJ,EAAczE,aAAa,cACxC8E,aAAcL,EAAcpM,IAAI,gBAChC0M,SAAUN,EAAczE,aAAa,UACrCgF,SAAUP,EAAcpM,IAAI,YAC5BwE,QAAS4H,EAAczE,aAAa,gBACpC3F,MAAO,KACP4K,qBAAsB,aAGnB,IAAIZ,EAAM5I,EAAYwD,EAAS/D,YCzBxCgK,mBAAiBb,gCACP5I,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,WAAY/D,eCFzCiK,mBAAuBhL,+BACbsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,kBAAmB/D,eCFhDkK,mBAAgBjL,+BACNsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,UAAW/D,eCDxCmK,GAAgB,IAAI1G,EAAa,CAEnC2G,MAAO,SAAUC,OAAUC,yDAAW,KAAM/J,yDAAa,MAEjDrB,EAAQmL,UACD1O,KAAKoI,QAAQkE,KAAK,yBAA0B,CAAE9I,MAAOkL,QAG3DC,QACK,IAAIvE,MAAM,mCAGbpK,KAAKoI,QAAQkE,KAAK,mBAAmBoC,SAAAA,EAAUC,SAAAA,GAAa/J,IAAc2E,KAAKvJ,KAAKuM,WAAWhN,KAAKS,QAG/G4O,WAAY,SAAUF,EAAUG,OAAMjK,yDAAa,UACxC5E,KAAKoI,QAAQkE,KAAK,yBAAyBoC,SAAAA,EAAUG,KAAAA,GAASjK,IAAc2E,KAAKvJ,KAAKuM,WAAWhN,KAAKS,QAGjH8O,MAAO,SAAUnF,OAAIuC,yDAAS,GAAI7H,yDAAU,UACjCrE,KAAKoI,QAAQkE,uBAAgB3C,YAAYuC,EAAQ7H,GAASkF,KAAKvJ,KAAKuM,WAAWhN,KAAKS,QAG/F+O,SAAU,SAAUpF,UACT3J,KAAK6J,WAAWF,IAG3BqF,oBAAWrF,OAAIuC,yDAAS,GAAI7H,yDAAU,UAC3BrE,KAAKoI,QAAQkE,uBAAgB3C,sBAAsBuC,EAAQ7H,MAIpE4K,mBAAe3L,+BACLsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,YAAYL,QAASyG,IAAkBnK,iCAwCtE,kBACWrE,KAAKmJ,aAAa,+BAG7B,kBAC2C,IAAhCnJ,KAAKmJ,aAAa,kEA5BlBnJ,KAAKmJ,aAAa,WAAY,IAAIzC,2BAAlC+G,EAA4CnI,YAAY,0BAQnE,kCACWtF,KAAKmJ,aAAa,WAAY,IAAIzC,2BAAlCgH,EAA4CpI,YAAY,4BAQnE,iBAGW,CAFyBtF,KAAxB2G,SAAwB3G,KAAd4G,gCAatB,eAAMsF,yDAAS,GAAI7H,yDAAU,UAClBrE,KAAK8I,MAAMgG,MAAM9O,KAAK2J,GAAIuC,EAAQ7H,6BAG7C,eAAW6H,yDAAS,GAAI7H,yDAAU,UACvBrE,KAAK8I,MAAMkG,WAAWhP,KAAK2J,GAAIuC,EAAQ7H,YCxFhD6K,mBAAe5L,+BACLsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,SAAU/D,eCFvC8K,mBAAgB7L,+BACNsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,UAAW/D,eCFxC+K,mBAAa9L,+BACHsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,OAAQ/D,eCFrCgL,mBAAoB/L,+BACVsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,eAAgB/D,eCF7CiL,mBAAoBhM,+BACVsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,eAAgB/D,eCF7CkL,mBAAqBjM,+BACXsB,yDAAa,GAAIwD,yCAAS/D,yDAAU,gCACtCO,EAAYwD,EAAS,gBAAiB/D,4CAGhD,uCAIA,qBCXEmL,GAMF,iBAAYC,yDAAS,kBACZ7G,QAAU6G,EAAO7G,SAAW,UAC5B8G,KAAOD,EAAOC,MAAQ,UACtBvD,UAAYsD,EAAOtD,WAAa,UAChCwD,QAAUF,EAAOE,SAAW,ICPnCC,mBAAuBJ,0BAKbC,yCACFA,IAEDI,WAAW,CACZC,+BAAyBL,EAAOM,0BAChB,gCACF,iEAStB,eAAWJ,yDAAU,eACZA,eAAe3P,KAAK2P,SAAYA,GAE9B3P,8BAWX,SAAUwJ,UACC,IAAIwG,SAAQ,SAACC,EAASC,UAAW1G,EACnCvC,OACAsC,MAAK,SAACtC,UAASgJ,EAAQ,CACpBE,WAAY3G,EAAS2G,WACrBC,OAAQ5G,EAAS4G,OACjBC,GAAI7G,EAAS6G,GACbpJ,KAAAA,cAEG,WACHiJ,EAAO,IAAI9F,MAAM,wFAc7B,SAAQhD,cAAMkJ,yDAAS,MAAOrL,yDAAO,GAAIZ,yDAAU,UACxC,IAAI2L,SAAQ,SAACC,EAASC,UAAWK,MAAMlM,EAAQmM,eAAUpQ,EAAKsP,iBAAQtP,EAAK+L,sBAAa/E,MAC3FkJ,OAAAA,EACAG,KAAMpM,EAAQoM,MAAQ,OACtBd,QAAS,IAAIe,eACLtQ,EAAKuP,SAAW,IAChBtL,EAAQsL,SAAW,MAExB1K,IAEFsE,KAAKnJ,EAAKuQ,WACVpH,MAAK,SAACC,UACCA,EAAS6G,GACFJ,EAAQzG,EAASvC,MAGrBiJ,EAAO,IAAI9F,MAAMZ,EAASvC,KAAK2J,OAASpH,EAASvC,KAAK2J,OAAO,GAAKpH,EAAS2G,uBAE/E,SAACU,GACJX,EAAOW,4BAanB,SAAIzJ,OAAM0J,yDAAQ,GAAIzM,yDAAU,GACtB0M,EAAanO,EAAQkO,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,kBAExDjR,KAAKkR,kBAAW9J,UAAO2J,aAAgBA,GAAc,IAAM,MAAO,GAAI1M,uBAYjF,SAAK+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACrBrE,KAAKkR,QAAQ9J,EAAM,OAAQ,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,sBAYtE,SAAI+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACpBrE,KAAKkR,QAAQ9J,EAAM,MAAO,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,yBAYrE,SAAO+C,OAAM/C,yDAAU,UACZrE,KAAKkR,QAAQ9J,EAAM,SAAU,GAAI/C,wBAW5C,SAAM+C,OAAMnC,yDAAO,GAAIZ,yDAAU,UACtBrE,KAAKkR,QAAQ9J,EAAM,QAAS,CAAE+J,KAAMC,KAAKC,UAAUpM,IAASZ,YC9IrEiN,mBAAoB9B,0BACVC,yCACFA,IAED8B,MAAQA,EAAMjI,OAAO,CACtBkI,kBAAY/H,EAAKiG,iBAAQjG,EAAK0C,WAC9BwD,QAAS,CACLG,+BAAyBL,EAAOM,0BAChB,gCACF,+DAU1B,eAAWJ,yDAAU,GACX8B,EAAgBzR,KAAKuR,MAAMG,SAAS/B,QAAQgC,mBAC7CJ,MAAMG,SAAS/B,QAAQgC,cAAcF,GAAkB9B,GAErD3P,8BASX,SAAUwJ,UACCA,EAASvE,gCASpB,SAAY4L,MACJA,EAAMrH,SAAU,KACRvE,EAAS4L,EAAMrH,SAAfvE,QAEJ1H,EAAQ0H,EAAK2L,cACP,IAAIxG,MAAMnF,EAAK2L,OAAO,OAG5B3L,EAAK4L,YACC,IAAIzG,MAAMnF,EAAK4L,aAIvBA,qBAYV,SAAIzJ,OAAM0J,yDAAQ,GAAIzM,yDAAU,GACtB0M,EAAanO,EAAQkO,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,kBAExDjR,KAAKuR,MACP/P,cAAO4F,UAAO2J,aAAgBA,GAAc,IAAM1M,GAClDkF,KAAKvJ,KAAK4R,UAAUrS,KAAKS,aACnBA,KAAK6R,YAAYtS,KAAKS,2BAYrC,SAAKoH,OAAMnC,yDAAO,GAAIZ,yDAAU,UACrBrE,KAAKuR,MAAMjF,KAAKlF,EAAMnC,EAAMZ,GAASkF,KAAKvJ,KAAK4R,UAAUrS,KAAKS,aAAaA,KAAK6R,YAAYtS,KAAKS,0BAY5G,SAAIoH,OAAMnC,yDAAO,GAAIZ,yDAAU,UACpBrE,KAAKuR,MAAMO,IAAI1K,EAAMnC,EAAMZ,GAASkF,KAAKvJ,KAAK4R,UAAUrS,KAAKS,aAAaA,KAAK6R,YAAYtS,KAAKS,6BAY3G,SAAOoH,OAAM/C,yDAAU,UACZrE,KAAKuR,aAAanK,EAAM/C,GAASkF,KAAKvJ,KAAK4R,UAAUrS,KAAKS,aAAaA,KAAK6R,YAAYtS,KAAKS,4BAWxG,SAAMoH,OAAMnC,yDAAO,GAAIZ,yDAAU,UACtBrE,KAAKuR,MAAMQ,MAAM3K,EAAMnC,EAAMZ,GAASkF,KAAKvJ,KAAK4R,UAAUrS,KAAKS,aAAaA,KAAK6R,YAAYtS,KAAKS,gBC/H3GgS,mBAAuBxC,iFCoBRyC,yBACLC,OAAQC,iGAKD,CAAC,YAAa,cAAe,OAAQ,QAAS,UAAW,SAAU,OAAQ,QAAS,QAAS,OAAQ,8BAE1G,CACV,CAAC,IAAIC,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,WAAY,MAAO,SAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,eAAgB,MAAO,QACnC,CAAC,IAAIA,OAAO,iBAAkB,MAAO,OACrC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,SAAU,MAAO,SAC7B,CAAC,IAAIA,OAAO,yBAA0B,MAAO,SAC7C,CAAC,IAAIA,OAAO,YAAa,MAAO,OAChC,CAAC,IAAIA,OAAO,OAAQ,MAAO,OAC3B,CAAC,IAAIA,OAAO,wBAAyB,MAAO,WAC5C,CAAC,IAAIA,OAAO,UAAW,MAAO,OAC9B,CAAC,IAAIA,OAAO,mBAAoB,MAAO,SACvC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,wBAAyB,MAAO,UAC5C,CAAC,IAAIA,OAAO,eAAgB,MAAO,SACnC,CAAC,IAAIA,OAAO,UAAW,MAAO,SAC9B,CAAC,IAAIA,OAAO,KAAM,MAAO,KACzB,CAAC,IAAIA,OAAO,IAAK,MAAO,8BAGZ,CACZ,CAAC,IAAIA,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,cAAe,MAAO,MAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,QAC/B,CAAC,IAAIA,OAAO,gEAAiE,MAAO,WACpF,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,YAAa,MAAO,MAChC,CAAC,IAAIA,OAAO,aAAc,MAAO,OACjC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,qBAAsB,MAAO,OACzC,CAAC,IAAIA,OAAO,YAAa,MAAO,WAChC,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,MACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,UAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,MAC7B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,oBAAqB,MAAO,QACxC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,oBAAqB,MAAO,MACxC,CAAC,IAAIA,OAAO,UAAW,MAAO,MAC9B,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,aAAc,MAAO,MACjC,CAAC,IAAIA,OAAO,KAAM,MAAO,kCAGR,CAAC,MAAO,KAAM,MAAO,IAAK,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,OAAQ,OAAQ,KAAM,OAAQ,MAAO,MAAO,KAAM,OAAQ,OAAQ,0BAExJ,IAAIA,OAAO,cAAe,wBAC1B,IAAIA,OAAO,IAAK,+BACT,IAAIA,OAAO,OAAQ,yBACzB,IAAIA,OAAO,UAAW,8BACjB,IAAIA,OAAO,YAhEnBC,IAAMH,OACNC,MAAQA,+BAiEjB,kBACWnS,KAAKqS,8BAGhB,SAAWA,EAAKC,EAAOC,EAAMC,MACrBA,EACAH,EAAMG,YAEOD,EAAK3S,QAAQyS,EAAII,gBAAkB,OAEvC,IAAIC,EAAI,EAAGA,EAAIJ,EAAMxU,OAAQ4U,OAC1BL,EAAIM,MAAML,EAAMI,GAAG,IAAK,CACxBL,EAAMA,EAAI5U,QAAQ6U,EAAMI,GAAG,GAAIJ,EAAMI,GAAG,sBAQnDL,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,2BASX,SAAUA,OAAKO,yDAAS,YACpBP,EAAMA,GAAOrS,KAAKqS,IAEXrS,KAAK6S,WAAWR,EAAKrS,KAAK8S,YAAa9S,KAAK+S,iBAAkBH,8BASzE,SAAYP,EAAKW,UACbX,EAAMA,GAAOrS,KAAKqS,IAEXrS,KAAK6S,WAAWR,EAAKrS,KAAKiT,cAAejT,KAAK+S,iBAAkBC,2BAO3E,SAASX,EAAKa,WAGNC,GAFJd,EAAMA,GAAOrS,KAAKqS,KAEC3K,MAAM,KAChB1J,EAAI,EAAGA,EAAImV,EAASrV,OAAQE,IAAK,SAClCoV,EAAUD,EAASnV,GAAG0J,MAAM,KAGvBgL,EAFGQ,GAAkBlV,EAAI,IAAMmV,EAASrV,OAAS,EAAI,EAE1C4U,EAAIU,EAAQtV,OAAQ4U,IACpCU,EAAQV,GAAKU,EAAQV,GAAGW,OAAO,GAAGC,cAAgBF,EAAQV,GAAGa,UAAU,GAE3EJ,EAASnV,GAAKoV,EAAQhN,KAAK,OAE/BiM,EAAMc,EAAS/M,KAAK,OAGG,IAAnB8M,EAAyB,KACrBM,EAAQnB,EAAIgB,OAAO,GAAGZ,cACtBgB,EAAOpB,EAAInU,MAAM,GACrBmU,EAAMmB,EAAQC,cAIbpB,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,4BAOX,SAAWA,WAGHc,GAFJd,EAAMA,GAAOrS,KAAKqS,KAEC3K,MAAM,MAChB1J,EAAI,EAAGA,EAAImV,EAASrV,OAAQE,IACjCmV,EAASnV,GAAKmV,EAASnV,GAAGP,QAAQuC,KAAK0T,UAAW,OAClDP,EAASnV,GAAKmV,EAASnV,GAAGP,QAAQuC,KAAK2T,eAAgB,WAE3DtB,EAAMc,EAAS/M,KAAK,KAAKqM,mBAGpBJ,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,0BAOX,SAASA,EAAKa,UAKVb,GADAA,GADIA,GAFJA,EAAMA,GAAOrS,KAAKqS,KAEJI,eACJhV,QAAQuC,KAAK4T,SAAU,KACvBnW,QAAQuC,KAAK6T,SAAU,KAC5BX,IACDb,EAAMrS,KAAK8T,WAAWzB,SAIrBA,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,4BAOX,SAAWA,UAIPA,GADAA,GAFAA,EAAMA,GAAOrS,KAAKqS,KAERI,eACAc,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,QAGnDlB,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,2BAOX,SAAUA,UAINA,GADAA,GAFAA,EAAMA,GAAOrS,KAAKqS,KAER5U,QAAQuC,KAAK+T,gBAAiB,MAC9BtB,mBAGLJ,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,yBAQX,SAAQA,EAAK2B,GACT3B,EAAMA,GAAOrS,KAAKqS,KAGI,IAAlB2B,GACA3B,EAAMrS,KAAKiU,SAAS5B,GACpBA,EAAMrS,KAAKkU,WAAW7B,IAEtBA,EAAMA,EAAII,sBAIVW,GADJf,EAAMA,EAAI5U,QAAQuC,KAAK6T,SAAU,MACfnM,MAAM,KACfgL,EAAI,EAAGA,EAAIU,EAAQtV,OAAQ4U,IAAK,SACjCyB,EAAIf,EAAQV,GAAGhL,MAAM,KAChB1J,EAAI,EAAGA,EAAImW,EAAErW,OAAQE,IACtBgC,KAAKoU,mBAAmBxU,QAAQuU,EAAEnW,GAAGyU,eAAiB,IACtD0B,EAAEnW,GAAKgC,KAAK8T,WAAWK,EAAEnW,KAGjCoV,EAAQV,GAAKyB,EAAE/N,KAAK,YAGxBiM,GADAA,EAAMe,EAAQhN,KAAK,MACTmN,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,QAGnDlB,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,4BAMX,SAAWA,OAGHe,GAFJf,EAAMA,GAAOrS,KAAKqS,KAEA3K,MAAM,aACxB2K,EAAMe,EAAQA,EAAQtV,OAAS,QAG1BuU,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,0BAMX,SAASA,UACLA,EAAMA,GAAOrS,KAAKqS,IAElBA,EAAMrS,KAAKqU,UAAUrU,KAAKkU,WAAW7B,SAGhCA,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,0BAMX,SAASA,UACLA,EAAMA,GAAOrS,KAAKqS,IAElBA,EAAMrS,KAAKsU,YAAYtU,KAAKiU,SAAS5B,SAGhCA,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,4BAOX,SAAWA,OAAKkC,iEACZlC,EAAMA,GAAOrS,KAAKqS,IAElBA,EAAMrS,KAAKkU,WAAWlU,KAAKwU,WAAWnC,KAASkC,EAAa,GAAK,KAAO,UAGnElC,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,4BAMX,SAAWA,WAGHe,GAFJf,EAAMA,GAAOrS,KAAKqS,KAEA3K,MAAM,KACfgL,EAAI,EAAGA,EAAIU,EAAQtV,OAAQ4U,IAAK,IAE3B+B,MADFC,SAAStB,EAAQV,IACV,KACPiC,EAAMvB,EAAQV,GAAGa,UAAUH,EAAQV,GAAG5U,OAAS,GAC/C8W,EAAKxB,EAAQV,GAAGa,UAAUH,EAAQV,GAAG5U,OAAS,GAC9C+W,EAAM,KACC,MAAPF,GAAsB,MAAPA,GAAsB,MAAPA,IACnB,MAAPC,EACAC,EAAM,KACQ,MAAPD,EACPC,EAAM,KACQ,MAAPD,IACPC,EAAM,OAGdzB,EAAQV,IAAMmC,UAGtBxC,EAAMe,EAAQhN,KAAK,UAGdiM,IAAMA,GAEQ,IAAfrS,KAAKmS,MACEnS,KAIJqS,0BAMX,eACUyC,EAAOtP,OAAOC,OAAO3G,WACrBiW,EAAW,IAAI9C,EAAO,MAAM,GAC5B3B,EAASxR,UAAU,UACzBgW,EAAKE,QAE2B,mBAArBD,EAASzE,GACTyE,EAASzE,SAATyE,IAAoBD,IAGxB,cAITT,GAAY,eACRS,GAAQ,+CAAgBhW,mBAEvBmT,GAAOgD,aAAPhD,KAAiB6C,KAGtBR,GAAc,eACVQ,GAAQ,iDAAkBhW,mBAEzBmT,GAAOgD,aAAPhD,KAAiB6C,KAetBb,GAAW,eACPa,GAAQ,8CAAehW,mBAEtBmT,GAAOgD,aAAPhD,KAAiB6C,KAStBI,GAAY,eACRJ,GAAQ,+CAAgBhW,mBAEvBmT,GAAOgD,aAAPhD,KAAiB6C,KAqBtBK,GAAW,eACPL,GAAQ,8CAAehW,mBAEtBmT,GAAOgD,aAAPhD,KAAiB6C,KC1ftBM,GAAY,CACdjG,QAAAA,GACAF,OAAAA,GACA1B,OAAAA,GACAP,MAAAA,EACAI,QAAAA,GACAI,MAAAA,GACAc,eAAAA,GACAC,QAAAA,GACAW,OAAAA,GACAb,SAAAA,GACAe,KAAAA,GACAC,YAAAA,GACAC,YAAAA,GACAC,aAAAA,IAGE8F,GAAW,CACbzF,eAAAA,GACA0B,YAAAA,GACAU,eAAAA,IAGEsD,iDAEOF,UAAYA,QACZC,SAAWA,GAETrV,KAAKsE,kBAAUxF,2CAG1B,SAAOqG,EAAMoQ,OACH3W,EAAMyV,GAAUlP,GAChB+G,EAAS1O,2BAAIsB,WAAWZ,MAAM,OAE/B8B,KAAKpB,SACA,IAAIwL,MAAM,yCAGfpK,KAAKpB,GAAK2W,SACL,IAAInL,mBAAYkK,GAAYnP,qBAAeoQ,2BAG1CvV,KAAKpB,GAAK2W,KAAcrJ,aAIrC5H,GAAS,oBACAgR,8BAAYxW,aC9CrB0W,GAAqB,SAAC1M,OAAOf,yDAAU,MACzCe,EAAMf,QAAUxK,EAAQwK,GAAWA,EAAU,CAACA,IAE1CxK,EAAQwK,UASRA,aAAmBD,GACnBC,EAAQ0N,OAAO3M,GAGZA,MAZE,IAAI9K,EAAI,EAAGA,EAAI+J,EAAQjK,OAAQE,IAAK,KAC/BkK,EAASH,EAAQ/J,GAEvB8K,EAAM4M,cAAcxN,KA+B1Ba,yBACUV,EAAUD,OAAS/D,yDAAU,kBAChCgE,SAAWA,OACXD,QAAUA,GAAWhE,SACrB+H,UAAYkI,GAAUhM,QACtBsN,QAAU,IAAInX,OACd6F,QAAUA,OACVqR,cAAcrR,EAAQ0D,gDAG/B,eAAcA,yDAAU,UACbyN,GAAmBxV,KAAM+H,0BAGpC,SAAQ6N,UAGGA,2BAGX,SAAU3O,UACC3C,GAAO,WAAY6Q,GAASnV,KAAKqI,UAAWpB,EAAMjH,KAAKoI,mCAGlE,SAAWnB,UA3CI,SAAC6B,EAAO7B,MACmB,mBAA/B6B,EAAMzE,QAAQ2E,cACrBF,EAAMzE,QAAQ2E,aAAa/B,GAG3B1J,EAAQ0J,GAAO,SACT4O,EAAa,GAEV7X,EAAI,EAAGA,EAAIiJ,EAAKnJ,OAAQE,IAC7B6X,EAAWnV,KAAKoI,EAAMyD,WAAWtF,EAAKjJ,cAG/BQ,EAAcqX,OAGvBD,EAAmB9M,EAAM9B,UAAUC,UAClC6B,EAAMgN,QAAQF,GA4BVrJ,CAAWvM,KAAMiH,yBAG5B,sBAAOrC,yDAAa,GAAIP,yDAAU,UACvB,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRzG,EAAKrB,QAAQkE,eAAQ7C,EAAK0C,WAAavH,EAAYP,GAASkF,KAAKE,EAAK8C,WAAWhN,KAAKkK,UAAayG,UAApH1G,SAENyG,EAAQzG,6HAIhB,SAAOG,cAAI/E,yDAAa,GAAIP,yDAAU,UAC3B,IAAI2L,oDAAQ,WAAOC,EAASC,yGACR9P,EAAKgI,QAAQ0J,cAAO1R,EAAK+L,sBAAaxC,GAAM/E,EAAYP,GAASkF,KAAKnJ,EAAKmM,WAAWhN,KAAKa,UAAa8P,UAAzH1G,SAENyG,EAAQzG,iIAIhB,SAAWG,cAAItF,yDAAU,UACd,IAAI2L,oDAAQ,WAAOC,EAASC,yGACR5N,EAAK8F,QAAQ5G,cAAOc,EAAK6J,sBAAaxC,GAAM,GAAItF,GAASkF,KAAKjH,EAAKiK,WAAWhN,KAAK+C,UAAa4N,UAAjH1G,SAENyG,EAAQzG,8HAIhB,sBAAQnF,yDAAU,UACP,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRpG,EAAK1B,QAAQ5G,cAAOsI,EAAKqC,WAAa,GAAI9H,GAASkF,KAAKO,EAAKyC,WAAWhN,KAAKuK,UAAaoG,UAA3G1G,SAENyG,EAAQzG,4HAIhB,sBAAMsH,yDAAQ,GAAIzM,yDAAU,UACjB,IAAI2L,oDAAQ,WAAOC,EAASC,yGACRlF,EAAK5C,QAAQ5G,cAAOwJ,EAAKmB,WAAa2E,EAAOzM,GAASkF,KAAKyB,EAAKuB,WAAWhN,KAAKyL,UAAakF,UAA9G1G,SAENyG,EAAQzG,kIAIhB,sBAAYsH,yDAAQ,GAAIzM,yDAAU,UAC9ByM,EAAMiF,QAAS,EAER,IAAI/F,oDAAQ,WAAOC,EAASC,yGACRtE,EAAKxD,QAAQ5G,cAAOoK,EAAKO,WAAa2E,EAAOzM,GAASkF,KAAKqC,EAAKW,WAAWhN,KAAKqM,UAAasE,UAA9G1G,SAENyG,EAAQzG,8HAIhB,SAAQnG,cAAQgB,yDAAU,GAChBsF,EAAKvG,EAAWC,GAAUA,EAAO8F,aAAa,MAAQ9F,SAErD,IAAI2M,oDAAQ,WAAOC,EAASC,yGACR8F,EAAK5N,yBAAkB4N,EAAK7J,sBAAaxC,GAAM,GAAItF,GAASkF,KAAKyM,EAAKzJ,WAAWhN,KAAKyW,UAAa9F,UAApH1G,SAENyG,EAAQzG,gHChGCyM,yBASLlG,aAAWN,yDAAS,GAAIyG,4EAC3BtN,kBAAU6G,EAAO7G,uBAAW,UAC5BvE,QAAU,CACXuE,QAAS5I,KAAK4I,QACd8G,eAAMD,EAAOC,oBAAQ,2BACrBvD,oBAAWsD,EAAOtD,yBAAanM,KAAK4I,QACpCsN,MAAAA,EACAnG,UAAAA,GAGqB,iBAAdA,GAA+C,IAArBA,EAAUjS,aACrC,IAAIsM,MAAM,oDAGf3G,KAAuBsM,EAAU0C,cAAc0D,WAAW,WACrD,IAAI/L,MAAM,sFAGfhC,QAAUqH,EAAOrH,SAAWhE,EAAcpE,KAAKqE,cAE/C+R,OAAS,IAAIrN,GAAM,QAAS/I,KAAKoI,SAASsN,cAAc1J,QACxDqK,SAAW,IAAItN,GAAM,SAAU/I,KAAKoI,cACpCkO,OAAS,IAAIvN,GAAM,QAAS/I,KAAKoI,cACjCmO,QAAU,IAAIxN,GAAM,SAAU/I,KAAKoI,SAASsN,cAAclH,SAC1DgI,SAAW,IAAIzN,GAAM,UAAW/I,KAAKoI,cACrCqO,QAAU,IAAI1N,GAAM,SAAU/I,KAAKoI,cACnCsO,SAAW,IAAI3N,GAAM,UAAW/I,KAAKoI,6CAO9C,SAAWA,QACFA,QAAUA,4BAGnB,kBACWpI,KAAKoI,qCAThB,oBACe6N,6BAAanX"} \ No newline at end of file From 44d1a4ca5e8b5fc88b05e75eb0baedf9ac5670d2 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Tue, 24 Dec 2024 15:48:10 +0800 Subject: [PATCH 3/5] my build --- dist/@fleetbase/sdk.min.js | 2 ++ dist/@fleetbase/sdk.min.js.map | 1 + dist/cjs/fleetbase.js | 2 ++ dist/cjs/fleetbase.js.map | 1 + dist/esm/fleetbase.js | 2 ++ dist/esm/fleetbase.js.map | 1 + 6 files changed, 9 insertions(+) create mode 100644 dist/@fleetbase/sdk.min.js create mode 100644 dist/@fleetbase/sdk.min.js.map create mode 100644 dist/cjs/fleetbase.js create mode 100644 dist/cjs/fleetbase.js.map create mode 100644 dist/esm/fleetbase.js create mode 100644 dist/esm/fleetbase.js.map diff --git a/dist/@fleetbase/sdk.min.js b/dist/@fleetbase/sdk.min.js new file mode 100644 index 0000000..5ac8afb --- /dev/null +++ b/dist/@fleetbase/sdk.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios"),require("date-fns")):"function"==typeof define&&define.amd?define(["exports","axios","date-fns"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/sdk"]={},t.axios)}(this,(function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e);function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function o(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,i=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(F(t))if(i.length<=C)t.splice.apply(t,[e,n].concat(E(i)));else{t.splice(e,n);for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:N,n=[],i=new Set,r="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=r(t);i.has(e)||(i.add(e),n.push(t))})),n},q=function(t){return t instanceof Q},B=function(t,e){return F(t)?t[e]:q(t)?t.objectAt(e):null},U=function(t,e){return 2===D.length?function(n){return e===n[t]}:function(e){return Boolean(e[t])}},I=function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=t.length,r=n;r2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3?arguments[3]:void 0,r=t.length;n<0&&(n+=r);var o=i&&e!=e?function(t){return t!=t}:function(t){return t===e};return I(t,o,n)},G=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return L(t,e,n,[]),t},H=function(t,e,n){return L(t,e,0,[n]),n},Q=function(t){d(n,t);var e=A(n);function n(){for(var t=arguments.length,i=new Array(t),r=0;r0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return B(this,0)}},{key:"last",get:function(){return B(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return L(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return B(e,t)}))}},{key:"objectAt",value:function(t){return B(this,t)}},{key:"indexOf",value:function(t,e){return M(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var i=e;i>=0;i--)if(B(this,i)===t)return i;return-1}},{key:"includes",value:function(t,e){return-1!==M(this,t,e,!0)}},{key:"findBy",value:function(){return J(this,U.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return I(this,U.apply(void 0,arguments))}},{key:"isEvery",value:function(){return K(this,U.apply(void 0,arguments))}},{key:"isAny",value:function(){return W(this,U.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i=0;){B(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(k(Array)),V=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=s(t);if("object"===n){var i=t.size;if("number"==typeof i)return!i}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var r=t.length;if("number"==typeof r)return!r}return!1},Z=function(t){return V(t)||"string"==typeof t&&!1===/\S/.test(t)};function Y(t){return isFinite(t)&&Math.abs(t)<=90}function X(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function tt(t){return t instanceof vt}var et=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},nt=function(){var t,e,n,i,r;return!("undefined"==typeof process||"object"!==s(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(i=window)||void 0===i||null===(r=i.navigator)||void 0===r?void 0:r.product))},it=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return nt()?Jt("adapter","NodeAdapter",t):Jt("adapter","BrowserAdapter",t)},rt=Array.isArray,ot=function(){function t(e){c(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return l(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=o(o({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),st=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;c(this,t),this.type="Point",this.coordinates=[n,e]}return l(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=x(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}(),at=function(t){return"object"===s(t)&&!V(null==t?void 0:t.attributes)&&"object"===s(null==t?void 0:t.attributes)},ut=function(t,e){var n=t();return Array.isArray(n)||"object"===s(n)?ct(n,e):null},ct=function t(e,n){var i=e,r=s(e),o="object"===r,a="function"===r,u=Array.isArray(e),c="string"===s(n)&&n.includes(".")?n.split("."):[n];if(u||o){for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;c(this,t),this.actions=e,this.bind=n}return l(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===s(this.actions))for(var n in this.actions){var i=this.actions[n];"function"==typeof i?ht(e,n,i.bind(e)):ht(e,n,i)}return this}}]),t}(),vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};c(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=i,this.options=r,this.version=r.version||"v1",this.setAdapter(n)}return l(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Mt(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return V(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===s(t))return this.setAttributes(t);var i=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return ht(this.attributes,t,n),ht(this.dirtyAttributes,t,i),F(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:i,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=ct(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===i?n:i}},{key:"hasAttribute",value:function(t){if(F(t)){var e,n=t,i=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return i.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return F(t)?this.hasAttribute(t)&&t.every((function(t){return!V(e.getAttribute(t))})):this.hasAttribute(t)&&!V(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!F(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=o(o({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),dt=new lt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,i).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,i)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,i)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),ft=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"order",o({actions:dt},r))}return l(n,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),n}(vt),gt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"payload",r)}return l(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new Q(this.waypoints)}}]),n}(vt),pt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"entity",r)}return n}(vt),yt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"place",r)}return l(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return tt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.getAttribute("coordinates"),o=x(r,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new st(s,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,i)}}]),n}(vt),bt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"waypoint",r)}return n}(yt),kt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"tracking-status",r)}return n}(vt),mt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"vehicle",r)}return n}(vt),wt=new lt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(et(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",o({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",o({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),At=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"driver",o({actions:wt},r))}return l(n,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),n}(vt),xt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"vendor",r)}return n}(vt),Et=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"contact",r)}return n}(vt),Rt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"zone",r)}return n}(vt),$t=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-area",r)}return n}(vt),jt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-rate",r)}return n}(vt),Ot=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-quote",r)}return l(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(vt),St=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"organization",r)}return n}(vt),_t=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},Pt=function(t){d(n,t);var e=A(n);function n(t){var i;return c(this,n),(i=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),i}return l(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=o(o({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(r.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),o({method:n,mode:r.mode||"cors",headers:new Headers(o(o({},e.headers||{}),r.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Z(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),n}(_t),zt=function(t){d(n,t);var e=A(n);function n(t){var r;return c(this,n),(r=e.call(this,t)).axios=i.default.create({baseURL:"".concat(r.host,"/").concat(r.namespace),headers:{Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),r}return l(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=o(o({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(F(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Z(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(i?"?".concat(i):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),n}(_t),Ft=function(t){d(n,t);var e=A(n);function n(){return c(this,n),e.apply(this,arguments)}return n}(_t),Dt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];c(this,t),v(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),v(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),v(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),v(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),v(this,"idSuffix",new RegExp("(_ids|_id)$","g")),v(this,"underbar",new RegExp("_","g")),v(this,"spaceOrUnderbar",new RegExp("[ _]","g")),v(this,"uppercase",new RegExp("([A-Z])","g")),v(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return l(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,i){if(i)t=i;else if(!(n.indexOf(t.toLowerCase())>-1))for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),i=0;i1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=F(e)?e:[e],!F(e))return e instanceof lt&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};c(this,t),this.resource=e,this.adapter=n||it(),this.namespace=Ct(e),this.storage=new Q,this.options=i,this.extendActions(i.actions)}return l(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Wt(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return Jt("resource",qt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return Kt(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var r=u(regeneratorRuntime.mark((function r(o,s){var a;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:a=r.sent,o(a);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=u(regeneratorRuntime.mark((function n(i,r){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(r);case 2:o=n.sent,i(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=tt(t)?t.getAttribute("id"):t;return new Promise(function(){var t=u(regeneratorRuntime.mark((function t(r,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,r(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),Gt=function(){function t(e){var n,i,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(c(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(i=o.host)&&void 0!==i?i:"https://api.fleetbase.io",namespace:null!==(r=o.namespace)&&void 0!==r?r:this.version,debug:s,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!nt()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||it(this.options),this.orders=new Mt("order",this.adapter).extendActions(dt),this.entities=new Mt("entity",this.adapter),this.places=new Mt("place",this.adapter),this.drivers=new Mt("driver",this.adapter).extendActions(wt),this.vehicles=new Mt("vehicle",this.adapter),this.vendors=new Mt("vendor",this.adapter),this.contacts=new Mt("contact",this.adapter)}return l(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return y(t,Array.prototype.slice.call(arguments))}}]),t}();t.Adapter=_t,t.BrowserAdapter=Pt,t.Collection=Q,t.Contact=Et,t.Driver=At,t.EmberJsAdapter=Ft,t.Entity=pt,t.GoogleAddress=ot,t.NodeAdapter=zt,t.Order=ft,t.Organization=St,t.Payload=gt,t.Place=yt,t.Point=st,t.Resource=vt,t.ServiceArea=$t,t.ServiceQuote=Ot,t.ServiceRate=jt,t.Store=Mt,t.StoreActions=lt,t.TrackingStatus=kt,t.Vehicle=mt,t.Vendor=xt,t.Waypoint=bt,t.Zone=Rt,t.camelize=Nt,t.classify=qt,t.dasherize=Tt,t.default=Gt,t.extendStoreActions=Wt,t.isLatitude=Y,t.isLongitude=X,t.isNodeEnvironment=nt,t.isResource=tt,t.pluralize=Ct,t.singularize=Lt})); +//# sourceMappingURL=sdk.min.js.map diff --git a/dist/@fleetbase/sdk.min.js.map b/dist/@fleetbase/sdk.min.js.map new file mode 100644 index 0000000..24e5283 --- /dev/null +++ b/dist/@fleetbase/sdk.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sdk.min.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/resources/organization.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","import Resource from '../resource';\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', options);\n }\n}\n\nexport default Organization;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","uniqBy","key","ret","seen","Set","getter","get","forEach","val","has","add","push","mixed","Collection","objectAt","index","iter","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","withNaNCheck","removeAt","insertAt","this","indexes","map","idx","_this2","object","methodName","args","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","includes","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isLatitude","coordinate","isFinite","Math","abs","isLongitude","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Organization","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","dasherize","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","serialized","resourceInstance","deposit","storage","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/fleetbase.js b/dist/cjs/fleetbase.js new file mode 100644 index 0000000..19ca27e --- /dev/null +++ b/dist/cjs/fleetbase.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("axios");function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}require("date-fns");var n=e(t);function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(E(t))if(r.length<=6e4)t.splice.apply(t,[e,n].concat(w(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;n<0&&(n+=i);var o=r&&e!=e?function(t){return t!=t}:function(t){return t===e};return P(t,o,n)},L=function(t,e,n){return $(t,e,0,[n]),n},N=function(t){v(n,y(Array));var e=k(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return S(this,0)}},{key:"last",get:function(){return S(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return $(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return S(e,t)}))}},{key:"objectAt",value:function(t){return S(this,t)}},{key:"indexOf",value:function(t,e){return C(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(S(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==C(this,t,e,!0)}},{key:"findBy",value:function(){return z(this,_.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return P(this,_.apply(void 0,arguments))}},{key:"isEvery",value:function(){return D(this,_.apply(void 0,arguments))}},{key:"isAny",value:function(){return F(this,_.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:j,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return L(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return $(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=S(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=S(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return L(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){S(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),T=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=o(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},q=function(t){return T(t)||"string"==typeof t&&!1===/\S/.test(t)};function B(t){return t instanceof Z}var U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},I=function(){var t,e,n,r,i;return!("undefined"==typeof process||"object"!==o(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(r=window)||void 0===r||null===(i=r.navigator)||void 0===i?void 0:i.product))},J=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return I()?$t("adapter","NodeAdapter",t):$t("adapter","BrowserAdapter",t)},W=Array.isArray,M=function(){function t(e){u(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return h(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=i(i({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),K=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;u(this,t),this.type="Point",this.coordinates=[n,e]}return h(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=m(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}();"undefined"==typeof arguments||arguments;var G=function(t,e){var n=t();return Array.isArray(n)||"object"===o(n)?H(n,e):null},H=function t(e,n){var r,i=e,s=o(e),a="object"===s,u="function"===s,c=Array.isArray(e),h="string"===o(n)&&n.includes(".")?n.split("."):[n];if(c||a){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u(this,t),this.actions=e,this.bind=n}return h(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===o(this.actions))for(var n in this.actions){var r=this.actions[n];"function"==typeof r?Q(e,n,r.bind(e)):Q(e,n,r)}return this}}]),t}(),Z=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};u(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return h(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Ot(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return T(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===o(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Q(this.attributes,t,n),Q(this.dirtyAttributes,t,r),E(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=H(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(E(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return E(t)?this.hasAttribute(t)&&t.every((function(t){return!T(e.getAttribute(t))})):this.hasAttribute(t)&&!T(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!E(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=i(i({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Y=new V({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),X=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"order",i({actions:Y},o))}return h(n,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),n}(),tt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"payload",i)}return h(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new N(this.waypoints)}}]),n}(),et=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"entity",i)}return n}(),nt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"place",i)}return h(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return B(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getAttribute("coordinates"),o=m(i,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new K(s,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,r)}}]),n}(),rt=function(t){v(n,nt);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"waypoint",i)}return n}(),it=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"tracking-status",i)}return n}(),ot=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vehicle",i)}return n}(),st=new V({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(U(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",i({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",i({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),at=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"driver",i({actions:st},o))}return h(n,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),n}(),ut=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vendor",i)}return n}(),ct=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"contact",i)}return n}(),ht=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"zone",i)}return n}(),lt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-area",i)}return n}(),vt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-rate",i)}return n}(),dt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-quote",i)}return h(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),ft=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"organization",i)}return n}(),gt=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},pt=function(t){v(n,gt);var e=k(n);function n(t){var r;return u(this,n),(r=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),r}return h(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=i(i({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),i({method:n,mode:o.mode||"cors",headers:new Headers(i(i({},e.headers||{}),o.headers||{}))},r)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),n}(),yt=function(t){v(r,gt);var e=k(r);function r(t){var i;return u(this,r),(i=e.call(this,t)).axios=n.default.create({baseURL:"".concat(i.host,"/").concat(i.namespace),headers:{Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),i}return h(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=i(i({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(E(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),r}(),bt=function(t){v(n,gt);var e=k(n);function n(){return u(this,n),e.apply(this,arguments)}return n}(),kt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];u(this,t),l(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),l(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),l(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),l(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),l(this,"idSuffix",new RegExp("(_ids|_id)$","g")),l(this,"underbar",new RegExp("_","g")),l(this,"spaceOrUnderbar",new RegExp("[ _]","g")),l(this,"uppercase",new RegExp("([A-Z])","g")),l(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return h(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=E(e)?e:[e],!E(e))return e instanceof V&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};u(this,t),this.resource=e,this.adapter=n||J(),this.namespace=mt(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return jt(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return $t("resource",At(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),E(e)){for(var n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var i=a(regeneratorRuntime.mark((function i(o,s){var a;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,r).then(e.afterFetch.bind(e)).catch(s);case 2:a=i.sent,o(a);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=a(regeneratorRuntime.mark((function n(r,i){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(i);case 2:o=n.sent,r(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=B(t)?t.getAttribute("id"):t;return new Promise(function(){var t=a(regeneratorRuntime.mark((function t(i,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(r),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,i(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),St=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:s,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!I()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||J(this.options),this.orders=new Ot("order",this.adapter).extendActions(Y),this.entities=new Ot("entity",this.adapter),this.places=new Ot("place",this.adapter),this.drivers=new Ot("driver",this.adapter).extendActions(st),this.vehicles=new Ot("vehicle",this.adapter),this.vendors=new Ot("vendor",this.adapter),this.contacts=new Ot("contact",this.adapter)}return h(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return p(t,Array.prototype.slice.call(arguments))}}]),t}();exports.Adapter=gt,exports.BrowserAdapter=pt,exports.Collection=N,exports.Contact=ct,exports.Driver=at,exports.EmberJsAdapter=bt,exports.Entity=et,exports.GoogleAddress=M,exports.NodeAdapter=yt,exports.Order=X,exports.Organization=ft,exports.Payload=tt,exports.Place=nt,exports.Point=K,exports.Resource=Z,exports.ServiceArea=lt,exports.ServiceQuote=dt,exports.ServiceRate=vt,exports.Store=Ot,exports.StoreActions=V,exports.TrackingStatus=it,exports.Vehicle=ot,exports.Vendor=ut,exports.Waypoint=rt,exports.Zone=ht,exports.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return kt.invoke.apply(kt,w(t))},exports.classify=At,exports.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return kt.invoke.apply(kt,w(t))},exports.default=St,exports.extendStoreActions=jt,exports.isLatitude=function(t){return isFinite(t)&&Math.abs(t)<=90},exports.isLongitude=function(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90},exports.isNodeEnvironment=I,exports.isResource=B,exports.pluralize=mt,exports.singularize=wt; +//# sourceMappingURL=fleetbase.js.map diff --git a/dist/cjs/fleetbase.js.map b/dist/cjs/fleetbase.js.map new file mode 100644 index 0000000..1db4230 --- /dev/null +++ b/dist/cjs/fleetbase.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/resources/organization.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","import Resource from '../resource';\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', options);\n }\n}\n\nexport default Organization;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n"],"names":["isArray","Array","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","val","withNaNCheck","insertAt","this","indexes","map","idx","_this2","object","methodName","args","ret","forEach","push","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","seen","Set","getter","get","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Organization","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","storage","resourceInstance","serialized","deposit","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","coordinate","isFinite","Math","abs"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/fleetbase.js b/dist/esm/fleetbase.js new file mode 100644 index 0000000..f4d21e2 --- /dev/null +++ b/dist/esm/fleetbase.js @@ -0,0 +1,2 @@ +import t from"axios";import"date-fns";function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function n(t){for(var n=1;nt.length)&&(e=t.length);for(var n=0,i=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(A(t))if(i.length<=6e4)t.splice.apply(t,[e,n].concat(k(i)));else{t.splice(e,n);for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:0,i=t.length,r=n;r2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3?arguments[3]:void 0,r=t.length;n<0&&(n+=r);var o=i&&e!=e?function(t){return t!=t}:function(t){return t===e};return S(t,o,n)},D=function(t,e,n){return $(t,e,0,[n]),n},C=function(t){h(n,g(Array));var e=y(n);function n(){for(var t=arguments.length,i=new Array(t),r=0;r0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return j(this,0)}},{key:"last",get:function(){return j(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return $(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return j(e,t)}))}},{key:"objectAt",value:function(t){return j(this,t)}},{key:"indexOf",value:function(t,e){return z(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var i=e;i>=0;i--)if(j(this,i)===t)return i;return-1}},{key:"includes",value:function(t,e){return-1!==z(this,t,e,!0)}},{key:"findBy",value:function(){return _(this,O.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return S(this,O.apply(void 0,arguments))}},{key:"isEvery",value:function(){return F(this,O.apply(void 0,arguments))}},{key:"isAny",value:function(){return P(this,O.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:R,n=[],i=new Set,r="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=r(t);i.has(e)||(i.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return D(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return $(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=j(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=j(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return D(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){j(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),L=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=i(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var o=t.length;if("number"==typeof o)return!o}return!1},N=function(t){return L(t)||"string"==typeof t&&!1===/\S/.test(t)};function T(t){return isFinite(t)&&Math.abs(t)<=90}function q(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function B(t){return t instanceof Z}var U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},I=function(){var t,e,n,r,o;return!("undefined"==typeof process||"object"!==i(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(r=window)||void 0===r||null===(o=r.navigator)||void 0===o?void 0:o.product))},J=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return I()?Ot("adapter","NodeAdapter",t):Ot("adapter","BrowserAdapter",t)},W=Array.isArray,K=function(){function t(e){s(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return u(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=n(n({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),M=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;s(this,t),this.type="Point",this.coordinates=[n,e]}return u(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=b(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}();"undefined"==typeof arguments||arguments;var H=function(t,e){var n=t();return Array.isArray(n)||"object"===i(n)?G(n,e):null},G=function t(e,n){var r,o=e,s=i(e),a="object"===s,u="function"===s,c=Array.isArray(e),h="string"===i(n)&&n.includes(".")?n.split("."):[n];if(c||a){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;s(this,t),this.actions=e,this.bind=n}return u(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===i(this.actions))for(var n in this.actions){var r=this.actions[n];"function"==typeof r?Q(e,n,r.bind(e)):Q(e,n,r)}return this}}]),t}(),Z=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};s(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=i,this.options=r,this.version=r.version||"v1",this.setAdapter(n)}return u(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new _t(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return L(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===i(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Q(this.attributes,t,n),Q(this.dirtyAttributes,t,r),A(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=G(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===i?n:i}},{key:"hasAttribute",value:function(t){if(A(t)){var e,n=t,i=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return i.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return A(t)?this.hasAttribute(t)&&t.every((function(t){return!L(e.getAttribute(t))})):this.hasAttribute(t)&&!L(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!A(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},i=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=n(n({},i),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Y=new V({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,i).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,i)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,i)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),X=function(t){h(i,Z);var e=y(i);function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,i),e.call(this,t,r,"order",n({actions:Y},o))}return u(i,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),i}(),tt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"payload",r)}return u(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new C(this.waypoints)}}]),n}(),et=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"entity",r)}return n}(),nt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"place",r)}return u(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return B(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.getAttribute("coordinates"),o=b(r,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new M(s,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,i)}}]),n}(),it=function(t){h(n,nt);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"waypoint",r)}return n}(),rt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"tracking-status",r)}return n}(),ot=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"vehicle",r)}return n}(),st=new V({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(U(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",n({identity:t,password:e},i)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",n({identity:t,code:e},i)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),at=function(t){h(i,Z);var e=y(i);function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,i),e.call(this,t,r,"driver",n({actions:st},o))}return u(i,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),i}(),ut=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"vendor",r)}return n}(),ct=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"contact",r)}return n}(),ht=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"zone",r)}return n}(),lt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-area",r)}return n}(),vt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-rate",r)}return n}(),dt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-quote",r)}return u(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),ft=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"organization",r)}return n}(),gt=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},pt=function(t){h(i,gt);var e=y(i);function i(t){var n;return s(this,i),(n=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return u(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=n(n({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),n({method:i,mode:o.mode||"cors",headers:new Headers(n(n({},e.headers||{}),o.headers||{}))},r)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=N(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),i}(),yt=function(e){h(r,gt);var i=y(r);function r(e){var n;return s(this,r),(n=i.call(this,e)).axios=t.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n}return u(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=n(n({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(A(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=N(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(i?"?".concat(i):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),r}(),bt=function(t){h(n,gt);var e=y(n);function n(){return s(this,n),e.apply(this,arguments)}return n}(),kt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];s(this,t),c(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),c(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),c(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),c(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),c(this,"idSuffix",new RegExp("(_ids|_id)$","g")),c(this,"underbar",new RegExp("_","g")),c(this,"spaceOrUnderbar",new RegExp("[ _]","g")),c(this,"uppercase",new RegExp("([A-Z])","g")),c(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return u(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,i){if(i)t=i;else if(!(n.indexOf(t.toLowerCase())>-1))for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),i=0;i1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=A(e)?e:[e],!A(e))return e instanceof V&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};s(this,t),this.resource=e,this.adapter=n||J(),this.namespace=mt(e),this.storage=new C,this.options=i,this.extendActions(i.actions)}return u(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return St(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return Ot("resource",$t(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),A(e)){for(var n=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var r=o(regeneratorRuntime.mark((function r(o,s){var a;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:a=r.sent,o(a);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=o(regeneratorRuntime.mark((function n(i,r){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(r);case 2:o=n.sent,i(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=B(t)?t.getAttribute("id"):t;return new Promise(function(){var t=o(regeneratorRuntime.mark((function t(r,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,r(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),Pt=function(){function t(e){var n,i,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(i=o.host)&&void 0!==i?i:"https://api.fleetbase.io",namespace:null!==(r=o.namespace)&&void 0!==r?r:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!I()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||J(this.options),this.orders=new _t("order",this.adapter).extendActions(Y),this.entities=new _t("entity",this.adapter),this.places=new _t("place",this.adapter),this.drivers=new _t("driver",this.adapter).extendActions(st),this.vehicles=new _t("vehicle",this.adapter),this.vendors=new _t("vendor",this.adapter),this.contacts=new _t("contact",this.adapter)}return u(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return f(t,Array.prototype.slice.call(arguments))}}]),t}();export default Pt;export{gt as Adapter,pt as BrowserAdapter,C as Collection,ct as Contact,at as Driver,bt as EmberJsAdapter,et as Entity,K as GoogleAddress,yt as NodeAdapter,X as Order,ft as Organization,tt as Payload,nt as Place,M as Point,Z as Resource,lt as ServiceArea,dt as ServiceQuote,vt as ServiceRate,_t as Store,V as StoreActions,rt as TrackingStatus,ot as Vehicle,ut as Vendor,it as Waypoint,ht as Zone,At as camelize,$t as classify,xt as dasherize,St as extendStoreActions,T as isLatitude,q as isLongitude,I as isNodeEnvironment,B as isResource,mt as pluralize,wt as singularize}; +//# sourceMappingURL=fleetbase.js.map diff --git a/dist/esm/fleetbase.js.map b/dist/esm/fleetbase.js.map new file mode 100644 index 0000000..5f860cb --- /dev/null +++ b/dist/esm/fleetbase.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/resources/organization.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","import Resource from '../resource';\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', options);\n }\n}\n\nexport default Organization;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n"],"names":["isArray","Array","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","val","withNaNCheck","insertAt","this","indexes","map","idx","_this2","object","methodName","args","ret","forEach","push","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","seen","Set","getter","get","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isLatitude","coordinate","isFinite","Math","abs","isLongitude","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Organization","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","dasherize","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","storage","resourceInstance","serialized","deposit","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts"],"mappings":"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"} \ No newline at end of file From fea2113fdfa52185c7f89a76af9be14bf3e976d0 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Tue, 24 Dec 2024 15:52:37 +0800 Subject: [PATCH 4/5] upgrade axios/cross-fetch libs --- package.json | 4 +-- pnpm-lock.yaml | 87 ++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 73 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 0c1389e..df4342b 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/runtime": "^7.23.6", - "axios": "0.21.1", - "cross-fetch": "^4.0.0", + "axios": "^1.7.9", + "cross-fetch": "^4.1.0", "global": "^4.4.0", "rollup": "^4.9.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51e8874..b499332 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,11 +11,11 @@ importers: specifier: ^7.23.6 version: 7.23.6 axios: - specifier: 0.21.1 - version: 0.21.1 + specifier: ^1.7.9 + version: 1.7.9 cross-fetch: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.1.0 + version: 4.1.0 global: specifier: ^4.4.0 version: 4.4.0 @@ -58,7 +58,7 @@ importers: version: 8.55.0 eslint-config-airbnb-base: specifier: ^15.0.0 - version: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0) + version: 15.0.0(eslint-plugin-import@2.29.1(eslint@8.55.0))(eslint@8.55.0) eslint-plugin-import: specifier: ^2.29.0 version: 2.29.1(eslint@8.55.0) @@ -962,12 +962,15 @@ packages: resolution: { integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== } engines: { node: '>=4' } + asynckit@0.4.0: + resolution: { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } + available-typed-arrays@1.0.5: resolution: { integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== } engines: { node: '>= 0.4' } - axios@0.21.1: - resolution: { integrity: sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== } + axios@1.7.9: + resolution: { integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== } babel-plugin-polyfill-corejs2@0.4.7: resolution: { integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== } @@ -1095,6 +1098,10 @@ packages: colorette@2.0.20: resolution: { integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== } + combined-stream@1.0.8: + resolution: { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } + engines: { node: '>= 0.8' } + commander@11.1.0: resolution: { integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== } engines: { node: '>=16' } @@ -1121,8 +1128,8 @@ packages: resolution: { integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== } deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. - cross-fetch@4.0.0: - resolution: { integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== } + cross-fetch@4.1.0: + resolution: { integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw== } cross-spawn@6.0.5: resolution: { integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== } @@ -1172,6 +1179,10 @@ packages: resolution: { integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== } engines: { node: '>= 0.4' } + delayed-stream@1.0.0: + resolution: { integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== } + engines: { node: '>=0.4.0' } + diff@5.0.0: resolution: { integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== } engines: { node: '>=0.3.1' } @@ -1405,8 +1416,8 @@ packages: flatted@3.2.9: resolution: { integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== } - follow-redirects@1.15.3: - resolution: { integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== } + follow-redirects@1.15.9: + resolution: { integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== } engines: { node: '>=4.0' } peerDependencies: debug: '*' @@ -1417,6 +1428,10 @@ packages: for-each@0.3.3: resolution: { integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== } + form-data@4.0.1: + resolution: { integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== } + engines: { node: '>= 6' } + fs.realpath@1.0.0: resolution: { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } @@ -1812,6 +1827,14 @@ packages: resolution: { integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== } engines: { node: '>=8.6' } + mime-db@1.52.0: + resolution: { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } + engines: { node: '>= 0.6' } + + mime-types@2.1.35: + resolution: { integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== } + engines: { node: '>= 0.6' } + mimic-fn@2.1.0: resolution: { integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== } engines: { node: '>=6' } @@ -2030,6 +2053,9 @@ packages: resolution: { integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== } engines: { node: '>=0.4.0' } + proxy-from-env@1.1.0: + resolution: { integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== } + punycode@2.3.1: resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } engines: { node: '>=6' } @@ -3301,6 +3327,7 @@ snapshots: '@babel/core': 7.23.6 '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 5.1.0(rollup@4.9.0) + optionalDependencies: rollup: 4.9.0 '@rollup/plugin-node-resolve@15.2.3(rollup@4.9.0)': @@ -3311,6 +3338,7 @@ snapshots: is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 + optionalDependencies: rollup: 4.9.0 '@rollup/pluginutils@5.1.0(rollup@4.9.0)': @@ -3318,6 +3346,7 @@ snapshots: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 + optionalDependencies: rollup: 4.9.0 '@rollup/rollup-android-arm-eabi@4.9.0': @@ -3476,11 +3505,15 @@ snapshots: astral-regex@1.0.0: {} + asynckit@0.4.0: {} + available-typed-arrays@1.0.5: {} - axios@0.21.1: + axios@1.7.9: dependencies: - follow-redirects: 1.15.3 + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -3632,6 +3665,10 @@ snapshots: colorette@2.0.20: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + commander@11.1.0: {} commander@2.20.3: {} @@ -3650,7 +3687,7 @@ snapshots: core-js@2.6.12: {} - cross-fetch@4.0.0: + cross-fetch@4.1.0: dependencies: node-fetch: 2.7.0 transitivePeerDependencies: @@ -3677,6 +3714,7 @@ snapshots: debug@4.3.4(supports-color@8.1.1): dependencies: ms: 2.1.2 + optionalDependencies: supports-color: 8.1.1 decamelize@4.0.0: {} @@ -3701,6 +3739,8 @@ snapshots: has-property-descriptors: 1.0.1 object-keys: 1.1.1 + delayed-stream@1.0.0: {} + diff@5.0.0: {} doctrine@2.1.0: @@ -3785,7 +3825,7 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0): + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1(eslint@8.55.0))(eslint@8.55.0): dependencies: confusing-browser-globals: 1.0.11 eslint: 8.55.0 @@ -3805,6 +3845,7 @@ snapshots: eslint-module-utils@2.8.0(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): dependencies: debug: 3.2.7 + optionalDependencies: eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -4049,12 +4090,18 @@ snapshots: flatted@3.2.9: {} - follow-redirects@1.15.3: {} + follow-redirects@1.15.9: {} for-each@0.3.3: dependencies: is-callable: 1.2.7 + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -4443,6 +4490,12 @@ snapshots: braces: 3.0.2 picomatch: 2.3.1 + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -4643,6 +4696,8 @@ snapshots: progress@2.0.3: {} + proxy-from-env@1.1.0: {} + punycode@2.3.1: {} queue-microtask@1.2.3: {} From 61cbdefc767dcdd3f3f43be594a51e43b504214d Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Tue, 24 Dec 2024 15:54:01 +0800 Subject: [PATCH 5/5] bumped version to v1.2.10 --- dist/@fleetbase/sdk.min.js | 6 +----- dist/@fleetbase/sdk.min.js.map | 6 +----- dist/cjs/fleetbase.js | 6 +----- dist/cjs/fleetbase.js.map | 6 +----- dist/esm/fleetbase.js | 6 +----- dist/esm/fleetbase.js.map | 6 +----- package.json | 7 ++----- 7 files changed, 8 insertions(+), 35 deletions(-) diff --git a/dist/@fleetbase/sdk.min.js b/dist/@fleetbase/sdk.min.js index 2d5bad3..bf7edf8 100644 --- a/dist/@fleetbase/sdk.min.js +++ b/dist/@fleetbase/sdk.min.js @@ -1,6 +1,2 @@ -<<<<<<< HEAD -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios"),require("date-fns")):"function"==typeof define&&define.amd?define(["exports","axios","date-fns"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/sdk"]={},t.axios)}(this,(function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e);function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function o(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,i=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(F(t))if(i.length<=C)t.splice.apply(t,[e,n].concat(E(i)));else{t.splice(e,n);for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:N,n=[],i=new Set,r="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=r(t);i.has(e)||(i.add(e),n.push(t))})),n},q=function(t){return t instanceof Q},B=function(t,e){return F(t)?t[e]:q(t)?t.objectAt(e):null},U=function(t,e){return 2===D.length?function(n){return e===n[t]}:function(e){return Boolean(e[t])}},I=function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=t.length,r=n;r2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3?arguments[3]:void 0,r=t.length;n<0&&(n+=r);var o=i&&e!=e?function(t){return t!=t}:function(t){return t===e};return I(t,o,n)},G=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return L(t,e,n,[]),t},H=function(t,e,n){return L(t,e,0,[n]),n},Q=function(t){d(n,t);var e=A(n);function n(){for(var t=arguments.length,i=new Array(t),r=0;r0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return B(this,0)}},{key:"last",get:function(){return B(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return L(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return B(e,t)}))}},{key:"objectAt",value:function(t){return B(this,t)}},{key:"indexOf",value:function(t,e){return M(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var i=e;i>=0;i--)if(B(this,i)===t)return i;return-1}},{key:"includes",value:function(t,e){return-1!==M(this,t,e,!0)}},{key:"findBy",value:function(){return J(this,U.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return I(this,U.apply(void 0,arguments))}},{key:"isEvery",value:function(){return K(this,U.apply(void 0,arguments))}},{key:"isAny",value:function(){return W(this,U.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i=0;){B(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(k(Array)),V=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=s(t);if("object"===n){var i=t.size;if("number"==typeof i)return!i}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var r=t.length;if("number"==typeof r)return!r}return!1},Z=function(t){return V(t)||"string"==typeof t&&!1===/\S/.test(t)};function Y(t){return isFinite(t)&&Math.abs(t)<=90}function X(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function tt(t){return t instanceof vt}var et=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},nt=function(){var t,e,n,i,r;return!("undefined"==typeof process||"object"!==s(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(i=window)||void 0===i||null===(r=i.navigator)||void 0===r?void 0:r.product))},it=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return nt()?Jt("adapter","NodeAdapter",t):Jt("adapter","BrowserAdapter",t)},rt=Array.isArray,ot=function(){function t(e){c(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return l(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=o(o({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),st=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;c(this,t),this.type="Point",this.coordinates=[n,e]}return l(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=x(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}(),at=function(t){return"object"===s(t)&&!V(null==t?void 0:t.attributes)&&"object"===s(null==t?void 0:t.attributes)},ut=function(t,e){var n=t();return Array.isArray(n)||"object"===s(n)?ct(n,e):null},ct=function t(e,n){var i=e,r=s(e),o="object"===r,a="function"===r,u=Array.isArray(e),c="string"===s(n)&&n.includes(".")?n.split("."):[n];if(u||o){for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;c(this,t),this.actions=e,this.bind=n}return l(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===s(this.actions))for(var n in this.actions){var i=this.actions[n];"function"==typeof i?ht(e,n,i.bind(e)):ht(e,n,i)}return this}}]),t}(),vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};c(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=i,this.options=r,this.version=r.version||"v1",this.setAdapter(n)}return l(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Mt(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return V(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===s(t))return this.setAttributes(t);var i=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return ht(this.attributes,t,n),ht(this.dirtyAttributes,t,i),F(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:i,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=ct(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===i?n:i}},{key:"hasAttribute",value:function(t){if(F(t)){var e,n=t,i=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return i.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return F(t)?this.hasAttribute(t)&&t.every((function(t){return!V(e.getAttribute(t))})):this.hasAttribute(t)&&!V(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!F(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=o(o({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),dt=new lt({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,i).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,i)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return tt(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,i)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),ft=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"order",o({actions:dt},r))}return l(n,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),n}(vt),gt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"payload",r)}return l(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new Q(this.waypoints)}}]),n}(vt),pt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"entity",r)}return n}(vt),yt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"place",r)}return l(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return tt(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.getAttribute("coordinates"),o=x(r,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new st(s,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,i)}}]),n}(vt),bt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"waypoint",r)}return n}(yt),kt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"tracking-status",r)}return n}(vt),mt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"vehicle",r)}return n}(vt),wt=new lt({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(et(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",o({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",o({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),At=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"driver",o({actions:wt},r))}return l(n,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new st))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),n}(vt),xt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"vendor",r)}return n}(vt),Et=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"contact",r)}return n}(vt),Rt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"zone",r)}return n}(vt),$t=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-area",r)}return n}(vt),jt=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-rate",r)}return n}(vt),Ot=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"service-quote",r)}return l(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(vt),St=function(t){d(n,t);var e=A(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"organization",r)}return n}(vt),_t=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},Pt=function(t){d(n,t);var e=A(n);function n(t){var i;return c(this,n),(i=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),i}return l(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=o(o({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(r.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),o({method:n,mode:r.mode||"cors",headers:new Headers(o(o({},e.headers||{}),r.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Z(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),n}(_t),zt=function(t){d(n,t);var e=A(n);function n(t){var r;return c(this,n),(r=e.call(this,t)).axios=i.default.create({baseURL:"".concat(r.host,"/").concat(r.namespace),headers:{Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),r}return l(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=o(o({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(F(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Z(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(i?"?".concat(i):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),n}(_t),Ft=function(t){d(n,t);var e=A(n);function n(){return c(this,n),e.apply(this,arguments)}return n}(_t),Dt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];c(this,t),v(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),v(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),v(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),v(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),v(this,"idSuffix",new RegExp("(_ids|_id)$","g")),v(this,"underbar",new RegExp("_","g")),v(this,"spaceOrUnderbar",new RegExp("[ _]","g")),v(this,"uppercase",new RegExp("([A-Z])","g")),v(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return l(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,i){if(i)t=i;else if(!(n.indexOf(t.toLowerCase())>-1))for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),i=0;i1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=F(e)?e:[e],!F(e))return e instanceof lt&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};c(this,t),this.resource=e,this.adapter=n||it(),this.namespace=Ct(e),this.storage=new Q,this.options=i,this.extendActions(i.actions)}return l(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Wt(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return Jt("resource",qt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return Kt(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var r=u(regeneratorRuntime.mark((function r(o,s){var a;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:a=r.sent,o(a);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=u(regeneratorRuntime.mark((function n(i,r){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(r);case 2:o=n.sent,i(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=u(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=tt(t)?t.getAttribute("id"):t;return new Promise(function(){var t=u(regeneratorRuntime.mark((function t(r,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,r(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),Gt=function(){function t(e){var n,i,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(c(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(i=o.host)&&void 0!==i?i:"https://api.fleetbase.io",namespace:null!==(r=o.namespace)&&void 0!==r?r:this.version,debug:s,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!nt()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||it(this.options),this.orders=new Mt("order",this.adapter).extendActions(dt),this.entities=new Mt("entity",this.adapter),this.places=new Mt("place",this.adapter),this.drivers=new Mt("driver",this.adapter).extendActions(wt),this.vehicles=new Mt("vehicle",this.adapter),this.vendors=new Mt("vendor",this.adapter),this.contacts=new Mt("contact",this.adapter)}return l(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return y(t,Array.prototype.slice.call(arguments))}}]),t}();t.Adapter=_t,t.BrowserAdapter=Pt,t.Collection=Q,t.Contact=Et,t.Driver=At,t.EmberJsAdapter=Ft,t.Entity=pt,t.GoogleAddress=ot,t.NodeAdapter=zt,t.Order=ft,t.Organization=St,t.Payload=gt,t.Place=yt,t.Point=st,t.Resource=vt,t.ServiceArea=$t,t.ServiceQuote=Ot,t.ServiceRate=jt,t.Store=Mt,t.StoreActions=lt,t.TrackingStatus=kt,t.Vehicle=mt,t.Vendor=xt,t.Waypoint=bt,t.Zone=Rt,t.camelize=Nt,t.classify=qt,t.dasherize=Tt,t.default=Gt,t.extendStoreActions=Wt,t.isLatitude=Y,t.isLongitude=X,t.isNodeEnvironment=nt,t.isResource=tt,t.pluralize=Ct,t.singularize=Lt})); -======= -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/sdk"]={},t.axios)}(this,(function(t,e){"use strict";function n(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function r(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function o(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,i)}function u(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function a(t){s(o,r,i,a,u,"next",t)}function u(t){s(o,r,i,a,u,"throw",t)}a(void 0)}))}}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function h(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}var j=Array.isArray,$=void 0===arguments?void 0:arguments,R=6e4,S=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(j(t))if(r.length<=R)t.splice.apply(t,[e,n].concat(A(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),F(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)},N=function(t,e,n){return S(t,e,0,[n]),n},T=function(t){f(n,t);var e=w(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return L(this,0)}},{key:"last",get:function(){return L(this,this.length-1)}},{key:"replace",value:function(t,e){return S(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return L(e,t)}))}},{key:"objectAt",value:function(t){return L(this,t)}},{key:"indexOf",value:function(t,e){return D(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(L(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==D(this,t,e,!0)}},{key:"findBy",value:function(){return t=this,e=z.apply(void 0,arguments),r=e.bind(n),-1===(i=F(t,r,0))?void 0:L(t,i);var t,e,n,r,i}},{key:"findIndexBy",value:function(){return F(this,z.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=z.apply(void 0,arguments),r=e.bind(n),-1===F(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:"isAny",value:function(){return t=this,e=z.apply(void 0,arguments),r=e.bind(n),-1!==F(t,r,0);var t,e,n,r}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:_,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return N(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return S(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=L(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=L(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return N(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){L(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(b(Array)),C=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=a(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},q=function(t){return C(t)||"string"==typeof t&&!1===/\S/.test(t)};function I(t){return t instanceof V}var B=function(){var t,e,n;return!("undefined"==typeof process||"object"!==a(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))},G=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return B()?$t("adapter","NodeAdapter",t):$t("adapter","BrowserAdapter",t)},U=Array.isArray,J=function(){function t(e){c(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return l(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=O(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(U(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=r(r({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),W=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;c(this,t),this.type="Point",this.coordinates=[n,e]}return l(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=k(e.coordinates,2),r=n[0];return new t(n[1],r)}}]),t}(),K=function(t,e){var n=t();return Array.isArray(n)||"object"===a(n)?M(n,e):null},M=function t(e,n){var r,i=e,o=a(e),s="object"===o,u="function"===o,c=Array.isArray(e),h="string"===a(n)&&n.includes(".")?n.split("."):[n];if(c||s){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;c(this,t),this.actions=e,this.bind=n}return l(t,[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===a(this.actions))for(var e in this.actions){var n=this.actions[e];"function"==typeof n?H(t,e,n.bind(t)):H(t,e,n)}return this}}]),t}(),V=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};c(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return l(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new St(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return C(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===a(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return H(this.attributes,t,n),H(this.dirtyAttributes,t,r),j(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=M(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(j(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return j(t)?this.hasAttribute(t)&&t.every((function(t){return!C(e.getAttribute(t))})):this.hasAttribute(t)&&!C(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!j(t))throw new Error("No attribute properties provided!");var n,r=O(t);try{for(r.s();!(n=r.n()).done;){var i,o,s=n.value;if("string"==typeof s){var u=this.getAttribute(s);"object"!==a(null===(i=u)||void 0===i?void 0:i.attributes)||j(null===(o=u)||void 0===o?void 0:o.attributes)||(u=u.attributes),e[s]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=r(r({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Y=new Q({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return I(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return I(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return I(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),Z=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"order",r({actions:Y},o))}return l(n,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),n}(V),X=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"payload",i)}return l(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new T(this.waypoints)}}]),n}(V),tt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"entity",i)}return l(n)}(V),et=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"place",i)}return l(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new W))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new W))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return I(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=k(t.getAttribute("coordinates"),2),o=i[0],a=i[1];return new n({name:null,address:t.getAttribute("address"),location:new W(o,a),street1:t.getAttribute("streetName"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null},e,r)}}]),n}(V),nt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"waypoint",i)}return l(n)}(et),rt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"tracking-status",i)}return l(n)}(V),it=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"vehicle",i)}return l(n)}(V),ot=new Q({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),at=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"organization",r({actions:ot},o))}return l(n)}(V),st=function(t,e){return j(t)?t.map((function(t){return new at(t,e)})):new at(t,e)},ut=new Q({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",r({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",r({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return st(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return st(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return st(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),ct=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"driver",r({actions:ut},o))}return l(n,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}]),n}(V),ht=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"vendor",i)}return l(n)}(V),lt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"contact",i)}return l(n)}(V),vt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"zone",i)}return l(n)}(V),ft=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"service-area",i)}return l(n)}(V),dt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"service-rate",i)}return l(n)}(V),gt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"service-quote",i)}return l(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(V),pt=l((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}})),yt=function(t){f(n,t);var e=w(n);function n(t){var r;return c(this,n),(r=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),r}return l(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=r(r({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(a,s){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),r({method:n,mode:o.mode||"cors",headers:new Headers(r(r({},e.headers||{}),o.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?a(t.json):s(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){s(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),n}(pt),bt=function(t){f(i,t);var n=w(i);function i(t){var r;return c(this,i),(r=n.call(this,t)).axios=e.create({baseURL:"".concat(r.host,"/").concat(r.namespace),headers:{Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),r}return l(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=r(r({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(j(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),i}(pt),mt=function(t){f(n,t);var e=w(n);function n(){return c(this,n),e.apply(this,arguments)}return l(n)}(pt),wt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];c(this,t),v(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),v(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),v(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),v(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),v(this,"idSuffix",new RegExp("(_ids|_id)$","g")),v(this,"underbar",new RegExp("_","g")),v(this,"spaceOrUnderbar",new RegExp("[ _]","g")),v(this,"uppercase",new RegExp("([A-Z])","g")),v(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return l(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=j(e)?e:[e],!j(e))return e instanceof Q&&e.extend(t),t;var n,r=O(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}},St=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};c(this,t),this.resource=e,this.adapter=n||G(),this.namespace=kt(e),this.storage=new T,this.options=r,this.extendActions(r.actions)}return l(t,[{key:"extendActions",value:function(){return Rt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return $t("resource",xt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),j(e)){var n,r=[],i=O(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return y(T,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=u(i().mark((function r(o,a){var s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var o=u(i().mark((function o(a,s){var u;return i().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,r).then(e.afterFetch.bind(e)).catch(s);case 2:u=i.sent,a(u);case 4:case"end":return i.stop()}}),o)})));return function(t,e){return o.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=u(i().mark((function r(o,a){var s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=u(i().mark((function n(r,o){var a;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(o);case 2:a=n.sent,r(a);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=u(i().mark((function r(o,a){var s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var r=u(i().mark((function r(o,a){var s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=I(t)?t.getAttribute("id"):t;return new Promise(function(){var t=u(i().mark((function t(o,a){var s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(r),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=t.sent,o(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),_t=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(c(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!B()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||G(this.options),this.orders=new St("order",this.adapter).extendActions(Y),this.entities=new St("entity",this.adapter),this.places=new St("place",this.adapter),this.drivers=new St("driver",this.adapter).extendActions(ut),this.vehicles=new St("vehicle",this.adapter),this.vendors=new St("vendor",this.adapter),this.contacts=new St("contact",this.adapter),this.organizations=new St("organization",this.adapter).extendActions(ot)}return l(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return y(t,Array.prototype.slice.call(arguments))}}]),t}();t.Adapter=pt,t.BrowserAdapter=yt,t.Collection=T,t.Contact=lt,t.Driver=ct,t.EmberJsAdapter=mt,t.Entity=tt,t.GoogleAddress=J,t.NodeAdapter=bt,t.Order=Z,t.Organization=at,t.Payload=X,t.Place=et,t.Point=W,t.Resource=V,t.ServiceArea=ft,t.ServiceQuote=gt,t.ServiceRate=dt,t.Store=St,t.StoreActions=Q,t.TrackingStatus=rt,t.Vehicle=it,t.Vendor=ht,t.Waypoint=nt,t.Zone=vt,t.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return wt.invoke.apply(wt,A(t))},t.classify=xt,t.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return wt.invoke.apply(wt,A(t))},t.default=_t,t.extendStoreActions=Rt,t.isLatitude=function(t){return isFinite(t)&&Math.abs(t)<=90},t.isLongitude=function(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90},t.isNodeEnvironment=B,t.isResource=I,t.pluralize=kt,t.singularize=At})); ->>>>>>> 956839d5964850b969941f04a0f703ea857e885b +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@fleetbase/sdk"]={},t.axios)}(this,(function(t,e){"use strict";function n(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function r(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:P(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function o(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function s(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,i)}function u(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function a(t){s(o,r,i,a,u,"next",t)}function u(t){s(o,r,i,a,u,"throw",t)}a(void 0)}))}}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function h(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}var j=Array.isArray,$=void 0===arguments?void 0:arguments,R=6e4,S=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(j(t))if(r.length<=R)t.splice.apply(t,[e,n].concat(A(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),F(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)},N=function(t,e,n){return S(t,e,0,[n]),n},T=function(t){f(n,t);var e=w(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return P(this,0)}},{key:"last",get:function(){return P(this,this.length-1)}},{key:"replace",value:function(t,e){return S(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return P(e,t)}))}},{key:"objectAt",value:function(t){return P(this,t)}},{key:"indexOf",value:function(t,e){return D(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(P(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==D(this,t,e,!0)}},{key:"findBy",value:function(){return t=this,e=z.apply(void 0,arguments),r=e.bind(n),-1===(i=F(t,r,0))?void 0:P(t,i);var t,e,n,r,i}},{key:"findIndexBy",value:function(){return F(this,z.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=z.apply(void 0,arguments),r=e.bind(n),-1===F(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:"isAny",value:function(){return t=this,e=z.apply(void 0,arguments),r=e.bind(n),-1!==F(t,r,0);var t,e,n,r}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:_,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return N(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return S(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=P(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=P(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return N(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){P(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(b(Array)),C=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=a(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},q=function(t){return C(t)||"string"==typeof t&&!1===/\S/.test(t)};function I(t){return t instanceof V}var B=function(){var t,e,n;return!("undefined"==typeof process||"object"!==a(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))},G=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return B()?$t("adapter","NodeAdapter",t):$t("adapter","BrowserAdapter",t)},U=Array.isArray,J=function(){function t(e){c(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return l(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=O(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(U(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=r(r({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),W=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;c(this,t),this.type="Point",this.coordinates=[n,e]}return l(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=k(e.coordinates,2),r=n[0];return new t(n[1],r)}}]),t}(),K=function(t,e){var n=t();return Array.isArray(n)||"object"===a(n)?M(n,e):null},M=function t(e,n){var r,i=e,o=a(e),s="object"===o,u="function"===o,c=Array.isArray(e),h="string"===a(n)&&n.includes(".")?n.split("."):[n];if(c||s){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;c(this,t),this.actions=e,this.bind=n}return l(t,[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===a(this.actions))for(var e in this.actions){var n=this.actions[e];"function"==typeof n?H(t,e,n.bind(t)):H(t,e,n)}return this}}]),t}(),V=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};c(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return l(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new St(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return C(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===a(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return H(this.attributes,t,n),H(this.dirtyAttributes,t,r),j(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=M(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(j(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return j(t)?this.hasAttribute(t)&&t.every((function(t){return!C(e.getAttribute(t))})):this.hasAttribute(t)&&!C(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!j(t))throw new Error("No attribute properties provided!");var n,r=O(t);try{for(r.s();!(n=r.n()).done;){var i,o,s=n.value;if("string"==typeof s){var u=this.getAttribute(s);"object"!==a(null===(i=u)||void 0===i?void 0:i.attributes)||j(null===(o=u)||void 0===o?void 0:o.attributes)||(u=u.attributes),e[s]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=r(r({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Y=new Q({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return I(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return I(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return I(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),Z=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"order",r({actions:Y},o))}return l(n,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),n}(V),X=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"payload",i)}return l(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new T(this.waypoints)}}]),n}(V),tt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"entity",i)}return l(n)}(V),et=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"place",i)}return l(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new W))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new W))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return I(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=k(t.getAttribute("coordinates"),2),o=i[0],a=i[1];return new n({name:null,address:t.getAttribute("address"),location:new W(o,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null},e,r)}}]),n}(V),nt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"waypoint",i)}return l(n)}(et),rt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"tracking-status",i)}return l(n)}(V),it=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"vehicle",i)}return l(n)}(V),ot=new Q({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),at=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"organization",r({actions:ot},o))}return l(n)}(V),st=function(t,e){return j(t)?t.map((function(t){return new at(t,e)})):new at(t,e)},ut=new Q({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",r({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",r({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return st(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return st(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return st(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),ct=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,i,"driver",r({actions:ut},o))}return l(n,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new W))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new W))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}]),n}(V),ht=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"vendor",i)}return l(n)}(V),lt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"contact",i)}return l(n)}(V),vt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"zone",i)}return l(n)}(V),ft=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"service-area",i)}return l(n)}(V),dt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"service-rate",i)}return l(n)}(V),gt=function(t){f(n,t);var e=w(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c(this,n),e.call(this,t,r,"service-quote",i)}return l(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(V),pt=l((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}})),yt=function(t){f(n,t);var e=w(n);function n(t){var r;return c(this,n),(r=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),r}return l(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=r(r({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(a,s){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),r({method:n,mode:o.mode||"cors",headers:new Headers(r(r({},e.headers||{}),o.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?a(t.json):s(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){s(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),n}(pt),bt=function(t){f(i,t);var n=w(i);function i(t){var r;return c(this,i),(r=n.call(this,t)).axios=e.create({baseURL:"".concat(r.host,"/").concat(r.namespace),headers:{Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),r}return l(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=r(r({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(j(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),i}(pt),mt=function(t){f(n,t);var e=w(n);function n(){return c(this,n),e.apply(this,arguments)}return l(n)}(pt),wt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];c(this,t),v(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),v(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),v(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),v(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),v(this,"idSuffix",new RegExp("(_ids|_id)$","g")),v(this,"underbar",new RegExp("_","g")),v(this,"spaceOrUnderbar",new RegExp("[ _]","g")),v(this,"uppercase",new RegExp("([A-Z])","g")),v(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return l(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=j(e)?e:[e],!j(e))return e instanceof Q&&e.extend(t),t;var n,r=O(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}},St=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};c(this,t),this.resource=e,this.adapter=n||G(),this.namespace=kt(e),this.storage=new T,this.options=r,this.extendActions(r.actions)}return l(t,[{key:"extendActions",value:function(){return Rt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return $t("resource",xt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),j(e)){var n,r=[],i=O(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return y(T,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=u(i().mark((function r(o,a){var s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var o=u(i().mark((function o(a,s){var u;return i().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,r).then(e.afterFetch.bind(e)).catch(s);case 2:u=i.sent,a(u);case 4:case"end":return i.stop()}}),o)})));return function(t,e){return o.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=u(i().mark((function r(o,a){var s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=u(i().mark((function n(r,o){var a;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(o);case 2:a=n.sent,r(a);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=u(i().mark((function r(o,a){var s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var r=u(i().mark((function r(o,a){var s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=I(t)?t.getAttribute("id"):t;return new Promise(function(){var t=u(i().mark((function t(o,a){var s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(r),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=t.sent,o(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),_t=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(c(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!B()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||G(this.options),this.orders=new St("order",this.adapter).extendActions(Y),this.entities=new St("entity",this.adapter),this.places=new St("place",this.adapter),this.drivers=new St("driver",this.adapter).extendActions(ut),this.vehicles=new St("vehicle",this.adapter),this.vendors=new St("vendor",this.adapter),this.contacts=new St("contact",this.adapter),this.organizations=new St("organization",this.adapter).extendActions(ot)}return l(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return y(t,Array.prototype.slice.call(arguments))}}]),t}();t.Adapter=pt,t.BrowserAdapter=yt,t.Collection=T,t.Contact=lt,t.Driver=ct,t.EmberJsAdapter=mt,t.Entity=tt,t.GoogleAddress=J,t.NodeAdapter=bt,t.Order=Z,t.Organization=at,t.Payload=X,t.Place=et,t.Point=W,t.Resource=V,t.ServiceArea=ft,t.ServiceQuote=gt,t.ServiceRate=dt,t.Store=St,t.StoreActions=Q,t.TrackingStatus=rt,t.Vehicle=it,t.Vendor=ht,t.Waypoint=nt,t.Zone=vt,t.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return wt.invoke.apply(wt,A(t))},t.classify=xt,t.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return wt.invoke.apply(wt,A(t))},t.default=_t,t.extendStoreActions=Rt,t.isLatitude=function(t){return isFinite(t)&&Math.abs(t)<=90},t.isLongitude=function(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90},t.isNodeEnvironment=B,t.isResource=I,t.lookup=$t,t.pluralize=kt,t.singularize=At})); //# sourceMappingURL=sdk.min.js.map diff --git a/dist/@fleetbase/sdk.min.js.map b/dist/@fleetbase/sdk.min.js.map index 9151f2a..004dec5 100644 --- a/dist/@fleetbase/sdk.min.js.map +++ b/dist/@fleetbase/sdk.min.js.map @@ -1,5 +1 @@ -<<<<<<< HEAD -{"version":3,"file":"sdk.min.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/resources/organization.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","import Resource from '../resource';\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', options);\n }\n}\n\nexport default Organization;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","uniqBy","key","ret","seen","Set","getter","get","forEach","val","has","add","push","mixed","Collection","objectAt","index","iter","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","withNaNCheck","removeAt","insertAt","this","indexes","map","idx","_this2","object","methodName","args","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","includes","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isLatitude","coordinate","isFinite","Math","abs","isLongitude","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Organization","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","dasherize","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","serialized","resourceInstance","deposit","storage","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts"],"mappings":"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"} -======= -{"version":3,"file":"sdk.min.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/organization.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js"],"sourcesContent":["const { isArray } = Array;\n\nexport { isArray };\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (const element of sortKeys) {\n let key = element;\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n *\n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (\n typeof process !== 'undefined' &&\n (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) &&\n (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative')\n );\n};\n\nexport default isNodeEnvironment;\n","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n};\n\nexport default detectAdapter;\n","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (const element of keys) {\n const key = element;\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return key in this.components;\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = { ...this.attributes, ...attributes };\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n const [longitude, latitude] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()],\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}\n","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (const element of classes) {\n for (const property in element) {\n if (Object.prototype.hasOwnProperty.call(element, property)) {\n target[property] = element[property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for (let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n\n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (const element of properties) {\n const property = element;\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\n /**\n * Attaches an entity to an existing payload and returns\n * the payload with the entity attached\n *\n * @param {[type]} Entity entity [description]\n * @return {[type]} [description]\n */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n * Returns all of the entities attached to this payload\n *\n * @return {[type]} [description]\n */\n get entities() {}\n\n /**\n * Returns the dropoff for this payload\n *\n * @return {[type]} [description]\n */\n get dropoff() {}\n\n /**\n * Returns the pickup for this payload\n *\n * @return {[type]} [description]\n */\n get pickup() {}\n\n /**\n * Returns all the waypoints for this payload\n *\n * @return {[type]} [description]\n */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [latitude, longitude] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('streetName'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null,\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n /**\n * Set the owner of the place.\n *\n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`, params, options);\n },\n});\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', { actions: organizationActions, ...options });\n }\n}\n\nexport default Organization;\nexport { organizationActions };\n","import Resource from '../resource';\nimport Organization from './organization';\nimport { StoreActions, isPhone, Collection } from '../utils';\nimport { isArray } from '../utils/array';\n\nconst serializeOrganizations = (response, adapter) => {\n if (isArray(response)) {\n return response.map((organizationJson) => {\n return new Organization(organizationJson, adapter);\n });\n }\n\n return new Organization(response, adapter);\n};\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n listOrganizations: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/organizations`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n switchOrganization: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/switch-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n currentOrganization: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/current-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n\n listOrganizations(params = {}, options = {}) {\n return this.store.listOrganizations(this.id, params, options);\n }\n\n switchOrganization(organizationId, options = {}) {\n return this.store.switchOrganization(this.id, { next: organizationId }, options);\n }\n\n currentOrganization(params = {}, options = {}) {\n return this.store.currentOrganization(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {}\n\n fromPayload() {}\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n * Creates a configured base adapter for Fleetbase.\n *\n * @param {Object} config Configuration options for adapter\n */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser',\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) =>\n response\n .json()\n .then((json) =>\n resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n })\n )\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n })\n );\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) =>\n fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n })\n );\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n *\n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function () {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function () {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function () {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function () {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function () {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function () {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function () {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function () {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function () {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function () {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function () {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function () {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport { pluralize, singularize, humanize, underscore, camelize, capitalize, dasherize, normify, demodulize, tableize, classify, foreignKey };\n","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\n","import { lookup } from './resolver';\nimport { Collection, StoreActions, detectAdapter, isResource } from './utils';\nimport { isArray } from './utils/array';\nimport { classify, pluralize } from './utils/string';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (const element of actions) {\n const action = element;\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (const element of json) {\n serialized.push(store.afterFetch(element));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { afterFetch, extendStoreActions };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\nimport { organizationActions } from './resources/organization';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n this.organizations = new Store('organization', this.adapter).extendActions(organizationActions);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","arguments","length","undefined","splice","apply","concat","_toConsumableArray","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","Boolean","findIndex","predicate","startAt","len","indexOf","val","withNaNCheck","insertAt","_Array","_inherits","_super","_createSuper","_len","_key","_classCallCheck","_possibleConstructorReturn","call","_createClass","get","this","indexes","_this2","map","idx","object","callback","bind","target","cb","methodName","_len2","args","_key2","ret","forEach","_item$methodName","push","filter","sortKeys","sort","a","b","_step","_iterator","_createForOfIteratorHelper","s","n","done","propA","propB","compareValue","compare","err","e","f","seen","Set","getter","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","_wrapNativeSuper","isEmpty","none","size","objectType","_typeof","isBlank","test","isResource","record","Resource","isNodeEnvironment","_process","_process$release","_window","process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","_this$place","address_components","reduce","acc","data","types","type","_this$geometry","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","pkey","short","short_name","long_name","_objectSpread","Point","latitude","longitude","coorindates","lat","lng","serialize","json","_json$coordinates","_slicedToArray","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","_this$options","store","Store","onAfterFetch","syncAttributes","getAttribute","_this","mergeAttributes","setFlags","create","then","response","update","id","destroy","_this4","findRecord","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","keys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","_this$attributes","_this5","property","_this$dirtyAttributes","_this$attributes$prop","setAttributes","previousValue","changedAt","setAttribute","attribute","_this$attributes2","defaultValue","_this$attributes3","properties","attributeKeys","every","prop","hasAttribute","_this6","prototype","_value","_value2","_this$attributes4","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","_Resource","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","_googleAddress$getAtt2","street1","street2","province","postal_code","neighborhood","district","building","phone","security_access_code","Waypoint","_Place","TrackingStatus","Vehicle","organizationActions","Organization","serializeOrganizations","organizationJson","driverActions","login","identity","password","isPhone","verifyCode","code","track","listOrganizations","switchOrganization","currentOrganization","retrieve","syncDevice","Driver","organizationId","next","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","_Adapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","_defineProperty","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","classify","resources","adapters","Resolver","className","_construct","extendStoreActions","extend","extendActions","storage","resourceInstance","_step2","serialized","_iterator2","element","deposit","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","sent","stop","_x","_x2","_ref2","_callee2","_context2","_x3","_x4","_ref3","_callee3","_context3","_x5","_x6","_ref4","_callee4","_context4","_x7","_x8","_ref5","_callee5","_context5","_x9","_x10","single","_ref6","_callee6","_context6","_x11","_x12","_this7","_ref7","_callee7","_context7","_x13","_x14","Fleetbase","_config$version","_config$host","_config$namespace","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","organizations","coordinate","isFinite","Math","abs"],"mappings":"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"} ->>>>>>> 956839d5964850b969941f04a0f703ea857e885b +{"version":3,"file":"sdk.min.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/organization.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js"],"sourcesContent":["const { isArray } = Array;\n\nexport { isArray };\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (const element of sortKeys) {\n let key = element;\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n *\n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (\n typeof process !== 'undefined' &&\n (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) &&\n (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative')\n );\n};\n\nexport default isNodeEnvironment;\n","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n};\n\nexport default detectAdapter;\n","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (const element of keys) {\n const key = element;\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return key in this.components;\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = { ...this.attributes, ...attributes };\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n const [longitude, latitude] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()],\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}\n","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (const element of classes) {\n for (const property in element) {\n if (Object.prototype.hasOwnProperty.call(element, property)) {\n target[property] = element[property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for (let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n\n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (const element of properties) {\n const property = element;\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\n /**\n * Attaches an entity to an existing payload and returns\n * the payload with the entity attached\n *\n * @param {[type]} Entity entity [description]\n * @return {[type]} [description]\n */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n * Returns all of the entities attached to this payload\n *\n * @return {[type]} [description]\n */\n get entities() {}\n\n /**\n * Returns the dropoff for this payload\n *\n * @return {[type]} [description]\n */\n get dropoff() {}\n\n /**\n * Returns the pickup for this payload\n *\n * @return {[type]} [description]\n */\n get pickup() {}\n\n /**\n * Returns all the waypoints for this payload\n *\n * @return {[type]} [description]\n */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [latitude, longitude] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null,\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n /**\n * Set the owner of the place.\n *\n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`, params, options);\n },\n});\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', { actions: organizationActions, ...options });\n }\n}\n\nexport default Organization;\nexport { organizationActions };\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\nimport Organization from './organization';\nimport { isArray } from '../utils/array';\n\nconst serializeOrganizations = (response, adapter) => {\n if (isArray(response)) {\n return response.map((organizationJson) => {\n return new Organization(organizationJson, adapter);\n });\n }\n\n return new Organization(response, adapter);\n};\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n listOrganizations: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/organizations`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n switchOrganization: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/switch-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n currentOrganization: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/current-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n\n listOrganizations(params = {}, options = {}) {\n return this.store.listOrganizations(this.id, params, options);\n }\n\n switchOrganization(organizationId, options = {}) {\n return this.store.switchOrganization(this.id, { next: organizationId }, options);\n }\n\n currentOrganization(params = {}, options = {}) {\n return this.store.currentOrganization(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {}\n\n fromPayload() {}\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n * Creates a configured base adapter for Fleetbase.\n *\n * @param {Object} config Configuration options for adapter\n */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser',\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) =>\n response\n .json()\n .then((json) =>\n resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n })\n )\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n })\n );\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) =>\n fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n })\n );\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n *\n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function () {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function () {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function () {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function () {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function () {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function () {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function () {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function () {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function () {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function () {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function () {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function () {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport { pluralize, singularize, humanize, underscore, camelize, capitalize, dasherize, normify, demodulize, tableize, classify, foreignKey };\n","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { Collection, StoreActions, detectAdapter, isResource } from './utils';\nimport { isArray } from './utils/array';\nimport { classify, pluralize } from './utils/string';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (const element of actions) {\n const action = element;\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (const element of json) {\n serialized.push(store.afterFetch(element));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { afterFetch, extendStoreActions };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\nimport { organizationActions } from './resources/organization';\nimport { lookup } from './resolver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n this.organizations = new Store('organization', this.adapter).extendActions(organizationActions);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n lookup,\n};\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","arguments","length","undefined","splice","apply","concat","_toConsumableArray","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","Boolean","findIndex","predicate","startAt","len","indexOf","val","withNaNCheck","insertAt","_Array","_inherits","_super","_createSuper","_len","_key","_classCallCheck","_possibleConstructorReturn","call","_createClass","get","this","indexes","_this2","map","idx","object","callback","bind","target","cb","methodName","_len2","args","_key2","ret","forEach","_item$methodName","push","filter","sortKeys","sort","a","b","_step","_iterator","_createForOfIteratorHelper","s","n","done","propA","propB","compareValue","compare","err","e","f","seen","Set","getter","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","_wrapNativeSuper","isEmpty","none","size","objectType","_typeof","isBlank","test","isResource","record","Resource","isNodeEnvironment","_process","_process$release","_window","process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","_this$place","address_components","reduce","acc","data","types","type","_this$geometry","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","pkey","short","short_name","long_name","_objectSpread","Point","latitude","longitude","coorindates","lat","lng","serialize","json","_json$coordinates","_slicedToArray","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","_this$options","store","Store","onAfterFetch","syncAttributes","getAttribute","_this","mergeAttributes","setFlags","create","then","response","update","id","destroy","_this4","findRecord","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","keys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","_this$attributes","_this5","property","_this$dirtyAttributes","_this$attributes$prop","setAttributes","previousValue","changedAt","setAttribute","attribute","_this$attributes2","defaultValue","_this$attributes3","properties","attributeKeys","every","prop","hasAttribute","_this6","prototype","_value","_value2","_this$attributes4","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","_Resource","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","_googleAddress$getAtt2","street1","street2","province","postal_code","neighborhood","district","building","phone","security_access_code","Waypoint","_Place","TrackingStatus","Vehicle","organizationActions","Organization","serializeOrganizations","organizationJson","driverActions","login","identity","password","isPhone","verifyCode","code","track","listOrganizations","switchOrganization","currentOrganization","retrieve","syncDevice","Driver","organizationId","next","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","_Adapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","_defineProperty","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","classify","resources","adapters","Resolver","className","_construct","extendStoreActions","extend","extendActions","storage","resourceInstance","_step2","serialized","_iterator2","element","deposit","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","sent","stop","_x","_x2","_ref2","_callee2","_context2","_x3","_x4","_ref3","_callee3","_context3","_x5","_x6","_ref4","_callee4","_context4","_x7","_x8","_ref5","_callee5","_context5","_x9","_x10","single","_ref6","_callee6","_context6","_x11","_x12","_this7","_ref7","_callee7","_context7","_x13","_x14","Fleetbase","_config$version","_config$host","_config$namespace","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","organizations","coordinate","isFinite","Math","abs"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/fleetbase.js b/dist/cjs/fleetbase.js index 551992f..561a9a6 100644 --- a/dist/cjs/fleetbase.js +++ b/dist/cjs/fleetbase.js @@ -1,6 +1,2 @@ -<<<<<<< HEAD -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("axios");function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}require("date-fns");var n=e(t);function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(E(t))if(r.length<=6e4)t.splice.apply(t,[e,n].concat(w(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;n<0&&(n+=i);var o=r&&e!=e?function(t){return t!=t}:function(t){return t===e};return P(t,o,n)},L=function(t,e,n){return $(t,e,0,[n]),n},N=function(t){v(n,y(Array));var e=k(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return S(this,0)}},{key:"last",get:function(){return S(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return $(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return S(e,t)}))}},{key:"objectAt",value:function(t){return S(this,t)}},{key:"indexOf",value:function(t,e){return C(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(S(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==C(this,t,e,!0)}},{key:"findBy",value:function(){return z(this,_.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return P(this,_.apply(void 0,arguments))}},{key:"isEvery",value:function(){return D(this,_.apply(void 0,arguments))}},{key:"isAny",value:function(){return F(this,_.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:j,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return L(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return $(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=S(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=S(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return L(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){S(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),T=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=o(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},q=function(t){return T(t)||"string"==typeof t&&!1===/\S/.test(t)};function B(t){return t instanceof Z}var U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},I=function(){var t,e,n,r,i;return!("undefined"==typeof process||"object"!==o(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(r=window)||void 0===r||null===(i=r.navigator)||void 0===i?void 0:i.product))},J=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return I()?$t("adapter","NodeAdapter",t):$t("adapter","BrowserAdapter",t)},W=Array.isArray,M=function(){function t(e){u(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return h(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=i(i({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),K=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;u(this,t),this.type="Point",this.coordinates=[n,e]}return h(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=m(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}();"undefined"==typeof arguments||arguments;var G=function(t,e){var n=t();return Array.isArray(n)||"object"===o(n)?H(n,e):null},H=function t(e,n){var r,i=e,s=o(e),a="object"===s,u="function"===s,c=Array.isArray(e),h="string"===o(n)&&n.includes(".")?n.split("."):[n];if(c||a){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u(this,t),this.actions=e,this.bind=n}return h(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===o(this.actions))for(var n in this.actions){var r=this.actions[n];"function"==typeof r?Q(e,n,r.bind(e)):Q(e,n,r)}return this}}]),t}(),Z=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};u(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return h(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Ot(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return T(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===o(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Q(this.attributes,t,n),Q(this.dirtyAttributes,t,r),E(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=H(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(E(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return E(t)?this.hasAttribute(t)&&t.every((function(t){return!T(e.getAttribute(t))})):this.hasAttribute(t)&&!T(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!E(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=i(i({},n),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Y=new V({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),X=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"order",i({actions:Y},o))}return h(n,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),n}(),tt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"payload",i)}return h(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new N(this.waypoints)}}]),n}(),et=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"entity",i)}return n}(),nt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"place",i)}return h(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return B(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getAttribute("coordinates"),o=m(i,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new K(s,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,r)}}]),n}(),rt=function(t){v(n,nt);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"waypoint",i)}return n}(),it=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"tracking-status",i)}return n}(),ot=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vehicle",i)}return n}(),st=new V({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(U(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",i({identity:t,password:e},n)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",i({identity:t,code:e},n)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),at=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"driver",i({actions:st},o))}return h(n,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),n}(),ut=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vendor",i)}return n}(),ct=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"contact",i)}return n}(),ht=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"zone",i)}return n}(),lt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-area",i)}return n}(),vt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-rate",i)}return n}(),dt=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-quote",i)}return h(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),ft=function(t){v(n,Z);var e=k(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"organization",i)}return n}(),gt=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},pt=function(t){v(n,gt);var e=k(n);function n(t){var r;return u(this,n),(r=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),r}return h(n,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=i(i({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),i({method:n,mode:o.mode||"cors",headers:new Headers(i(i({},e.headers||{}),o.headers||{}))},r)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),n}(),yt=function(t){v(r,gt);var e=k(r);function r(t){var i;return u(this,r),(i=e.call(this,t)).axios=n.default.create({baseURL:"".concat(i.host,"/").concat(i.namespace),headers:{Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),i}return h(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=i(i({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(E(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=q(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),r}(),bt=function(t){v(n,gt);var e=k(n);function n(){return u(this,n),e.apply(this,arguments)}return n}(),kt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];u(this,t),l(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),l(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),l(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),l(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),l(this,"idSuffix",new RegExp("(_ids|_id)$","g")),l(this,"underbar",new RegExp("_","g")),l(this,"spaceOrUnderbar",new RegExp("[ _]","g")),l(this,"uppercase",new RegExp("([A-Z])","g")),l(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return h(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=E(e)?e:[e],!E(e))return e instanceof V&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};u(this,t),this.resource=e,this.adapter=n||J(),this.namespace=mt(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return jt(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return $t("resource",At(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),E(e)){for(var n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var i=a(regeneratorRuntime.mark((function i(o,s){var a;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,r).then(e.afterFetch.bind(e)).catch(s);case 2:a=i.sent,o(a);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=a(regeneratorRuntime.mark((function n(r,i){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(i);case 2:o=n.sent,r(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var r=a(regeneratorRuntime.mark((function r(i,o){var s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=r.sent,i(s);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=B(t)?t.getAttribute("id"):t;return new Promise(function(){var t=a(regeneratorRuntime.mark((function t(i,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(r),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,i(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),St=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:s,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!I()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||J(this.options),this.orders=new Ot("order",this.adapter).extendActions(Y),this.entities=new Ot("entity",this.adapter),this.places=new Ot("place",this.adapter),this.drivers=new Ot("driver",this.adapter).extendActions(st),this.vehicles=new Ot("vehicle",this.adapter),this.vendors=new Ot("vendor",this.adapter),this.contacts=new Ot("contact",this.adapter)}return h(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return p(t,Array.prototype.slice.call(arguments))}}]),t}();exports.Adapter=gt,exports.BrowserAdapter=pt,exports.Collection=N,exports.Contact=ct,exports.Driver=at,exports.EmberJsAdapter=bt,exports.Entity=et,exports.GoogleAddress=M,exports.NodeAdapter=yt,exports.Order=X,exports.Organization=ft,exports.Payload=tt,exports.Place=nt,exports.Point=K,exports.Resource=Z,exports.ServiceArea=lt,exports.ServiceQuote=dt,exports.ServiceRate=vt,exports.Store=Ot,exports.StoreActions=V,exports.TrackingStatus=it,exports.Vehicle=ot,exports.Vendor=ut,exports.Waypoint=rt,exports.Zone=ht,exports.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return kt.invoke.apply(kt,w(t))},exports.classify=At,exports.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return kt.invoke.apply(kt,w(t))},exports.default=St,exports.extendStoreActions=jt,exports.isLatitude=function(t){return isFinite(t)&&Math.abs(t)<=90},exports.isLongitude=function(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90},exports.isNodeEnvironment=I,exports.isResource=B,exports.pluralize=mt,exports.singularize=wt; -======= -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("axios");function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function n(t){for(var n=1;n=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),c=i.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function i(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,i)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function s(t){a(o,r,i,s,u,"next",t)}function u(t){a(o,r,i,s,u,"throw",t)}s(void 0)}))}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}var O=Array.isArray,j="undefined"==typeof arguments?void 0:arguments,$=6e4,R=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(O(t))if(r.length<=$)t.splice.apply(t,[e,n].concat(k(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),z(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)},D=function(t,e,n){return R(t,e,0,[n]),n},N=function(t){v(n,y(Array));var e=m(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return P(this,0)}},{key:"last",get:function(){return P(this,this.length-1)}},{key:"replace",value:function(t,e){return R(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return P(e,t)}))}},{key:"objectAt",value:function(t){return P(this,t)}},{key:"indexOf",value:function(t,e){return F(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(P(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==F(this,t,e,!0)}},{key:"findBy",value:function(){return t=this,e=L.apply(void 0,arguments),r=e.bind(n),-1===(i=z(t,r,0))?void 0:P(t,i);var t,e,n,r,i}},{key:"findIndexBy",value:function(){return z(this,L.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=L.apply(void 0,arguments),r=e.bind(n),-1===z(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:"isAny",value:function(){return t=this,e=L.apply(void 0,arguments),r=e.bind(n),-1!==z(t,r,0);var t,e,n,r}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:S,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return D(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return R(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=P(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=P(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return D(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){P(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),C=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=o(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},T=function(t){return C(t)||"string"==typeof t&&!1===/\S/.test(t)};function q(t){return t instanceof Q}var I=function(){var t,e,n;return!("undefined"==typeof process||"object"!==o(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))},B=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return I()?jt("adapter","NodeAdapter",t):jt("adapter","BrowserAdapter",t)},G=Array.isArray,U=function(){function t(e){u(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return h(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=E(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(G(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=n(n({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),J=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;u(this,t),this.type="Point",this.coordinates=[n,e]}return h(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=w(e.coordinates,2),r=n[0];return new t(n[1],r)}}]),t}();"undefined"==typeof arguments||arguments;var W=function(t,e){var n=t();return Array.isArray(n)||"object"===o(n)?M(n,e):null},M=function t(e,n){var r,i=e,a=o(e),s="object"===a,u="function"===a,c=Array.isArray(e),h="string"===o(n)&&n.includes(".")?n.split("."):[n];if(c||s){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u(this,t),this.actions=e,this.bind=n}return h(t,[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===o(this.actions))for(var e in this.actions){var n=this.actions[e];"function"==typeof n?K(t,e,n.bind(t)):K(t,e,n)}return this}}]),t}(),Q=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};u(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return h(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Rt(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return C(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===o(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return K(this.attributes,t,n),K(this.dirtyAttributes,t,r),O(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=M(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(O(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return O(t)?this.hasAttribute(t)&&t.every((function(t){return!C(e.getAttribute(t))})):this.hasAttribute(t)&&!C(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!O(t))throw new Error("No attribute properties provided!");var n,r=E(t);try{for(r.s();!(n=r.n()).done;){var i,a,s=n.value;if("string"==typeof s){var u=this.getAttribute(s);"object"!==o(null===(i=u)||void 0===i?void 0:i.attributes)||O(null===(a=u)||void 0===a?void 0:a.attributes)||(u=u.attributes),e[s]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=n(n({},r),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),V=new H({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return q(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return q(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return q(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),Y=function(t){v(r,Q);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"order",n({actions:V},o))}return h(r,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),r}(),Z=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"payload",i)}return h(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new N(this.waypoints)}}]),n}(),X=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"entity",i)}return h(n)}(),tt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"place",i)}return h(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new J))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new J))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return q(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=w(t.getAttribute("coordinates"),2),o=i[0],a=i[1];return new n({name:null,address:t.getAttribute("address"),location:new J(o,a),street1:t.getAttribute("streetName"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null},e,r)}}]),n}(),et=function(t){v(n,tt);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"waypoint",i)}return h(n)}(),nt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"tracking-status",i)}return h(n)}(),rt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vehicle",i)}return h(n)}(),it=new H({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),ot=function(t){v(r,Q);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"organization",n({actions:it},o))}return h(r)}(),at=function(t,e){return O(t)?t.map((function(t){return new ot(t,e)})):new ot(t,e)},st=new H({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",n({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",n({identity:t,code:e},r)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return at(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return at(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return at(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),ut=function(t){v(r,Q);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"driver",n({actions:st},o))}return h(r,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}]),r}(),ct=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vendor",i)}return h(n)}(),ht=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"contact",i)}return h(n)}(),lt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"zone",i)}return h(n)}(),vt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-area",i)}return h(n)}(),ft=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-rate",i)}return h(n)}(),dt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-quote",i)}return h(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),pt=h((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}})),gt=function(t){v(r,pt);var e=m(r);function r(t){var n;return u(this,r),(n=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return h(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=n(n({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(a,s){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),n({method:r,mode:o.mode||"cors",headers:new Headers(n(n({},e.headers||{}),o.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?a(t.json):s(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){s(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=T(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),r}(),yt=function(e){v(i,pt);var r=m(i);function i(e){var n;return u(this,i),(n=r.call(this,e)).axios=t.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n}return h(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=n(n({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(O(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=T(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),i}(),bt=function(t){v(n,pt);var e=m(n);function n(){return u(this,n),e.apply(this,arguments)}return h(n)}(),mt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];u(this,t),l(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),l(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),l(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),l(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),l(this,"idSuffix",new RegExp("(_ids|_id)$","g")),l(this,"underbar",new RegExp("_","g")),l(this,"spaceOrUnderbar",new RegExp("[ _]","g")),l(this,"uppercase",new RegExp("([A-Z])","g")),l(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return h(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=O(e)?e:[e],!O(e))return e instanceof H&&e.extend(t),t;var n,r=E(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}},Rt=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};u(this,t),this.resource=e,this.adapter=n||B(),this.namespace=wt(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){return $t(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return jt("resource",At(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),O(e)){var n,r=[],i=E(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return g(N,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var o=s(r().mark((function o(a,s){var u;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:u=r.sent,a(u);case 4:case"end":return r.stop()}}),o)})));return function(t,e){return o.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=s(r().mark((function n(i,o){var a;return r().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(o);case 2:a=n.sent,i(a);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=q(t)?t.getAttribute("id"):t;return new Promise(function(){var t=s(r().mark((function t(o,a){var s;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=t.sent,o(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),St=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!I()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||B(this.options),this.orders=new Rt("order",this.adapter).extendActions(V),this.entities=new Rt("entity",this.adapter),this.places=new Rt("place",this.adapter),this.drivers=new Rt("driver",this.adapter).extendActions(st),this.vehicles=new Rt("vehicle",this.adapter),this.vendors=new Rt("vendor",this.adapter),this.contacts=new Rt("contact",this.adapter),this.organizations=new Rt("organization",this.adapter).extendActions(it)}return h(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return g(t,Array.prototype.slice.call(arguments))}}]),t}();exports.Adapter=pt,exports.BrowserAdapter=gt,exports.Collection=N,exports.Contact=ht,exports.Driver=ut,exports.EmberJsAdapter=bt,exports.Entity=X,exports.GoogleAddress=U,exports.NodeAdapter=yt,exports.Order=Y,exports.Organization=ot,exports.Payload=Z,exports.Place=tt,exports.Point=J,exports.Resource=Q,exports.ServiceArea=vt,exports.ServiceQuote=dt,exports.ServiceRate=ft,exports.Store=Rt,exports.StoreActions=H,exports.TrackingStatus=nt,exports.Vehicle=rt,exports.Vendor=ct,exports.Waypoint=et,exports.Zone=lt,exports.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return mt.invoke.apply(mt,k(t))},exports.classify=At,exports.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return mt.invoke.apply(mt,k(t))},exports.default=St,exports.extendStoreActions=$t,exports.isLatitude=function(t){return isFinite(t)&&Math.abs(t)<=90},exports.isLongitude=function(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90},exports.isNodeEnvironment=I,exports.isResource=q,exports.pluralize=wt,exports.singularize=kt; ->>>>>>> 956839d5964850b969941f04a0f703ea857e885b +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("axios");function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function n(t){for(var n=1;n=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),c=i.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:P(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function i(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,i)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function s(t){a(o,r,i,s,u,"next",t)}function u(t){a(o,r,i,s,u,"throw",t)}s(void 0)}))}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}var O=Array.isArray,j="undefined"==typeof arguments?void 0:arguments,$=6e4,R=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(O(t))if(r.length<=$)t.splice.apply(t,[e,n].concat(k(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),z(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)},D=function(t,e,n){return R(t,e,0,[n]),n},N=function(t){v(n,y(Array));var e=m(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return L(this,0)}},{key:"last",get:function(){return L(this,this.length-1)}},{key:"replace",value:function(t,e){return R(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return L(e,t)}))}},{key:"objectAt",value:function(t){return L(this,t)}},{key:"indexOf",value:function(t,e){return F(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(L(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==F(this,t,e,!0)}},{key:"findBy",value:function(){return t=this,e=P.apply(void 0,arguments),r=e.bind(n),-1===(i=z(t,r,0))?void 0:L(t,i);var t,e,n,r,i}},{key:"findIndexBy",value:function(){return z(this,P.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=P.apply(void 0,arguments),r=e.bind(n),-1===z(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:"isAny",value:function(){return t=this,e=P.apply(void 0,arguments),r=e.bind(n),-1!==z(t,r,0);var t,e,n,r}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:S,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return D(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return R(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=L(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=L(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return D(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){L(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),C=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=o(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},T=function(t){return C(t)||"string"==typeof t&&!1===/\S/.test(t)};function q(t){return t instanceof Q}var I=function(){var t,e,n;return!("undefined"==typeof process||"object"!==o(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))},B=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return I()?jt("adapter","NodeAdapter",t):jt("adapter","BrowserAdapter",t)},G=Array.isArray,U=function(){function t(e){u(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return h(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=E(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(G(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=n(n({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),J=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;u(this,t),this.type="Point",this.coordinates=[n,e]}return h(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=w(e.coordinates,2),r=n[0];return new t(n[1],r)}}]),t}();"undefined"==typeof arguments||arguments;var W=function(t,e){var n=t();return Array.isArray(n)||"object"===o(n)?M(n,e):null},M=function t(e,n){var r,i=e,a=o(e),s="object"===a,u="function"===a,c=Array.isArray(e),h="string"===o(n)&&n.includes(".")?n.split("."):[n];if(c||s){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u(this,t),this.actions=e,this.bind=n}return h(t,[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===o(this.actions))for(var e in this.actions){var n=this.actions[e];"function"==typeof n?K(t,e,n.bind(t)):K(t,e,n)}return this}}]),t}(),Q=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};u(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return h(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Rt(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return C(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===o(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return K(this.attributes,t,n),K(this.dirtyAttributes,t,r),O(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=M(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(O(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return O(t)?this.hasAttribute(t)&&t.every((function(t){return!C(e.getAttribute(t))})):this.hasAttribute(t)&&!C(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!O(t))throw new Error("No attribute properties provided!");var n,r=E(t);try{for(r.s();!(n=r.n()).done;){var i,a,s=n.value;if("string"==typeof s){var u=this.getAttribute(s);"object"!==o(null===(i=u)||void 0===i?void 0:i.attributes)||O(null===(a=u)||void 0===a?void 0:a.attributes)||(u=u.attributes),e[s]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=n(n({},r),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),V=new H({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return q(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return q(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return q(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),Y=function(t){v(r,Q);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"order",n({actions:V},o))}return h(r,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),r}(),Z=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"payload",i)}return h(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new N(this.waypoints)}}]),n}(),X=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"entity",i)}return h(n)}(),tt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"place",i)}return h(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new J))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new J))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return q(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=w(t.getAttribute("coordinates"),2),o=i[0],a=i[1];return new n({name:null,address:t.getAttribute("address"),location:new J(o,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null},e,r)}}]),n}(),et=function(t){v(n,tt);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"waypoint",i)}return h(n)}(),nt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"tracking-status",i)}return h(n)}(),rt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vehicle",i)}return h(n)}(),it=new H({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),ot=function(t){v(r,Q);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"organization",n({actions:it},o))}return h(r)}(),at=function(t,e){return O(t)?t.map((function(t){return new ot(t,e)})):new ot(t,e)},st=new H({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",n({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",n({identity:t,code:e},r)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return at(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return at(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return at(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),ut=function(t){v(r,Q);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"driver",n({actions:st},o))}return h(r,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new J))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new J))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}]),r}(),ct=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vendor",i)}return h(n)}(),ht=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"contact",i)}return h(n)}(),lt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"zone",i)}return h(n)}(),vt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-area",i)}return h(n)}(),ft=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-rate",i)}return h(n)}(),dt=function(t){v(n,Q);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-quote",i)}return h(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),pt=h((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}})),gt=function(t){v(r,pt);var e=m(r);function r(t){var n;return u(this,r),(n=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return h(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=n(n({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(a,s){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),n({method:r,mode:o.mode||"cors",headers:new Headers(n(n({},e.headers||{}),o.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?a(t.json):s(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){s(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=T(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),r}(),yt=function(e){v(i,pt);var r=m(i);function i(e){var n;return u(this,i),(n=r.call(this,e)).axios=t.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n}return h(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=n(n({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(O(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=T(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),i}(),bt=function(t){v(n,pt);var e=m(n);function n(){return u(this,n),e.apply(this,arguments)}return h(n)}(),mt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];u(this,t),l(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),l(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),l(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),l(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),l(this,"idSuffix",new RegExp("(_ids|_id)$","g")),l(this,"underbar",new RegExp("_","g")),l(this,"spaceOrUnderbar",new RegExp("[ _]","g")),l(this,"uppercase",new RegExp("([A-Z])","g")),l(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return h(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=O(e)?e:[e],!O(e))return e instanceof H&&e.extend(t),t;var n,r=E(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}},Rt=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};u(this,t),this.resource=e,this.adapter=n||B(),this.namespace=wt(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){return $t(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return jt("resource",xt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),O(e)){var n,r=[],i=E(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return g(N,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var o=s(r().mark((function o(a,s){var u;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:u=r.sent,a(u);case 4:case"end":return r.stop()}}),o)})));return function(t,e){return o.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=s(r().mark((function n(i,o){var a;return r().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(o);case 2:a=n.sent,i(a);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=q(t)?t.getAttribute("id"):t;return new Promise(function(){var t=s(r().mark((function t(o,a){var s;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=t.sent,o(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),St=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!I()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||B(this.options),this.orders=new Rt("order",this.adapter).extendActions(V),this.entities=new Rt("entity",this.adapter),this.places=new Rt("place",this.adapter),this.drivers=new Rt("driver",this.adapter).extendActions(st),this.vehicles=new Rt("vehicle",this.adapter),this.vendors=new Rt("vendor",this.adapter),this.contacts=new Rt("contact",this.adapter),this.organizations=new Rt("organization",this.adapter).extendActions(it)}return h(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return g(t,Array.prototype.slice.call(arguments))}}]),t}();exports.Adapter=pt,exports.BrowserAdapter=gt,exports.Collection=N,exports.Contact=ht,exports.Driver=ut,exports.EmberJsAdapter=bt,exports.Entity=X,exports.GoogleAddress=U,exports.NodeAdapter=yt,exports.Order=Y,exports.Organization=ot,exports.Payload=Z,exports.Place=tt,exports.Point=J,exports.Resource=Q,exports.ServiceArea=vt,exports.ServiceQuote=dt,exports.ServiceRate=ft,exports.Store=Rt,exports.StoreActions=H,exports.TrackingStatus=nt,exports.Vehicle=rt,exports.Vendor=ct,exports.Waypoint=et,exports.Zone=lt,exports.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return mt.invoke.apply(mt,k(t))},exports.classify=xt,exports.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return mt.invoke.apply(mt,k(t))},exports.default=St,exports.extendStoreActions=$t,exports.isLatitude=function(t){return isFinite(t)&&Math.abs(t)<=90},exports.isLongitude=function(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90},exports.isNodeEnvironment=I,exports.isResource=q,exports.lookup=jt,exports.pluralize=wt,exports.singularize=kt; //# sourceMappingURL=fleetbase.js.map diff --git a/dist/cjs/fleetbase.js.map b/dist/cjs/fleetbase.js.map index eaa33ea..3046131 100644 --- a/dist/cjs/fleetbase.js.map +++ b/dist/cjs/fleetbase.js.map @@ -1,5 +1 @@ -<<<<<<< HEAD -{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/resources/organization.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","import Resource from '../resource';\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', options);\n }\n}\n\nexport default Organization;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n"],"names":["isArray","Array","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","val","withNaNCheck","insertAt","this","indexes","map","idx","_this2","object","methodName","args","ret","forEach","push","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","seen","Set","getter","get","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Organization","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","storage","resourceInstance","serialized","deposit","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","coordinate","isFinite","Math","abs"],"mappings":"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"} -======= -{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/organization.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js"],"sourcesContent":["const { isArray } = Array;\n\nexport { isArray };\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (const element of sortKeys) {\n let key = element;\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n *\n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (\n typeof process !== 'undefined' &&\n (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) &&\n (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative')\n );\n};\n\nexport default isNodeEnvironment;\n","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n};\n\nexport default detectAdapter;\n","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (const element of keys) {\n const key = element;\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return key in this.components;\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = { ...this.attributes, ...attributes };\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n const [longitude, latitude] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()],\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}\n","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (const element of classes) {\n for (const property in element) {\n if (Object.prototype.hasOwnProperty.call(element, property)) {\n target[property] = element[property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for (let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n\n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (const element of properties) {\n const property = element;\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\n /**\n * Attaches an entity to an existing payload and returns\n * the payload with the entity attached\n *\n * @param {[type]} Entity entity [description]\n * @return {[type]} [description]\n */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n * Returns all of the entities attached to this payload\n *\n * @return {[type]} [description]\n */\n get entities() {}\n\n /**\n * Returns the dropoff for this payload\n *\n * @return {[type]} [description]\n */\n get dropoff() {}\n\n /**\n * Returns the pickup for this payload\n *\n * @return {[type]} [description]\n */\n get pickup() {}\n\n /**\n * Returns all the waypoints for this payload\n *\n * @return {[type]} [description]\n */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [latitude, longitude] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('streetName'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null,\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n /**\n * Set the owner of the place.\n *\n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`, params, options);\n },\n});\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', { actions: organizationActions, ...options });\n }\n}\n\nexport default Organization;\nexport { organizationActions };\n","import Resource from '../resource';\nimport Organization from './organization';\nimport { StoreActions, isPhone, Collection } from '../utils';\nimport { isArray } from '../utils/array';\n\nconst serializeOrganizations = (response, adapter) => {\n if (isArray(response)) {\n return response.map((organizationJson) => {\n return new Organization(organizationJson, adapter);\n });\n }\n\n return new Organization(response, adapter);\n};\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n listOrganizations: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/organizations`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n switchOrganization: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/switch-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n currentOrganization: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/current-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n\n listOrganizations(params = {}, options = {}) {\n return this.store.listOrganizations(this.id, params, options);\n }\n\n switchOrganization(organizationId, options = {}) {\n return this.store.switchOrganization(this.id, { next: organizationId }, options);\n }\n\n currentOrganization(params = {}, options = {}) {\n return this.store.currentOrganization(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {}\n\n fromPayload() {}\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n * Creates a configured base adapter for Fleetbase.\n *\n * @param {Object} config Configuration options for adapter\n */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser',\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) =>\n response\n .json()\n .then((json) =>\n resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n })\n )\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n })\n );\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) =>\n fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n })\n );\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n *\n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function () {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function () {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function () {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function () {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function () {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function () {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function () {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function () {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function () {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function () {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function () {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function () {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport { pluralize, singularize, humanize, underscore, camelize, capitalize, dasherize, normify, demodulize, tableize, classify, foreignKey };\n","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\n","import { lookup } from './resolver';\nimport { Collection, StoreActions, detectAdapter, isResource } from './utils';\nimport { isArray } from './utils/array';\nimport { classify, pluralize } from './utils/string';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (const element of actions) {\n const action = element;\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (const element of json) {\n serialized.push(store.afterFetch(element));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { afterFetch, extendStoreActions };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\nimport { organizationActions } from './resources/organization';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n this.organizations = new Store('organization', this.adapter).extendActions(organizationActions);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","arguments","length","undefined","splice","apply","concat","_toConsumableArray","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","Boolean","findIndex","predicate","startAt","len","indexOf","val","withNaNCheck","insertAt","_Array","_inherits","_wrapNativeSuper","_super","_createSuper","_len","_key","_classCallCheck","_possibleConstructorReturn","call","_createClass","get","this","indexes","_this2","map","idx","object","callback","bind","target","cb","methodName","_len2","args","_key2","ret","forEach","_item$methodName","push","filter","sortKeys","sort","a","b","_step","_iterator","_createForOfIteratorHelper","s","n","done","propA","propB","compareValue","compare","err","e","f","seen","Set","getter","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","_typeof","isBlank","test","isResource","record","Resource","isNodeEnvironment","_process","_process$release","_window","process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","_this$place","address_components","reduce","acc","data","types","type","_this$geometry","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","pkey","short","short_name","long_name","_objectSpread","Point","latitude","longitude","coorindates","lat","lng","serialize","json","_json$coordinates","_slicedToArray","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","_this$options","store","Store","onAfterFetch","syncAttributes","getAttribute","_this","mergeAttributes","setFlags","create","then","response","update","id","destroy","_this4","findRecord","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","keys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","_this$attributes","_this5","property","_this$dirtyAttributes","_this$attributes$prop","setAttributes","previousValue","changedAt","setAttribute","attribute","_this$attributes2","defaultValue","_this$attributes3","properties","attributeKeys","every","prop","hasAttribute","_this6","prototype","_value","_value2","_this$attributes4","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","_Resource","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","_googleAddress$getAtt2","street1","street2","province","postal_code","neighborhood","district","building","phone","security_access_code","Waypoint","_Place","TrackingStatus","Vehicle","organizationActions","Organization","serializeOrganizations","organizationJson","driverActions","login","identity","password","isPhone","verifyCode","code","track","listOrganizations","switchOrganization","currentOrganization","retrieve","syncDevice","Driver","organizationId","next","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","_Adapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","_defineProperty","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","classify","resources","adapters","Resolver","className","_construct","extendStoreActions","extend","extendActions","storage","resourceInstance","_step2","serialized","_iterator2","element","deposit","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","sent","stop","_x","_x2","_ref2","_callee2","_context2","_x3","_x4","_ref3","_callee3","_context3","_x5","_x6","_ref4","_callee4","_context4","_x7","_x8","_ref5","_callee5","_context5","_x9","_x10","single","_ref6","_callee6","_context6","_x11","_x12","_this7","_ref7","_callee7","_context7","_x13","_x14","Fleetbase","_config$version","_config$host","_config$namespace","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","organizations","coordinate","isFinite","Math","abs"],"mappings":"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"} ->>>>>>> 956839d5964850b969941f04a0f703ea857e885b +{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/organization.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js"],"sourcesContent":["const { isArray } = Array;\n\nexport { isArray };\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (const element of sortKeys) {\n let key = element;\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n *\n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (\n typeof process !== 'undefined' &&\n (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) &&\n (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative')\n );\n};\n\nexport default isNodeEnvironment;\n","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n};\n\nexport default detectAdapter;\n","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (const element of keys) {\n const key = element;\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return key in this.components;\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = { ...this.attributes, ...attributes };\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n const [longitude, latitude] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()],\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}\n","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (const element of classes) {\n for (const property in element) {\n if (Object.prototype.hasOwnProperty.call(element, property)) {\n target[property] = element[property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for (let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n\n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (const element of properties) {\n const property = element;\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\n /**\n * Attaches an entity to an existing payload and returns\n * the payload with the entity attached\n *\n * @param {[type]} Entity entity [description]\n * @return {[type]} [description]\n */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n * Returns all of the entities attached to this payload\n *\n * @return {[type]} [description]\n */\n get entities() {}\n\n /**\n * Returns the dropoff for this payload\n *\n * @return {[type]} [description]\n */\n get dropoff() {}\n\n /**\n * Returns the pickup for this payload\n *\n * @return {[type]} [description]\n */\n get pickup() {}\n\n /**\n * Returns all the waypoints for this payload\n *\n * @return {[type]} [description]\n */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [latitude, longitude] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null,\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n /**\n * Set the owner of the place.\n *\n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`, params, options);\n },\n});\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', { actions: organizationActions, ...options });\n }\n}\n\nexport default Organization;\nexport { organizationActions };\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\nimport Organization from './organization';\nimport { isArray } from '../utils/array';\n\nconst serializeOrganizations = (response, adapter) => {\n if (isArray(response)) {\n return response.map((organizationJson) => {\n return new Organization(organizationJson, adapter);\n });\n }\n\n return new Organization(response, adapter);\n};\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n listOrganizations: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/organizations`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n switchOrganization: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/switch-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n currentOrganization: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/current-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n\n listOrganizations(params = {}, options = {}) {\n return this.store.listOrganizations(this.id, params, options);\n }\n\n switchOrganization(organizationId, options = {}) {\n return this.store.switchOrganization(this.id, { next: organizationId }, options);\n }\n\n currentOrganization(params = {}, options = {}) {\n return this.store.currentOrganization(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {}\n\n fromPayload() {}\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n * Creates a configured base adapter for Fleetbase.\n *\n * @param {Object} config Configuration options for adapter\n */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser',\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) =>\n response\n .json()\n .then((json) =>\n resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n })\n )\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n })\n );\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) =>\n fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n })\n );\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n *\n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function () {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function () {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function () {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function () {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function () {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function () {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function () {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function () {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function () {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function () {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function () {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function () {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport { pluralize, singularize, humanize, underscore, camelize, capitalize, dasherize, normify, demodulize, tableize, classify, foreignKey };\n","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { Collection, StoreActions, detectAdapter, isResource } from './utils';\nimport { isArray } from './utils/array';\nimport { classify, pluralize } from './utils/string';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (const element of actions) {\n const action = element;\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (const element of json) {\n serialized.push(store.afterFetch(element));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { afterFetch, extendStoreActions };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\nimport { organizationActions } from './resources/organization';\nimport { lookup } from './resolver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n this.organizations = new Store('organization', this.adapter).extendActions(organizationActions);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n lookup,\n};\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","arguments","length","undefined","splice","apply","concat","_toConsumableArray","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","Boolean","findIndex","predicate","startAt","len","indexOf","val","withNaNCheck","insertAt","_Array","_inherits","_wrapNativeSuper","_super","_createSuper","_len","_key","_classCallCheck","_possibleConstructorReturn","call","_createClass","get","this","indexes","_this2","map","idx","object","callback","bind","target","cb","methodName","_len2","args","_key2","ret","forEach","_item$methodName","push","filter","sortKeys","sort","a","b","_step","_iterator","_createForOfIteratorHelper","s","n","done","propA","propB","compareValue","compare","err","e","f","seen","Set","getter","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","_typeof","isBlank","test","isResource","record","Resource","isNodeEnvironment","_process","_process$release","_window","process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","_this$place","address_components","reduce","acc","data","types","type","_this$geometry","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","pkey","short","short_name","long_name","_objectSpread","Point","latitude","longitude","coorindates","lat","lng","serialize","json","_json$coordinates","_slicedToArray","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","_this$options","store","Store","onAfterFetch","syncAttributes","getAttribute","_this","mergeAttributes","setFlags","create","then","response","update","id","destroy","_this4","findRecord","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","keys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","_this$attributes","_this5","property","_this$dirtyAttributes","_this$attributes$prop","setAttributes","previousValue","changedAt","setAttribute","attribute","_this$attributes2","defaultValue","_this$attributes3","properties","attributeKeys","every","prop","hasAttribute","_this6","prototype","_value","_value2","_this$attributes4","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","_Resource","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","_googleAddress$getAtt2","street1","street2","province","postal_code","neighborhood","district","building","phone","security_access_code","Waypoint","_Place","TrackingStatus","Vehicle","organizationActions","Organization","serializeOrganizations","organizationJson","driverActions","login","identity","password","isPhone","verifyCode","code","track","listOrganizations","switchOrganization","currentOrganization","retrieve","syncDevice","Driver","organizationId","next","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","_Adapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","_defineProperty","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","classify","resources","adapters","Resolver","className","_construct","extendStoreActions","extend","extendActions","storage","resourceInstance","_step2","serialized","_iterator2","element","deposit","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","sent","stop","_x","_x2","_ref2","_callee2","_context2","_x3","_x4","_ref3","_callee3","_context3","_x5","_x6","_ref4","_callee4","_context4","_x7","_x8","_ref5","_callee5","_context5","_x9","_x10","single","_ref6","_callee6","_context6","_x11","_x12","_this7","_ref7","_callee7","_context7","_x13","_x14","Fleetbase","_config$version","_config$host","_config$namespace","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","organizations","coordinate","isFinite","Math","abs"],"mappings":"i0YAAA,IAAQA,EAAYC,MAAZD,yDCOFE,EAAa,IAIbC,EAAU,SAACC,EAAOC,EAAOC,GAA4B,IAAfC,EAAKC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAChD,GAAIR,EAAQI,GACR,GAAIG,EAAME,QAAUP,EAChBE,EAAMO,OAAMC,MAAZR,EAAaC,CAAAA,EAAOC,GAAWO,OAAAC,EAAKP,SACjC,CACHH,EAAMO,OAAON,EAAOC,GAEpB,IAAK,IAAIS,EAAI,EAAGA,EAAIR,EAAME,OAAQM,GAAKb,EAAY,CAC/C,IAAIc,EAAQT,EAAMU,MAAMF,EAAGA,EAAIb,GAC/BE,EAAMO,OAAMC,MAAZR,GAAaC,EAAQU,EAAG,GAACF,OAAAC,EAAKE,IAClC,CACJ,MACOE,EAAaC,MACpBf,EAAMD,QAAQE,EAAOC,EAAaC,EAE1C,EAEMa,EAAmB,SAACC,GAAI,OAAKA,CAAI,EAkBjCH,EAAe,SAACI,GAAK,OAAKA,aAAiBC,CAAU,EAErDC,EAAW,SAACpB,EAAOqB,GACrB,OAAIzB,EAAQI,GACDA,EAAMqB,GACNP,EAAad,GACbA,EAAMoB,SAASC,GAGnB,IACX,EAEMC,EAAO,SAACC,EAAKC,GAEf,OADyC,IAArBpB,EAAUC,OACP,SAACY,GAAI,OAAKO,IAAUP,EAAKM,EAAI,EAAG,SAACN,GAAI,OAAKQ,QAAQR,EAAKM,GAAK,CACvF,EAEMG,EAAY,SAAC1B,EAAO2B,GAEtB,IAFiD,IAAhBC,EAAOxB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EACvCyB,EAAM7B,EAAMK,OACPgB,EAAQO,EAASP,EAAQQ,EAAKR,IAAS,CAE5C,GAAIM,EADOP,EAASpB,EAAOqB,GACPA,EAAOrB,GACvB,OAAOqB,CAEf,CACA,OAAQ,CACZ,EAmBMS,EAAU,SAAC9B,EAAO+B,GAAmC,IAA9BH,EAAOxB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAAG4B,EAAY5B,UAAAC,OAAAD,EAAAA,kBAAAE,EAC9CuB,EAAM7B,EAAMK,OAQhB,OANIuB,EAAU,IACVA,GAAWC,GAKRH,EAAU1B,EADDgC,GAAgBD,GAAQA,EAAM,SAACd,GAAI,OAAKA,GAASA,CAAI,EAAG,SAACA,GAAI,OAAKA,IAASc,CAAG,EAC3DH,EACvC,EAOMK,EAAW,SAACjC,EAAOqB,EAAOJ,GAE5B,OADAlB,EAAQC,EAAOqB,EAAO,EAAG,CAACJ,IACnBA,CACX,EAEME,WAAUe,GAAAC,EAAAhB,EAwPXiB,EAxPoBvC,QAAT,IAAAwC,EAAAC,EAAAnB,GACZ,SAAAA,IAAsB,IAAA,IAAAoB,EAAAnC,UAAAC,OAAPF,EAAKN,IAAAA,MAAA0C,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAALrC,EAAKqC,GAAApC,UAAAoC,GAKf,OALeC,OAAAtB,GAKfuB,EAJG9C,EAAQQ,UAAU,IAClBiC,EAAAM,KAAAnC,MAAA6B,EAAA5B,CAAAA,MAAAA,OAAAC,EAASN,UAAU,MAEnBiC,EAAA7B,WAASJ,WAEjB,CAiPC,OAjPAwC,EAAAzB,EAAA,CAAA,CAAAI,IAAA,WAAAsB,IAED,WACI,OAAOC,KAAKzC,OAAS,CACzB,GAAC,CAAAkB,IAAA,QAAAsB,IAED,WACI,OAAuB,IAAhBC,KAAKzC,MAChB,GAAC,CAAAkB,IAAA,QAAAsB,IAED,WACI,OAAOzB,EAAS0B,KAAM,EAC1B,GAAC,CAAAvB,IAAA,OAAAsB,IAED,WACI,OAAOzB,EAAS0B,KAAMA,KAAKzC,OAAS,EACxC,GAAC,CAAAkB,IAAA,UAAAC,MAED,SAAQvB,EAAOC,GAGX,OAFAH,EAAQ+C,KAAM7C,EAAOC,EADQE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAGzB0C,IACX,GAAC,CAAAvB,IAAA,YAAAC,MAED,SAAUuB,GAAS,IAAAC,EAAAF,KACf,OAAOC,EAAQE,KAAI,SAACC,GAAG,OAAK9B,EAAS4B,EAAME,KAC/C,GAAC,CAAA3B,IAAA,WAAAC,MAED,SAASH,GACL,OAAOD,EAAS0B,KAAMzB,EAC1B,GAAC,CAAAE,IAAA,UAAAC,MAED,SAAQ2B,EAAQvB,GACZ,OAAOE,EAAQgB,KAAMK,EAAQvB,GAAS,EAC1C,GAAC,CAAAL,IAAA,cAAAC,MAED,SAAY2B,EAAQvB,GAChB,IAAIC,EAAMiB,KAAKzC,aAECC,IAAZsB,GAAyBA,GAAWC,KACpCD,EAAUC,EAAM,GAGhBD,EAAU,IACVA,GAAWC,GAGf,IAAK,IAAIqB,EAAMtB,EAASsB,GAAO,EAAGA,IAC9B,GAAI9B,EAAS0B,KAAMI,KAASC,EACxB,OAAOD,EAIf,OAAQ,CACZ,GAAC,CAAA3B,IAAA,WAAAC,MAED,SAAS2B,EAAQvB,GACb,OAAiD,IAA1CE,EAAQgB,KAAMK,EAAQvB,GAAS,EAC1C,GAAC,CAAAL,IAAA,SAAAC,MAED,WACI,OA3GMxB,EA2GM8C,KA3GCM,EA2GK9B,EAAId,WAAA,EAAIJ,WA1G1BuB,EAAYyB,EAASC,KAAKC,IAEZ,KADdjC,EAAQK,EAAU1B,EAAO2B,EAAW,SAClBrB,EAAYc,EAASpB,EAAOqB,GAHzC,IAACrB,EAAOoD,EAAUE,EACvB3B,EACAN,CA0GJ,GAAC,CAAAE,IAAA,cAAAC,MAED,WACI,OAAOE,EAAUoB,KAAMxB,EAAId,WAAA,EAAIJ,WACnC,GAAC,CAAAmB,IAAA,UAAAC,MAED,WACI,OAxGOxB,EAwGM8C,KAxGCM,EAwGK9B,EAAId,WAAA,EAAIJ,WAvG3BmD,EAAKH,EAASC,KAAKC,IAEoB,IAApC5B,EAAU1B,GADD,SAACiB,EAAMI,EAAOrB,GAAK,OAAMuD,EAAGtC,EAAMI,EAAOrB,EAAM,GAC5B,GAHzB,IAACA,EAAOoD,EAAUE,EACxBC,CAwGJ,GAAC,CAAAhC,IAAA,QAAAC,MAED,WACI,OAjHKxB,EAiHM8C,KAjHCM,EAiHK9B,EAAId,WAAA,EAAIJ,WAhHzBuB,EAAYyB,EAASC,KAAKC,IACa,IAApC5B,EAAU1B,EAAO2B,EAAW,GAF3B,IAAC3B,EAAOoD,EAAUE,EACtB3B,CAiHJ,GAAC,CAAAJ,IAAA,SAAAC,MAED,SAAOgC,GAAqB,IAAAC,IAAAA,EAAArD,UAAAC,OAANqD,MAAI7D,MAAA4D,EAAAA,EAAAA,OAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAAvD,GAAAA,UAAAuD,GACtB,IAAIC,EAAM,GAIV,OAFAd,KAAKe,SAAQ,SAAC5C,GAAI,IAAA6C,EAAA,OAAKF,EAAIG,KAAqB,QAAjBD,EAAC7C,EAAKuC,UAAW,IAAAM,OAAA,EAAhBA,EAAAnB,KAAAnC,MAAAsD,EAAA,CAAA7C,GAAIR,OAAkBiD,QAE/CE,CACX,GAAC,CAAArC,IAAA,UAAAC,MAED,WACI,OAAOsB,KAAKG,KAAI,SAAChC,GAAI,OAAKA,IAC9B,GAAC,CAAAM,IAAA,UAAAC,MAED,WACI,OAAOsB,KAAKkB,QAAO,SAACxC,GAAK,OAAc,MAATA,IAClC,GAAC,CAAAD,IAAA,SAAAC,MAED,WACI,IAAIyC,EAAW7D,UAEf,OAAO0C,KAAKoB,MAAK,SAACC,EAAGC,GAAM,IACOC,EADPC,EAAAC,EACDN,GAAQ,IAA9B,IAAAK,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAgC,CAAA,IACxBnD,EADU8C,EAAA7C,MAEVmD,EAAQR,EAAE5C,GACVqD,EAAQR,EAAE7C,GAEVsD,EAAeC,QAAQH,EAAOC,GAElC,GAAIC,EACA,OAAOA,CAEf,CAAC,CAAA,MAAAE,GAAAT,EAAAU,EAAAD,EAAA,CAAA,QAAAT,EAAAW,GAAA,CACD,OAAO,CACX,GACJ,GAAC,CAAA1D,IAAA,SAAAC,MAED,SAAOD,GACH,OA1MO,SAACvB,GAAkC,IAA3BuB,EAAGnB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGY,EACrB4C,EAAM,GACNsB,EAAO,IAAIC,IACXC,EAAwB,mBAAR7D,EAAqBA,EAAM,SAACN,GAAI,OAAK4B,IAAI5B,EAAMM,EAAI,EAUvE,OARAvB,EAAM6D,SAAQ,SAAC5C,GACX,IAAIc,EAAMqD,EAAOnE,GACZiE,EAAKG,IAAItD,KACVmD,EAAKI,IAAIvD,GACT6B,EAAIG,KAAK9C,GAEjB,IAEO2C,CACX,CA4Le2B,CAAOzC,KAAMvB,EACxB,GAAC,CAAAA,IAAA,UAAAC,MAED,SAAQA,GACJ,IAAKsB,KAAK0C,SAAShE,GACf,OAAOsB,KAIX,IAAInB,EAAYH,GAAUA,EAAQ,SAACP,GAAI,OAAKA,IAASO,CAAK,EAAG,SAACP,GAAI,OAAKA,GAASA,CAAI,EACpF,OAAO6B,KAAKkB,OAAOrC,EACvB,GAAC,CAAAJ,IAAA,QAAAC,MAED,WACI,IAAIK,EAAMiB,KAAKzC,OACf,OAAY,IAARwB,GAIJiB,KAAK/C,QAAQ,EAAG8B,EAAK,IAHViB,IAKf,GAAC,CAAAvB,IAAA,WAAAC,MAED,SAAS0B,EAAKC,GAEV,OADAlB,EAASa,KAAMI,EAAKC,GACbL,IACX,GAAC,CAAAvB,IAAA,YAAAC,MAED,SAAU0B,EAAKC,GACX,OAAOL,KAAK/C,QAAQmD,EAAK,EAAG,CAACC,GACjC,GAAC,CAAA5B,IAAA,WAAAC,MAED,SAASvB,EAAO4B,GACZ,OAlKS,SAAC7B,EAAOqB,GAErB,OADAtB,EAAQC,EAAOqB,EADgBjB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EACP,IACpBJ,CACX,CA+JeyF,CAAS3C,KAAM7C,EAAO4B,EACjC,GAAC,CAAAN,IAAA,aAAAC,MAED,SAAWkE,GACP,OAAO5C,KAAKb,SAASa,KAAKzC,OAAQqF,EACtC,GAAC,CAAAnE,IAAA,cAAAC,MAED,SAAYmE,GAER,OADA7C,KAAK/C,QAAQ+C,KAAKzC,OAAQ,EAAGsF,GACtB7C,IACX,GAAC,CAAAvB,IAAA,YAAAC,MAED,WACI,IAAIK,EAAMiB,KAAKzC,OACf,GAAY,IAARwB,EACA,OAAO,KAGX,IAAI+B,EAAMxC,EAAS0B,KAAMjB,EAAM,GAE/B,OADAiB,KAAK2C,SAAS5D,EAAM,EAAG,GAChB+B,CACX,GAAC,CAAArC,IAAA,cAAAC,MAED,WACI,GAAoB,IAAhBsB,KAAKzC,OACL,OAAO,KAGX,IAAIuD,EAAMxC,EAAS0B,KAAM,GAEzB,OADAA,KAAK2C,SAAS,GACP7B,CACX,GAAC,CAAArC,IAAA,gBAAAC,MAED,SAAckE,GACV,OAAOzD,EAASa,KAAM,EAAG4C,EAC7B,GAAC,CAAAnE,IAAA,iBAAAC,MAED,SAAemE,GAEX,OADA7C,KAAK/C,QAAQ,EAAG,EAAG4F,GACZ7C,IACX,GAAC,CAAAvB,IAAA,iBAAAC,MAED,WACI,IAAIK,EAAMiB,KAAKzC,OACf,GAAY,IAARwB,EACA,OAAOiB,KAGX,IAAI6C,EAAU7C,KAAK8C,UAAUC,UAE7B,OADA/C,KAAK/C,QAAQ,EAAG8B,EAAK8D,GACd7C,IACX,GAAC,CAAAvB,IAAA,aAAAC,MAED,SAAWmE,GACP,GAAuB,IAAnBA,EAAQtF,OACR,OAAOyC,KAAKgD,QAGhB,IAAIjE,EAAMiB,KAAKzC,OAEf,OADAyC,KAAK/C,QAAQ,EAAG8B,EAAK8D,GACd7C,IACX,GAAC,CAAAvB,IAAA,eAAAC,MAED,SAAakE,GAET,IADA,IAAIK,EAAMjD,KAAKzC,QAAU,IAChB0F,GAAO,GAAG,CACC3E,EAAS0B,KAAMiD,KAEbL,GACd5C,KAAK2C,SAASM,EAEtB,CACA,OAAOjD,IACX,GAAC,CAAAvB,IAAA,gBAAAC,MAED,SAAcmE,GACV,IAAK,IAAIhF,EAAIgF,EAAQtF,OAAS,EAAGM,GAAK,EAAGA,IACrCmC,KAAKkD,aAAaL,EAAQhF,IAG9B,OAAOmC,IACX,GAAC,CAAAvB,IAAA,YAAAC,MAED,SAAUkE,GAON,OANe5C,KAAK0C,SAASE,IAGzB5C,KAAKmD,WAAWP,GAGb5C,IACX,GAAC,CAAAvB,IAAA,aAAAC,MAED,SAAWmE,GAAS,IAAAO,EAAApD,KAEhB,OADA6C,EAAQ9B,SAAQ,SAAC6B,GAAG,OAAKQ,EAAKC,UAAUT,MACjC5C,IACX,KAAC3B,CAAA,ICzWCiF,EAAU,SAACV,GACb,IAAMW,EAAOX,QACb,GAAIW,EACA,OAAOA,EAGX,GAAwB,iBAAbX,EAAIY,KACX,OAAQZ,EAAIY,KAGhB,IAAMC,EAAUC,EAAUd,GAE1B,GAAmB,WAAfa,EAAyB,CACzB,IAAQD,EAASZ,EAATY,KACR,GAAoB,iBAATA,EACP,OAAQA,CAEhB,CAEA,GAA0B,iBAAfZ,EAAIrF,QAAsC,aAAfkG,EAClC,OAAQb,EAAIrF,OAGhB,GAAmB,WAAfkG,EAAyB,CACzB,IAAQlG,EAAWqF,EAAXrF,OACR,GAAsB,iBAAXA,EACP,OAAQA,CAEhB,CAEA,OAAO,CACX,EC7BMoG,EAAU,SAACf,GAAG,OAAKU,EAAQV,IAAwB,iBAARA,IAAuC,IAAnB,KAAKgB,KAAKhB,EAAe,ECA/E,SAASiB,EAAWC,GAC/B,OAAOA,aAAkBC,CAC7B,CCJA,ICKMC,EAAoB,WAAM,IAAAC,EAAAC,EAAAC,EAC5B,QACuB,oBAAZC,SACkB,WAAxBV,EAAcO,QAAdA,EAAOG,eAAAH,IAAOA,OAAPA,EAAAA,EAASI,OAAqE,KAAlC,QAAfH,EAAAE,QAAQE,eAAO,IAAAJ,WAAAA,EAAfA,EAAiBK,YAAI,IAAAL,OAAA,EAArBA,EAAuBM,OAAO,gBAChD,oBAAXC,QAAyD,iBAAzB,QAANN,EAAAM,cAAM,IAAAN,GAAWA,QAAXA,EAANA,EAAQO,qBAASP,SAAjBA,EAAmBQ,SAE7D,ECRMC,EAAgB,WAAkB,IAAjBC,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC7B,OAAI0G,IACOc,GAAO,UAAW,cAAeD,GAGrCC,GAAO,UAAW,iBAAkBD,EAC/C,ECTQ/H,EAAYC,MAAZD,QAEFiI,EAAa,WACf,SAAAA,EAAYC,GAAOrF,OAAAoF,GACf/E,KAAKgF,MAAQA,EACbhF,KAAKiF,SAAWD,aAAK,EAALA,EAAOC,SACvBjF,KAAKkF,WAAalF,KAAKmF,kBACvBnF,KAAKoF,WAAapF,KAAKqF,iBAC3B,CA2FC,OA3FAvF,EAAAiF,EAAA,CAAA,CAAAtG,IAAA,QAAAC,MAED,WACIsB,KAAKmF,kBACLnF,KAAKqF,iBACT,GAAC,CAAA5G,IAAA,kBAAAC,MAED,WAAkB,IAAA4G,EAQd,QAP8B,QAAVA,EAAItF,KAACgF,aAAK,IAAAM,OAAA,EAAVA,EAAYC,qBAAsB,IAAIC,QAAO,SAAUC,EAAKC,GAI5E,OAHAA,EAAKC,MAAM5E,SAAQ,SAAU6E,GACzBH,EAAIG,GAAQF,CAChB,IACOD,CACV,GAAE,CAAE,EAGT,GAAC,CAAAhH,IAAA,kBAAAC,MAED,WAAkB,IAAAmH,EACRT,EAAa,CACfU,aAAc9F,KAAKD,IAAI,iBACvBgG,WAAY/F,KAAKD,IAAI,SACrBiG,YAA0BH,QAAbA,EAAA7F,KAAKiF,gBAALY,IAAaA,GAAbA,EAAeI,SAAWC,OAAOC,OAAOnG,KAAKiF,SAASgB,UAAY,CAAC,EAAG,GACnFG,KAAMpG,KAAKqG,GAAG,CAAC,WAAY,cAAe,sBAAuB,eAAgB,8BAA+B,gCAChHC,OAAQtG,KAAKD,IAAI,+BACjBwG,WAAYvG,KAAKD,IAAI,+BAA+B,GACpDyG,UAAWxG,KAAKD,IAAI,+BACpB0G,aAAczG,KAAKD,IAAI,WAAW,GAClC2G,QAAS1G,KAAKD,IAAI,WAAW,GAC7B4G,YAAa3G,KAAKD,IAAI,WACtB6G,WAAY5G,KAAKD,IAAI,gBAKzB,OAFAqF,EAAWyB,QAAU,CAACzB,EAAWU,aAAcV,EAAWW,YAAY7E,OAAOvC,SAASmI,KAAK,KAEpF1B,CACX,GAAC,CAAA3G,IAAA,MAAAC,MAED,WACI,OAAOsB,KAAKoF,UAChB,GAAC,CAAA3G,IAAA,KAAAC,MAED,WAAc,IACgB6C,EADlBC,EAAAC,EAALnE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IACoB,IAA1B,IAAAkE,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAA4B,CAAA,IAClBnD,EADQ8C,EAAA7C,MAGd,GAAI5B,EAAQ2B,GAAZ,CACI,IAAMsI,EAAOtI,EAAI,GACXuI,EAAQvI,EAAI,GAElB,GAAIuB,KAAKuC,IAAIwE,GACT,OAAO/G,KAAKD,IAAIgH,EAAMC,EAI9B,MAEA,GAAIhH,KAAKuC,IAAI9D,GACT,OAAOuB,KAAKD,IAAItB,EAExB,CAAC,CAAA,MAAAwD,GAAAT,EAAAU,EAAAD,EAAA,CAAA,QAAAT,EAAAW,GAAA,CAED,OAAO,IACX,GAAC,CAAA1D,IAAA,MAAAC,MAED,SAAID,GACA,OAAOA,KAAOuB,KAAKkF,UACvB,GAAC,CAAAzG,IAAA,MAAAC,MAED,SAAID,GAAoB,IAAfuI,EAAK1J,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACV,OAAMmB,KAAOuB,KAAKkF,WAIX8B,EAAQhH,KAAKkF,WAAWzG,GAAKwI,WAAajH,KAAKkF,WAAWzG,GAAKyI,UAH3D,IAIf,GAAC,CAAAzI,IAAA,gBAAAC,MAED,WAA+B,IAAjB0G,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAGvB,OAFA0C,KAAKoF,WAAU+B,EAAAA,EAAQ,CAAA,EAAAnH,KAAKoF,YAAeA,GAEpCpF,IACX,GAAC,CAAAvB,IAAA,eAAAC,MAED,SAAaD,EAAKC,GAGd,OAFAsB,KAAKoF,WAAW3G,GAAOC,EAEhBsB,IACX,GAAC,CAAAvB,IAAA,eAAAC,MAED,SAAaD,GACT,OAAOuB,KAAKoF,WAAW3G,IAAQ,IACnC,KAACsG,CAAA,CAjGc,GCFEqC,EAAK,WACtB,SAAAA,IAAyC,IAA7BC,EAAQ/J,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAAGgK,EAAShK,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAACqC,OAAAyH,GACnCpH,KAAK4F,KAAO,QACZ5F,KAAKgG,YAAc,CAACsB,EAAWD,EACnC,CAsBC,OAtBAvH,EAAAsH,EAAA,CAAA,CAAA3I,IAAA,WAAAsB,IAED,WACI,OAAOC,KAAKgG,YAAY,EAC5B,GAAC,CAAAvH,IAAA,YAAAsB,IAED,WACI,OAAOC,KAAKgG,YAAY,EAC5B,GAAC,CAAAvH,IAAA,MAAAC,MAED,WACI,OAAOsB,KAAKqH,QAChB,GAAC,CAAA5I,IAAA,MAAAC,MAED,WACI,OAAOsB,KAAKsH,SAChB,GAAC,CAAA7I,IAAA,YAAAC,MAQD,WACI,MAAO,CACHkH,KAAM,QACN2B,YAAa,CAACvH,KAAKwH,MAAOxH,KAAKyH,OAEvC,GAAC,CAAAhJ,IAAA,SAAAC,MAED,WACI,OAAOsB,KAAK0H,WAChB,GAAC,CAAAjJ,IAAA,WAAAC,MAED,WACI,MAAAf,IAAAA,OAAWqC,KAAKqH,eAAQ1J,OAAKqC,KAAKsH,UAAS,IAC/C,IAAC,CAAA,CAAA7I,IAAA,cAAAC,MAnBD,SAAmBiJ,GACf,IAAAC,EAAAC,EAA8BF,EAAK3B,YAAW,GAAvCsB,EAASM,EAAA,GAEhB,OAAO,IAAIR,EAFeQ,EAAA,GAECN,EAC/B,KAACF,CAAA,CA1BqB,4CCE1B,IAIMU,EAAc,SAACC,EAAMC,GACvB,IAAMC,EAAWF,IACjB,OAAOhL,MAAMD,QAAQmL,IAAiC,WAApBvE,EAAOuE,GAAwBlI,EAAIkI,EAAUD,GAAQ,IAC3F,EAQMjI,EAAM,SAANA,EAAOM,EAAQ2H,GACjB,IAhBgB5J,EAgBZ8J,EAAU7H,EAERuF,EAAIlC,EAAUrD,GACd8H,EAAoB,WAATvC,EACXwC,EAAsB,aAATxC,EACb9I,EAAUC,MAAMD,QAAQuD,GAKxBgI,EAF4B,WADpB3E,EAAUsE,IAEaA,EAAKtF,SAAS,KAClBsF,EAAKM,MAAM,KAAO,CAACN,GAEpD,GAAIlL,GAAWqL,EAAU,CACrB,IAAK,IAAItK,EAAI,EAAGA,EAAIwK,EAAU9K,OAAQM,IAAK,CACvC,GAAIqK,QAAqC1K,IAA1B0K,EAAQG,EAAUxK,IAC7B,OAAO,KACJ,GAAIqK,EAAS,CAIhB,GAHAA,EAAUA,EAAQG,EAAUxK,IAjCG,WAAjB6F,EAAVtF,EAoCW8J,KApC6B5E,EAAQlF,aAAAA,EAAAA,EAAOgH,aAA4C,WAA7B1B,EAAOtF,aAAK,EAALA,EAAOgH,kBAoCxC5H,IAArB6K,EAAUxK,EAAI,GAAkB,CACvD,IAAM0K,EAAUF,EAAUtK,MAAMF,EAAI,GAAGiJ,KAAK,KAE5C,OAAO/G,EAAImI,EAAQ9C,WAAYmD,EACnC,CAGA,GAAuB,mBAAZL,EAAwB,CAC/B,IAAMK,EAAUF,EAAUtK,MAAMF,EAAI,GAAGiJ,KAAK,KAC5C,OAAOgB,EAAYI,EAASK,EAChC,CACJ,CACJ,CACA,OAAOL,CACX,CAEA,GAAIE,EACA,OAAON,EAAYzH,EAAQ2H,EAEnC,EAmBMQ,EAAM,SAACnI,EAAQ2H,EAAMtJ,GACvB,IAAIwJ,EAAU7H,EAER8H,EAAoB,WADhBzE,EAAUrD,GAGdvD,EAAUC,MAAMD,QAAQuD,GAUxBgI,EAF4B,WADpB3E,EAAUsE,IAEaA,EAAKtF,SAAS,KAClBsF,EAAKM,MAAM,KAAO,CAACN,GAC9CS,EAAaJ,EAAU9K,OAE7B,GAAIT,GAAWqL,EAAU,CACrB,IAAK,IAAItK,EAAI,EAAGA,EAAI4K,EAAa,EAAG5K,IAC3BqK,EAAQG,EAAUxK,MACnBqK,EAAQG,EAAUxK,IAAM,CAAA,GAE5BqK,EAAUA,EAAQG,EAAUxK,IAGhCqK,EAAQG,EAAUI,EAAa,IAAM/J,CACzC,CAEA,OAAOA,CACX,ECxGqBgK,EAAY,WAC7B,SAAAA,IAAuC,IAA3BC,EAAOrL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIiD,EAAIjD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAIqC,OAAA+I,GACjC1I,KAAK2I,QAAUA,EACf3I,KAAKO,KAAOA,CAChB,CAuBC,OAvBAT,EAAA4I,EAAA,CAAA,CAAAjK,IAAA,SAAAC,MAED,WAAsB,IACZkK,GADGtL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,OACc0C,KAAKO,KAE/B,IAAKqI,EACD,OAAO5I,KAGX,GAAIA,YAAAA,KAAM2I,SAAmC,WAAxBjF,EAAO1D,KAAK2I,SAC7B,IAAK,IAAIE,KAAU7I,KAAK2I,QAAS,CAC7B,IAAMG,EAAK9I,KAAK2I,QAAQE,GAEN,mBAAPC,EAKXN,EAAII,EAASC,EAAQC,EAAGvI,KAAKqI,IAJzBJ,EAAII,EAASC,EAAQC,EAK7B,CAGJ,OAAO9I,IACX,KAAC0I,CAAA,CA3B4B,GCG3B3E,EAAQ,WAMV,SAAAA,IAA8D,IAAlDqB,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEwL,EAAQ1L,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAEqC,OAAAoE,GACxD/D,KAAKoF,WAAaA,EAClBpF,KAAKiJ,gBAAkB,GACvBjJ,KAAKkJ,QAAU,GACflJ,KAAKmJ,WAAY,EACjBnJ,KAAKoJ,UAAW,EAChBpJ,KAAKqJ,cAAe,EACpBrJ,KAAKsJ,aAAc,EACnBtJ,KAAKgJ,SAAWA,EAChBhJ,KAAK6E,QAAUA,EACf7E,KAAKuJ,QAAU1E,EAAQ0E,SAAW,KAClCvJ,KAAKwJ,WAAWT,EACpB,CAueC,OAreDjJ,EAAAiE,EAAA,CAAA,CAAAtF,IAAA,aAAAC,MAMA,SAAWqK,GAAS,IAAAU,EAOhB,OANAzJ,KAAK+I,QAAUA,EACf/I,KAAK0J,MAAQ,IAAIC,GAAM3J,KAAKgJ,SAAUD,EAAS,CAC3Ca,aAAc5J,KAAK6J,eAAetJ,KAAKP,MACvC2I,QAAqBc,QAAdA,EAAEzJ,KAAK6E,eAAL4E,IAAYA,OAAZA,EAAAA,EAAcd,UAGpB3I,IACX,GAEA,CAAAvB,IAAA,KAAAsB,IAKA,WACI,OAAOC,KAAK8J,aAAa,KAC7B,GAEA,CAAArL,IAAA,SAAAC,MAMA,WAAwB,IAAAqL,EAAA/J,KAAjBoF,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACVoI,EAAO1F,KAAKgK,gBAAgB5E,GAGlC,OAFApF,KAAKiK,SAAS,CAAC,YAAa,aAErBjK,KAAK0J,MAAMQ,OAAOxE,GAAMyE,MAAK,SAACC,GAGjC,OAFAL,EAAKE,SAAS,CAAC,YAAa,aAAa,GAElCG,CACX,GACJ,GAEA,CAAA3L,IAAA,SAAAC,MAMA,WAAwB,IAAAwB,EAAAF,KAAjBoF,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAGhB,OAFA0C,KAAKiK,SAAS,CAAC,YAAa,aAErBjK,KAAK0J,MAAMW,OAAOrK,KAAKoF,WAAWkF,GAAIlF,GAAY+E,MAAK,SAACC,GAG3D,OAFAlK,EAAK+J,SAAS,CAAC,YAAa,aAAa,GAElCG,CACX,GACJ,GAEA,CAAA3L,IAAA,UAAAC,MAKA,WAAU,IAAA0E,EAAApD,KAGN,OAFAA,KAAKiK,SAAS,CAAC,YAAa,iBAErBjK,KAAK0J,MAAMa,QAAQvK,KAAKoF,WAAWkF,IAAIH,MAAK,SAACC,GAGhD,OAFAhH,EAAK6G,SAAS,CAAC,YAAa,iBAAiB,GAEtCG,CACX,GACJ,GAEA,CAAA3L,IAAA,SAAAC,MAKA,WAAS,IAAA8L,EAAAxK,KAGL,OAFAA,KAAKiK,SAAS,CAAC,YAAa,gBAErBjK,KAAK0J,MAAMe,WAAWzK,KAAKoF,WAAWkF,IAAIH,MAAK,SAACC,GAGnD,OAFAI,EAAKE,QAEEN,CACX,GACJ,GAEA,CAAA3L,IAAA,WAAAC,MAKA,WAGI,IAH+B,IAA1BiM,EAAKrN,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAIsN,IAAKtN,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAChBuN,EAAa,CAAC,YAAa,WAAY,cAAe,gBAEnDhN,EAAI,EAAGA,EAAI8M,EAAMpN,OAAQM,IAAK,CACnC,IAAMiN,EAAOH,EAAM9M,GAEnB,GAAoB,iBAATiN,IAAsBD,EAAWnI,SAASoI,GACjD,MAAM,IAAIC,MAAK,GAAApN,OAAImN,4BAGvB9K,KAAK8K,GAAQF,CACjB,CAEA,OAAO5K,IACX,GAEA,CAAAvB,IAAA,QAAAC,MAKA,WAOI,OANAsB,KAAKiJ,gBAAkB,GACvBjJ,KAAKkJ,QAAU,GACflJ,KAAKmJ,WAAY,EACjBnJ,KAAKoJ,UAAW,EAChBpJ,KAAKsJ,aAAc,EAEZtJ,IACX,GAEA,CAAAvB,IAAA,QAAAC,MAKA,WAII,OAHAsB,KAAK0K,QACL1K,KAAKgL,UAAY,GAEVhL,IACX,GAEA,CAAAvB,IAAA,OAAAC,MAKA,WAAmB,IAAdmG,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACL8H,EAAapF,KAAKiL,gBAExB,OAAI3H,EAAQtD,KAAKsK,IACNtK,KAAKkK,OAAO9E,IAGG,IAAtBP,EAAQqG,UACDlL,KAAKmL,YAGTnL,KAAKqK,OAAOjF,EACvB,GAEA,CAAA3G,IAAA,YAAAC,MAKA,WAII,IAHA,IAAM0M,EAAqBlF,OAAOmF,KAAKrL,KAAKiJ,iBACtCA,EAAkB,CAAA,EAEfpL,EAAI,EAAGA,EAAIuN,EAAmB7N,OAAQM,IAAK,CAChD,IAAMY,EAAM2M,EAAmBvN,GAC/BoL,EAAgBxK,GAAOuB,KAAK8J,aAAarL,EAC7C,CAEA,OAAOuB,KAAKqK,OAAOpB,EACvB,GAEA,CAAAxK,IAAA,OAAAsB,IAKA,WACI,OAAOC,KAAK8J,aAAa,OAAQ,CAAE,EACvC,GAEA,CAAArL,IAAA,YAAAsB,IAKA,WACI,OAAOC,KAAKsL,kBAAkB,cAAgB,IAAIC,KAAKvL,KAAK8J,aAAa,eAAiB,IAC9F,GAEA,CAAArL,IAAA,YAAAsB,IAKA,WACI,OAAOC,KAAKsL,kBAAkB,cAAgB,IAAIC,KAAKvL,KAAK8J,aAAa,eAAiB,IAC9F,GAEA,CAAArL,IAAA,WAAAsB,IAKA,WACI,OAAOC,KAAKwL,cAAc,CAAC,aAAc,MAC7C,GAEA,CAAA/M,IAAA,UAAAsB,IAKA,WACI,OAAkD,IAA3CmG,OAAOC,OAAOnG,gBAAA,EAAAA,KAAMoF,YAAY7H,MAC3C,GAEA,CAAAkB,IAAA,QAAAsB,IAKA,WACI,OAAQC,KAAKsK,EACjB,GAEA,CAAA7L,IAAA,UAAAsB,IAKA,WACI,OAAQC,KAAKyL,OAASzL,KAAK0L,QAC/B,GAEA,CAAAjN,IAAA,YAAAsB,IAKA,WACI,OAAOC,KAAKwL,cAAc,CAAC,UAAW,QAC1C,GAEA,CAAA/M,IAAA,gBAAAC,MAKA,SAAc4B,GAAU,IAAAqL,EAAAC,EAAA5L,KACpB,MAAwB,mBAAbM,GAIX4F,OAAOmF,aAAIM,EAAC3L,gBAAA,EAAAA,KAAMoF,kBAAU,IAAAuG,EAAAA,EAAI,IAAI5K,SAAQ,SAAC8K,GACzC,IAAMnN,EAAQkN,EAAK9B,aAAa+B,GAChCvL,EAAST,KAAK+L,EAAMlN,EAAOmN,EAC/B,IANW7L,IASf,GAEA,CAAAvB,IAAA,UAAAC,MAKA,WACI,OAAOsB,KAAKkJ,OAChB,GAEA,CAAAzK,IAAA,qBAAAC,MAKA,WACI,OAAOsB,KAAKiJ,eAChB,GAEA,CAAAxK,IAAA,UAAAC,MAMA,SAAQmN,GACJ,OAAOA,KAAY7L,KAAKiJ,eAC5B,GAEA,CAAAxK,IAAA,qBAAAC,MAKA,WAAqB,IAAAoN,EACjB,OAAO5F,OAAOmF,KAA0BS,QAAtBA,EAAC9L,gBAAI,EAAJA,KAAMiJ,uBAAe6C,IAAAA,EAAAA,EAAI,CAAE,GAAEvO,OAAS,CAC7D,GAEA,CAAAkB,IAAA,SAAAC,MAMA,SAAOmN,EAAUnN,GACbsB,KAAKoF,WAAWyG,GAAYnN,CAChC,GAEA,CAAAD,IAAA,eAAAC,MAMA,SAAamN,GAAwB,IAAAE,EAAdrN,EAAKpB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAC3B,GAAc,OAAVoB,GAAsC,WAApBgF,EAAOmI,GACzB,OAAO7L,KAAKgM,cAAcH,GAG9B,IAAMI,EAA0C,QAA7BF,EAAG/L,gBAAA,EAAAA,KAAMoF,WAAWyG,UAASE,IAAAA,EAAAA,EAAI,KAkBpD,OAfAvD,EAAIxI,KAAKoF,WAAYyG,EAAUnN,GAC/B8J,EAAIxI,KAAKiJ,gBAAiB4C,EAAUI,GAG/BnP,EAAQkD,gBAAI,EAAJA,KAAMkJ,QAAQ2C,MACvB7L,KAAKkJ,QAAQ2C,GAAY,IAG7B7L,KAAKkJ,QAAQ2C,GAAU5K,KAAK,CACxB4K,SAAAA,EACAI,cAAAA,EACAvN,MAAAA,EACAwN,UAAW,IAAIX,OAGZvL,IACX,GAEA,CAAAvB,IAAA,gBAAAC,MAKA,WAA+B,IAAjB0G,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACvB,IAAK,IAAIuO,KAAYzG,EACjBpF,KAAKmM,aAAaN,EAAUzG,EAAWyG,IAG3C,OAAO7L,IACX,GAEA,CAAAvB,IAAA,eAAAC,MAMA,SAAa0N,GAAgC,IAAAC,EAArBC,EAAYhP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAC7BoB,EAAQqB,EAAoB,QAAjBsM,EAACrM,gBAAA,EAAAA,KAAMoF,kBAAUiH,IAAAA,EAAAA,EAAI,GAAID,GAE1C,YAAc5O,IAAVkB,EACO4N,EAGJ5N,CACX,GAEA,CAAAD,IAAA,eAAAC,MAMA,SAAamN,GACT,GAAI/O,EAAQ+O,GAAW,CAAA,IAAAU,EACbC,EAAaX,EACbY,EAAgBvG,OAAOmF,aAAIkB,EAACvM,KAAKoF,kBAAU,IAAAmH,EAAAA,EAAI,CAAE,GAEvD,OAAOC,EAAWE,OAAM,SAACC,GAAI,OAAKF,EAAc/J,SAASiK,KAC7D,CAEA,QAAK3M,aAAAA,KAAMoF,aAIJyG,KAAY7L,KAAKoF,UAC5B,GAEA,CAAA3G,IAAA,gBAAAC,MAMA,WAA+B,IAAjB8N,EAAUlP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACvB,OAAO0C,KAAK4M,aAAaJ,EAC7B,GAEA,CAAA/N,IAAA,oBAAAC,MAMA,SAAkBmN,GAAU,IAAAgB,EAAA7M,KACxB,OAAIlD,EAAQ+O,GACD7L,KAAK4M,aAAaf,IAAaA,EAASa,OAAM,SAACC,GAAI,OAAMrJ,EAAQuJ,EAAK/C,aAAa6C,OAGvF3M,KAAK4M,aAAaf,KAAcvI,EAAQtD,KAAK8J,aAAa+B,GACrE,GAEA,CAAApN,IAAA,gBAAAC,MAMA,SAAc8N,GACV,IAAMpH,EAAa,CAAA,EAEnB,GAAIoH,QACA,OAAOxM,KAAKiL,cAAc/E,OAAOmF,KAAKrL,KAAKoF,aAG/C,GAA0B,iBAAfoH,EACP,OAAOxM,KAAK8J,aAAY/M,MAAA+P,UAAA/O,MAAA8B,KAAKvC,YAGjC,IAAKR,EAAQ0P,GACT,MAAM,IAAIzB,MAAM,qCACnB,IAE+BxJ,EAF/BC,EAAAC,EAEqB+K,GAAU,IAAhC,IAAAhL,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAkC,CAAA,IAAAmL,EAAAC,EACxBnB,EADQtK,EAAA7C,MAGd,GAAwB,iBAAbmN,EAAX,CAIA,IAAInN,EAAQsB,KAAK8J,aAAa+B,GAEG,WAA7BnI,EAAYqJ,QAAZA,EAAOrO,SAAAqO,IAAKA,OAALA,EAAAA,EAAO3H,aAA4BtI,EAAa,QAANkQ,EAACtO,SAAK,IAAAsO,OAAA,EAALA,EAAO5H,cACzD1G,EAAQA,EAAM0G,YAGlBA,EAAWyG,GAAYnN,CARvB,CASJ,CAAC,CAAA,MAAAuD,GAAAT,EAAAU,EAAAD,EAAA,CAAA,QAAAT,EAAAW,GAAA,CAED,OAAOiD,CACX,GAEA,CAAA3G,IAAA,YAAAC,MAKA,WACI,OAAOsB,KAAKiL,eAChB,GAEA,CAAAxM,IAAA,kBAAAC,MAMA,WAAiC,IAAAuO,EAAjB7H,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnB4P,EAAkCD,QAAnBA,EAAGjN,gBAAI,EAAJA,KAAMoF,sBAAU6H,EAAAA,EAAI,GAG5C,OAFAjN,KAAKoF,WAAU+B,EAAAA,EAAQ+F,CAAAA,EAAAA,GAAoB9H,GAEpCpF,KAAKoF,UAChB,GAEA,CAAA3G,IAAA,iBAAAC,MAMA,WAA0B,IAAXiJ,EAAIrK,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAClB0C,KAAKoF,WAAauC,CACtB,KAAC5D,CAAA,CAzfS,GCFRoJ,EAAe,IAAIzE,EAAa,CAClC0E,mBAAoB,SAAU9C,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACrD,OAAO0C,KAAK+I,QAAQhJ,IAAG,GAAApC,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,wBAAwB+C,EAAQxI,EAChF,EAED0I,gBAAiB,SAAUjD,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAClD,OAAO0C,KAAK+I,QAAQhJ,IAAG,GAAApC,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,oBAAoB+C,EAAQxI,EAC5E,EAED2I,SAAU,SAAUlD,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC3C,OAAO0C,KAAK+I,QAAQ0E,KAAI,GAAA9P,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,EAAe+C,aAAAA,EAAQxI,GAASsF,KAAKnK,KAAK0N,WAAWnN,KAAKP,MAC3G,EAED7C,MAAO,SAAUmN,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACxC,OAAO0C,KAAK+I,QAAQ0E,KAAI,GAAA9P,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,EAAY+C,UAAAA,EAAQxI,GAASsF,KAAKnK,KAAK0N,WAAWnN,KAAKP,MACxG,EAED2N,eAAgB,SAAUrD,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACjD,OAAO0C,KAAK+I,QAAQ0E,KAAI,GAAA9P,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,EAAsB+C,oBAAAA,EAAQxI,GAASsF,KAAKnK,KAAK0N,WAAWnN,KAAKP,MAClH,EAED4N,eAAgB,SAAUtD,EAAIuD,GAA0C,IAA3BR,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAKhE,OAJIuG,EAAWgK,KACXA,EAAgBA,EAAcvD,IAG3BtK,KAAK+I,QAAQ0E,KAAI9P,GAAAA,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,EAAE3M,qBAAAA,OAAoBkQ,GAAiBR,EAAQxI,GAASsF,KAAKnK,KAAK0N,WAAWnN,KAAKP,MACnI,EAED8N,cAAe,SAAUxD,GAAiD,IAA7CyD,EAASzQ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAM+P,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAKlE,OAJIuG,EAAWkK,KACXA,EAAYA,EAAUzD,IAGnBtK,KAAK+I,QAAQ0E,KAAI,GAAA9P,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,EAAE3M,eAAAA,OAAeoQ,EAAiB,IAAMA,EAAX,IAAwBV,EAAQxI,EAC9G,EAEDmJ,iBAAkB,SAAU1D,GAAiD,IAA7CyD,EAASzQ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAM+P,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAKrE,OAJIuG,EAAWkK,KACXA,EAAYA,EAAUzD,IAGnBtK,KAAK+I,QAAQ0E,KAAI,GAAA9P,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,EAAE3M,sBAAAA,OAAsBoQ,EAAiB,IAAMA,EAAX,IAAwBV,EAAQxI,EACrH,EAEDoJ,SAAU,SAAU3D,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC3C,OAAO0C,KAAK+I,QAAQ0E,KAAI,GAAA9P,OAAIqC,KAAKsN,UAAS,KAAA3P,OAAI2M,EAAe+C,aAAAA,EAAQxI,GAASsF,KAAKnK,KAAK0N,WAAWnN,KAAKP,MAC3G,EAEDkO,OAAQ,SAAU5D,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACzC,OAAO0C,KAAK+I,QAAO,OAAOpL,GAAAA,OAAIqC,KAAKsN,UAAS3P,KAAAA,OAAI2M,EAAE,WAAW+C,EAAQxI,GAASsF,KAAKnK,KAAK0N,WAAWnN,KAAKP,MAC5G,IAGEmO,WAAKC,GAAA/O,EAAA8O,EAASpK,GAAT,IAAAxE,EAAAC,EAAA2O,GACP,SAAAA,IAAoD,IAAxC/I,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAwO,GAAA5O,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,QAAO5B,EAAA,CAAIwB,QAASwE,GAAiBtI,GACpE,CAwFC,OAxFA/E,EAAAqO,EAAA,CAAA,CAAA1P,IAAA,qBAAAC,MAED,WAA8C,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtC,OAAO0C,KAAK0J,MAAM0D,mBAAmBpN,KAAKsK,GAAI+C,EAAQxI,EAC1D,GAAC,CAAApG,IAAA,WAAAC,MAED,WAAoC,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC5B,OAAO0C,KAAK0J,MAAM8D,SAASxN,KAAKsK,GAAI+C,EAAQxI,EAChD,GAAC,CAAApG,IAAA,QAAAC,MAED,WAAiC,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACzB,OAAO0C,KAAK0J,MAAMvM,MAAM6C,KAAKsK,GAAI+C,EAAQxI,EAC7C,GAAC,CAAApG,IAAA,iBAAAC,MAED,SAAemP,GAA0C,IAA3BR,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACjD,OAAO0C,KAAK0J,MAAMkE,eAAe5N,KAAKsK,GAAIuD,EAAeR,EAAQxI,EACrE,GAAC,CAAApG,IAAA,gBAAAC,MAED,WAA2D,IAA7CqP,EAASzQ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAM+P,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnD,OAAO0C,KAAK0J,MAAMoE,cAAc9N,KAAKsK,GAAIyD,EAAWV,EAAQxI,EAChE,GAAC,CAAApG,IAAA,mBAAAC,MAED,WAA8D,IAA7CqP,EAASzQ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAM+P,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtD,OAAO0C,KAAK0J,MAAMsE,iBAAiBhO,KAAKsK,GAAIyD,EAAWV,EAAQxI,EACnE,GAAC,CAAApG,IAAA,kBAAAC,MAED,WAA2C,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnC,OAAO0C,KAAK0J,MAAM6D,gBAAgBvN,KAAKsK,GAAI+C,EAAQxI,EACvD,GAAC,CAAApG,IAAA,iBAAAC,MAED,WAA0C,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAClC,OAAO0C,KAAK0J,MAAMiE,eAAe3N,KAAKsK,GAAI+C,EAAQxI,EACtD,GAAC,CAAApG,IAAA,SAAAC,MAED,WAAkC,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC1B,OAAO0C,KAAK0J,MAAMwE,OAAOlO,KAAKsK,GAAI+C,EAAQxI,EAC9C,GAAC,CAAApG,IAAA,WAAAC,MAED,WAAoC,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC5B,OAAO0C,KAAK0J,MAAMuE,SAASjO,KAAKsK,GAAI+C,EAAQxI,EAChD,GAAC,CAAApG,IAAA,eAAAsB,IAED,WACI,OAA8C,OAAvCC,KAAK8J,aAAa,gBAC7B,GAAC,CAAArL,IAAA,kBAAAsB,IAED,WACI,OAA6C,MAAtCC,KAAK8J,aAAa,gBAC7B,GAAC,CAAArL,IAAA,YAAAsB,IAED,WACI,OAA2C,OAApCC,KAAK8J,aAAa,aAC7B,GAAC,CAAArL,IAAA,eAAAsB,IAED,WACI,OAA0C,MAAnCC,KAAK8J,aAAa,aAC7B,GAAC,CAAArL,IAAA,cAAAsB,IAED,WACI,MAAsC,aAA/BC,KAAK8J,aAAa,SAC7B,GAAC,CAAArL,IAAA,aAAAsB,IAED,WACI,MAAsC,YAA/BC,KAAK8J,aAAa,SAC7B,GAAC,CAAArL,IAAA,YAAAsB,IAED,WACI,MAAsC,kBAA/BC,KAAK8J,aAAa,WAAiE,YAAhC9J,KAAK8J,aAAa,SAChF,GAAC,CAAArL,IAAA,eAAAsB,IAED,WACI,OAAOC,KAAKqO,YAAcrO,KAAKsO,aAAetO,KAAKuO,WACvD,GAAC,CAAA9P,IAAA,cAAAsB,IAED,WACI,OAAOC,KAAKsL,kBAAkB,gBAAkB,IAAIC,KAAKvL,KAAK8J,aAAa,iBAAmB,IAClG,GAAC,CAAArL,IAAA,YAAAsB,IAED,WACI,OAAOC,KAAKsL,kBAAkB,cAAgB,IAAIC,KAAKvL,KAAK8J,aAAa,eAAiB,IAC9F,GAAC,CAAArL,IAAA,eAAAsB,IAED,WACI,OAAOC,KAAKsL,kBAAkB,iBAAmB,IAAIC,KAAKvL,KAAK8J,aAAa,kBAAoB,IACpG,GAAC,CAAArL,IAAA,SAAAsB,IAED,WACI,OAAOC,KAAK8J,aAAa,SAC7B,KAACqE,CAAA,ICjJCK,WAAOJ,GAAA/O,EAAAmP,EAASzK,GAAT,IAAAxE,EAAAC,EAAAgP,GACT,SAAAA,IAAoD,IAAxCpJ,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAA6O,GAAAjP,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,UAAWlE,EAC1C,CAyCC,OAvCD/E,EAAA0O,EAAA,CAAA,CAAA/P,IAAA,SAAAC,MAOA,SAAO+P,GACH,GAGJ,CAAAhQ,IAAA,WAAAsB,IAKA,WAAgB,GAEhB,CAAAtB,IAAA,UAAAsB,IAKA,WAAe,GAEf,CAAAtB,IAAA,SAAAsB,IAKA,WAAc,GAEd,CAAAtB,IAAA,YAAAsB,IAKA,WACI,OAAO,IAAI1B,EAAW2B,KAAK0O,UAC/B,KAACF,CAAA,IC7CCG,WAAMP,GAAA/O,EAAAsP,EAAS5K,GAAT,IAAAxE,EAAAC,EAAAmP,GACR,SAAAA,IAAoD,IAAxCvJ,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAgP,GAAApP,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,SAAUlE,EACzC,CAAC,OAAA/E,EAAA6O,EAAA,ICFCC,YAAKR,GAAA/O,EAAAuP,EAAS7K,GAAT,IAAAxE,EAAAC,EAAAoP,GACP,SAAAA,IAAoD,IAAxCxJ,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAiP,GAAArP,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,QAASlE,EACxC,CAsBC,OAtBA/E,EAAA8O,EAAA,CAAA,CAAAnQ,IAAA,WAAAsB,IA6BD,WAAe,IAAA8O,EACX,eAAAA,EAAO7O,KAAK8J,aAAa,WAAY,IAAI1C,UAAQ,IAAAyH,OAAA,EAA1CA,EAA4C7I,YAAY,EACnE,GAEA,CAAAvH,IAAA,YAAAsB,IAKA,WAAgB,IAAA+O,EACZ,eAAAA,EAAO9O,KAAK8J,aAAa,WAAY,IAAI1C,UAAQ,IAAA0H,OAAA,EAA1CA,EAA4C9I,YAAY,EACnE,GAEA,CAAAvH,IAAA,cAAAsB,IAKA,WAGI,MAAO,CAFyBC,KAAxBqH,SAAwBrH,KAAdsH,UAGtB,GAEA,CAAA7I,IAAA,WAAAC,MAMA,SAASqQ,GASL,OARIlL,EAAWkL,IACX/O,KAAKmM,aAAa,QAAS4C,EAAMzE,IAGhB,iBAAVyE,GACP/O,KAAKmM,aAAa,QAAS4C,GAGxB/O,IACX,IAAC,CAAA,CAAAvB,IAAA,oBAAAC,MAnED,SAAyBsQ,EAAejG,GAAuB,IAAdlE,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACgB2R,EAAApH,EAAzCmH,EAAclF,aAAa,eAAc,GAAhEzC,EAAQ4H,EAAA,GAAE3H,EAAS2H,EAAA,GAkB1B,OAAO,IAAIL,EAjBQ,CACfrK,KAAM,KACNsC,QAASmI,EAAclF,aAAa,WACpC7D,SAAU,IAAImB,EAAMC,EAAUC,GAC9B4H,QAASF,EAAclF,aAAa,WACpCqF,QAAS,KACT/I,KAAM4I,EAAclF,aAAa,QACjCsF,SAAUJ,EAAclF,aAAa,aACrCuF,YAAaL,EAAclF,aAAa,cACxCwF,aAAcN,EAAcjP,IAAI,gBAChCwP,SAAUP,EAAclF,aAAa,UACrC0F,SAAUR,EAAcjP,IAAI,YAC5B2G,QAASsI,EAAclF,aAAa,gBACpC2F,MAAO,KACPC,qBAAsB,MAGG3G,EAASlE,EAC1C,KAAC+J,CAAA,IC1BCe,YAAQC,GAAAvQ,EAAAsQ,EAASf,IAAT,IAAArP,EAAAC,EAAAmQ,GACV,SAAAA,IAAoD,IAAxCvK,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAgQ,GAAApQ,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,WAAYlE,EAC3C,CAAC,OAAA/E,EAAA6P,EAAA,ICHCE,YAAczB,GAAA/O,EAAAwQ,EAAS9L,GAAT,IAAAxE,EAAAC,EAAAqQ,GAChB,SAAAA,IAAoD,IAAxCzK,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAkQ,GAAAtQ,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,kBAAmBlE,EAClD,CAAC,OAAA/E,EAAA+P,EAAA,ICHCC,YAAO1B,GAAA/O,EAAAyQ,EAAS/L,GAAT,IAAAxE,EAAAC,EAAAsQ,GACT,SAAAA,IAAoD,IAAxC1K,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAmQ,GAAAvQ,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,UAAWlE,EAC1C,CAAC,OAAA/E,EAAAgQ,EAAA,ICFCC,GAAsB,IAAIrH,EAAa,CACzCR,QAAS,WAAqC,IAA3BmF,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtC,OAAO0C,KAAK+I,QAAQhJ,IAAGpC,GAAAA,OAAIqC,KAAKsN,UAAS,YAAYD,EAAQxI,EACjE,IAGEmL,YAAY5B,GAAA/O,EAAA2Q,EAASjM,GAAT,IAAAxE,EAAAC,EAAAwQ,GACd,SAAAA,IAAoD,IAAxC5K,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAqQ,GAAAzQ,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,eAAc5B,EAAA,CAAIwB,QAASoH,IAAwBlL,GAClF,CAAC,OAAA/E,EAAAkQ,EAAA,ICPCC,GAAyB,SAAC7F,EAAUrB,GACtC,OAAIjM,EAAQsN,GACDA,EAASjK,KAAI,SAAC+P,GACjB,OAAO,IAAIF,GAAaE,EAAkBnH,EAC9C,IAGG,IAAIiH,GAAa5F,EAAUrB,EACtC,EAEMoH,GAAgB,IAAIzH,EAAa,CAEnC0H,MAAO,SAAUC,GAA4C,IAAlCC,EAAQhT,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAM8H,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAErD,GhBnBQ,WACZ,MAAO,iDAAiDsG,KADtCtG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAEzB,CgBiBYiT,CAAQF,GACR,OAAOrQ,KAAK+I,QAAQ0E,KAAK,yBAA0B,CAAEgC,MAAOY,IAGhE,IAAKC,EACD,MAAM,IAAIvF,MAAM,4BAGpB,OAAO/K,KAAK+I,QAAQ0E,KAAK,gBAAetG,EAAA,CAAIkJ,SAAAA,EAAUC,SAAAA,GAAalL,IAAc+E,KAAKnK,KAAK0N,WAAWnN,KAAKP,MAC9G,EAEDwQ,WAAY,SAAUH,EAAUI,GAAuB,IAAjBrL,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC/C,OAAO0C,KAAK+I,QAAQ0E,KAAK,sBAAqBtG,EAAA,CAAIkJ,SAAAA,EAAUI,KAAAA,GAASrL,IAAc+E,KAAKnK,KAAK0N,WAAWnN,KAAKP,MAChH,EAED0Q,MAAO,SAAUpG,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACxC,OAAO0C,KAAK+I,QAAQ0E,gBAAI9P,OAAY2M,EAAE,UAAU+C,EAAQxI,GAASsF,KAAKnK,KAAK0N,WAAWnN,KAAKP,MAC9F,EAED2Q,kBAAmB,SAAUrG,GAA+B,IAAAP,EAAA/J,KAA3BqN,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACpD,OAAO0C,KAAK+I,QAAQhJ,IAAG,WAAApC,OAAY2M,EAAoB+C,kBAAAA,EAAQxI,GAASsF,MAAK,SAACC,GAAQ,OAAK6F,GAAuB7F,EAAUL,EAAKhB,WACpI,EAED6H,mBAAoB,SAAUtG,GAA+B,IAAApK,EAAAF,KAA3BqN,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACrD,OAAO0C,KAAK+I,QAAQ0E,KAAI,WAAA9P,OAAY2M,EAA0B+C,wBAAAA,EAAQxI,GAASsF,MAAK,SAACC,GAAQ,OAAK6F,GAAuB7F,EAAUlK,EAAK6I,WAC3I,EAED8H,oBAAqB,SAAUvG,GAA+B,IAAAlH,EAAApD,KAA3BqN,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtD,OAAO0C,KAAK+I,QAAQhJ,IAAG,WAAApC,OAAY2M,EAA2B+C,yBAAAA,EAAQxI,GAASsF,MAAK,SAACC,GAAQ,OAAK6F,GAAuB7F,EAAUhH,EAAK2F,WAC3I,EAED+H,SAAU,SAAUxG,GAChB,OAAOtK,KAAKyK,WAAWH,EAC1B,EAEDyG,WAAU,SAACzG,GAA+B,IAA3B+C,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAClC,OAAO0C,KAAK+I,QAAQ0E,KAAI,WAAA9P,OAAY2M,EAAE,oBAAoB+C,EAAQxI,EACtE,IAGEmM,YAAM5C,GAAA/O,EAAA2R,EAASjN,GAAT,IAAAxE,EAAAC,EAAAwR,GACR,SAAAA,IAAoD,IAAxC5L,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAqR,GAAAzR,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,SAAQ5B,EAAA,CAAIwB,QAASwH,IAAkBtL,GACtE,CAyDC,OAzDA/E,EAAAkR,EAAA,CAAA,CAAAvS,IAAA,QAAAsB,IAED,WACI,OAAOC,KAAK8J,aAAa,QAC7B,GAAC,CAAArL,IAAA,WAAAsB,IAED,WACI,OAAuC,IAAhCC,KAAK8J,aAAa,SAC7B,GAEA,CAAArL,IAAA,WAAAsB,IAKA,WAAe,IAAA8O,EACX,eAAAA,EAAO7O,KAAK8J,aAAa,WAAY,IAAI1C,UAAQ,IAAAyH,OAAA,EAA1CA,EAA4C7I,YAAY,EACnE,GAEA,CAAAvH,IAAA,YAAAsB,IAKA,WAAgB,IAAA+O,EACZ,eAAAA,EAAO9O,KAAK8J,aAAa,WAAY,IAAI1C,UAAQ,IAAA0H,OAAA,EAA1CA,EAA4C9I,YAAY,EACnE,GAEA,CAAAvH,IAAA,cAAAsB,IAKA,WAGI,MAAO,CAFyBC,KAAxBqH,SAAwBrH,KAAdsH,UAGtB,GAAC,CAAA7I,IAAA,QAAAC,MAED,WAAiC,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACzB,OAAO0C,KAAK0J,MAAMgH,MAAM1Q,KAAKsK,GAAI+C,EAAQxI,EAC7C,GAAC,CAAApG,IAAA,aAAAC,MAED,WAAsC,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC9B,OAAO0C,KAAK0J,MAAMqH,WAAW/Q,KAAKsK,GAAI+C,EAAQxI,EAClD,GAAC,CAAApG,IAAA,oBAAAC,MAED,WAA6C,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACrC,OAAO0C,KAAK0J,MAAMiH,kBAAkB3Q,KAAKsK,GAAI+C,EAAQxI,EACzD,GAAC,CAAApG,IAAA,qBAAAC,MAED,SAAmBuS,GAA8B,IAAdpM,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACzC,OAAO0C,KAAK0J,MAAMkH,mBAAmB5Q,KAAKsK,GAAI,CAAE4G,KAAMD,GAAkBpM,EAC5E,GAAC,CAAApG,IAAA,sBAAAC,MAED,WAA+C,IAA3B2O,EAAM/P,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACvC,OAAO0C,KAAK0J,MAAMmH,oBAAoB7Q,KAAKsK,GAAI+C,EAAQxI,EAC3D,KAACmM,CAAA,ICrHCG,YAAM/C,GAAA/O,EAAA8R,EAASpN,GAAT,IAAAxE,EAAAC,EAAA2R,GACR,SAAAA,IAAoD,IAAxC/L,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAwR,GAAA5R,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,SAAUlE,EACzC,CAAC,OAAA/E,EAAAqR,EAAA,ICHCC,YAAOhD,GAAA/O,EAAA+R,EAASrN,GAAT,IAAAxE,EAAAC,EAAA4R,GACT,SAAAA,IAAoD,IAAxChM,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAAyR,GAAA7R,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,UAAWlE,EAC1C,CAAC,OAAA/E,EAAAsR,EAAA,ICHCC,YAAIjD,GAAA/O,EAAAgS,EAAStN,GAAT,IAAAxE,EAAAC,EAAA6R,GACN,SAAAA,IAAoD,IAAxCjM,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAA0R,GAAA9R,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,OAAQlE,EACvC,CAAC,OAAA/E,EAAAuR,EAAA,ICHCC,YAAWlD,GAAA/O,EAAAiS,EAASvN,GAAT,IAAAxE,EAAAC,EAAA8R,GACb,SAAAA,IAAoD,IAAxClM,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAA2R,GAAA/R,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,eAAgBlE,EAC/C,CAAC,OAAA/E,EAAAwR,EAAA,ICHCC,YAAWnD,GAAA/O,EAAAkS,EAASxN,GAAT,IAAAxE,EAAAC,EAAA+R,GACb,SAAAA,IAAoD,IAAxCnM,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAA4R,GAAAhS,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,eAAgBlE,EAC/C,CAAC,OAAA/E,EAAAyR,EAAA,ICHCC,YAAYpD,GAAA/O,EAAAmS,EAASzN,GAAT,IAAAxE,EAAAC,EAAAgS,GACd,SAAAA,IAAoD,IAAxCpM,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyL,EAAOzL,UAAAC,OAAAD,EAAAA,kBAAAE,EAAEqH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAE,OAAAqC,OAAA6R,GAAAjS,EAAAM,KACxCuF,KAAAA,EAAY2D,EAAS,gBAAiBlE,EAChD,CAIgB,OAJf/E,EAAA0R,EAAA,CAAA,CAAA/S,IAAA,kBAAAC,MAED,WAAmB,GAAC,CAAAD,IAAA,cAAAC,MAEpB,WAAe,KAAC8S,CAAA,ICTdC,GAAO3R,GAMT,SAAA2R,IAAyB,IAAbC,EAAMpU,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAEqC,OAAA8R,GACnBzR,KAAKuJ,QAAUmI,EAAOnI,SAAW,KACjCvJ,KAAK2R,KAAOD,EAAOC,MAAQ,KAC3B3R,KAAKsN,UAAYoE,EAAOpE,WAAa,KACrCtN,KAAK4R,QAAUF,EAAOE,SAAW,CAAA,CACrC,ICREC,YAAcC,GAAAzS,EAAAwS,EAASJ,IAAT,IAAAlS,EAAAC,EAAAqS,GAKhB,SAAAA,EAAYH,GAAQ,IAAA3H,EAOb,OAPapK,OAAAkS,IAChB9H,EAAAxK,EAAAM,UAAM6R,IAEDK,WAAW,CACZC,wBAAarU,OAAY+T,EAAOO,WAChC,eAAgB,mBAChB,aAAc,2BACflI,CACP,CA0IC,OAxIDjK,EAAA+R,EAAA,CAAA,CAAApT,IAAA,aAAAC,MAKA,WAAyB,IAAdkT,EAAOtU,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAGjB,OAFA0C,KAAK4R,QAAOzK,EAAAA,EAAQ,CAAA,EAAAnH,KAAK4R,SAAYA,GAE9B5R,IACX,GAEA,CAAAvB,IAAA,YAAAC,MAQA,SAAU0L,GACN,OAAO,IAAI8H,SAAQ,SAACC,EAASC,GAAM,OAC/BhI,EACKzC,OACAwC,MAAK,SAACxC,GAAI,OACPwK,EAAQ,CACJE,WAAYjI,EAASiI,WACrBC,OAAQlI,EAASkI,OACjBC,GAAInI,EAASmI,GACb5K,KAAAA,OAGF,OAAC,WACHyK,EAAO,IAAIrH,MAAM,0DACrB,GAAE,GAEd,GAEA,CAAAtM,IAAA,UAAAC,MAUA,SAAQsJ,GAA+C,IAAA9H,EAAAF,KAAzCwS,EAAMlV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,MAAOoI,EAAIpI,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC/C,OAAO,IAAI4U,SAAQ,SAACC,EAASC,GAAM,OAC/BK,MAAM5N,EAAQ6N,KAAG/U,GAAAA,OAAOuC,EAAKyR,UAAIhU,OAAIuC,EAAKoN,UAAS,KAAA3P,OAAIqK,GAAMb,EAAA,CACzDqL,OAAAA,EACAG,KAAM9N,EAAQ8N,MAAQ,OACtBf,QAAS,IAAIgB,QAAOzL,EAAAA,KACZjH,EAAK0R,SAAW,CAAE,GAClB/M,EAAQ+M,SAAW,CAAE,KAE1BlM,IAEFyE,KAAKjK,EAAK2S,WACV1I,MAAK,SAACC,GACH,OAAIA,EAASmI,GACFJ,EAAQ/H,EAASzC,MAGrByK,EAAO,IAAIrH,MAAMX,EAASzC,KAAKmL,OAAS1I,EAASzC,KAAKmL,OAAO,GAAK1I,EAASiI,YACtF,IAAE,OACK,SAACU,GACJX,EAAOW,EACX,GAAE,GAEd,GAEA,CAAAtU,IAAA,MAAAC,MASA,SAAIsJ,GAAgC,IAA1BgL,EAAK1V,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtB2V,EAAatP,EAAQqP,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,WAE/D,OAAOnT,KAAKoT,QAAOzV,GAAAA,OAAIqK,GAAIrK,OAAGsV,EAAS,IAAAtV,OAAOsV,GAAc,IAAM,MAAO,CAAA,EAAIpO,EACjF,GAEA,CAAApG,IAAA,OAAAC,MASA,SAAKsJ,GAA+B,IAAzBtC,EAAIpI,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC5B,OAAO0C,KAAKoT,QAAQpL,EAAM,OAAQ,CAAEqL,KAAMC,KAAKC,UAAU7N,IAASb,EACtE,GAEA,CAAApG,IAAA,MAAAC,MASA,SAAIsJ,GAA+B,IAAzBtC,EAAIpI,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC3B,OAAO0C,KAAKoT,QAAQpL,EAAM,MAAO,CAAEqL,KAAMC,KAAKC,UAAU7N,IAASb,EACrE,GAEA,CAAApG,IAAA,SAAAC,MASA,SAAOsJ,GAAoB,IAAdnD,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnB,OAAO0C,KAAKoT,QAAQpL,EAAM,SAAU,CAAA,EAAInD,EAC5C,GAEA,CAAApG,IAAA,QAAAC,MAQA,SAAMsJ,GAA+B,IAAzBtC,EAAIpI,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC7B,OAAO0C,KAAKoT,QAAQpL,EAAM,QAAS,CAAEqL,KAAMC,KAAKC,UAAU7N,IAASb,EACvE,KAACgN,CAAA,ICrJC2B,YAAW1B,GAAAzS,EAAAmU,EAAS/B,IAAT,IAAAlS,EAAAC,EAAAgU,GACb,SAAAA,EAAY9B,GAAQ,IAAA3H,EAUb,OAVapK,OAAA6T,IAChBzJ,EAAAxK,EAAAM,UAAM6R,IAED+B,MAAQA,EAAMvJ,OAAO,CACtBwJ,QAAO/V,GAAAA,OAAKoM,EAAK4H,KAAIhU,KAAAA,OAAIoM,EAAKuD,WAC9BsE,QAAS,CACLI,wBAAarU,OAAY+T,EAAOO,WAChC,eAAgB,mBAChB,aAAc,yBAEnBlI,CACP,CAiHC,OA/GDjK,EAAA0T,EAAA,CAAA,CAAA/U,IAAA,aAAAC,MAKA,WAAyB,IAAdkT,EAAOtU,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACXqW,EAAgB3T,KAAKyT,MAAMG,SAAShC,QAAQiC,OAGlD,OAFA7T,KAAKyT,MAAMG,SAAShC,QAAQiC,OAAM1M,EAAAA,EAAA,CAAA,EAAQwM,GAAkB/B,GAErD5R,IACX,GAEA,CAAAvB,IAAA,YAAAC,MAMA,SAAU0L,GACN,OAAOA,EAAS1E,IACpB,GAEA,CAAAjH,IAAA,cAAAC,MAMA,SAAYqU,GACR,GAAIA,EAAM3I,SAAU,CAChB,IAAQ1E,EAASqN,EAAM3I,SAAf1E,KAER,GAAI5I,EAAQ4I,EAAKoN,QACb,MAAM,IAAI/H,MAAMrF,EAAKoN,OAAO,IAGhC,GAAIpN,EAAKqN,MACL,MAAM,IAAIhI,MAAMrF,EAAKqN,MAE7B,CAEA,MAAMA,CACV,GAEA,CAAAtU,IAAA,MAAAC,MASA,SAAIsJ,GAAgC,IAA1BgL,EAAK1V,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtB2V,EAAatP,EAAQqP,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,WAE/D,OAAOnT,KAAKyT,MACP1T,IAAGpC,GAAAA,OAAIqK,GAAIrK,OAAGsV,MAAStV,OAAOsV,GAAc,IAAMpO,GAClDsF,KAAKnK,KAAK8T,UAAUvT,KAAKP,aACnBA,KAAK+T,YAAYxT,KAAKP,MACrC,GAEA,CAAAvB,IAAA,OAAAC,MASA,SAAKsJ,GAA+B,IAAzBtC,EAAIpI,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC5B,OAAO0C,KAAKyT,MAAMhG,KAAKzF,EAAMtC,EAAMb,GAASsF,KAAKnK,KAAK8T,UAAUvT,KAAKP,OAAY,MAACA,KAAK+T,YAAYxT,KAAKP,MAC5G,GAEA,CAAAvB,IAAA,MAAAC,MASA,SAAIsJ,GAA+B,IAAzBtC,EAAIpI,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC3B,OAAO0C,KAAKyT,MAAMO,IAAIhM,EAAMtC,EAAMb,GAASsF,KAAKnK,KAAK8T,UAAUvT,KAAKP,OAAY,MAACA,KAAK+T,YAAYxT,KAAKP,MAC3G,GAEA,CAAAvB,IAAA,SAAAC,MASA,SAAOsJ,GAAoB,IAAdnD,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnB,OAAO0C,KAAKyT,MAAK,OAAQzL,EAAMnD,GAASsF,KAAKnK,KAAK8T,UAAUvT,KAAKP,aAAaA,KAAK+T,YAAYxT,KAAKP,MACxG,GAEA,CAAAvB,IAAA,QAAAC,MAQA,SAAMsJ,GAA+B,IAAzBtC,EAAIpI,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC7B,OAAO0C,KAAKyT,MAAMQ,MAAMjM,EAAMtC,EAAMb,GAASsF,KAAKnK,KAAK8T,UAAUvT,KAAKP,OAAY,MAACA,KAAK+T,YAAYxT,KAAKP,MAC7G,KAACwT,CAAA,IChICU,YAAcpC,GAAAzS,EAAA6U,EAASzC,IAAT,IAAAlS,EAAAC,EAAA0U,GAAA,SAAAA,IAAA,OAAAvU,OAAAuU,GAAA3U,EAAA7B,MAAAsC,KAAA1C,UAAA,CAAA,OAAAwC,EAAAoU,EAAA,ICoBCC,GAAM,WACvB,SAAAA,EAAYC,GAAsB,IAAdC,IAAK/W,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAOqC,OAAAwU,GAAAG,EAAAtU,KAAA,mBAKb,CAAC,YAAa,cAAe,OAAQ,QAAS,UAAW,SAAU,OAAQ,QAAS,QAAS,OAAQ,SAAOsU,EAAAtU,KAAA,cAEjH,CACV,CAAC,IAAIuU,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,WAAY,MAAO,SAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,eAAgB,MAAO,QACnC,CAAC,IAAIA,OAAO,iBAAkB,MAAO,OACrC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,SAAU,MAAO,SAC7B,CAAC,IAAIA,OAAO,yBAA0B,MAAO,SAC7C,CAAC,IAAIA,OAAO,YAAa,MAAO,OAChC,CAAC,IAAIA,OAAO,OAAQ,MAAO,OAC3B,CAAC,IAAIA,OAAO,wBAAyB,MAAO,WAC5C,CAAC,IAAIA,OAAO,UAAW,MAAO,OAC9B,CAAC,IAAIA,OAAO,mBAAoB,MAAO,SACvC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,wBAAyB,MAAO,UAC5C,CAAC,IAAIA,OAAO,eAAgB,MAAO,SACnC,CAAC,IAAIA,OAAO,UAAW,MAAO,SAC9B,CAAC,IAAIA,OAAO,KAAM,MAAO,KACzB,CAAC,IAAIA,OAAO,IAAK,MAAO,OAC3BD,EAEetU,KAAA,gBAAA,CACZ,CAAC,IAAIuU,OAAO,SAAU,MAAO,QAC7B,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,cAAe,MAAO,MAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,QAC/B,CAAC,IAAIA,OAAO,gEAAiE,MAAO,WACpF,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,YAAa,MAAO,MAChC,CAAC,IAAIA,OAAO,aAAc,MAAO,OACjC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,qBAAsB,MAAO,OACzC,CAAC,IAAIA,OAAO,YAAa,MAAO,WAChC,CAAC,IAAIA,OAAO,YAAa,MAAO,UAChC,CAAC,IAAIA,OAAO,kBAAmB,MAAO,MACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,UAClC,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,SAAU,MAAO,MAC7B,CAAC,IAAIA,OAAO,WAAY,MAAO,MAC/B,CAAC,IAAIA,OAAO,oBAAqB,MAAO,QACxC,CAAC,IAAIA,OAAO,gBAAiB,MAAO,QACpC,CAAC,IAAIA,OAAO,oBAAqB,MAAO,MACxC,CAAC,IAAIA,OAAO,UAAW,MAAO,MAC9B,CAAC,IAAIA,OAAO,kBAAmB,MAAO,QACtC,CAAC,IAAIA,OAAO,cAAe,MAAO,QAClC,CAAC,IAAIA,OAAO,aAAc,MAAO,MACjC,CAAC,IAAIA,OAAO,KAAM,MAAO,MAC5BD,EAAAtU,KAAA,qBAEoB,CAAC,MAAO,KAAM,MAAO,IAAK,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,OAAQ,OAAQ,KAAM,OAAQ,MAAO,MAAO,KAAM,OAAQ,OAAQ,QAAMsU,kBAE9J,IAAIC,OAAO,cAAe,MAAID,kBAC9B,IAAIC,OAAO,IAAK,MAAID,yBACb,IAAIC,OAAO,OAAQ,MAAID,mBAC7B,IAAIC,OAAO,UAAW,MAAID,EACrBtU,KAAA,iBAAA,IAAIuU,OAAO,OAhExBvU,KAAKwU,IAAMJ,EACXpU,KAAKqU,MAAQA,CACjB,CAkaC,OAlaAvU,EAAAqU,EAAA,CAAA,CAAA1V,IAAA,MAAAC,MAgED,WACI,OAAOsB,KAAKwU,GAChB,GAAC,CAAA/V,IAAA,aAAAC,MAED,SAAW8V,EAAKC,EAAOC,EAAMC,GACzB,GAAIA,EACAH,EAAMG,OAGN,KADaD,EAAK1V,QAAQwV,EAAII,gBAAkB,GAE5C,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAMlX,OAAQsX,IAC9B,GAAIL,EAAIM,MAAML,EAAMI,GAAG,IAAK,CACxBL,EAAMA,EAAIvX,QAAQwX,EAAMI,GAAG,GAAIJ,EAAMI,GAAG,IACxC,KACJ,CAQZ,OAFA7U,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,YAAAC,MAMA,SAAU8V,GAAoB,IAAfO,EAAMzX,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAGpB,OAFAkX,EAAMA,GAAOxU,KAAKwU,IAEXxU,KAAKgV,WAAWR,EAAKxU,KAAKiV,YAAajV,KAAKkV,iBAAkBH,EACzE,GAEA,CAAAtW,IAAA,cAAAC,MAMA,SAAY8V,EAAKW,GAGb,OAFAX,EAAMA,GAAOxU,KAAKwU,IAEXxU,KAAKgV,WAAWR,EAAKxU,KAAKoV,cAAepV,KAAKkV,iBAAkBC,EAC3E,GAEA,CAAA1W,IAAA,WAAAC,MAIA,SAAS8V,EAAKa,GAIV,IADA,IAAIC,GAFJd,EAAMA,GAAOxU,KAAKwU,KAEClM,MAAM,KAChBzK,EAAI,EAAGA,EAAIyX,EAAS/X,OAAQM,IAAK,CAItC,IAHA,IAAI0X,EAAUD,EAASzX,GAAGyK,MAAM,KAGvBuM,EAFGQ,GAAkBxX,EAAI,IAAMyX,EAAS/X,OAAS,EAAI,EAE1CsX,EAAIU,EAAQhY,OAAQsX,IACpCU,EAAQV,GAAKU,EAAQV,GAAGW,OAAO,GAAGC,cAAgBF,EAAQV,GAAGa,UAAU,GAE3EJ,EAASzX,GAAK0X,EAAQzO,KAAK,GAC/B,CAIA,GAHA0N,EAAMc,EAASxO,KAAK,OAGG,IAAnBuO,EAAyB,CACzB,IAAIM,EAAQnB,EAAIgB,OAAO,GAAGZ,cACtBgB,EAAOpB,EAAIzW,MAAM,GACrByW,EAAMmB,EAAQC,CAClB,CAKA,OAFA5V,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,aAAAC,MAIA,SAAW8V,GAIP,IADA,IAAIc,GAFJd,EAAMA,GAAOxU,KAAKwU,KAEClM,MAAM,MAChBzK,EAAI,EAAGA,EAAIyX,EAAS/X,OAAQM,IACjCyX,EAASzX,GAAKyX,EAASzX,GAAGZ,QAAQ+C,KAAK6V,UAAW,OAClDP,EAASzX,GAAKyX,EAASzX,GAAGZ,QAAQ+C,KAAK8V,eAAgB,IAO3D,OALAtB,EAAMc,EAASxO,KAAK,KAAK8N,cAGzB5U,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,WAAAC,MAIA,SAAS8V,EAAKa,GAaV,OARAb,GADAA,GADIA,GAFJA,EAAMA,GAAOxU,KAAKwU,KAEJI,eACJ3X,QAAQ+C,KAAK+V,SAAU,KACvB9Y,QAAQ+C,KAAKgW,SAAU,KAC5BX,IACDb,EAAMxU,KAAKiW,WAAWzB,IAI1BxU,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,aAAAC,MAIA,SAAW8V,GASP,OALAA,GADAA,GAFAA,EAAMA,GAAOxU,KAAKwU,KAERI,eACAc,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,GAGxD1V,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,YAAAC,MAIA,SAAU8V,GASN,OALAA,GADAA,GAFAA,EAAMA,GAAOxU,KAAKwU,KAERvX,QAAQ+C,KAAKkW,gBAAiB,MAC9BtB,cAGV5U,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,UAAAC,MAKA,SAAQ8V,EAAK2B,GACT3B,EAAMA,GAAOxU,KAAKwU,KAGI,IAAlB2B,GACA3B,EAAMxU,KAAKoW,SAAS5B,GACpBA,EAAMxU,KAAKqW,WAAW7B,IAEtBA,EAAMA,EAAII,cAKd,IADA,IAAIW,GADJf,EAAMA,EAAIvX,QAAQ+C,KAAKgW,SAAU,MACf1N,MAAM,KACfuM,EAAI,EAAGA,EAAIU,EAAQhY,OAAQsX,IAAK,CAErC,IADA,IAAIyB,EAAIf,EAAQV,GAAGvM,MAAM,KAChBzK,EAAI,EAAGA,EAAIyY,EAAE/Y,OAAQM,IACtBmC,KAAKuW,mBAAmBvX,QAAQsX,EAAEzY,GAAG+W,eAAiB,IACtD0B,EAAEzY,GAAKmC,KAAKiW,WAAWK,EAAEzY,KAGjC0X,EAAQV,GAAKyB,EAAExP,KAAK,IACxB,CAOA,OALA0N,GADAA,EAAMe,EAAQzO,KAAK,MACT4O,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,GAGxD1V,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,aAAAC,MAGA,SAAW8V,GAGP,IAAIe,GAFJf,EAAMA,GAAOxU,KAAKwU,KAEAlM,MAAM,MAMxB,OALAkM,EAAMe,EAAQA,EAAQhY,OAAS,GAG/ByC,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,WAAAC,MAGA,SAAS8V,GAQL,OAPAA,EAAMA,GAAOxU,KAAKwU,IAElBA,EAAMxU,KAAKwW,UAAUxW,KAAKqW,WAAW7B,IAGrCxU,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,WAAAC,MAGA,SAAS8V,GAQL,OAPAA,EAAMA,GAAOxU,KAAKwU,IAElBA,EAAMxU,KAAKyW,YAAYzW,KAAKoW,SAAS5B,IAGrCxU,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,aAAAC,MAIA,SAAW8V,GAAyB,IAApBkC,EAAUpZ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAQtB,OAPAkX,EAAMA,GAAOxU,KAAKwU,IAElBA,EAAMxU,KAAKqW,WAAWrW,KAAK2W,WAAWnC,KAASkC,EAAa,GAAK,KAAO,KAGxE1W,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,GAEA,CAAA/V,IAAA,aAAAC,MAGA,SAAW8V,GAIP,IADA,IAAIe,GAFJf,EAAMA,GAAOxU,KAAKwU,KAEAlM,MAAM,KACfuM,EAAI,EAAGA,EAAIU,EAAQhY,OAAQsX,IAAK,CAErC,GAAU+B,MADFC,SAAStB,EAAQV,IACV,CACX,IAAIiC,EAAMvB,EAAQV,GAAGa,UAAUH,EAAQV,GAAGtX,OAAS,GAC/CwZ,EAAKxB,EAAQV,GAAGa,UAAUH,EAAQV,GAAGtX,OAAS,GAC9CyZ,EAAM,KACC,MAAPF,GAAsB,MAAPA,GAAsB,MAAPA,IACnB,MAAPC,EACAC,EAAM,KACQ,MAAPD,EACPC,EAAM,KACQ,MAAPD,IACPC,EAAM,OAGdzB,EAAQV,IAAMmC,CAClB,CACJ,CAMA,OALAxC,EAAMe,EAAQzO,KAAK,KAGnB9G,KAAKwU,IAAMA,GAEQ,IAAfxU,KAAKqU,MACErU,KAIJwU,CACX,IAEA,CAAA,CAAA/V,IAAA,SAAAC,MAGA,WACI,IAAMuY,EAAO/Q,OAAOC,OAAO7I,WACrB4Z,EAAW,IAAI/C,EAAO,MAAM,GAC5B3B,EAASlV,UAAU,GAGzB,OAFA2Z,EAAKE,QAE2B,mBAArBD,EAAS1E,GACT0E,EAAS1E,GAAO9U,MAAhBwZ,EAAoBD,GAGxB,IACX,KAAC9C,CAAA,CAtasB,GAyarBqC,GAAY,WACd,IAAMS,EAAI,CAAI,aAAWtZ,OAAAZ,MAAA+P,UAAA/O,MAAA8B,KAAKvC,YAE9B,OAAO6W,GAAOiD,OAAM1Z,MAAbyW,GAAMvW,EAAWqZ,GAC5B,EAEMR,GAAc,WAChB,IAAMQ,EAAI,CAAI,eAAatZ,OAAAZ,MAAA+P,UAAA/O,MAAA8B,KAAKvC,YAEhC,OAAO6W,GAAOiD,OAAM1Z,MAAbyW,GAAMvW,EAAWqZ,GAC5B,EAkDMI,GAAW,WACb,IAAMJ,EAAI,CAAI,YAAUtZ,OAAAZ,MAAA+P,UAAA/O,MAAA8B,KAAKvC,YAE7B,OAAO6W,GAAOiD,OAAM1Z,MAAbyW,GAAMvW,EAAWqZ,GAC5B,EC3fMK,GAAY,CACdlG,QAAAA,GACAJ,OAAAA,GACArC,OAAAA,EACAR,MAAAA,EACAK,QAAAA,EACAI,MAAAA,GACAiB,eAAAA,GACAC,QAAAA,GACAqB,OAAAA,GACAxB,SAAAA,GACA0B,KAAAA,GACAC,YAAAA,GACAC,YAAAA,GACAC,aAAAA,GACAxB,aAAAA,IAGEuH,GAAW,CACb1F,eAAAA,GACA2B,YAAAA,GACAU,eAAAA,IAGEsD,GAAQ,WACV,SAAAA,IAII,OAJU7X,OAAA6X,GACVxX,KAAKsX,UAAYA,GACjBtX,KAAKuX,SAAWA,GAETvX,KAAK8E,OAAMpH,MAAXsC,KAAe1C,UAC1B,CAeC,OAfAwC,EAAA0X,EAAA,CAAA,CAAA/Y,IAAA,SAAAC,MAED,SAAOkH,EAAM6R,GACT,IAAMhZ,EAAM+X,GAAU5Q,GAChByH,EAAStQ,MAAA+P,UAAA/O,MAAA8B,KAAIvC,WAAWS,MAAM,GAEpC,IAAKiC,KAAKvB,GACN,MAAM,IAAIsM,MAAM,qCAGpB,IAAK/K,KAAKvB,GAAKgZ,GACX,MAAM,IAAI1M,MAAKpN,MAAAA,OAAO8Y,GAAY7Q,GAAKjI,WAAAA,OAAU8Z,kBAGrD,OAAAC,EAAW1X,KAAKvB,GAAKgZ,GAAU7Z,EAAIyP,GACvC,KAACmK,CAAA,CArBS,GAwBR1S,GAAS,WACX,OAAA4S,EAAWF,GAAQza,MAAA+P,UAAA/O,MAAA8B,KAAIvC,WAC3B,ECjDMqa,GAAqB,SAACjO,GAAwB,IAAjBf,EAAOrL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAGzC,GAFAoM,EAAMf,QAAU7L,EAAQ6L,GAAWA,EAAU,CAACA,IAE1C7L,EAAQ6L,GAaZ,OAJIA,aAAmBD,GACnBC,EAAQiP,OAAOlO,GAGZA,EAbe,IACWnI,EADXC,EAAAC,EACIkH,GAAO,IAA7B,IAAAnH,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAA+B,CAAA,IACrBiH,EADQtH,EAAA7C,MAGdgL,EAAMmO,cAAchP,EACxB,CAAC,CAAA,MAAA5G,GAAAT,EAAAU,EAAAD,EAAA,CAAA,QAAAT,EAAAW,GAAA,CAST,EAqBMwH,GAAK,WACP,SAAAA,EAAYX,EAAUD,GAAuB,IAAdlE,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAEqC,OAAAgK,GACvC3J,KAAKgJ,SAAWA,EAChBhJ,KAAK+I,QAAUA,GAAWnE,IAC1B5E,KAAKsN,UAAYkJ,GAAUxN,GAC3BhJ,KAAK8X,QAAU,IAAIzZ,EACnB2B,KAAK6E,QAAUA,EACf7E,KAAK6X,cAAchT,EAAQ8D,QAC/B,CA8EC,OA9EA7I,EAAA6J,EAAA,CAAA,CAAAlL,IAAA,gBAAAC,MAED,WACI,OAAOiZ,GAAmB3X,KADT1C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAExB,GAAC,CAAAmB,IAAA,UAAAC,MAED,SAAQqZ,GAGJ,OAAOA,CACX,GAAC,CAAAtZ,IAAA,YAAAC,MAED,SAAUiJ,GACN,OAAO7C,GAAO,WAAYuS,GAASrX,KAAKgJ,UAAWrB,EAAM3H,KAAK+I,QAClE,GAAC,CAAAtK,IAAA,aAAAC,MAED,SAAWiJ,GACP,OA5CW,SAAC+B,EAAO/B,GAKvB,GAJ0C,mBAA/B+B,EAAM7E,QAAQ+E,cACrBF,EAAM7E,QAAQ+E,aAAajC,GAG3B7K,EAAQ6K,GAAO,CACf,IAE0BqQ,EAFpBC,EAAa,GAAGC,EAAAzW,EAEAkG,GAAI,IAA1B,IAAAuQ,EAAAxW,MAAAsW,EAAAE,EAAAvW,KAAAC,MAA4B,CAAA,IAAjBuW,EAAOH,EAAAtZ,MACduZ,EAAWhX,KAAKyI,EAAMgE,WAAWyK,GACrC,CAAC,CAAA,MAAAlW,GAAAiW,EAAAhW,EAAAD,EAAA,CAAA,QAAAiW,EAAA/V,GAAA,CAED,OAAAuV,EAAWrZ,EAAc4Z,EAC7B,CAEA,IAAMF,EAAmBrO,EAAMhC,UAAUC,GACzC,OAAO+B,EAAM0O,QAAQL,EACzB,CA2BerK,CAAW1N,KAAM2H,EAC5B,GAAC,CAAAlJ,IAAA,SAAAC,MAED,WAAsC,IAAAqL,EAAA/J,KAA/BoF,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC9B,OAAO,IAAI4U,QAAO,WAAA,IAAAmG,EAAAC,EAAAC,IAAAC,MAAC,SAAAC,EAAOtG,EAASC,GAAM,IAAAhI,EAAA,OAAAmO,IAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAzH,MAAA,KAAA,EAAA,OAAAyH,EAAAzH,KAAA,EACdnH,EAAKhB,QAAQ0E,KAAI,GAAA9P,OAAIoM,EAAKuD,WAAalI,EAAYP,GAASsF,KAAKJ,EAAK2D,WAAWnN,KAAKwJ,IAAY,MAACqI,GAAO,KAAA,EAA3HhI,EAAQuO,EAAAE,KAEd1G,EAAQ/H,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAuO,EAAAG,OAAA,GAAAL,EACrB,KAAA,OAAAM,SAAAA,EAAAC,GAAA,OAAAX,EAAA3a,MAAAsC,KAAA1C,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,SAAAC,MAED,SAAO4L,GAAmC,IAAApK,EAAAF,KAA/BoF,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAClC,OAAO,IAAI4U,QAAO,WAAA,IAAA+G,EAAAX,EAAAC,IAAAC,MAAC,SAAAU,EAAO/G,EAASC,GAAM,IAAAhI,EAAA,OAAAmO,IAAAG,MAAA,SAAAS,GAAA,cAAAA,EAAAP,KAAAO,EAAAjI,MAAA,KAAA,EAAA,OAAAiI,EAAAjI,KAAA,EACdhR,EAAK6I,QAAQiL,IAAGrW,GAAAA,OAAIuC,EAAKoN,UAAS,KAAA3P,OAAI2M,GAAMlF,EAAYP,GAASsF,KAAKjK,EAAKwN,WAAWnN,KAAKL,IAAY,MAACkS,GAAO,KAAA,EAAhIhI,EAAQ+O,EAAAN,KAEd1G,EAAQ/H,GAAU,KAAA,EAAA,IAAA,MAAA,OAAA+O,EAAAL,OAAA,GAAAI,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAAvb,MAAAsC,KAAA1C,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,aAAAC,MAED,SAAW4L,GAAkB,IAAAlH,EAAApD,KAAd6E,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACrB,OAAO,IAAI4U,QAAO,WAAA,IAAAoH,EAAAhB,EAAAC,IAAAC,MAAC,SAAAe,EAAOpH,EAASC,GAAM,IAAAhI,EAAA,OAAAmO,IAAAG,MAAA,SAAAc,GAAA,cAAAA,EAAAZ,KAAAY,EAAAtI,MAAA,KAAA,EAAA,OAAAsI,EAAAtI,KAAA,EACd9N,EAAK2F,QAAQhJ,OAAGpC,OAAIyF,EAAKkK,UAAS3P,KAAAA,OAAI2M,GAAM,CAAE,EAAEzF,GAASsF,KAAK/G,EAAKsK,WAAWnN,KAAK6C,IAAY,MAACgP,GAAO,KAAA,EAAxHhI,EAAQoP,EAAAX,KAEd1G,EAAQ/H,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAoP,EAAAV,OAAA,GAAAS,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAA5b,MAAAsC,KAAA1C,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,UAAAC,MAED,WAAsB,IAAA8L,EAAAxK,KAAd6E,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACd,OAAO,IAAI4U,QAAO,WAAA,IAAAyH,EAAArB,EAAAC,IAAAC,MAAC,SAAAoB,EAAOzH,EAASC,GAAM,IAAAhI,EAAA,OAAAmO,IAAAG,MAAA,SAAAmB,GAAA,cAAAA,EAAAjB,KAAAiB,EAAA3I,MAAA,KAAA,EAAA,OAAA2I,EAAA3I,KAAA,EACd1G,EAAKzB,QAAQhJ,IAAGpC,GAAAA,OAAI6M,EAAK8C,WAAa,GAAIzI,GAASsF,KAAKK,EAAKkD,WAAWnN,KAAKiK,IAAY,MAAC4H,GAAO,KAAA,EAAlHhI,EAAQyP,EAAAhB,KAEd1G,EAAQ/H,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAyP,EAAAf,OAAA,GAAAc,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAAjc,MAAAsC,KAAA1C,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,QAAAC,MAED,WAAgC,IAAAkN,EAAA5L,KAA1BgT,EAAK1V,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACxB,OAAO,IAAI4U,QAAO,WAAA,IAAA8H,EAAA1B,EAAAC,IAAAC,MAAC,SAAAyB,EAAO9H,EAASC,GAAM,IAAAhI,EAAA,OAAAmO,IAAAG,MAAA,SAAAwB,GAAA,cAAAA,EAAAtB,KAAAsB,EAAAhJ,MAAA,KAAA,EAAA,OAAAgJ,EAAAhJ,KAAA,EACdtF,EAAK7C,QAAQhJ,IAAG,GAAApC,OAAIiO,EAAK0B,WAAa0F,EAAOnO,GAASsF,KAAKyB,EAAK8B,WAAWnN,KAAKqL,IAAY,MAACwG,GAAO,KAAA,EAArHhI,EAAQ8P,EAAArB,KAEd1G,EAAQ/H,GAAU,KAAA,EAAA,IAAA,MAAA,OAAA8P,EAAApB,OAAA,GAAAmB,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAAtc,MAAAsC,KAAA1C,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,cAAAC,MAED,WAAsC,IAAAmO,EAAA7M,KAA1BgT,EAAK1V,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAG9B,OAFA0V,EAAMqH,QAAS,EAER,IAAInI,QAAO,WAAA,IAAAoI,EAAAhC,EAAAC,IAAAC,MAAC,SAAA+B,EAAOpI,EAASC,GAAM,IAAAhI,EAAA,OAAAmO,IAAAG,MAAA,SAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAAtJ,MAAA,KAAA,EAAA,OAAAsJ,EAAAtJ,KAAA,EACdrE,EAAK9D,QAAQhJ,IAAG,GAAApC,OAAIkP,EAAKS,WAAa0F,EAAOnO,GAASsF,KAAK0C,EAAKa,WAAWnN,KAAKsM,IAAY,MAACuF,GAAO,KAAA,EAArHhI,EAAQoQ,EAAA3B,KAEd1G,EAAQ/H,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAoQ,EAAA1B,OAAA,GAAAyB,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAA5c,MAAAsC,KAAA1C,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,UAAAC,MAED,SAAQoF,GAAsB,IAAA6W,EAAA3a,KAAd6E,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAChBgN,EAAKzG,EAAWC,GAAUA,EAAOgG,aAAa,MAAQhG,EAE5D,OAAO,IAAIoO,QAAO,WAAA,IAAA0I,EAAAtC,EAAAC,IAAAC,MAAC,SAAAqC,EAAO1I,EAASC,GAAM,IAAAhI,EAAA,OAAAmO,IAAAG,MAAA,SAAAoC,GAAA,cAAAA,EAAAlC,KAAAkC,EAAA5J,MAAA,KAAA,EAAA,OAAA4J,EAAA5J,KAAA,EACdyJ,EAAK5R,QAAO,UAAOpL,OAAIgd,EAAKrN,UAAS3P,KAAAA,OAAI2M,GAAM,CAAE,EAAEzF,GAASsF,KAAKwQ,EAAKjN,WAAWnN,KAAKoa,IAAY,MAACvI,GAAO,KAAA,EAA3HhI,EAAQ0Q,EAAAjC,KAEd1G,EAAQ/H,GAAU,KAAA,EAAA,IAAA,MAAA,OAAA0Q,EAAAhC,OAAA,GAAA+B,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAAld,MAAAsC,KAAA1C,UAAA,CAAC,CAJgB,GAKtB,KAACqM,CAAA,CAtFM,GCTUsR,GAAS,WAS1B,SAAAA,EAAYhJ,GAAuC,IAAAiJ,EAAAC,EAAAC,EAA5B1J,EAAMpU,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAI+d,EAAK/d,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAUrC,GAV6CqC,OAAAsb,GAC7Cjb,KAAKuJ,QAAwB2R,QAAjBA,EAAGxJ,EAAOnI,eAAO2R,IAAAA,EAAAA,EAAI,KACjClb,KAAK6E,QAAU,CACX0E,QAASvJ,KAAKuJ,QACdoI,KAAiB,QAAbwJ,EAAEzJ,EAAOC,YAAI,IAAAwJ,EAAAA,EAAI,2BACrB7N,UAA2B8N,QAAlBA,EAAE1J,EAAOpE,iBAAS8N,IAAAA,EAAAA,EAAIpb,KAAKuJ,QACpC8R,MAAAA,EACApJ,UAAAA,GAGqB,iBAAdA,GAA+C,IAArBA,EAAU1U,OAC3C,MAAM,IAAIwN,MAAM,gDAGpB,IAAK/G,KAAuBiO,EAAU2C,cAAc0G,WAAW,KAC3D,MAAM,IAAIvQ,MAAM,iFAGpB/K,KAAK+I,QAAU2I,EAAO3I,SAAWnE,EAAc5E,KAAK6E,SAEpD7E,KAAKub,OAAS,IAAI5R,GAAM,QAAS3J,KAAK+I,SAAS8O,cAAc1K,GAC7DnN,KAAKwb,SAAW,IAAI7R,GAAM,SAAU3J,KAAK+I,SACzC/I,KAAKyb,OAAS,IAAI9R,GAAM,QAAS3J,KAAK+I,SACtC/I,KAAK0b,QAAU,IAAI/R,GAAM,SAAU3J,KAAK+I,SAAS8O,cAAc1H,IAC/DnQ,KAAK2b,SAAW,IAAIhS,GAAM,UAAW3J,KAAK+I,SAC1C/I,KAAK4b,QAAU,IAAIjS,GAAM,SAAU3J,KAAK+I,SACxC/I,KAAK6b,SAAW,IAAIlS,GAAM,UAAW3J,KAAK+I,SAC1C/I,KAAK8b,cAAgB,IAAInS,GAAM,eAAgB3J,KAAK+I,SAAS8O,cAAc9H,GAC/E,CAIC,OAJAjQ,EAAAmb,EAAA,CAAA,CAAAxc,IAAA,aAAAC,MAMD,SAAWqK,GACP/I,KAAK+I,QAAUA,CACnB,GAAC,CAAAtK,IAAA,aAAAC,MAED,WACI,OAAOsB,KAAK+I,OAChB,IAAC,CAAA,CAAAtK,IAAA,cAAAC,MAVD,WACI,OAAAgZ,EAAWuD,EAASle,MAAA+P,UAAA/O,MAAA8B,KAAIvC,WAC5B,KAAC2d,CAAA,CAzCyB,ohBHqbb,WACb,IAAMhE,EAAI,CAAI,YAAUtZ,OAAAZ,MAAA+P,UAAA/O,MAAA8B,KAAKvC,YAE7B,OAAO6W,GAAOiD,OAAM1Z,MAAbyW,GAAMvW,EAAWqZ,GAC5B,wCAQkB,WACd,IAAMA,EAAI,CAAI,aAAWtZ,OAAAZ,MAAA+P,UAAA/O,MAAA8B,KAAKvC,YAE9B,OAAO6W,GAAOiD,OAAM1Z,MAAbyW,GAAMvW,EAAWqZ,GAC5B,sEIvee,SAAoB8E,GAC/B,OAAOC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,EAC3D,sBCFe,SAAqBA,GAChC,OAAOC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,KAAOE,KAAKC,IAAIH,IAAe,EAC1F"} \ No newline at end of file diff --git a/dist/esm/fleetbase.js b/dist/esm/fleetbase.js index 7d00c70..5f3ea63 100644 --- a/dist/esm/fleetbase.js +++ b/dist/esm/fleetbase.js @@ -1,6 +1,2 @@ -<<<<<<< HEAD -import t from"axios";import"date-fns";function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function n(t){for(var n=1;nt.length)&&(e=t.length);for(var n=0,i=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];if(A(t))if(i.length<=6e4)t.splice.apply(t,[e,n].concat(k(i)));else{t.splice(e,n);for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:0,i=t.length,r=n;r2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3?arguments[3]:void 0,r=t.length;n<0&&(n+=r);var o=i&&e!=e?function(t){return t!=t}:function(t){return t===e};return S(t,o,n)},D=function(t,e,n){return $(t,e,0,[n]),n},C=function(t){h(n,g(Array));var e=y(n);function n(){for(var t=arguments.length,i=new Array(t),r=0;r0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return j(this,0)}},{key:"last",get:function(){return j(this,this.length-1)}},{key:"replace",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return $(this,t,e,n),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return j(e,t)}))}},{key:"objectAt",value:function(t){return j(this,t)}},{key:"indexOf",value:function(t,e){return z(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var i=e;i>=0;i--)if(j(this,i)===t)return i;return-1}},{key:"includes",value:function(t,e){return-1!==z(this,t,e,!0)}},{key:"findBy",value:function(){return _(this,O.apply(void 0,arguments))}},{key:"findIndexBy",value:function(){return S(this,O.apply(void 0,arguments))}},{key:"isEvery",value:function(){return F(this,O.apply(void 0,arguments))}},{key:"isAny",value:function(){return P(this,O.apply(void 0,arguments))}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:R,n=[],i=new Set,r="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=r(t);i.has(e)||(i.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return D(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return $(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=j(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=j(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return D(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){j(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),L=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=i(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var o=t.length;if("number"==typeof o)return!o}return!1},N=function(t){return L(t)||"string"==typeof t&&!1===/\S/.test(t)};function T(t){return isFinite(t)&&Math.abs(t)<=90}function q(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function B(t){return t instanceof Z}var U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(t)},I=function(){var t,e,n,r,o;return!("undefined"==typeof process||"object"!==i(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(n=e.name)||void 0===n?void 0:n.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(r=window)||void 0===r||null===(o=r.navigator)||void 0===o?void 0:o.product))},J=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return I()?Ot("adapter","NodeAdapter",t):Ot("adapter","BrowserAdapter",t)},W=Array.isArray,K=function(){function t(e){s(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return u(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=0;e1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=n(n({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),M=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;s(this,t),this.type="Point",this.coordinates=[n,e]}return u(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=b(e.coordinates,2);return longitude=n[0],latitude=n[1],new t(latitude,longitude)}}]),t}();"undefined"==typeof arguments||arguments;var H=function(t,e){var n=t();return Array.isArray(n)||"object"===i(n)?G(n,e):null},G=function t(e,n){var r,o=e,s=i(e),a="object"===s,u="function"===s,c=Array.isArray(e),h="string"===i(n)&&n.includes(".")?n.split("."):[n];if(c||a){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;s(this,t),this.actions=e,this.bind=n}return u(t,[{key:"extend",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=t||this.bind;if(!e)return this;if(null!=this&&this.actions&&"object"===i(this.actions))for(var n in this.actions){var r=this.actions[n];"function"==typeof r?Q(e,n,r.bind(e)):Q(e,n,r)}return this}}]),t}(),Z=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};s(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=i,this.options=r,this.version=r.version||"v1",this.setAdapter(n)}return u(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new _t(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return L(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===i(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Q(this.attributes,t,n),Q(this.dirtyAttributes,t,r),A(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=G(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===i?n:i}},{key:"hasAttribute",value:function(t){if(A(t)){var e,n=t,i=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return i.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return A(t)?this.hasAttribute(t)&&t.every((function(t){return!L(e.getAttribute(t))})):this.hasAttribute(t)&&!L(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!A(t))throw new Error("No attribute properties provided!");for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},i=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=n(n({},i),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Y=new V({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,i).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,i)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,i)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),X=function(t){h(i,Z);var e=y(i);function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,i),e.call(this,t,r,"order",n({actions:Y},o))}return u(i,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),i}(),tt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"payload",r)}return u(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new C(this.waypoints)}}]),n}(),et=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"entity",r)}return n}(),nt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"place",r)}return u(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return B(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.getAttribute("coordinates"),o=b(r,2),s=o[0],a=o[1],u={name:null,address:t.getAttribute("address"),location:new M(s,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null};return new n(u,e,i)}}]),n}(),it=function(t){h(n,nt);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"waypoint",r)}return n}(),rt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"tracking-status",r)}return n}(),ot=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"vehicle",r)}return n}(),st=new V({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(U(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",n({identity:t,password:e},i)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",n({identity:t,code:e},i)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),at=function(t){h(i,Z);var e=y(i);function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,i),e.call(this,t,r,"driver",n({actions:st},o))}return u(i,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new M))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}}]),i}(),ut=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"vendor",r)}return n}(),ct=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"contact",r)}return n}(),ht=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"zone",r)}return n}(),lt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-area",r)}return n}(),vt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-rate",r)}return n}(),dt=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"service-quote",r)}return u(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),ft=function(t){h(n,Z);var e=y(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(this,n),e.call(this,t,i,"organization",r)}return n}(),gt=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}},pt=function(t){h(i,gt);var e=y(i);function i(t){var n;return s(this,i),(n=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return u(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=n(n({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(s,a){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),n({method:i,mode:o.mode||"cors",headers:new Headers(n(n({},e.headers||{}),o.headers||{}))},r)).then(e.parseJSON).then((function(t){return t.ok?s(t.json):a(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){a(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=N(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(i?"?".concat(i):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),i}(),yt=function(e){h(r,gt);var i=y(r);function r(e){var n;return s(this,r),(n=i.call(this,e)).axios=t.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n}return u(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=n(n({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(A(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=N(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(i?"?".concat(i):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),r}(),bt=function(t){h(n,gt);var e=y(n);function n(){return s(this,n),e.apply(this,arguments)}return n}(),kt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];s(this,t),c(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),c(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),c(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),c(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),c(this,"idSuffix",new RegExp("(_ids|_id)$","g")),c(this,"underbar",new RegExp("_","g")),c(this,"spaceOrUnderbar",new RegExp("[ _]","g")),c(this,"uppercase",new RegExp("([A-Z])","g")),c(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return u(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,i){if(i)t=i;else if(!(n.indexOf(t.toLowerCase())>-1))for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),i=0;i1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=A(e)?e:[e],!A(e))return e instanceof V&&e.extend(t),t;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};s(this,t),this.resource=e,this.adapter=n||J(),this.namespace=mt(e),this.storage=new C,this.options=i,this.extendActions(i.actions)}return u(t,[{key:"extendActions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return St(this,t)}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return Ot("resource",$t(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),A(e)){for(var n=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var r=o(regeneratorRuntime.mark((function r(o,s){var a;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:a=r.sent,o(a);case 4:case"end":return r.stop()}}),r)})));return function(t,e){return r.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=o(regeneratorRuntime.mark((function n(i,r){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(r);case 2:o=n.sent,i(o);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=o(regeneratorRuntime.mark((function i(r,o){var s;return regeneratorRuntime.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(o);case 2:s=i.sent,r(s);case 4:case"end":return i.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=B(t)?t.getAttribute("id"):t;return new Promise(function(){var t=o(regeneratorRuntime.mark((function t(r,o){var s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(o);case 2:s=t.sent,r(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),Pt=function(){function t(e){var n,i,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(i=o.host)&&void 0!==i?i:"https://api.fleetbase.io",namespace:null!==(r=o.namespace)&&void 0!==r?r:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!I()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||J(this.options),this.orders=new _t("order",this.adapter).extendActions(Y),this.entities=new _t("entity",this.adapter),this.places=new _t("place",this.adapter),this.drivers=new _t("driver",this.adapter).extendActions(st),this.vehicles=new _t("vehicle",this.adapter),this.vendors=new _t("vendor",this.adapter),this.contacts=new _t("contact",this.adapter)}return u(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return f(t,Array.prototype.slice.call(arguments))}}]),t}();export default Pt;export{gt as Adapter,pt as BrowserAdapter,C as Collection,ct as Contact,at as Driver,bt as EmberJsAdapter,et as Entity,K as GoogleAddress,yt as NodeAdapter,X as Order,ft as Organization,tt as Payload,nt as Place,M as Point,Z as Resource,lt as ServiceArea,dt as ServiceQuote,vt as ServiceRate,_t as Store,V as StoreActions,rt as TrackingStatus,ot as Vehicle,ut as Vendor,it as Waypoint,ht as Zone,At as camelize,$t as classify,xt as dasherize,St as extendStoreActions,T as isLatitude,q as isLongitude,I as isNodeEnvironment,B as isResource,mt as pluralize,wt as singularize}; -======= -import t from"axios";function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function n(t){for(var n=1;n=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),c=i.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),S(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:L(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function i(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,i)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function s(t){a(o,r,i,s,u,"next",t)}function u(t){a(o,r,i,s,u,"throw",t)}s(void 0)}))}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}var O=Array.isArray,j="undefined"==typeof arguments?void 0:arguments,$=6e4,R=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(O(t))if(r.length<=$)t.splice.apply(t,[e,n].concat(k(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),z(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)},D=function(t,e,n){return R(t,e,0,[n]),n},N=function(t){v(n,y(Array));var e=m(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return P(this,0)}},{key:"last",get:function(){return P(this,this.length-1)}},{key:"replace",value:function(t,e){return R(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return P(e,t)}))}},{key:"objectAt",value:function(t){return P(this,t)}},{key:"indexOf",value:function(t,e){return F(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(P(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==F(this,t,e,!0)}},{key:"findBy",value:function(){return t=this,e=L.apply(void 0,arguments),r=e.bind(n),-1===(i=z(t,r,0))?void 0:P(t,i);var t,e,n,r,i}},{key:"findIndexBy",value:function(){return z(this,L.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=L.apply(void 0,arguments),r=e.bind(n),-1===z(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:"isAny",value:function(){return t=this,e=L.apply(void 0,arguments),r=e.bind(n),-1!==z(t,r,0);var t,e,n,r}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:_,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return D(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return R(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=P(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=P(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return D(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){P(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),C=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=o(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},T=function(t){return C(t)||"string"==typeof t&&!1===/\S/.test(t)};function q(t){return isFinite(t)&&Math.abs(t)<=90}function I(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function B(t){return t instanceof Y}var G=function(){var t,e,n;return!("undefined"==typeof process||"object"!==o(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))},U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return G()?St("adapter","NodeAdapter",t):St("adapter","BrowserAdapter",t)},J=Array.isArray,W=function(){function t(e){u(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return h(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=E(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(J(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=n(n({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),K=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;u(this,t),this.type="Point",this.coordinates=[n,e]}return h(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=w(e.coordinates,2),r=n[0];return new t(n[1],r)}}]),t}();"undefined"==typeof arguments||arguments;var M=function(t,e){var n=t();return Array.isArray(n)||"object"===o(n)?H(n,e):null},H=function t(e,n){var r,i=e,a=o(e),s="object"===a,u="function"===a,c=Array.isArray(e),h="string"===o(n)&&n.includes(".")?n.split("."):[n];if(c||s){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u(this,t),this.actions=e,this.bind=n}return h(t,[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===o(this.actions))for(var e in this.actions){var n=this.actions[e];"function"==typeof n?Q(t,e,n.bind(t)):Q(t,e,n)}return this}}]),t}(),Y=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};u(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return h(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Lt(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return C(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===o(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Q(this.attributes,t,n),Q(this.dirtyAttributes,t,r),O(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=H(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(O(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return O(t)?this.hasAttribute(t)&&t.every((function(t){return!C(e.getAttribute(t))})):this.hasAttribute(t)&&!C(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!O(t))throw new Error("No attribute properties provided!");var n,r=E(t);try{for(r.s();!(n=r.n()).done;){var i,a,s=n.value;if("string"==typeof s){var u=this.getAttribute(s);"object"!==o(null===(i=u)||void 0===i?void 0:i.attributes)||O(null===(a=u)||void 0===a?void 0:a.attributes)||(u=u.attributes),e[s]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=n(n({},r),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Z=new V({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),X=function(t){v(r,Y);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"order",n({actions:Z},o))}return h(r,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),r}(),tt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"payload",i)}return h(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new N(this.waypoints)}}]),n}(),et=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"entity",i)}return h(n)}(),nt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"place",i)}return h(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return B(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=w(t.getAttribute("coordinates"),2),o=i[0],a=i[1];return new n({name:null,address:t.getAttribute("address"),location:new K(o,a),street1:t.getAttribute("streetName"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null},e,r)}}]),n}(),rt=function(t){v(n,nt);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"waypoint",i)}return h(n)}(),it=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"tracking-status",i)}return h(n)}(),ot=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vehicle",i)}return h(n)}(),at=new V({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),st=function(t){v(r,Y);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"organization",n({actions:at},o))}return h(r)}(),ut=function(t,e){return O(t)?t.map((function(t){return new st(t,e)})):new st(t,e)},ct=new V({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",n({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",n({identity:t,code:e},r)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return ut(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return ut(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return ut(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),ht=function(t){v(r,Y);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"driver",n({actions:ct},o))}return h(r,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new Point))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}]),r}(),lt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vendor",i)}return h(n)}(),vt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"contact",i)}return h(n)}(),ft=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"zone",i)}return h(n)}(),dt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-area",i)}return h(n)}(),gt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-rate",i)}return h(n)}(),pt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-quote",i)}return h(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),yt=h((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}})),bt=function(t){v(r,yt);var e=m(r);function r(t){var n;return u(this,r),(n=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return h(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=n(n({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(a,s){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),n({method:r,mode:o.mode||"cors",headers:new Headers(n(n({},e.headers||{}),o.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?a(t.json):s(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){s(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=T(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),r}(),mt=function(e){v(i,yt);var r=m(i);function i(e){var n;return u(this,i),(n=r.call(this,e)).axios=t.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n}return h(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=n(n({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(O(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=T(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),i}(),wt=function(t){v(n,yt);var e=m(n);function n(){return u(this,n),e.apply(this,arguments)}return h(n)}(),kt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];u(this,t),l(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),l(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),l(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),l(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),l(this,"idSuffix",new RegExp("(_ids|_id)$","g")),l(this,"underbar",new RegExp("_","g")),l(this,"spaceOrUnderbar",new RegExp("[ _]","g")),l(this,"uppercase",new RegExp("([A-Z])","g")),l(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return h(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=O(e)?e:[e],!O(e))return e instanceof V&&e.extend(t),t;var n,r=E(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}},Lt=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};u(this,t),this.resource=e,this.adapter=n||U(),this.namespace=At(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){return Pt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return St("resource",jt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),O(e)){var n,r=[],i=E(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return p(N,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var o=s(r().mark((function o(a,s){var u;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:u=r.sent,a(u);case 4:case"end":return r.stop()}}),o)})));return function(t,e){return o.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=s(r().mark((function n(i,o){var a;return r().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(o);case 2:a=n.sent,i(a);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=B(t)?t.getAttribute("id"):t;return new Promise(function(){var t=s(r().mark((function t(o,a){var s;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=t.sent,o(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),zt=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!G()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||U(this.options),this.orders=new Lt("order",this.adapter).extendActions(Z),this.entities=new Lt("entity",this.adapter),this.places=new Lt("place",this.adapter),this.drivers=new Lt("driver",this.adapter).extendActions(ct),this.vehicles=new Lt("vehicle",this.adapter),this.vendors=new Lt("vendor",this.adapter),this.contacts=new Lt("contact",this.adapter),this.organizations=new Lt("organization",this.adapter).extendActions(at)}return h(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return p(t,Array.prototype.slice.call(arguments))}}]),t}();export{yt as Adapter,bt as BrowserAdapter,N as Collection,vt as Contact,ht as Driver,wt as EmberJsAdapter,et as Entity,W as GoogleAddress,mt as NodeAdapter,X as Order,st as Organization,tt as Payload,nt as Place,K as Point,Y as Resource,dt as ServiceArea,pt as ServiceQuote,gt as ServiceRate,Lt as Store,V as StoreActions,it as TrackingStatus,ot as Vehicle,lt as Vendor,rt as Waypoint,ft as Zone,Et as camelize,jt as classify,Ot as dasherize,zt as default,Pt as extendStoreActions,q as isLatitude,I as isLongitude,G as isNodeEnvironment,B as isResource,At as pluralize,xt as singularize}; ->>>>>>> 956839d5964850b969941f04a0f703ea857e885b +import t from"axios";function e(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function n(t){for(var n=1;n=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),c=i.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),S(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:P(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},e}function i(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,i)}function s(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function s(t){a(o,r,i,s,u,"next",t)}function u(t){a(o,r,i,s,u,"throw",t)}s(void 0)}))}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}var O=Array.isArray,j="undefined"==typeof arguments?void 0:arguments,$=6e4,R=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(O(t))if(r.length<=$)t.splice.apply(t,[e,n].concat(k(r)));else{t.splice(e,n);for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:0,r=t.length,i=n;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=t.length;return n<0&&(n+=i),z(t,r&&e!=e?function(t){return t!=t}:function(t){return t===e},n)},D=function(t,e,n){return R(t,e,0,[n]),n},N=function(t){v(n,y(Array));var e=m(n);function n(){for(var t=arguments.length,r=new Array(t),i=0;i0}},{key:"empty",get:function(){return 0===this.length}},{key:"first",get:function(){return L(this,0)}},{key:"last",get:function(){return L(this,this.length-1)}},{key:"replace",value:function(t,e){return R(this,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]),this}},{key:"objectsAt",value:function(t){var e=this;return t.map((function(t){return L(e,t)}))}},{key:"objectAt",value:function(t){return L(this,t)}},{key:"indexOf",value:function(t,e){return F(this,t,e,!1)}},{key:"lastIndexOf",value:function(t,e){var n=this.length;(void 0===e||e>=n)&&(e=n-1),e<0&&(e+=n);for(var r=e;r>=0;r--)if(L(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==F(this,t,e,!0)}},{key:"findBy",value:function(){return t=this,e=P.apply(void 0,arguments),r=e.bind(n),-1===(i=z(t,r,0))?void 0:L(t,i);var t,e,n,r,i}},{key:"findIndexBy",value:function(){return z(this,P.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=P.apply(void 0,arguments),r=e.bind(n),-1===z(t,(function(t,e,n){return!r(t,e,n)}),0);var t,e,n,r}},{key:"isAny",value:function(){return t=this,e=P.apply(void 0,arguments),r=e.bind(n),-1!==z(t,r,0);var t,e,n,r}},{key:"invoke",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:_,n=[],r=new Set,i="function"==typeof e?e:function(t){return get(t,e)};return t.forEach((function(t){var e=i(t);r.has(e)||(r.add(e),n.push(t))})),n}(this,t)}},{key:"without",value:function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(t){return t==t};return this.filter(e)}},{key:"clear",value:function(){var t=this.length;return 0===t||this.replace(0,t,[]),this}},{key:"insertAt",value:function(t,e){return D(this,t,e),this}},{key:"replaceAt",value:function(t,e){return this.replace(t,1,[e])}},{key:"removeAt",value:function(t,e){return function(t,e){return R(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,[]),t}(this,t,e)}},{key:"pushObject",value:function(t){return this.insertAt(this.length,t)}},{key:"pushObjects",value:function(t){return this.replace(this.length,0,t),this}},{key:"popObject",value:function(){var t=this.length;if(0===t)return null;var e=L(this,t-1);return this.removeAt(t-1,1),e}},{key:"shiftObject",value:function(){if(0===this.length)return null;var t=L(this,0);return this.removeAt(0),t}},{key:"unshiftObject",value:function(t){return D(this,0,t)}},{key:"unshiftObjects",value:function(t){return this.replace(0,0,t),this}},{key:"reverseObjects",value:function(){var t=this.length;if(0===t)return this;var e=this.toArray().reverse();return this.replace(0,t,e),this}},{key:"setObjects",value:function(t){if(0===t.length)return this.clear();var e=this.length;return this.replace(0,e,t),this}},{key:"removeObject",value:function(t){for(var e=this.length||0;--e>=0;){L(this,e)===t&&this.removeAt(e)}return this}},{key:"removeObjects",value:function(t){for(var e=t.length-1;e>=0;e--)this.removeObject(t[e]);return this}},{key:"addObject",value:function(t){return this.includes(t)||this.pushObject(t),this}},{key:"addObjects",value:function(t){var e=this;return t.forEach((function(t){return e.addObject(t)})),this}}]),n}(),C=function(t){var e=null==t;if(e)return e;if("number"==typeof t.size)return!t.size;var n=o(t);if("object"===n){var r=t.size;if("number"==typeof r)return!r}if("number"==typeof t.length&&"function"!==n)return!t.length;if("object"===n){var i=t.length;if("number"==typeof i)return!i}return!1},T=function(t){return C(t)||"string"==typeof t&&!1===/\S/.test(t)};function q(t){return isFinite(t)&&Math.abs(t)<=90}function I(t){return isFinite(t)&&Math.abs(t)<=180&&Math.abs(t)>=90}function B(t){return t instanceof Y}var G=function(){var t,e,n;return!("undefined"==typeof process||"object"!==o(null===(t=process)||void 0===t?void 0:t.env)&&-1===(null===(e=process.release)||void 0===e||null===(e=e.name)||void 0===e?void 0:e.search(/node|io.js/))||"undefined"!=typeof window&&"ReactNative"!==(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.product))},U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return G()?St("adapter","NodeAdapter",t):St("adapter","BrowserAdapter",t)},J=Array.isArray,W=function(){function t(e){u(this,t),this.place=e,this.geometry=null==e?void 0:e.geometry,this.components=this.parseComponents(),this.attributes=this.parseProperties()}return h(t,[{key:"parse",value:function(){this.parseComponents(),this.parseProperties()}},{key:"parseComponents",value:function(){var t;return((null===(t=this.place)||void 0===t?void 0:t.address_components)||[]).reduce((function(t,e){return e.types.forEach((function(n){t[n]=e})),t}),{})}},{key:"parseProperties",value:function(){var t,e={streetNumber:this.get("street_number"),streetName:this.get("route"),coordinates:null!==(t=this.geometry)&&void 0!==t&&t.location?Object.values(this.geometry.location):[0,0],city:this.or(["locality","sublocality","sublocality_level_1","neighborhood","administrative_area_level_3","administrative_area_level_2"]),county:this.get("administrative_area_level_2"),stateShort:this.get("administrative_area_level_1",!0),stateLong:this.get("administrative_area_level_1"),countryShort:this.get("country",!0),country:this.get("country",!0),countryLong:this.get("country"),postalCode:this.get("postal_code")};return e.address=[e.streetNumber,e.streetName].filter(Boolean).join(" "),e}},{key:"all",value:function(){return this.attributes}},{key:"or",value:function(){var t,e=E(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]);try{for(e.s();!(t=e.n()).done;){var n=t.value;if(J(n)){var r=n[0],i=n[1];if(this.has(r))return this.get(r,i)}else if(this.has(n))return this.get(n)}}catch(t){e.e(t)}finally{e.f()}return null}},{key:"has",value:function(t){return t in this.components}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t in this.components?e?this.components[t].short_name:this.components[t].long_name:null}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.attributes=n(n({},this.attributes),t),this}},{key:"setAttribute",value:function(t,e){return this.attributes[t]=e,this}},{key:"getAttribute",value:function(t){return this.attributes[t]||null}}]),t}(),K=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;u(this,t),this.type="Point",this.coordinates=[n,e]}return h(t,[{key:"latitude",get:function(){return this.coordinates[1]}},{key:"longitude",get:function(){return this.coordinates[0]}},{key:"lat",value:function(){return this.latitude}},{key:"lng",value:function(){return this.longitude}},{key:"serialize",value:function(){return{type:"Point",coorindates:[this.lat(),this.lng()]}}},{key:"toJson",value:function(){return this.serialize()}},{key:"toString",value:function(){return"(".concat(this.latitude,", ").concat(this.longitude,")")}}],[{key:"fromGeoJson",value:function(e){var n=w(e.coordinates,2),r=n[0];return new t(n[1],r)}}]),t}();"undefined"==typeof arguments||arguments;var M=function(t,e){var n=t();return Array.isArray(n)||"object"===o(n)?H(n,e):null},H=function t(e,n){var r,i=e,a=o(e),s="object"===a,u="function"===a,c=Array.isArray(e),h="string"===o(n)&&n.includes(".")?n.split("."):[n];if(c||s){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u(this,t),this.actions=e,this.bind=n}return h(t,[{key:"extend",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.bind;if(!t)return this;if(null!=this&&this.actions&&"object"===o(this.actions))for(var e in this.actions){var n=this.actions[e];"function"==typeof n?Q(t,e,n.bind(t)):Q(t,e,n)}return this}}]),t}(),Y=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};u(this,t),this.attributes=e,this.dirtyAttributes={},this.changes={},this.isLoading=!1,this.isSaving=!1,this.isDestroying=!1,this.isReloading=!1,this.resource=r,this.options=i,this.version=i.version||"v1",this.setAdapter(n)}return h(t,[{key:"setAdapter",value:function(t){var e;return this.adapter=t,this.store=new Pt(this.resource,t,{onAfterFetch:this.syncAttributes.bind(this),actions:null===(e=this.options)||void 0===e?void 0:e.actions}),this}},{key:"id",get:function(){return this.getAttribute("id")}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.mergeAttributes(e);return this.setFlags(["isLoading","isSaving"]),this.store.create(n).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"update",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setFlags(["isLoading","isSaving"]),this.store.update(this.attributes.id,e).then((function(e){return t.setFlags(["isLoading","isSaving"],!1),e}))}},{key:"destroy",value:function(){var t=this;return this.setFlags(["isLoading","isDestroying"]),this.store.destroy(this.attributes.id).then((function(e){return t.setFlags(["isLoading","isDestroying"],!1),e}))}},{key:"reload",value:function(){var t=this;return this.setFlags(["isLoading","isReloading"]),this.store.findRecord(this.attributes.id).then((function(e){return t.reset(),e}))}},{key:"setFlags",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=["isLoading","isSaving","isReloading","isDestroying"],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=this.getAttributes();return C(this.id)?this.create(e):!0===t.onlyDirty?this.savedirty():this.update(e)}},{key:"saveDirty",value:function(){for(var t=Object.keys(this.dirtyAttributes),e={},n=0;n0}},{key:"mutate",value:function(t,e){this.attributes[t]=e}},{key:"setAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(null===n&&"object"===o(t))return this.setAttributes(t);var r=null!==(e=null==this?void 0:this.attributes[t])&&void 0!==e?e:null;return Q(this.attributes,t,n),Q(this.dirtyAttributes,t,r),O(null==this?void 0:this.changes[t])||(this.changes[t]=[]),this.changes[t].push({property:t,previousValue:r,value:n,changedAt:new Date}),this}},{key:"setAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var e in t)this.setAttribute(e,t[e]);return this}},{key:"getAttribute",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=H(null!==(e=null==this?void 0:this.attributes)&&void 0!==e?e:{},t);return void 0===r?n:r}},{key:"hasAttribute",value:function(t){if(O(t)){var e,n=t,r=Object.keys(null!==(e=this.attributes)&&void 0!==e?e:{});return n.every((function(t){return r.includes(t)}))}return!(null==this||!this.attributes)&&t in this.attributes}},{key:"hasAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.hasAttribute(t)}},{key:"isAttributeFilled",value:function(t){var e=this;return O(t)?this.hasAttribute(t)&&t.every((function(t){return!C(e.getAttribute(t))})):this.hasAttribute(t)&&!C(this.getAttribute(t))}},{key:"getAttributes",value:function(t){var e={};if(null==t)return this.getAttributes(Object.keys(this.attributes));if("string"==typeof t)return this.getAttribute(Array.prototype.slice.call(arguments));if(!O(t))throw new Error("No attribute properties provided!");var n,r=E(t);try{for(r.s();!(n=r.n()).done;){var i,a,s=n.value;if("string"==typeof s){var u=this.getAttribute(s);"object"!==o(null===(i=u)||void 0===i?void 0:i.attributes)||O(null===(a=u)||void 0===a?void 0:a.attributes)||(u=u.attributes),e[s]=u}}}catch(t){r.e(t)}finally{r.f()}return e}},{key:"serialize",value:function(){return this.getAttributes()}},{key:"mergeAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=null!==(t=null==this?void 0:this.attributes)&&void 0!==t?t:{};return this.attributes=n(n({},r),e),this.attributes}},{key:"syncAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attributes=t}}]),t}(),Z=new V({getDistanceAndTime:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/distance-and-time"),e,n)},getNextActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("".concat(this.namespace,"/").concat(t,"/next-activity"),e,n)},dispatch:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/dispatch"),e,n).then(this.afterFetch.bind(this))},start:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/start"),e,n).then(this.afterFetch.bind(this))},updateActivity:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/update-activity"),e,n).then(this.afterFetch.bind(this))},setDestination:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/set-destination/").concat(e),n,r).then(this.afterFetch.bind(this))},captureQrCode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-qr").concat(e?"/"+e:""),n,r)},captureSignature:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return B(e)&&(e=e.id),this.adapter.post("".concat(this.namespace,"/").concat(t,"/capture-signature").concat(e?"/"+e:""),n,r)},complete:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("".concat(this.namespace,"/").concat(t,"/complete"),e,n).then(this.afterFetch.bind(this))},cancel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.delete("".concat(this.namespace,"/").concat(t,"/cancel"),e,n).then(this.afterFetch.bind(this))}}),X=function(t){v(r,Y);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"order",n({actions:Z},o))}return h(r,[{key:"getDistanceAndTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getDistanceAndTime(this.id,t,e)}},{key:"dispatch",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.dispatch(this.id,t,e)}},{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.start(this.id,t,e)}},{key:"setDestination",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.setDestination(this.id,t,e,n)}},{key:"captureQrCode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureQrCode(this.id,t,e,n)}},{key:"captureSignature",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.store.captureSignature(this.id,t,e,n)}},{key:"getNextActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.getNextActivity(this.id,t,e)}},{key:"updateActivity",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.updateActivity(this.id,t,e)}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.cancel(this.id,t,e)}},{key:"complete",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.complete(this.id,t,e)}},{key:"isDispatched",get:function(){return null!==this.getAttribute("dispatched_at")}},{key:"isNotDispatched",get:function(){return null==this.getAttribute("dispatched_at")}},{key:"isStarted",get:function(){return null!==this.getAttribute("started_at")}},{key:"isNotStarted",get:function(){return null==this.getAttribute("started_at")}},{key:"isCompleted",get:function(){return"completed"==this.getAttribute("status")}},{key:"isCanceled",get:function(){return"canceled"==this.getAttribute("status")}},{key:"isEnroute",get:function(){return"driver_enroute"==this.getAttribute("status")||"enroute"===this.getAttribute("status")}},{key:"isInProgress",get:function(){return this.isStarted&&!this.isCanceled&&!this.isCompleted}},{key:"scheduledAt",get:function(){return this.isAttributeFilled("scheduled_at")?new Date(this.getAttribute("scheduled_at")):null}},{key:"startedAt",get:function(){return this.isAttributeFilled("started_at")?new Date(this.getAttribute("started_at")):null}},{key:"dispatchedAt",get:function(){return this.isAttributeFilled("dispatched_at")?new Date(this.getAttribute("dispatched_at")):null}},{key:"status",get:function(){return this.getAttribute("status")}}]),r}(),tt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"payload",i)}return h(n,[{key:"attach",value:function(t){}},{key:"entities",get:function(){}},{key:"dropoff",get:function(){}},{key:"pickup",get:function(){}},{key:"waypoints",get:function(){return new N(this.waypoints)}}]),n}(),et=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"entity",i)}return h(n)}(),nt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"place",i)}return h(n,[{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"setOwner",value:function(t){return B(t)&&this.setAttribute("owner",t.id),"string"==typeof t&&this.setAttribute("owner",t),this}}],[{key:"fromGoogleAddress",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=w(t.getAttribute("coordinates"),2),o=i[0],a=i[1];return new n({name:null,address:t.getAttribute("address"),location:new K(o,a),street1:t.getAttribute("address"),street2:null,city:t.getAttribute("city"),province:t.getAttribute("stateLong"),postal_code:t.getAttribute("postalCode"),neighborhood:t.get("neighborhood"),district:t.getAttribute("county"),building:t.get("building"),country:t.getAttribute("countryShort"),phone:null,security_access_code:null},e,r)}}]),n}(),rt=function(t){v(n,nt);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"waypoint",i)}return h(n)}(),it=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"tracking-status",i)}return h(n)}(),ot=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vehicle",i)}return h(n)}(),at=new V({current:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.adapter.get("".concat(this.namespace,"/current"),t,e)}}),st=function(t){v(r,Y);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"organization",n({actions:at},o))}return h(r)}(),ut=function(t,e){return O(t)?t.map((function(t){return new st(t,e)})):new st(t,e)},ct=new V({login:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(function(){return/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}(t))return this.adapter.post("drivers/login-with-sms",{phone:t});if(!e)throw new Error("Login requires password!");return this.adapter.post("drivers/login",n({identity:t,password:e},r)).then(this.afterFetch.bind(this))},verifyCode:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/verify-code",n({identity:t,code:e},r)).then(this.afterFetch.bind(this))},track:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/track"),e,n).then(this.afterFetch.bind(this))},listOrganizations:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/organizations"),n,r).then((function(t){return ut(t,e.adapter)}))},switchOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/switch-organization"),n,r).then((function(t){return ut(t,e.adapter)}))},currentOrganization:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.get("drivers/".concat(t,"/current-organization"),n,r).then((function(t){return ut(t,e.adapter)}))},retrieve:function(t){return this.findRecord(t)},syncDevice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.adapter.post("drivers/".concat(t,"/register-device"),e,n)}}),ht=function(t){v(r,Y);var e=m(r);function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,r),e.call(this,t,i,"driver",n({actions:ct},o))}return h(r,[{key:"token",get:function(){return this.getAttribute("token")}},{key:"isOnline",get:function(){return!0===this.getAttribute("online")}},{key:"latitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[1]}},{key:"longitude",get:function(){var t;return null===(t=this.getAttribute("location",new K))||void 0===t?void 0:t.coordinates[0]}},{key:"coordinates",get:function(){return[this.latitude,this.longitude]}},{key:"track",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.track(this.id,t,e)}},{key:"syncDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.syncDevice(this.id,t,e)}},{key:"listOrganizations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.listOrganizations(this.id,t,e)}},{key:"switchOrganization",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.switchOrganization(this.id,{next:t},e)}},{key:"currentOrganization",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.store.currentOrganization(this.id,t,e)}}]),r}(),lt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"vendor",i)}return h(n)}(),vt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"contact",i)}return h(n)}(),ft=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"zone",i)}return h(n)}(),dt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-area",i)}return h(n)}(),gt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-rate",i)}return h(n)}(),pt=function(t){v(n,Y);var e=m(n);function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return u(this,n),e.call(this,t,r,"service-quote",i)}return h(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),yt=h((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,t),this.version=e.version||"v1",this.host=e.host||null,this.namespace=e.namespace||null,this.headers=e.headers||{}})),bt=function(t){v(r,yt);var e=m(r);function r(t){var n;return u(this,r),(n=e.call(this,t)).setHeaders({Authorization:"Bearer ".concat(t.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;browser"}),n}return h(r,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.headers=n(n({},this.headers),t),this}},{key:"parseJSON",value:function(t){return new Promise((function(e,n){return t.json().then((function(n){return e({statusText:t.statusText,status:t.status,ok:t.ok,json:n})})).catch((function(){n(new Error("Oops! Something went wrong when handling your request."))}))}))}},{key:"request",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(a,s){return fetch(o.url||"".concat(e.host,"/").concat(e.namespace,"/").concat(t),n({method:r,mode:o.mode||"cors",headers:new Headers(n(n({},e.headers||{}),o.headers||{}))},i)).then(e.parseJSON).then((function(t){return t.ok?a(t.json):s(new Error(t.json.errors?t.json.errors[0]:t.statusText))})).catch((function(t){s(t)}))}))}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=T(e)?"":new URLSearchParams(e).toString();return this.request("".concat(t).concat(r?"?".concat(r):""),"GET",{},n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"POST",{body:JSON.stringify(e)},n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PUT",{body:JSON.stringify(e)},n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.request(t,"DELETE",{},e)}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request(t,"PATCH",{body:JSON.stringify(e)},n)}}]),r}(),mt=function(e){v(i,yt);var r=m(i);function i(e){var n;return u(this,i),(n=r.call(this,e)).axios=t.create({baseURL:"".concat(n.host,"/").concat(n.namespace),headers:{Authorization:"Bearer ".concat(e.publicKey),"Content-Type":"application/json","User-Agent":"@fleetbase/sdk;node"}}),n}return h(i,[{key:"setHeaders",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.axios.defaults.headers.common;return this.axios.defaults.headers.common=n(n({},e),t),this}},{key:"transform",value:function(t){return t.data}},{key:"handleError",value:function(t){if(t.response){var e=t.response.data;if(O(e.errors))throw new Error(e.errors[0]);if(e.error)throw new Error(e.error)}throw t}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=T(e)?"":new URLSearchParams(e).toString();return this.axios.get("".concat(t).concat(r?"?".concat(r):""),n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.post(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.put(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.axios.delete(t,e).then(this.transform.bind(this)).catch(this.handleError.bind(this))}},{key:"patch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.patch(t,e,n).then(this.transform.bind(this)).catch(this.handleError.bind(this))}}]),i}(),wt=function(t){v(n,yt);var e=m(n);function n(){return u(this,n),e.apply(this,arguments)}return h(n)}(),kt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];u(this,t),l(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),l(this,"pluralRules",[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]),l(this,"singularRules",[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]]),l(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),l(this,"idSuffix",new RegExp("(_ids|_id)$","g")),l(this,"underbar",new RegExp("_","g")),l(this,"spaceOrUnderbar",new RegExp("[ _]","g")),l(this,"uppercase",new RegExp("([A-Z])","g")),l(this,"underbarPrefix",new RegExp("^_")),this.str=e,this.chain=n}return h(t,[{key:"get",value:function(){return this.str}},{key:"applyRules",value:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null;return t=t||this.str,this.applyRules(t,this.pluralRules,this.uncountableWords,e)}},{key:"singularize",value:function(t,e){return t=t||this.str,this.applyRules(t,this.singularRules,this.uncountableWords,e)}},{key:"camelize",value:function(t,e){for(var n=(t=t||this.str).split("/"),r=0;r1&&void 0!==arguments[1]&&arguments[1];return t=t||this.str,t=this.underscore(this.demodulize(t))+(e?"":"_")+"id",this.str=t,!0===this.chain?this:t}},{key:"ordinalize",value:function(t){for(var e=(t=t||this.str).split(" "),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];if(t.actions=O(e)?e:[e],!O(e))return e instanceof V&&e.extend(t),t;var n,r=E(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;t.extendActions(i)}}catch(t){r.e(t)}finally{r.f()}},Pt=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};u(this,t),this.resource=e,this.adapter=n||U(),this.namespace=At(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){return Lt(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}},{key:"deposit",value:function(t){return t}},{key:"serialize",value:function(t){return St("resource",jt(this.resource),t,this.adapter)}},{key:"afterFetch",value:function(t){return function(t,e){if("function"==typeof t.options.onAfterFetch&&t.options.onAfterFetch(e),O(e)){var n,r=[],i=E(e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r.push(t.afterFetch(o))}}catch(t){i.e(t)}finally{i.f()}return p(N,r)}var a=t.serialize(e);return t.deposit(a)}(this,t)}},{key:"create",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.post("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"update",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(){var o=s(r().mark((function o(a,s){var u;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.put("".concat(e.namespace,"/").concat(t),n,i).then(e.afterFetch.bind(e)).catch(s);case 2:u=r.sent,a(u);case 4:case"end":return r.stop()}}),o)})));return function(t,e){return o.apply(this,arguments)}}())}},{key:"findRecord",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.adapter.get("".concat(e.namespace,"/").concat(t),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"findAll",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(){var n=s(r().mark((function n(i,o){var a;return r().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.adapter.get("".concat(t.namespace),{},e).then(t.afterFetch.bind(t)).catch(o);case 2:a=n.sent,i(a);case 4:case"end":return n.stop()}}),n)})));return function(t,e){return n.apply(this,arguments)}}())}},{key:"query",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"queryRecord",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.single=!0,new Promise(function(){var i=s(r().mark((function i(o,a){var s;return r().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.adapter.get("".concat(t.namespace),e,n).then(t.afterFetch.bind(t)).catch(a);case 2:s=r.sent,o(s);case 4:case"end":return r.stop()}}),i)})));return function(t,e){return i.apply(this,arguments)}}())}},{key:"destroy",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=B(t)?t.getAttribute("id"):t;return new Promise(function(){var t=s(r().mark((function t(o,a){var s;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.adapter.delete("".concat(e.namespace,"/").concat(i),{},n).then(e.afterFetch.bind(e)).catch(a);case 2:s=t.sent,o(s);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),zt=function(){function t(e){var n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(this,t),this.version=null!==(n=o.version)&&void 0!==n?n:"v1",this.options={version:this.version,host:null!==(r=o.host)&&void 0!==r?r:"https://api.fleetbase.io",namespace:null!==(i=o.namespace)&&void 0!==i?i:this.version,debug:a,publicKey:e},"string"!=typeof e||0===e.length)throw new Error("⚠️ Invalid public key given to Fleetbase SDK");if(!G()&&e.toLowerCase().startsWith("$"))throw new Error("Secret key provided. You must use a public key with Fleetbase Javascript SDK!");this.adapter=o.adapter||U(this.options),this.orders=new Pt("order",this.adapter).extendActions(Z),this.entities=new Pt("entity",this.adapter),this.places=new Pt("place",this.adapter),this.drivers=new Pt("driver",this.adapter).extendActions(ct),this.vehicles=new Pt("vehicle",this.adapter),this.vendors=new Pt("vendor",this.adapter),this.contacts=new Pt("contact",this.adapter),this.organizations=new Pt("organization",this.adapter).extendActions(at)}return h(t,[{key:"setAdapter",value:function(t){this.adapter=t}},{key:"getAdapter",value:function(){return this.adapter}}],[{key:"newInstance",value:function(){return p(t,Array.prototype.slice.call(arguments))}}]),t}();export{yt as Adapter,bt as BrowserAdapter,N as Collection,vt as Contact,ht as Driver,wt as EmberJsAdapter,et as Entity,W as GoogleAddress,mt as NodeAdapter,X as Order,st as Organization,tt as Payload,nt as Place,K as Point,Y as Resource,dt as ServiceArea,pt as ServiceQuote,gt as ServiceRate,Pt as Store,V as StoreActions,it as TrackingStatus,ot as Vehicle,lt as Vendor,rt as Waypoint,ft as Zone,Et as camelize,jt as classify,Ot as dasherize,zt as default,Lt as extendStoreActions,q as isLatitude,I as isLongitude,G as isNodeEnvironment,B as isResource,St as lookup,At as pluralize,xt as singularize}; //# sourceMappingURL=fleetbase.js.map diff --git a/dist/esm/fleetbase.js.map b/dist/esm/fleetbase.js.map index e4ba756..aa0117a 100644 --- a/dist/esm/fleetbase.js.map +++ b/dist/esm/fleetbase.js.map @@ -1,5 +1 @@ -<<<<<<< HEAD -{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/resources/organization.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js"],"sourcesContent":["const { isArray } = Array;\n\nexport {\n isArray\n};\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (let i = 0; i < sortKeys.length; i++) {\n let key = sortKeys[i];\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n}\n\nexport default isPhone;","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n * \n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative');\n};\n\nexport default isNodeEnvironment;","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n}\n\nexport default detectAdapter;","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return (key in this.components);\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = {...this.attributes, ...attributes};\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n [ longitude, latitude ] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()]\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (let index = 0; index < classes.length; index++) {\n for (const property in classes[index]) {\n if (Object.prototype.hasOwnProperty.call(classes[index], property)) {\n target[property] = classes[index][property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for(let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n \n // this.attributes[property] = value;\n // this.dirtyAttributes[property] = previousValue;\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n \n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties \n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\nimport { isValid as isValidDate } from 'date-fns';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n\tconstructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\t\n /**\n\t * Attaches an entity to an existing payload and returns\n\t * the payload with the entity attached\n\t *\n\t * @param {[type]} Entity entity [description]\n\t * @return {[type]} [description]\n\t */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n\t * Returns all of the entities attached to this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get entities() {\n\n }\n\n /**\n\t * Returns the dropoff for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get dropoff() {\n\n }\n\n /**\n\t * Returns the pickup for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get pickup() {\n\n }\n\n /**\n\t * Returns all the waypoints for this payload\n\t *\n\t * @return {[type]} [description]\n\t */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [ latitude, longitude ] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n * \n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n * \n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [ latitude, longitude ];\n }\n\n /**\n * Set the owner of the place.\n * \n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {\n\n }\n\n fromPayload() {\n \n }\n}\n\nexport default ServiceQuote;\n","import Resource from '../resource';\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', options);\n }\n}\n\nexport default Organization;\n","class Adapter {\n /**\n\t * Creates a configured base adapter for Fleetbase.\n\t *\n\t * @param {Object} config Configuration options for adapter\n\t */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser'\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) => response\n .json()\n .then((json) => resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n }))\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n }));\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n }));\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n * \n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function() {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function() {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function() {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function() {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function() {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function() {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function() {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function() {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function() {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function() {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function() {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function() {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport {\n pluralize,\n singularize,\n humanize,\n underscore,\n camelize,\n capitalize,\n dasherize,\n normify,\n demodulize,\n tableize,\n classify,\n foreignKey\n}","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { pluralize, classify } from './utils/string';\nimport { isArray } from './utils/array';\nimport { Collection, detectAdapter, isResource, StoreActions } from './utils';\nimport { set, isCallable, invoke } from './utils/object';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (let i = 0; i < json.length; i++) {\n serialized.push(store.afterFetch(json[i]));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { extendStoreActions, afterFetch };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n"],"names":["isArray","Array","replace","array","start","deleteCount","items","length","splice","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","arguments","Boolean","findIndex","predicate","startAt","len","find","callback","target","bind","undefined","any","every","cb","indexOf","val","withNaNCheck","insertAt","this","indexes","map","idx","_this2","object","methodName","args","ret","forEach","push","_item$methodName","filter","sortKeys","sort","a","b","propA","propB","compareValue","compare","seen","Set","getter","get","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","isBlank","test","isLatitude","coordinate","isFinite","Math","abs","isLongitude","isResource","record","Resource","isPhone","phone","isNodeEnvironment","process","_typeof","_process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","address_components","reduce","acc","data","types","type","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","keys","pkey","short","short_name","long_name","Point","latitude","longitude","coorindates","lat","lng","serialize","json","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","bindTo","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","store","Store","onAfterFetch","syncAttributes","_this$options","getAttribute","mergeAttributes","setFlags","create","then","response","_this","update","id","destroy","findRecord","_this4","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","property","_this5","call","setAttributes","previousValue","changedAt","setAttribute","attribute","defaultValue","properties","attributeKeys","prop","hasAttribute","_this6","_value","_value2","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","street1","street2","province","postal_code","neighborhood","district","building","security_access_code","Waypoint","TrackingStatus","Vehicle","driverActions","login","identity","password","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Organization","Adapter","config","host","headers","BrowserAdapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","dasherize","classify","resources","adapters","Resolver","className","extendStoreActions","extend","extendActions","storage","resourceInstance","serialized","deposit","single","_this7","Fleetbase","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts"],"mappings":"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"} -======= -{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/organization.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js"],"sourcesContent":["const { isArray } = Array;\n\nexport { isArray };\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (const element of sortKeys) {\n let key = element;\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n *\n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (\n typeof process !== 'undefined' &&\n (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) &&\n (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative')\n );\n};\n\nexport default isNodeEnvironment;\n","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n};\n\nexport default detectAdapter;\n","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (const element of keys) {\n const key = element;\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return key in this.components;\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = { ...this.attributes, ...attributes };\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n const [longitude, latitude] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()],\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}\n","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (const element of classes) {\n for (const property in element) {\n if (Object.prototype.hasOwnProperty.call(element, property)) {\n target[property] = element[property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for (let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n\n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (const element of properties) {\n const property = element;\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\n /**\n * Attaches an entity to an existing payload and returns\n * the payload with the entity attached\n *\n * @param {[type]} Entity entity [description]\n * @return {[type]} [description]\n */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n * Returns all of the entities attached to this payload\n *\n * @return {[type]} [description]\n */\n get entities() {}\n\n /**\n * Returns the dropoff for this payload\n *\n * @return {[type]} [description]\n */\n get dropoff() {}\n\n /**\n * Returns the pickup for this payload\n *\n * @return {[type]} [description]\n */\n get pickup() {}\n\n /**\n * Returns all the waypoints for this payload\n *\n * @return {[type]} [description]\n */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [latitude, longitude] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('streetName'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null,\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n /**\n * Set the owner of the place.\n *\n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`, params, options);\n },\n});\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', { actions: organizationActions, ...options });\n }\n}\n\nexport default Organization;\nexport { organizationActions };\n","import Resource from '../resource';\nimport Organization from './organization';\nimport { StoreActions, isPhone, Collection } from '../utils';\nimport { isArray } from '../utils/array';\n\nconst serializeOrganizations = (response, adapter) => {\n if (isArray(response)) {\n return response.map((organizationJson) => {\n return new Organization(organizationJson, adapter);\n });\n }\n\n return new Organization(response, adapter);\n};\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n listOrganizations: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/organizations`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n switchOrganization: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/switch-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n currentOrganization: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/current-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n\n listOrganizations(params = {}, options = {}) {\n return this.store.listOrganizations(this.id, params, options);\n }\n\n switchOrganization(organizationId, options = {}) {\n return this.store.switchOrganization(this.id, { next: organizationId }, options);\n }\n\n currentOrganization(params = {}, options = {}) {\n return this.store.currentOrganization(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {}\n\n fromPayload() {}\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n * Creates a configured base adapter for Fleetbase.\n *\n * @param {Object} config Configuration options for adapter\n */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser',\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) =>\n response\n .json()\n .then((json) =>\n resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n })\n )\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n })\n );\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) =>\n fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n })\n );\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n *\n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function () {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function () {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function () {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function () {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function () {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function () {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function () {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function () {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function () {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function () {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function () {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function () {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport { pluralize, singularize, humanize, underscore, camelize, capitalize, dasherize, normify, demodulize, tableize, classify, foreignKey };\n","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\n","import { lookup } from './resolver';\nimport { Collection, StoreActions, detectAdapter, isResource } from './utils';\nimport { isArray } from './utils/array';\nimport { classify, pluralize } from './utils/string';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (const element of actions) {\n const action = element;\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (const element of json) {\n serialized.push(store.afterFetch(element));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { afterFetch, extendStoreActions };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\nimport { organizationActions } from './resources/organization';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n this.organizations = new Store('organization', this.adapter).extendActions(organizationActions);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n};\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","arguments","length","undefined","splice","apply","concat","_toConsumableArray","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","Boolean","findIndex","predicate","startAt","len","indexOf","val","withNaNCheck","insertAt","_Array","_inherits","_wrapNativeSuper","_super","_createSuper","_len","_key","_classCallCheck","_possibleConstructorReturn","call","_createClass","get","this","indexes","_this2","map","idx","object","callback","bind","target","cb","methodName","_len2","args","_key2","ret","forEach","_item$methodName","push","filter","sortKeys","sort","a","b","_step","_iterator","_createForOfIteratorHelper","s","n","done","propA","propB","compareValue","compare","err","e","f","seen","Set","getter","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","_typeof","isBlank","test","isLatitude","coordinate","isFinite","Math","abs","isLongitude","isResource","record","Resource","isNodeEnvironment","_process","_process$release","_window","process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","_this$place","address_components","reduce","acc","data","types","type","_this$geometry","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","pkey","short","short_name","long_name","_objectSpread","Point","latitude","longitude","coorindates","lat","lng","serialize","json","_json$coordinates","_slicedToArray","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","_this$options","store","Store","onAfterFetch","syncAttributes","getAttribute","_this","mergeAttributes","setFlags","create","then","response","update","id","destroy","_this4","findRecord","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","keys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","_this$attributes","_this5","property","_this$dirtyAttributes","_this$attributes$prop","setAttributes","previousValue","changedAt","setAttribute","attribute","_this$attributes2","defaultValue","_this$attributes3","properties","attributeKeys","every","prop","hasAttribute","_this6","prototype","_value","_value2","_this$attributes4","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","_Resource","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","_googleAddress$getAtt2","street1","street2","province","postal_code","neighborhood","district","building","phone","security_access_code","Waypoint","_Place","TrackingStatus","Vehicle","organizationActions","Organization","serializeOrganizations","organizationJson","driverActions","login","identity","password","isPhone","verifyCode","code","track","listOrganizations","switchOrganization","currentOrganization","retrieve","syncDevice","Driver","organizationId","next","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","_Adapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","_defineProperty","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","dasherize","classify","resources","adapters","Resolver","className","_construct","extendStoreActions","extend","extendActions","storage","resourceInstance","_step2","serialized","_iterator2","element","deposit","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","sent","stop","_x","_x2","_ref2","_callee2","_context2","_x3","_x4","_ref3","_callee3","_context3","_x5","_x6","_ref4","_callee4","_context4","_x7","_x8","_ref5","_callee5","_context5","_x9","_x10","single","_ref6","_callee6","_context6","_x11","_x12","_this7","_ref7","_callee7","_context7","_x13","_x14","Fleetbase","_config$version","_config$host","_config$namespace","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","organizations"],"mappings":"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"} ->>>>>>> 956839d5964850b969941f04a0f703ea857e885b +{"version":3,"file":"fleetbase.js","sources":["../../src/utils/array.js","../../src/utils/collection.js","../../src/utils/is-empty.js","../../src/utils/is-blank.js","../../src/utils/is-latitude.js","../../src/utils/is-longitude.js","../../src/utils/is-resource.js","../../src/utils/is-phone.js","../../src/utils/is-node-environment.js","../../src/utils/detect-adapter.js","../../src/utils/google-address.js","../../src/utils/point.js","../../src/utils/object.js","../../src/utils/store-actions.js","../../src/resource.js","../../src/resources/order.js","../../src/resources/payload.js","../../src/resources/entity.js","../../src/resources/place.js","../../src/resources/waypoint.js","../../src/resources/tracking-status.js","../../src/resources/vehicle.js","../../src/resources/organization.js","../../src/resources/driver.js","../../src/resources/vendor.js","../../src/resources/contact.js","../../src/resources/zone.js","../../src/resources/service-area.js","../../src/resources/service-rate.js","../../src/resources/service-quote.js","../../src/adapter.js","../../src/adapters/browser.js","../../src/adapters/node.js","../../src/adapters/ember.js","../../src/utils/string.js","../../src/resolver.js","../../src/store.js","../../src/fleetbase.js"],"sourcesContent":["const { isArray } = Array;\n\nexport { isArray };\n","import { isArray } from './array';\n\n/**\n * Collection\n * Extended array inspired by Ember's NativeArray\n **/\n\nconst CHUNK_SIZE = 60000;\n\n// To avoid overflowing the stack, we splice up to CHUNK_SIZE items at a time.\n// See https://code.google.com/p/chromium/issues/detail?id=56588 for more details.\nconst replace = (array, start, deleteCount, items = []) => {\n if (isArray(array)) {\n if (items.length <= CHUNK_SIZE) {\n array.splice(start, deleteCount, ...items);\n } else {\n array.splice(start, deleteCount);\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n let chunk = items.slice(i, i + CHUNK_SIZE);\n array.splice(start + i, 0, ...chunk);\n }\n }\n } else if (isCollection(arr)) {\n array.replace(start, deleteCount, items);\n }\n};\n\nconst identityFunction = (item) => item;\n\nconst uniqBy = (array, key = identityFunction) => {\n let ret = [];\n let seen = new Set();\n let getter = typeof key === 'function' ? key : (item) => get(item, key);\n\n array.forEach((item) => {\n let val = getter(item);\n if (!seen.has(val)) {\n seen.add(val);\n ret.push(item);\n }\n });\n\n return ret;\n};\n\nconst isCollection = (mixed) => mixed instanceof Collection;\n\nconst objectAt = (array, index) => {\n if (isArray(array)) {\n return array[index];\n } else if (isCollection(array)) {\n return array.objectAt(index);\n }\n\n return null;\n};\n\nconst iter = (key, value) => {\n let valueProvided = arguments.length === 2;\n return valueProvided ? (item) => value === item[key] : (item) => Boolean(item[key]);\n};\n\nconst findIndex = (array, predicate, startAt = 0) => {\n let len = array.length;\n for (let index = startAt; index < len; index++) {\n let item = objectAt(array, index);\n if (predicate(item, index, array)) {\n return index;\n }\n }\n return -1;\n};\n\nconst find = (array, callback, target) => {\n let predicate = callback.bind(target);\n let index = findIndex(array, predicate, 0);\n return index === -1 ? undefined : objectAt(array, index);\n};\n\nconst any = (array, callback, target) => {\n let predicate = callback.bind(target);\n return findIndex(array, predicate, 0) !== -1;\n};\n\nconst every = (array, callback, target) => {\n let cb = callback.bind(target);\n let predicate = (item, index, array) => !cb(item, index, array);\n return findIndex(array, predicate, 0) === -1;\n};\n\nconst indexOf = (array, val, startAt = 0, withNaNCheck) => {\n let len = array.length;\n\n if (startAt < 0) {\n startAt += len;\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = withNaNCheck && val !== val ? (item) => item !== item : (item) => item === val;\n return findIndex(array, predicate, startAt);\n};\n\nconst removeAt = (array, index, len = 1) => {\n replace(array, index, len, []);\n return array;\n};\n\nconst insertAt = (array, index, item) => {\n replace(array, index, 0, [item]);\n return item;\n};\n\nclass Collection extends Array {\n constructor(...items) {\n if (isArray(arguments[0])) {\n super(...arguments[0]);\n } else {\n super(...arguments);\n }\n }\n\n get notEmpty() {\n return this.length > 0;\n }\n\n get empty() {\n return this.length === 0;\n }\n\n get first() {\n return objectAt(this, 0);\n }\n\n get last() {\n return objectAt(this, this.length - 1);\n }\n\n replace(start, deleteCount, items = []) {\n replace(this, start, deleteCount, items);\n\n return this;\n }\n\n objectsAt(indexes) {\n return indexes.map((idx) => objectAt(this, idx));\n }\n\n objectAt(index) {\n return objectAt(this, index);\n }\n\n indexOf(object, startAt) {\n return indexOf(this, object, startAt, false);\n }\n\n lastIndexOf(object, startAt) {\n let len = this.length;\n\n if (startAt === undefined || startAt >= len) {\n startAt = len - 1;\n }\n\n if (startAt < 0) {\n startAt += len;\n }\n\n for (let idx = startAt; idx >= 0; idx--) {\n if (objectAt(this, idx) === object) {\n return idx;\n }\n }\n\n return -1;\n }\n\n includes(object, startAt) {\n return indexOf(this, object, startAt, true) !== -1;\n }\n\n findBy() {\n return find(this, iter(...arguments));\n }\n\n findIndexBy() {\n return findIndex(this, iter(...arguments));\n }\n\n isEvery() {\n return every(this, iter(...arguments));\n }\n\n isAny() {\n return any(this, iter(...arguments));\n }\n\n invoke(methodName, ...args) {\n let ret = [];\n\n this.forEach((item) => ret.push(item[methodName]?.(...args)));\n\n return ret;\n }\n\n toArray() {\n return this.map((item) => item);\n }\n\n compact() {\n return this.filter((value) => value != null);\n }\n\n sortBy() {\n let sortKeys = arguments;\n\n return this.sort((a, b) => {\n for (const element of sortKeys) {\n let key = element;\n let propA = a[key];\n let propB = b[key];\n // return 1 or -1 else continue to the next sortKey\n let compareValue = compare(propA, propB);\n\n if (compareValue) {\n return compareValue;\n }\n }\n return 0;\n });\n }\n\n uniqBy(key) {\n return uniqBy(this, key);\n }\n\n without(value) {\n if (!this.includes(value)) {\n return this; // nothing to do\n }\n\n // SameValueZero comparison (NaN !== NaN)\n let predicate = value === value ? (item) => item !== value : (item) => item === item;\n return this.filter(predicate);\n }\n\n clear() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n this.replace(0, len, []);\n return this;\n }\n\n insertAt(idx, object) {\n insertAt(this, idx, object);\n return this;\n }\n\n replaceAt(idx, object) {\n return this.replace(idx, 1, [object]);\n }\n\n removeAt(start, len) {\n return removeAt(this, start, len);\n }\n\n pushObject(obj) {\n return this.insertAt(this.length, obj);\n }\n\n pushObjects(objects) {\n this.replace(this.length, 0, objects);\n return this;\n }\n\n popObject() {\n let len = this.length;\n if (len === 0) {\n return null;\n }\n\n let ret = objectAt(this, len - 1);\n this.removeAt(len - 1, 1);\n return ret;\n }\n\n shiftObject() {\n if (this.length === 0) {\n return null;\n }\n\n let ret = objectAt(this, 0);\n this.removeAt(0);\n return ret;\n }\n\n unshiftObject(obj) {\n return insertAt(this, 0, obj);\n }\n\n unshiftObjects(objects) {\n this.replace(0, 0, objects);\n return this;\n }\n\n reverseObjects() {\n let len = this.length;\n if (len === 0) {\n return this;\n }\n\n let objects = this.toArray().reverse();\n this.replace(0, len, objects);\n return this;\n }\n\n setObjects(objects) {\n if (objects.length === 0) {\n return this.clear();\n }\n\n let len = this.length;\n this.replace(0, len, objects);\n return this;\n }\n\n removeObject(obj) {\n let loc = this.length || 0;\n while (--loc >= 0) {\n let curObject = objectAt(this, loc);\n\n if (curObject === obj) {\n this.removeAt(loc);\n }\n }\n return this;\n }\n\n removeObjects(objects) {\n for (let i = objects.length - 1; i >= 0; i--) {\n this.removeObject(objects[i]);\n }\n\n return this;\n }\n\n addObject(obj) {\n let included = this.includes(obj);\n\n if (!included) {\n this.pushObject(obj);\n }\n\n return this;\n }\n\n addObjects(objects) {\n objects.forEach((obj) => this.addObject(obj));\n return this;\n }\n}\n\nexport default Collection;\n\nexport { replace, uniqBy, isCollection, objectAt, iter, findIndex, find, any, every, indexOf, removeAt, insertAt };\n","const isEmpty = (obj) => {\n const none = obj === null || obj === undefined;\n if (none) {\n return none;\n }\n\n if (typeof obj.size === 'number') {\n return !obj.size;\n }\n\n const objectType = typeof obj;\n\n if (objectType === 'object') {\n const { size } = obj;\n if (typeof size === 'number') {\n return !size;\n }\n }\n\n if (typeof obj.length === 'number' && objectType !== 'function') {\n return !obj.length;\n }\n\n if (objectType === 'object') {\n const { length } = obj;\n if (typeof length === 'number') {\n return !length;\n }\n }\n\n return false;\n};\n\nexport default isEmpty;\n","import isEmpty from './is-empty';\n\nconst isBlank = (obj) => isEmpty(obj) || (typeof obj === 'string' && /\\S/.test(obj) === false);\n\nexport default isBlank;\n","export default function isLatitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 90;\n}\n","export default function isLongitude(coordinate) {\n return isFinite(coordinate) && Math.abs(coordinate) <= 180 && Math.abs(coordinate) >= 90;\n}\n","import Resource from '../resource';\n\nexport default function isResource(record) {\n return record instanceof Resource;\n}\n","const isPhone = (phone = '') => {\n return /^[+]?[\\s./0-9]*[(]?[0-9]{1,4}[)]?[-\\s./0-9]*$/g.test(phone);\n};\n\nexport default isPhone;\n","/**\n * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative.\n *\n * @returns boolean\n */\nconst isNodeEnvironment = () => {\n return (\n typeof process !== 'undefined' &&\n (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) &&\n (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative')\n );\n};\n\nexport default isNodeEnvironment;\n","import { lookup } from '../resolver';\nimport isNodeEnvironment from './is-node-environment';\n\nconst detectAdapter = (options = {}) => {\n if (isNodeEnvironment()) {\n return lookup('adapter', 'NodeAdapter', options);\n }\n\n return lookup('adapter', 'BrowserAdapter', options);\n};\n\nexport default detectAdapter;\n","const { isArray } = Array;\n\nclass GoogleAddress {\n constructor(place) {\n this.place = place;\n this.geometry = place?.geometry;\n this.components = this.parseComponents();\n this.attributes = this.parseProperties();\n }\n\n parse() {\n this.parseComponents();\n this.parseProperties();\n }\n\n parseComponents() {\n const components = (this.place?.address_components || []).reduce(function (acc, data) {\n data.types.forEach(function (type) {\n acc[type] = data;\n });\n return acc;\n }, {});\n\n return components;\n }\n\n parseProperties() {\n const attributes = {\n streetNumber: this.get('street_number'),\n streetName: this.get('route'),\n coordinates: this.geometry?.location ? Object.values(this.geometry.location) : [0, 0],\n city: this.or(['locality', 'sublocality', 'sublocality_level_1', 'neighborhood', 'administrative_area_level_3', 'administrative_area_level_2']),\n county: this.get('administrative_area_level_2'),\n stateShort: this.get('administrative_area_level_1', true),\n stateLong: this.get('administrative_area_level_1'),\n countryShort: this.get('country', true),\n country: this.get('country', true),\n countryLong: this.get('country'),\n postalCode: this.get('postal_code'),\n };\n\n attributes.address = [attributes.streetNumber, attributes.streetName].filter(Boolean).join(' ');\n\n return attributes;\n }\n\n all() {\n return this.attributes;\n }\n\n or(keys = []) {\n for (const element of keys) {\n const key = element;\n\n if (isArray(key)) {\n const pkey = key[0];\n const short = key[1];\n\n if (this.has(pkey)) {\n return this.get(pkey, short);\n }\n\n continue;\n }\n\n if (this.has(key)) {\n return this.get(key);\n }\n }\n\n return null;\n }\n\n has(key) {\n return key in this.components;\n }\n\n get(key, short = false) {\n if (!(key in this.components)) {\n return null;\n }\n\n return short ? this.components[key].short_name : this.components[key].long_name;\n }\n\n setAttributes(attributes = {}) {\n this.attributes = { ...this.attributes, ...attributes };\n\n return this;\n }\n\n setAttribute(key, value) {\n this.attributes[key] = value;\n\n return this;\n }\n\n getAttribute(key) {\n return this.attributes[key] || null;\n }\n}\n\nexport default GoogleAddress;\n","export default class Point {\n constructor(latitude = 0, longitude = 0) {\n this.type = 'Point';\n this.coordinates = [longitude, latitude];\n }\n\n get latitude() {\n return this.coordinates[1];\n }\n\n get longitude() {\n return this.coordinates[0];\n }\n\n lat() {\n return this.latitude;\n }\n\n lng() {\n return this.longitude;\n }\n\n static fromGeoJson(json) {\n const [longitude, latitude] = json.coordinates;\n\n return new Point(latitude, longitude);\n }\n\n serialize() {\n return {\n type: 'Point',\n coorindates: [this.lat(), this.lng()],\n };\n }\n\n toJson() {\n return this.serialize();\n }\n\n toString() {\n return `(${this.latitude}, ${this.longitude})`;\n }\n}\n","import isEmpty from './is-empty';\n\nconst isResource = (mixed) => typeof mixed === 'object' && !isEmpty(mixed?.attributes) && typeof mixed?.attributes === 'object';\n\nconst isCallable = (object, property) => typeof object[property] === 'function';\n\nconst getResolved = (func, path) => {\n const resolved = func();\n return Array.isArray(resolved) || typeof resolved === 'object' ? get(resolved, path) : null;\n};\n\nconst invoke = (object, method) => {\n if (typeof object[method] === 'function') {\n return object[method].bind(object);\n }\n};\n\nconst get = (object, path) => {\n let current = object;\n\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n\n if (isArray || isObject) {\n for (let i = 0; i < pathArray.length; i++) {\n if (current && current[pathArray[i]] === undefined) {\n return null;\n } else if (current) {\n current = current[pathArray[i]];\n\n // if is resource then return get on it's attributes\n if (isResource(current) && pathArray[i + 1] !== undefined) {\n const newPath = pathArray.slice(i + 1).join('.');\n\n return get(current.attributes, newPath);\n }\n\n // resolve functions and continue\n if (typeof current === 'function') {\n const newPath = pathArray.slice(i + 1).join('.');\n return getResolved(current, newPath);\n }\n }\n }\n return current;\n }\n\n if (isFunction) {\n return getResolved(object, path);\n }\n};\n\nconst getProperties = (object, properties = []) => {\n const selected = {};\n let propertyNames = arguments;\n let i = 1;\n\n if (arguments.length === 2 && Array.isArray(properties)) {\n i = 0;\n propertyNames = arguments[1];\n }\n\n for (; i < propertyNames.length; i++) {\n selected[propertyNames[i]] = get(object, propertyNames[i]);\n }\n\n return selected;\n};\n\nconst set = (object, path, value) => {\n let current = object;\n const type = typeof object;\n const isObject = type === 'object';\n const isFunction = type === 'function';\n const isArray = Array.isArray(object);\n\n // if is function\n if (isFunction) {\n // throw error should be object or array or object like\n }\n\n const pathType = typeof path;\n const pathIsString = pathType === 'string';\n const pathIsDotted = pathIsString && path.includes('.');\n const pathArray = pathIsDotted ? path.split('.') : [path];\n const iterations = pathArray.length;\n\n if (isArray || isObject) {\n for (let i = 0; i < iterations - 1; i++) {\n if (!current[pathArray[i]]) {\n current[pathArray[i]] = {};\n }\n current = current[pathArray[i]];\n }\n\n current[pathArray[iterations - 1]] = value;\n }\n\n return value;\n};\n\nconst setProperties = (object, properties = {}) => {\n for (const property in properties) {\n set(object, property, properties[property]);\n }\n\n return object;\n};\n\nconst extend = (target, classes = []) => {\n if (arguments.length > 1) {\n classes = arguments;\n }\n for (const element of classes) {\n for (const property in element) {\n if (Object.prototype.hasOwnProperty.call(element, property)) {\n target[property] = element[property];\n }\n }\n }\n return target;\n};\n\nexport { set, get, getProperties, setProperties, extend, isCallable, invoke };\n","import { set } from './object';\n\nexport default class StoreActions {\n constructor(actions = {}, bind = null) {\n this.actions = actions;\n this.bind = bind;\n }\n\n extend(bindTo = null) {\n const binding = bindTo || this.bind;\n\n if (!binding) {\n return this;\n }\n\n if (this?.actions && typeof this.actions === 'object') {\n for (let action in this.actions) {\n const fn = this.actions[action];\n\n if (typeof fn !== 'function') {\n set(binding, action, fn);\n continue;\n }\n\n set(binding, action, fn.bind(binding));\n }\n }\n\n return this;\n }\n}\n","import Store from './store';\nimport { isEmpty } from './utils';\nimport { isArray } from './utils/array';\nimport { set, get } from './utils/object';\n\nclass Resource {\n /**\n\t * The base resource for all resources\n\n\t * @return {[type]} [description]\n\t */\n constructor(attributes = {}, adapter, resource, options = {}) {\n this.attributes = attributes;\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isDestroying = false;\n this.isReloading = false;\n this.resource = resource;\n this.options = options;\n this.version = options.version || 'v1';\n this.setAdapter(adapter);\n }\n\n /**\n * Set a new adapter to the resource instance, this will update the Store instance\n *\n * @param {Adapter} adapter\n * @return {Resource} this\n */\n setAdapter(adapter) {\n this.adapter = adapter;\n this.store = new Store(this.resource, adapter, {\n onAfterFetch: this.syncAttributes.bind(this),\n actions: this.options?.actions,\n });\n\n return this;\n }\n\n /**\n * Getter for id attribute\n *\n * @var {String}\n */\n get id() {\n return this.getAttribute('id');\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n create(attributes = {}) {\n const data = this.mergeAttributes(attributes);\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.create(data).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Creates a new resource on the server\n *\n * @param {Object} payload [description]\n * @return {[type]} [description]\n */\n update(attributes = {}) {\n this.setFlags(['isLoading', 'isSaving']);\n\n return this.store.update(this.attributes.id, attributes).then((response) => {\n this.setFlags(['isLoading', 'isSaving'], false);\n\n return response;\n });\n }\n\n /**\n * Deletes the resource instance on the server\n *\n * @return {[type]} [description]\n */\n destroy() {\n this.setFlags(['isLoading', 'isDestroying']);\n\n return this.store.destroy(this.attributes.id).then((response) => {\n this.setFlags(['isLoading', 'isDestroying'], false);\n\n return response;\n });\n }\n\n /**\n * Reloads the resource from the server.\n *\n * @return {[type]} [description]\n */\n reload() {\n this.setFlags(['isLoading', 'isReloading']);\n\n return this.store.findRecord(this.attributes.id).then((response) => {\n this.reset();\n\n return response;\n });\n }\n\n /**\n * Sets flag properties.\n *\n * @return this\n */\n setFlags(flags = [], state = true) {\n const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying'];\n\n for (let i = 0; i < flags.length; i++) {\n const flag = flags[i];\n\n if (typeof flag !== 'string' || !validFlags.includes(flag)) {\n throw new Error(`${flag} is not a valid flag!`);\n }\n\n this[flag] = state;\n }\n\n return this;\n }\n\n /**\n * Resets tracked properties\n *\n * @return this\n */\n reset() {\n this.dirtyAttributes = {};\n this.changes = {};\n this.isLoading = false;\n this.isSaving = false;\n this.isReloading = false;\n\n return this;\n }\n\n /**\n * Emptys resource.\n *\n * @return this\n */\n empty() {\n this.reset();\n this.attribues = {};\n\n return this;\n }\n\n /**\n * Saves the resource instance on the server\n *\n * @return {[type]} [description]\n */\n save(options = {}) {\n const attributes = this.getAttributes();\n\n if (isEmpty(this.id)) {\n return this.create(attributes);\n }\n\n if (options.onlyDirty === true) {\n return this.savedirty();\n }\n\n return this.update(attributes);\n }\n\n /**\n * Saves only dirtied attributes.\n *\n * @return {[type]} [description]\n */\n saveDirty() {\n const dirtyAttributeKeys = Object.keys(this.dirtyAttributes);\n const dirtyAttributes = {};\n\n for (let i = 0; i < dirtyAttributeKeys.length; i++) {\n const key = dirtyAttributeKeys[i];\n dirtyAttributes[key] = this.getAttribute(key);\n }\n\n return this.update(dirtyAttributes);\n }\n\n /**\n * Returns the resource meta if exists.\n *\n * @return {Object}\n */\n get meta() {\n return this.getAttribute('meta', {});\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get createdAt() {\n return this.isAttributeFilled('created_at') ? new Date(this.getAttribute('created_at')) : null;\n }\n\n /**\n * Returns the date instance resource was created.\n *\n * @return {Date}\n */\n get updatedAt() {\n return this.isAttributeFilled('updated_at') ? new Date(this.getAttribute('updated_at')) : null;\n }\n\n /**\n * Checks if resource is loaded from the server.\n *\n * @return {Boolean}\n */\n get isLoaded() {\n return this.hasAttributes(['created_at', 'id']);\n }\n\n /**\n * Checks if resource ihas no attributes\n *\n * @return {Boolean}\n */\n get isEmpty() {\n return Object.values(this?.attributes).length === 0;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isNew() {\n return !this.id;\n }\n\n /**\n * Checks if resource is not saved to server.\n *\n * @return {Boolean}\n */\n get isSaved() {\n return !this.isNew && this.isLoaded;\n }\n\n /**\n * Checks if resource is deleted on server.\n *\n * @return {Boolean}\n */\n get isDeleted() {\n return this.hasAttributes(['deleted', 'time']);\n }\n\n /**\n * Iterates over each attribute value and property executing a user supplied callback.\n *\n * @return {Object}\n */\n eachAttribute(callback) {\n if (typeof callback !== 'function') {\n return this;\n }\n\n Object.keys(this?.attributes ?? {}).forEach((property) => {\n const value = this.getAttribute(property);\n callback.call(this, value, property);\n });\n\n return this;\n }\n\n /**\n * Gets all changes\n *\n * @return {Object}\n */\n changes() {\n return this.changes;\n }\n\n /**\n * Gets all dirty attributes.\n *\n * @return {Object}\n */\n getDirtyAttributes() {\n return this.dirtyAttributes;\n }\n\n /**\n * Checks if property is dirty.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n isDirty(property) {\n return property in this.dirtyAttributes;\n }\n\n /**\n * Checks if any properties is dirty.\n *\n * @return {Boolean}\n */\n hasDirtyAttributes() {\n return Object.keys(this?.dirtyAttributes ?? {}).length > 0;\n }\n\n /**\n * Updates a instance property without tracking changes or dirtying attribute.\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n mutate(property, value) {\n this.attributes[property] = value;\n }\n\n /**\n * Set an instance property locally\n *\n * @param {String} property [description]\n * @param {mixed} value [description]\n */\n setAttribute(property, value = null) {\n if (value === null && typeof property === 'object') {\n return this.setAttributes(property);\n }\n\n const previousValue = this?.attributes[property] ?? null;\n\n // use object setter\n set(this.attributes, property, value);\n set(this.dirtyAttributes, property, previousValue);\n\n // track changes\n if (!isArray(this?.changes[property])) {\n this.changes[property] = [];\n }\n\n this.changes[property].push({\n property,\n previousValue,\n value,\n changedAt: new Date(),\n });\n\n return this;\n }\n\n /**\n * Set multiple instance properties locally\n *\n * @param {Object} properties [description]\n */\n setAttributes(attributes = {}) {\n for (let property in attributes) {\n this.setAttribute(property, attributes[property]);\n }\n\n return this;\n }\n\n /**\n * Get an attribute\n *\n * @param {String} attribute The attribute key to get\n * @param {mixed} defaultValue The default value if no attribute value\n */\n getAttribute(attribute, defaultValue = null) {\n const value = get(this?.attributes ?? {}, attribute);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return value;\n }\n\n /**\n * Checks if attribute exists.\n *\n * @param {String} property [description]\n * @return {Boolean}\n */\n hasAttribute(property) {\n if (isArray(property)) {\n const properties = property;\n const attributeKeys = Object.keys(this.attributes ?? {});\n\n return properties.every((prop) => attributeKeys.includes(prop));\n }\n\n if (!this?.attributes) {\n return false;\n }\n\n return property in this.attributes;\n }\n\n /**\n * Alias for checking if has multiple attributes.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n hasAttributes(properties = []) {\n return this.hasAttribute(properties);\n }\n\n /**\n * Returns true if attribute has value.\n *\n * @param {Array} properties\n * @return {Boolean}\n */\n isAttributeFilled(property) {\n if (isArray(property)) {\n return this.hasAttribute(property) && property.every((prop) => !isEmpty(this.getAttribute(prop)));\n }\n\n return this.hasAttribute(property) && !isEmpty(this.getAttribute(property));\n }\n\n /**\n * Get multiple attributes.\n *\n * @param {Array} properties [description]\n * @param {[type]} value [description]\n */\n getAttributes(properties) {\n const attributes = {};\n\n if (properties === null || properties === undefined) {\n return this.getAttributes(Object.keys(this.attributes));\n }\n\n if (typeof properties === 'string') {\n return this.getAttribute([...arguments]);\n }\n\n if (!isArray(properties)) {\n throw new Error('No attribute properties provided!');\n }\n\n for (const element of properties) {\n const property = element;\n\n if (typeof property !== 'string') {\n continue;\n }\n\n let value = this.getAttribute(property);\n\n if (typeof value?.attributes === 'object' && !isArray(value?.attributes)) {\n value = value.attributes;\n }\n\n attributes[property] = value;\n }\n\n return attributes;\n }\n\n /**\n * Serialize resource to a POJO\n *\n * @returns {Object}\n */\n serialize() {\n return this.getAttributes();\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n mergeAttributes(attributes = {}) {\n const modelAttributes = this?.attributes ?? {};\n this.attributes = { ...modelAttributes, ...attributes };\n\n return this.attributes;\n }\n\n /**\n * Merge and return attributes on the resource instance.\n *\n * @param {[type]} property [description]\n * @param {[type]} value [description]\n */\n syncAttributes(json = {}) {\n this.attributes = json;\n }\n}\n\nexport default Resource;\n","import Resource from '../resource';\nimport { StoreActions, isResource } from '../utils';\n\nconst orderActions = new StoreActions({\n getDistanceAndTime: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/distance-and-time`, params, options);\n },\n\n getNextActivity: function (id, params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/${id}/next-activity`, params, options);\n },\n\n dispatch: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/dispatch`, params, options).then(this.afterFetch.bind(this));\n },\n\n start: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/start`, params, options).then(this.afterFetch.bind(this));\n },\n\n updateActivity: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/update-activity`, params, options).then(this.afterFetch.bind(this));\n },\n\n setDestination: function (id, destinationId, params = {}, options = {}) {\n if (isResource(destinationId)) {\n destinationId = destinationId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/set-destination/${destinationId}`, params, options).then(this.afterFetch.bind(this));\n },\n\n captureQrCode: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-qr${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n captureSignature: function (id, subjectId = null, params = {}, options = {}) {\n if (isResource(subjectId)) {\n subjectId = subjectId.id;\n }\n\n return this.adapter.post(`${this.namespace}/${id}/capture-signature${!subjectId ? '' : '/' + subjectId}`, params, options);\n },\n\n complete: function (id, params = {}, options = {}) {\n return this.adapter.post(`${this.namespace}/${id}/complete`, params, options).then(this.afterFetch.bind(this));\n },\n\n cancel: function (id, params = {}, options = {}) {\n return this.adapter.delete(`${this.namespace}/${id}/cancel`, params, options).then(this.afterFetch.bind(this));\n },\n});\n\nclass Order extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'order', { actions: orderActions, ...options });\n }\n\n getDistanceAndTime(params = {}, options = {}) {\n return this.store.getDistanceAndTime(this.id, params, options);\n }\n\n dispatch(params = {}, options = {}) {\n return this.store.dispatch(this.id, params, options);\n }\n\n start(params = {}, options = {}) {\n return this.store.start(this.id, params, options);\n }\n\n setDestination(destinationId, params = {}, options = {}) {\n return this.store.setDestination(this.id, destinationId, params, options);\n }\n\n captureQrCode(subjectId = null, params = {}, options = {}) {\n return this.store.captureQrCode(this.id, subjectId, params, options);\n }\n\n captureSignature(subjectId = null, params = {}, options = {}) {\n return this.store.captureSignature(this.id, subjectId, params, options);\n }\n\n getNextActivity(params = {}, options = {}) {\n return this.store.getNextActivity(this.id, params, options);\n }\n\n updateActivity(params = {}, options = {}) {\n return this.store.updateActivity(this.id, params, options);\n }\n\n cancel(params = {}, options = {}) {\n return this.store.cancel(this.id, params, options);\n }\n\n complete(params = {}, options = {}) {\n return this.store.complete(this.id, params, options);\n }\n\n get isDispatched() {\n return this.getAttribute('dispatched_at') !== null;\n }\n\n get isNotDispatched() {\n return this.getAttribute('dispatched_at') == null;\n }\n\n get isStarted() {\n return this.getAttribute('started_at') !== null;\n }\n\n get isNotStarted() {\n return this.getAttribute('started_at') == null;\n }\n\n get isCompleted() {\n return this.getAttribute('status') == 'completed';\n }\n\n get isCanceled() {\n return this.getAttribute('status') == 'canceled';\n }\n\n get isEnroute() {\n return this.getAttribute('status') == 'driver_enroute' || this.getAttribute('status') === 'enroute';\n }\n\n get isInProgress() {\n return this.isStarted && !this.isCanceled && !this.isCompleted;\n }\n\n get scheduledAt() {\n return this.isAttributeFilled('scheduled_at') ? new Date(this.getAttribute('scheduled_at')) : null;\n }\n\n get startedAt() {\n return this.isAttributeFilled('started_at') ? new Date(this.getAttribute('started_at')) : null;\n }\n\n get dispatchedAt() {\n return this.isAttributeFilled('dispatched_at') ? new Date(this.getAttribute('dispatched_at')) : null;\n }\n\n get status() {\n return this.getAttribute('status');\n }\n}\n\nexport default Order;\n\nexport { orderActions };\n","import Resource from '../resource';\nimport Collection from '../utils/collection';\n\nclass Payload extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'payload', options);\n }\n\n /**\n * Attaches an entity to an existing payload and returns\n * the payload with the entity attached\n *\n * @param {[type]} Entity entity [description]\n * @return {[type]} [description]\n */\n attach(entity) {\n // perform op return payload\n }\n\n /**\n * Returns all of the entities attached to this payload\n *\n * @return {[type]} [description]\n */\n get entities() {}\n\n /**\n * Returns the dropoff for this payload\n *\n * @return {[type]} [description]\n */\n get dropoff() {}\n\n /**\n * Returns the pickup for this payload\n *\n * @return {[type]} [description]\n */\n get pickup() {}\n\n /**\n * Returns all the waypoints for this payload\n *\n * @return {[type]} [description]\n */\n get waypoints() {\n return new Collection(this.waypoints);\n }\n}\n\nexport default Payload;\n","import Resource from '../resource';\n\nclass Entity extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'entity', options);\n }\n}\n\nexport default Entity;\n","import Resource from '../resource';\nimport { isResource, Point } from '../utils';\n\nclass Place extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'place', options);\n }\n\n static fromGoogleAddress(googleAddress, adapter, options = {}) {\n const [latitude, longitude] = googleAddress.getAttribute('coordinates');\n const attributes = {\n name: null,\n address: googleAddress.getAttribute('address'),\n location: new Point(latitude, longitude),\n street1: googleAddress.getAttribute('address'),\n street2: null,\n city: googleAddress.getAttribute('city'),\n province: googleAddress.getAttribute('stateLong'),\n postal_code: googleAddress.getAttribute('postalCode'),\n neighborhood: googleAddress.get('neighborhood'),\n district: googleAddress.getAttribute('county'),\n building: googleAddress.get('building'),\n country: googleAddress.getAttribute('countryShort'),\n phone: null,\n security_access_code: null,\n };\n\n return new Place(attributes, adapter, options);\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n /**\n * Set the owner of the place.\n *\n * @param {Object|String} owner\n * @return {Place}\n */\n setOwner(owner) {\n if (isResource(owner)) {\n this.setAttribute('owner', owner.id);\n }\n\n if (typeof owner === 'string') {\n this.setAttribute('owner', owner);\n }\n\n return this;\n }\n}\n\nexport default Place;\n","import Place from './place';\n\nclass Waypoint extends Place {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'waypoint', options);\n }\n}\n\nexport default Waypoint;\n","import Resource from '../resource';\n\nclass TrackingStatus extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'tracking-status', options);\n }\n}\n\nexport default TrackingStatus;\n","import Resource from '../resource';\n\nclass Vehicle extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vehicle', options);\n }\n}\n\nexport default Vehicle;\n","import Resource from '../resource';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`, params, options);\n },\n});\n\nclass Organization extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'organization', { actions: organizationActions, ...options });\n }\n}\n\nexport default Organization;\nexport { organizationActions };\n","import Resource from '../resource';\nimport { StoreActions, isPhone, isEmail, Point } from '../utils';\nimport Organization from './organization';\nimport { isArray } from '../utils/array';\n\nconst serializeOrganizations = (response, adapter) => {\n if (isArray(response)) {\n return response.map((organizationJson) => {\n return new Organization(organizationJson, adapter);\n });\n }\n\n return new Organization(response, adapter);\n};\n\nconst driverActions = new StoreActions({\n // const { error } = await fleetbase.drivers.login('+1 111-1111');\n login: function (identity, password = null, attributes = {}) {\n // handle phone number authentication\n if (isPhone(identity)) {\n return this.adapter.post('drivers/login-with-sms', { phone: identity });\n }\n\n if (!password) {\n throw new Error('Login requires password!');\n }\n\n return this.adapter.post('drivers/login', { identity, password, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n verifyCode: function (identity, code, attributes = {}) {\n return this.adapter.post('drivers/verify-code', { identity, code, ...attributes }).then(this.afterFetch.bind(this));\n },\n\n track: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/track`, params, options).then(this.afterFetch.bind(this));\n },\n\n listOrganizations: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/organizations`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n switchOrganization: function (id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/switch-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n currentOrganization: function (id, params = {}, options = {}) {\n return this.adapter.get(`drivers/${id}/current-organization`, params, options).then((response) => serializeOrganizations(response, this.adapter));\n },\n\n retrieve: function (id) {\n return this.findRecord(id);\n },\n\n syncDevice(id, params = {}, options = {}) {\n return this.adapter.post(`drivers/${id}/register-device`, params, options);\n },\n});\n\nclass Driver extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'driver', { actions: driverActions, ...options });\n }\n\n get token() {\n return this.getAttribute('token');\n }\n\n get isOnline() {\n return this.getAttribute('online') === true;\n }\n\n /**\n * The latitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get latitude() {\n return this.getAttribute('location', new Point())?.coordinates[1];\n }\n\n /**\n * The longitude coordinate for the 'Place' location.\n *\n * @var {Integer}\n */\n get longitude() {\n return this.getAttribute('location', new Point())?.coordinates[0];\n }\n\n /**\n * Array coordinate pair for Place location.\n *\n * @var {Array}\n */\n get coordinates() {\n const { latitude, longitude } = this;\n\n return [latitude, longitude];\n }\n\n track(params = {}, options = {}) {\n return this.store.track(this.id, params, options);\n }\n\n syncDevice(params = {}, options = {}) {\n return this.store.syncDevice(this.id, params, options);\n }\n\n listOrganizations(params = {}, options = {}) {\n return this.store.listOrganizations(this.id, params, options);\n }\n\n switchOrganization(organizationId, options = {}) {\n return this.store.switchOrganization(this.id, { next: organizationId }, options);\n }\n\n currentOrganization(params = {}, options = {}) {\n return this.store.currentOrganization(this.id, params, options);\n }\n}\n\nexport default Driver;\nexport { driverActions };\n","import Resource from '../resource';\n\nclass Vendor extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'vendor', options);\n }\n}\n\nexport default Vendor;\n","import Resource from '../resource';\n\nclass Contact extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'contact', options);\n }\n}\n\nexport default Contact;\n","import Resource from '../resource';\n\nclass Zone extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'zone', options);\n }\n}\n\nexport default Zone;\n","import Resource from '../resource';\n\nclass ServiceArea extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-area', options);\n }\n}\n\nexport default ServiceArea;\n","import Resource from '../resource';\n\nclass ServiceRate extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-rate', options);\n }\n}\n\nexport default ServiceRate;\n","import Resource from '../resource';\n\nclass ServiceQuote extends Resource {\n constructor(attributes = {}, adapter, options = {}) {\n super(attributes, adapter, 'service-quote', options);\n }\n\n fromPreliminary() {}\n\n fromPayload() {}\n}\n\nexport default ServiceQuote;\n","class Adapter {\n /**\n * Creates a configured base adapter for Fleetbase.\n *\n * @param {Object} config Configuration options for adapter\n */\n constructor(config = {}) {\n this.version = config.version || 'v1';\n this.host = config.host || null;\n this.namespace = config.namespace || null;\n this.headers = config.headers || {};\n }\n}\n\nexport default Adapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\n\nclass BrowserAdapter extends Adapter {\n /**\n * Setup browser adapter.\n * @param {Object} config\n */\n constructor(config) {\n super(config);\n\n this.setHeaders({\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;browser',\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n this.headers = { ...this.headers, ...headers };\n\n return this;\n }\n\n /**\n * Parses the JSON returned by a network request\n *\n * @param {Object} response A response from a network request\n * @return {Object} The parsed JSON, status from the response\n *\n * @return {Promise}\n */\n parseJSON(response) {\n return new Promise((resolve, reject) =>\n response\n .json()\n .then((json) =>\n resolve({\n statusText: response.statusText,\n status: response.status,\n ok: response.ok,\n json,\n })\n )\n .catch(() => {\n reject(new Error('Oops! Something went wrong when handling your request.'));\n })\n );\n }\n\n /**\n * The base request method\n *\n * @param {String} path\n * @param {String} method\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n request(path, method = 'GET', data = {}, options = {}) {\n return new Promise((resolve, reject) =>\n fetch(options.url || `${this.host}/${this.namespace}/${path}`, {\n method,\n mode: options.mode || 'cors',\n headers: new Headers({\n ...(this.headers || {}),\n ...(options.headers || {}),\n }),\n ...data,\n })\n .then(this.parseJSON)\n .then((response) => {\n if (response.ok) {\n return resolve(response.json);\n }\n\n return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText));\n })\n .catch((error) => {\n reject(error);\n })\n );\n }\n\n /**\n * Makes a GET request with fetch\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.request(`${path}${urlParams ? `?${urlParams}` : ''}`, 'GET', {}, options);\n }\n\n /**\n * Makes a POST request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.request(path, 'POST', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a PUT request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.request(path, 'PUT', { body: JSON.stringify(data) }, options);\n }\n\n /**\n * Makes a DELETE request with fetch\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.request(path, 'DELETE', {}, options);\n }\n\n /**\n * Makes a PATCH request with fetch\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.request(path, 'PATCH', { body: JSON.stringify(data) }, options);\n }\n}\n\nexport default BrowserAdapter;\n","import Adapter from '../adapter';\nimport { isBlank } from '../utils';\nimport { isArray } from '../utils/array';\nimport axios from 'axios';\n\nclass NodeAdapter extends Adapter {\n constructor(config) {\n super(config);\n\n this.axios = axios.create({\n baseURL: `${this.host}/${this.namespace}`,\n headers: {\n Authorization: `Bearer ${config.publicKey}`,\n 'Content-Type': 'application/json',\n 'User-Agent': '@fleetbase/sdk;node',\n },\n });\n }\n\n /**\n * Updates the adapter headers.\n *\n * @param {Object} headers\n */\n setHeaders(headers = {}) {\n const commonHeaders = this.axios.defaults.headers.common;\n this.axios.defaults.headers.common = { ...commonHeaders, ...headers };\n\n return this;\n }\n\n /**\n * Tranform the response, and return the response data from axios.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n transform(response) {\n return response.data;\n }\n\n /**\n * Handles an erroneous request.\n *\n * @param {AxiosResponse} response\n * @returns {Object}\n */\n handleError(error) {\n if (error.response) {\n const { data } = error.response;\n\n if (isArray(data.errors)) {\n throw new Error(data.errors[0]);\n }\n\n if (data.error) {\n throw new Error(data.error);\n }\n }\n\n throw error;\n }\n\n /**\n * Makes a GET request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n get(path, query = {}, options = {}) {\n const urlParams = !isBlank(query) ? new URLSearchParams(query).toString() : '';\n\n return this.axios\n .get(`${path}${urlParams ? `?${urlParams}` : ''}`, options)\n .then(this.transform.bind(this))\n .catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a POST request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n post(path, data = {}, options = {}) {\n return this.axios.post(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PUT request with axios\n *\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n put(path, data = {}, options = {}) {\n return this.axios.put(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a DELETE request with axios\n *\n * @param {String} path\n * @param {Object} query\n * @param {Object} options\n *\n * @return {Promise}\n */\n delete(path, options = {}) {\n return this.axios.delete(path, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n\n /**\n * Makes a PATCH request with axios\n * @param {String} path\n * @param {Object} data\n * @param {Object} options\n *\n * @return {Promise}\n */\n patch(path, data = {}, options = {}) {\n return this.axios.patch(path, data, options).then(this.transform.bind(this)).catch(this.handleError.bind(this));\n }\n}\n\nexport default NodeAdapter;\n","import Adapter from '../adapter';\n\nclass EmberJsAdapter extends Adapter {}\n\nexport default EmberJsAdapter;\n","'use strict';\n\n/**\n * Javascript String\n *\n * instance\n * new String('hello_world').humanize().get() => \"Hello world\"\n *\n * instance\n * const string = new String();\n * string.humanize('hello_world').get() => \"Hello world\"\n *\n * no chain\n * new String('hello_world', false).humanize() => \"Hello world\"\n *\n * static\n * String.invoke('humanize', 'hello_world') => \"Hello world\"\n *\n * exports {}\n * humanize('hello_world') => \"Hello world\"\n */\n\nexport default class String {\n constructor(string, chain = true) {\n this.str = string;\n this.chain = chain;\n }\n\n uncountableWords = ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep', 'moose', 'deer', 'news'];\n\n pluralRules = [\n [new RegExp('(m)an$', 'gi'), '$1en'],\n [new RegExp('(pe)rson$', 'gi'), '$1ople'],\n [new RegExp('(child)$', 'gi'), '$1ren'],\n [new RegExp('^(ox)$', 'gi'), '$1en'],\n [new RegExp('(ax|test)is$', 'gi'), '$1es'],\n [new RegExp('(octop|vir)us$', 'gi'), '$1i'],\n [new RegExp('(alias|status)$', 'gi'), '$1es'],\n [new RegExp('(bu)s$', 'gi'), '$1ses'],\n [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],\n [new RegExp('([ti])um$', 'gi'), '$1a'],\n [new RegExp('sis$', 'gi'), 'ses'],\n [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],\n [new RegExp('(hive)$', 'gi'), '$1s'],\n [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],\n [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],\n [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],\n [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],\n [new RegExp('(quiz)$', 'gi'), '$1zes'],\n [new RegExp('s$', 'gi'), 's'],\n [new RegExp('$', 'gi'), 's'],\n ];\n\n singularRules = [\n [new RegExp('(m)en$', 'gi'), '$1an'],\n [new RegExp('(pe)ople$', 'gi'), '$1rson'],\n [new RegExp('(child)ren$', 'gi'), '$1'],\n [new RegExp('([ti])a$', 'gi'), '$1um'],\n [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'), '$1$2sis'],\n [new RegExp('(hive)s$', 'gi'), '$1'],\n [new RegExp('(tive)s$', 'gi'), '$1'],\n [new RegExp('(curve)s$', 'gi'), '$1'],\n [new RegExp('([lr])ves$', 'gi'), '$1f'],\n [new RegExp('([^fo])ves$', 'gi'), '$1fe'],\n [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],\n [new RegExp('(s)eries$', 'gi'), '$1eries'],\n [new RegExp('(m)ovies$', 'gi'), '$1ovie'],\n [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],\n [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],\n [new RegExp('(bus)es$', 'gi'), '$1'],\n [new RegExp('(o)es$', 'gi'), '$1'],\n [new RegExp('(shoe)s$', 'gi'), '$1'],\n [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],\n [new RegExp('(octop|vir)i$', 'gi'), '$1us'],\n [new RegExp('(alias|status)es$', 'gi'), '$1'],\n [new RegExp('^(ox)en', 'gi'), '$1'],\n [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],\n [new RegExp('(matr)ices$', 'gi'), '$1ix'],\n [new RegExp('(quiz)zes$', 'gi'), '$1'],\n [new RegExp('s$', 'gi'), ''],\n ];\n\n nonTitlecasedWords = ['and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at', 'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over', 'with', 'for'];\n\n idSuffix = new RegExp('(_ids|_id)$', 'g');\n underbar = new RegExp('_', 'g');\n spaceOrUnderbar = new RegExp('[ _]', 'g');\n uppercase = new RegExp('([A-Z])', 'g');\n underbarPrefix = new RegExp('^_');\n\n get() {\n return this.str;\n }\n\n applyRules(str, rules, skip, override) {\n if (override) {\n str = override;\n } else {\n var ignore = skip.indexOf(str.toLowerCase()) > -1;\n if (!ignore) {\n for (var x = 0; x < rules.length; x++) {\n if (str.match(rules[x][0])) {\n str = str.replace(rules[x][0], rules[x][1]);\n break;\n }\n }\n }\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.pluralize('person') -> 'people'\n String.pluralize('octopus') -> 'octopi'\n String.pluralize('Hat') -> 'Hats'\n String.pluralize('person', 'guys') -> 'guys' \n */\n pluralize(str, plural = null) {\n str = str || this.str;\n\n return this.applyRules(str, this.pluralRules, this.uncountableWords, plural);\n }\n\n /*\n String.singularize('person') -> 'person'\n String.singularize('octopi') -> 'octopus'\n String.singularize('hats') -> 'hat'\n String.singularize('guys', 'person') -> 'person'\n */\n singularize(str, singular) {\n str = str || this.str;\n\n return this.applyRules(str, this.singularRules, this.uncountableWords, singular);\n }\n\n /*\n String.camelize('message_properties') -> 'MessageProperties'\n String.camelize('message_properties', true) -> 'messageProperties'\n */\n camelize(str, lowFirstLetter) {\n str = str || this.str;\n\n let str_path = str.split('/');\n for (var i = 0; i < str_path.length; i++) {\n let str_arr = str_path[i].split('_');\n let initX = lowFirstLetter && i + 1 === str_path.length ? 1 : 0;\n\n for (let x = initX; x < str_arr.length; x++) {\n str_arr[x] = str_arr[x].charAt(0).toUpperCase() + str_arr[x].substring(1);\n }\n str_path[i] = str_arr.join('');\n }\n str = str_path.join('::');\n\n // fix\n if (lowFirstLetter === true) {\n let first = str.charAt(0).toLowerCase();\n let last = str.slice(1);\n str = first + last;\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.underscore('MessageProperties') -> 'message_properties'\n String.underscore('messageProperties') -> 'message_properties'\n */\n underscore(str) {\n str = str || this.str;\n\n var str_path = str.split('::');\n for (var i = 0; i < str_path.length; i++) {\n str_path[i] = str_path[i].replace(this.uppercase, '_$1');\n str_path[i] = str_path[i].replace(this.underbarPrefix, '');\n }\n str = str_path.join('/').toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.humanize('message_properties') -> 'Message properties'\n String.humanize('message_properties') -> 'message properties'\n */\n humanize(str, lowFirstLetter) {\n str = str || this.str;\n\n var str = str.toLowerCase();\n str = str.replace(this.idSuffix, '');\n str = str.replace(this.underbar, ' ');\n if (!lowFirstLetter) {\n str = this.capitalize(str);\n }\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.capitalize('message_properties') -> 'Message_properties'\n String.capitalize('message properties') -> 'Message properties'\n */\n capitalize(str) {\n str = str || this.str;\n\n str = str.toLowerCase();\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.dasherize('message_properties') -> 'message-properties'\n String.dasherize('message properties') -> 'message-properties'\n */\n dasherize(str) {\n str = str || this.str;\n\n str = str.replace(this.spaceOrUnderbar, '-');\n str = str.toLowerCase();\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.normify('message_properties') -> 'Message Properties'\n String.normify('message properties') -> 'Message Properties'\n Inflactor.normify('Message_propertyId', true) -> 'Message Properties Id'\n */\n normify(str, allFirstUpper) {\n str = str || this.str;\n\n //var str = str.toLowerCase();\n if (allFirstUpper === true) {\n str = this.camelize(str);\n str = this.underscore(str);\n } else {\n str = str.toLowerCase();\n }\n\n str = str.replace(this.underbar, ' ');\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var d = str_arr[x].split('-');\n for (var i = 0; i < d.length; i++) {\n if (this.nonTitlecasedWords.indexOf(d[i].toLowerCase()) < 0) {\n d[i] = this.capitalize(d[i]);\n }\n }\n str_arr[x] = d.join('-');\n }\n str = str_arr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.demodulize('Message::Bus::Properties') -> 'Properties'\n */\n demodulize(str) {\n str = str || this.str;\n\n var str_arr = str.split('::');\n str = str_arr[str_arr.length - 1];\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.tableize('MessageBusProperty') -> 'message_bus_properties'\n */\n tableize(str) {\n str = str || this.str;\n\n str = this.pluralize(this.underscore(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.classify('message_bus_properties') -> 'MessageBusProperty'\n */\n classify(str) {\n str = str || this.str;\n\n str = this.singularize(this.camelize(str));\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.foreignKey('MessageBusProperty') -> 'message_bus_property_id'\n String.foreignKey('MessageBusProperty', true) -> 'message_bus_propertyid'\n */\n foreignKey(str, dropIdUbar = false) {\n str = str || this.str;\n\n str = this.underscore(this.demodulize(str)) + (dropIdUbar ? '' : '_') + 'id';\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /*\n String.ordinalize('the 1 pitch') -> 'the 1st pitch'\n */\n ordinalize(str) {\n str = str || this.str;\n\n var str_arr = str.split(' ');\n for (var x = 0; x < str_arr.length; x++) {\n var i = parseInt(str_arr[x]);\n if (i === NaN) {\n var ltd = str_arr[x].substring(str_arr[x].length - 2);\n var ld = str_arr[x].substring(str_arr[x].length - 1);\n var suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n } else if (ld === '2') {\n suf = 'nd';\n } else if (ld === '3') {\n suf = 'rd';\n }\n }\n str_arr[x] += suf;\n }\n }\n str = str_arr.join(' ');\n\n // set str\n this.str = str;\n\n if (this.chain === true) {\n return this;\n }\n\n // return result\n return str;\n }\n\n /**\n * @method invoke\n **/\n static invoke() {\n const argz = Object.values(arguments);\n const instance = new String(null, false);\n const method = arguments[0];\n argz.shift();\n\n if (typeof instance[method] === 'function') {\n return instance[method](...argz);\n }\n\n return null;\n }\n}\n\nconst pluralize = function () {\n const argz = ['pluralize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst singularize = function () {\n const argz = ['singularize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst humanize = function () {\n const argz = ['humanize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst underscore = function () {\n const argz = ['underscore', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst camelize = function () {\n const argz = ['camelize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst capitalize = function () {\n const argz = ['capitalize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst dasherize = function () {\n const argz = ['dasherize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst normify = function () {\n const argz = ['normify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst demodulize = function () {\n const argz = ['demodulize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst tableize = function () {\n const argz = ['tableize', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst classify = function () {\n const argz = ['classify', ...arguments];\n\n return String.invoke(...argz);\n};\n\nconst foreignKey = function () {\n const argz = ['foreignKey', ...arguments];\n\n return String.invoke(...argz);\n};\n\nexport { pluralize, singularize, humanize, underscore, camelize, capitalize, dasherize, normify, demodulize, tableize, classify, foreignKey };\n","import { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter } from './adapters';\nimport { pluralize, singularize } from './utils/string';\n\nconst resources = {\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n};\n\nconst adapters = {\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n};\n\nclass Resolver {\n constructor() {\n this.resources = resources;\n this.adapters = adapters;\n\n return this.lookup(...arguments);\n }\n\n lookup(type, className) {\n const key = pluralize(type);\n const params = [...arguments].slice(2);\n\n if (!this[key]) {\n throw new Error('Attempted to resolve invalid type');\n }\n\n if (!this[key][className]) {\n throw new Error(`No ${singularize(type)} named ${className} to resolve`);\n }\n\n return new this[key][className](...params);\n }\n}\n\nconst lookup = function () {\n return new Resolver(...arguments);\n};\n\nexport { Resolver, lookup };\nexport default Resolver;\n","import { lookup } from './resolver';\nimport { Collection, StoreActions, detectAdapter, isResource } from './utils';\nimport { isArray } from './utils/array';\nimport { classify, pluralize } from './utils/string';\n\nconst extendStoreActions = (store, actions = []) => {\n store.actions = isArray(actions) ? actions : [actions];\n\n if (isArray(actions)) {\n for (const element of actions) {\n const action = element;\n\n store.extendActions(action);\n }\n return;\n }\n\n if (actions instanceof StoreActions) {\n actions.extend(store);\n }\n\n return store;\n};\n\nconst afterFetch = (store, json) => {\n if (typeof store.options.onAfterFetch === 'function') {\n store.options.onAfterFetch(json);\n }\n\n if (isArray(json)) {\n const serialized = [];\n\n for (const element of json) {\n serialized.push(store.afterFetch(element));\n }\n\n return new Collection(...serialized);\n }\n\n const resourceInstance = store.serialize(json);\n return store.deposit(resourceInstance);\n};\n\nclass Store {\n constructor(resource, adapter, options = {}) {\n this.resource = resource;\n this.adapter = adapter || detectAdapter();\n this.namespace = pluralize(resource);\n this.storage = new Collection();\n this.options = options;\n this.extendActions(options.actions);\n }\n\n extendActions(actions = []) {\n return extendStoreActions(this, actions);\n }\n\n deposit(resourceInstance) {\n // this.storage[this.namespace].pushObject(resourceInstance);\n\n return resourceInstance;\n }\n\n serialize(json) {\n return lookup('resource', classify(this.resource), json, this.adapter);\n }\n\n afterFetch(json) {\n return afterFetch(this, json);\n }\n\n create(attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.post(`${this.namespace}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n update(id, attributes = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.put(`${this.namespace}/${id}`, attributes, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findRecord(id, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n findAll(options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n query(query = {}, options = {}) {\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n queryRecord(query = {}, options = {}) {\n query.single = true;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.get(`${this.namespace}`, query, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n\n destroy(record, options = {}) {\n const id = isResource(record) ? record.getAttribute('id') : record;\n\n return new Promise(async (resolve, reject) => {\n const response = await this.adapter.delete(`${this.namespace}/${id}`, {}, options).then(this.afterFetch.bind(this)).catch(reject);\n\n resolve(response);\n });\n }\n}\n\nexport default Store;\n\nexport { afterFetch, extendStoreActions };\n","import Store from './store';\nimport Resource from './resource';\nimport { Contact, Driver, Entity, Order, Payload, Place, TrackingStatus, Vehicle, Vendor, Waypoint, Zone, ServiceArea, ServiceRate, ServiceQuote, Organization } from './resources';\nimport { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter } from './adapters';\nimport { isNodeEnvironment, detectAdapter, isLatitude, isLongitude, Point, isResource, GoogleAddress, Collection, StoreActions } from './utils';\nimport { pluralize, singularize, classify, dasherize, camelize } from './utils/string';\nimport { extendStoreActions } from './store';\nimport { orderActions } from './resources/order';\nimport { driverActions } from './resources/driver';\nimport { organizationActions } from './resources/organization';\nimport { lookup } from './resolver';\n\n/**\n * // instance\n * const fleetbase = new Fleetbase();\n *\n * const contact = fleetbase.contacts.create({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * constact.update({ name: 'Hollywood Ron' });\n *\n * // export\n * import { Contact } from '@fleetbase/sdk';\n *\n * const contact = new Contact({\n * \t\tname: 'Ron',\n * \t\tphone: '+65 9999 8888'\n * });\n *\n * contact.save();\n */\n\nexport default class Fleetbase {\n /**\n * Builds an instance of the Fleetbase SDK\n *\n * @param {String} publicKey The public key issued\n * @param {Object} config The version of resource to access\n * @param {Boolean} debug Debug mode for SDK\n * @return {Fleetbase} Instance\n */\n constructor(publicKey, config = {}, debug = false) {\n this.version = config.version ?? 'v1';\n this.options = {\n version: this.version,\n host: config.host ?? 'https://api.fleetbase.io',\n namespace: config.namespace ?? this.version,\n debug,\n publicKey,\n };\n\n if (typeof publicKey !== 'string' || publicKey.length === 0) {\n throw new Error('⚠️ Invalid public key given to Fleetbase SDK');\n }\n\n if (!isNodeEnvironment() && publicKey.toLowerCase().startsWith('$')) {\n throw new Error('Secret key provided. You must use a public key with Fleetbase Javascript SDK!');\n }\n\n this.adapter = config.adapter || detectAdapter(this.options);\n\n this.orders = new Store('order', this.adapter).extendActions(orderActions);\n this.entities = new Store('entity', this.adapter);\n this.places = new Store('place', this.adapter);\n this.drivers = new Store('driver', this.adapter).extendActions(driverActions);\n this.vehicles = new Store('vehicle', this.adapter);\n this.vendors = new Store('vendor', this.adapter);\n this.contacts = new Store('contact', this.adapter);\n this.organizations = new Store('organization', this.adapter).extendActions(organizationActions);\n }\n\n static newInstance() {\n return new Fleetbase(...arguments);\n }\n\n setAdapter(adapter) {\n this.adapter = adapter;\n }\n\n getAdapter() {\n return this.adapter;\n }\n}\n\nexport {\n Store,\n Resource,\n Contact,\n Driver,\n Entity,\n Order,\n Payload,\n Place,\n TrackingStatus,\n Vehicle,\n Vendor,\n Waypoint,\n Zone,\n ServiceArea,\n ServiceRate,\n ServiceQuote,\n Organization,\n BrowserAdapter,\n NodeAdapter,\n EmberJsAdapter,\n Adapter,\n isNodeEnvironment,\n isLatitude,\n isLongitude,\n Point,\n isResource,\n GoogleAddress,\n Collection,\n StoreActions,\n extendStoreActions,\n pluralize,\n singularize,\n classify,\n dasherize,\n camelize,\n lookup,\n};\n"],"names":["isArray","Array","CHUNK_SIZE","replace","array","start","deleteCount","items","arguments","length","undefined","splice","apply","concat","_toConsumableArray","i","chunk","slice","isCollection","arr","identityFunction","item","mixed","Collection","objectAt","index","iter","key","value","Boolean","findIndex","predicate","startAt","len","indexOf","val","withNaNCheck","insertAt","_Array","_inherits","_wrapNativeSuper","_super","_createSuper","_len","_key","_classCallCheck","_possibleConstructorReturn","call","_createClass","get","this","indexes","_this2","map","idx","object","callback","bind","target","cb","methodName","_len2","args","_key2","ret","forEach","_item$methodName","push","filter","sortKeys","sort","a","b","_step","_iterator","_createForOfIteratorHelper","s","n","done","propA","propB","compareValue","compare","err","e","f","seen","Set","getter","has","add","uniqBy","includes","removeAt","obj","objects","toArray","reverse","clear","loc","removeObject","pushObject","_this3","addObject","isEmpty","none","size","objectType","_typeof","isBlank","test","isLatitude","coordinate","isFinite","Math","abs","isLongitude","isResource","record","Resource","isNodeEnvironment","_process","_process$release","_window","process","env","release","name","search","window","navigator","product","detectAdapter","options","lookup","GoogleAddress","place","geometry","components","parseComponents","attributes","parseProperties","_this$place","address_components","reduce","acc","data","types","type","_this$geometry","streetNumber","streetName","coordinates","location","Object","values","city","or","county","stateShort","stateLong","countryShort","country","countryLong","postalCode","address","join","pkey","short","short_name","long_name","_objectSpread","Point","latitude","longitude","coorindates","lat","lng","serialize","json","_json$coordinates","_slicedToArray","getResolved","func","path","resolved","current","isObject","isFunction","pathArray","split","newPath","set","iterations","StoreActions","actions","binding","action","fn","adapter","resource","dirtyAttributes","changes","isLoading","isSaving","isDestroying","isReloading","version","setAdapter","_this$options","store","Store","onAfterFetch","syncAttributes","getAttribute","_this","mergeAttributes","setFlags","create","then","response","update","id","destroy","_this4","findRecord","reset","flags","state","validFlags","flag","Error","attribues","getAttributes","onlyDirty","savedirty","dirtyAttributeKeys","keys","isAttributeFilled","Date","hasAttributes","isNew","isLoaded","_this$attributes","_this5","property","_this$dirtyAttributes","_this$attributes$prop","setAttributes","previousValue","changedAt","setAttribute","attribute","_this$attributes2","defaultValue","_this$attributes3","properties","attributeKeys","every","prop","hasAttribute","_this6","prototype","_value","_value2","_this$attributes4","modelAttributes","orderActions","getDistanceAndTime","params","namespace","getNextActivity","dispatch","post","afterFetch","updateActivity","setDestination","destinationId","captureQrCode","subjectId","captureSignature","complete","cancel","Order","_Resource","isStarted","isCanceled","isCompleted","Payload","entity","waypoints","Entity","Place","_this$getAttribute","_this$getAttribute2","owner","googleAddress","_googleAddress$getAtt2","street1","street2","province","postal_code","neighborhood","district","building","phone","security_access_code","Waypoint","_Place","TrackingStatus","Vehicle","organizationActions","Organization","serializeOrganizations","organizationJson","driverActions","login","identity","password","isPhone","verifyCode","code","track","listOrganizations","switchOrganization","currentOrganization","retrieve","syncDevice","Driver","organizationId","next","Vendor","Contact","Zone","ServiceArea","ServiceRate","ServiceQuote","Adapter","config","host","headers","BrowserAdapter","_Adapter","setHeaders","Authorization","publicKey","Promise","resolve","reject","statusText","status","ok","method","fetch","url","mode","Headers","parseJSON","errors","error","query","urlParams","URLSearchParams","toString","request","body","JSON","stringify","NodeAdapter","axios","baseURL","commonHeaders","defaults","common","transform","handleError","put","patch","EmberJsAdapter","String","string","chain","_defineProperty","RegExp","str","rules","skip","override","toLowerCase","x","match","plural","applyRules","pluralRules","uncountableWords","singular","singularRules","lowFirstLetter","str_path","str_arr","charAt","toUpperCase","substring","first","last","uppercase","underbarPrefix","idSuffix","underbar","capitalize","spaceOrUnderbar","allFirstUpper","camelize","underscore","d","nonTitlecasedWords","pluralize","singularize","dropIdUbar","demodulize","NaN","parseInt","ltd","ld","suf","argz","instance","shift","invoke","dasherize","classify","resources","adapters","Resolver","className","_construct","extendStoreActions","extend","extendActions","storage","resourceInstance","_step2","serialized","_iterator2","element","deposit","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","sent","stop","_x","_x2","_ref2","_callee2","_context2","_x3","_x4","_ref3","_callee3","_context3","_x5","_x6","_ref4","_callee4","_context4","_x7","_x8","_ref5","_callee5","_context5","_x9","_x10","single","_ref6","_callee6","_context6","_x11","_x12","_this7","_ref7","_callee7","_context7","_x13","_x14","Fleetbase","_config$version","_config$host","_config$namespace","debug","startsWith","orders","entities","places","drivers","vehicles","vendors","contacts","organizations"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index df4342b..778d8a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fleetbase/sdk", - "version": "1.2.9", + "version": "1.2.10", "description": "Fleetbase JS & Node SDK", "main": "dist/cjs/fleetbase.js", "module": "dist/esm/fleetbase.js", @@ -19,10 +19,7 @@ "dev": "rollup -c -w", "test": "mocha --require @babel/polyfill --require @babel/register --require source-map-support/register tests/*.test.js", "prepare": "husky install", - "format": "prettier . --write", - "publish-verdaccio": "npm publish --registry http://localhost:4873", - "unpublish-verdaccio": "npm unpublish --registry http://localhost:4873 --force", - "reset-verdaccio": "pnpm unpublish-verdaccio && pnpm publish-verdaccio" + "format": "prettier . --write" }, "author": "Ronald A. Richardson (https://ron.dev)", "license": "BSD-3-Clause",