diff --git a/CHANGELOG.md b/CHANGELOG.md index f110a49f..41c2439f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +##### 2.6.0 - 08 October 2015 + +###### Backwards compatible API changes +- #234 - findAll should query adapter if previous query is expired. +- #235 - Support maxAge in find/findAll requests by @antoinebrault + +###### Bug fixes +- #236 - actions defined in defineResource are shared across definitions + ##### 2.5.0 - 04 October 2015 ###### Backwards compatible API changes diff --git a/dist/js-data-debug.js b/dist/js-data-debug.js index 96e534a7..52d377a1 100644 --- a/dist/js-data-debug.js +++ b/dist/js-data-debug.js @@ -1,6 +1,6 @@ /*! * js-data - * @version 2.5.0 - Homepage + * @version 2.6.0 - Homepage * @author Jason Dobry * @copyright (c) 2014-2015 Jason Dobry * @license MIT @@ -84,9 +84,9 @@ return /******/ (function(modules) { // webpackBootstrap return new _datastoreIndex['default'](options); }, version: { - full: '2.5.0', + full: '2.6.0', major: parseInt('2', 10), - minor: parseInt('5', 10), + minor: parseInt('6', 10), patch: parseInt('0', 10), alpha: true ? 'false' : false, beta: true ? 'false' : false @@ -3371,6 +3371,7 @@ return /******/ (function(modules) { // webpackBootstrap this.methods = {}; this.computed = {}; this.scopes = {}; + this.actions = {}; _utils['default'].deepMixIn(this, options); var parent = _this.defaults; if (definition['extends'] && definitions[definition['extends']]) { @@ -3380,6 +3381,7 @@ return /******/ (function(modules) { // webpackBootstrap _utils['default'].fillIn(this.methods, parent.methods); _utils['default'].fillIn(this.computed, parent.computed); _utils['default'].fillIn(this.scopes, parent.scopes); + _utils['default'].fillIn(this.actions, parent.actions); this.endpoint = 'endpoint' in options ? options.endpoint : this.name; } @@ -3705,11 +3707,17 @@ return /******/ (function(modules) { // webpackBootstrap config.url = _utils['default'].makePath.apply(null, args); } config.method = config.method || 'GET'; + config.resourceName = def.name; _utils['default'].deepMixIn(config, options); return new _utils['default'].Promise(function (resolve) { return resolve(config); }).then(options.request || action.request).then(function (config) { return adapter.HTTP(config); + }).then(function (data) { + if (data && data.config) { + data.config.resourceName = def.name; + } + return data; }).then(options.response || action.response, options.responseError || action.responseError); }; }); @@ -4629,7 +4637,10 @@ return /******/ (function(modules) { // webpackBootstrap if (options.bypassCache || !options.cacheResponse) { delete resource.completedQueries[id]; } - if ((!options.findStrictCache || id in resource.completedQueries) && definition.get(id) && !options.bypassCache) { + + var expired = options.maxAge && id in resource.completedQueries && resource.completedQueries[id] + options.maxAge < new Date().getTime(); + + if ((!options.findStrictCache || id in resource.completedQueries) && definition.get(id) && !options.bypassCache && !expired) { // resolve immediately with the cached item resolve(definition.get(id)); } else { @@ -4780,7 +4791,10 @@ return /******/ (function(modules) { // webpackBootstrap delete resource.completedQueries[queryHash]; delete resource.queryData[queryHash]; } - if (queryHash in resource.completedQueries) { + + var expired = options.maxAge && queryHash in resource.completedQueries && resource.completedQueries[queryHash] + options.maxAge < new Date().getTime(); + + if (queryHash in resource.completedQueries && !expired) { if (options.useFilter) { if (options.localKeys) { resolve(definition.getAll(options.localKeys, options.orig())); @@ -4797,7 +4811,7 @@ return /******/ (function(modules) { // webpackBootstrap } } }).then(function (items) { - if (!(queryHash in resource.completedQueries)) { + if (!items) { if (!(queryHash in resource.pendingQueries)) { var promise = undefined; var strategy = options.findAllStrategy || options.strategy; diff --git a/dist/js-data.js b/dist/js-data.js index f94129d2..f58e6ef8 100644 --- a/dist/js-data.js +++ b/dist/js-data.js @@ -1,6 +1,6 @@ /*! * js-data - * @version 2.5.0 - Homepage + * @version 2.6.0 - Homepage * @author Jason Dobry * @copyright (c) 2014-2015 Jason Dobry * @license MIT @@ -84,9 +84,9 @@ return /******/ (function(modules) { // webpackBootstrap return new _datastoreIndex['default'](options); }, version: { - full: '2.5.0', + full: '2.6.0', major: parseInt('2', 10), - minor: parseInt('5', 10), + minor: parseInt('6', 10), patch: parseInt('0', 10), alpha: true ? 'false' : false, beta: true ? 'false' : false @@ -3361,6 +3361,7 @@ return /******/ (function(modules) { // webpackBootstrap this.methods = {}; this.computed = {}; this.scopes = {}; + this.actions = {}; _utils['default'].deepMixIn(this, options); var parent = _this.defaults; if (definition['extends'] && definitions[definition['extends']]) { @@ -3370,6 +3371,7 @@ return /******/ (function(modules) { // webpackBootstrap _utils['default'].fillIn(this.methods, parent.methods); _utils['default'].fillIn(this.computed, parent.computed); _utils['default'].fillIn(this.scopes, parent.scopes); + _utils['default'].fillIn(this.actions, parent.actions); this.endpoint = 'endpoint' in options ? options.endpoint : this.name; } @@ -3694,11 +3696,17 @@ return /******/ (function(modules) { // webpackBootstrap config.url = _utils['default'].makePath.apply(null, args); } config.method = config.method || 'GET'; + config.resourceName = def.name; _utils['default'].deepMixIn(config, options); return new _utils['default'].Promise(function (resolve) { return resolve(config); }).then(options.request || action.request).then(function (config) { return adapter.HTTP(config); + }).then(function (data) { + if (data && data.config) { + data.config.resourceName = def.name; + } + return data; }).then(options.response || action.response, options.responseError || action.responseError); }; }); @@ -4607,7 +4615,10 @@ return /******/ (function(modules) { // webpackBootstrap if (options.bypassCache || !options.cacheResponse) { delete resource.completedQueries[id]; } - if ((!options.findStrictCache || id in resource.completedQueries) && definition.get(id) && !options.bypassCache) { + + var expired = options.maxAge && id in resource.completedQueries && resource.completedQueries[id] + options.maxAge < new Date().getTime(); + + if ((!options.findStrictCache || id in resource.completedQueries) && definition.get(id) && !options.bypassCache && !expired) { // resolve immediately with the cached item resolve(definition.get(id)); } else { @@ -4757,7 +4768,10 @@ return /******/ (function(modules) { // webpackBootstrap delete resource.completedQueries[queryHash]; delete resource.queryData[queryHash]; } - if (queryHash in resource.completedQueries) { + + var expired = options.maxAge && queryHash in resource.completedQueries && resource.completedQueries[queryHash] + options.maxAge < new Date().getTime(); + + if (queryHash in resource.completedQueries && !expired) { if (options.useFilter) { if (options.localKeys) { resolve(definition.getAll(options.localKeys, options.orig())); @@ -4774,7 +4788,7 @@ return /******/ (function(modules) { // webpackBootstrap } } }).then(function (items) { - if (!(queryHash in resource.completedQueries)) { + if (!items) { if (!(queryHash in resource.pendingQueries)) { var promise = undefined; var strategy = options.findAllStrategy || options.strategy; diff --git a/dist/js-data.min.js b/dist/js-data.min.js index 9de6fc7c..e79ad04a 100644 --- a/dist/js-data.min.js +++ b/dist/js-data.min.js @@ -1,6 +1,6 @@ /*! * js-data -* @version 2.5.0 - Homepage +* @version 2.6.0 - Homepage * @author Jason Dobry * @copyright (c) 2014-2015 Jason Dobry * @license MIT @@ -8,6 +8,6 @@ * @overview Robust framework-agnostic data store. */ -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.JSData=b():a.JSData=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){var d=c(1),e=c(2),f=c(3);a.exports={DS:d["default"],DSUtils:e["default"],DSErrors:f["default"],createStore:function(a){return new d["default"](a)},version:{full:"2.5.0",major:parseInt("2",10),minor:parseInt("5",10),patch:parseInt("0",10),alpha:"false",beta:"false"}}},function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c){c(null,b)}function f(a,b){return b}function g(a,b,c,d){var e=!0;a:for(;e;){var f=a,g=b,h=c,i=d;k=l=m=void 0,e=!1;var k=f[g],l=j["default"].get(h,k[0]),m=j["default"].get(i,k[0]);if(j["default"]._s(l)&&(l=j["default"].upperCase(l)),j["default"]._s(m)&&(m=j["default"].upperCase(m)),"DESC"===k[1]){if(l>m)return-1;if(m>l)return 1;if(gl)return-1;if(l>m)return 1;if(!(ge;e++)c[e]=arguments[e];return d.apply(this,b.apply(this,c)||c)}}})}var i=function(){function a(a,b){for(var c=0;c"===f?g=i>d:">="===f?g=i>=d:"<"===f?g=d>i:"<="===f?g=d>=i:"isectEmpty"===f?g=!j["default"].intersection(i||[],d||[]).length:"isectNotEmpty"===f?g=j["default"].intersection(i||[],d||[]).length:"in"===f?g=j["default"]._s(d)?-1!==d.indexOf(i):j["default"].contains(d,i):"notIn"===f?g=j["default"]._s(d)?-1===d.indexOf(i):!j["default"].contains(d,i):"contains"===f?g=j["default"]._s(i)?-1!==i.indexOf(d):j["default"].contains(i,d):"notContains"===f&&(g=j["default"]._s(i)?-1===i.indexOf(d):!j["default"].contains(i,d)),void 0!==g&&(c=b?g:h?c||g:c&&g),b=!1})}),c}));var i=null;j["default"]._s(c.orderBy)?i=[[c.orderBy,"ASC"]]:j["default"]._a(c.orderBy)&&(i=c.orderBy),!i&&j["default"]._s(c.sort)?i=[[c.sort,"ASC"]]:!i&&j["default"]._a(c.sort)&&(i=c.sort),i&&!function(){var a=0;j["default"].forEach(i,function(a,c){if(j["default"]._s(a))i[c]=[a,"ASC"];else if(!j["default"]._a(a))throw new k["default"].IA('DS.filter("'+b+'"[, params][, options]): '+j["default"].toJson(a)+": Must be a string or an array!",{params:{"orderBy[i]":{actual:typeof a,expected:"string|array"}}})}),e=j["default"].sort(e,function(b,c){return g(i,a,b,c)})}();var l=j["default"]._n(c.limit)?c.limit:null,m=null;return j["default"]._n(c.skip)?m=c.skip:j["default"]._n(c.offset)&&(m=c.offset),l&&m?e=j["default"].slice(e,m,Math.min(e.length,m+l)):j["default"]._n(l)?e=j["default"].slice(e,0,Math.min(e.length,l)):j["default"]._n(m)&&(e=mc;c++)b[c]=arguments[c];var d=b[b.length-1],e=this.defaults.errorHandler,f=d?d.errorHandler:e;return f=f||e,function(a){return f.apply(void 0,[a].concat(b))}}}]),a}(),q=p.prototype;q.getAdapterName.shorthand=!1,q.getAdapter.shorthand=!1,q.registerAdapter.shorthand=!1,q.errors=k["default"],q.utils=j["default"],h(q,l["default"]),h(q,m["default"]),b["default"]=p},function(a,b,c){function d(a){return"[object Array]"===T.call(a)||!1}function e(a){return"[object RegExp]"===T.call(a)||!1}function f(a){return"string"==typeof a||a&&"object"==typeof a&&"[object String]"===T.call(a)||!1}function g(a){return"[object Object]"===T.call(a)||!1}function h(a){return a&&"object"==typeof a&&"[object Date]"===T.call(a)||!1}function i(a){var b=typeof a;return"number"===b||a&&"object"===b&&"[object Number]"===T.call(a)||!1}function j(a){return"function"==typeof a||a&&"[object Function]"===T.call(a)||!1}function k(a){return f(a)||i(a)}function l(a){return new z["default"].IA('"'+a+'" must be a string or a number!')}function m(a){return new z["default"].IA('"'+a+'" must be an object!')}function n(a){return new z["default"].IA('"'+a+'" must be an array!')}function o(a){if(null==a)return!0;if("string"==typeof a||V(a))return!a.length;if("object"==typeof a){var b=!0;return D(a,function(){return b=!1,!1}),b}return!0}function p(a,b){if(!a||!b)return[];for(var c=[],d=void 0,e=0,f=a.length;f>e;e++)d=a[e],E(c,d)||E(b,d)&&c.push(d);return c}function q(a,b,c){var d=[];return B(a,function(a,c,e){b(a,c,e)&&d.push(a)},c),d}function r(a){var b={};a=a||this,Object.defineProperties(a,{on:{value:function(a,c,d){b[a]=b[a]||[],b[a].push({f:c,c:d})}},off:{value:function(a,c){var d=b[a];if(d)if(c){for(var e=0;ed;d++)c[d]=arguments[d];var e=b[c.shift()]||[];if(e)for(var f=0;fi;i++)if(!t(d[i],f[i]))return!1;return!0}}return!1}}function u(a,b){return f(b)||i(b)?b:b&&a?b[a.idAttribute]||b:b}function v(a,b){return a&&(f(b)||i(b))?a.index[b]||b:b}function w(a){return null!=a&&""!==a}function x(a,b){return b=b||"",q(a,w).join(b)}function y(){for(var a=arguments.length,b=Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=x(b,"/");return d.replace(/([^:\/]|^)\/{2,}/g,"$1/")}var z=c(3),A=c(4),B=c(5),C=c(6),D=c(7),E=c(10),F=c(12),G=c(14),H=c(21),I=c(22),J=c(23),K=c(24),L=c(19),M=c(25),N=c(27),O=c(29),P=void 0,Q=void 0,R=void 0,S=Object.prototype,T=S.toString;try{Q=Promise}catch(U){console.error("js-data requires a global Promise constructor!")}try{R=window.File}catch(U){R=function(){}}var V=Array.isArray||d;try{P=window,P={}}catch(U){P=null}var W=["beforeValidate","validate","afterValidate","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy"],X=O.isBlacklisted;b["default"]={Promise:Q,_:function(a,b){var c=this;if(a=a||{},b=b||{},b&&b.constructor===a.constructor)return b;if(!g(b))throw new z["default"].IA('"options" must be an object!');B(W,function(a){"function"==typeof b[a]&&-1===b[a].toString().indexOf("for (var _len = arg")&&(b[a]=c.promisify(b[a]))});var d=function(a){var b=this;D(a,function(a,c){b[c]=a})};return d.prototype=a,d.prototype.orig=function(){var a={};return D(this,function(b,c){a[c]=b}),a},new d(b)},_n:i,_s:f,_sn:k,_snErr:l,_o:g,_oErr:m,_a:V,_aErr:n,applyScope:function(a,b,c){var d=c.scope,e=s(b);d?f(d)&&(d=[d]):d=[],d.unshift("defaultScope"),B(d,function(d){var e=c.scopes[d];"function"==typeof e?F(b,e(a)):e&&F(b,e)}),F(b,e)},compute:function(a,b){var c=this,d=[];g(a)||(B(a.deps,function(a){d.push(M(c,a))}),N(c,b,a[a.length-1].apply(c,d)))},contains:E,copy:s,deepMixIn:F,diffObjectFromOldObject:O.diffObjectFromOldObject,BinaryHeap:A,equals:t,Events:r,filter:q,fillIn:function(a,b){return D(b,function(b,c){c in a||(a[c]=b)}),a},forEach:B,forOwn:D,fromJson:function(a){return f(a)?JSON.parse(a):a},get:M,intersection:p,isArray:V,isBlacklisted:X,isEmpty:o,isFunction:j,isObject:g,isNumber:i,isString:f,keys:J,makePath:y,observe:O,omit:function(a,b){var c=[];return D(a,function(a,d){X(d,b)&&c.push(d)}),B(c,function(b){delete a[b]}),a},pascalCase:G,pick:I,promisify:function(a,b){var c=this;if(a){if("function"!=typeof a)throw new Error("Can only promisify functions!");return function(){for(var d=arguments.length,e=Array(d),f=0;d>f;f++)e[f]=arguments[f];return new c.Promise(function(c,d){e.push(function(a,b){a?d(a):c(b)});try{var f=a.apply(b||this,e);f&&f.then&&f.then(c,d)}catch(g){d(g)}})}}},remove:H,set:N,slice:C,sort:K,toJson:JSON.stringify,updateTimestamp:function(a){var b="function"==typeof Date.now?Date.now():(new Date).getTime();return a&&a>=b?a+1:b},upperCase:L,removeCircular:function(a){return function b(a,c){var d=void 0,e=void 0;if(!("object"!=typeof a||null===a||a instanceof Boolean||a instanceof Date||a instanceof Number||a instanceof RegExp||a instanceof String||a instanceof R)){for(var f=c.cur,g=c.ctx;g;){if(g.cur===f)return void 0;g=g.ctx}if(V(a))for(e=[],d=0;de;e++)d[e]=arguments[e];return a.apply(c,d)})}}(),Object.defineProperty(c,f,l)}})}}},function(a,b){function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var e=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;h=j=i=void 0,d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;return void 0===i?void 0:i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return void 0;a=j,b=f,c=g,d=!0}},f=function(a){function b(a){c(this,b),e(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.type=this.constructor.name,this.message=a}return d(b,a),b}(Error),g=function(a){function b(a){c(this,b),e(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.type=this.constructor.name,this.message=a}return d(b,a),b}(Error),h=function(a){function b(a){c(this,b),e(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.type=this.constructor.name,this.message=a+" is not a registered resource!"}return d(b,a),b}(Error);b["default"]={IllegalArgumentError:f,IA:f,RuntimeError:g,R:g,NonexistentResourceError:h,NER:h}},function(a,b,c){!function(b,c){a.exports=c()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a,b,c){for(var d=a[c],e=b(d);c>0;){var f=Math.floor((c+1)/2)-1,g=a[f];if(e>=b(g))break;a[f]=d,a[c]=g,c=f}}function e(a,b){if(a||(a=function(a){return a}),b||(b=function(a,b){return a===b}),"function"!=typeof a)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');if("function"!=typeof b)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');this.weightFunc=a,this.compareFunc=b,this.heap=[]}var f=function(a,b,c){for(var d=a.length,e=a[c],f=b(e);;){var g=2*(c+1),h=g-1,i=null;if(d>h){var j=a[h],k=b(j);f>k&&(i=h)}if(d>g){var l=a[g],m=b(l);m<(null===i?f:b(a[h]))&&(i=g)}if(null===i)break;a[c]=a[i],a[i]=e,c=i}},g=e.prototype;g.push=function(a){this.heap.push(a),d(this.heap,this.weightFunc,this.heap.length-1)},g.peek=function(){return this.heap[0]},g.pop=function(){var a=this.heap[0],b=this.heap.pop();return this.heap.length>0&&(this.heap[0]=b,f(this.heap,this.weightFunc,0)),a},g.remove=function(a){for(var b=this.heap.length,c=0;b>c;c++)if(this.compareFunc(this.heap[c],a)){var e=this.heap[c],g=this.heap.pop();return c!==b-1&&(this.heap[c]=g,d(this.heap,this.weightFunc,c),f(this.heap,this.weightFunc,c)),e}return null},g.removeAll=function(){this.heap=[]},g.size=function(){return this.heap.length},a.exports=e}])})},function(a,b){function c(a,b,c){if(null!=a)for(var d=-1,e=a.length;++db?Math.max(d+b,0):Math.min(b,d),c=null==c?d:0>c?Math.max(d+c,0):Math.min(c,d);for(var e=[];c>b;)e.push(a[b++]);return e}a.exports=c},function(a,b,c){function d(a,b,c){f(a,function(d,f){return e(a,f)?b.call(c,a[f],f,a):void 0})}var e=c(8),f=c(9);a.exports=d},function(a,b){function c(a,b){return Object.prototype.hasOwnProperty.call(a,b)}a.exports=c},function(a,b,c){function d(){h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],g=!0;for(var a in{toString:null})g=!1}function e(a,b,c){var e,j=0;null==g&&d();for(e in a)if(f(b,a,e,c)===!1)break;if(g)for(var k=a.constructor,l=!!k&&a===k.prototype;(e=h[j++])&&("constructor"===e&&(l||!i(a,e))||a[e]===Object.prototype[e]||f(b,a,e,c)!==!1););}function f(a,b,c,d){return a.call(d,b[c],c,b)}var g,h,i=c(8);a.exports=e},function(a,b,c){function d(a,b){return-1!==e(a,b)}var e=c(11);a.exports=d},function(a,b){function c(a,b,c){if(c=c||0,null==a)return-1;for(var d=a.length,e=0>c?d+c:c;d>e;){if(a[e]===b)return e;e++}return-1}a.exports=c},function(a,b,c){function d(a,b){for(var c,d=0,g=arguments.length;++d-1&&(a=a.replace(/[\xC0-\xC5]/g,"A").replace(/[\xC6]/g,"AE").replace(/[\xC7]/g,"C").replace(/[\xC8-\xCB]/g,"E").replace(/[\xCC-\xCF]/g,"I").replace(/[\xD0]/g,"D").replace(/[\xD1]/g,"N").replace(/[\xD2-\xD6\xD8]/g,"O").replace(/[\xD9-\xDC]/g,"U").replace(/[\xDD]/g,"Y").replace(/[\xDE]/g,"P").replace(/[\xE0-\xE5]/g,"a").replace(/[\xE6]/g,"ae").replace(/[\xE7]/g,"c").replace(/[\xE8-\xEB]/g,"e").replace(/[\xEC-\xEF]/g,"i").replace(/[\xF1]/g,"n").replace(/[\xF2-\xF6\xF8]/g,"o").replace(/[\xF9-\xFC]/g,"u").replace(/[\xFE]/g,"p").replace(/[\xFD\xFF]/g,"y")),a}var e=c(15);a.exports=d},function(a,b,c){function d(a){return a=e(a),a.replace(f,"")}var e=c(15),f=/[^\x20\x2D0-9A-Z\x5Fa-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/g;a.exports=d},function(a,b,c){function d(a){return a=e(a),a.toUpperCase()}var e=c(15);a.exports=d},function(a,b,c){function d(a){return a=e(a),a.toLowerCase()}var e=c(15);a.exports=d},function(a,b,c){function d(a,b){var c=e(a,b);-1!==c&&a.splice(c,1)}var e=c(11);a.exports=d},function(a,b,c){function d(a,b){for(var c,d="string"!=typeof arguments[1]?arguments[1]:e(arguments,1),f={},g=0;c=d[g++];)f[c]=a[c];return f}var e=c(6);a.exports=d},function(a,b,c){var d=c(7),e=Object.keys||function(a){var b=[];return d(a,function(a,c){b.push(c)}),b};a.exports=e},function(a,b){function c(a,b){if(null==a)return[];if(a.length<2)return a;null==b&&(b=d);var f,g,h;return f=~~(a.length/2),g=c(a.slice(0,f),b),h=c(a.slice(f,a.length),b),e(g,h,b)}function d(a,b){return b>a?-1:a>b?1:0}function e(a,b,c){for(var d=[];a.length&&b.length;)c(a[0],b[0])<=0?d.push(a.shift()):d.push(b.shift());return a.length&&d.push.apply(d,a),b.length&&d.push.apply(d,b),d}a.exports=c},function(a,b,c){function d(a,b){for(var c=b.split("."),d=c.pop();b=c.shift();)if(a=a[b],null==a)return;return a[d]}c(26);a.exports=d},function(a,b){function c(a){switch(typeof a){case"string":case"number":case"boolean":return!0}return null==a}a.exports=c},function(a,b,c){function d(a,b,c){var d=/^(.+)\.(.+)$/.exec(b);d?e(a,d[1])[d[2]]=c:a[b]=c}var e=c(28);a.exports=d},function(a,b,c){function d(a,b){return b?(e(b.split("."),function(b){a[b]||(a[b]={}),a=a[b]}),a):a}var e=c(5);a.exports=d},function(a,b){!function(a){function b(){function a(a){b=a}if("function"!=typeof Object.observe||"function"!=typeof Array.observe)return!1;var b=[],c={},d=[];return Object.observe(c,a),Array.observe(d,a),c.id=1,c.id=2,delete c.id,d.push(1,2),d.length=0,Object.deliverChangeRecords(a),5!==b.length?!1:"add"!=b[0].type||"update"!=b[1].type||"delete"!=b[2].type||"splice"!=b[3].type||"splice"!=b[4].type?!1:(Object.unobserve(c,a),Array.unobserve(d,a),!0)}function c(b){for(var c=0;s>c&&b.check_();)c++;return p&&(a.dirtyCheckCycleCount=c),c>0}function d(a){for(var b in a)return!1;return!0}function e(a){return d(a.added)&&d(a.removed)&&d(a.changed)}function f(a,b){if(!b||!b.length)return!1;for(var c,d=0;dd&&b);p&&(a.dirtyCheckCycleCount=d),C=!1}},B&&(a.Platform.clearObservers=function(){A=[]}),n.prototype=r({__proto__:k.prototype,arrayObserve:!1,connect_:function(a,b){q?this.directObserver_=j(this,this.value_,this.arrayObserve):this.oldObject_=this.copyObject(this.value_)},copyObject:function(a){var b=Array.isArray(a)?[]:{};for(var c in a)b[c]=a[c];return Array.isArray(a)&&(b.length=a.length),b},check_:function(a,b){var c,d;if(q){if(!a)return!1;d={},c=o(this.value_,a,d)}else d=this.oldObject_,c=g(this.value_,this.oldObject_);return e(c)?!1:(q||(this.oldObject_=this.copyObject(this.value_)),this.report_([c.added||{},c.removed||{},c.changed||{},function(a){return d[a]}]),!0)},disconnect_:function(){q?(this.directObserver_.close(),this.directObserver_=void 0):this.oldObject_=void 0},deliver:function(){this.state_==x&&(q?this.directObserver_.deliver(!1):c(this))},discardChanges:function(){return this.directObserver_?this.directObserver_.deliver(!0):this.oldObject_=this.copyObject(this.value_),this.value_}});var D={},E={add:!0,update:!0,"delete":!0};a.Observer=k,a.isBlacklisted=f,a.Observer.runEOM_=u,a.Observer.observerSentinel_=D,a.Observer.hasObjectObserve=q,a.diffObjectFromOldObject=g,a.ObjectObserver=n}(b)},function(a,b,c){function d(a){return!(f["default"].isEmpty(a.added)&&f["default"].isEmpty(a.removed)&&f["default"].isEmpty(a.changed))}function e(a,b,c,d){var e=this,g=e.definitions[b];if(d=d||{},c=f["default"].resolveId(g,c),!g)throw new h(b);if(!f["default"]._sn(c))throw f["default"]._snErr("id");return c=c===k?void 0:c,d=f["default"]._(g,d),{_this:e,definition:g,_resourceName:b,_id:c,_options:d}}var f=c(2),g=c(3),h=g["default"].NER,i=g["default"].IA,j=g["default"].R,k="DS_"+(new Date).getTime();b["default"]={changes:function(a,b,c){var d=e.call(this,"changes",a,b,c),g=d._this,h=d.definition,i=d._resourceName,j=d._id,k=d._options,l=h.get(j);if(l){var m=function(){var a=g.store[i].observers[j];a&&"function"==typeof a&&a.deliver();var b=k.ignoredChanges||[];f["default"].forEach(h.relationFields,function(a){f["default"].contains(b,a)||b.push(a)});var c=f["default"].diffObjectFromOldObject(l,g.store[i].previousAttributes[j],f["default"].equals,b);return f["default"].forOwn(c,function(a,b){var d=[];f["default"].forOwn(a,function(a,b){f["default"].isFunction(a)||d.push(b)}),c[b]=f["default"].pick(c[b],d)}),f["default"].forEach(h.relationFields,function(a){delete c.added[a],delete c.removed[a],delete c.changed[a]}),{v:c}}();if("object"==typeof m)return m.v}},changeHistory:function(a,b){var c=e.call(this,"changeHistory",a,b||k),d=c._this,f=c.definition,g=c._resourceName,h=c._id,i=d.store[g];if(f.keepChangeHistory){if(!g)return i.changeHistory;var j=f.get(h);if(j)return i.changeHistories[h]}else f.errorFn("changeHistory is disabled for this resource!")},compute:function(a,b){var c=this,d=c.definitions[a];if(b=f["default"].resolveItem(c.store[a],b),!d)throw new h(a);if(!b)throw new j("Item not in the store!");if(!f["default"]._o(b)&&!f["default"]._sn(b))throw new i('"instance" must be an object, string or number!');return f["default"].forOwn(d.computed,function(a,c){f["default"].compute.call(b,a,c)}),b},createInstance:function(a,b,c){var d=this.definitions[a],e=void 0;if(b=b||{},!d)throw new h(a);if(b&&!f["default"].isObject(b))throw new i('"attrs" must be an object!');c=f["default"]._(d,c),c.beforeCreateInstance(c,b);var g=d[d["class"]];return e=new g,d.instanceEvents&&f["default"].Events(e),c.defaultValues&&f["default"].deepMixIn(e,c.defaultValues),f["default"].deepMixIn(e,b),d.computed&&d.compute(e),c.afterCreateInstance(c,e),e},createCollection:function(a,b,c,d){var e=this,g=e.definitions[a];if(b=b||[],c=c||{},!g)throw new h(a);if(b&&!f["default"].isArray(b))throw new i('"arr" must be an array!');return d=f["default"]._(g,d),d.beforeCreateCollection(d,b),Object.defineProperties(b,{fetch:{value:function(b,c){var d=this;return d.params=b||d.params,g.findAll(d.params,c).then(function(b){return b===d?d:(b.unshift(d.length),b.unshift(0),d.splice.apply(d,b),b.shift(),b.shift(),b.$$injected&&(e.store[a].queryData[f["default"].toJson(d.params)]=d,d.$$injected=!0),d)})}},params:{value:c,writable:!0},resourceName:{value:a}}),d.afterCreateCollection(d,b),b},defineResource:c(31),digest:function(){this.observe.Platform.performMicrotaskCheckpoint()},eject:c(32),ejectAll:c(33),filter:c(34),get:function(a,b){var c=e.call(this,"get",a,b),d=c._this,f=c._resourceName,g=c._id;return d.store[f].index[g]},getAll:function(a,b){var c=this,d=c.definitions[a],e=c.store[a],g=[];if(!d)throw new h(a);if(b&&!f["default"]._a(b))throw f["default"]._aErr("ids");if(f["default"]._a(b))for(var i=b.length,j=0;i>j;j++)e.index[b[j]]&&g.push(e.index[b[j]]);else g=e.collection.slice();return g},hasChanges:function(a,b){var c=e.call(this,"hasChanges",a,b),f=c.definition,g=c._id;return f.get(g)?d(f.changes(g)):!1},inject:c(35),lastModified:function(a,b){var c=e.call(this,"lastModified",a,b||k),d=c._this,f=c._resourceName,g=c._id,h=d.store[f];return g?(g in h.modified||(h.modified[g]=0),h.modified[g]):h.collectionModified},lastSaved:function(a,b){var c=e.call(this,"lastSaved",a,b||k),d=c._this,f=c._resourceName,g=c._id,h=d.store[f];return g in h.saved||(h.saved[g]=0),h.saved[g]},previous:function(a,b){var c=e.call(this,"previous",a,b),d=c._this,g=c._resourceName,h=c._id,i=d.store[g];return i.previousAttributes[h]?f["default"].copy(i.previousAttributes[h]):void 0; -},revert:function(a,b){var c=e.call(this,"revert",a,b),d=c._this,f=c.definition,g=c._resourceName,h=c._id;return f.inject(d.previous(g,h))}}},function(a,b,c){var d=c(2),e=c(3),f=["compute","eject","refresh","save","update","destroy","loadRelations","changeHistory","changes","hasChanges","lastModified","lastSaved","previous","revert"];a.exports=function(a){function b(b){this.defaultValues={},this.methods={},this.computed={},this.scopes={},d["default"].deepMixIn(this,b);var e=c.defaults;a["extends"]&&g[a["extends"]]&&(e=g[a["extends"]]),d["default"].fillIn(this.defaultValues,e.defaultValues),d["default"].fillIn(this.methods,e.methods),d["default"].fillIn(this.computed,e.computed),d["default"].fillIn(this.scopes,e.scopes),this.endpoint="endpoint"in b?b.endpoint:this.name}var c=this,g=c.definitions;if(d["default"]._s(a)&&(a={name:a.replace(/\s/gi,"")}),!d["default"]._o(a))throw d["default"]._oErr("definition");if(!d["default"]._s(a.name))throw new e["default"].IA('"name" must be a string!');if(g[a.name])throw new e["default"].R(a.name+" is already registered!");try{var h,i,j=function(){if(a["extends"]&&g[a["extends"]]?b.prototype=g[a["extends"]]:b.prototype=c.defaults,g[a.name]=new b(a),h=g[a.name],h.getResource=function(a){return c.definitions[a]},!d["default"]._s(h.idAttribute))throw new e["default"].IA('"idAttribute" must be a string!');h.relations&&(h.relationList=[],h.relationFields=[],d["default"].forOwn(h.relations,function(a,b){d["default"].forOwn(a,function(c,e){d["default"]._a(c)||(a[e]=[c]),d["default"].forEach(a[e],function(a){a.type=b,a.relation=e,a.name=h.name,h.relationList.push(a),a.localField&&h.relationFields.push(a.localField)})})}),h.relations.belongsTo&&d["default"].forOwn(h.relations.belongsTo,function(a,b){d["default"].forEach(a,function(a){a.parent&&(h.parent=b,h.parentKey=a.localKey,h.parentField=a.localField)})}),"function"==typeof Object.freeze&&(Object.freeze(h.relations),Object.freeze(h.relationList))),i=h["class"]=d["default"].pascalCase(h.name);try{"function"==typeof h.useClass?(h[i]=new Function("def","return function "+i+"() { def.useClass.call(this); }")(h),h[i].prototype=function(a){function b(){}return b.prototype=a,new b}(h.useClass.prototype)):h[i]=new Function("return function "+i+"() {}")()}catch(j){h[i]=function(){}}d["default"].forOwn(h.methods,function(a,b){h[i].prototype[b]=a}),h[i].prototype.set=function(a,b){var c=this;return d["default"].set(this,a,b),h.compute(this),h.instanceEvents&&setTimeout(function(){c.emit("DS.change",h,c)},0),h.handleChange(this),this},h[i].prototype.get=function(a){return d["default"].get(this,a)},d["default"].applyRelationGettersToTarget(c,h,h[i].prototype);var k=null;h.hasOwnProperty("omit")?k=c.defaults.omit:(k=h.omit,h.omit=[]),h.omit=h.omit.concat(k||[]),d["default"].forOwn(h.computed,function(a,b){if(d["default"].isFunction(a)&&(h.computed[b]=[a],a=h.computed[b]),h.methods&&b in h.methods&&h.errorFn('Computed property "'+b+'" conflicts with previously defined prototype method!'),h.omit.push(b),d["default"].isArray(a)){var c;if(1===a.length){var e=a[0].toString().match(/function.*?\(([\s\S]*?)\)/);c=e[1].split(","),c=d["default"].filter(c,function(a){return a}),h.computed[b]=c.concat(a),a=h.computed[b],c.length&&h.errorFn("Use the computed property array syntax for compatibility with minified code!")}c=a.slice(0,a.length-1),d["default"].forEach(c,function(a,b){c[b]=a.trim()}),a.deps=d["default"].filter(c,function(a){return!!a})}else d["default"].isObject(a)&&Object.defineProperty(h[i].prototype,b,a)}),d["default"].forEach(f,function(a){h[i].prototype["DS"+d["default"].pascalCase(a)]=function(){for(var b=arguments.length,d=Array(b),e=0;b>e;e++)d[e]=arguments[e];return d.unshift(this[h.idAttribute]||this),d.unshift(h.name),c[a].apply(c,d)}}),h[i].prototype.DSCreate=function(){for(var a=arguments.length,b=Array(a),d=0;a>d;d++)b[d]=arguments[d];return b.unshift(this),b.unshift(h.name),c.create.apply(c,b)},c.store[h.name]={collection:[],expiresHeap:new d["default"].BinaryHeap(function(a){return a.expires},function(a,b){return a.item===b}),completedQueries:{},queryData:{},pendingQueries:{},index:{},modified:{},saved:{},previousAttributes:{},observers:{},changeHistories:{},changeHistory:[],collectionModified:0};var l=c.store[h.name];h.reapInterval&&setInterval(function(){return h.reap()},h.reapInterval);var m=["registerAdapter","getAdapterName","getAdapter","is","!clear"];for(var n in c)"function"==typeof c[n]&&m.push(n);d["default"].forEach(m,function(a){var b=a;"!"!==b[0]&&(c[b].shorthand!==!1?(h[b]=function(){for(var a=arguments.length,d=Array(a),e=0;a>e;e++)d[e]=arguments[e];return d.unshift(h.name),c[b].apply(c,d)},h[b].before=function(a){var c=h[b];h[b]=function(){for(var b=arguments.length,d=Array(b),e=0;b>e;e++)d[e]=arguments[e];return c.apply(h,a.apply(h,d)||d)}}):h[b]=function(){for(var a=arguments.length,d=Array(a),e=0;a>e;e++)d[e]=arguments[e];return c[b].apply(c,d)})}),h.beforeValidate=d["default"].promisify(h.beforeValidate),h.validate=d["default"].promisify(h.validate),h.afterValidate=d["default"].promisify(h.afterValidate),h.beforeCreate=d["default"].promisify(h.beforeCreate),h.afterCreate=d["default"].promisify(h.afterCreate),h.afterFind=d["default"].promisify(h.afterFind),h.afterFindAll=d["default"].promisify(h.afterFindAll),h.afterLoadRelations=d["default"].promisify(h.afterLoadRelations),h.beforeUpdate=d["default"].promisify(h.beforeUpdate),h.afterUpdate=d["default"].promisify(h.afterUpdate),h.beforeDestroy=d["default"].promisify(h.beforeDestroy),h.afterDestroy=d["default"].promisify(h.afterDestroy);var o=void 0;return h.hasOwnProperty("defaultAdapter")&&(o=h.defaultAdapter),d["default"].forOwn(h.actions,function(a,b){if(h[b]&&!h.actions[b])throw new Error('Cannot override existing method "'+b+'"!');a.request=a.request||function(a){return a},a.response=a.response||function(a){return a},a.responseError=a.responseError||function(a){return d["default"].Promise.reject(a)},h[b]=function(c,e){d["default"]._o(c)&&(e=c),e=e||{};var f=h.getAdapter(a.adapter||o||"http"),g=d["default"].deepMixIn({},a);if(!e.hasOwnProperty("endpoint")&&g.endpoint&&(e.endpoint=g.endpoint),"function"==typeof e.getEndpoint)g.url=e.getEndpoint(h,e);else{var i=[e.basePath||h.basePath||f.defaults.basePath,f.getEndpoint(h,d["default"]._sn(c)?c:null,e)];d["default"]._sn(c)&&i.push(c),i.push(a.pathname||b),g.url=d["default"].makePath.apply(null,i)}return g.method=g.method||"GET",d["default"].deepMixIn(g,e),new d["default"].Promise(function(a){return a(g)}).then(e.request||a.request).then(function(a){return f.HTTP(a)}).then(e.response||a.response,e.responseError||a.responseError)}}),d["default"].Events(h),h.handleChange=function(a){l.collectionModified=d["default"].updateTimestamp(l.collectionModified),h.notify&&setTimeout(function(){h.emit("DS.change",h,a)},0)},{v:h}}();if("object"==typeof j)return j.v}catch(k){throw c.defaults.errorFn(k),delete g[a.name],delete c.store[a.name],k}}},function(a,b){a.exports=function(a,b,c){var d=this,e=d.utils,f=d.definitions[a],g=d.store[a],h=void 0,i=!1;if(b=e.resolveId(f,b),!f)throw new d.errors.NER(a);if(!e._sn(b))throw e._snErr("id");c=e._(f,c);for(var j=0;jm)return-1;if(m>l)return 1;if(gl)return-1;if(l>m)return 1;if(!(ge;e++)c[e]=arguments[e];return d.apply(this,b.apply(this,c)||c)}}})}var i=function(){function a(a,b){for(var c=0;c"===f?g=i>d:">="===f?g=i>=d:"<"===f?g=d>i:"<="===f?g=d>=i:"isectEmpty"===f?g=!j["default"].intersection(i||[],d||[]).length:"isectNotEmpty"===f?g=j["default"].intersection(i||[],d||[]).length:"in"===f?g=j["default"]._s(d)?-1!==d.indexOf(i):j["default"].contains(d,i):"notIn"===f?g=j["default"]._s(d)?-1===d.indexOf(i):!j["default"].contains(d,i):"contains"===f?g=j["default"]._s(i)?-1!==i.indexOf(d):j["default"].contains(i,d):"notContains"===f&&(g=j["default"]._s(i)?-1===i.indexOf(d):!j["default"].contains(i,d)),void 0!==g&&(c=b?g:h?c||g:c&&g),b=!1})}),c}));var i=null;j["default"]._s(c.orderBy)?i=[[c.orderBy,"ASC"]]:j["default"]._a(c.orderBy)&&(i=c.orderBy),!i&&j["default"]._s(c.sort)?i=[[c.sort,"ASC"]]:!i&&j["default"]._a(c.sort)&&(i=c.sort),i&&!function(){var a=0;j["default"].forEach(i,function(a,c){if(j["default"]._s(a))i[c]=[a,"ASC"];else if(!j["default"]._a(a))throw new k["default"].IA('DS.filter("'+b+'"[, params][, options]): '+j["default"].toJson(a)+": Must be a string or an array!",{params:{"orderBy[i]":{actual:typeof a,expected:"string|array"}}})}),e=j["default"].sort(e,function(b,c){return g(i,a,b,c)})}();var l=j["default"]._n(c.limit)?c.limit:null,m=null;return j["default"]._n(c.skip)?m=c.skip:j["default"]._n(c.offset)&&(m=c.offset),l&&m?e=j["default"].slice(e,m,Math.min(e.length,m+l)):j["default"]._n(l)?e=j["default"].slice(e,0,Math.min(e.length,l)):j["default"]._n(m)&&(e=mc;c++)b[c]=arguments[c];var d=b[b.length-1],e=this.defaults.errorHandler,f=d?d.errorHandler:e;return f=f||e,function(a){return f.apply(void 0,[a].concat(b))}}}]),a}(),q=p.prototype;q.getAdapterName.shorthand=!1,q.getAdapter.shorthand=!1,q.registerAdapter.shorthand=!1,q.errors=k["default"],q.utils=j["default"],h(q,l["default"]),h(q,m["default"]),b["default"]=p},function(a,b,c){function d(a){return"[object Array]"===T.call(a)||!1}function e(a){return"[object RegExp]"===T.call(a)||!1}function f(a){return"string"==typeof a||a&&"object"==typeof a&&"[object String]"===T.call(a)||!1}function g(a){return"[object Object]"===T.call(a)||!1}function h(a){return a&&"object"==typeof a&&"[object Date]"===T.call(a)||!1}function i(a){var b=typeof a;return"number"===b||a&&"object"===b&&"[object Number]"===T.call(a)||!1}function j(a){return"function"==typeof a||a&&"[object Function]"===T.call(a)||!1}function k(a){return f(a)||i(a)}function l(a){return new z["default"].IA('"'+a+'" must be a string or a number!')}function m(a){return new z["default"].IA('"'+a+'" must be an object!')}function n(a){return new z["default"].IA('"'+a+'" must be an array!')}function o(a){if(null==a)return!0;if("string"==typeof a||V(a))return!a.length;if("object"==typeof a){var b=!0;return D(a,function(){return b=!1,!1}),b}return!0}function p(a,b){if(!a||!b)return[];for(var c=[],d=void 0,e=0,f=a.length;f>e;e++)d=a[e],E(c,d)||E(b,d)&&c.push(d);return c}function q(a,b,c){var d=[];return B(a,function(a,c,e){b(a,c,e)&&d.push(a)},c),d}function r(a){var b={};a=a||this,Object.defineProperties(a,{on:{value:function(a,c,d){b[a]=b[a]||[],b[a].push({f:c,c:d})}},off:{value:function(a,c){var d=b[a];if(d)if(c){for(var e=0;ed;d++)c[d]=arguments[d];var e=b[c.shift()]||[];if(e)for(var f=0;fi;i++)if(!t(d[i],f[i]))return!1;return!0}}return!1}}function u(a,b){return f(b)||i(b)?b:b&&a?b[a.idAttribute]||b:b}function v(a,b){return a&&(f(b)||i(b))?a.index[b]||b:b}function w(a){return null!=a&&""!==a}function x(a,b){return b=b||"",q(a,w).join(b)}function y(){for(var a=arguments.length,b=Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=x(b,"/");return d.replace(/([^:\/]|^)\/{2,}/g,"$1/")}var z=c(3),A=c(4),B=c(5),C=c(6),D=c(7),E=c(10),F=c(12),G=c(14),H=c(21),I=c(22),J=c(23),K=c(24),L=c(19),M=c(25),N=c(27),O=c(29),P=void 0,Q=void 0,R=void 0,S=Object.prototype,T=S.toString;try{Q=Promise}catch(U){console.error("js-data requires a global Promise constructor!")}try{R=window.File}catch(U){R=function(){}}var V=Array.isArray||d;try{P=window,P={}}catch(U){P=null}var W=["beforeValidate","validate","afterValidate","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy"],X=O.isBlacklisted;b["default"]={Promise:Q,_:function(a,b){var c=this;if(a=a||{},b=b||{},b&&b.constructor===a.constructor)return b;if(!g(b))throw new z["default"].IA('"options" must be an object!');B(W,function(a){"function"==typeof b[a]&&-1===b[a].toString().indexOf("for (var _len = arg")&&(b[a]=c.promisify(b[a]))});var d=function(a){var b=this;D(a,function(a,c){b[c]=a})};return d.prototype=a,d.prototype.orig=function(){var a={};return D(this,function(b,c){a[c]=b}),a},new d(b)},_n:i,_s:f,_sn:k,_snErr:l,_o:g,_oErr:m,_a:V,_aErr:n,applyScope:function(a,b,c){var d=c.scope,e=s(b);d?f(d)&&(d=[d]):d=[],d.unshift("defaultScope"),B(d,function(d){var e=c.scopes[d];"function"==typeof e?F(b,e(a)):e&&F(b,e)}),F(b,e)},compute:function(a,b){var c=this,d=[];g(a)||(B(a.deps,function(a){d.push(M(c,a))}),N(c,b,a[a.length-1].apply(c,d)))},contains:E,copy:s,deepMixIn:F,diffObjectFromOldObject:O.diffObjectFromOldObject,BinaryHeap:A,equals:t,Events:r,filter:q,fillIn:function(a,b){return D(b,function(b,c){c in a||(a[c]=b)}),a},forEach:B,forOwn:D,fromJson:function(a){return f(a)?JSON.parse(a):a},get:M,intersection:p,isArray:V,isBlacklisted:X,isEmpty:o,isFunction:j,isObject:g,isNumber:i,isString:f,keys:J,makePath:y,observe:O,omit:function(a,b){var c=[];return D(a,function(a,d){X(d,b)&&c.push(d)}),B(c,function(b){delete a[b]}),a},pascalCase:G,pick:I,promisify:function(a,b){var c=this;if(a){if("function"!=typeof a)throw new Error("Can only promisify functions!");return function(){for(var d=arguments.length,e=Array(d),f=0;d>f;f++)e[f]=arguments[f];return new c.Promise(function(c,d){e.push(function(a,b){a?d(a):c(b)});try{var f=a.apply(b||this,e);f&&f.then&&f.then(c,d)}catch(g){d(g)}})}}},remove:H,set:N,slice:C,sort:K,toJson:JSON.stringify,updateTimestamp:function(a){var b="function"==typeof Date.now?Date.now():(new Date).getTime();return a&&a>=b?a+1:b},upperCase:L,removeCircular:function(a){return function b(a,c){var d=void 0,e=void 0;if(!("object"!=typeof a||null===a||a instanceof Boolean||a instanceof Date||a instanceof Number||a instanceof RegExp||a instanceof String||a instanceof R)){for(var f=c.cur,g=c.ctx;g;){if(g.cur===f)return void 0;g=g.ctx}if(V(a))for(e=[],d=0;de;e++)d[e]=arguments[e];return a.apply(c,d)})}}(),Object.defineProperty(c,f,l)}})}}},function(a,b){function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var e=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;h=j=i=void 0,d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;return void 0===i?void 0:i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return void 0;a=j,b=f,c=g,d=!0}},f=function(a){function b(a){c(this,b),e(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.type=this.constructor.name,this.message=a}return d(b,a),b}(Error),g=function(a){function b(a){c(this,b),e(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.type=this.constructor.name,this.message=a}return d(b,a),b}(Error),h=function(a){function b(a){c(this,b),e(Object.getPrototypeOf(b.prototype),"constructor",this).call(this),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.type=this.constructor.name,this.message=a+" is not a registered resource!"}return d(b,a),b}(Error);b["default"]={IllegalArgumentError:f,IA:f,RuntimeError:g,R:g,NonexistentResourceError:h,NER:h}},function(a,b,c){!function(b,c){a.exports=c()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a,b,c){for(var d=a[c],e=b(d);c>0;){var f=Math.floor((c+1)/2)-1,g=a[f];if(e>=b(g))break;a[f]=d,a[c]=g,c=f}}function e(a,b){if(a||(a=function(a){return a}),b||(b=function(a,b){return a===b}),"function"!=typeof a)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');if("function"!=typeof b)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');this.weightFunc=a,this.compareFunc=b,this.heap=[]}var f=function(a,b,c){for(var d=a.length,e=a[c],f=b(e);;){var g=2*(c+1),h=g-1,i=null;if(d>h){var j=a[h],k=b(j);f>k&&(i=h)}if(d>g){var l=a[g],m=b(l);m<(null===i?f:b(a[h]))&&(i=g)}if(null===i)break;a[c]=a[i],a[i]=e,c=i}},g=e.prototype;g.push=function(a){this.heap.push(a),d(this.heap,this.weightFunc,this.heap.length-1)},g.peek=function(){return this.heap[0]},g.pop=function(){var a=this.heap[0],b=this.heap.pop();return this.heap.length>0&&(this.heap[0]=b,f(this.heap,this.weightFunc,0)),a},g.remove=function(a){for(var b=this.heap.length,c=0;b>c;c++)if(this.compareFunc(this.heap[c],a)){var e=this.heap[c],g=this.heap.pop();return c!==b-1&&(this.heap[c]=g,d(this.heap,this.weightFunc,c),f(this.heap,this.weightFunc,c)),e}return null},g.removeAll=function(){this.heap=[]},g.size=function(){return this.heap.length},a.exports=e}])})},function(a,b){function c(a,b,c){if(null!=a)for(var d=-1,e=a.length;++db?Math.max(d+b,0):Math.min(b,d),c=null==c?d:0>c?Math.max(d+c,0):Math.min(c,d);for(var e=[];c>b;)e.push(a[b++]);return e}a.exports=c},function(a,b,c){function d(a,b,c){f(a,function(d,f){return e(a,f)?b.call(c,a[f],f,a):void 0})}var e=c(8),f=c(9);a.exports=d},function(a,b){function c(a,b){return Object.prototype.hasOwnProperty.call(a,b)}a.exports=c},function(a,b,c){function d(){h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],g=!0;for(var a in{toString:null})g=!1}function e(a,b,c){var e,j=0;null==g&&d();for(e in a)if(f(b,a,e,c)===!1)break;if(g)for(var k=a.constructor,l=!!k&&a===k.prototype;(e=h[j++])&&("constructor"===e&&(l||!i(a,e))||a[e]===Object.prototype[e]||f(b,a,e,c)!==!1););}function f(a,b,c,d){return a.call(d,b[c],c,b)}var g,h,i=c(8);a.exports=e},function(a,b,c){function d(a,b){return-1!==e(a,b)}var e=c(11);a.exports=d},function(a,b){function c(a,b,c){if(c=c||0,null==a)return-1;for(var d=a.length,e=0>c?d+c:c;d>e;){if(a[e]===b)return e;e++}return-1}a.exports=c},function(a,b,c){function d(a,b){for(var c,d=0,g=arguments.length;++d-1&&(a=a.replace(/[\xC0-\xC5]/g,"A").replace(/[\xC6]/g,"AE").replace(/[\xC7]/g,"C").replace(/[\xC8-\xCB]/g,"E").replace(/[\xCC-\xCF]/g,"I").replace(/[\xD0]/g,"D").replace(/[\xD1]/g,"N").replace(/[\xD2-\xD6\xD8]/g,"O").replace(/[\xD9-\xDC]/g,"U").replace(/[\xDD]/g,"Y").replace(/[\xDE]/g,"P").replace(/[\xE0-\xE5]/g,"a").replace(/[\xE6]/g,"ae").replace(/[\xE7]/g,"c").replace(/[\xE8-\xEB]/g,"e").replace(/[\xEC-\xEF]/g,"i").replace(/[\xF1]/g,"n").replace(/[\xF2-\xF6\xF8]/g,"o").replace(/[\xF9-\xFC]/g,"u").replace(/[\xFE]/g,"p").replace(/[\xFD\xFF]/g,"y")),a}var e=c(15);a.exports=d},function(a,b,c){function d(a){return a=e(a),a.replace(f,"")}var e=c(15),f=/[^\x20\x2D0-9A-Z\x5Fa-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/g;a.exports=d},function(a,b,c){function d(a){return a=e(a),a.toUpperCase()}var e=c(15);a.exports=d},function(a,b,c){function d(a){return a=e(a),a.toLowerCase()}var e=c(15);a.exports=d},function(a,b,c){function d(a,b){var c=e(a,b);-1!==c&&a.splice(c,1)}var e=c(11);a.exports=d},function(a,b,c){function d(a,b){for(var c,d="string"!=typeof arguments[1]?arguments[1]:e(arguments,1),f={},g=0;c=d[g++];)f[c]=a[c];return f}var e=c(6);a.exports=d},function(a,b,c){var d=c(7),e=Object.keys||function(a){var b=[];return d(a,function(a,c){b.push(c)}),b};a.exports=e},function(a,b){function c(a,b){if(null==a)return[];if(a.length<2)return a;null==b&&(b=d);var f,g,h;return f=~~(a.length/2),g=c(a.slice(0,f),b),h=c(a.slice(f,a.length),b),e(g,h,b)}function d(a,b){return b>a?-1:a>b?1:0}function e(a,b,c){for(var d=[];a.length&&b.length;)c(a[0],b[0])<=0?d.push(a.shift()):d.push(b.shift());return a.length&&d.push.apply(d,a),b.length&&d.push.apply(d,b),d}a.exports=c},function(a,b,c){function d(a,b){for(var c=b.split("."),d=c.pop();b=c.shift();)if(a=a[b],null==a)return;return a[d]}c(26);a.exports=d},function(a,b){function c(a){switch(typeof a){case"string":case"number":case"boolean":return!0}return null==a}a.exports=c},function(a,b,c){function d(a,b,c){var d=/^(.+)\.(.+)$/.exec(b);d?e(a,d[1])[d[2]]=c:a[b]=c}var e=c(28);a.exports=d},function(a,b,c){function d(a,b){return b?(e(b.split("."),function(b){a[b]||(a[b]={}),a=a[b]}),a):a}var e=c(5);a.exports=d},function(a,b){!function(a){function b(){function a(a){b=a}if("function"!=typeof Object.observe||"function"!=typeof Array.observe)return!1;var b=[],c={},d=[];return Object.observe(c,a),Array.observe(d,a),c.id=1,c.id=2,delete c.id,d.push(1,2),d.length=0,Object.deliverChangeRecords(a),5!==b.length?!1:"add"!=b[0].type||"update"!=b[1].type||"delete"!=b[2].type||"splice"!=b[3].type||"splice"!=b[4].type?!1:(Object.unobserve(c,a),Array.unobserve(d,a),!0)}function c(b){for(var c=0;s>c&&b.check_();)c++;return p&&(a.dirtyCheckCycleCount=c),c>0}function d(a){for(var b in a)return!1;return!0}function e(a){return d(a.added)&&d(a.removed)&&d(a.changed)}function f(a,b){if(!b||!b.length)return!1;for(var c,d=0;dd&&b);p&&(a.dirtyCheckCycleCount=d),C=!1}},B&&(a.Platform.clearObservers=function(){A=[]}),n.prototype=r({__proto__:k.prototype,arrayObserve:!1,connect_:function(a,b){q?this.directObserver_=j(this,this.value_,this.arrayObserve):this.oldObject_=this.copyObject(this.value_)},copyObject:function(a){var b=Array.isArray(a)?[]:{};for(var c in a)b[c]=a[c];return Array.isArray(a)&&(b.length=a.length),b},check_:function(a,b){var c,d;if(q){if(!a)return!1;d={},c=o(this.value_,a,d)}else d=this.oldObject_,c=g(this.value_,this.oldObject_);return e(c)?!1:(q||(this.oldObject_=this.copyObject(this.value_)),this.report_([c.added||{},c.removed||{},c.changed||{},function(a){return d[a]}]),!0)},disconnect_:function(){q?(this.directObserver_.close(),this.directObserver_=void 0):this.oldObject_=void 0},deliver:function(){this.state_==x&&(q?this.directObserver_.deliver(!1):c(this))},discardChanges:function(){return this.directObserver_?this.directObserver_.deliver(!0):this.oldObject_=this.copyObject(this.value_),this.value_}});var D={},E={add:!0,update:!0,"delete":!0};a.Observer=k,a.isBlacklisted=f,a.Observer.runEOM_=u,a.Observer.observerSentinel_=D,a.Observer.hasObjectObserve=q,a.diffObjectFromOldObject=g,a.ObjectObserver=n}(b)},function(a,b,c){function d(a){return!(f["default"].isEmpty(a.added)&&f["default"].isEmpty(a.removed)&&f["default"].isEmpty(a.changed))}function e(a,b,c,d){var e=this,g=e.definitions[b];if(d=d||{},c=f["default"].resolveId(g,c),!g)throw new h(b);if(!f["default"]._sn(c))throw f["default"]._snErr("id");return c=c===k?void 0:c,d=f["default"]._(g,d),{_this:e,definition:g,_resourceName:b,_id:c,_options:d}}var f=c(2),g=c(3),h=g["default"].NER,i=g["default"].IA,j=g["default"].R,k="DS_"+(new Date).getTime();b["default"]={changes:function(a,b,c){var d=e.call(this,"changes",a,b,c),g=d._this,h=d.definition,i=d._resourceName,j=d._id,k=d._options,l=h.get(j);if(l){var m=function(){var a=g.store[i].observers[j];a&&"function"==typeof a&&a.deliver();var b=k.ignoredChanges||[];f["default"].forEach(h.relationFields,function(a){f["default"].contains(b,a)||b.push(a)});var c=f["default"].diffObjectFromOldObject(l,g.store[i].previousAttributes[j],f["default"].equals,b);return f["default"].forOwn(c,function(a,b){var d=[];f["default"].forOwn(a,function(a,b){f["default"].isFunction(a)||d.push(b)}),c[b]=f["default"].pick(c[b],d)}),f["default"].forEach(h.relationFields,function(a){delete c.added[a],delete c.removed[a],delete c.changed[a]}),{v:c}}();if("object"==typeof m)return m.v}},changeHistory:function(a,b){var c=e.call(this,"changeHistory",a,b||k),d=c._this,f=c.definition,g=c._resourceName,h=c._id,i=d.store[g];if(f.keepChangeHistory){if(!g)return i.changeHistory;var j=f.get(h);if(j)return i.changeHistories[h]}else f.errorFn("changeHistory is disabled for this resource!")},compute:function(a,b){var c=this,d=c.definitions[a];if(b=f["default"].resolveItem(c.store[a],b),!d)throw new h(a);if(!b)throw new j("Item not in the store!");if(!f["default"]._o(b)&&!f["default"]._sn(b))throw new i('"instance" must be an object, string or number!');return f["default"].forOwn(d.computed,function(a,c){f["default"].compute.call(b,a,c)}),b},createInstance:function(a,b,c){var d=this.definitions[a],e=void 0;if(b=b||{},!d)throw new h(a);if(b&&!f["default"].isObject(b))throw new i('"attrs" must be an object!');c=f["default"]._(d,c),c.beforeCreateInstance(c,b);var g=d[d["class"]];return e=new g,d.instanceEvents&&f["default"].Events(e),c.defaultValues&&f["default"].deepMixIn(e,c.defaultValues),f["default"].deepMixIn(e,b),d.computed&&d.compute(e),c.afterCreateInstance(c,e),e},createCollection:function(a,b,c,d){var e=this,g=e.definitions[a];if(b=b||[],c=c||{},!g)throw new h(a);if(b&&!f["default"].isArray(b))throw new i('"arr" must be an array!');return d=f["default"]._(g,d),d.beforeCreateCollection(d,b),Object.defineProperties(b,{fetch:{value:function(b,c){var d=this;return d.params=b||d.params,g.findAll(d.params,c).then(function(b){return b===d?d:(b.unshift(d.length),b.unshift(0),d.splice.apply(d,b),b.shift(),b.shift(),b.$$injected&&(e.store[a].queryData[f["default"].toJson(d.params)]=d,d.$$injected=!0),d)})}},params:{value:c,writable:!0},resourceName:{value:a}}),d.afterCreateCollection(d,b),b},defineResource:c(31),digest:function(){this.observe.Platform.performMicrotaskCheckpoint()},eject:c(32),ejectAll:c(33),filter:c(34),get:function(a,b){var c=e.call(this,"get",a,b),d=c._this,f=c._resourceName,g=c._id;return d.store[f].index[g]},getAll:function(a,b){var c=this,d=c.definitions[a],e=c.store[a],g=[];if(!d)throw new h(a);if(b&&!f["default"]._a(b))throw f["default"]._aErr("ids");if(f["default"]._a(b))for(var i=b.length,j=0;i>j;j++)e.index[b[j]]&&g.push(e.index[b[j]]);else g=e.collection.slice();return g},hasChanges:function(a,b){var c=e.call(this,"hasChanges",a,b),f=c.definition,g=c._id;return f.get(g)?d(f.changes(g)):!1},inject:c(35),lastModified:function(a,b){var c=e.call(this,"lastModified",a,b||k),d=c._this,f=c._resourceName,g=c._id,h=d.store[f];return g?(g in h.modified||(h.modified[g]=0),h.modified[g]):h.collectionModified},lastSaved:function(a,b){var c=e.call(this,"lastSaved",a,b||k),d=c._this,f=c._resourceName,g=c._id,h=d.store[f];return g in h.saved||(h.saved[g]=0),h.saved[g]},previous:function(a,b){var c=e.call(this,"previous",a,b),d=c._this,g=c._resourceName,h=c._id,i=d.store[g];return i.previousAttributes[h]?f["default"].copy(i.previousAttributes[h]):void 0; +},revert:function(a,b){var c=e.call(this,"revert",a,b),d=c._this,f=c.definition,g=c._resourceName,h=c._id;return f.inject(d.previous(g,h))}}},function(a,b,c){var d=c(2),e=c(3),f=["compute","eject","refresh","save","update","destroy","loadRelations","changeHistory","changes","hasChanges","lastModified","lastSaved","previous","revert"];a.exports=function(a){function b(b){this.defaultValues={},this.methods={},this.computed={},this.scopes={},this.actions={},d["default"].deepMixIn(this,b);var e=c.defaults;a["extends"]&&g[a["extends"]]&&(e=g[a["extends"]]),d["default"].fillIn(this.defaultValues,e.defaultValues),d["default"].fillIn(this.methods,e.methods),d["default"].fillIn(this.computed,e.computed),d["default"].fillIn(this.scopes,e.scopes),d["default"].fillIn(this.actions,e.actions),this.endpoint="endpoint"in b?b.endpoint:this.name}var c=this,g=c.definitions;if(d["default"]._s(a)&&(a={name:a.replace(/\s/gi,"")}),!d["default"]._o(a))throw d["default"]._oErr("definition");if(!d["default"]._s(a.name))throw new e["default"].IA('"name" must be a string!');if(g[a.name])throw new e["default"].R(a.name+" is already registered!");try{var h,i,j=function(){if(a["extends"]&&g[a["extends"]]?b.prototype=g[a["extends"]]:b.prototype=c.defaults,g[a.name]=new b(a),h=g[a.name],h.getResource=function(a){return c.definitions[a]},!d["default"]._s(h.idAttribute))throw new e["default"].IA('"idAttribute" must be a string!');h.relations&&(h.relationList=[],h.relationFields=[],d["default"].forOwn(h.relations,function(a,b){d["default"].forOwn(a,function(c,e){d["default"]._a(c)||(a[e]=[c]),d["default"].forEach(a[e],function(a){a.type=b,a.relation=e,a.name=h.name,h.relationList.push(a),a.localField&&h.relationFields.push(a.localField)})})}),h.relations.belongsTo&&d["default"].forOwn(h.relations.belongsTo,function(a,b){d["default"].forEach(a,function(a){a.parent&&(h.parent=b,h.parentKey=a.localKey,h.parentField=a.localField)})}),"function"==typeof Object.freeze&&(Object.freeze(h.relations),Object.freeze(h.relationList))),i=h["class"]=d["default"].pascalCase(h.name);try{"function"==typeof h.useClass?(h[i]=new Function("def","return function "+i+"() { def.useClass.call(this); }")(h),h[i].prototype=function(a){function b(){}return b.prototype=a,new b}(h.useClass.prototype)):h[i]=new Function("return function "+i+"() {}")()}catch(j){h[i]=function(){}}d["default"].forOwn(h.methods,function(a,b){h[i].prototype[b]=a}),h[i].prototype.set=function(a,b){var c=this;return d["default"].set(this,a,b),h.compute(this),h.instanceEvents&&setTimeout(function(){c.emit("DS.change",h,c)},0),h.handleChange(this),this},h[i].prototype.get=function(a){return d["default"].get(this,a)},d["default"].applyRelationGettersToTarget(c,h,h[i].prototype);var k=null;h.hasOwnProperty("omit")?k=c.defaults.omit:(k=h.omit,h.omit=[]),h.omit=h.omit.concat(k||[]),d["default"].forOwn(h.computed,function(a,b){if(d["default"].isFunction(a)&&(h.computed[b]=[a],a=h.computed[b]),h.methods&&b in h.methods&&h.errorFn('Computed property "'+b+'" conflicts with previously defined prototype method!'),h.omit.push(b),d["default"].isArray(a)){var c;if(1===a.length){var e=a[0].toString().match(/function.*?\(([\s\S]*?)\)/);c=e[1].split(","),c=d["default"].filter(c,function(a){return a}),h.computed[b]=c.concat(a),a=h.computed[b],c.length&&h.errorFn("Use the computed property array syntax for compatibility with minified code!")}c=a.slice(0,a.length-1),d["default"].forEach(c,function(a,b){c[b]=a.trim()}),a.deps=d["default"].filter(c,function(a){return!!a})}else d["default"].isObject(a)&&Object.defineProperty(h[i].prototype,b,a)}),d["default"].forEach(f,function(a){h[i].prototype["DS"+d["default"].pascalCase(a)]=function(){for(var b=arguments.length,d=Array(b),e=0;b>e;e++)d[e]=arguments[e];return d.unshift(this[h.idAttribute]||this),d.unshift(h.name),c[a].apply(c,d)}}),h[i].prototype.DSCreate=function(){for(var a=arguments.length,b=Array(a),d=0;a>d;d++)b[d]=arguments[d];return b.unshift(this),b.unshift(h.name),c.create.apply(c,b)},c.store[h.name]={collection:[],expiresHeap:new d["default"].BinaryHeap(function(a){return a.expires},function(a,b){return a.item===b}),completedQueries:{},queryData:{},pendingQueries:{},index:{},modified:{},saved:{},previousAttributes:{},observers:{},changeHistories:{},changeHistory:[],collectionModified:0};var l=c.store[h.name];h.reapInterval&&setInterval(function(){return h.reap()},h.reapInterval);var m=["registerAdapter","getAdapterName","getAdapter","is","!clear"];for(var n in c)"function"==typeof c[n]&&m.push(n);d["default"].forEach(m,function(a){var b=a;"!"!==b[0]&&(c[b].shorthand!==!1?(h[b]=function(){for(var a=arguments.length,d=Array(a),e=0;a>e;e++)d[e]=arguments[e];return d.unshift(h.name),c[b].apply(c,d)},h[b].before=function(a){var c=h[b];h[b]=function(){for(var b=arguments.length,d=Array(b),e=0;b>e;e++)d[e]=arguments[e];return c.apply(h,a.apply(h,d)||d)}}):h[b]=function(){for(var a=arguments.length,d=Array(a),e=0;a>e;e++)d[e]=arguments[e];return c[b].apply(c,d)})}),h.beforeValidate=d["default"].promisify(h.beforeValidate),h.validate=d["default"].promisify(h.validate),h.afterValidate=d["default"].promisify(h.afterValidate),h.beforeCreate=d["default"].promisify(h.beforeCreate),h.afterCreate=d["default"].promisify(h.afterCreate),h.afterFind=d["default"].promisify(h.afterFind),h.afterFindAll=d["default"].promisify(h.afterFindAll),h.afterLoadRelations=d["default"].promisify(h.afterLoadRelations),h.beforeUpdate=d["default"].promisify(h.beforeUpdate),h.afterUpdate=d["default"].promisify(h.afterUpdate),h.beforeDestroy=d["default"].promisify(h.beforeDestroy),h.afterDestroy=d["default"].promisify(h.afterDestroy);var o=void 0;return h.hasOwnProperty("defaultAdapter")&&(o=h.defaultAdapter),d["default"].forOwn(h.actions,function(a,b){if(h[b]&&!h.actions[b])throw new Error('Cannot override existing method "'+b+'"!');a.request=a.request||function(a){return a},a.response=a.response||function(a){return a},a.responseError=a.responseError||function(a){return d["default"].Promise.reject(a)},h[b]=function(c,e){d["default"]._o(c)&&(e=c),e=e||{};var f=h.getAdapter(a.adapter||o||"http"),g=d["default"].deepMixIn({},a);if(!e.hasOwnProperty("endpoint")&&g.endpoint&&(e.endpoint=g.endpoint),"function"==typeof e.getEndpoint)g.url=e.getEndpoint(h,e);else{var i=[e.basePath||h.basePath||f.defaults.basePath,f.getEndpoint(h,d["default"]._sn(c)?c:null,e)];d["default"]._sn(c)&&i.push(c),i.push(a.pathname||b),g.url=d["default"].makePath.apply(null,i)}return g.method=g.method||"GET",g.resourceName=h.name,d["default"].deepMixIn(g,e),new d["default"].Promise(function(a){return a(g)}).then(e.request||a.request).then(function(a){return f.HTTP(a)}).then(function(a){return a&&a.config&&(a.config.resourceName=h.name),a}).then(e.response||a.response,e.responseError||a.responseError)}}),d["default"].Events(h),h.handleChange=function(a){l.collectionModified=d["default"].updateTimestamp(l.collectionModified),h.notify&&setTimeout(function(){h.emit("DS.change",h,a)},0)},{v:h}}();if("object"==typeof j)return j.v}catch(k){throw c.defaults.errorFn(k),delete g[a.name],delete c.store[a.name],k}}},function(a,b){a.exports=function(a,b,c){var d=this,e=d.utils,f=d.definitions[a],g=d.store[a],h=void 0,i=!1;if(b=e.resolveId(f,b),!f)throw new d.errors.NER(a);if(!e._sn(b))throw e._snErr("id");c=e._(f,c);for(var j=0;j