UNPKG

js-data-http

Version:

HTTP (XHR) adapter for js-data in the browser.

10 lines 37.2 kB
/*! * js-data-http * @version 3.0.1 - Homepage <https://github.com/js-data/js-data-http> * @copyright (c) 2014-2016 js-data-http project authors * @license MIT <https://github.com/js-data/js-data-http/blob/master/LICENSE> * * @overview HTTP (XHR) adapter for js-data in the browser. */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("js-data")):"function"==typeof define&&define.amd?define("js-data-http",["exports","js-data"],t):t(e.JSDataHttp=e.JSDataHttp||{},e.JSData)}(this,function(e,c){"use strict";"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var t=function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}(function(n,e){!function webpackUniversalModuleDefinition(e,t){n.exports=t()}(0,function(){return function(n){var r={};function __webpack_require__(e){if(r[e])return r[e].exports;var t=r[e]={exports:{},id:e,loaded:!1};return n[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.m=n,__webpack_require__.c=r,__webpack_require__.p="",__webpack_require__(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){var r=n(2),o=n(3),i=n(5),a=n(6);function createInstance(e){var t=new i(e),n=o(i.prototype.request,t);return r.extend(n,i.prototype,t),r.extend(n,t),n}var s=createInstance(a);s.Axios=i,s.create=function create(e){return createInstance(r.merge(a,e))},s.Cancel=n(23),s.CancelToken=n(24),s.isCancel=n(20),s.all=function all(e){return Promise.all(e)},s.spread=n(25),e.exports=s,e.exports.default=s},function(e,t,n){var o=n(3),r=n(4),i=Object.prototype.toString;function isArray(e){return"[object Array]"===i.call(e)}function isObject(e){return null!==e&&"object"==typeof e}function isFunction(e){return"[object Function]"===i.call(e)}function forEach(e,t){if(null!=e)if("object"==typeof e||isArray(e)||(e=[e]),isArray(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:isArray,isArrayBuffer:function isArrayBuffer(e){return"[object ArrayBuffer]"===i.call(e)},isBuffer:r,isFormData:function isFormData(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function isArrayBufferView(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function isString(e){return"string"==typeof e},isNumber:function isNumber(e){return"number"==typeof e},isObject:isObject,isUndefined:function isUndefined(e){return void 0===e},isDate:function isDate(e){return"[object Date]"===i.call(e)},isFile:function isFile(e){return"[object File]"===i.call(e)},isBlob:function isBlob(e){return"[object Blob]"===i.call(e)},isFunction:isFunction,isStream:function isStream(e){return isObject(e)&&isFunction(e.pipe)},isURLSearchParams:function isURLSearchParams(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function isStandardBrowserEnv(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:forEach,merge:function merge(){var n={};function assignValue(e,t){"object"==typeof n[t]&&"object"==typeof e?n[t]=merge(n[t],e):n[t]=e}for(var e=0,t=arguments.length;e<t;e++)forEach(arguments[e],assignValue);return n},extend:function extend(n,e,r){return forEach(e,function assignValue(e,t){n[t]=r&&"function"==typeof e?o(e,r):e}),n},trim:function trim(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},function(e,t){e.exports=function bind(n,r){return function wrap(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];return n.apply(r,e)}}},function(e,t){function isBuffer(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(isBuffer(e)||function isSlowBuffer(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&isBuffer(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,n){var r=n(6),o=n(2),i=n(17),a=n(18),s=n(21),u=n(22);function Axios(e){this.defaults=e,this.interceptors={request:new i,response:new i}}Axios.prototype.request=function request(e){"string"==typeof e&&(e=o.merge({url:arguments[0]},arguments[1])),(e=o.merge(r,this.defaults,{method:"get"},e)).method=e.method.toLowerCase(),e.baseURL&&!s(e.url)&&(e.url=u(e.baseURL,e.url));var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function unshiftRequestInterceptors(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function pushResponseInterceptors(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},o.forEach(["delete","get","head","options"],function forEachMethodNoData(n){Axios.prototype[n]=function(e,t){return this.request(o.merge(t||{},{method:n,url:e}))}}),o.forEach(["post","put","patch"],function forEachMethodWithData(r){Axios.prototype[r]=function(e,t,n){return this.request(o.merge(n||{},{method:r,url:e,data:t}))}}),e.exports=Axios},function(e,t,n){var r=n(2),o=n(7),i={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var a={adapter:function getDefaultAdapter(){var e;return"undefined"!=typeof XMLHttpRequest?e=n(8):"undefined"!=typeof process&&(e=n(8)),e}(),transformRequest:[function transformRequest(e,t){return o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(setContentTypeIfUnset(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(setContentTypeIfUnset(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function transformResponse(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function validateStatus(e){return 200<=e&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function forEachMethodNoData(e){a.headers[e]={}}),r.forEach(["post","put","patch"],function forEachMethodWithData(e){a.headers[e]=r.merge(i)}),e.exports=a},function(e,t,n){var o=n(2);e.exports=function normalizeHeaderName(n,r){o.forEach(n,function processHeader(e,t){t!==r&&t.toUpperCase()===r.toUpperCase()&&(n[r]=e,delete n[t])})}},function(e,t,d){var p=d(2),h=d(9),y=d(12),m=d(13),v=d(14),g=d(10),b="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||d(15);e.exports=function xhrAdapter(c){return new Promise(function dispatchXhrRequest(n,r){var o=c.data,i=c.headers;p.isFormData(o)&&delete i["Content-Type"];var a=new XMLHttpRequest,e="onreadystatechange",s=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in a||v(c.url)||(a=new window.XDomainRequest,e="onload",s=!0,a.onprogress=function handleProgress(){},a.ontimeout=function handleTimeout(){}),c.auth){var t=c.auth.username||"",u=c.auth.password||"";i.Authorization="Basic "+b(t+":"+u)}if(a.open(c.method.toUpperCase(),y(c.url,c.params,c.paramsSerializer),!0),a.timeout=c.timeout,a[e]=function handleLoad(){if(a&&(4===a.readyState||s)&&(0!==a.status||a.responseURL&&0===a.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in a?m(a.getAllResponseHeaders()):null,t={data:c.responseType&&"text"!==c.responseType?a.response:a.responseText,status:1223===a.status?204:a.status,statusText:1223===a.status?"No Content":a.statusText,headers:e,config:c,request:a};h(n,r,t),a=null}},a.onerror=function handleError(){r(g("Network Error",c,null,a)),a=null},a.ontimeout=function handleTimeout(){r(g("timeout of "+c.timeout+"ms exceeded",c,"ECONNABORTED",a)),a=null},p.isStandardBrowserEnv()){var f=d(16),l=(c.withCredentials||v(c.url))&&c.xsrfCookieName?f.read(c.xsrfCookieName):void 0;l&&(i[c.xsrfHeaderName]=l)}if("setRequestHeader"in a&&p.forEach(i,function setRequestHeader(e,t){void 0===o&&"content-type"===t.toLowerCase()?delete i[t]:a.setRequestHeader(t,e)}),c.withCredentials&&(a.withCredentials=!0),c.responseType)try{a.responseType=c.responseType}catch(e){if("json"!==c.responseType)throw e}"function"==typeof c.onDownloadProgress&&a.addEventListener("progress",c.onDownloadProgress),"function"==typeof c.onUploadProgress&&a.upload&&a.upload.addEventListener("progress",c.onUploadProgress),c.cancelToken&&c.cancelToken.promise.then(function onCanceled(e){a&&(a.abort(),r(e),a=null)}),void 0===o&&(o=null),a.send(o)})}},function(e,t,n){var o=n(10);e.exports=function settle(e,t,n){var r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(o("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){var a=n(11);e.exports=function createError(e,t,n,r,o){var i=new Error(e);return a(i,t,n,r,o)}},function(e,t){e.exports=function enhanceError(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e}},function(e,t,n){var i=n(2);function encode(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function buildURL(e,t,n){if(!t)return e;var r;if(n)r=n(t);else if(i.isURLSearchParams(t))r=t.toString();else{var o=[];i.forEach(t,function serialize(e,t){null!=e&&(i.isArray(e)&&(t+="[]"),i.isArray(e)||(e=[e]),i.forEach(e,function parseValue(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),o.push(encode(t)+"="+encode(e))}))}),r=o.join("&")}return r&&(e+=(-1===e.indexOf("?")?"?":"&")+r),e}},function(e,t,n){var i=n(2);e.exports=function parseHeaders(e){var t,n,r,o={};return e&&i.forEach(e.split("\n"),function parser(e){r=e.indexOf(":"),t=i.trim(e.substr(0,r)).toLowerCase(),n=i.trim(e.substr(r+1)),t&&(o[t]=o[t]?o[t]+", "+n:n)}),o}},function(e,t,n){var i=n(2);e.exports=i.isStandardBrowserEnv()?function standardBrowserEnv(){var n,r=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");function resolveURL(e){var t=e;return r&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}return n=resolveURL(window.location.href),function isURLSameOrigin(e){var t=i.isString(e)?resolveURL(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function isURLSameOrigin(){return!0}},function(e,t){function E(){this.message="String contains an invalid character"}(E.prototype=new Error).code=5,E.prototype.name="InvalidCharacterError",e.exports=function btoa(e){for(var t,n,r=String(e),o="",i=0,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.charAt(0|i)||(a="=",i%1);o+=a.charAt(63&t>>8-i%1*8)){if(255<(n=r.charCodeAt(i+=.75)))throw new E;t=t<<8|n}return o}},function(e,t,n){var s=n(2);e.exports=s.isStandardBrowserEnv()?function standardBrowserEnv(){return{write:function write(e,t,n,r,o,i){var a=[];a.push(e+"="+encodeURIComponent(t)),s.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),s.isString(r)&&a.push("path="+r),s.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function read(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function remove(e){this.write(e,"",Date.now()-864e5)}}}():{write:function write(){},read:function read(){return null},remove:function remove(){}}},function(e,t,n){var r=n(2);function InterceptorManager(){this.handlers=[]}InterceptorManager.prototype.use=function use(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},InterceptorManager.prototype.eject=function eject(e){this.handlers[e]&&(this.handlers[e]=null)},InterceptorManager.prototype.forEach=function forEach(t){r.forEach(this.handlers,function forEachHandler(e){null!==e&&t(e)})},e.exports=InterceptorManager},function(e,t,n){var r=n(2),o=n(19),i=n(20),a=n(6);function throwIfCancellationRequested(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function dispatchRequest(t){return throwIfCancellationRequested(t),t.headers=t.headers||{},t.data=o(t.data,t.headers,t.transformRequest),t.headers=r.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function cleanHeaderConfig(e){delete t.headers[e]}),(t.adapter||a.adapter)(t).then(function onAdapterResolution(e){return throwIfCancellationRequested(t),e.data=o(e.data,e.headers,t.transformResponse),e},function onAdapterRejection(e){return i(e)||(throwIfCancellationRequested(t),e&&e.response&&(e.response.data=o(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},function(e,t,n){var r=n(2);e.exports=function transformData(t,n,e){return r.forEach(e,function transform(e){t=e(t,n)}),t}},function(e,t){e.exports=function isCancel(e){return!(!e||!e.__CANCEL__)}},function(e,t){e.exports=function isAbsoluteURL(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){e.exports=function combineURLs(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t){function Cancel(e){this.message=e}Cancel.prototype.toString=function toString(){return"Cancel"+(this.message?": "+this.message:"")},Cancel.prototype.__CANCEL__=!0,e.exports=Cancel},function(e,t,n){var r=n(23);function CancelToken(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function promiseExecutor(e){t=e});var n=this;e(function cancel(e){n.reason||(n.reason=new r(e),t(n.reason))})}CancelToken.prototype.throwIfRequested=function throwIfRequested(){if(this.reason)throw this.reason},CancelToken.source=function source(){var t;return{token:new CancelToken(function executor(e){t=e}),cancel:t}},e.exports=CancelToken},function(e,t){e.exports=function spread(t){return function wrap(e){return t.apply(null,e)}}}])})}),n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},d=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function sliceIterator(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=function noop(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t[t.length-1];return this.dbg.apply(this,[r.op].concat(t)),c.utils.resolve()},o=function noop2(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t[t.length-2];return this.dbg.apply(this,[r.op].concat(t)),c.utils.resolve()},f=function unique(e){var t={},n=[];return e.forEach(function(e){e in t||(n.push(e),t[e]=0)}),n},p=function withoutRelations(e,t,n){n||(n={}),n.with||(n.with=[]);var r=(e.relationFields||[]).filter(function(e){return-1===n.with.indexOf(e)});return c.utils.omit(t,r)};function Response(e,t,n){t||(t={}),this.data=e,c.utils.fillIn(this,t),this.op=n}var i={debug:!1,raw:!1};function Adapter(e){c.utils.classCallCheck(this,Adapter),c.Component.call(this,e),e||(e={}),c.utils.fillIn(e,i),c.utils.fillIn(this,e)}c.Component.extend({constructor:Adapter,afterCount:o,afterCreate:o,afterCreateMany:o,afterDestroy:o,afterDestroyAll:o,afterFind:o,afterFindAll:o,afterSum:o,afterUpdate:o,afterUpdateAll:o,afterUpdateMany:o,beforeCount:r,beforeCreate:r,beforeCreateMany:r,beforeDestroy:r,beforeDestroyAll:r,beforeFind:r,beforeFindAll:r,beforeSum:r,beforeUpdate:r,beforeUpdateAll:r,beforeUpdateMany:r,count:function count(i,a,s){var u=this,f=void 0;return a||(a={}),s||(s={}),f=s.op="beforeCount",c.utils.resolve(this[f](i,a,s)).then(function(){return f=s.op="count",u.dbg(f,i,a,s),c.utils.resolve(u._count(i,a,s))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];r||(r={});var o=new Response(n,r,f);return o=u.respond(o,s),f=s.op="afterCount",c.utils.resolve(u[f](i,a,s,o)).then(function(e){return void 0===e?o:e})})},create:function create(i,a,s){var u=this,f=void 0;return a||(a={}),s||(s={}),f=s.op="beforeCreate",c.utils.resolve(this[f](i,a,s)).then(function(e){return a=p(i,a=void 0===e?a:e,s),f=s.op="create",u.dbg(f,i,a,s),c.utils.resolve(u._create(i,a,s))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];r||(r={});var o=new Response(n,r,"create");return o.created=n?1:0,o=u.respond(o,s),f=s.op="afterCreate",c.utils.resolve(u[f](i,a,s,o)).then(function(e){return void 0===e?o:e})})},createMany:function createMany(i,a,s){var u=this,f=void 0;return a||(a={}),s||(s={}),f=s.op="beforeCreateMany",c.utils.resolve(this[f](i,a,s)).then(function(e){return a=(a=void 0===e?a:e).map(function(e){return p(i,e,s)}),f=s.op="createMany",u.dbg(f,i,a,s),c.utils.resolve(u._createMany(i,a,s))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];n||(n=[]),r||(r={});var o=new Response(n,r,"createMany");return o.created=n.length,o=u.respond(o,s),f=s.op="afterCreateMany",c.utils.resolve(u[f](i,a,s,o)).then(function(e){return void 0===e?o:e})})},destroy:function destroy(i,a,s){var u=this,f=void 0;return s||(s={}),f=s.op="beforeDestroy",c.utils.resolve(this[f](i,a,s)).then(function(){return f=s.op="destroy",u.dbg(f,i,a,s),c.utils.resolve(u._destroy(i,a,s))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];r||(r={});var o=new Response(n,r,"destroy");return o=u.respond(o,s),f=s.op="afterDestroy",c.utils.resolve(u[f](i,a,s,o)).then(function(e){return void 0===e?o:e})})},destroyAll:function destroyAll(i,a,s){var u=this,f=void 0;return a||(a={}),s||(s={}),f=s.op="beforeDestroyAll",c.utils.resolve(this[f](i,a,s)).then(function(){return f=s.op="destroyAll",u.dbg(f,i,a,s),c.utils.resolve(u._destroyAll(i,a,s))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];r||(r={});var o=new Response(n,r,"destroyAll");return o=u.respond(o,s),f=s.op="afterDestroyAll",c.utils.resolve(u[f](i,a,s,o)).then(function(e){return void 0===e?o:e})})},loadBelongsTo:function loadBelongsTo(t,n,r,e){var o=this,i=n.getRelation();if(c.utils.isObject(r)&&!c.utils.isArray(r)){var a=r;return this.find(i,this.makeBelongsToForeignKey(t,n,a),e).then(function(e){n.setLocalField(a,e)})}var s=r.map(function(e){return o.makeBelongsToForeignKey(t,n,e)}).filter(function(e){return e});return this.findAll(i,{where:u({},i.idAttribute,{in:s})},e).then(function(e){r.forEach(function(t){e.forEach(function(e){e[i.idAttribute]===t[n.foreignKey]&&n.setLocalField(t,e)})})})},find:function find(o,i,a){var s=this,u=void 0;return a||(a={}),a.with||(a.with=[]),u=a.op="beforeFind",c.utils.resolve(this[u](o,i,a)).then(function(){return u=a.op="find",s.dbg(u,o,i,a),c.utils.resolve(s._find(o,i,a))}).then(function(e){return s.loadRelationsFor(o,e,a)}).then(function(e){var t=d(e,2),n=t[0],r=new Response(n,t[1],"find");return r.found=n?1:0,r=s.respond(r,a),u=a.op="afterFind",c.utils.resolve(s[u](o,i,a,r)).then(function(e){return void 0===e?r:e})})},findAll:function findAll(o,i,a){var s=this,u=void 0;a||(a={}),a.with||(a.with=[]);var e=a._activeWith;if(c.utils.isObject(e)){var t=e.query||{};e.replace?i=t:c.utils.deepFillIn(i,t)}return u=a.op="beforeFindAll",c.utils.resolve(this[u](o,i,a)).then(function(){return u=a.op="findAll",s.dbg(u,o,i,a),c.utils.resolve(s._findAll(o,i,a))}).then(function(e){return s.loadRelationsFor(o,e,a)}).then(function(e){var t=d(e,2),n=t[0],r=new Response(n,t[1],"findAll");return r.found=n.length,r=s.respond(r,a),u=a.op="afterFindAll",c.utils.resolve(s[u](o,i,a,r)).then(function(e){return void 0===e?r:e})})},loadRelationsFor:function loadRelationsFor(r,e,t){var o=this,i=d(e,1)[0],a=[];return i&&c.utils.forEachRelation(r,t,function(e,t){var n=void 0;!e.foreignKey||"hasOne"!==e.type&&"hasMany"!==e.type?"hasMany"===e.type&&e.localKeys?n=o.loadHasManyLocalKeys(r,e,i,t):"hasMany"===e.type&&e.foreignKeys?n=o.loadHasManyForeignKeys(r,e,i,t):"belongsTo"===e.type&&(n=o.loadBelongsTo(r,e,i,t)):n="hasOne"===e.type?o.loadHasOne(r,e,i,t):o.loadHasMany(r,e,i,t),n&&a.push(n)}),c.utils.Promise.all(a).then(function(){return e})},getOpt:function getOpt(e,t){return t||(t={}),void 0===t[e]?c.utils.plainCopy(this[e]):c.utils.plainCopy(t[e])},loadHasMany:function loadHasMany(r,o,t,e){var n=this,i=!1;c.utils.isObject(t)&&!c.utils.isArray(t)&&(i=!0,t=[t]);var a=t.map(function(e){return n.makeHasManyForeignKey(r,o,e)}),s={where:{}},u=s.where[o.foreignKey]={};return i?u["=="]=a[0]:u.in=a.filter(function(e){return e}),this.findAll(o.getRelation(),s,e).then(function(e){t.forEach(function(t){var n=[];i?n=e:e.forEach(function(e){c.utils.get(e,o.foreignKey)===t[r.idAttribute]&&n.push(e)}),o.setLocalField(t,n)})})},loadHasManyLocalKeys:function loadHasManyLocalKeys(t,o,e,n){var r=this,i=void 0,a=o.getRelation();if(c.utils.isObject(e)&&!c.utils.isArray(e)&&(i=e),i)return this.findAll(a,{where:u({},a.idAttribute,{in:this.makeHasManyLocalKeys(t,o,i)})},n).then(function(e){o.setLocalField(i,e)});var s=[];return e.forEach(function(e){s=s.concat(r.makeHasManyLocalKeys(t,o,e))}),this.findAll(a,{where:u({},a.idAttribute,{in:f(s).filter(function(e){return e})})},n).then(function(r){return e.forEach(function(e){var t=[],n=c.utils.get(e,o.localKeys)||[];n=c.utils.isArray(n)?n:Object.keys(n),r.forEach(function(e){n&&-1!==n.indexOf(e[a.idAttribute])&&t.push(e)}),o.setLocalField(e,t)}),r})},loadHasManyForeignKeys:function loadHasManyForeignKeys(t,i,e,n){var r=this,o=i.getRelation(),a=t.idAttribute,s=void 0;return c.utils.isObject(e)&&!c.utils.isArray(e)&&(s=e),s?this.findAll(i.getRelation(),{where:u({},i.foreignKeys,{contains:this.makeHasManyForeignKeys(t,i,s)})},n).then(function(e){i.setLocalField(s,e)}):this.findAll(o,{where:u({},i.foreignKeys,{isectNotEmpty:e.map(function(e){return r.makeHasManyForeignKeys(t,i,e)})})},n).then(function(r){var o=i.foreignKeys;e.forEach(function(e){var t=[],n=c.utils.get(e,a);r.forEach(function(e){-1!==(c.utils.get(r,o)||[]).indexOf(n)&&t.push(e)}),i.setLocalField(e,t)})})},loadHasOne:function loadHasOne(e,n,t,r){return c.utils.isObject(t)&&!c.utils.isArray(t)&&(t=[t]),this.loadHasMany(e,n,t,r).then(function(){t.forEach(function(e){var t=n.getLocalField(e);c.utils.isArray(t)&&t.length&&n.setLocalField(e,t[0])})})},makeHasManyForeignKey:function makeHasManyForeignKey(e,t,n){return t.getForeignKey(n)},makeHasManyLocalKeys:function makeHasManyLocalKeys(e,t,n){var r=[],o=c.utils.get(n,t.localKeys)||[];return o=c.utils.isArray(o)?o:Object.keys(o),r=r.concat(o),f(r).filter(function(e){return e})},makeHasManyForeignKeys:function makeHasManyForeignKeys(e,t,n){return c.utils.get(n,e.idAttribute)},makeBelongsToForeignKey:function makeBelongsToForeignKey(e,t,n){return t.getForeignKey(n)},sum:function sum(i,a,s,u){var f=this,l=void 0;if(!c.utils.isString(a))throw new Error("field must be a string!");return s||(s={}),u||(u={}),l=u.op="beforeSum",c.utils.resolve(this[l](i,a,s,u)).then(function(){return l=u.op="sum",f.dbg(l,i,a,s,u),c.utils.resolve(f._sum(i,a,s,u))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];r||(r={});var o=new Response(n,r,l);return o=f.respond(o,u),l=u.op="afterSum",c.utils.resolve(f[l](i,a,s,u,o)).then(function(e){return void 0===e?o:e})})},respond:function respond(e,t){return this.getOpt("raw",t)?e:e.data},update:function update(i,a,s,u){var f=this;s||(s={}),u||(u={});var l=void 0;return l=u.op="beforeUpdate",c.utils.resolve(this[l](i,a,s,u)).then(function(e){return s=p(i,s=void 0===e?s:e,u),l=u.op="update",f.dbg(l,i,a,s,u),c.utils.resolve(f._update(i,a,s,u))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];r||(r={});var o=new Response(n,r,"update");return o.updated=n?1:0,o=f.respond(o,u),l=u.op="afterUpdate",c.utils.resolve(f[l](i,a,s,u,o)).then(function(e){return void 0===e?o:e})})},updateAll:function updateAll(i,a,s,u){var f=this;a||(a={}),s||(s={}),u||(u={});var l=void 0;return l=u.op="beforeUpdateAll",c.utils.resolve(this[l](i,a,s,u)).then(function(e){return a=p(i,a=void 0===e?a:e,u),l=u.op="updateAll",f.dbg(l,i,a,s,u),c.utils.resolve(f._updateAll(i,a,s,u))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];n||(n=[]),r||(r={});var o=new Response(n,r,"updateAll");return o.updated=n.length,o=f.respond(o,u),l=u.op="afterUpdateAll",c.utils.resolve(f[l](i,a,s,u,o)).then(function(e){return void 0===e?o:e})})},updateMany:function updateMany(i,a,s){var u=this;a||(a=[]),s||(s={});var f=void 0,t=i.idAttribute;return a=a.filter(function(e){return c.utils.get(e,t)}),f=s.op="beforeUpdateMany",c.utils.resolve(this[f](i,a,s)).then(function(e){return a=(a=void 0===e?a:e).map(function(e){return p(i,e,s)}),f=s.op="updateMany",u.dbg(f,i,a,s),c.utils.resolve(u._updateMany(i,a,s))}).then(function(e){var t=d(e,2),n=t[0],r=t[1];n||(n=[]),r||(r={});var o=new Response(n,r,"updateMany");return o.updated=n.length,o=u.respond(o,s),f=s.op="afterUpdateMany",c.utils.resolve(u[f](i,a,s,o)).then(function(e){return void 0===e?o:e})})}});var l=!1;try{l=window&&window.fetch}catch(e){}function isValidString(e){return null!=e&&""!==e}function makePath(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return function join(e,t){return t||(t=""),e.filter(isValidString).join(t)}(t,"/").replace(/([^:/]|^)\/{2,}/g,"$1/")}function encode(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var a={basePath:"",forceTrailingSlash:!1,hasFetch:l,http:t,httpConfig:{},suffix:"",useFetch:!1};function HttpAdapter(e){c.utils.classCallCheck(this,HttpAdapter),e||(e={}),c.utils.fillIn(e,a),Adapter.call(this,e)}function addAction(a,s){if(!a||!c.utils.isString(a))throw new TypeError("action(name[, opts]): Expected: string, Found: "+(void 0===a?"undefined":n(a)));return function(e){if(e[a])throw new Error("action(name[, opts]): "+a+" already exists on target!");return s.request=s.request||function(e){return e},s.response=s.response||function(e){return e},s.responseError=s.responseError||function(e){return c.utils.reject(e)},e[a]=function(e,t){var n=this;t=t||{},c.utils.isObject(e)&&(t=e),c.utils.fillIn(t,s);var r=this.getAdapter(t.adapter||this.defaultAdapter||"http"),o={};if(o.mapper=this.name,c.utils.deepMixIn(o,t),o.method=o.method||"GET","function"==typeof t.getEndpoint)o.url=t.getEndpoint(this,t);else{var i=[t.basePath||this.basePath||r.basePath,r.getEndpoint(this,e,t)];c.utils.isSorN(e)&&i.push(e),i.push(s.pathname||a),o.url=makePath.apply(null,i)}return c.utils.resolve(o).then(t.request).then(function(e){return r.HTTP(e)}).then(function(e){return e&&e.config&&(e.config.mapper=n.name),e}).then(t.response,t.responseError)},e}}Adapter.extend({constructor:HttpAdapter,afterDEL:o,afterGET:o,afterHTTP:o,afterPOST:o,afterPUT:o,beforeDEL:r,beforeGET:r,beforeHTTP:r,beforePOST:r,beforePUT:r,_count:function _count(t,e,n){var r=this;return this.GET(this.getPath("count",t,n.params,n),n).then(function(e){return r._end(t,n,e)})},_create:function _create(t,e,n){var r=this;return this.POST(this.getPath("create",t,e,n),this.serialize(t,e,n),n).then(function(e){return r._end(t,n,e)})},_createMany:function _createMany(t,e,n){var r=this;return this.POST(this.getPath("createMany",t,null,n),this.serialize(t,e,n),n).then(function(e){return r._end(t,n,e)})},_destroy:function _destroy(t,e,n){var r=this;return this.DEL(this.getPath("destroy",t,e,n),n).then(function(e){return r._end(t,n,e)})},_destroyAll:function _destroyAll(t,e,n){var r=this;return this.DEL(this.getPath("destroyAll",t,null,n),n).then(function(e){return r._end(t,n,e)})},_end:function _end(e,t,n){return[this.deserialize(e,n,t),n]},_find:function _find(t,e,n){var r=this;return this.GET(this.getPath("find",t,e,n),n).then(function(e){return r._end(t,n,e)})},_findAll:function _findAll(t,e,n){var r=this;return this.GET(this.getPath("findAll",t,n.params,n),n).then(function(e){return r._end(t,n,e)})},_sum:function _sum(t,e,n,r){var o=this;return this.GET(this.getPath("sum",t,r.params,r),r).then(function(e){return o._end(t,r,e)})},_update:function _update(t,e,n,r){var o=this;return this.PUT(this.getPath("update",t,e,r),this.serialize(t,n,r),r).then(function(e){return o._end(t,r,e)})},_updateAll:function _updateAll(t,e,n,r){var o=this;return this.PUT(this.getPath("updateAll",t,null,r),this.serialize(t,e,r),r).then(function(e){return o._end(t,r,e)})},_updateMany:function _updateMany(t,e,n){var r=this;return this.PUT(this.getPath("updateMany",t,null,n),this.serialize(t,e,n),n).then(function(e){return r._end(t,n,e)})},count:function count(e,t,n){return t||(t={}),n||(n={}),n.params=this.getParams(n),n.params.count=!0,n.suffix=this.getSuffix(e,n),c.utils.deepMixIn(n.params,t),n.params=this.queryTransform(e,n.params,n),Adapter.prototype.count.call(this,e,t,n)},create:function create(e,t,n){return n||(n={}),n.params=this.getParams(n),n.params=this.queryTransform(e,n.params,n),n.suffix=this.getSuffix(e,n),Adapter.prototype.create.call(this,e,t,n)},createMany:function createMany(e,t,n){return n||(n={}),n.params=this.getParams(n),n.params=this.queryTransform(e,n.params,n),n.suffix=this.getSuffix(e,n),Adapter.prototype.createMany.call(this,e,t,n)},DEL:function DEL(n,r,o){var i=this,a=void 0;return r||(r={}),o||(o={}),r.url=n||r.url,r.method=r.method||"delete",a=o.op="beforeDEL",c.utils.resolve(this[a](n,r,o)).then(function(e){return r=void 0===e?r:e,a=o.op="DEL",i.dbg(a,n,r,o),i.HTTP(r,o)}).then(function(t){return a=o.op="afterDEL",c.utils.resolve(i[a](n,r,o,t)).then(function(e){return void 0===e?t:e})})},deserialize:function deserialize(e,t,n){return n||(n={}),c.utils.isFunction(n.deserialize)?n.deserialize(e,t,n):c.utils.isFunction(e.deserialize)?e.deserialize(e,t,n):t&&t.hasOwnProperty("data")?t.data:t},destroy:function destroy(e,t,n){return n||(n={}),n.params=this.getParams(n),n.params=this.queryTransform(e,n.params,n),n.suffix=this.getSuffix(e,n),Adapter.prototype.destroy.call(this,e,t,n)},destroyAll:function destroyAll(e,t,n){return t||(t={}),n||(n={}),n.params=this.getParams(n),c.utils.deepMixIn(n.params,t),n.params=this.queryTransform(e,n.params,n),n.suffix=this.getSuffix(e,n),Adapter.prototype.destroyAll.call(this,e,t,n)},error:function error(){var e;console&&(e=console)["function"==typeof console.error?"error":"log"].apply(e,arguments)},fetch:function(t){function fetch(e){return t.apply(this,arguments)}return fetch.toString=function(){return t.toString()},fetch}(function(e){var t={method:e.method,headers:new Headers(e.headers||{})};return e.data&&(t.body=c.utils.toJson(e.data)),fetch(function buildUrl(e,t){if(!t)return e;var n=[];return c.utils.forOwn(t,function(e,t){null!=e&&(c.utils.isArray(e)||(e=[e]),e.forEach(function(e){"[object Date]"===toString.call(e)?e=e.toISOString():c.utils.isObject(e)&&(e=c.utils.toJson(e)),n.push(encode(t)+"="+encode(e))}))}),0<n.length&&(e+=(-1===e.indexOf("?")?"?":"&")+n.join("&")),e}(e.url,e.params),t).then(function(t){return t.config={method:e.method,url:e.url},t.json().then(function(e){return t.data=e,t})})}),find:function find(e,t,n){return n||(n={}),n.params=this.getParams(n),n.params=this.queryTransform(e,n.params,n),n.suffix=this.getSuffix(e,n),Adapter.prototype.find.call(this,e,t,n)},findAll:function findAll(e,t,n){return t||(t={}),n||(n={}),n.params=this.getParams(n),n.suffix=this.getSuffix(e,n),c.utils.deepMixIn(n.params,t),n.params=this.queryTransform(e,n.params,n),Adapter.prototype.findAll.call(this,e,t,n)},GET:function GET(n,r,o){var i=this,a=void 0;return r||(r={}),o||(o={}),r.url=n||r.url,r.method=r.method||"get",a=o.op="beforeGET",c.utils.resolve(this[a](n,r,o)).then(function(e){return r=void 0===e?r:e,a=o.op="GET",i.dbg(a,n,r,o),i.HTTP(r,o)}).then(function(t){return a=o.op="afterGET",c.utils.resolve(i[a](n,r,o,t)).then(function(e){return void 0===e?t:e})})},getEndpoint:function getEndpoint(e,a,s){var u=this;s||(s={}),s.params=c.utils.isUndefined(s.params)?{}:s.params;var t=e.relationList||[],f=c.utils.isUndefined(s.endpoint)?c.utils.isUndefined(e.endpoint)?e.name:e.endpoint:s.endpoint;return t.forEach(function(e){if("belongsTo"===e.type&&e.parent){var t=void 0,n=e.foreignKey,r=e.getRelation(),o=s.params[n];if(!1===o||!n||!r)return!1===o&&delete s.params[n],!1;if(delete s.params[n],c.utils.isObject(a)&&(t=a),t&&(o=o||e.getForeignKey(t)||(e.getLocalField(t)?c.utils.get(e.getLocalField(t),r.idAttribute):null)),o){delete s.endpoint;var i={};return c.utils.forOwn(s,function(e,t){i[t]=e}),c.utils._(i,r),f=makePath(u.getEndpoint(r,o,i),o,f),!1}}}),f},getPath:function getPath(e,t,n,r){r||(r={});var o=[void 0===r.basePath?void 0===t.basePath?this.basePath:t.basePath:r.basePath,this.getEndpoint(t,c.utils.isString(n)||c.utils.isNumber(n)||"create"===e?n:null,r)];return"find"!==e&&"update"!==e&&"destroy"!==e||o.push(n),makePath.apply(c.utils,o)},getParams:function getParams(e){return e||(e={}),void 0===e.params?{}:c.utils.copy(e.params)},getSuffix:function getSuffix(e,t){return t||(t={}),void 0===t.suffix?void 0===e.suffix?this.suffix:e.suffix:t.suffix},HTTP:function HTTP(n,r){var o=this,i=new Date;r||(r={});var e=n.data,t=n.cache,a=n.timeout,s=n.params;(n=c.utils.copy(n,null,null,null,["data","cache","timeout","params"])).params=c.utils.copy(s),(n=c.utils.deepMixIn(n,this.httpConfig)).data=e,n.cache=t,void 0!==a&&(n.timeout=a),this.forceTrailingSlash&&"/"!==n.url[n.url.length-1]&&(n.url+="/"),n.method=n.method.toUpperCase();var u=n.suffix||r.suffix||this.suffix;u&&n.url.substr(n.url.length-u.length)!==u&&(n.url+=u);var f=function logResponse(e){var t=i.toUTCString()+" - "+n.method.toUpperCase()+" "+n.url+" - "+e.status+" "+((new Date).getTime()-i.getTime())+"ms";return 200<=e.status&&e.status<300?(o.log&&o.dbg(t,e),e):(o.error&&o.error("'FAILED: "+t,e),c.utils.reject(e))};if(!this.http){if(!this.useFetch&&!r.useFetch)throw new Error("You have not configured this adapter with an http library!");if(!l)throw new Error("Attempting to use window.fetch, but it is not available!")}return c.utils.resolve(this.beforeHTTP(n,r)).then(function(e){if(n=e||n,l&&(o.useFetch||r.useFetch||!o.http))return o.fetch(n,r).then(f,f);var t=c.utils.plainCopy(n);return delete t.adapter,o.http(t).then(f,f).catch(function(e){return o.responseError(e,n,r)})}).then(function(t){return c.utils.resolve(o.afterHTTP(n,r,t)).then(function(e){return void 0===e?t:e})})},POST:function POST(n,r,o,i){var a=this,s=void 0;return o||(o={}),i||(i={}),o.url=n||o.url,o.data=r||o.data,o.method=o.method||"post",s=i.op="beforePOST",c.utils.resolve(this[s](n,r,o,i)).then(function(e){return o=void 0===e?o:e,s=i.op="POST",a.dbg(s,n,r,o,i),a.HTTP(o,i)}).then(function(t){return s=i.op="afterPOST",c.utils.resolve(a[s](n,r,o,i,t)).then(function(e){return void 0===e?t:e})})},PUT:function PUT(n,r,o,i){var a=this,s=void 0;return o||(o={}),i||(i={}),o.url=n||o.url,o.data=r||o.data,o.method=o.method||"put",s=i.op="beforePUT",c.utils.resolve(this[s](n,r,o,i)).then(function(e){return o=void 0===e?o:e,s=i.op="PUT",a.dbg(s,n,r,o,i),a.HTTP(o,i)}).then(function(t){return s=i.op="afterPUT",c.utils.resolve(a[s](n,r,o,i,t)).then(function(e){return void 0===e?t:e})})},queryTransform:function queryTransform(e,t,n){return n||(n={}),c.utils.isFunction(n.queryTransform)?n.queryTransform(e,t,n):c.utils.isFunction(e.queryTransform)?e.queryTransform(e,t,n):t},responseError:function responseError(e,t,n){return c.utils.reject(e)},serialize:function serialize(e,t,n){return n||(n={}),c.utils.isFunction(n.serialize)?n.serialize(e,t,n):c.utils.isFunction(e.serialize)?e.serialize(e,t,n):t},sum:function sum(e,t,n,r){if(n||(n={}),r||(r={}),!c.utils.isString(t))throw new Error("field must be a string!");return r.params=this.getParams(r),r.params.sum=t,r.suffix=this.getSuffix(e,r),c.utils.deepMixIn(r.params,n),r.params=this.queryTransform(e,r.params,r),Adapter.prototype.sum.call(this,e,t,n,r)},update:function update(e,t,n,r){return r||(r={}),r.params=this.getParams(r),r.params=this.queryTransform(e,r.params,r),r.suffix=this.getSuffix(e,r),Adapter.prototype.update.call(this,e,t,n,r)},updateAll:function updateAll(e,t,n,r){return n||(n={}),r||(r={}),r.params=this.getParams(r),c.utils.deepMixIn(r.params,n),r.params=this.queryTransform(e,r.params,r),r.suffix=this.getSuffix(e,r),Adapter.prototype.updateAll.call(this,e,t,n,r)},updateMany:function updateMany(e,t,n){return n||(n={}),n.params=this.getParams(n),n.params=this.queryTransform(e,n.params,n),n.suffix=this.getSuffix(e,n),Adapter.prototype.updateMany.call(this,e,t,n)}});e.HttpAdapter=HttpAdapter,e.addAction=addAction,e.addActions=function addActions(e){return e||(e={}),function(n){return c.utils.forOwn(e,function(e,t){addAction(t,e)(n)}),n}},e.version={full:"3.0.1",major:3,minor:0,patch:1},Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=js-data-http.min.map