diff --git a/.eslintrc.json b/.eslintrc.json index 20ffc17..5626472 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -26,4 +26,4 @@ "space-before-function-paren": 0, "comma-dangle": 0 } -} \ No newline at end of file +} diff --git a/.github/stale.yml b/.github/stale.yml index 65a2991..95467f3 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -4,14 +4,14 @@ daysUntilStale: 20 daysUntilClose: 7 # Issues with these labels will never be considered stale exemptLabels: - - pinned - - security + - pinned + - security # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. # Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false \ No newline at end of file +closeComment: false diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..d24fdfc --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx lint-staged diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..6c0eec0 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +# compiled output +/dist/ +/tmp/ + +# dependencies +/node_modules/ +LICENSE.md +README.md \ No newline at end of file diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..9ca6026 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,9 @@ +'use strict'; + +module.exports = { + trailingComma: 'es5', + tabWidth: 4, + semi: true, + singleQuote: true, + printWidth: 190, +}; diff --git a/LICENSE.md b/LICENSE.md index 2c0aacf..4957748 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -2,8 +2,8 @@ Copyright (c) 2021 Fleetbase Pte Ltd, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -3) Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index c11f260..c19df62 100644 --- a/README.md +++ b/README.md @@ -48,11 +48,11 @@ const fleetbase = new Fleetbase('Your Public Key'); // create a place const speceNeedle = await fleetbase.places.create({ - name: 'Space Needle', - street1: '400 Broad Street', - city: 'Seattle', - state: 'WA', - country: 'US' + name: 'Space Needle', + street1: '400 Broad Street', + city: 'Seattle', + state: 'WA', + country: 'US', }); ``` @@ -65,17 +65,17 @@ const fleetbase = new Fleetbase('Your Secret Key'); // create a place const speceNeedle = await fleetbase.places.create({ - name: 'Space Needle', - street1: '400 Broad Street', - city: 'Seattle', - state: 'WA', - country: 'US' + name: 'Space Needle', + street1: '400 Broad Street', + city: 'Seattle', + state: 'WA', + country: 'US', }); ``` ## Create a custom adapter -You're able to create a custom adapter to handle network request in the Fleetbase SDK. +You're able to create a custom adapter to handle network request in the Fleetbase SDK. The Fleetbase SDK ships with two standard adapters. The BrowserAdapter which is based on `fetch()` and the NodeAdapter based on axios. @@ -83,14 +83,14 @@ the NodeAdapter based on axios. import { Adapter } from '@fleetbase/sdk'; class CustomAdapter extends Adapter { - constructor(config) { - super(config); - } - - get() {} - post() {} - put() {} - patch() {} - delete() {} + constructor(config) { + super(config); + } + + get() {} + post() {} + put() {} + patch() {} + delete() {} } ``` diff --git a/dist/@fleetbase/sdk.min.js b/dist/@fleetbase/sdk.min.js index 8eb3663..9e834da 100644 --- a/dist/@fleetbase/sdk.min.js +++ b/dist/@fleetbase/sdk.min.js @@ -1,2 +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(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})); +!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 O=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(O(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),z(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){v(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=F.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,F.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=F.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=F.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 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()?Ot("adapter","NodeAdapter",t):Ot("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=j(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 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"===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),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=j(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)||O(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){v(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){v(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){v(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){v(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){v(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){v(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){v(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({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))},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,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:ot},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)}}]),n}(V),st=function(t){v(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),ut=new Q({current:function(){return this.adapter.get("".concat(this.namespace,"/current"))}}),ct=function(t){v(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:ut},o))}return l(n)}(V),ht=function(t){v(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),lt=function(t){v(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){v(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),vt=function(t){v(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),dt=function(t){v(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||{}})),gt=function(t){v(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),yt=function(t){v(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(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=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),bt=function(t){v(n,t);var e=w(n);function n(){return c(this,n),e.apply(this,arguments)}return l(n)}(pt),mt=function(){function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];c(this,t),f(this,"uncountableWords",["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"]),f(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"]]),f(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"),""]]),f(this,"nonTitlecasedWords",["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"]),f(this,"idSuffix",new RegExp("(_ids|_id)$","g")),f(this,"underbar",new RegExp("_","g")),f(this,"spaceOrUnderbar",new RegExp("[ _]","g")),f(this,"uppercase",new RegExp("([A-Z])","g")),f(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=O(e)?e:[e],!O(e))return e instanceof Q&&e.extend(t),t;var n,r=j(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]:{};c(this,t),this.resource=e,this.adapter=n||G(),this.namespace=wt(e),this.storage=new T,this.options=r,this.extendActions(r.actions)}return l(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 Ot("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=j(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}(),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(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 Rt("order",this.adapter).extendActions(Y),this.entities=new Rt("entity",this.adapter),this.places=new Rt("place",this.adapter),this.drivers=new Rt("driver",this.adapter).extendActions(ot),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(ut)}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=gt,t.Collection=T,t.Contact=ht,t.Driver=at,t.EmberJsAdapter=bt,t.Entity=tt,t.GoogleAddress=J,t.NodeAdapter=yt,t.Order=Z,t.Organization=ct,t.Payload=X,t.Place=et,t.Point=W,t.Resource=V,t.ServiceArea=ft,t.ServiceQuote=dt,t.ServiceRate=vt,t.Store=Rt,t.StoreActions=Q,t.TrackingStatus=rt,t.Vehicle=it,t.Vendor=st,t.Waypoint=nt,t.Zone=lt,t.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return mt.invoke.apply(mt,A(t))},t.classify=At,t.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return mt.invoke.apply(mt,A(t))},t.default=St,t.extendStoreActions=$t,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=wt,t.singularize=kt})); //# sourceMappingURL=sdk.min.js.map diff --git a/dist/@fleetbase/sdk.min.js.map b/dist/@fleetbase/sdk.min.js.map index f26d171..f7842ab 100644 --- a/dist/@fleetbase/sdk.min.js.map +++ b/dist/@fleetbase/sdk.min.js.map @@ -1 +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/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":"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"} \ No newline at end of file +{"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/driver.js","../../src/resources/vendor.js","../../src/resources/organization.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, 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 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';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`);\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';\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 } 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 { 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","driverActions","login","identity","password","isPhone","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","organizationActions","Organization","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","next","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":"kgZAAA,IAAQA,EAAYC,MAAZD,8CCOFE,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,EAAAe,GAAA,IAAAE,EAAAC,EAAAlB,GACZ,SAAAA,IAAsB,IAAA,IAAAmB,EAAAlC,UAAAC,OAAPF,EAAKN,IAAAA,MAAAyC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAALpC,EAAKoC,GAAAnC,UAAAmC,GAKf,OALeC,OAAArB,GAKfsB,EAJG7C,EAAQQ,UAAU,IAClBgC,EAAAM,KAAAlC,MAAA4B,EAAA3B,CAAAA,MAAAA,OAAAC,EAASN,UAAU,MAEnBgC,EAAA5B,WAASJ,WAEjB,CAiPC,OAjPAuC,EAAAxB,EAAA,CAAA,CAAAI,IAAA,WAAAqB,IAED,WACI,OAAOC,KAAKxC,OAAS,CACzB,GAAC,CAAAkB,IAAA,QAAAqB,IAED,WACI,OAAuB,IAAhBC,KAAKxC,MAChB,GAAC,CAAAkB,IAAA,QAAAqB,IAED,WACI,OAAOxB,EAASyB,KAAM,EAC1B,GAAC,CAAAtB,IAAA,OAAAqB,IAED,WACI,OAAOxB,EAASyB,KAAMA,KAAKxC,OAAS,EACxC,GAAC,CAAAkB,IAAA,UAAAC,MAED,SAAQvB,EAAOC,GAGX,OAFAH,EAAQ8C,KAAM5C,EAAOC,EADQE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAGzByC,IACX,GAAC,CAAAtB,IAAA,YAAAC,MAED,SAAUsB,GAAS,IAAAC,EAAAF,KACf,OAAOC,EAAQE,KAAI,SAACC,GAAG,OAAK7B,EAAS2B,EAAME,KAC/C,GAAC,CAAA1B,IAAA,WAAAC,MAED,SAASH,GACL,OAAOD,EAASyB,KAAMxB,EAC1B,GAAC,CAAAE,IAAA,UAAAC,MAED,SAAQ0B,EAAQtB,GACZ,OAAOE,EAAQe,KAAMK,EAAQtB,GAAS,EAC1C,GAAC,CAAAL,IAAA,cAAAC,MAED,SAAY0B,EAAQtB,GAChB,IAAIC,EAAMgB,KAAKxC,aAECC,IAAZsB,GAAyBA,GAAWC,KACpCD,EAAUC,EAAM,GAGhBD,EAAU,IACVA,GAAWC,GAGf,IAAK,IAAIoB,EAAMrB,EAASqB,GAAO,EAAGA,IAC9B,GAAI7B,EAASyB,KAAMI,KAASC,EACxB,OAAOD,EAIf,OAAQ,CACZ,GAAC,CAAA1B,IAAA,WAAAC,MAED,SAAS0B,EAAQtB,GACb,OAAiD,IAA1CE,EAAQe,KAAMK,EAAQtB,GAAS,EAC1C,GAAC,CAAAL,IAAA,SAAAC,MAED,WACI,OA3GMxB,EA2GM6C,KA3GCM,EA2GK7B,EAAId,WAAA,EAAIJ,WA1G1BuB,EAAYwB,EAASC,KAAKC,IAEZ,KADdhC,EAAQK,EAAU1B,EAAO2B,EAAW,SAClBrB,EAAYc,EAASpB,EAAOqB,GAHzC,IAACrB,EAAOmD,EAAUE,EACvB1B,EACAN,CA0GJ,GAAC,CAAAE,IAAA,cAAAC,MAED,WACI,OAAOE,EAAUmB,KAAMvB,EAAId,WAAA,EAAIJ,WACnC,GAAC,CAAAmB,IAAA,UAAAC,MAED,WACI,OAxGOxB,EAwGM6C,KAxGCM,EAwGK7B,EAAId,WAAA,EAAIJ,WAvG3BkD,EAAKH,EAASC,KAAKC,IAEoB,IAApC3B,EAAU1B,GADD,SAACiB,EAAMI,EAAOrB,GAAK,OAAMsD,EAAGrC,EAAMI,EAAOrB,EAAM,GAC5B,GAHzB,IAACA,EAAOmD,EAAUE,EACxBC,CAwGJ,GAAC,CAAA/B,IAAA,QAAAC,MAED,WACI,OAjHKxB,EAiHM6C,KAjHCM,EAiHK7B,EAAId,WAAA,EAAIJ,WAhHzBuB,EAAYwB,EAASC,KAAKC,IACa,IAApC3B,EAAU1B,EAAO2B,EAAW,GAF3B,IAAC3B,EAAOmD,EAAUE,EACtB1B,CAiHJ,GAAC,CAAAJ,IAAA,SAAAC,MAED,SAAO+B,GAAqB,IAAAC,IAAAA,EAAApD,UAAAC,OAANoD,MAAI5D,MAAA2D,EAAAA,EAAAA,OAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAAtD,GAAAA,UAAAsD,GACtB,IAAIC,EAAM,GAIV,OAFAd,KAAKe,SAAQ,SAAC3C,GAAI,IAAA4C,EAAA,OAAKF,EAAIG,KAAqB,QAAjBD,EAAC5C,EAAKsC,UAAW,IAAAM,OAAA,EAAhBA,EAAAnB,KAAAlC,MAAAqD,EAAA,CAAA5C,GAAIR,OAAkBgD,QAE/CE,CACX,GAAC,CAAApC,IAAA,UAAAC,MAED,WACI,OAAOqB,KAAKG,KAAI,SAAC/B,GAAI,OAAKA,IAC9B,GAAC,CAAAM,IAAA,UAAAC,MAED,WACI,OAAOqB,KAAKkB,QAAO,SAACvC,GAAK,OAAc,MAATA,IAClC,GAAC,CAAAD,IAAA,SAAAC,MAED,WACI,IAAIwC,EAAW5D,UAEf,OAAOyC,KAAKoB,MAAK,SAACC,EAAGC,GAAM,IACOC,EADPC,EAAAC,EACDN,GAAQ,IAA9B,IAAAK,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAgC,CAAA,IACxBlD,EADU6C,EAAA5C,MAEVkD,EAAQR,EAAE3C,GACVoD,EAAQR,EAAE5C,GAEVqD,EAAeC,QAAQH,EAAOC,GAElC,GAAIC,EACA,OAAOA,CAEf,CAAC,CAAA,MAAAE,GAAAT,EAAAU,EAAAD,EAAA,CAAA,QAAAT,EAAAW,GAAA,CACD,OAAO,CACX,GACJ,GAAC,CAAAzD,IAAA,SAAAC,MAED,SAAOD,GACH,OA1MO,SAACvB,GAAkC,IAA3BuB,EAAGnB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGY,EACrB2C,EAAM,GACNsB,EAAO,IAAIC,IACXC,EAAwB,mBAAR5D,EAAqBA,EAAM,SAACN,GAAI,OAAK2B,IAAI3B,EAAMM,EAAI,EAUvE,OARAvB,EAAM4D,SAAQ,SAAC3C,GACX,IAAIc,EAAMoD,EAAOlE,GACZgE,EAAKG,IAAIrD,KACVkD,EAAKI,IAAItD,GACT4B,EAAIG,KAAK7C,GAEjB,IAEO0C,CACX,CA4Le2B,CAAOzC,KAAMtB,EACxB,GAAC,CAAAA,IAAA,UAAAC,MAED,SAAQA,GACJ,IAAKqB,KAAK0C,SAAS/D,GACf,OAAOqB,KAIX,IAAIlB,EAAYH,GAAUA,EAAQ,SAACP,GAAI,OAAKA,IAASO,CAAK,EAAG,SAACP,GAAI,OAAKA,GAASA,CAAI,EACpF,OAAO4B,KAAKkB,OAAOpC,EACvB,GAAC,CAAAJ,IAAA,QAAAC,MAED,WACI,IAAIK,EAAMgB,KAAKxC,OACf,OAAY,IAARwB,GAIJgB,KAAK9C,QAAQ,EAAG8B,EAAK,IAHVgB,IAKf,GAAC,CAAAtB,IAAA,WAAAC,MAED,SAASyB,EAAKC,GAEV,OADAjB,EAASY,KAAMI,EAAKC,GACbL,IACX,GAAC,CAAAtB,IAAA,YAAAC,MAED,SAAUyB,EAAKC,GACX,OAAOL,KAAK9C,QAAQkD,EAAK,EAAG,CAACC,GACjC,GAAC,CAAA3B,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+JewF,CAAS3C,KAAM5C,EAAO4B,EACjC,GAAC,CAAAN,IAAA,aAAAC,MAED,SAAWiE,GACP,OAAO5C,KAAKZ,SAASY,KAAKxC,OAAQoF,EACtC,GAAC,CAAAlE,IAAA,cAAAC,MAED,SAAYkE,GAER,OADA7C,KAAK9C,QAAQ8C,KAAKxC,OAAQ,EAAGqF,GACtB7C,IACX,GAAC,CAAAtB,IAAA,YAAAC,MAED,WACI,IAAIK,EAAMgB,KAAKxC,OACf,GAAY,IAARwB,EACA,OAAO,KAGX,IAAI8B,EAAMvC,EAASyB,KAAMhB,EAAM,GAE/B,OADAgB,KAAK2C,SAAS3D,EAAM,EAAG,GAChB8B,CACX,GAAC,CAAApC,IAAA,cAAAC,MAED,WACI,GAAoB,IAAhBqB,KAAKxC,OACL,OAAO,KAGX,IAAIsD,EAAMvC,EAASyB,KAAM,GAEzB,OADAA,KAAK2C,SAAS,GACP7B,CACX,GAAC,CAAApC,IAAA,gBAAAC,MAED,SAAciE,GACV,OAAOxD,EAASY,KAAM,EAAG4C,EAC7B,GAAC,CAAAlE,IAAA,iBAAAC,MAED,SAAekE,GAEX,OADA7C,KAAK9C,QAAQ,EAAG,EAAG2F,GACZ7C,IACX,GAAC,CAAAtB,IAAA,iBAAAC,MAED,WACI,IAAIK,EAAMgB,KAAKxC,OACf,GAAY,IAARwB,EACA,OAAOgB,KAGX,IAAI6C,EAAU7C,KAAK8C,UAAUC,UAE7B,OADA/C,KAAK9C,QAAQ,EAAG8B,EAAK6D,GACd7C,IACX,GAAC,CAAAtB,IAAA,aAAAC,MAED,SAAWkE,GACP,GAAuB,IAAnBA,EAAQrF,OACR,OAAOwC,KAAKgD,QAGhB,IAAIhE,EAAMgB,KAAKxC,OAEf,OADAwC,KAAK9C,QAAQ,EAAG8B,EAAK6D,GACd7C,IACX,GAAC,CAAAtB,IAAA,eAAAC,MAED,SAAaiE,GAET,IADA,IAAIK,EAAMjD,KAAKxC,QAAU,IAChByF,GAAO,GAAG,CACC1E,EAASyB,KAAMiD,KAEbL,GACd5C,KAAK2C,SAASM,EAEtB,CACA,OAAOjD,IACX,GAAC,CAAAtB,IAAA,gBAAAC,MAED,SAAckE,GACV,IAAK,IAAI/E,EAAI+E,EAAQrF,OAAS,EAAGM,GAAK,EAAGA,IACrCkC,KAAKkD,aAAaL,EAAQ/E,IAG9B,OAAOkC,IACX,GAAC,CAAAtB,IAAA,YAAAC,MAED,SAAUiE,GAON,OANe5C,KAAK0C,SAASE,IAGzB5C,KAAKmD,WAAWP,GAGb5C,IACX,GAAC,CAAAtB,IAAA,aAAAC,MAED,SAAWkE,GAAS,IAAAO,EAAApD,KAEhB,OADA6C,EAAQ9B,SAAQ,SAAC6B,GAAG,OAAKQ,EAAKC,UAAUT,MACjC5C,IACX,KAAC1B,CAAA,EAAAgF,EAxPoBtG,QCjHnBuG,EAAU,SAACX,GACb,IAAMY,EAAOZ,QACb,GAAIY,EACA,OAAOA,EAGX,GAAwB,iBAAbZ,EAAIa,KACX,OAAQb,EAAIa,KAGhB,IAAMC,EAAUC,EAAUf,GAE1B,GAAmB,WAAfc,EAAyB,CACzB,IAAQD,EAASb,EAATa,KACR,GAAoB,iBAATA,EACP,OAAQA,CAEhB,CAEA,GAA0B,iBAAfb,EAAIpF,QAAsC,aAAfkG,EAClC,OAAQd,EAAIpF,OAGhB,GAAmB,WAAfkG,EAAyB,CACzB,IAAQlG,EAAWoF,EAAXpF,OACR,GAAsB,iBAAXA,EACP,OAAQA,CAEhB,CAEA,OAAO,CACX,EC7BMoG,EAAU,SAAChB,GAAG,OAAKW,EAAQX,IAAwB,iBAARA,IAAuC,IAAnB,KAAKiB,KAAKjB,EAAe,ECA/E,SAASkB,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,GAAOtF,OAAAqF,GACfhF,KAAKiF,MAAQA,EACbjF,KAAKkF,SAAWD,aAAK,EAALA,EAAOC,SACvBlF,KAAKmF,WAAanF,KAAKoF,kBACvBpF,KAAKqF,WAAarF,KAAKsF,iBAC3B,CA2FC,OA3FAxF,EAAAkF,EAAA,CAAA,CAAAtG,IAAA,QAAAC,MAED,WACIqB,KAAKoF,kBACLpF,KAAKsF,iBACT,GAAC,CAAA5G,IAAA,kBAAAC,MAED,WAAkB,IAAA4G,EAQd,QAP8B,QAAVA,EAAIvF,KAACiF,aAAK,IAAAM,OAAA,EAAVA,EAAYC,qBAAsB,IAAIC,QAAO,SAAUC,EAAKC,GAI5E,OAHAA,EAAKC,MAAM7E,SAAQ,SAAU8E,GACzBH,EAAIG,GAAQF,CAChB,IACOD,CACV,GAAE,CAAE,EAGT,GAAC,CAAAhH,IAAA,kBAAAC,MAED,WAAkB,IAAAmH,EACRT,EAAa,CACfU,aAAc/F,KAAKD,IAAI,iBACvBiG,WAAYhG,KAAKD,IAAI,SACrBkG,YAA0BH,QAAbA,EAAA9F,KAAKkF,gBAALY,IAAaA,GAAbA,EAAeI,SAAWC,OAAOC,OAAOpG,KAAKkF,SAASgB,UAAY,CAAC,EAAG,GACnFG,KAAMrG,KAAKsG,GAAG,CAAC,WAAY,cAAe,sBAAuB,eAAgB,8BAA+B,gCAChHC,OAAQvG,KAAKD,IAAI,+BACjByG,WAAYxG,KAAKD,IAAI,+BAA+B,GACpD0G,UAAWzG,KAAKD,IAAI,+BACpB2G,aAAc1G,KAAKD,IAAI,WAAW,GAClC4G,QAAS3G,KAAKD,IAAI,WAAW,GAC7B6G,YAAa5G,KAAKD,IAAI,WACtB8G,WAAY7G,KAAKD,IAAI,gBAKzB,OAFAsF,EAAWyB,QAAU,CAACzB,EAAWU,aAAcV,EAAWW,YAAY9E,OAAOtC,SAASmI,KAAK,KAEpF1B,CACX,GAAC,CAAA3G,IAAA,MAAAC,MAED,WACI,OAAOqB,KAAKqF,UAChB,GAAC,CAAA3G,IAAA,KAAAC,MAED,WAAc,IACgB4C,EADlBC,EAAAC,EAALlE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IACoB,IAA1B,IAAAiE,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAA4B,CAAA,IAClBlD,EADQ6C,EAAA5C,MAGd,GAAI5B,EAAQ2B,GAAZ,CACI,IAAMsI,EAAOtI,EAAI,GACXuI,EAAQvI,EAAI,GAElB,GAAIsB,KAAKuC,IAAIyE,GACT,OAAOhH,KAAKD,IAAIiH,EAAMC,EAI9B,MAEA,GAAIjH,KAAKuC,IAAI7D,GACT,OAAOsB,KAAKD,IAAIrB,EAExB,CAAC,CAAA,MAAAuD,GAAAT,EAAAU,EAAAD,EAAA,CAAA,QAAAT,EAAAW,GAAA,CAED,OAAO,IACX,GAAC,CAAAzD,IAAA,MAAAC,MAED,SAAID,GACA,OAAOA,KAAOsB,KAAKmF,UACvB,GAAC,CAAAzG,IAAA,MAAAC,MAED,SAAID,GAAoB,IAAfuI,EAAK1J,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACV,OAAMmB,KAAOsB,KAAKmF,WAIX8B,EAAQjH,KAAKmF,WAAWzG,GAAKwI,WAAalH,KAAKmF,WAAWzG,GAAKyI,UAH3D,IAIf,GAAC,CAAAzI,IAAA,gBAAAC,MAED,WAA+B,IAAjB0G,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAGvB,OAFAyC,KAAKqF,WAAU+B,EAAAA,EAAQ,CAAA,EAAApH,KAAKqF,YAAeA,GAEpCrF,IACX,GAAC,CAAAtB,IAAA,eAAAC,MAED,SAAaD,EAAKC,GAGd,OAFAqB,KAAKqF,WAAW3G,GAAOC,EAEhBqB,IACX,GAAC,CAAAtB,IAAA,eAAAC,MAED,SAAaD,GACT,OAAOsB,KAAKqF,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,EAACoC,OAAA0H,GACnCrH,KAAK6F,KAAO,QACZ7F,KAAKiG,YAAc,CAACsB,EAAWD,EACnC,CAsBC,OAtBAxH,EAAAuH,EAAA,CAAA,CAAA3I,IAAA,WAAAqB,IAED,WACI,OAAOC,KAAKiG,YAAY,EAC5B,GAAC,CAAAvH,IAAA,YAAAqB,IAED,WACI,OAAOC,KAAKiG,YAAY,EAC5B,GAAC,CAAAvH,IAAA,MAAAC,MAED,WACI,OAAOqB,KAAKsH,QAChB,GAAC,CAAA5I,IAAA,MAAAC,MAED,WACI,OAAOqB,KAAKuH,SAChB,GAAC,CAAA7I,IAAA,YAAAC,MAQD,WACI,MAAO,CACHkH,KAAM,QACN2B,YAAa,CAACxH,KAAKyH,MAAOzH,KAAK0H,OAEvC,GAAC,CAAAhJ,IAAA,SAAAC,MAED,WACI,OAAOqB,KAAK2H,WAChB,GAAC,CAAAjJ,IAAA,WAAAC,MAED,WACI,MAAAf,IAAAA,OAAWoC,KAAKsH,eAAQ1J,OAAKoC,KAAKuH,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,GCMpBU,EAAc,SAACC,EAAMC,GACvB,IAAMC,EAAWF,IACjB,OAAOhL,MAAMD,QAAQmL,IAAiC,WAApBvE,EAAOuE,GAAwBnI,EAAImI,EAAUD,GAAQ,IAC3F,EAQMlI,EAAM,SAANA,EAAOM,EAAQ4H,GACjB,IAhBgB5J,EAgBZ8J,EAAU9H,EAERwF,EAAIlC,EAAUtD,GACd+H,EAAoB,WAATvC,EACXwC,EAAsB,aAATxC,EACb9I,EAAUC,MAAMD,QAAQsD,GAKxBiI,EAF4B,WADpB3E,EAAUsE,IAEaA,EAAKvF,SAAS,KAClBuF,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,OAAOhH,EAAIoI,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,EAAY1H,EAAQ4H,EAEnC,EAmBMQ,EAAM,SAACpI,EAAQ4H,EAAMtJ,GACvB,IAAIwJ,EAAU9H,EAER+H,EAAoB,WADhBzE,EAAUtD,GAGdtD,EAAUC,MAAMD,QAAQsD,GAUxBiI,EAF4B,WADpB3E,EAAUsE,IAEaA,EAAKvF,SAAS,KAClBuF,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,EAAIgD,EAAIhD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAIoC,OAAAgJ,GACjC3I,KAAK4I,QAAUA,EACf5I,KAAKO,KAAOA,CAChB,CAuBC,OAvBAT,EAAA6I,EAAA,CAAA,CAAAjK,IAAA,SAAAC,MAED,WAAsB,IACZkK,GADGtL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,OACcyC,KAAKO,KAE/B,IAAKsI,EACD,OAAO7I,KAGX,GAAIA,YAAAA,KAAM4I,SAAmC,WAAxBjF,EAAO3D,KAAK4I,SAC7B,IAAK,IAAIE,KAAU9I,KAAK4I,QAAS,CAC7B,IAAMG,EAAK/I,KAAK4I,QAAQE,GAEN,mBAAPC,EAKXN,EAAII,EAASC,EAAQC,EAAGxI,KAAKsI,IAJzBJ,EAAII,EAASC,EAAQC,EAK7B,CAGJ,OAAO/I,IACX,KAAC2I,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,EAAEoC,OAAAqE,GACxDhE,KAAKqF,WAAaA,EAClBrF,KAAKkJ,gBAAkB,GACvBlJ,KAAKmJ,QAAU,GACfnJ,KAAKoJ,WAAY,EACjBpJ,KAAKqJ,UAAW,EAChBrJ,KAAKsJ,cAAe,EACpBtJ,KAAKuJ,aAAc,EACnBvJ,KAAKiJ,SAAWA,EAChBjJ,KAAK8E,QAAUA,EACf9E,KAAKwJ,QAAU1E,EAAQ0E,SAAW,KAClCxJ,KAAKyJ,WAAWT,EACpB,CAueC,OAreDlJ,EAAAkE,EAAA,CAAA,CAAAtF,IAAA,aAAAC,MAMA,SAAWqK,GAAS,IAAAU,EAOhB,OANA1J,KAAKgJ,QAAUA,EACfhJ,KAAK2J,MAAQ,IAAIC,GAAM5J,KAAKiJ,SAAUD,EAAS,CAC3Ca,aAAc7J,KAAK8J,eAAevJ,KAAKP,MACvC4I,QAAqBc,QAAdA,EAAE1J,KAAK8E,eAAL4E,IAAYA,OAAZA,EAAAA,EAAcd,UAGpB5I,IACX,GAEA,CAAAtB,IAAA,KAAAqB,IAKA,WACI,OAAOC,KAAK+J,aAAa,KAC7B,GAEA,CAAArL,IAAA,SAAAC,MAMA,WAAwB,IAAAqL,EAAAhK,KAAjBqF,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACVoI,EAAO3F,KAAKiK,gBAAgB5E,GAGlC,OAFArF,KAAKkK,SAAS,CAAC,YAAa,aAErBlK,KAAK2J,MAAMQ,OAAOxE,GAAMyE,MAAK,SAACC,GAGjC,OAFAL,EAAKE,SAAS,CAAC,YAAa,aAAa,GAElCG,CACX,GACJ,GAEA,CAAA3L,IAAA,SAAAC,MAMA,WAAwB,IAAAuB,EAAAF,KAAjBqF,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAGhB,OAFAyC,KAAKkK,SAAS,CAAC,YAAa,aAErBlK,KAAK2J,MAAMW,OAAOtK,KAAKqF,WAAWkF,GAAIlF,GAAY+E,MAAK,SAACC,GAG3D,OAFAnK,EAAKgK,SAAS,CAAC,YAAa,aAAa,GAElCG,CACX,GACJ,GAEA,CAAA3L,IAAA,UAAAC,MAKA,WAAU,IAAAyE,EAAApD,KAGN,OAFAA,KAAKkK,SAAS,CAAC,YAAa,iBAErBlK,KAAK2J,MAAMa,QAAQxK,KAAKqF,WAAWkF,IAAIH,MAAK,SAACC,GAGhD,OAFAjH,EAAK8G,SAAS,CAAC,YAAa,iBAAiB,GAEtCG,CACX,GACJ,GAEA,CAAA3L,IAAA,SAAAC,MAKA,WAAS,IAAA8L,EAAAzK,KAGL,OAFAA,KAAKkK,SAAS,CAAC,YAAa,gBAErBlK,KAAK2J,MAAMe,WAAW1K,KAAKqF,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,EAAWpI,SAASqI,GACjD,MAAM,IAAIC,MAAK,GAAApN,OAAImN,4BAGvB/K,KAAK+K,GAAQF,CACjB,CAEA,OAAO7K,IACX,GAEA,CAAAtB,IAAA,QAAAC,MAKA,WAOI,OANAqB,KAAKkJ,gBAAkB,GACvBlJ,KAAKmJ,QAAU,GACfnJ,KAAKoJ,WAAY,EACjBpJ,KAAKqJ,UAAW,EAChBrJ,KAAKuJ,aAAc,EAEZvJ,IACX,GAEA,CAAAtB,IAAA,QAAAC,MAKA,WAII,OAHAqB,KAAK2K,QACL3K,KAAKiL,UAAY,GAEVjL,IACX,GAEA,CAAAtB,IAAA,OAAAC,MAKA,WAAmB,IAAdmG,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACL8H,EAAarF,KAAKkL,gBAExB,OAAI3H,EAAQvD,KAAKuK,IACNvK,KAAKmK,OAAO9E,IAGG,IAAtBP,EAAQqG,UACDnL,KAAKoL,YAGTpL,KAAKsK,OAAOjF,EACvB,GAEA,CAAA3G,IAAA,YAAAC,MAKA,WAII,IAHA,IAAM0M,EAAqBlF,OAAOmF,KAAKtL,KAAKkJ,iBACtCA,EAAkB,CAAA,EAEfpL,EAAI,EAAGA,EAAIuN,EAAmB7N,OAAQM,IAAK,CAChD,IAAMY,EAAM2M,EAAmBvN,GAC/BoL,EAAgBxK,GAAOsB,KAAK+J,aAAarL,EAC7C,CAEA,OAAOsB,KAAKsK,OAAOpB,EACvB,GAEA,CAAAxK,IAAA,OAAAqB,IAKA,WACI,OAAOC,KAAK+J,aAAa,OAAQ,CAAE,EACvC,GAEA,CAAArL,IAAA,YAAAqB,IAKA,WACI,OAAOC,KAAKuL,kBAAkB,cAAgB,IAAIC,KAAKxL,KAAK+J,aAAa,eAAiB,IAC9F,GAEA,CAAArL,IAAA,YAAAqB,IAKA,WACI,OAAOC,KAAKuL,kBAAkB,cAAgB,IAAIC,KAAKxL,KAAK+J,aAAa,eAAiB,IAC9F,GAEA,CAAArL,IAAA,WAAAqB,IAKA,WACI,OAAOC,KAAKyL,cAAc,CAAC,aAAc,MAC7C,GAEA,CAAA/M,IAAA,UAAAqB,IAKA,WACI,OAAkD,IAA3CoG,OAAOC,OAAOpG,gBAAA,EAAAA,KAAMqF,YAAY7H,MAC3C,GAEA,CAAAkB,IAAA,QAAAqB,IAKA,WACI,OAAQC,KAAKuK,EACjB,GAEA,CAAA7L,IAAA,UAAAqB,IAKA,WACI,OAAQC,KAAK0L,OAAS1L,KAAK2L,QAC/B,GAEA,CAAAjN,IAAA,YAAAqB,IAKA,WACI,OAAOC,KAAKyL,cAAc,CAAC,UAAW,QAC1C,GAEA,CAAA/M,IAAA,gBAAAC,MAKA,SAAc2B,GAAU,IAAAsL,EAAAC,EAAA7L,KACpB,MAAwB,mBAAbM,GAIX6F,OAAOmF,aAAIM,EAAC5L,gBAAA,EAAAA,KAAMqF,kBAAU,IAAAuG,EAAAA,EAAI,IAAI7K,SAAQ,SAAC+K,GACzC,IAAMnN,EAAQkN,EAAK9B,aAAa+B,GAChCxL,EAAST,KAAKgM,EAAMlN,EAAOmN,EAC/B,IANW9L,IASf,GAEA,CAAAtB,IAAA,UAAAC,MAKA,WACI,OAAOqB,KAAKmJ,OAChB,GAEA,CAAAzK,IAAA,qBAAAC,MAKA,WACI,OAAOqB,KAAKkJ,eAChB,GAEA,CAAAxK,IAAA,UAAAC,MAMA,SAAQmN,GACJ,OAAOA,KAAY9L,KAAKkJ,eAC5B,GAEA,CAAAxK,IAAA,qBAAAC,MAKA,WAAqB,IAAAoN,EACjB,OAAO5F,OAAOmF,KAA0BS,QAAtBA,EAAC/L,gBAAI,EAAJA,KAAMkJ,uBAAe6C,IAAAA,EAAAA,EAAI,CAAE,GAAEvO,OAAS,CAC7D,GAEA,CAAAkB,IAAA,SAAAC,MAMA,SAAOmN,EAAUnN,GACbqB,KAAKqF,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,OAAO9L,KAAKiM,cAAcH,GAG9B,IAAMI,EAA0C,QAA7BF,EAAGhM,gBAAA,EAAAA,KAAMqF,WAAWyG,UAASE,IAAAA,EAAAA,EAAI,KAkBpD,OAfAvD,EAAIzI,KAAKqF,WAAYyG,EAAUnN,GAC/B8J,EAAIzI,KAAKkJ,gBAAiB4C,EAAUI,GAG/BnP,EAAQiD,gBAAI,EAAJA,KAAMmJ,QAAQ2C,MACvB9L,KAAKmJ,QAAQ2C,GAAY,IAG7B9L,KAAKmJ,QAAQ2C,GAAU7K,KAAK,CACxB6K,SAAAA,EACAI,cAAAA,EACAvN,MAAAA,EACAwN,UAAW,IAAIX,OAGZxL,IACX,GAEA,CAAAtB,IAAA,gBAAAC,MAKA,WAA+B,IAAjB0G,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACvB,IAAK,IAAIuO,KAAYzG,EACjBrF,KAAKoM,aAAaN,EAAUzG,EAAWyG,IAG3C,OAAO9L,IACX,GAEA,CAAAtB,IAAA,eAAAC,MAMA,SAAa0N,GAAgC,IAAAC,EAArBC,EAAYhP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAC7BoB,EAAQoB,EAAoB,QAAjBuM,EAACtM,gBAAA,EAAAA,KAAMqF,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,EAACxM,KAAKqF,kBAAU,IAAAmH,EAAAA,EAAI,CAAE,GAEvD,OAAOC,EAAWE,OAAM,SAACC,GAAI,OAAKF,EAAchK,SAASkK,KAC7D,CAEA,QAAK5M,aAAAA,KAAMqF,aAIJyG,KAAY9L,KAAKqF,UAC5B,GAEA,CAAA3G,IAAA,gBAAAC,MAMA,WAA+B,IAAjB8N,EAAUlP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACvB,OAAOyC,KAAK6M,aAAaJ,EAC7B,GAEA,CAAA/N,IAAA,oBAAAC,MAMA,SAAkBmN,GAAU,IAAAgB,EAAA9M,KACxB,OAAIjD,EAAQ+O,GACD9L,KAAK6M,aAAaf,IAAaA,EAASa,OAAM,SAACC,GAAI,OAAMrJ,EAAQuJ,EAAK/C,aAAa6C,OAGvF5M,KAAK6M,aAAaf,KAAcvI,EAAQvD,KAAK+J,aAAa+B,GACrE,GAEA,CAAApN,IAAA,gBAAAC,MAMA,SAAc8N,GACV,IAAMpH,EAAa,CAAA,EAEnB,GAAIoH,QACA,OAAOzM,KAAKkL,cAAc/E,OAAOmF,KAAKtL,KAAKqF,aAG/C,GAA0B,iBAAfoH,EACP,OAAOzM,KAAK+J,aAAY/M,MAAA+P,UAAA/O,MAAA6B,KAAKtC,YAGjC,IAAKR,EAAQ0P,GACT,MAAM,IAAIzB,MAAM,qCACnB,IAE+BzJ,EAF/BC,EAAAC,EAEqBgL,GAAU,IAAhC,IAAAjL,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAkC,CAAA,IAAAoL,EAAAC,EACxBnB,EADQvK,EAAA5C,MAGd,GAAwB,iBAAbmN,EAAX,CAIA,IAAInN,EAAQqB,KAAK+J,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,MAAAsD,GAAAT,EAAAU,EAAAD,EAAA,CAAA,QAAAT,EAAAW,GAAA,CAED,OAAOkD,CACX,GAEA,CAAA3G,IAAA,YAAAC,MAKA,WACI,OAAOqB,KAAKkL,eAChB,GAEA,CAAAxM,IAAA,kBAAAC,MAMA,WAAiC,IAAAuO,EAAjB7H,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnB4P,EAAkCD,QAAnBA,EAAGlN,gBAAI,EAAJA,KAAMqF,sBAAU6H,EAAAA,EAAI,GAG5C,OAFAlN,KAAKqF,WAAU+B,EAAAA,EAAQ+F,CAAAA,EAAAA,GAAoB9H,GAEpCrF,KAAKqF,UAChB,GAEA,CAAA3G,IAAA,iBAAAC,MAMA,WAA0B,IAAXiJ,EAAIrK,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAClByC,KAAKqF,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,OAAOyC,KAAKgJ,QAAQjJ,IAAG,GAAAnC,OAAIoC,KAAKuN,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,OAAOyC,KAAKgJ,QAAQjJ,IAAG,GAAAnC,OAAIoC,KAAKuN,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,OAAOyC,KAAKgJ,QAAQ0E,KAAI,GAAA9P,OAAIoC,KAAKuN,UAAS,KAAA3P,OAAI2M,EAAe+C,aAAAA,EAAQxI,GAASsF,KAAKpK,KAAK2N,WAAWpN,KAAKP,MAC3G,EAED5C,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,OAAOyC,KAAKgJ,QAAQ0E,KAAI,GAAA9P,OAAIoC,KAAKuN,UAAS,KAAA3P,OAAI2M,EAAY+C,UAAAA,EAAQxI,GAASsF,KAAKpK,KAAK2N,WAAWpN,KAAKP,MACxG,EAED4N,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,OAAOyC,KAAKgJ,QAAQ0E,KAAI,GAAA9P,OAAIoC,KAAKuN,UAAS,KAAA3P,OAAI2M,EAAsB+C,oBAAAA,EAAQxI,GAASsF,KAAKpK,KAAK2N,WAAWpN,KAAKP,MAClH,EAED6N,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,IAG3BvK,KAAKgJ,QAAQ0E,KAAI9P,GAAAA,OAAIoC,KAAKuN,UAAS,KAAA3P,OAAI2M,EAAE3M,qBAAAA,OAAoBkQ,GAAiBR,EAAQxI,GAASsF,KAAKpK,KAAK2N,WAAWpN,KAAKP,MACnI,EAED+N,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,IAGnBvK,KAAKgJ,QAAQ0E,KAAI,GAAA9P,OAAIoC,KAAKuN,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,IAGnBvK,KAAKgJ,QAAQ0E,KAAI,GAAA9P,OAAIoC,KAAKuN,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,OAAOyC,KAAKgJ,QAAQ0E,KAAI,GAAA9P,OAAIoC,KAAKuN,UAAS,KAAA3P,OAAI2M,EAAe+C,aAAAA,EAAQxI,GAASsF,KAAKpK,KAAK2N,WAAWpN,KAAKP,MAC3G,EAEDmO,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,OAAOyC,KAAKgJ,QAAO,OAAOpL,GAAAA,OAAIoC,KAAKuN,UAAS3P,KAAAA,OAAI2M,EAAE,WAAW+C,EAAQxI,GAASsF,KAAKpK,KAAK2N,WAAWpN,KAAKP,MAC5G,IAGEoO,WAAKC,GAAA/O,EAAA8O,EAAAC,GAAA,IAAA9O,EAAAC,EAAA4O,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,OAAAoC,OAAAyO,GAAA7O,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,QAAO5B,EAAA,CAAIwB,QAASwE,GAAiBtI,GACpE,CAwFC,OAxFAhF,EAAAsO,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,OAAOyC,KAAK2J,MAAM0D,mBAAmBrN,KAAKuK,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,OAAOyC,KAAK2J,MAAM8D,SAASzN,KAAKuK,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,OAAOyC,KAAK2J,MAAMvM,MAAM4C,KAAKuK,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,OAAOyC,KAAK2J,MAAMkE,eAAe7N,KAAKuK,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,OAAOyC,KAAK2J,MAAMoE,cAAc/N,KAAKuK,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,OAAOyC,KAAK2J,MAAMsE,iBAAiBjO,KAAKuK,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,OAAOyC,KAAK2J,MAAM6D,gBAAgBxN,KAAKuK,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,OAAOyC,KAAK2J,MAAMiE,eAAe5N,KAAKuK,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,OAAOyC,KAAK2J,MAAMwE,OAAOnO,KAAKuK,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,OAAOyC,KAAK2J,MAAMuE,SAASlO,KAAKuK,GAAI+C,EAAQxI,EAChD,GAAC,CAAApG,IAAA,eAAAqB,IAED,WACI,OAA8C,OAAvCC,KAAK+J,aAAa,gBAC7B,GAAC,CAAArL,IAAA,kBAAAqB,IAED,WACI,OAA6C,MAAtCC,KAAK+J,aAAa,gBAC7B,GAAC,CAAArL,IAAA,YAAAqB,IAED,WACI,OAA2C,OAApCC,KAAK+J,aAAa,aAC7B,GAAC,CAAArL,IAAA,eAAAqB,IAED,WACI,OAA0C,MAAnCC,KAAK+J,aAAa,aAC7B,GAAC,CAAArL,IAAA,cAAAqB,IAED,WACI,MAAsC,aAA/BC,KAAK+J,aAAa,SAC7B,GAAC,CAAArL,IAAA,aAAAqB,IAED,WACI,MAAsC,YAA/BC,KAAK+J,aAAa,SAC7B,GAAC,CAAArL,IAAA,YAAAqB,IAED,WACI,MAAsC,kBAA/BC,KAAK+J,aAAa,WAAiE,YAAhC/J,KAAK+J,aAAa,SAChF,GAAC,CAAArL,IAAA,eAAAqB,IAED,WACI,OAAOC,KAAKsO,YAActO,KAAKuO,aAAevO,KAAKwO,WACvD,GAAC,CAAA9P,IAAA,cAAAqB,IAED,WACI,OAAOC,KAAKuL,kBAAkB,gBAAkB,IAAIC,KAAKxL,KAAK+J,aAAa,iBAAmB,IAClG,GAAC,CAAArL,IAAA,YAAAqB,IAED,WACI,OAAOC,KAAKuL,kBAAkB,cAAgB,IAAIC,KAAKxL,KAAK+J,aAAa,eAAiB,IAC9F,GAAC,CAAArL,IAAA,eAAAqB,IAED,WACI,OAAOC,KAAKuL,kBAAkB,iBAAmB,IAAIC,KAAKxL,KAAK+J,aAAa,kBAAoB,IACpG,GAAC,CAAArL,IAAA,SAAAqB,IAED,WACI,OAAOC,KAAK+J,aAAa,SAC7B,KAACqE,CAAA,EA3FepK,GCtDdyK,WAAOJ,GAAA/O,EAAAmP,EAAAJ,GAAA,IAAA9O,EAAAC,EAAAiP,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,OAAAoC,OAAA8O,GAAAlP,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,UAAWlE,EAC1C,CAyCC,OAvCDhF,EAAA2O,EAAA,CAAA,CAAA/P,IAAA,SAAAC,MAOA,SAAO+P,GACH,GAGJ,CAAAhQ,IAAA,WAAAqB,IAKA,WAAgB,GAEhB,CAAArB,IAAA,UAAAqB,IAKA,WAAe,GAEf,CAAArB,IAAA,SAAAqB,IAKA,WAAc,GAEd,CAAArB,IAAA,YAAAqB,IAKA,WACI,OAAO,IAAIzB,EAAW0B,KAAK2O,UAC/B,KAACF,CAAA,EA5CiBzK,GCDhB4K,YAAMP,GAAA/O,EAAAsP,EAAAP,GAAA,IAAA9O,EAAAC,EAAAoP,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,OAAAoC,OAAAiP,GAAArP,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,SAAUlE,EACzC,CAAC,OAAAhF,EAAA8O,EAAA,EAHgB5K,GCCf6K,YAAKR,GAAA/O,EAAAuP,EAAAR,GAAA,IAAA9O,EAAAC,EAAAqP,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,OAAAoC,OAAAkP,GAAAtP,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,QAASlE,EACxC,CAsBC,OAtBAhF,EAAA+O,EAAA,CAAA,CAAAnQ,IAAA,WAAAqB,IA6BD,WAAe,IAAA+O,EACX,eAAAA,EAAO9O,KAAK+J,aAAa,WAAY,IAAI1C,UAAQ,IAAAyH,OAAA,EAA1CA,EAA4C7I,YAAY,EACnE,GAEA,CAAAvH,IAAA,YAAAqB,IAKA,WAAgB,IAAAgP,EACZ,eAAAA,EAAO/O,KAAK+J,aAAa,WAAY,IAAI1C,UAAQ,IAAA0H,OAAA,EAA1CA,EAA4C9I,YAAY,EACnE,GAEA,CAAAvH,IAAA,cAAAqB,IAKA,WAGI,MAAO,CAFyBC,KAAxBsH,SAAwBtH,KAAduH,UAGtB,GAEA,CAAA7I,IAAA,WAAAC,MAMA,SAASqQ,GASL,OARIlL,EAAWkL,IACXhP,KAAKoM,aAAa,QAAS4C,EAAMzE,IAGhB,iBAAVyE,GACPhP,KAAKoM,aAAa,QAAS4C,GAGxBhP,IACX,IAAC,CAAA,CAAAtB,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,cACpCqF,QAAS,KACT/I,KAAM4I,EAAclF,aAAa,QACjCsF,SAAUJ,EAAclF,aAAa,aACrCuF,YAAaL,EAAclF,aAAa,cACxCwF,aAAcN,EAAclP,IAAI,gBAChCyP,SAAUP,EAAclF,aAAa,UACrC0F,SAAUR,EAAclP,IAAI,YAC5B4G,QAASsI,EAAclF,aAAa,gBACpC2F,MAAO,KACPC,qBAAsB,MAGG3G,EAASlE,EAC1C,KAAC+J,CAAA,EAzBe7K,GCDd4L,YAAQC,GAAAvQ,EAAAsQ,EAAAC,GAAA,IAAAtQ,EAAAC,EAAAoQ,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,OAAAoC,OAAAiQ,GAAArQ,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,WAAYlE,EAC3C,CAAC,OAAAhF,EAAA8P,EAAA,EAHkBf,ICAjBiB,YAAczB,GAAA/O,EAAAwQ,EAAAzB,GAAA,IAAA9O,EAAAC,EAAAsQ,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,OAAAoC,OAAAmQ,GAAAvQ,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,kBAAmBlE,EAClD,CAAC,OAAAhF,EAAAgQ,EAAA,EAHwB9L,GCAvB+L,YAAO1B,GAAA/O,EAAAyQ,EAAA1B,GAAA,IAAA9O,EAAAC,EAAAuQ,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,OAAAoC,OAAAoQ,GAAAxQ,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,UAAWlE,EAC1C,CAAC,OAAAhF,EAAAiQ,EAAA,EAHiB/L,GCChBgM,GAAgB,IAAIrH,EAAa,CAEnCsH,MAAO,SAAUC,GAA4C,IAAlCC,EAAQ5S,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAM8H,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAErD,GfPQ,WACZ,MAAO,iDAAiDsG,KADtCtG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAEzB,CeKY6S,CAAQF,GACR,OAAOlQ,KAAKgJ,QAAQ0E,KAAK,yBAA0B,CAAEgC,MAAOQ,IAGhE,IAAKC,EACD,MAAM,IAAInF,MAAM,4BAGpB,OAAOhL,KAAKgJ,QAAQ0E,KAAK,gBAAetG,EAAA,CAAI8I,SAAAA,EAAUC,SAAAA,GAAa9K,IAAc+E,KAAKpK,KAAK2N,WAAWpN,KAAKP,MAC9G,EAEDqQ,WAAY,SAAUH,EAAUI,GAAuB,IAAjBjL,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC/C,OAAOyC,KAAKgJ,QAAQ0E,KAAK,sBAAqBtG,EAAA,CAAI8I,SAAAA,EAAUI,KAAAA,GAASjL,IAAc+E,KAAKpK,KAAK2N,WAAWpN,KAAKP,MAChH,EAEDuQ,MAAO,SAAUhG,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,OAAOyC,KAAKgJ,QAAQ0E,gBAAI9P,OAAY2M,EAAE,UAAU+C,EAAQxI,GAASsF,KAAKpK,KAAK2N,WAAWpN,KAAKP,MAC9F,EAEDwQ,SAAU,SAAUjG,GAChB,OAAOvK,KAAK0K,WAAWH,EAC1B,EAEDkG,WAAU,SAAClG,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,OAAOyC,KAAKgJ,QAAQ0E,KAAI,WAAA9P,OAAY2M,EAAE,oBAAoB+C,EAAQxI,EACtE,IAGE4L,YAAMrC,GAAA/O,EAAAoR,EAAArC,GAAA,IAAA9O,EAAAC,EAAAkR,GACR,SAAAA,IAAoD,IAAxCrL,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,OAAAoC,OAAA+Q,GAAAnR,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,SAAQ5B,EAAA,CAAIwB,QAASoH,IAAkBlL,GACtE,CA6CC,OA7CAhF,EAAA4Q,EAAA,CAAA,CAAAhS,IAAA,QAAAqB,IAED,WACI,OAAOC,KAAK+J,aAAa,QAC7B,GAAC,CAAArL,IAAA,WAAAqB,IAED,WACI,OAAuC,IAAhCC,KAAK+J,aAAa,SAC7B,GAEA,CAAArL,IAAA,WAAAqB,IAKA,WAAe,IAAA+O,EACX,eAAAA,EAAO9O,KAAK+J,aAAa,WAAY,IAAI1C,cAAQ,IAAAyH,OAAA,EAA1CA,EAA4C7I,YAAY,EACnE,GAEA,CAAAvH,IAAA,YAAAqB,IAKA,WAAgB,IAAAgP,EACZ,eAAAA,EAAO/O,KAAK+J,aAAa,WAAY,IAAI1C,cAAQ,IAAA0H,OAAA,EAA1CA,EAA4C9I,YAAY,EACnE,GAEA,CAAAvH,IAAA,cAAAqB,IAKA,WAGI,MAAO,CAFyBC,KAAxBsH,SAAwBtH,KAAduH,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,OAAOyC,KAAK2J,MAAM4G,MAAMvQ,KAAKuK,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,OAAOyC,KAAK2J,MAAM8G,WAAWzQ,KAAKuK,GAAI+C,EAAQxI,EAClD,KAAC4L,CAAA,EAhDgB1M,GCjCf2M,YAAMtC,GAAA/O,EAAAqR,EAAAtC,GAAA,IAAA9O,EAAAC,EAAAmR,GACR,SAAAA,IAAoD,IAAxCtL,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,OAAAoC,OAAAgR,GAAApR,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,SAAUlE,EACzC,CAAC,OAAAhF,EAAA6Q,EAAA,EAHgB3M,GCCf4M,GAAsB,IAAIjI,EAAa,CACzCR,QAAS,WACL,OAAOnI,KAAKgJ,QAAQjJ,IAAG,GAAAnC,OAAIoC,KAAKuN,UAAS,YAC7C,IAGEsD,YAAYxC,GAAA/O,EAAAuR,EAAAxC,GAAA,IAAA9O,EAAAC,EAAAqR,GACd,SAAAA,IAAoD,IAAxCxL,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,OAAAoC,OAAAkR,GAAAtR,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,eAAc5B,EAAA,CAAIwB,QAASgI,IAAwB9L,GAClF,CAAC,OAAAhF,EAAA+Q,EAAA,EAHsB7M,GCPrB8M,YAAOzC,GAAA/O,EAAAwR,EAAAzC,GAAA,IAAA9O,EAAAC,EAAAsR,GACT,SAAAA,IAAoD,IAAxCzL,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,OAAAoC,OAAAmR,GAAAvR,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,UAAWlE,EAC1C,CAAC,OAAAhF,EAAAgR,EAAA,EAHiB9M,GCAhB+M,YAAI1C,GAAA/O,EAAAyR,EAAA1C,GAAA,IAAA9O,EAAAC,EAAAuR,GACN,SAAAA,IAAoD,IAAxC1L,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,OAAAoC,OAAAoR,GAAAxR,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,OAAQlE,EACvC,CAAC,OAAAhF,EAAAiR,EAAA,EAHc/M,GCAbgN,YAAW3C,GAAA/O,EAAA0R,EAAA3C,GAAA,IAAA9O,EAAAC,EAAAwR,GACb,SAAAA,IAAoD,IAAxC3L,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,OAAAoC,OAAAqR,GAAAzR,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,eAAgBlE,EAC/C,CAAC,OAAAhF,EAAAkR,EAAA,EAHqBhN,GCApBiN,YAAW5C,GAAA/O,EAAA2R,EAAA5C,GAAA,IAAA9O,EAAAC,EAAAyR,GACb,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,OAAAoC,OAAAsR,GAAA1R,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,eAAgBlE,EAC/C,CAAC,OAAAhF,EAAAmR,EAAA,EAHqBjN,GCApBkN,YAAY7C,GAAA/O,EAAA4R,EAAA7C,GAAA,IAAA9O,EAAAC,EAAA0R,GACd,SAAAA,IAAoD,IAAxC7L,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,OAAAoC,OAAAuR,GAAA3R,EAAAM,KACxCwF,KAAAA,EAAY2D,EAAS,gBAAiBlE,EAChD,CAIgB,OAJfhF,EAAAoR,EAAA,CAAA,CAAAxS,IAAA,kBAAAC,MAED,WAAmB,GAAC,CAAAD,IAAA,cAAAC,MAEpB,WAAe,KAACuS,CAAA,EAPOlN,GCFrBmN,GAAOrR,GAMT,SAAAqR,IAAyB,IAAbC,EAAM7T,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAEoC,OAAAwR,GACnBnR,KAAKwJ,QAAU4H,EAAO5H,SAAW,KACjCxJ,KAAKqR,KAAOD,EAAOC,MAAQ,KAC3BrR,KAAKuN,UAAY6D,EAAO7D,WAAa,KACrCvN,KAAKsR,QAAUF,EAAOE,SAAW,CAAA,CACrC,ICREC,YAAcC,GAAAlS,EAAAiS,EAAAC,GAAA,IAAAjS,EAAAC,EAAA+R,GAKhB,SAAAA,EAAYH,GAAQ,IAAApH,EAOb,OAParK,OAAA4R,IAChBvH,EAAAzK,EAAAM,UAAMuR,IAEDK,WAAW,CACZC,wBAAa9T,OAAYwT,EAAOO,WAChC,eAAgB,mBAChB,aAAc,2BACf3H,CACP,CA0IC,OAxIDlK,EAAAyR,EAAA,CAAA,CAAA7S,IAAA,aAAAC,MAKA,WAAyB,IAAd2S,EAAO/T,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAGjB,OAFAyC,KAAKsR,QAAOlK,EAAAA,EAAQ,CAAA,EAAApH,KAAKsR,SAAYA,GAE9BtR,IACX,GAEA,CAAAtB,IAAA,YAAAC,MAQA,SAAU0L,GACN,OAAO,IAAIuH,SAAQ,SAACC,EAASC,GAAM,OAC/BzH,EACKzC,OACAwC,MAAK,SAACxC,GAAI,OACPiK,EAAQ,CACJE,WAAY1H,EAAS0H,WACrBC,OAAQ3H,EAAS2H,OACjBC,GAAI5H,EAAS4H,GACbrK,KAAAA,OAGF,OAAC,WACHkK,EAAO,IAAI9G,MAAM,0DACrB,GAAE,GAEd,GAEA,CAAAtM,IAAA,UAAAC,MAUA,SAAQsJ,GAA+C,IAAA/H,EAAAF,KAAzCkS,EAAM3U,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,IAAIqU,SAAQ,SAACC,EAASC,GAAM,OAC/BK,MAAMrN,EAAQsN,KAAGxU,GAAAA,OAAOsC,EAAKmR,UAAIzT,OAAIsC,EAAKqN,UAAS,KAAA3P,OAAIqK,GAAMb,EAAA,CACzD8K,OAAAA,EACAG,KAAMvN,EAAQuN,MAAQ,OACtBf,QAAS,IAAIgB,QAAOlL,EAAAA,KACZlH,EAAKoR,SAAW,CAAE,GAClBxM,EAAQwM,SAAW,CAAE,KAE1B3L,IAEFyE,KAAKlK,EAAKqS,WACVnI,MAAK,SAACC,GACH,OAAIA,EAAS4H,GACFJ,EAAQxH,EAASzC,MAGrBkK,EAAO,IAAI9G,MAAMX,EAASzC,KAAK4K,OAASnI,EAASzC,KAAK4K,OAAO,GAAKnI,EAAS0H,YACtF,IAAE,OACK,SAACU,GACJX,EAAOW,EACX,GAAE,GAEd,GAEA,CAAA/T,IAAA,MAAAC,MASA,SAAIsJ,GAAgC,IAA1ByK,EAAKnV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtBoV,EAAa/O,EAAQ8O,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,WAE/D,OAAO7S,KAAK8S,QAAOlV,GAAAA,OAAIqK,GAAIrK,OAAG+U,EAAS,IAAA/U,OAAO+U,GAAc,IAAM,MAAO,CAAA,EAAI7N,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,OAAOyC,KAAK8S,QAAQ7K,EAAM,OAAQ,CAAE8K,KAAMC,KAAKC,UAAUtN,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,OAAOyC,KAAK8S,QAAQ7K,EAAM,MAAO,CAAE8K,KAAMC,KAAKC,UAAUtN,IAASb,EACrE,GAEA,CAAApG,IAAA,SAAAC,MASA,SAAOsJ,GAAoB,IAAdnD,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnB,OAAOyC,KAAK8S,QAAQ7K,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,OAAOyC,KAAK8S,QAAQ7K,EAAM,QAAS,CAAE8K,KAAMC,KAAKC,UAAUtN,IAASb,EACvE,KAACyM,CAAA,EAvJwBJ,ICEvB+B,YAAW1B,GAAAlS,EAAA4T,EAAA1B,GAAA,IAAAjS,EAAAC,EAAA0T,GACb,SAAAA,EAAY9B,GAAQ,IAAApH,EAUb,OAVarK,OAAAuT,IAChBlJ,EAAAzK,EAAAM,UAAMuR,IAED+B,MAAQA,EAAMhJ,OAAO,CACtBiJ,QAAOxV,GAAAA,OAAKoM,EAAKqH,KAAIzT,KAAAA,OAAIoM,EAAKuD,WAC9B+D,QAAS,CACLI,wBAAa9T,OAAYwT,EAAOO,WAChC,eAAgB,mBAChB,aAAc,yBAEnB3H,CACP,CAiHC,OA/GDlK,EAAAoT,EAAA,CAAA,CAAAxU,IAAA,aAAAC,MAKA,WAAyB,IAAd2S,EAAO/T,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACX8V,EAAgBrT,KAAKmT,MAAMG,SAAShC,QAAQiC,OAGlD,OAFAvT,KAAKmT,MAAMG,SAAShC,QAAQiC,OAAMnM,EAAAA,EAAA,CAAA,EAAQiM,GAAkB/B,GAErDtR,IACX,GAEA,CAAAtB,IAAA,YAAAC,MAMA,SAAU0L,GACN,OAAOA,EAAS1E,IACpB,GAEA,CAAAjH,IAAA,cAAAC,MAMA,SAAY8T,GACR,GAAIA,EAAMpI,SAAU,CAChB,IAAQ1E,EAAS8M,EAAMpI,SAAf1E,KAER,GAAI5I,EAAQ4I,EAAK6M,QACb,MAAM,IAAIxH,MAAMrF,EAAK6M,OAAO,IAGhC,GAAI7M,EAAK8M,MACL,MAAM,IAAIzH,MAAMrF,EAAK8M,MAE7B,CAEA,MAAMA,CACV,GAEA,CAAA/T,IAAA,MAAAC,MASA,SAAIsJ,GAAgC,IAA1ByK,EAAKnV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtBoV,EAAa/O,EAAQ8O,GAAiD,GAAxC,IAAIE,gBAAgBF,GAAOG,WAE/D,OAAO7S,KAAKmT,MACPpT,IAAGnC,GAAAA,OAAIqK,GAAIrK,OAAG+U,MAAS/U,OAAO+U,GAAc,IAAM7N,GAClDsF,KAAKpK,KAAKwT,UAAUjT,KAAKP,aACnBA,KAAKyT,YAAYlT,KAAKP,MACrC,GAEA,CAAAtB,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,OAAOyC,KAAKmT,MAAMzF,KAAKzF,EAAMtC,EAAMb,GAASsF,KAAKpK,KAAKwT,UAAUjT,KAAKP,OAAY,MAACA,KAAKyT,YAAYlT,KAAKP,MAC5G,GAEA,CAAAtB,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,OAAOyC,KAAKmT,MAAMO,IAAIzL,EAAMtC,EAAMb,GAASsF,KAAKpK,KAAKwT,UAAUjT,KAAKP,OAAY,MAACA,KAAKyT,YAAYlT,KAAKP,MAC3G,GAEA,CAAAtB,IAAA,SAAAC,MASA,SAAOsJ,GAAoB,IAAdnD,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnB,OAAOyC,KAAKmT,MAAK,OAAQlL,EAAMnD,GAASsF,KAAKpK,KAAKwT,UAAUjT,KAAKP,aAAaA,KAAKyT,YAAYlT,KAAKP,MACxG,GAEA,CAAAtB,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,OAAOyC,KAAKmT,MAAMQ,MAAM1L,EAAMtC,EAAMb,GAASsF,KAAKpK,KAAKwT,UAAUjT,KAAKP,OAAY,MAACA,KAAKyT,YAAYlT,KAAKP,MAC7G,KAACkT,CAAA,EA7HqB/B,ICHpByC,YAAcpC,GAAAlS,EAAAsU,EAAApC,GAAA,IAAAjS,EAAAC,EAAAoU,GAAA,SAAAA,IAAA,OAAAjU,OAAAiU,GAAArU,EAAA5B,MAAAqC,KAAAzC,UAAA,CAAA,OAAAuC,EAAA8T,EAAA,EAASzC,ICoBR0C,GAAM,WACvB,SAAAA,EAAYC,GAAsB,IAAdC,IAAKxW,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAOoC,OAAAkU,GAAAG,EAAAhU,KAAA,mBAKb,CAAC,YAAa,cAAe,OAAQ,QAAS,UAAW,SAAU,OAAQ,QAAS,QAAS,OAAQ,SAAOgU,EAAAhU,KAAA,cAEjH,CACV,CAAC,IAAIiU,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,EAEehU,KAAA,gBAAA,CACZ,CAAC,IAAIiU,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,EAAAhU,KAAA,qBAEoB,CAAC,MAAO,KAAM,MAAO,IAAK,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,OAAQ,OAAQ,KAAM,OAAQ,MAAO,MAAO,KAAM,OAAQ,OAAQ,QAAMgU,kBAE9J,IAAIC,OAAO,cAAe,MAAID,kBAC9B,IAAIC,OAAO,IAAK,MAAID,yBACb,IAAIC,OAAO,OAAQ,MAAID,mBAC7B,IAAIC,OAAO,UAAW,MAAID,EACrBhU,KAAA,iBAAA,IAAIiU,OAAO,OAhExBjU,KAAKkU,IAAMJ,EACX9T,KAAK+T,MAAQA,CACjB,CAkaC,OAlaAjU,EAAA+T,EAAA,CAAA,CAAAnV,IAAA,MAAAC,MAgED,WACI,OAAOqB,KAAKkU,GAChB,GAAC,CAAAxV,IAAA,aAAAC,MAED,SAAWuV,EAAKC,EAAOC,EAAMC,GACzB,GAAIA,EACAH,EAAMG,OAGN,KADaD,EAAKnV,QAAQiV,EAAII,gBAAkB,GAE5C,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAM3W,OAAQ+W,IAC9B,GAAIL,EAAIM,MAAML,EAAMI,GAAG,IAAK,CACxBL,EAAMA,EAAIhX,QAAQiX,EAAMI,GAAG,GAAIJ,EAAMI,GAAG,IACxC,KACJ,CAQZ,OAFAvU,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,YAAAC,MAMA,SAAUuV,GAAoB,IAAfO,EAAMlX,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAGpB,OAFA2W,EAAMA,GAAOlU,KAAKkU,IAEXlU,KAAK0U,WAAWR,EAAKlU,KAAK2U,YAAa3U,KAAK4U,iBAAkBH,EACzE,GAEA,CAAA/V,IAAA,cAAAC,MAMA,SAAYuV,EAAKW,GAGb,OAFAX,EAAMA,GAAOlU,KAAKkU,IAEXlU,KAAK0U,WAAWR,EAAKlU,KAAK8U,cAAe9U,KAAK4U,iBAAkBC,EAC3E,GAEA,CAAAnW,IAAA,WAAAC,MAIA,SAASuV,EAAKa,GAIV,IADA,IAAIC,GAFJd,EAAMA,GAAOlU,KAAKkU,KAEC3L,MAAM,KAChBzK,EAAI,EAAGA,EAAIkX,EAASxX,OAAQM,IAAK,CAItC,IAHA,IAAImX,EAAUD,EAASlX,GAAGyK,MAAM,KAGvBgM,EAFGQ,GAAkBjX,EAAI,IAAMkX,EAASxX,OAAS,EAAI,EAE1C+W,EAAIU,EAAQzX,OAAQ+W,IACpCU,EAAQV,GAAKU,EAAQV,GAAGW,OAAO,GAAGC,cAAgBF,EAAQV,GAAGa,UAAU,GAE3EJ,EAASlX,GAAKmX,EAAQlO,KAAK,GAC/B,CAIA,GAHAmN,EAAMc,EAASjO,KAAK,OAGG,IAAnBgO,EAAyB,CACzB,IAAIM,EAAQnB,EAAIgB,OAAO,GAAGZ,cACtBgB,EAAOpB,EAAIlW,MAAM,GACrBkW,EAAMmB,EAAQC,CAClB,CAKA,OAFAtV,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,aAAAC,MAIA,SAAWuV,GAIP,IADA,IAAIc,GAFJd,EAAMA,GAAOlU,KAAKkU,KAEC3L,MAAM,MAChBzK,EAAI,EAAGA,EAAIkX,EAASxX,OAAQM,IACjCkX,EAASlX,GAAKkX,EAASlX,GAAGZ,QAAQ8C,KAAKuV,UAAW,OAClDP,EAASlX,GAAKkX,EAASlX,GAAGZ,QAAQ8C,KAAKwV,eAAgB,IAO3D,OALAtB,EAAMc,EAASjO,KAAK,KAAKuN,cAGzBtU,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,WAAAC,MAIA,SAASuV,EAAKa,GAaV,OARAb,GADAA,GADIA,GAFJA,EAAMA,GAAOlU,KAAKkU,KAEJI,eACJpX,QAAQ8C,KAAKyV,SAAU,KACvBvY,QAAQ8C,KAAK0V,SAAU,KAC5BX,IACDb,EAAMlU,KAAK2V,WAAWzB,IAI1BlU,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,aAAAC,MAIA,SAAWuV,GASP,OALAA,GADAA,GAFAA,EAAMA,GAAOlU,KAAKkU,KAERI,eACAc,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,GAGxDpV,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,YAAAC,MAIA,SAAUuV,GASN,OALAA,GADAA,GAFAA,EAAMA,GAAOlU,KAAKkU,KAERhX,QAAQ8C,KAAK4V,gBAAiB,MAC9BtB,cAGVtU,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,UAAAC,MAKA,SAAQuV,EAAK2B,GACT3B,EAAMA,GAAOlU,KAAKkU,KAGI,IAAlB2B,GACA3B,EAAMlU,KAAK8V,SAAS5B,GACpBA,EAAMlU,KAAK+V,WAAW7B,IAEtBA,EAAMA,EAAII,cAKd,IADA,IAAIW,GADJf,EAAMA,EAAIhX,QAAQ8C,KAAK0V,SAAU,MACfnN,MAAM,KACfgM,EAAI,EAAGA,EAAIU,EAAQzX,OAAQ+W,IAAK,CAErC,IADA,IAAIyB,EAAIf,EAAQV,GAAGhM,MAAM,KAChBzK,EAAI,EAAGA,EAAIkY,EAAExY,OAAQM,IACtBkC,KAAKiW,mBAAmBhX,QAAQ+W,EAAElY,GAAGwW,eAAiB,IACtD0B,EAAElY,GAAKkC,KAAK2V,WAAWK,EAAElY,KAGjCmX,EAAQV,GAAKyB,EAAEjP,KAAK,IACxB,CAOA,OALAmN,GADAA,EAAMe,EAAQlO,KAAK,MACTqO,UAAU,EAAG,GAAGD,cAAgBjB,EAAIkB,UAAU,GAGxDpV,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,aAAAC,MAGA,SAAWuV,GAGP,IAAIe,GAFJf,EAAMA,GAAOlU,KAAKkU,KAEA3L,MAAM,MAMxB,OALA2L,EAAMe,EAAQA,EAAQzX,OAAS,GAG/BwC,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,WAAAC,MAGA,SAASuV,GAQL,OAPAA,EAAMA,GAAOlU,KAAKkU,IAElBA,EAAMlU,KAAKkW,UAAUlW,KAAK+V,WAAW7B,IAGrClU,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,WAAAC,MAGA,SAASuV,GAQL,OAPAA,EAAMA,GAAOlU,KAAKkU,IAElBA,EAAMlU,KAAKmW,YAAYnW,KAAK8V,SAAS5B,IAGrClU,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,aAAAC,MAIA,SAAWuV,GAAyB,IAApBkC,EAAU7Y,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAQtB,OAPA2W,EAAMA,GAAOlU,KAAKkU,IAElBA,EAAMlU,KAAK+V,WAAW/V,KAAKqW,WAAWnC,KAASkC,EAAa,GAAK,KAAO,KAGxEpW,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,GAEA,CAAAxV,IAAA,aAAAC,MAGA,SAAWuV,GAIP,IADA,IAAIe,GAFJf,EAAMA,GAAOlU,KAAKkU,KAEA3L,MAAM,KACfgM,EAAI,EAAGA,EAAIU,EAAQzX,OAAQ+W,IAAK,CAErC,GAAU+B,MADFC,SAAStB,EAAQV,IACV,CACX,IAAIiC,EAAMvB,EAAQV,GAAGa,UAAUH,EAAQV,GAAG/W,OAAS,GAC/CiZ,EAAKxB,EAAQV,GAAGa,UAAUH,EAAQV,GAAG/W,OAAS,GAC9CkZ,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,EAAQlO,KAAK,KAGnB/G,KAAKkU,IAAMA,GAEQ,IAAflU,KAAK+T,MACE/T,KAIJkU,CACX,IAEA,CAAA,CAAAxV,IAAA,SAAAC,MAGA,WACI,IAAMgY,EAAOxQ,OAAOC,OAAO7I,WACrBqZ,EAAW,IAAI/C,EAAO,MAAM,GAC5B3B,EAAS3U,UAAU,GAGzB,OAFAoZ,EAAKE,QAE2B,mBAArBD,EAAS1E,GACT0E,EAAS1E,GAAOvU,MAAhBiZ,EAAoBD,GAGxB,IACX,KAAC9C,CAAA,CAtasB,GAyarBqC,GAAY,WACd,IAAMS,EAAI,CAAI,aAAW/Y,OAAAZ,MAAA+P,UAAA/O,MAAA6B,KAAKtC,YAE9B,OAAOsW,GAAOiD,OAAMnZ,MAAbkW,GAAMhW,EAAW8Y,GAC5B,EAEMR,GAAc,WAChB,IAAMQ,EAAI,CAAI,eAAa/Y,OAAAZ,MAAA+P,UAAA/O,MAAA6B,KAAKtC,YAEhC,OAAOsW,GAAOiD,OAAMnZ,MAAbkW,GAAMhW,EAAW8Y,GAC5B,EAkDMI,GAAW,WACb,IAAMJ,EAAI,CAAI,YAAU/Y,OAAAZ,MAAA+P,UAAA/O,MAAA6B,KAAKtC,YAE7B,OAAOsW,GAAOiD,OAAMnZ,MAAbkW,GAAMhW,EAAW8Y,GAC5B,EC3fMK,GAAY,CACdlG,QAAAA,GACAJ,OAAAA,GACA9B,OAAAA,GACAR,MAAAA,EACAK,QAAAA,EACAI,MAAAA,GACAiB,eAAAA,GACAC,QAAAA,GACAY,OAAAA,GACAf,SAAAA,GACAmB,KAAAA,GACAC,YAAAA,GACAC,YAAAA,GACAC,aAAAA,IAGE+F,GAAW,CACb1F,eAAAA,GACA2B,YAAAA,GACAU,eAAAA,IAGEsD,GAAQ,WACV,SAAAA,IAII,OAJUvX,OAAAuX,GACVlX,KAAKgX,UAAYA,GACjBhX,KAAKiX,SAAWA,GAETjX,KAAK+E,OAAMpH,MAAXqC,KAAezC,UAC1B,CAeC,OAfAuC,EAAAoX,EAAA,CAAA,CAAAxY,IAAA,SAAAC,MAED,SAAOkH,EAAMsR,GACT,IAAMzY,EAAMwX,GAAUrQ,GAChByH,EAAStQ,MAAA+P,UAAA/O,MAAA6B,KAAItC,WAAWS,MAAM,GAEpC,IAAKgC,KAAKtB,GACN,MAAM,IAAIsM,MAAM,qCAGpB,IAAKhL,KAAKtB,GAAKyY,GACX,MAAM,IAAInM,MAAKpN,MAAAA,OAAOuY,GAAYtQ,GAAKjI,WAAAA,OAAUuZ,kBAGrD,OAAAC,EAAWpX,KAAKtB,GAAKyY,GAAUtZ,EAAIyP,GACvC,KAAC4J,CAAA,CArBS,GAwBRnS,GAAS,WACX,OAAAqS,EAAWF,GAAQla,MAAA+P,UAAA/O,MAAA6B,KAAItC,WAC3B,EChDM8Z,GAAqB,SAAC1N,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,EAAQ0O,OAAO3N,GAGZA,EAbe,IACWpI,EADXC,EAAAC,EACImH,GAAO,IAA7B,IAAApH,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAA+B,CAAA,IACrBkH,EADQvH,EAAA5C,MAGdgL,EAAM4N,cAAczO,EACxB,CAAC,CAAA,MAAA7G,GAAAT,EAAAU,EAAAD,EAAA,CAAA,QAAAT,EAAAW,GAAA,CAST,EAqBMyH,GAAK,WACP,SAAAA,EAAYX,EAAUD,GAAuB,IAAdlE,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAEoC,OAAAiK,GACvC5J,KAAKiJ,SAAWA,EAChBjJ,KAAKgJ,QAAUA,GAAWnE,IAC1B7E,KAAKuN,UAAY2I,GAAUjN,GAC3BjJ,KAAKwX,QAAU,IAAIlZ,EACnB0B,KAAK8E,QAAUA,EACf9E,KAAKuX,cAAczS,EAAQ8D,QAC/B,CA8EC,OA9EA9I,EAAA8J,EAAA,CAAA,CAAAlL,IAAA,gBAAAC,MAED,WACI,OAAO0Y,GAAmBrX,KADTzC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAExB,GAAC,CAAAmB,IAAA,UAAAC,MAED,SAAQ8Y,GAGJ,OAAOA,CACX,GAAC,CAAA/Y,IAAA,YAAAC,MAED,SAAUiJ,GACN,OAAO7C,GAAO,WAAYgS,GAAS/W,KAAKiJ,UAAWrB,EAAM5H,KAAKgJ,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,IAE0B8P,EAFpBC,EAAa,GAAGC,EAAAnW,EAEAmG,GAAI,IAA1B,IAAAgQ,EAAAlW,MAAAgW,EAAAE,EAAAjW,KAAAC,MAA4B,CAAA,IAAjBiW,EAAOH,EAAA/Y,MACdgZ,EAAW1W,KAAK0I,EAAMgE,WAAWkK,GACrC,CAAC,CAAA,MAAA5V,GAAA2V,EAAA1V,EAAAD,EAAA,CAAA,QAAA2V,EAAAzV,GAAA,CAED,OAAAiV,EAAW9Y,EAAcqZ,EAC7B,CAEA,IAAMF,EAAmB9N,EAAMhC,UAAUC,GACzC,OAAO+B,EAAMmO,QAAQL,EACzB,CA2Be9J,CAAW3N,KAAM4H,EAC5B,GAAC,CAAAlJ,IAAA,SAAAC,MAED,WAAsC,IAAAqL,EAAAhK,KAA/BqF,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC9B,OAAO,IAAIqU,QAAO,WAAA,IAAAmG,EAAAC,EAAAC,IAAAC,MAAC,SAAAC,EAAOtG,EAASC,GAAM,IAAAzH,EAAA,OAAA4N,IAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,EACdvO,EAAKhB,QAAQ0E,KAAI,GAAA9P,OAAIoM,EAAKuD,WAAalI,EAAYP,GAASsF,KAAKJ,EAAK2D,WAAWpN,KAAKyJ,IAAY,MAAC8H,GAAO,KAAA,EAA3HzH,EAAQgO,EAAAG,KAEd3G,EAAQxH,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAgO,EAAAI,OAAA,GAAAN,EACrB,KAAA,OAAAO,SAAAA,EAAAC,GAAA,OAAAZ,EAAApa,MAAAqC,KAAAzC,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,SAAAC,MAED,SAAO4L,GAAmC,IAAArK,EAAAF,KAA/BqF,EAAU9H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAClC,OAAO,IAAIqU,QAAO,WAAA,IAAAgH,EAAAZ,EAAAC,IAAAC,MAAC,SAAAW,EAAOhH,EAASC,GAAM,IAAAzH,EAAA,OAAA4N,IAAAG,MAAA,SAAAU,GAAA,cAAAA,EAAAR,KAAAQ,EAAAP,MAAA,KAAA,EAAA,OAAAO,EAAAP,KAAA,EACdrY,EAAK8I,QAAQ0K,IAAG9V,GAAAA,OAAIsC,EAAKqN,UAAS,KAAA3P,OAAI2M,GAAMlF,EAAYP,GAASsF,KAAKlK,EAAKyN,WAAWpN,KAAKL,IAAY,MAAC4R,GAAO,KAAA,EAAhIzH,EAAQyO,EAAAN,KAEd3G,EAAQxH,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAyO,EAAAL,OAAA,GAAAI,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAAjb,MAAAqC,KAAAzC,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,aAAAC,MAED,SAAW4L,GAAkB,IAAAnH,EAAApD,KAAd8E,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACrB,OAAO,IAAIqU,QAAO,WAAA,IAAAqH,EAAAjB,EAAAC,IAAAC,MAAC,SAAAgB,EAAOrH,EAASC,GAAM,IAAAzH,EAAA,OAAA4N,IAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,KAAA,EAAA,OAAAY,EAAAZ,KAAA,EACdnV,EAAK4F,QAAQjJ,OAAGnC,OAAIwF,EAAKmK,UAAS3P,KAAAA,OAAI2M,GAAM,CAAE,EAAEzF,GAASsF,KAAKhH,EAAKuK,WAAWpN,KAAK6C,IAAY,MAAC0O,GAAO,KAAA,EAAxHzH,EAAQ8O,EAAAX,KAEd3G,EAAQxH,GAAU,KAAA,EAAA,IAAA,MAAA,OAAA8O,EAAAV,OAAA,GAAAS,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAAtb,MAAAqC,KAAAzC,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,UAAAC,MAED,WAAsB,IAAA8L,EAAAzK,KAAd8E,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACd,OAAO,IAAIqU,QAAO,WAAA,IAAA0H,EAAAtB,EAAAC,IAAAC,MAAC,SAAAqB,EAAO1H,EAASC,GAAM,IAAAzH,EAAA,OAAA4N,IAAAG,MAAA,SAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,KAAA,EAAA,OAAAiB,EAAAjB,KAAA,EACd9N,EAAKzB,QAAQjJ,IAAGnC,GAAAA,OAAI6M,EAAK8C,WAAa,GAAIzI,GAASsF,KAAKK,EAAKkD,WAAWpN,KAAKkK,IAAY,MAACqH,GAAO,KAAA,EAAlHzH,EAAQmP,EAAAhB,KAEd3G,EAAQxH,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAmP,EAAAf,OAAA,GAAAc,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAA3b,MAAAqC,KAAAzC,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,QAAAC,MAED,WAAgC,IAAAkN,EAAA7L,KAA1B0S,EAAKnV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACxB,OAAO,IAAIqU,QAAO,WAAA,IAAA+H,EAAA3B,EAAAC,IAAAC,MAAC,SAAA0B,EAAO/H,EAASC,GAAM,IAAAzH,EAAA,OAAA4N,IAAAG,MAAA,SAAAyB,GAAA,cAAAA,EAAAvB,KAAAuB,EAAAtB,MAAA,KAAA,EAAA,OAAAsB,EAAAtB,KAAA,EACd1M,EAAK7C,QAAQjJ,IAAG,GAAAnC,OAAIiO,EAAK0B,WAAamF,EAAO5N,GAASsF,KAAKyB,EAAK8B,WAAWpN,KAAKsL,IAAY,MAACiG,GAAO,KAAA,EAArHzH,EAAQwP,EAAArB,KAEd3G,EAAQxH,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAwP,EAAApB,OAAA,GAAAmB,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAAhc,MAAAqC,KAAAzC,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,cAAAC,MAED,WAAsC,IAAAmO,EAAA9M,KAA1B0S,EAAKnV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIuH,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAG9B,OAFAmV,EAAMsH,QAAS,EAER,IAAIpI,QAAO,WAAA,IAAAqI,EAAAjC,EAAAC,IAAAC,MAAC,SAAAgC,EAAOrI,EAASC,GAAM,IAAAzH,EAAA,OAAA4N,IAAAG,MAAA,SAAA+B,GAAA,cAAAA,EAAA7B,KAAA6B,EAAA5B,MAAA,KAAA,EAAA,OAAA4B,EAAA5B,KAAA,EACdzL,EAAK9D,QAAQjJ,IAAG,GAAAnC,OAAIkP,EAAKS,WAAamF,EAAO5N,GAASsF,KAAK0C,EAAKa,WAAWpN,KAAKuM,IAAY,MAACgF,GAAO,KAAA,EAArHzH,EAAQ8P,EAAA3B,KAEd3G,EAAQxH,GAAU,KAAA,EAAA,IAAA,MAAA,OAAA8P,EAAA1B,OAAA,GAAAyB,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAAtc,MAAAqC,KAAAzC,UAAA,CAAC,CAJgB,GAKtB,GAAC,CAAAmB,IAAA,UAAAC,MAED,SAAQoF,GAAsB,IAAAuW,EAAAta,KAAd8E,EAAOvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAChBgN,EAAKzG,EAAWC,GAAUA,EAAOgG,aAAa,MAAQhG,EAE5D,OAAO,IAAI6N,QAAO,WAAA,IAAA2I,EAAAvC,EAAAC,IAAAC,MAAC,SAAAsC,EAAO3I,EAASC,GAAM,IAAAzH,EAAA,OAAA4N,IAAAG,MAAA,SAAAqC,GAAA,cAAAA,EAAAnC,KAAAmC,EAAAlC,MAAA,KAAA,EAAA,OAAAkC,EAAAlC,KAAA,EACd+B,EAAKtR,QAAO,UAAOpL,OAAI0c,EAAK/M,UAAS3P,KAAAA,OAAI2M,GAAM,CAAE,EAAEzF,GAASsF,KAAKkQ,EAAK3M,WAAWpN,KAAK+Z,IAAY,MAACxI,GAAO,KAAA,EAA3HzH,EAAQoQ,EAAAjC,KAEd3G,EAAQxH,GAAU,KAAA,EAAA,IAAA,MAAA,OAAAoQ,EAAAhC,OAAA,GAAA+B,EACrB,KAAA,OAAAE,SAAAA,EAAAC,GAAA,OAAAJ,EAAA5c,MAAAqC,KAAAzC,UAAA,CAAC,CAJgB,GAKtB,KAACqM,CAAA,CAtFM,GCVUgR,GAAS,WAS1B,SAAAA,EAAYjJ,GAAuC,IAAAkJ,EAAAC,EAAAC,EAA5B3J,EAAM7T,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAIyd,EAAKzd,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAUrC,GAV6CoC,OAAAib,GAC7C5a,KAAKwJ,QAAwBqR,QAAjBA,EAAGzJ,EAAO5H,eAAOqR,IAAAA,EAAAA,EAAI,KACjC7a,KAAK8E,QAAU,CACX0E,QAASxJ,KAAKwJ,QACd6H,KAAiB,QAAbyJ,EAAE1J,EAAOC,YAAI,IAAAyJ,EAAAA,EAAI,2BACrBvN,UAA2BwN,QAAlBA,EAAE3J,EAAO7D,iBAASwN,IAAAA,EAAAA,EAAI/a,KAAKwJ,QACpCwR,MAAAA,EACArJ,UAAAA,GAGqB,iBAAdA,GAA+C,IAArBA,EAAUnU,OAC3C,MAAM,IAAIwN,MAAM,gDAGpB,IAAK/G,KAAuB0N,EAAU2C,cAAc2G,WAAW,KAC3D,MAAM,IAAIjQ,MAAM,iFAGpBhL,KAAKgJ,QAAUoI,EAAOpI,SAAWnE,EAAc7E,KAAK8E,SAEpD9E,KAAKkb,OAAS,IAAItR,GAAM,QAAS5J,KAAKgJ,SAASuO,cAAcnK,GAC7DpN,KAAKmb,SAAW,IAAIvR,GAAM,SAAU5J,KAAKgJ,SACzChJ,KAAKob,OAAS,IAAIxR,GAAM,QAAS5J,KAAKgJ,SACtChJ,KAAKqb,QAAU,IAAIzR,GAAM,SAAU5J,KAAKgJ,SAASuO,cAAcvH,IAC/DhQ,KAAKsb,SAAW,IAAI1R,GAAM,UAAW5J,KAAKgJ,SAC1ChJ,KAAKub,QAAU,IAAI3R,GAAM,SAAU5J,KAAKgJ,SACxChJ,KAAKwb,SAAW,IAAI5R,GAAM,UAAW5J,KAAKgJ,SAC1ChJ,KAAKyb,cAAgB,IAAI7R,GAAM,eAAgB5J,KAAKgJ,SAASuO,cAAc3G,GAC/E,CAIC,OAJA9Q,EAAA8a,EAAA,CAAA,CAAAlc,IAAA,aAAAC,MAMD,SAAWqK,GACPhJ,KAAKgJ,QAAUA,CACnB,GAAC,CAAAtK,IAAA,aAAAC,MAED,WACI,OAAOqB,KAAKgJ,OAChB,IAAC,CAAA,CAAAtK,IAAA,cAAAC,MAVD,WACI,OAAAyY,EAAWwD,EAAS5d,MAAA+P,UAAA/O,MAAA6B,KAAItC,WAC5B,KAACqd,CAAA,CAzCyB,yXHsbb,WACb,IAAMjE,EAAI,CAAI,YAAU/Y,OAAAZ,MAAA+P,UAAA/O,MAAA6B,KAAKtC,YAE7B,OAAOsW,GAAOiD,OAAMnZ,MAAbkW,GAAMhW,EAAW8Y,GAC5B,4BAQkB,WACd,IAAMA,EAAI,CAAI,aAAW/Y,OAAAZ,MAAA+P,UAAA/O,MAAA6B,KAAKtC,YAE9B,OAAOsW,GAAOiD,OAAMnZ,MAAbkW,GAAMhW,EAAW8Y,GAC5B,oDIvee,SAAoB+E,GAC/B,OAAOC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,EAC3D,gBCFe,SAAqBA,GAChC,OAAOC,SAASD,IAAeE,KAAKC,IAAIH,IAAe,KAAOE,KAAKC,IAAIH,IAAe,EAC1F"} \ No newline at end of file diff --git a/dist/cjs/fleetbase.js b/dist/cjs/fleetbase.js index 5e620bc..c2f2f19 100644 --- a/dist/cjs/fleetbase.js +++ b/dist/cjs/fleetbase.js @@ -1,2 +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 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; +"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 s=this.tryEntries[o],a=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var u=i.call(s,"catchLoc"),c=i.call(s,"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 s(t,e,n,r,i,o,s){try{var a=t[o](s),u=a.value}catch(t){return void n(t)}a.done?e(u):Promise.resolve(u).then(r,i)}function a(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 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,s=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){a=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}var j=Array.isArray,O="undefined"==typeof arguments?void 0:arguments,$=6e4,R=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(j(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),F(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 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 r=e;r>=0;r--)if(P(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==z(this,t,e,!0)}},{key:"findBy",value:function(){return t=this,e=L.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,L.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=L.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=L.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]: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,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)||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 $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"],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),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=E(t);try{for(r.s();!(n=r.n()).done;){var i,s,a=n.value;if("string"==typeof a){var u=this.getAttribute(a);"object"!==o(null===(i=u)||void 0===i?void 0:i.attributes)||j(null===(s=u)||void 0===s?void 0:s.attributes)||(u=u.attributes),e[a]=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],s=i[1];return new n({name:null,address:t.getAttribute("address"),location:new J(o,s),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({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))},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)}}),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,"driver",n({actions:it},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)}}]),r}(),st=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)}(),at=new H({current:function(){return this.adapter.get("".concat(this.namespace,"/current"))}}),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,"organization",n({actions:at},o))}return h(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,"contact",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,"zone",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,"service-area",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-rate",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-quote",i)}return h(n,[{key:"fromPreliminary",value:function(){}},{key:"fromPayload",value:function(){}}]),n}(),dt=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||{}})),pt=function(t){v(r,dt);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(s,a){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?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=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}(),gt=function(e){v(i,dt);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(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=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}(),yt=function(t){v(n,dt);var e=m(n);function n(){return u(this,n),e.apply(this,arguments)}return h(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=j(e)?e:[e],!j(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()}},$t=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=mt(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){return Ot(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",kt(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=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 s=t.serialize(e);return t.deposit(s)}(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=a(r().mark((function i(o,s){var a;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(s);case 2:a=r.sent,o(a);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=a(r().mark((function o(s,a){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(a);case 2:u=r.sent,s(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=a(r().mark((function i(o,s){var a;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(s);case 2:a=r.sent,o(a);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=a(r().mark((function n(i,o){var s;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:s=n.sent,i(s);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=a(r().mark((function i(o,s){var a;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(s);case 2:a=r.sent,o(a);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=a(r().mark((function i(o,s){var a;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(s);case 2:a=r.sent,o(a);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=a(r().mark((function t(o,s){var a;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(s);case 2:a=t.sent,o(a);case 4:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}())}}]),t}(),Rt=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||B(this.options),this.orders=new $t("order",this.adapter).extendActions(V),this.entities=new $t("entity",this.adapter),this.places=new $t("place",this.adapter),this.drivers=new $t("driver",this.adapter).extendActions(it),this.vehicles=new $t("vehicle",this.adapter),this.vendors=new $t("vendor",this.adapter),this.contacts=new $t("contact",this.adapter),this.organizations=new $t("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 g(t,Array.prototype.slice.call(arguments))}}]),t}();exports.Adapter=dt,exports.BrowserAdapter=pt,exports.Collection=N,exports.Contact=ct,exports.Driver=ot,exports.EmberJsAdapter=yt,exports.Entity=X,exports.GoogleAddress=U,exports.NodeAdapter=gt,exports.Order=Y,exports.Organization=ut,exports.Payload=Z,exports.Place=tt,exports.Point=J,exports.Resource=Q,exports.ServiceArea=lt,exports.ServiceQuote=ft,exports.ServiceRate=vt,exports.Store=$t,exports.StoreActions=H,exports.TrackingStatus=nt,exports.Vehicle=rt,exports.Vendor=st,exports.Waypoint=et,exports.Zone=ht,exports.camelize=function(){var t=["camelize"].concat(Array.prototype.slice.call(arguments));return bt.invoke.apply(bt,k(t))},exports.classify=kt,exports.dasherize=function(){var t=["dasherize"].concat(Array.prototype.slice.call(arguments));return bt.invoke.apply(bt,k(t))},exports.default=Rt,exports.extendStoreActions=Ot,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=mt,exports.singularize=wt; //# sourceMappingURL=fleetbase.js.map diff --git a/dist/cjs/fleetbase.js.map b/dist/cjs/fleetbase.js.map index 7345513..c475130 100644 --- a/dist/cjs/fleetbase.js.map +++ b/dist/cjs/fleetbase.js.map @@ -1 +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/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":"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"} \ No newline at end of file +{"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/organization.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, 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 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';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`);\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';\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 } 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 { 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","driverActions","login","identity","password","isPhone","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","organizationActions","Organization","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","next","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/esm/fleetbase.js b/dist/esm/fleetbase.js index 76a13ca..26465a1 100644 --- a/dist/esm/fleetbase.js +++ b/dist/esm/fleetbase.js @@ -1,2 +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()?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}; +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 j=Array.isArray,$="undefined"==typeof arguments?void 0:arguments,O=6e4,R=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(j(t))if(r.length<=O)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),F(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 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 r=e;r>=0;r--)if(P(this,r)===t)return r;return-1}},{key:"includes",value:function(t,e){return-1!==z(this,t,e,!0)}},{key:"findBy",value:function(){return t=this,e=L.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,L.apply(void 0,arguments))}},{key:"isEvery",value:function(){return t=this,e=L.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=L.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 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()?_t("adapter","NodeAdapter",t):_t("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),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=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(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=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)||j(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({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))},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)}}),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,"driver",n({actions:at},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)}}]),r}(),ut=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)}(),ct=new V({current:function(){return this.adapter.get("".concat(this.namespace,"/current"))}}),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,"organization",n({actions:ct},o))}return h(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,"contact",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,"zone",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,"service-area",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-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}(),gt=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||{}})),yt=function(t){v(r,gt);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}(),bt=function(e){v(i,gt);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(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=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}(),mt=function(t){v(n,gt);var e=m(n);function n(){return u(this,n),e.apply(this,arguments)}return h(n)}(),wt=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=j(e)?e:[e],!j(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=kt(e),this.storage=new N,this.options=r,this.extendActions(r.actions)}return h(t,[{key:"extendActions",value:function(){return St(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",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),j(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=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}(),Lt=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(at),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(ct)}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}();export{gt as Adapter,yt as BrowserAdapter,N as Collection,lt as Contact,st as Driver,mt as EmberJsAdapter,et as Entity,W as GoogleAddress,bt as NodeAdapter,X as Order,ht as Organization,tt as Payload,nt as Place,K as Point,Y as Resource,ft as ServiceArea,pt as ServiceQuote,dt as ServiceRate,Pt as Store,V as StoreActions,it as TrackingStatus,ot as Vehicle,ut as Vendor,rt as Waypoint,vt as Zone,xt as camelize,jt as classify,Et as dasherize,Lt as default,St as extendStoreActions,q as isLatitude,I as isLongitude,G as isNodeEnvironment,B as isResource,kt as pluralize,At as singularize}; //# sourceMappingURL=fleetbase.js.map diff --git a/dist/esm/fleetbase.js.map b/dist/esm/fleetbase.js.map index 8fc839e..23ed64d 100644 --- a/dist/esm/fleetbase.js.map +++ b/dist/esm/fleetbase.js.map @@ -1 +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/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":"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"} \ No newline at end of file +{"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/organization.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, 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 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';\nimport { StoreActions } from '../utils';\n\nconst organizationActions = new StoreActions({\n current: function (params = {}, options = {}) {\n return this.adapter.get(`${this.namespace}/current`);\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';\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 } 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 { 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","driverActions","login","identity","password","isPhone","verifyCode","code","track","retrieve","syncDevice","Driver","Vendor","organizationActions","Organization","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","next","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 a425b78..ee3b999 100644 --- a/package.json +++ b/package.json @@ -1,75 +1,86 @@ { - "name": "@fleetbase/sdk", - "version": "1.2.5", - "description": "Fleetbase JS & Node SDK", - "main": "dist/cjs/fleetbase.js", - "module": "dist/esm/fleetbase.js", - "files": [ - "dist", - "src" - ], - "scripts": { - "prebuild": "npm run lint", - "lint": "eslint src", - "lint:fix": "eslint src --fix", - "lint:tests": "eslint tests", - "bundle": "rollup -c", - "dev": "rollup -c -w", - "test": "mocha --require @babel/polyfill --require @babel/register --require source-map-support/register tests/*.test.js" - }, - "author": "Ronald A. Richardson (https://ron.dev)", - "license": "BSD-3-Clause", - "devDependencies": { - "@babel/core": "^7.14.0", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-decorators": "^7.13.15", - "@babel/plugin-transform-spread": "^7.13.0", - "@babel/polyfill": "^7.12.1", - "@babel/preset-env": "^7.14.1", - "@babel/register": "^7.13.16", - "@rollup/plugin-babel": "^5.3.0", - "@rollup/plugin-node-resolve": "^13.0.5", - "chai": "^4.3.4", - "eslint": "^7.26.0", - "eslint-config-airbnb-base": "^14.2.1", - "eslint-plugin-import": "^2.16.0", - "mocha": "^8.4.0", - "rollup-plugin-eslint": "^5.1.0", - "rollup-plugin-terser": "^7.0.2", - "source-map-support": "^0.5.19" - }, - "dependencies": { - "@babel/runtime": "^7.15.4", - "axios": "^0.21.1", - "cross-fetch": "^3.1.4", - "global": "^4.4.0", - "rollup": "^2.50.5" - }, - "directories": { - "lib": "src", - "test": "tests" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fleetbase/fleetbase-js.git" - }, - "publishConfig": { - "access": "public" - }, - "keywords": [ - "logistics", - "ondemand", - "delivery", - "operations", - "logistics", - "api", - "fleet", - "management", - "fleet", - "api" - ], - "bugs": { - "url": "https://github.com/fleetbase/fleetbase-js/issues" - }, - "homepage": "https://github.com/fleetbase/fleetbase-js#readme" + "name": "@fleetbase/sdk", + "version": "1.2.8", + "description": "Fleetbase JS & Node SDK", + "main": "dist/cjs/fleetbase.js", + "module": "dist/esm/fleetbase.js", + "types": "types/fleetbase.d.ts", + "files": [ + "dist", + "src", + "types" + ], + "scripts": { + "prebuild": "npm run lint", + "lint": "eslint src", + "lint:fix": "eslint src --fix", + "lint:tests": "eslint tests", + "bundle": "rollup -c", + "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" + }, + "author": "Ronald A. Richardson (https://ron.dev)", + "license": "BSD-3-Clause", + "lint-staged": { + "**/*": "prettier --write --ignore-unknown" + }, + "dependencies": { + "@babel/runtime": "^7.23.6", + "axios": "^1.6.2", + "cross-fetch": "^4.0.0", + "global": "^4.4.0", + "rollup": "^4.9.0" + }, + "devDependencies": { + "@babel/core": "^7.23.6", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-decorators": "^7.23.6", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/polyfill": "^7.12.1", + "@babel/preset-env": "^7.23.6", + "@babel/register": "^7.22.15", + "@rollup/plugin-babel": "^6.0.4", + "@rollup/plugin-node-resolve": "^15.2.3", + "chai": "^4.3.10", + "eslint": "^8.55.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-plugin-import": "^2.29.0", + "husky": "^8.0.3", + "lint-staged": "^15.2.0", + "mocha": "^10.2.0", + "prettier": "3.1.1", + "rollup-plugin-eslint": "^7.0.0", + "rollup-plugin-terser": "^7.0.2", + "source-map-support": "^0.5.21", + "typescript": "^5.3.3" + }, + "directories": { + "lib": "src", + "test": "tests" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fleetbase/fleetbase-js.git" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [ + "logistics", + "ondemand", + "delivery", + "operations", + "logistics", + "api", + "fleet", + "management", + "fleet", + "api" + ], + "bugs": { + "url": "https://github.com/fleetbase/fleetbase-js/issues" + }, + "homepage": "https://github.com/fleetbase/fleetbase-js#readme" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..ab1f2a6 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,4600 @@ +lockfileVersion: '6.0' + +dependencies: + '@babel/runtime': + specifier: ^7.23.6 + version: 7.23.6 + axios: + specifier: ^1.6.2 + version: 1.6.2 + cross-fetch: + specifier: ^4.0.0 + version: 4.0.0 + global: + specifier: ^4.4.0 + version: 4.4.0 + rollup: + specifier: ^4.9.0 + version: 4.9.0 + +devDependencies: + '@babel/core': + specifier: ^7.23.6 + version: 7.23.6 + '@babel/plugin-proposal-class-properties': + specifier: ^7.18.6 + version: 7.18.6(@babel/core@7.23.6) + '@babel/plugin-proposal-decorators': + specifier: ^7.23.6 + version: 7.23.6(@babel/core@7.23.6) + '@babel/plugin-transform-spread': + specifier: ^7.23.3 + version: 7.23.3(@babel/core@7.23.6) + '@babel/polyfill': + specifier: ^7.12.1 + version: 7.12.1 + '@babel/preset-env': + specifier: ^7.23.6 + version: 7.23.6(@babel/core@7.23.6) + '@babel/register': + specifier: ^7.22.15 + version: 7.22.15(@babel/core@7.23.6) + '@rollup/plugin-babel': + specifier: ^6.0.4 + version: 6.0.4(@babel/core@7.23.6)(rollup@4.9.0) + '@rollup/plugin-node-resolve': + specifier: ^15.2.3 + version: 15.2.3(rollup@4.9.0) + chai: + specifier: ^4.3.10 + version: 4.3.10 + eslint: + specifier: ^8.55.0 + 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) + eslint-plugin-import: + specifier: ^2.29.0 + version: 2.29.1(eslint@8.55.0) + husky: + specifier: ^8.0.3 + version: 8.0.3 + lint-staged: + specifier: ^15.2.0 + version: 15.2.0 + mocha: + specifier: ^10.2.0 + version: 10.2.0 + prettier: + specifier: 3.1.1 + version: 3.1.1 + rollup-plugin-eslint: + specifier: ^7.0.0 + version: 7.0.0 + rollup-plugin-terser: + specifier: ^7.0.2 + version: 7.0.2(rollup@4.9.0) + source-map-support: + specifier: ^0.5.21 + version: 0.5.21 + typescript: + specifier: ^5.3.3 + version: 5.3.3 + +packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: { integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== } + engines: { node: '>=0.10.0' } + dev: true + + /@ampproject/remapping@2.2.1: + resolution: { integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== } + engines: { node: '>=6.0.0' } + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@babel/code-frame@7.23.5: + resolution: { integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.23.5: + resolution: { integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/core@7.23.6: + resolution: { integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== } + engines: { node: '>=6.9.0' } + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helpers': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.6: + resolution: { integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: { integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: { integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: { integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): + resolution: { integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.6): + resolution: { integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6): + resolution: { integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== } + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4(supports-color@8.1.1) + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: { integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: { integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: { integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: { integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: { integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: { integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: { integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.6): + resolution: { integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + resolution: { integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: { integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: { integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: { integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-string-parser@7.23.4: + resolution: { integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: { integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-validator-option@7.23.5: + resolution: { integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-wrap-function@7.22.20: + resolution: { integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + dev: true + + /@babel/helpers@7.23.6: + resolution: { integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.23.4: + resolution: { integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.23.6: + resolution: { integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== } + engines: { node: '>=6.0.0' } + hasBin: true + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.6): + resolution: { integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== } + engines: { node: '>=6.9.0' } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-decorators@7.23.6(@babel/core@7.23.6): + resolution: { integrity: sha512-D7Ccq9LfkBFnow3azZGJvZYgcfeqAw3I1e5LoTpj6UKIFQilh8yqXsIGcRIqbBdsPWIz+Ze7ZZfggSj62Qp+Fg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6): + resolution: { integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): + resolution: { integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): + resolution: { integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.6): + resolution: { integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.6): + resolution: { integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.6): + resolution: { integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): + resolution: { integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): + resolution: { integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): + resolution: { integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): + resolution: { integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): + resolution: { integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): + resolution: { integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): + resolution: { integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): + resolution: { integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.6): + resolution: { integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): + resolution: { integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.6): + resolution: { integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.6): + resolution: { integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + dev: true + + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.6): + resolution: { integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.6): + resolution: { integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.6): + resolution: { integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.6): + resolution: { integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/polyfill@7.12.1: + resolution: { integrity: sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g== } + deprecated: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information. + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.13.11 + dev: true + + /@babel/preset-env@7.23.6(@babel/core@7.23.6): + resolution: { integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.6) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) + core-js-compat: 3.34.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.6): + resolution: { integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== } + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.6 + esutils: 2.0.3 + dev: true + + /@babel/register@7.22.15(@babel/core@7.23.6): + resolution: { integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.6 + source-map-support: 0.5.21 + dev: true + + /@babel/regjsgen@0.8.0: + resolution: { integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== } + dev: true + + /@babel/runtime@7.23.6: + resolution: { integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== } + engines: { node: '>=6.9.0' } + dependencies: + regenerator-runtime: 0.14.0 + + /@babel/template@7.22.15: + resolution: { integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + dev: true + + /@babel/traverse@7.23.6: + resolution: { integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.6: + resolution: { integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + resolution: { integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.55.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: { integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: { integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + ajv: 6.12.6 + debug: 4.3.4(supports-color@8.1.1) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.55.0: + resolution: { integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /@humanwhocodes/config-array@0.11.13: + resolution: { integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== } + engines: { node: '>=10.10.0' } + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } + engines: { node: '>=12.22' } + dev: true + + /@humanwhocodes/object-schema@2.0.1: + resolution: { integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== } + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: { integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== } + engines: { node: '>=6.0.0' } + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: { integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== } + engines: { node: '>=6.0.0' } + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: { integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== } + engines: { node: '>=6.0.0' } + dev: true + + /@jridgewell/source-map@0.3.5: + resolution: { integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== } + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: { integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== } + dev: true + + /@jridgewell/trace-mapping@0.3.20: + resolution: { integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== } + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } + engines: { node: '>= 8' } + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } + engines: { node: '>= 8' } + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } + engines: { node: '>= 8' } + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@rollup/plugin-babel@6.0.4(@babel/core@7.23.6)(rollup@4.9.0): + resolution: { integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw== } + engines: { node: '>=14.0.0' } + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + rollup: + optional: true + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-imports': 7.22.15 + '@rollup/pluginutils': 5.1.0(rollup@4.9.0) + rollup: 4.9.0 + dev: true + + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.0): + resolution: { integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== } + engines: { node: '>=14.0.0' } + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.9.0) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + rollup: 4.9.0 + dev: true + + /@rollup/pluginutils@5.1.0(rollup@4.9.0): + resolution: { integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== } + engines: { node: '>=14.0.0' } + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 4.9.0 + dev: true + + /@rollup/rollup-android-arm-eabi@4.9.0: + resolution: { integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA== } + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm64@4.9.0: + resolution: { integrity: sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A== } + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.0: + resolution: { integrity: sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ== } + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.0: + resolution: { integrity: sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw== } + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.0: + resolution: { integrity: sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg== } + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.0: + resolution: { integrity: sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw== } + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.0: + resolution: { integrity: sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w== } + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.0: + resolution: { integrity: sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w== } + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.0: + resolution: { integrity: sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg== } + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.0: + resolution: { integrity: sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg== } + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.0: + resolution: { integrity: sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q== } + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.0: + resolution: { integrity: sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q== } + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.0: + resolution: { integrity: sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw== } + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@types/estree@1.0.5: + resolution: { integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== } + dev: true + + /@types/json5@0.0.29: + resolution: { integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== } + dev: true + + /@types/node@20.10.4: + resolution: { integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg== } + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/resolve@1.20.2: + resolution: { integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== } + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: { integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== } + dev: true + + /acorn-jsx@5.3.2(acorn@7.4.1): + resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.2): + resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.2 + dev: true + + /acorn@7.4.1: + resolution: { integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== } + engines: { node: '>=0.4.0' } + hasBin: true + dev: true + + /acorn@8.11.2: + resolution: { integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== } + engines: { node: '>=0.4.0' } + hasBin: true + dev: true + + /ajv@6.12.6: + resolution: { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-colors@4.1.1: + resolution: { integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== } + engines: { node: '>=6' } + dev: true + + /ansi-escapes@4.3.2: + resolution: { integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== } + engines: { node: '>=8' } + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes@6.2.0: + resolution: { integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== } + engines: { node: '>=14.16' } + dependencies: + type-fest: 3.13.1 + dev: true + + /ansi-regex@4.1.1: + resolution: { integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== } + engines: { node: '>=6' } + dev: true + + /ansi-regex@5.0.1: + resolution: { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } + engines: { node: '>=8' } + dev: true + + /ansi-regex@6.0.1: + resolution: { integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== } + engines: { node: '>=12' } + dev: true + + /ansi-styles@3.2.1: + resolution: { integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== } + engines: { node: '>=4' } + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } + engines: { node: '>=8' } + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@6.2.1: + resolution: { integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== } + engines: { node: '>=12' } + dev: true + + /anymatch@3.1.3: + resolution: { integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== } + engines: { node: '>= 8' } + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /argparse@1.0.10: + resolution: { integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== } + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: { integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== } + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + dev: true + + /array-includes@3.1.7: + resolution: { integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + dev: true + + /array.prototype.findlastindex@1.2.3: + resolution: { integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: { integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: { integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: { integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== } + engines: { node: '>= 0.4' } + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /assertion-error@1.1.0: + resolution: { integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== } + dev: true + + /astral-regex@1.0.0: + resolution: { integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== } + engines: { node: '>=4' } + dev: true + + /asynckit@0.4.0: + resolution: { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } + dev: false + + /available-typed-arrays@1.0.5: + resolution: { integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== } + engines: { node: '>= 0.4' } + dev: true + + /axios@1.6.2: + resolution: { integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== } + dependencies: + follow-redirects: 1.15.3 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6): + resolution: { integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== } + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6): + resolution: { integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== } + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + core-js-compat: 3.34.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6): + resolution: { integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== } + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match@1.0.2: + resolution: { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } + dev: true + + /binary-extensions@2.2.0: + resolution: { integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== } + engines: { node: '>=8' } + dev: true + + /brace-expansion@1.1.11: + resolution: { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== } + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== } + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.2: + resolution: { integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== } + engines: { node: '>=8' } + dependencies: + fill-range: 7.0.1 + dev: true + + /browser-stdout@1.3.1: + resolution: { integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== } + dev: true + + /browserslist@4.22.2: + resolution: { integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + dependencies: + caniuse-lite: 1.0.30001570 + electron-to-chromium: 1.4.613 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + dev: true + + /buffer-from@1.1.2: + resolution: { integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== } + dev: true + + /builtin-modules@3.3.0: + resolution: { integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== } + engines: { node: '>=6' } + dev: true + + /call-bind@1.0.5: + resolution: { integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== } + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + dev: true + + /callsites@3.1.0: + resolution: { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } + engines: { node: '>=6' } + dev: true + + /camelcase@6.3.0: + resolution: { integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== } + engines: { node: '>=10' } + dev: true + + /caniuse-lite@1.0.30001570: + resolution: { integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw== } + dev: true + + /chai@4.3.10: + resolution: { integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== } + engines: { node: '>=4' } + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@2.4.2: + resolution: { integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== } + engines: { node: '>=4' } + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.3.0: + resolution: { integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + dev: true + + /chardet@0.7.0: + resolution: { integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== } + dev: true + + /check-error@1.0.3: + resolution: { integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== } + dependencies: + get-func-name: 2.0.2 + dev: true + + /chokidar@3.5.3: + resolution: { integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== } + engines: { node: '>= 8.10.0' } + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /cli-cursor@3.1.0: + resolution: { integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== } + engines: { node: '>=8' } + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-cursor@4.0.0: + resolution: { integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-truncate@4.0.0: + resolution: { integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== } + engines: { node: '>=18' } + dependencies: + slice-ansi: 5.0.0 + string-width: 7.0.0 + dev: true + + /cli-width@3.0.0: + resolution: { integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== } + engines: { node: '>= 10' } + dev: true + + /cliui@7.0.4: + resolution: { integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-deep@4.0.1: + resolution: { integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== } + engines: { node: '>=6' } + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true + + /color-convert@1.9.3: + resolution: { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== } + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } + engines: { node: '>=7.0.0' } + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== } + dev: true + + /color-name@1.1.4: + resolution: { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } + dev: true + + /colorette@2.0.20: + resolution: { integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== } + dev: true + + /combined-stream@1.0.8: + resolution: { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } + engines: { node: '>= 0.8' } + dependencies: + delayed-stream: 1.0.0 + dev: false + + /commander@11.1.0: + resolution: { integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== } + engines: { node: '>=16' } + dev: true + + /commander@2.20.3: + resolution: { integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== } + dev: true + + /commondir@1.0.1: + resolution: { integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== } + dev: true + + /concat-map@0.0.1: + resolution: { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } + dev: true + + /confusing-browser-globals@1.0.11: + resolution: { integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== } + dev: true + + /convert-source-map@2.0.0: + resolution: { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== } + dev: true + + /core-js-compat@3.34.0: + resolution: { integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== } + dependencies: + browserslist: 4.22.2 + dev: true + + /core-js@2.6.12: + 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. + requiresBuild: true + dev: true + + /cross-fetch@4.0.0: + resolution: { integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== } + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: false + + /cross-spawn@6.0.5: + resolution: { integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== } + engines: { node: '>=4.8' } + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: { integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== } + engines: { node: '>= 8' } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /debug@3.2.7: + resolution: { integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4(supports-color@8.1.1): + resolution: { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 8.1.1 + dev: true + + /decamelize@4.0.0: + resolution: { integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== } + engines: { node: '>=10' } + dev: true + + /deep-eql@4.1.3: + resolution: { integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== } + engines: { node: '>=6' } + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-is@0.1.4: + resolution: { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } + dev: true + + /deepmerge@4.3.1: + resolution: { integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== } + engines: { node: '>=0.10.0' } + dev: true + + /define-data-property@1.1.1: + resolution: { integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== } + engines: { node: '>= 0.4' } + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /define-properties@1.2.1: + resolution: { integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== } + engines: { node: '>= 0.4' } + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + dev: true + + /delayed-stream@1.0.0: + resolution: { integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== } + engines: { node: '>=0.4.0' } + dev: false + + /diff@5.0.0: + resolution: { integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== } + engines: { node: '>=0.3.1' } + dev: true + + /doctrine@2.1.0: + resolution: { integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== } + engines: { node: '>=0.10.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: { integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== } + engines: { node: '>=6.0.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /dom-walk@0.1.2: + resolution: { integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== } + dev: false + + /electron-to-chromium@1.4.613: + resolution: { integrity: sha512-r4x5+FowKG6q+/Wj0W9nidx7QO31BJwmR2uEo+Qh3YLGQ8SbBAFuDFpTxzly/I2gsbrFwBuIjrMp423L3O5U3w== } + dev: true + + /emoji-regex@10.3.0: + resolution: { integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== } + dev: true + + /emoji-regex@7.0.3: + resolution: { integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== } + dev: true + + /emoji-regex@8.0.0: + resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } + dev: true + + /es-abstract@1.22.3: + resolution: { integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== } + engines: { node: '>= 0.4' } + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: true + + /es-set-tostringtag@2.0.2: + resolution: { integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== } + engines: { node: '>= 0.4' } + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: { integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== } + dependencies: + hasown: 2.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: { integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== } + engines: { node: '>= 0.4' } + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /escalade@3.1.1: + resolution: { integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== } + engines: { node: '>=6' } + dev: true + + /escape-string-regexp@1.0.5: + resolution: { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== } + engines: { node: '>=0.8.0' } + dev: true + + /escape-string-regexp@4.0.0: + resolution: { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } + engines: { node: '>=10' } + dev: true + + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0): + resolution: { integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== } + engines: { node: ^10.12.0 || >=12.0.0 } + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.55.0 + eslint-plugin-import: 2.29.1(eslint@8.55.0) + object.assign: 4.1.5 + object.entries: 1.1.7 + semver: 6.3.1 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: { integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== } + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + resolution: { integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + debug: 3.2.7 + eslint: 8.55.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.29.1(eslint@8.55.0): + resolution: { integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.55.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-scope@5.1.1: + resolution: { integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== } + engines: { node: '>=8.0.0' } + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.2.2: + resolution: { integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils@1.4.3: + resolution: { integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== } + engines: { node: '>=6' } + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-visitor-keys@1.3.0: + resolution: { integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== } + engines: { node: '>=4' } + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: { integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /eslint@6.8.0: + resolution: { integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== } + engines: { node: ^8.10.0 || ^10.13.0 || >=11.10.1 } + hasBin: true + dependencies: + '@babel/code-frame': 7.23.5 + ajv: 6.12.6 + chalk: 2.4.2 + cross-spawn: 6.0.5 + debug: 4.3.4(supports-color@8.1.1) + doctrine: 3.0.0 + eslint-scope: 5.1.1 + eslint-utils: 1.4.3 + eslint-visitor-keys: 1.3.0 + espree: 6.2.1 + esquery: 1.5.0 + esutils: 2.0.3 + file-entry-cache: 5.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 12.4.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + inquirer: 7.3.3 + is-glob: 4.0.3 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.3.0 + lodash: 4.17.21 + minimatch: 3.1.2 + mkdirp: 0.5.6 + natural-compare: 1.4.0 + optionator: 0.8.3 + progress: 2.0.3 + regexpp: 2.0.1 + semver: 6.3.1 + strip-ansi: 5.2.0 + strip-json-comments: 3.1.1 + table: 5.4.6 + text-table: 0.2.0 + v8-compile-cache: 2.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint@8.55.0: + resolution: { integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.55.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4(supports-color@8.1.1) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@6.2.1: + resolution: { integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== } + engines: { node: '>=6.0.0' } + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + eslint-visitor-keys: 1.3.0 + dev: true + + /espree@9.6.1: + resolution: { integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 + dev: true + + /esprima@4.0.1: + resolution: { integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== } + engines: { node: '>=4' } + hasBin: true + dev: true + + /esquery@1.5.0: + resolution: { integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== } + engines: { node: '>=0.10' } + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: { integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== } + engines: { node: '>=4.0' } + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: { integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== } + engines: { node: '>=4.0' } + dev: true + + /estraverse@5.3.0: + resolution: { integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== } + engines: { node: '>=4.0' } + dev: true + + /estree-walker@0.6.1: + resolution: { integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== } + dev: true + + /estree-walker@2.0.2: + resolution: { integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== } + dev: true + + /esutils@2.0.3: + resolution: { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== } + engines: { node: '>=0.10.0' } + dev: true + + /eventemitter3@5.0.1: + resolution: { integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== } + dev: true + + /execa@8.0.1: + resolution: { integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== } + engines: { node: '>=16.17' } + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /external-editor@3.1.0: + resolution: { integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== } + engines: { node: '>=4' } + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /fast-deep-equal@3.1.3: + resolution: { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } + dev: true + + /fast-levenshtein@2.0.6: + resolution: { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } + dev: true + + /fastq@1.15.0: + resolution: { integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== } + dependencies: + reusify: 1.0.4 + dev: true + + /figures@3.2.0: + resolution: { integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== } + engines: { node: '>=8' } + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@5.0.1: + resolution: { integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== } + engines: { node: '>=4' } + dependencies: + flat-cache: 2.0.1 + dev: true + + /file-entry-cache@6.0.1: + resolution: { integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flat-cache: 3.2.0 + dev: true + + /fill-range@7.0.1: + resolution: { integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== } + engines: { node: '>=8' } + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-cache-dir@2.1.0: + resolution: { integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== } + engines: { node: '>=6' } + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + dev: true + + /find-up@3.0.0: + resolution: { integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== } + engines: { node: '>=6' } + dependencies: + locate-path: 3.0.0 + dev: true + + /find-up@5.0.0: + resolution: { integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== } + engines: { node: '>=10' } + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@2.0.1: + resolution: { integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== } + engines: { node: '>=4' } + dependencies: + flatted: 2.0.2 + rimraf: 2.6.3 + write: 1.0.3 + dev: true + + /flat-cache@3.2.0: + resolution: { integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flat@5.0.2: + resolution: { integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== } + hasBin: true + dev: true + + /flatted@2.0.2: + resolution: { integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== } + dev: true + + /flatted@3.2.9: + resolution: { integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== } + dev: true + + /follow-redirects@1.15.3: + resolution: { integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== } + engines: { node: '>=4.0' } + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: { integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== } + dependencies: + is-callable: 1.2.7 + dev: true + + /form-data@4.0.0: + resolution: { integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== } + engines: { node: '>= 6' } + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /fs.realpath@1.0.0: + resolution: { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } + dev: true + + /fsevents@2.3.3: + resolution: { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + requiresBuild: true + optional: true + + /function-bind@1.1.2: + resolution: { integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== } + dev: true + + /function.prototype.name@1.1.6: + resolution: { integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree@1.0.1: + resolution: { integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== } + dev: true + + /functions-have-names@1.2.3: + resolution: { integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== } + dev: true + + /gensync@1.0.0-beta.2: + resolution: { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== } + engines: { node: '>=6.9.0' } + dev: true + + /get-caller-file@2.0.5: + resolution: { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } + engines: { node: 6.* || 8.* || >= 10.* } + dev: true + + /get-east-asian-width@1.2.0: + resolution: { integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== } + engines: { node: '>=18' } + dev: true + + /get-func-name@2.0.2: + resolution: { integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== } + dev: true + + /get-intrinsic@1.2.2: + resolution: { integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== } + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + + /get-stream@8.0.1: + resolution: { integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== } + engines: { node: '>=16' } + dev: true + + /get-symbol-description@1.0.0: + resolution: { integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /glob-parent@5.1.2: + resolution: { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } + engines: { node: '>= 6' } + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } + engines: { node: '>=10.13.0' } + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.0: + resolution: { integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.3: + resolution: { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global@4.4.0: + resolution: { integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== } + dependencies: + min-document: 2.19.0 + process: 0.11.10 + dev: false + + /globals@11.12.0: + resolution: { integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== } + engines: { node: '>=4' } + dev: true + + /globals@12.4.0: + resolution: { integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== } + engines: { node: '>=8' } + dependencies: + type-fest: 0.8.1 + dev: true + + /globals@13.24.0: + resolution: { integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== } + engines: { node: '>=8' } + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: { integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== } + engines: { node: '>= 0.4' } + dependencies: + define-properties: 1.2.1 + dev: true + + /gopd@1.0.1: + resolution: { integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== } + dependencies: + get-intrinsic: 1.2.2 + dev: true + + /graphemer@1.4.0: + resolution: { integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== } + dev: true + + /has-bigints@1.0.2: + resolution: { integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== } + dev: true + + /has-flag@3.0.0: + resolution: { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== } + engines: { node: '>=4' } + dev: true + + /has-flag@4.0.0: + resolution: { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } + engines: { node: '>=8' } + dev: true + + /has-property-descriptors@1.0.1: + resolution: { integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== } + dependencies: + get-intrinsic: 1.2.2 + dev: true + + /has-proto@1.0.1: + resolution: { integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== } + engines: { node: '>= 0.4' } + dev: true + + /has-symbols@1.0.3: + resolution: { integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== } + engines: { node: '>= 0.4' } + dev: true + + /has-tostringtag@1.0.0: + resolution: { integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== } + engines: { node: '>= 0.4' } + dependencies: + has-symbols: 1.0.3 + dev: true + + /hasown@2.0.0: + resolution: { integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== } + engines: { node: '>= 0.4' } + dependencies: + function-bind: 1.1.2 + dev: true + + /he@1.2.0: + resolution: { integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== } + hasBin: true + dev: true + + /human-signals@5.0.0: + resolution: { integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== } + engines: { node: '>=16.17.0' } + dev: true + + /husky@8.0.3: + resolution: { integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== } + engines: { node: '>=14' } + hasBin: true + dev: true + + /iconv-lite@0.4.24: + resolution: { integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== } + engines: { node: '>=0.10.0' } + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ignore@4.0.6: + resolution: { integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== } + engines: { node: '>= 4' } + dev: true + + /ignore@5.3.0: + resolution: { integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== } + engines: { node: '>= 4' } + dev: true + + /import-fresh@3.3.0: + resolution: { integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== } + engines: { node: '>=6' } + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } + engines: { node: '>=0.8.19' } + dev: true + + /inflight@1.0.6: + resolution: { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== } + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } + dev: true + + /inquirer@7.3.3: + resolution: { integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== } + engines: { node: '>=8.0.0' } + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + dev: true + + /internal-slot@1.0.6: + resolution: { integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== } + engines: { node: '>= 0.4' } + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + + /is-array-buffer@3.0.2: + resolution: { integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== } + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /is-bigint@1.0.4: + resolution: { integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== } + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: { integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== } + engines: { node: '>=8' } + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: { integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-builtin-module@3.2.1: + resolution: { integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== } + engines: { node: '>=6' } + dependencies: + builtin-modules: 3.3.0 + dev: true + + /is-callable@1.2.7: + resolution: { integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== } + engines: { node: '>= 0.4' } + dev: true + + /is-core-module@2.13.1: + resolution: { integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== } + dependencies: + hasown: 2.0.0 + dev: true + + /is-date-object@1.0.5: + resolution: { integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob@2.1.1: + resolution: { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } + engines: { node: '>=0.10.0' } + dev: true + + /is-fullwidth-code-point@2.0.0: + resolution: { integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== } + engines: { node: '>=4' } + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } + engines: { node: '>=8' } + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: { integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== } + engines: { node: '>=12' } + dev: true + + /is-fullwidth-code-point@5.0.0: + resolution: { integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== } + engines: { node: '>=18' } + dependencies: + get-east-asian-width: 1.2.0 + dev: true + + /is-glob@4.0.3: + resolution: { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } + engines: { node: '>=0.10.0' } + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-module@1.0.0: + resolution: { integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== } + dev: true + + /is-negative-zero@2.0.2: + resolution: { integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== } + engines: { node: '>= 0.4' } + dev: true + + /is-number-object@1.0.7: + resolution: { integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@7.0.0: + resolution: { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } + engines: { node: '>=0.12.0' } + dev: true + + /is-path-inside@3.0.3: + resolution: { integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== } + engines: { node: '>=8' } + dev: true + + /is-plain-obj@2.1.0: + resolution: { integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== } + engines: { node: '>=8' } + dev: true + + /is-plain-object@2.0.4: + resolution: { integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== } + engines: { node: '>=0.10.0' } + dependencies: + isobject: 3.0.1 + dev: true + + /is-regex@1.1.4: + resolution: { integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: { integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== } + dependencies: + call-bind: 1.0.5 + dev: true + + /is-stream@3.0.0: + resolution: { integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: true + + /is-string@1.0.7: + resolution: { integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: { integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== } + engines: { node: '>= 0.4' } + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.12: + resolution: { integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== } + engines: { node: '>= 0.4' } + dependencies: + which-typed-array: 1.1.13 + dev: true + + /is-unicode-supported@0.1.0: + resolution: { integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== } + engines: { node: '>=10' } + dev: true + + /is-weakref@1.0.2: + resolution: { integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== } + dependencies: + call-bind: 1.0.5 + dev: true + + /isarray@2.0.5: + resolution: { integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== } + dev: true + + /isexe@2.0.0: + resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } + dev: true + + /isobject@3.0.1: + resolution: { integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== } + engines: { node: '>=0.10.0' } + dev: true + + /jest-worker@26.6.2: + resolution: { integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== } + engines: { node: '>= 10.13.0' } + dependencies: + '@types/node': 20.10.4 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + + /js-tokens@4.0.0: + resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } + dev: true + + /js-yaml@3.14.1: + resolution: { integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== } + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc@0.5.0: + resolution: { integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== } + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: { integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== } + engines: { node: '>=4' } + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: { integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== } + dev: true + + /json-schema-traverse@0.4.1: + resolution: { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } + dev: true + + /json5@1.0.2: + resolution: { integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== } + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: { integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== } + engines: { node: '>=6' } + hasBin: true + dev: true + + /keyv@4.5.4: + resolution: { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== } + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of@6.0.3: + resolution: { integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== } + engines: { node: '>=0.10.0' } + dev: true + + /levn@0.3.0: + resolution: { integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: true + + /levn@0.4.1: + resolution: { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@3.0.0: + resolution: { integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== } + engines: { node: '>=14' } + dev: true + + /lint-staged@15.2.0: + resolution: { integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ== } + engines: { node: '>=18.12.0' } + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4(supports-color@8.1.1) + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.0 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2@8.0.0: + resolution: { integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg== } + engines: { node: '>=18.0.0' } + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.3.0 + wrap-ansi: 9.0.0 + dev: true + + /locate-path@3.0.0: + resolution: { integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== } + engines: { node: '>=6' } + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path@6.0.0: + resolution: { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== } + engines: { node: '>=10' } + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.debounce@4.0.8: + resolution: { integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== } + dev: true + + /lodash.merge@4.6.2: + resolution: { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } + dev: true + + /lodash@4.17.21: + resolution: { integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== } + dev: true + + /log-symbols@4.1.0: + resolution: { integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== } + engines: { node: '>=10' } + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update@6.0.0: + resolution: { integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== } + engines: { node: '>=18' } + dependencies: + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + dev: true + + /loupe@2.3.7: + resolution: { integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== } + dependencies: + get-func-name: 2.0.2 + dev: true + + /lru-cache@5.1.1: + resolution: { integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== } + dependencies: + yallist: 3.1.1 + dev: true + + /make-dir@2.1.0: + resolution: { integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== } + engines: { node: '>=6' } + dependencies: + pify: 4.0.1 + semver: 5.7.2 + dev: true + + /merge-stream@2.0.0: + resolution: { integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== } + dev: true + + /micromatch@4.0.5: + resolution: { integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== } + engines: { node: '>=8.6' } + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } + engines: { node: '>= 0.6' } + dev: false + + /mime-types@2.1.35: + resolution: { integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.52.0 + dev: false + + /mimic-fn@2.1.0: + resolution: { integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== } + engines: { node: '>=6' } + dev: true + + /mimic-fn@4.0.0: + resolution: { integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== } + engines: { node: '>=12' } + dev: true + + /min-document@2.19.0: + resolution: { integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== } + dependencies: + dom-walk: 0.1.2 + dev: false + + /minimatch@3.1.2: + resolution: { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.0.1: + resolution: { integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== } + engines: { node: '>=10' } + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: { integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== } + dev: true + + /mkdirp@0.5.6: + resolution: { integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== } + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /mocha@10.2.0: + resolution: { integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== } + engines: { node: '>= 14.0.0' } + hasBin: true + dependencies: + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.4(supports-color@8.1.1) + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 7.2.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.0.1 + ms: 2.1.3 + nanoid: 3.3.3 + serialize-javascript: 6.0.0 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.2.1 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + dev: true + + /ms@2.1.2: + resolution: { integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== } + dev: true + + /ms@2.1.3: + resolution: { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } + dev: true + + /mute-stream@0.0.8: + resolution: { integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== } + dev: true + + /nanoid@3.3.3: + resolution: { integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: true + + /natural-compare@1.4.0: + resolution: { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } + dev: true + + /nice-try@1.0.5: + resolution: { integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== } + dev: true + + /node-fetch@2.7.0: + resolution: { integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + + /node-releases@2.0.14: + resolution: { integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== } + dev: true + + /normalize-path@3.0.0: + resolution: { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } + engines: { node: '>=0.10.0' } + dev: true + + /npm-run-path@5.1.0: + resolution: { integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + path-key: 4.0.0 + dev: true + + /object-inspect@1.13.1: + resolution: { integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== } + dev: true + + /object-keys@1.1.1: + resolution: { integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== } + engines: { node: '>= 0.4' } + dev: true + + /object.assign@4.1.5: + resolution: { integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: { integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.fromentries@2.0.7: + resolution: { integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.groupby@1.0.1: + resolution: { integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + dev: true + + /object.values@1.1.7: + resolution: { integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /once@1.4.0: + resolution: { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: { integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== } + engines: { node: '>=6' } + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: { integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== } + engines: { node: '>=12' } + dependencies: + mimic-fn: 4.0.0 + dev: true + + /optionator@0.8.3: + resolution: { integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== } + engines: { node: '>= 0.8.0' } + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + dev: true + + /optionator@0.9.3: + resolution: { integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== } + engines: { node: '>= 0.8.0' } + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /os-tmpdir@1.0.2: + resolution: { integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== } + engines: { node: '>=0.10.0' } + dev: true + + /p-limit@2.3.0: + resolution: { integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== } + engines: { node: '>=6' } + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: { integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== } + engines: { node: '>=10' } + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@3.0.0: + resolution: { integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== } + engines: { node: '>=6' } + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== } + engines: { node: '>=10' } + dependencies: + p-limit: 3.1.0 + dev: true + + /p-try@2.2.0: + resolution: { integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== } + engines: { node: '>=6' } + dev: true + + /parent-module@1.0.1: + resolution: { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } + engines: { node: '>=6' } + dependencies: + callsites: 3.1.0 + dev: true + + /path-exists@3.0.0: + resolution: { integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== } + engines: { node: '>=4' } + dev: true + + /path-exists@4.0.0: + resolution: { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== } + engines: { node: '>=8' } + dev: true + + /path-is-absolute@1.0.1: + resolution: { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== } + engines: { node: '>=0.10.0' } + dev: true + + /path-key@2.0.1: + resolution: { integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== } + engines: { node: '>=4' } + dev: true + + /path-key@3.1.1: + resolution: { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } + engines: { node: '>=8' } + dev: true + + /path-key@4.0.0: + resolution: { integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== } + engines: { node: '>=12' } + dev: true + + /path-parse@1.0.7: + resolution: { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } + dev: true + + /pathval@1.1.1: + resolution: { integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== } + dev: true + + /picocolors@1.0.0: + resolution: { integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== } + dev: true + + /picomatch@2.3.1: + resolution: { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } + engines: { node: '>=8.6' } + dev: true + + /pidtree@0.6.0: + resolution: { integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== } + engines: { node: '>=0.10' } + hasBin: true + dev: true + + /pify@4.0.1: + resolution: { integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== } + engines: { node: '>=6' } + dev: true + + /pirates@4.0.6: + resolution: { integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== } + engines: { node: '>= 6' } + dev: true + + /pkg-dir@3.0.0: + resolution: { integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== } + engines: { node: '>=6' } + dependencies: + find-up: 3.0.0 + dev: true + + /prelude-ls@1.1.2: + resolution: { integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== } + engines: { node: '>= 0.8.0' } + dev: true + + /prelude-ls@1.2.1: + resolution: { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } + engines: { node: '>= 0.8.0' } + dev: true + + /prettier@3.1.1: + resolution: { integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== } + engines: { node: '>=14' } + hasBin: true + dev: true + + /process@0.11.10: + resolution: { integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== } + engines: { node: '>= 0.6.0' } + dev: false + + /progress@2.0.3: + resolution: { integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== } + engines: { node: '>=0.4.0' } + dev: true + + /proxy-from-env@1.1.0: + resolution: { integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== } + dev: false + + /punycode@2.3.1: + resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } + engines: { node: '>=6' } + dev: true + + /queue-microtask@1.2.3: + resolution: { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } + dev: true + + /randombytes@2.1.0: + resolution: { integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /readdirp@3.6.0: + resolution: { integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== } + engines: { node: '>=8.10.0' } + dependencies: + picomatch: 2.3.1 + dev: true + + /regenerate-unicode-properties@10.1.1: + resolution: { integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== } + engines: { node: '>=4' } + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: { integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== } + dev: true + + /regenerator-runtime@0.13.11: + resolution: { integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== } + dev: true + + /regenerator-runtime@0.14.0: + resolution: { integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== } + + /regenerator-transform@0.15.2: + resolution: { integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== } + dependencies: + '@babel/runtime': 7.23.6 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: { integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /regexpp@2.0.1: + resolution: { integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== } + engines: { node: '>=6.5.0' } + dev: true + + /regexpu-core@5.3.2: + resolution: { integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== } + engines: { node: '>=4' } + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser@0.9.1: + resolution: { integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== } + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /require-directory@2.1.1: + resolution: { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } + engines: { node: '>=0.10.0' } + dev: true + + /resolve-from@4.0.0: + resolution: { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } + engines: { node: '>=4' } + dev: true + + /resolve@1.22.8: + resolution: { integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== } + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: { integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== } + engines: { node: '>=8' } + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@4.0.0: + resolution: { integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /reusify@1.0.4: + resolution: { integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + dev: true + + /rfdc@1.3.0: + resolution: { integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== } + dev: true + + /rimraf@2.6.3: + resolution: { integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== } + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@3.0.2: + resolution: { integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== } + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup-plugin-eslint@7.0.0: + resolution: { integrity: sha512-u35kXiY11ULeNQGTlRkYx7uGJ/hS/Dx3wj8f9YVC3oMLTGU9fOqQJsAKYtBFZU3gJ8Vt3gu8ppB1vnKl+7gatQ== } + dependencies: + eslint: 6.8.0 + rollup-pluginutils: 2.8.2 + transitivePeerDependencies: + - supports-color + dev: true + + /rollup-plugin-terser@7.0.2(rollup@4.9.0): + resolution: { integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== } + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': 7.23.5 + jest-worker: 26.6.2 + rollup: 4.9.0 + serialize-javascript: 4.0.0 + terser: 5.26.0 + dev: true + + /rollup-pluginutils@2.8.2: + resolution: { integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== } + dependencies: + estree-walker: 0.6.1 + dev: true + + /rollup@4.9.0: + resolution: { integrity: sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A== } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.0 + '@rollup/rollup-android-arm64': 4.9.0 + '@rollup/rollup-darwin-arm64': 4.9.0 + '@rollup/rollup-darwin-x64': 4.9.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.0 + '@rollup/rollup-linux-arm64-gnu': 4.9.0 + '@rollup/rollup-linux-arm64-musl': 4.9.0 + '@rollup/rollup-linux-riscv64-gnu': 4.9.0 + '@rollup/rollup-linux-x64-gnu': 4.9.0 + '@rollup/rollup-linux-x64-musl': 4.9.0 + '@rollup/rollup-win32-arm64-msvc': 4.9.0 + '@rollup/rollup-win32-ia32-msvc': 4.9.0 + '@rollup/rollup-win32-x64-msvc': 4.9.0 + fsevents: 2.3.3 + + /run-async@2.4.1: + resolution: { integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== } + engines: { node: '>=0.12.0' } + dev: true + + /run-parallel@1.2.0: + resolution: { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@6.6.7: + resolution: { integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== } + engines: { npm: '>=2.0.0' } + dependencies: + tslib: 1.14.1 + dev: true + + /safe-array-concat@1.0.1: + resolution: { integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== } + engines: { node: '>=0.4' } + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.2.1: + resolution: { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } + dev: true + + /safe-regex-test@1.0.0: + resolution: { integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== } + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } + dev: true + + /semver@5.7.2: + resolution: { integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== } + hasBin: true + dev: true + + /semver@6.3.1: + resolution: { integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== } + hasBin: true + dev: true + + /serialize-javascript@4.0.0: + resolution: { integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== } + dependencies: + randombytes: 2.1.0 + dev: true + + /serialize-javascript@6.0.0: + resolution: { integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== } + dependencies: + randombytes: 2.1.0 + dev: true + + /set-function-length@1.1.1: + resolution: { integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== } + engines: { node: '>= 0.4' } + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /set-function-name@2.0.1: + resolution: { integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== } + engines: { node: '>= 0.4' } + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: true + + /shallow-clone@3.0.1: + resolution: { integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== } + engines: { node: '>=8' } + dependencies: + kind-of: 6.0.3 + dev: true + + /shebang-command@1.2.0: + resolution: { integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== } + engines: { node: '>=0.10.0' } + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } + engines: { node: '>=8' } + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@1.0.0: + resolution: { integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== } + engines: { node: '>=0.10.0' } + dev: true + + /shebang-regex@3.0.0: + resolution: { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } + engines: { node: '>=8' } + dev: true + + /side-channel@1.0.4: + resolution: { integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== } + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + dev: true + + /signal-exit@3.0.7: + resolution: { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } + dev: true + + /signal-exit@4.1.0: + resolution: { integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== } + engines: { node: '>=14' } + dev: true + + /slice-ansi@2.1.0: + resolution: { integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== } + engines: { node: '>=6' } + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: { integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== } + engines: { node: '>=12' } + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /slice-ansi@7.1.0: + resolution: { integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== } + engines: { node: '>=18' } + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + dev: true + + /source-map-support@0.5.21: + resolution: { integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== } + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: { integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== } + engines: { node: '>=0.10.0' } + dev: true + + /sprintf-js@1.0.3: + resolution: { integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== } + dev: true + + /string-argv@0.3.2: + resolution: { integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== } + engines: { node: '>=0.6.19' } + dev: true + + /string-width@3.1.0: + resolution: { integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== } + engines: { node: '>=6' } + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + dev: true + + /string-width@4.2.3: + resolution: { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } + engines: { node: '>=8' } + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@7.0.0: + resolution: { integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw== } + engines: { node: '>=18' } + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.trim@1.2.8: + resolution: { integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: { integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: { integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /strip-ansi@5.2.0: + resolution: { integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== } + engines: { node: '>=6' } + dependencies: + ansi-regex: 4.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } + engines: { node: '>=8' } + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: { integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== } + engines: { node: '>=12' } + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: { integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== } + engines: { node: '>=4' } + dev: true + + /strip-final-newline@3.0.0: + resolution: { integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== } + engines: { node: '>=12' } + dev: true + + /strip-json-comments@3.1.1: + resolution: { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } + engines: { node: '>=8' } + dev: true + + /supports-color@5.5.0: + resolution: { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== } + engines: { node: '>=4' } + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } + engines: { node: '>=8' } + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color@8.1.1: + resolution: { integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== } + engines: { node: '>=10' } + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } + engines: { node: '>= 0.4' } + dev: true + + /table@5.4.6: + resolution: { integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== } + engines: { node: '>=6.0.0' } + dependencies: + ajv: 6.12.6 + lodash: 4.17.21 + slice-ansi: 2.1.0 + string-width: 3.1.0 + dev: true + + /terser@5.26.0: + resolution: { integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== } + engines: { node: '>=10' } + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /text-table@0.2.0: + resolution: { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== } + dev: true + + /through@2.3.8: + resolution: { integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== } + dev: true + + /tmp@0.0.33: + resolution: { integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== } + engines: { node: '>=0.6.0' } + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: { integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== } + engines: { node: '>=4' } + dev: true + + /to-regex-range@5.0.1: + resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } + engines: { node: '>=8.0' } + dependencies: + is-number: 7.0.0 + dev: true + + /tr46@0.0.3: + resolution: { integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== } + dev: false + + /tsconfig-paths@3.15.0: + resolution: { integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== } + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: { integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== } + dev: true + + /type-check@0.3.2: + resolution: { integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.1.2 + dev: true + + /type-check@0.4.0: + resolution: { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: { integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== } + engines: { node: '>=4' } + dev: true + + /type-fest@0.20.2: + resolution: { integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== } + engines: { node: '>=10' } + dev: true + + /type-fest@0.21.3: + resolution: { integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== } + engines: { node: '>=10' } + dev: true + + /type-fest@0.8.1: + resolution: { integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== } + engines: { node: '>=8' } + dev: true + + /type-fest@3.13.1: + resolution: { integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== } + engines: { node: '>=14.16' } + dev: true + + /typed-array-buffer@1.0.0: + resolution: { integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: { integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: { integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== } + engines: { node: '>= 0.4' } + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: { integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== } + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typescript@5.3.3: + resolution: { integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== } + engines: { node: '>=14.17' } + hasBin: true + dev: true + + /unbox-primitive@1.0.2: + resolution: { integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== } + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.26.5: + resolution: { integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== } + dev: true + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: { integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== } + engines: { node: '>=4' } + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: { integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== } + engines: { node: '>=4' } + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: { integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== } + engines: { node: '>=4' } + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: { integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== } + engines: { node: '>=4' } + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: { integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== } + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } + dependencies: + punycode: 2.3.1 + dev: true + + /v8-compile-cache@2.4.0: + resolution: { integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== } + dev: true + + /webidl-conversions@3.0.1: + resolution: { integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== } + dev: false + + /whatwg-url@5.0.0: + resolution: { integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== } + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: { integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== } + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-typed-array@1.1.13: + resolution: { integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== } + engines: { node: '>= 0.4' } + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@1.3.1: + resolution: { integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } + engines: { node: '>= 8' } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap@1.2.5: + resolution: { integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== } + engines: { node: '>=0.10.0' } + dev: true + + /workerpool@6.2.1: + resolution: { integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== } + dev: true + + /wrap-ansi@7.0.0: + resolution: { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@9.0.0: + resolution: { integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== } + engines: { node: '>=18' } + dependencies: + ansi-styles: 6.2.1 + string-width: 7.0.0 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } + dev: true + + /write@1.0.3: + resolution: { integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== } + engines: { node: '>=4' } + dependencies: + mkdirp: 0.5.6 + dev: true + + /y18n@5.0.8: + resolution: { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== } + engines: { node: '>=10' } + dev: true + + /yallist@3.1.1: + resolution: { integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== } + dev: true + + /yaml@2.3.4: + resolution: { integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== } + engines: { node: '>= 14' } + dev: true + + /yargs-parser@20.2.4: + resolution: { integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== } + engines: { node: '>=10' } + dev: true + + /yargs-unparser@2.0.0: + resolution: { integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== } + engines: { node: '>=10' } + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + dev: true + + /yargs@16.2.0: + resolution: { integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== } + engines: { node: '>=10' } + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.4 + dev: true + + /yocto-queue@0.1.0: + resolution: { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } + engines: { node: '>=10' } + dev: true diff --git a/rollup.config.js b/rollup.config.js index c8e3014..d18bb16 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,13 +1,11 @@ -// rollup.config.js -import { terser } from 'rollup-plugin-terser'; -// import { eslint } from 'rollup-plugin-eslint'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import babel from '@rollup/plugin-babel'; -import pkg from './package.json'; +const { terser } = require('rollup-plugin-terser'); +const { nodeResolve } = require('@rollup/plugin-node-resolve'); +const babel = require('@rollup/plugin-babel'); +const pkg = require('./package.json'); const input = ['src/fleetbase.js']; -export default [ +module.exports = [ { // umd input, @@ -17,8 +15,8 @@ export default [ modulesOnly: true, }), babel({ - babelHelpers: 'bundled', - }), + babelHelpers: 'bundled', + }), terser(), ], output: [ @@ -35,7 +33,7 @@ export default [ exclude: ['node_modules/**'], include: ['lib/**'], }, - external: ['axios'] + external: ['axios'], }, { // esm and cjs @@ -45,10 +43,10 @@ export default [ browser: true, modulesOnly: true, }), - babel({ - babelHelpers: 'bundled', - }), - terser() + babel({ + babelHelpers: 'bundled', + }), + terser(), ], output: [ { @@ -64,6 +62,6 @@ export default [ sourcemap: true, }, ], - external: ['axios'] + external: ['axios'], }, ]; diff --git a/src/adapter.js b/src/adapter.js index 4aaad0b..61b6c5e 100644 --- a/src/adapter.js +++ b/src/adapter.js @@ -1,9 +1,9 @@ class Adapter { /** - * Creates a configured base adapter for Fleetbase. - * - * @param {Object} config Configuration options for adapter - */ + * Creates a configured base adapter for Fleetbase. + * + * @param {Object} config Configuration options for adapter + */ constructor(config = {}) { this.version = config.version || 'v1'; this.host = config.host || null; diff --git a/src/adapters.js b/src/adapters.js index b06fa99..9b69806 100644 --- a/src/adapters.js +++ b/src/adapters.js @@ -3,9 +3,4 @@ import NodeAdapter from './adapters/node'; import EmberJsAdapter from './adapters/ember'; import Adapter from './adapter'; -export { - BrowserAdapter, - NodeAdapter, - EmberJsAdapter, - Adapter -}; +export { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter }; diff --git a/src/adapters/browser.js b/src/adapters/browser.js index 44be097..216408e 100644 --- a/src/adapters/browser.js +++ b/src/adapters/browser.js @@ -12,7 +12,7 @@ class BrowserAdapter extends Adapter { this.setHeaders({ Authorization: `Bearer ${config.publicKey}`, 'Content-Type': 'application/json', - 'User-Agent': '@fleetbase/sdk;browser' + 'User-Agent': '@fleetbase/sdk;browser', }); } @@ -36,17 +36,21 @@ class BrowserAdapter extends Adapter { * @return {Promise} */ parseJSON(response) { - return new Promise((resolve, reject) => response - .json() - .then((json) => resolve({ - statusText: response.statusText, - status: response.status, - ok: response.ok, - json, - })) - .catch(() => { - reject(new Error('Oops! Something went wrong when handling your request.')); - })); + return new Promise((resolve, reject) => + response + .json() + .then((json) => + resolve({ + statusText: response.statusText, + status: response.status, + ok: response.ok, + json, + }) + ) + .catch(() => { + reject(new Error('Oops! Something went wrong when handling your request.')); + }) + ); } /** @@ -60,26 +64,28 @@ class BrowserAdapter extends Adapter { * @return {Promise} */ request(path, method = 'GET', data = {}, options = {}) { - return new Promise((resolve, reject) => fetch(options.url || `${this.host}/${this.namespace}/${path}`, { - method, - mode: options.mode || 'cors', - headers: new Headers({ - ...(this.headers || {}), - ...(options.headers || {}), - }), - ...data, - }) - .then(this.parseJSON) - .then((response) => { - if (response.ok) { - return resolve(response.json); - } - - return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText)); + return new Promise((resolve, reject) => + fetch(options.url || `${this.host}/${this.namespace}/${path}`, { + method, + mode: options.mode || 'cors', + headers: new Headers({ + ...(this.headers || {}), + ...(options.headers || {}), + }), + ...data, }) - .catch((error) => { - reject(error); - })); + .then(this.parseJSON) + .then((response) => { + if (response.ok) { + return resolve(response.json); + } + + return reject(new Error(response.json.errors ? response.json.errors[0] : response.statusText)); + }) + .catch((error) => { + reject(error); + }) + ); } /** diff --git a/src/fleetbase.js b/src/fleetbase.js index 94442eb..af61453 100644 --- a/src/fleetbase.js +++ b/src/fleetbase.js @@ -1,12 +1,13 @@ 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'; import { extendStoreActions } from './store'; import { orderActions } from './resources/order'; import { driverActions } from './resources/driver'; +import { organizationActions } from './resources/organization'; /** * // instance @@ -66,6 +67,7 @@ export default class Fleetbase { this.vehicles = new Store('vehicle', this.adapter); this.vendors = new Store('vendor', this.adapter); this.contacts = new Store('contact', this.adapter); + this.organizations = new Store('organization', this.adapter).extendActions(organizationActions); } static newInstance() { @@ -98,6 +100,7 @@ export { ServiceArea, ServiceRate, ServiceQuote, + Organization, BrowserAdapter, NodeAdapter, EmberJsAdapter, diff --git a/src/resource.js b/src/resource.js index 954bd6a..3304120 100644 --- a/src/resource.js +++ b/src/resource.js @@ -33,7 +33,7 @@ class Resource { this.adapter = adapter; this.store = new Store(this.resource, adapter, { onAfterFetch: this.syncAttributes.bind(this), - actions: this.options?.actions + actions: this.options?.actions, }); return this; @@ -59,9 +59,9 @@ class Resource { this.setFlags(['isLoading', 'isSaving']); return this.store.create(data).then((response) => { - this.setFlags(['isLoading', 'isSaving'], false); + this.setFlags(['isLoading', 'isSaving'], false); - return response; + return response; }); } @@ -75,9 +75,9 @@ class Resource { this.setFlags(['isLoading', 'isSaving']); return this.store.update(this.attributes.id, attributes).then((response) => { - this.setFlags(['isLoading', 'isSaving'], false); + this.setFlags(['isLoading', 'isSaving'], false); - return response; + return response; }); } @@ -90,9 +90,9 @@ class Resource { this.setFlags(['isLoading', 'isDestroying']); return this.store.destroy(this.attributes.id).then((response) => { - this.setFlags(['isLoading', 'isDestroying'], false); + this.setFlags(['isLoading', 'isDestroying'], false); - return response; + return response; }); } @@ -105,9 +105,9 @@ class Resource { this.setFlags(['isLoading', 'isReloading']); return this.store.findRecord(this.attributes.id).then((response) => { - this.reset(); + this.reset(); - return response; + return response; }); } @@ -119,7 +119,7 @@ class Resource { setFlags(flags = [], state = true) { const validFlags = ['isLoading', 'isSaving', 'isReloading', 'isDestroying']; - for(let i = 0; i < flags.length; i++) { + for (let i = 0; i < flags.length; i++) { const flag = flags[i]; if (typeof flag !== 'string' || !validFlags.includes(flag)) { @@ -348,9 +348,6 @@ class Resource { // use object setter set(this.attributes, property, value); set(this.dirtyAttributes, property, previousValue); - - // this.attributes[property] = value; - // this.dirtyAttributes[property] = previousValue; // track changes if (!isArray(this?.changes[property])) { @@ -406,7 +403,7 @@ class Resource { if (isArray(property)) { const properties = property; const attributeKeys = Object.keys(this.attributes ?? {}); - + return properties.every((prop) => attributeKeys.includes(prop)); } @@ -420,7 +417,7 @@ class Resource { /** * Alias for checking if has multiple attributes. * - * @param {Array} properties + * @param {Array} properties * @return {Boolean} */ hasAttributes(properties = []) { @@ -430,7 +427,7 @@ class Resource { /** * Returns true if attribute has value. * - * @param {Array} properties + * @param {Array} properties * @return {Boolean} */ isAttributeFilled(property) { @@ -462,8 +459,8 @@ class Resource { throw new Error('No attribute properties provided!'); } - for (let i = 0; i < properties.length; i++) { - const property = properties[i]; + for (const element of properties) { + const property = element; if (typeof property !== 'string') { continue; diff --git a/src/resources.js b/src/resources.js index e2c446d..996b9a6 100644 --- a/src/resources.js +++ b/src/resources.js @@ -7,25 +7,11 @@ import TrackingStatus from './resources/tracking-status'; import Vehicle from './resources/vehicle'; import Driver from './resources/driver'; import Vendor from './resources/vendor'; +import Organization from './resources/organization'; import Contact from './resources/contact'; import Zone from './resources/zone'; import ServiceArea from './resources/service-area'; import ServiceRate from './resources/service-rate'; import ServiceQuote from './resources/service-quote'; -export { - Order, - Payload, - Entity, - Place, - Waypoint, - TrackingStatus, - Vehicle, - Driver, - Vendor, - Contact, - Zone, - ServiceArea, - ServiceRate, - ServiceQuote -}; +export { Order, Payload, Entity, Place, Waypoint, TrackingStatus, Vehicle, Organization, Driver, Vendor, Contact, Zone, ServiceArea, ServiceRate, ServiceQuote }; diff --git a/src/resources/driver.js b/src/resources/driver.js index ab90486..1dbb332 100644 --- a/src/resources/driver.js +++ b/src/resources/driver.js @@ -75,14 +75,6 @@ class Driver extends Resource { return [latitude, longitude]; } - get token() { - return this.getAttribute('token'); - } - - get isOnline() { - return this.getAttribute('online') === true; - } - track(params = {}, options = {}) { return this.store.track(this.id, params, options); } diff --git a/src/resources/order.js b/src/resources/order.js index 9829a4a..391feb9 100644 --- a/src/resources/order.js +++ b/src/resources/order.js @@ -1,6 +1,5 @@ import Resource from '../resource'; import { StoreActions, isResource } from '../utils'; -import { isValid as isValidDate } from 'date-fns'; const orderActions = new StoreActions({ getDistanceAndTime: function (id, params = {}, options = {}) { diff --git a/src/resources/organization.js b/src/resources/organization.js new file mode 100644 index 0000000..ce0ff94 --- /dev/null +++ b/src/resources/organization.js @@ -0,0 +1,17 @@ +import Resource from '../resource'; +import { StoreActions } from '../utils'; + +const organizationActions = new StoreActions({ + current: function (params = {}, options = {}) { + return this.adapter.get(`${this.namespace}/current`, params, options); + }, +}); + +class Organization extends Resource { + constructor(attributes = {}, adapter, options = {}) { + super(attributes, adapter, 'organization', { actions: organizationActions, ...options }); + } +} + +export default Organization; +export { organizationActions }; diff --git a/src/resources/payload.js b/src/resources/payload.js index 2b7afb4..fdf4f1f 100644 --- a/src/resources/payload.js +++ b/src/resources/payload.js @@ -2,53 +2,47 @@ import Resource from '../resource'; import Collection from '../utils/collection'; class Payload extends Resource { - constructor(attributes = {}, adapter, options = {}) { + constructor(attributes = {}, adapter, options = {}) { super(attributes, adapter, 'payload', options); } - + /** - * Attaches an entity to an existing payload and returns - * the payload with the entity attached - * - * @param {[type]} Entity entity [description] - * @return {[type]} [description] - */ + * Attaches an entity to an existing payload and returns + * the payload with the entity attached + * + * @param {[type]} Entity entity [description] + * @return {[type]} [description] + */ attach(entity) { // perform op return payload } /** - * Returns all of the entities attached to this payload - * - * @return {[type]} [description] - */ - get entities() { - - } + * Returns all of the entities attached to this payload + * + * @return {[type]} [description] + */ + get entities() {} /** - * Returns the dropoff for this payload - * - * @return {[type]} [description] - */ - get dropoff() { - - } + * Returns the dropoff for this payload + * + * @return {[type]} [description] + */ + get dropoff() {} /** - * Returns the pickup for this payload - * - * @return {[type]} [description] - */ - get pickup() { - - } + * Returns the pickup for this payload + * + * @return {[type]} [description] + */ + get pickup() {} /** - * Returns all the waypoints for this payload - * - * @return {[type]} [description] - */ + * Returns all the waypoints for this payload + * + * @return {[type]} [description] + */ get waypoints() { return new Collection(this.waypoints); } diff --git a/src/resources/place.js b/src/resources/place.js index 4349207..22b9a63 100644 --- a/src/resources/place.js +++ b/src/resources/place.js @@ -7,7 +7,7 @@ class Place extends Resource { } static fromGoogleAddress(googleAddress, adapter, options = {}) { - const [ latitude, longitude ] = googleAddress.getAttribute('coordinates'); + const [latitude, longitude] = googleAddress.getAttribute('coordinates'); const attributes = { name: null, address: googleAddress.getAttribute('address'), @@ -22,7 +22,7 @@ class Place extends Resource { building: googleAddress.get('building'), country: googleAddress.getAttribute('countryShort'), phone: null, - security_access_code: null + security_access_code: null, }; return new Place(attributes, adapter, options); @@ -30,7 +30,7 @@ class Place extends Resource { /** * The latitude coordinate for the 'Place' location. - * + * * @var {Integer} */ get latitude() { @@ -39,7 +39,7 @@ class Place extends Resource { /** * The longitude coordinate for the 'Place' location. - * + * * @var {Integer} */ get longitude() { @@ -48,18 +48,18 @@ class Place extends Resource { /** * Array coordinate pair for Place location. - * + * * @var {Array} */ get coordinates() { const { latitude, longitude } = this; - return [ latitude, longitude ]; + return [latitude, longitude]; } /** * Set the owner of the place. - * + * * @param {Object|String} owner * @return {Place} */ diff --git a/src/resources/service-quote.js b/src/resources/service-quote.js index fe8599f..e8c97e9 100644 --- a/src/resources/service-quote.js +++ b/src/resources/service-quote.js @@ -5,13 +5,9 @@ class ServiceQuote extends Resource { super(attributes, adapter, 'service-quote', options); } - fromPreliminary() { + fromPreliminary() {} - } - - fromPayload() { - - } + fromPayload() {} } export default ServiceQuote; diff --git a/src/store.js b/src/store.js index f360229..118b98b 100644 --- a/src/store.js +++ b/src/store.js @@ -1,15 +1,14 @@ import { lookup } from './resolver'; -import { pluralize, classify } from './utils/string'; +import { Collection, StoreActions, detectAdapter, isResource } from './utils'; import { isArray } from './utils/array'; -import { Collection, detectAdapter, isResource, StoreActions } from './utils'; -import { set, isCallable, invoke } from './utils/object'; +import { classify, pluralize } from './utils/string'; const extendStoreActions = (store, actions = []) => { store.actions = isArray(actions) ? actions : [actions]; if (isArray(actions)) { - for (let i = 0; i < actions.length; i++) { - const action = actions[i]; + for (const element of actions) { + const action = element; store.extendActions(action); } @@ -31,8 +30,8 @@ const afterFetch = (store, json) => { if (isArray(json)) { const serialized = []; - for (let i = 0; i < json.length; i++) { - serialized.push(store.afterFetch(json[i])); + for (const element of json) { + serialized.push(store.afterFetch(element)); } return new Collection(...serialized); @@ -133,4 +132,4 @@ class Store { export default Store; -export { extendStoreActions, afterFetch }; +export { afterFetch, extendStoreActions }; diff --git a/src/utils/array.js b/src/utils/array.js index 89b6c5b..5264699 100644 --- a/src/utils/array.js +++ b/src/utils/array.js @@ -1,5 +1,3 @@ const { isArray } = Array; -export { - isArray -}; +export { isArray }; diff --git a/src/utils/collection.js b/src/utils/collection.js index 99e3975..04301c1 100644 --- a/src/utils/collection.js +++ b/src/utils/collection.js @@ -214,8 +214,8 @@ class Collection extends Array { let sortKeys = arguments; return this.sort((a, b) => { - for (let i = 0; i < sortKeys.length; i++) { - let key = sortKeys[i]; + for (const element of sortKeys) { + let key = element; let propA = a[key]; let propB = b[key]; // return 1 or -1 else continue to the next sortKey diff --git a/src/utils/detect-adapter.js b/src/utils/detect-adapter.js index ddde60c..854ec10 100644 --- a/src/utils/detect-adapter.js +++ b/src/utils/detect-adapter.js @@ -7,6 +7,6 @@ const detectAdapter = (options = {}) => { } return lookup('adapter', 'BrowserAdapter', options); -} +}; -export default detectAdapter; \ No newline at end of file +export default detectAdapter; diff --git a/src/utils/google-address.js b/src/utils/google-address.js index 513f093..9a6e254 100644 --- a/src/utils/google-address.js +++ b/src/utils/google-address.js @@ -49,8 +49,8 @@ class GoogleAddress { } or(keys = []) { - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; + for (const element of keys) { + const key = element; if (isArray(key)) { const pkey = key[0]; @@ -72,7 +72,7 @@ class GoogleAddress { } has(key) { - return (key in this.components); + return key in this.components; } get(key, short = false) { @@ -84,7 +84,7 @@ class GoogleAddress { } setAttributes(attributes = {}) { - this.attributes = {...this.attributes, ...attributes}; + this.attributes = { ...this.attributes, ...attributes }; return this; } diff --git a/src/utils/index.js b/src/utils/index.js index 9a4c2d8..9489f80 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -13,19 +13,4 @@ import GoogleAddress from './google-address'; import Point from './point'; import StoreActions from './store-actions'; -export { - Collection, - isNodeEnvironment, - detectAdapter, - isBlank, - isEmpty, - isLatitude, - isLongitude, - isResource, - isPhone, - isEmail, - uuid, - GoogleAddress, - StoreActions, - Point -}; +export { Collection, isNodeEnvironment, detectAdapter, isBlank, isEmpty, isLatitude, isLongitude, isResource, isPhone, isEmail, uuid, GoogleAddress, StoreActions, Point }; diff --git a/src/utils/is-email.js b/src/utils/is-email.js index f418363..db1886d 100644 --- a/src/utils/is-email.js +++ b/src/utils/is-email.js @@ -1,5 +1,5 @@ const isEmail = (email = '') => { return /\S+@\S+\.\S+/.test(email); -} +}; -export default isEmail; \ No newline at end of file +export default isEmail; diff --git a/src/utils/is-node-environment.js b/src/utils/is-node-environment.js index 3c6fc1a..9f65212 100644 --- a/src/utils/is-node-environment.js +++ b/src/utils/is-node-environment.js @@ -1,10 +1,14 @@ /** * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative. - * + * * @returns boolean */ const isNodeEnvironment = () => { - return (typeof process !== 'undefined') && (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative'); + return ( + typeof process !== 'undefined' && + (typeof process?.env === 'object' || process.release?.name?.search(/node|io.js/) !== -1) && + (typeof window === 'undefined' || window?.navigator?.product === 'ReactNative') + ); }; -export default isNodeEnvironment; \ No newline at end of file +export default isNodeEnvironment; diff --git a/src/utils/is-phone.js b/src/utils/is-phone.js index 509913d..719772a 100644 --- a/src/utils/is-phone.js +++ b/src/utils/is-phone.js @@ -1,5 +1,5 @@ const isPhone = (phone = '') => { return /^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g.test(phone); -} +}; -export default isPhone; \ No newline at end of file +export default isPhone; diff --git a/src/utils/object.js b/src/utils/object.js index 92b27cb..1e17949 100644 --- a/src/utils/object.js +++ b/src/utils/object.js @@ -118,10 +118,10 @@ const extend = (target, classes = []) => { if (arguments.length > 1) { classes = arguments; } - for (let index = 0; index < classes.length; index++) { - for (const property in classes[index]) { - if (Object.prototype.hasOwnProperty.call(classes[index], property)) { - target[property] = classes[index][property]; + for (const element of classes) { + for (const property in element) { + if (Object.prototype.hasOwnProperty.call(element, property)) { + target[property] = element[property]; } } } diff --git a/src/utils/point.js b/src/utils/point.js index 153927f..26794a3 100644 --- a/src/utils/point.js +++ b/src/utils/point.js @@ -21,7 +21,7 @@ export default class Point { } static fromGeoJson(json) { - [ longitude, latitude ] = json.coordinates; + const [longitude, latitude] = json.coordinates; return new Point(latitude, longitude); } @@ -29,7 +29,7 @@ export default class Point { serialize() { return { type: 'Point', - coorindates: [this.lat(), this.lng()] + coorindates: [this.lat(), this.lng()], }; } @@ -40,4 +40,4 @@ export default class Point { toString() { return `(${this.latitude}, ${this.longitude})`; } -} \ No newline at end of file +} diff --git a/src/utils/string.js b/src/utils/string.js index 779099e..cb8bd6e 100644 --- a/src/utils/string.js +++ b/src/utils/string.js @@ -9,7 +9,7 @@ * instance * const string = new String(); * string.humanize('hello_world').get() => "Hello world" - * + * * no chain * new String('hello_world', false).humanize() => "Hello world" * @@ -445,89 +445,76 @@ export default class String { } } -const pluralize = function() { +const pluralize = function () { const argz = ['pluralize', ...arguments]; return String.invoke(...argz); }; -const singularize = function() { +const singularize = function () { const argz = ['singularize', ...arguments]; return String.invoke(...argz); }; -const humanize = function() { +const humanize = function () { const argz = ['humanize', ...arguments]; return String.invoke(...argz); }; -const underscore = function() { +const underscore = function () { const argz = ['underscore', ...arguments]; return String.invoke(...argz); }; -const camelize = function() { +const camelize = function () { const argz = ['camelize', ...arguments]; return String.invoke(...argz); }; -const capitalize = function() { +const capitalize = function () { const argz = ['capitalize', ...arguments]; return String.invoke(...argz); }; -const dasherize = function() { +const dasherize = function () { const argz = ['dasherize', ...arguments]; return String.invoke(...argz); }; -const normify = function() { +const normify = function () { const argz = ['normify', ...arguments]; return String.invoke(...argz); }; -const demodulize = function() { +const demodulize = function () { const argz = ['demodulize', ...arguments]; return String.invoke(...argz); }; -const tableize = function() { +const tableize = function () { const argz = ['tableize', ...arguments]; return String.invoke(...argz); }; -const classify = function() { +const classify = function () { const argz = ['classify', ...arguments]; return String.invoke(...argz); }; -const foreignKey = function() { +const foreignKey = function () { const argz = ['foreignKey', ...arguments]; return String.invoke(...argz); }; -export { - pluralize, - singularize, - humanize, - underscore, - camelize, - capitalize, - dasherize, - normify, - demodulize, - tableize, - classify, - foreignKey -} \ No newline at end of file +export { pluralize, singularize, humanize, underscore, camelize, capitalize, dasherize, normify, demodulize, tableize, classify, foreignKey }; diff --git a/tests/place.test.js b/tests/place.test.js index c90c6d4..5e0ea85 100644 --- a/tests/place.test.js +++ b/tests/place.test.js @@ -10,104 +10,105 @@ const adapter = fleetbase.getAdapter(); // create an instance of the fleetbase sdk describe('fleetbase.places', () => { - - const context = { id: null }; - - describe('#create()', () => { - it('Should create a Place resource', async () => { - const place = await fleetbase.places.create({ - name: 'Warehouse', - street1: '23 Serangoon Central Nex', - country: 'Singapore' - }); - - context.id = place.id; - - assert.instanceOf(place, Place); - assert.instanceOf(place, Resource); - }); - - it('Should have an id', () => { - assert.isString(context.id); - assert.include(context.id, 'place', `id: ${context.id}`); - }); - }); - - describe('#update()', () => { - it('Should update the Place resource instance', async () => { - const { id } = context; - const place = await fleetbase.places.update(id, { - street2: '#5-22' - }); - - assert.instanceOf(place, Place); - assert.instanceOf(place, Resource); - assert.equal(place.getAttribute('street2'), '#5-22'); - }); - }); - - describe('#delete()', () => { - it('Should delete the Place resource instance', async () => { - const { id } = context; - const place = await fleetbase.places.destroy(id); - - assert.instanceOf(place, Place); - assert.instanceOf(place, Resource); - assert.isTrue(place.getAttribute('deleted')); - }); - }); + const context = { id: null }; + + describe('#create()', () => { + it('Should create a Place resource', async () => { + const place = await fleetbase.places.create({ + name: 'Warehouse', + street1: '23 Serangoon Central Nex', + country: 'Singapore', + }); + + context.id = place.id; + + assert.instanceOf(place, Place); + assert.instanceOf(place, Resource); + }); + + it('Should have an id', () => { + assert.isString(context.id); + assert.include(context.id, 'place', `id: ${context.id}`); + }); + }); + + describe('#update()', () => { + it('Should update the Place resource instance', async () => { + const { id } = context; + const place = await fleetbase.places.update(id, { + street2: '#5-22', + }); + + assert.instanceOf(place, Place); + assert.instanceOf(place, Resource); + assert.equal(place.getAttribute('street2'), '#5-22'); + }); + }); + + describe('#delete()', () => { + it('Should delete the Place resource instance', async () => { + const { id } = context; + const place = await fleetbase.places.destroy(id); + + assert.instanceOf(place, Place); + assert.instanceOf(place, Resource); + assert.isTrue(place.getAttribute('deleted')); + }); + }); }); // create a place instance without fleetbase sdk describe('Place', async () => { - - const context = { - place: new Place({ - name: 'Warehouse', - street1: '23 Serangoon Central Nex', - country: 'Singapore' - }, adapter) - }; - - describe('#create()', () => { - it('Should create a Place resource', async () => { - const { place } = context; - - await place.save(); - - assert.instanceOf(place, Place); - assert.instanceOf(place, Resource); - }); - - it('Should have an id', () => { - assert.isString(context.place.id); - assert.include(context.place.id, 'place', `id: ${context.place.id}`); - }); - }); - - describe('#update()', () => { - it('Should update the Place resource instance', async () => { - const { place } = context; - - await place.update({ - street2: '#5-22' - }); - - assert.instanceOf(place, Place); - assert.instanceOf(place, Resource); - assert.equal(place.getAttribute('street2'), '#5-22'); - }); - }); - - describe('#delete()', () => { - it('Should delete the Place resource instance', async () => { - const { place } = context; - - await place.destroy(); - - assert.instanceOf(place, Place); - assert.instanceOf(place, Resource); - assert.isTrue(place.getAttribute('deleted')); - }); - }); -}); \ No newline at end of file + const context = { + place: new Place( + { + name: 'Warehouse', + street1: '23 Serangoon Central Nex', + country: 'Singapore', + }, + adapter + ), + }; + + describe('#create()', () => { + it('Should create a Place resource', async () => { + const { place } = context; + + await place.save(); + + assert.instanceOf(place, Place); + assert.instanceOf(place, Resource); + }); + + it('Should have an id', () => { + assert.isString(context.place.id); + assert.include(context.place.id, 'place', `id: ${context.place.id}`); + }); + }); + + describe('#update()', () => { + it('Should update the Place resource instance', async () => { + const { place } = context; + + await place.update({ + street2: '#5-22', + }); + + assert.instanceOf(place, Place); + assert.instanceOf(place, Resource); + assert.equal(place.getAttribute('street2'), '#5-22'); + }); + }); + + describe('#delete()', () => { + it('Should delete the Place resource instance', async () => { + const { place } = context; + + await place.destroy(); + + assert.instanceOf(place, Place); + assert.instanceOf(place, Resource); + assert.isTrue(place.getAttribute('deleted')); + }); + }); +}); diff --git a/tests/sdk.test.js b/tests/sdk.test.js index 5d15265..0ec2fa3 100644 --- a/tests/sdk.test.js +++ b/tests/sdk.test.js @@ -7,47 +7,46 @@ import 'cross-fetch/polyfill'; // create an instance of the fleetbase sdk describe('Create a Fleetbase SDK instance', () => { - // const fleetbase = new Fleetbase(); - const fleetbase = new Fleetbase('$2y$10$uHbd1Sd3TxuvZKS2i4pe7OHDmxyN3xTBU1fDVYIGqtlyYs6jaO.hy', { host: 'https://v2api.fleetbase.engineering' }); - - it('should be an instance of Fleetbase', () => { + // const fleetbase = new Fleetbase(); + const fleetbase = new Fleetbase('$2y$10$uHbd1Sd3TxuvZKS2i4pe7OHDmxyN3xTBU1fDVYIGqtlyYs6jaO.hy', { host: 'https://v2api.fleetbase.engineering' }); + + it('should be an instance of Fleetbase', () => { assert.instanceOf(fleetbase, Fleetbase); }); - describe('#places', () => { - it('should have places store instance', () => { - assert.instanceOf(fleetbase.places, Store); - }); - it('should be able to create() a place', async () => { - const place = await fleetbase.places.create({ - name: 'Warehouse', - street1: '23 Serangoon Central Nex', - country: 'Singapore' - }); - - assert.instanceOf(place, Place); - }); - }) + describe('#places', () => { + it('should have places store instance', () => { + assert.instanceOf(fleetbase.places, Store); + }); + it('should be able to create() a place', async () => { + const place = await fleetbase.places.create({ + name: 'Warehouse', + street1: '23 Serangoon Central Nex', + country: 'Singapore', + }); + + assert.instanceOf(place, Place); + }); + }); }); // create a place instance without fleetbase sdk describe('Create a Place instance without SDK', () => { - const place = new Place({ - name: 'Warehouse', - street1: '23 Serangoon Central Nex', - country: 'Singapore' - }); - - it('should be an instance of Place', () => { + const place = new Place({ + name: 'Warehouse', + street1: '23 Serangoon Central Nex', + country: 'Singapore', + }); + + it('should be an instance of Place', () => { assert.instanceOf(place, Place); }); - - it('should be an instance of Resource', () => { + + it('should be an instance of Resource', () => { assert.instanceOf(place, Resource); }); - - it('should be able to get street1 attribute', () => { + + it('should be able to get street1 attribute', () => { assert.equal(place.getAttribute('street1'), '23 Serangoon Central Nex'); }); }); - diff --git a/tests/string.test.js b/tests/string.test.js index 09c268c..6f0e295 100644 --- a/tests/string.test.js +++ b/tests/string.test.js @@ -2,7 +2,6 @@ import { assert } from 'chai'; import String, { pluralize, dasherize } from '../src/utils/string'; describe('Create a new String() instance', () => { - it('should be an instance of String', () => { const s = new String('Hello World'); assert.instanceOf(s, String); @@ -20,7 +19,7 @@ describe('Create a new String() instance', () => { it('string should be pluralized', () => assert.equal(pluralized, 'entities')); }); - }) + }); }); describe('pluralize() function', () => { @@ -37,4 +36,4 @@ describe('dasherize() function', () => { assert.equal(dasherized, 'hello-world'); }); -}); \ No newline at end of file +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9198700 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + "module": "commonjs" /* Specify what module code is generated. */, + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + "strict": false /* Enable all strict type-checking options. */, + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} diff --git a/types/adapter.d.ts b/types/adapter.d.ts new file mode 100644 index 0000000..0b6f46e --- /dev/null +++ b/types/adapter.d.ts @@ -0,0 +1,13 @@ +export default Adapter; +declare class Adapter { + /** + * Creates a configured base adapter for Fleetbase. + * + * @param {Object} config Configuration options for adapter + */ + constructor(config?: any); + version: any; + host: any; + namespace: any; + headers: any; +} diff --git a/types/adapters.d.ts b/types/adapters.d.ts new file mode 100644 index 0000000..70fe8f2 --- /dev/null +++ b/types/adapters.d.ts @@ -0,0 +1,5 @@ +import BrowserAdapter from './adapters/browser'; +import NodeAdapter from './adapters/node'; +import EmberJsAdapter from './adapters/ember'; +import Adapter from './adapter'; +export { BrowserAdapter, NodeAdapter, EmberJsAdapter, Adapter }; diff --git a/types/adapters/browser.d.ts b/types/adapters/browser.d.ts new file mode 100644 index 0000000..e3a9155 --- /dev/null +++ b/types/adapters/browser.d.ts @@ -0,0 +1,84 @@ +export default BrowserAdapter; +declare class BrowserAdapter extends Adapter { + /** + * Setup browser adapter. + * @param {Object} config + */ + constructor(config: any); + /** + * Updates the adapter headers. + * + * @param {Object} headers + */ + setHeaders(headers?: any): this; + /** + * Parses the JSON returned by a network request + * + * @param {Object} response A response from a network request + * @return {Object} The parsed JSON, status from the response + * + * @return {Promise} + */ + parseJSON(response: any): any; + /** + * The base request method + * + * @param {String} path + * @param {String} method + * @param {Object} data + * @param {Object} options + * + * @return {Promise} + */ + request(path: string, method?: string, data?: any, options?: any): Promise; + /** + * Makes a GET request with fetch + * + * @param {String} path + * @param {Object} query + * @param {Object} options + * + * @return {Promise} + */ + get(path: string, query?: any, options?: any): Promise; + /** + * Makes a POST request with fetch + * + * @param {String} path + * @param {Object} data + * @param {Object} options + * + * @return {Promise} + */ + post(path: string, data?: any, options?: any): Promise; + /** + * Makes a PUT request with fetch + * + * @param {String} path + * @param {Object} data + * @param {Object} options + * + * @return {Promise} + */ + put(path: string, data?: any, options?: any): Promise; + /** + * Makes a DELETE request with fetch + * + * @param {String} path + * @param {Object} data + * @param {Object} options + * + * @return {Promise} + */ + delete(path: string, options?: any): Promise; + /** + * Makes a PATCH request with fetch + * @param {String} path + * @param {Object} data + * @param {Object} options + * + * @return {Promise} + */ + patch(path: string, data?: any, options?: any): Promise; +} +import Adapter from '../adapter'; diff --git a/types/adapters/ember.d.ts b/types/adapters/ember.d.ts new file mode 100644 index 0000000..fce9619 --- /dev/null +++ b/types/adapters/ember.d.ts @@ -0,0 +1,3 @@ +export default EmberJsAdapter; +declare class EmberJsAdapter extends Adapter {} +import Adapter from '../adapter'; diff --git a/types/adapters/node.d.ts b/types/adapters/node.d.ts new file mode 100644 index 0000000..4e96154 --- /dev/null +++ b/types/adapters/node.d.ts @@ -0,0 +1,74 @@ +export default NodeAdapter; +declare class NodeAdapter extends Adapter { + axios: import('axios').AxiosInstance; + /** + * Updates the adapter headers. + * + * @param {Object} headers + */ + setHeaders(headers?: any): this; + /** + * Tranform the response, and return the response data from axios. + * + * @param {AxiosResponse} response + * @returns {Object} + */ + transform(response: AxiosResponse): any; + /** + * Handles an erroneous request. + * + * @param {AxiosResponse} response + * @returns {Object} + */ + handleError(error: any): any; + /** + * Makes a GET request with axios + * + * @param {String} path + * @param {Object} query + * @param {Object} options + * + * @return {Promise} + */ + get(path: string, query?: any, options?: any): Promise; + /** + * Makes a POST request with axios + * + * @param {String} path + * @param {Object} data + * @param {Object} options + * + * @return {Promise} + */ + post(path: string, data?: any, options?: any): Promise; + /** + * Makes a PUT request with axios + * + * @param {String} path + * @param {Object} data + * @param {Object} options + * + * @return {Promise} + */ + put(path: string, data?: any, options?: any): Promise; + /** + * Makes a DELETE request with axios + * + * @param {String} path + * @param {Object} query + * @param {Object} options + * + * @return {Promise} + */ + delete(path: string, options?: any): Promise; + /** + * Makes a PATCH request with axios + * @param {String} path + * @param {Object} data + * @param {Object} options + * + * @return {Promise} + */ + patch(path: string, data?: any, options?: any): Promise; +} +import Adapter from '../adapter'; diff --git a/types/fleetbase.d.ts b/types/fleetbase.d.ts new file mode 100644 index 0000000..278f0b3 --- /dev/null +++ b/types/fleetbase.d.ts @@ -0,0 +1,124 @@ +/** + * // instance + * const fleetbase = new Fleetbase(); + * + * const contact = fleetbase.contacts.create({ + * name: 'Ron', + * phone: '+65 9999 8888' + * }); + * + * constact.update({ name: 'Hollywood Ron' }); + * + * // export + * import { Contact } from '@fleetbase/sdk'; + * + * const contact = new Contact({ + * name: 'Ron', + * phone: '+65 9999 8888' + * }); + * + * contact.save(); + */ +export default class Fleetbase { + static newInstance(...args: any[]): Fleetbase; + /** + * Builds an instance of the Fleetbase SDK + * + * @param {String} publicKey The public key issued + * @param {Object} config The version of resource to access + * @param {Boolean} debug Debug mode for SDK + * @return {Fleetbase} Instance + */ + constructor(publicKey: string, config?: any, debug?: boolean); + version: any; + options: { + version: any; + host: any; + namespace: any; + debug: boolean; + publicKey: string; + }; + adapter: any; + orders: any; + entities: Store; + places: Store; + drivers: any; + vehicles: Store; + vendors: Store; + contacts: Store; + organizations: any; + setAdapter(adapter: any): void; + getAdapter(): any; +} +import Store from './store'; +import Resource from './resource'; +import { Contact } from './resources'; +import { Driver } from './resources'; +import { Entity } from './resources'; +import { Order } from './resources'; +import { Payload } from './resources'; +import { Place } from './resources'; +import { TrackingStatus } from './resources'; +import { Vehicle } from './resources'; +import { Vendor } from './resources'; +import { Waypoint } from './resources'; +import { Zone } from './resources'; +import { ServiceArea } from './resources'; +import { ServiceRate } from './resources'; +import { ServiceQuote } from './resources'; +import { Organization } from './resources'; +import { BrowserAdapter } from './adapters'; +import { NodeAdapter } from './adapters'; +import { EmberJsAdapter } from './adapters'; +import { Adapter } from './adapters'; +import { isNodeEnvironment } from './utils'; +import { isLatitude } from './utils'; +import { isLongitude } from './utils'; +import { Point } from './utils'; +import { isResource } from './utils'; +import { GoogleAddress } from './utils'; +import { Collection } from './utils'; +import { StoreActions } from './utils'; +import { extendStoreActions } from './store'; +import { pluralize } from './utils/string'; +import { singularize } from './utils/string'; +import { classify } from './utils/string'; +import { dasherize } from './utils/string'; +import { camelize } from './utils/string'; +export { + Store, + Resource, + Contact, + Driver, + Entity, + Order, + Payload, + Place, + TrackingStatus, + Vehicle, + Vendor, + Waypoint, + Zone, + ServiceArea, + ServiceRate, + ServiceQuote, + Organization, + BrowserAdapter, + NodeAdapter, + EmberJsAdapter, + Adapter, + isNodeEnvironment, + isLatitude, + isLongitude, + Point, + isResource, + GoogleAddress, + Collection, + StoreActions, + extendStoreActions, + pluralize, + singularize, + classify, + dasherize, + camelize, +}; diff --git a/types/resolver.d.ts b/types/resolver.d.ts new file mode 100644 index 0000000..a30dac1 --- /dev/null +++ b/types/resolver.d.ts @@ -0,0 +1,43 @@ +export class Resolver { + constructor(...args: any[]); + resources: { + Contact: typeof Contact; + Driver: typeof Driver; + Entity: typeof Entity; + Order: typeof Order; + Payload: typeof Payload; + Place: typeof Place; + TrackingStatus: typeof TrackingStatus; + Vehicle: typeof Vehicle; + Vendor: typeof Vendor; + Waypoint: typeof Waypoint; + Zone: typeof Zone; + ServiceArea: typeof ServiceArea; + ServiceRate: typeof ServiceRate; + ServiceQuote: typeof ServiceQuote; + }; + adapters: { + BrowserAdapter: typeof BrowserAdapter; + NodeAdapter: typeof NodeAdapter; + EmberJsAdapter: typeof EmberJsAdapter; + }; + lookup(type: any, className: any, ...args: any[]): any; +} +export function lookup(...args: any[]): Resolver; +import { Contact } from './resources'; +import { Driver } from './resources'; +import { Entity } from './resources'; +import { Order } from './resources'; +import { Payload } from './resources'; +import { Place } from './resources'; +import { TrackingStatus } from './resources'; +import { Vehicle } from './resources'; +import { Vendor } from './resources'; +import { Waypoint } from './resources'; +import { Zone } from './resources'; +import { ServiceArea } from './resources'; +import { ServiceRate } from './resources'; +import { ServiceQuote } from './resources'; +import { BrowserAdapter } from './adapters'; +import { NodeAdapter } from './adapters'; +import { EmberJsAdapter } from './adapters'; diff --git a/types/resource.d.ts b/types/resource.d.ts new file mode 100644 index 0000000..9a060e7 --- /dev/null +++ b/types/resource.d.ts @@ -0,0 +1,245 @@ +export default Resource; +declare class Resource { + /** + * The base resource for all resources + + * @return {[type]} [description] + */ + constructor(attributes: {}, adapter: any, resource: any, options?: {}); + attributes: {}; + dirtyAttributes: {}; + /** + * Gets all changes + * + * @return {Object} + */ + changes(): any; + isLoading: boolean; + isSaving: boolean; + isDestroying: boolean; + isReloading: boolean; + resource: any; + options: {}; + version: any; + /** + * Set a new adapter to the resource instance, this will update the Store instance + * + * @param {Adapter} adapter + * @return {Resource} this + */ + setAdapter(adapter: Adapter): Resource; + adapter: Adapter; + store: Store; + /** + * Getter for id attribute + * + * @var {String} + */ + get id(): any; + /** + * Creates a new resource on the server + * + * @param {Object} payload [description] + * @return {[type]} [description] + */ + create(attributes?: {}): [type]; + /** + * Creates a new resource on the server + * + * @param {Object} payload [description] + * @return {[type]} [description] + */ + update(attributes?: {}): [type]; + /** + * Deletes the resource instance on the server + * + * @return {[type]} [description] + */ + destroy(): [type]; + /** + * Reloads the resource from the server. + * + * @return {[type]} [description] + */ + reload(): [type]; + /** + * Sets flag properties. + * + * @return this + */ + setFlags(flags?: any[], state?: boolean): this; + /** + * Resets tracked properties + * + * @return this + */ + reset(): this; + /** + * Emptys resource. + * + * @return this + */ + empty(): this; + attribues: {}; + /** + * Saves the resource instance on the server + * + * @return {[type]} [description] + */ + save(options?: {}): [type]; + /** + * Saves only dirtied attributes. + * + * @return {[type]} [description] + */ + saveDirty(): [type]; + /** + * Returns the resource meta if exists. + * + * @return {Object} + */ + get meta(): any; + /** + * Returns the date instance resource was created. + * + * @return {Date} + */ + get createdAt(): Date; + /** + * Returns the date instance resource was created. + * + * @return {Date} + */ + get updatedAt(): Date; + /** + * Checks if resource is loaded from the server. + * + * @return {Boolean} + */ + get isLoaded(): boolean; + /** + * Checks if resource ihas no attributes + * + * @return {Boolean} + */ + get isEmpty(): boolean; + /** + * Checks if resource is not saved to server. + * + * @return {Boolean} + */ + get isNew(): boolean; + /** + * Checks if resource is not saved to server. + * + * @return {Boolean} + */ + get isSaved(): boolean; + /** + * Checks if resource is deleted on server. + * + * @return {Boolean} + */ + get isDeleted(): boolean; + /** + * Iterates over each attribute value and property executing a user supplied callback. + * + * @return {Object} + */ + eachAttribute(callback: any): any; + /** + * Gets all dirty attributes. + * + * @return {Object} + */ + getDirtyAttributes(): any; + /** + * Checks if property is dirty. + * + * @param {String} property [description] + * @return {Boolean} + */ + isDirty(property: string): boolean; + /** + * Checks if any properties is dirty. + * + * @return {Boolean} + */ + hasDirtyAttributes(): boolean; + /** + * Updates a instance property without tracking changes or dirtying attribute. + * + * @param {String} property [description] + * @param {mixed} value [description] + */ + mutate(property: string, value: mixed): void; + /** + * Set an instance property locally + * + * @param {String} property [description] + * @param {mixed} value [description] + */ + setAttribute(property: string, value?: mixed): this; + /** + * Set multiple instance properties locally + * + * @param {Object} properties [description] + */ + setAttributes(attributes?: {}): this; + /** + * Get an attribute + * + * @param {String} attribute The attribute key to get + * @param {mixed} defaultValue The default value if no attribute value + */ + getAttribute(attribute: string, defaultValue?: mixed): any; + /** + * Checks if attribute exists. + * + * @param {String} property [description] + * @return {Boolean} + */ + hasAttribute(property: string): boolean; + /** + * Alias for checking if has multiple attributes. + * + * @param {Array} properties + * @return {Boolean} + */ + hasAttributes(properties?: any[]): boolean; + /** + * Returns true if attribute has value. + * + * @param {Array} properties + * @return {Boolean} + */ + isAttributeFilled(property: any): boolean; + /** + * Get multiple attributes. + * + * @param {Array} properties [description] + * @param {[type]} value [description] + */ + getAttributes(properties: any[], ...args: any[]): any; + /** + * Serialize resource to a POJO + * + * @returns {Object} + */ + serialize(): any; + /** + * Merge and return attributes on the resource instance. + * + * @param {[type]} property [description] + * @param {[type]} value [description] + */ + mergeAttributes(attributes?: {}): {}; + /** + * Merge and return attributes on the resource instance. + * + * @param {[type]} property [description] + * @param {[type]} value [description] + */ + syncAttributes(json?: {}): void; +} +import Store from './store'; diff --git a/types/resources.d.ts b/types/resources.d.ts new file mode 100644 index 0000000..be303de --- /dev/null +++ b/types/resources.d.ts @@ -0,0 +1,16 @@ +import Order from './resources/order'; +import Payload from './resources/payload'; +import Entity from './resources/entity'; +import Place from './resources/place'; +import Waypoint from './resources/waypoint'; +import TrackingStatus from './resources/tracking-status'; +import Vehicle from './resources/vehicle'; +import Organization from './resources/organization'; +import Driver from './resources/driver'; +import Vendor from './resources/vendor'; +import Contact from './resources/contact'; +import Zone from './resources/zone'; +import ServiceArea from './resources/service-area'; +import ServiceRate from './resources/service-rate'; +import ServiceQuote from './resources/service-quote'; +export { Order, Payload, Entity, Place, Waypoint, TrackingStatus, Vehicle, Organization, Driver, Vendor, Contact, Zone, ServiceArea, ServiceRate, ServiceQuote }; diff --git a/types/resources/contact.d.ts b/types/resources/contact.d.ts new file mode 100644 index 0000000..a5278a0 --- /dev/null +++ b/types/resources/contact.d.ts @@ -0,0 +1,5 @@ +export default Contact; +declare class Contact extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +import Resource from '../resource'; diff --git a/types/resources/driver.d.ts b/types/resources/driver.d.ts new file mode 100644 index 0000000..298336c --- /dev/null +++ b/types/resources/driver.d.ts @@ -0,0 +1,29 @@ +export default Driver; +declare class Driver extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); + get token(): any; + get isOnline(): boolean; + /** + * The latitude coordinate for the 'Place' location. + * + * @var {Integer} + */ + get latitude(): any; + /** + * The longitude coordinate for the 'Place' location. + * + * @var {Integer} + */ + get longitude(): any; + /** + * Array coordinate pair for Place location. + * + * @var {Array} + */ + get coordinates(): any[]; + track(params?: {}, options?: {}): any; + syncDevice(params?: {}, options?: {}): any; +} +export const driverActions: StoreActions; +import Resource from '../resource'; +import { StoreActions } from '../utils'; diff --git a/types/resources/entity.d.ts b/types/resources/entity.d.ts new file mode 100644 index 0000000..52b5224 --- /dev/null +++ b/types/resources/entity.d.ts @@ -0,0 +1,5 @@ +export default Entity; +declare class Entity extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +import Resource from '../resource'; diff --git a/types/resources/order.d.ts b/types/resources/order.d.ts new file mode 100644 index 0000000..1a824f6 --- /dev/null +++ b/types/resources/order.d.ts @@ -0,0 +1,29 @@ +export default Order; +declare class Order extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); + getDistanceAndTime(params?: {}, options?: {}): any; + dispatch(params?: {}, options?: {}): any; + start(params?: {}, options?: {}): any; + setDestination(destinationId: any, params?: {}, options?: {}): any; + captureQrCode(subjectId?: any, params?: {}, options?: {}): any; + captureSignature(subjectId?: any, params?: {}, options?: {}): any; + getNextActivity(params?: {}, options?: {}): any; + updateActivity(params?: {}, options?: {}): any; + cancel(params?: {}, options?: {}): any; + complete(params?: {}, options?: {}): any; + get isDispatched(): boolean; + get isNotDispatched(): boolean; + get isStarted(): boolean; + get isNotStarted(): boolean; + get isCompleted(): boolean; + get isCanceled(): boolean; + get isEnroute(): boolean; + get isInProgress(): boolean; + get scheduledAt(): Date; + get startedAt(): Date; + get dispatchedAt(): Date; + get status(): any; +} +export const orderActions: StoreActions; +import Resource from '../resource'; +import { StoreActions } from '../utils'; diff --git a/types/resources/organization.d.ts b/types/resources/organization.d.ts new file mode 100644 index 0000000..fdf3dc7 --- /dev/null +++ b/types/resources/organization.d.ts @@ -0,0 +1,6 @@ +export default Organization; +declare class Organization extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +export const organizationActions: any; +import Resource from '../resource'; diff --git a/types/resources/payload.d.ts b/types/resources/payload.d.ts new file mode 100644 index 0000000..a764bf6 --- /dev/null +++ b/types/resources/payload.d.ts @@ -0,0 +1,37 @@ +export default Payload; +declare class Payload extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); + /** + * Attaches an entity to an existing payload and returns + * the payload with the entity attached + * + * @param {[type]} Entity entity [description] + * @return {[type]} [description] + */ + attach(entity: any): [type]; + /** + * Returns all of the entities attached to this payload + * + * @return {[type]} [description] + */ + get entities(): [type]; + /** + * Returns the dropoff for this payload + * + * @return {[type]} [description] + */ + get dropoff(): [type]; + /** + * Returns the pickup for this payload + * + * @return {[type]} [description] + */ + get pickup(): [type]; + /** + * Returns all the waypoints for this payload + * + * @return {[type]} [description] + */ + get waypoints(): [type]; +} +import Resource from '../resource'; diff --git a/types/resources/place.d.ts b/types/resources/place.d.ts new file mode 100644 index 0000000..02798ff --- /dev/null +++ b/types/resources/place.d.ts @@ -0,0 +1,31 @@ +export default Place; +declare class Place extends Resource { + static fromGoogleAddress(googleAddress: any, adapter: any, options?: {}): Place; + constructor(attributes: {}, adapter: any, options?: {}); + /** + * The latitude coordinate for the 'Place' location. + * + * @var {Integer} + */ + get latitude(): any; + /** + * The longitude coordinate for the 'Place' location. + * + * @var {Integer} + */ + get longitude(): any; + /** + * Array coordinate pair for Place location. + * + * @var {Array} + */ + get coordinates(): any[]; + /** + * Set the owner of the place. + * + * @param {Object|String} owner + * @return {Place} + */ + setOwner(owner: any | string): Place; +} +import Resource from '../resource'; diff --git a/types/resources/service-area.d.ts b/types/resources/service-area.d.ts new file mode 100644 index 0000000..8eb3af9 --- /dev/null +++ b/types/resources/service-area.d.ts @@ -0,0 +1,5 @@ +export default ServiceArea; +declare class ServiceArea extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +import Resource from '../resource'; diff --git a/types/resources/service-quote.d.ts b/types/resources/service-quote.d.ts new file mode 100644 index 0000000..182bd4c --- /dev/null +++ b/types/resources/service-quote.d.ts @@ -0,0 +1,7 @@ +export default ServiceQuote; +declare class ServiceQuote extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); + fromPreliminary(): void; + fromPayload(): void; +} +import Resource from '../resource'; diff --git a/types/resources/service-rate.d.ts b/types/resources/service-rate.d.ts new file mode 100644 index 0000000..fd7b532 --- /dev/null +++ b/types/resources/service-rate.d.ts @@ -0,0 +1,5 @@ +export default ServiceRate; +declare class ServiceRate extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +import Resource from '../resource'; diff --git a/types/resources/tracking-status.d.ts b/types/resources/tracking-status.d.ts new file mode 100644 index 0000000..d4d1238 --- /dev/null +++ b/types/resources/tracking-status.d.ts @@ -0,0 +1,5 @@ +export default TrackingStatus; +declare class TrackingStatus extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +import Resource from '../resource'; diff --git a/types/resources/vehicle.d.ts b/types/resources/vehicle.d.ts new file mode 100644 index 0000000..87aebed --- /dev/null +++ b/types/resources/vehicle.d.ts @@ -0,0 +1,5 @@ +export default Vehicle; +declare class Vehicle extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +import Resource from '../resource'; diff --git a/types/resources/vendor.d.ts b/types/resources/vendor.d.ts new file mode 100644 index 0000000..cb70de4 --- /dev/null +++ b/types/resources/vendor.d.ts @@ -0,0 +1,5 @@ +export default Vendor; +declare class Vendor extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +import Resource from '../resource'; diff --git a/types/resources/waypoint.d.ts b/types/resources/waypoint.d.ts new file mode 100644 index 0000000..5ea4b5f --- /dev/null +++ b/types/resources/waypoint.d.ts @@ -0,0 +1,3 @@ +export default Waypoint; +declare class Waypoint extends Place {} +import Place from './place'; diff --git a/types/resources/zone.d.ts b/types/resources/zone.d.ts new file mode 100644 index 0000000..8c73f25 --- /dev/null +++ b/types/resources/zone.d.ts @@ -0,0 +1,5 @@ +export default Zone; +declare class Zone extends Resource { + constructor(attributes: {}, adapter: any, options?: {}); +} +import Resource from '../resource'; diff --git a/types/store.d.ts b/types/store.d.ts new file mode 100644 index 0000000..df81c59 --- /dev/null +++ b/types/store.d.ts @@ -0,0 +1,23 @@ +export default Store; +declare class Store { + constructor(resource: any, adapter: any, options?: {}); + resource: any; + adapter: any; + namespace: any; + storage: Collection; + options: {}; + extendActions(actions?: any[]): any; + deposit(resourceInstance: any): any; + serialize(json: any): import('./resolver').Resolver; + afterFetch(json: any): any; + create(attributes?: {}, options?: {}): Promise; + update(id: any, attributes?: {}, options?: {}): Promise; + findRecord(id: any, options?: {}): Promise; + findAll(options?: {}): Promise; + query(query?: {}, options?: {}): Promise; + queryRecord(query?: {}, options?: {}): Promise; + destroy(record: any, options?: {}): Promise; +} +export function afterFetch(store: any, json: any): any; +export function extendStoreActions(store: any, actions?: any[]): any; +import { Collection } from './utils'; diff --git a/types/utils/array.d.ts b/types/utils/array.d.ts new file mode 100644 index 0000000..94d3789 --- /dev/null +++ b/types/utils/array.d.ts @@ -0,0 +1 @@ +export const isArray: (arg: any) => arg is any[]; diff --git a/types/utils/collection.d.ts b/types/utils/collection.d.ts new file mode 100644 index 0000000..226c0e5 --- /dev/null +++ b/types/utils/collection.d.ts @@ -0,0 +1,52 @@ +export default Collection; +declare class Collection extends Array { + constructor(...items: any[]); + get notEmpty(): boolean; + get empty(): boolean; + get first(): any; + get last(): any; + replace(start: any, deleteCount: any, items?: any[]): this; + objectsAt(indexes: any): any; + objectAt(index: any): any; + indexOf(object: any, startAt: any): number; + lastIndexOf(object: any, startAt: any): any; + includes(object: any, startAt: any): boolean; + findBy(...args: any[]): any; + findIndexBy(...args: any[]): number; + isEvery(...args: any[]): boolean; + isAny(...args: any[]): boolean; + invoke(methodName: any, ...args: any[]): any[]; + toArray(): any[]; + compact(): any[]; + sortBy(...args: any[]): this; + uniqBy(key: any): any[]; + without(value: any): any[] | this; + clear(): this; + insertAt(idx: any, object: any): this; + replaceAt(idx: any, object: any): this; + removeAt(start: any, len: any): any; + pushObject(obj: any): this; + pushObjects(objects: any): this; + popObject(): any; + shiftObject(): any; + unshiftObject(obj: any): any; + unshiftObjects(objects: any): this; + reverseObjects(): this; + setObjects(objects: any): this; + removeObject(obj: any): this; + removeObjects(objects: any): this; + addObject(obj: any): this; + addObjects(objects: any): this; +} +export function replace(array: any, start: any, deleteCount: any, items?: any[]): void; +export function uniqBy(array: any, key?: (item: any) => any): any[]; +export function isCollection(mixed: any): boolean; +export function objectAt(array: any, index: any): any; +export function iter(key: any, value: any, ...args: any[]): (item: any) => boolean; +export function findIndex(array: any, predicate: any, startAt?: number): number; +export function find(array: any, callback: any, target: any): any; +export function any(array: any, callback: any, target: any): boolean; +export function every(array: any, callback: any, target: any): boolean; +export function indexOf(array: any, val: any, startAt: number, withNaNCheck: any): number; +export function removeAt(array: any, index: any, len?: number): any; +export function insertAt(array: any, index: any, item: any): any; diff --git a/types/utils/detect-adapter.d.ts b/types/utils/detect-adapter.d.ts new file mode 100644 index 0000000..697ba87 --- /dev/null +++ b/types/utils/detect-adapter.d.ts @@ -0,0 +1,2 @@ +export default detectAdapter; +declare function detectAdapter(options?: {}): import('../resolver').Resolver; diff --git a/types/utils/google-address.d.ts b/types/utils/google-address.d.ts new file mode 100644 index 0000000..fde1f45 --- /dev/null +++ b/types/utils/google-address.d.ts @@ -0,0 +1,54 @@ +export default GoogleAddress; +declare class GoogleAddress { + constructor(place: any); + place: any; + geometry: any; + components: any; + attributes: { + streetNumber: any; + streetName: any; + coordinates: any[]; + city: any; + county: any; + stateShort: any; + stateLong: any; + countryShort: any; + country: any; + countryLong: any; + postalCode: any; + }; + parse(): void; + parseComponents(): any; + parseProperties(): { + streetNumber: any; + streetName: any; + coordinates: any[]; + city: any; + county: any; + stateShort: any; + stateLong: any; + countryShort: any; + country: any; + countryLong: any; + postalCode: any; + }; + all(): { + streetNumber: any; + streetName: any; + coordinates: any[]; + city: any; + county: any; + stateShort: any; + stateLong: any; + countryShort: any; + country: any; + countryLong: any; + postalCode: any; + }; + or(keys?: any[]): any; + has(key: any): boolean; + get(key: any, short?: boolean): any; + setAttributes(attributes?: {}): this; + setAttribute(key: any, value: any): this; + getAttribute(key: any): any; +} diff --git a/types/utils/index.d.ts b/types/utils/index.d.ts new file mode 100644 index 0000000..9f008c1 --- /dev/null +++ b/types/utils/index.d.ts @@ -0,0 +1,15 @@ +import Collection from './collection'; +import isNodeEnvironment from './is-node-environment'; +import detectAdapter from './detect-adapter'; +import isBlank from './is-blank'; +import isEmpty from './is-empty'; +import isLatitude from './is-latitude'; +import isLongitude from './is-longitude'; +import isResource from './is-resource'; +import isPhone from './is-phone'; +import isEmail from './is-email'; +import uuid from './uuid'; +import GoogleAddress from './google-address'; +import StoreActions from './store-actions'; +import Point from './point'; +export { Collection, isNodeEnvironment, detectAdapter, isBlank, isEmpty, isLatitude, isLongitude, isResource, isPhone, isEmail, uuid, GoogleAddress, StoreActions, Point }; diff --git a/types/utils/is-blank.d.ts b/types/utils/is-blank.d.ts new file mode 100644 index 0000000..1f850c4 --- /dev/null +++ b/types/utils/is-blank.d.ts @@ -0,0 +1,2 @@ +export default isBlank; +declare function isBlank(obj: any): boolean; diff --git a/types/utils/is-email.d.ts b/types/utils/is-email.d.ts new file mode 100644 index 0000000..871067f --- /dev/null +++ b/types/utils/is-email.d.ts @@ -0,0 +1,2 @@ +export default isEmail; +declare function isEmail(email?: string): boolean; diff --git a/types/utils/is-empty.d.ts b/types/utils/is-empty.d.ts new file mode 100644 index 0000000..611ade3 --- /dev/null +++ b/types/utils/is-empty.d.ts @@ -0,0 +1,2 @@ +export default isEmpty; +declare function isEmpty(obj: any): boolean; diff --git a/types/utils/is-latitude.d.ts b/types/utils/is-latitude.d.ts new file mode 100644 index 0000000..0f537fa --- /dev/null +++ b/types/utils/is-latitude.d.ts @@ -0,0 +1 @@ +export default function isLatitude(coordinate: any): boolean; diff --git a/types/utils/is-longitude.d.ts b/types/utils/is-longitude.d.ts new file mode 100644 index 0000000..680d8c2 --- /dev/null +++ b/types/utils/is-longitude.d.ts @@ -0,0 +1 @@ +export default function isLongitude(coordinate: any): boolean; diff --git a/types/utils/is-node-environment.d.ts b/types/utils/is-node-environment.d.ts new file mode 100644 index 0000000..0f98896 --- /dev/null +++ b/types/utils/is-node-environment.d.ts @@ -0,0 +1,7 @@ +export default isNodeEnvironment; +/** + * Determines if environment SDK is initialized in is Node, additionally checks pass if environment is ReactNative. + * + * @returns boolean + */ +declare function isNodeEnvironment(): boolean; diff --git a/types/utils/is-phone.d.ts b/types/utils/is-phone.d.ts new file mode 100644 index 0000000..2daa6d5 --- /dev/null +++ b/types/utils/is-phone.d.ts @@ -0,0 +1,2 @@ +export default isPhone; +declare function isPhone(phone?: string): boolean; diff --git a/types/utils/is-resource.d.ts b/types/utils/is-resource.d.ts new file mode 100644 index 0000000..dec9eaf --- /dev/null +++ b/types/utils/is-resource.d.ts @@ -0,0 +1 @@ +export default function isResource(record: any): boolean; diff --git a/types/utils/object.d.ts b/types/utils/object.d.ts new file mode 100644 index 0000000..56ce6e3 --- /dev/null +++ b/types/utils/object.d.ts @@ -0,0 +1,7 @@ +export function set(object: any, path: any, value: any): any; +export function get(object: any, path: any): any; +export function getProperties(object: any, properties?: any[], ...args: any[]): {}; +export function setProperties(object: any, properties?: {}): any; +export function extend(target: any, classes?: any[], ...args: any[]): any; +export function isCallable(object: any, property: any): boolean; +export function invoke(object: any, method: any): any; diff --git a/types/utils/point.d.ts b/types/utils/point.d.ts new file mode 100644 index 0000000..222c2c1 --- /dev/null +++ b/types/utils/point.d.ts @@ -0,0 +1,19 @@ +export default class Point { + static fromGeoJson(json: any): Point; + constructor(latitude?: number, longitude?: number); + type: string; + coordinates: number[]; + get latitude(): number; + get longitude(): number; + lat(): number; + lng(): number; + serialize(): { + type: string; + coorindates: number[]; + }; + toJson(): { + type: string; + coorindates: number[]; + }; + toString(): string; +} diff --git a/types/utils/store-actions.d.ts b/types/utils/store-actions.d.ts new file mode 100644 index 0000000..09ae6a2 --- /dev/null +++ b/types/utils/store-actions.d.ts @@ -0,0 +1,6 @@ +export default class StoreActions { + constructor(actions?: {}, bind?: any); + actions: {}; + bind: any; + extend(bindTo?: any): this; +} diff --git a/types/utils/string.d.ts b/types/utils/string.d.ts new file mode 100644 index 0000000..fe07018 --- /dev/null +++ b/types/utils/string.d.ts @@ -0,0 +1,64 @@ +/** + * Javascript String + * + * instance + * new String('hello_world').humanize().get() => "Hello world" + * + * instance + * const string = new String(); + * string.humanize('hello_world').get() => "Hello world" + * + * no chain + * new String('hello_world', false).humanize() => "Hello world" + * + * static + * String.invoke('humanize', 'hello_world') => "Hello world" + * + * exports {} + * humanize('hello_world') => "Hello world" + */ +export default class String { + /** + * @method invoke + **/ + static invoke(...args: any[]): any; + constructor(string: any, chain?: boolean); + str: any; + chain: boolean; + uncountableWords: string[]; + pluralRules: (string | RegExp)[][]; + singularRules: (string | RegExp)[][]; + nonTitlecasedWords: string[]; + idSuffix: RegExp; + underbar: RegExp; + spaceOrUnderbar: RegExp; + uppercase: RegExp; + underbarPrefix: RegExp; + get(): any; + applyRules(str: any, rules: any, skip: any, override: any): any; + pluralize(str: any, plural?: any): any; + singularize(str: any, singular: any): any; + camelize(str: any, lowFirstLetter: any): any; + underscore(str: any): any; + humanize(str: any, lowFirstLetter: any): any; + capitalize(str: any): any; + dasherize(str: any): any; + normify(str: any, allFirstUpper: any): any; + demodulize(str: any): any; + tableize(str: any): any; + classify(str: any): any; + foreignKey(str: any, dropIdUbar?: boolean): any; + ordinalize(str: any): any; +} +export function pluralize(...args: any[]): any; +export function singularize(...args: any[]): any; +export function humanize(...args: any[]): any; +export function underscore(...args: any[]): any; +export function camelize(...args: any[]): any; +export function capitalize(...args: any[]): any; +export function dasherize(...args: any[]): any; +export function normify(...args: any[]): any; +export function demodulize(...args: any[]): any; +export function tableize(...args: any[]): any; +export function classify(...args: any[]): any; +export function foreignKey(...args: any[]): any; diff --git a/types/utils/uuid.d.ts b/types/utils/uuid.d.ts new file mode 100644 index 0000000..63e1124 --- /dev/null +++ b/types/utils/uuid.d.ts @@ -0,0 +1,2 @@ +export default uuid; +declare function uuid(): string;