diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b110bb7..e855223e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +##### 2.2.3 - 22 July 2015 + +###### Backwards compatible bug fixes +- Removed some asinine optimizations + ##### 2.2.2 - 10 July 2015 ###### Backwards compatible bug fixes diff --git a/Gruntfile.js b/Gruntfile.js index 039b30d3..462c8051 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -154,6 +154,16 @@ module.exports = function (grunt) { grunt.file.write(filePath.replace('-debug', ''), file); }); + grunt.registerTask('gzip', function () { + var child_process = require('child_process'); + var done = this.async(); + grunt.log.writeln('Measuring gzip size...'); + child_process.exec('cat dist/js-data.min.js | gzip -f9 | wc -c', function (err, stdout) { + grunt.log.writeln('File dist/js-data.min.js gzipped: ' + stdout.replace('\n', ' kB')); + done(); + }); + }); + grunt.registerTask('n', ['mochaTest']); grunt.registerTask('b', ['karma:ci', 'karma:min']); grunt.registerTask('w', ['n', 'watch:n']); @@ -165,7 +175,8 @@ module.exports = function (grunt) { 'debug:dist/js-data-debug.js', 'version:dist/js-data-debug.js', 'version:dist/js-data.js', - 'uglify:main' + 'uglify:main', + 'gzip' ]); grunt.registerTask('go', ['build', 'watch:dist']); grunt.registerTask('golite', ['webpack', 'watch:lite']); diff --git a/dist/js-data-debug.js b/dist/js-data-debug.js index 7ff54e37..51d0c58d 100644 --- a/dist/js-data-debug.js +++ b/dist/js-data-debug.js @@ -1,6 +1,6 @@ /*! * js-data - * @version 2.2.2 - Homepage + * @version 2.2.3 - Homepage * @author Jason Dobry * @copyright (c) 2014-2015 Jason Dobry * @license MIT @@ -84,10 +84,10 @@ return /******/ (function(modules) { // webpackBootstrap return new _datastoreIndex['default'](options); }, version: { - full: '2.2.2', + full: '2.2.3', major: parseInt('2', 10), minor: parseInt('2', 10), - patch: parseInt('2', 10), + patch: parseInt('3', 10), alpha: true ? 'false' : false, beta: true ? 'false' : false } @@ -453,11 +453,7 @@ return /******/ (function(modules) { // webpackBootstrap options = options || {}; _this.store = {}; - // alias store, shaves 0.1 kb off the minified build - _this.s = _this.store; _this.definitions = {}; - // alias definitions, shaves 0.3 kb off the minified build - _this.defs = _this.definitions; _this.adapters = {}; _this.defaults = new Defaults(); _this.observe = _utils['default'].observe; @@ -529,7 +525,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'is', value: function is(resourceName, instance) { - var definition = this.defs[resourceName]; + var definition = this.definitions[resourceName]; if (!definition) { throw new _errors['default'].NER(resourceName); } @@ -990,6 +986,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _: function _(parent, options) { var _this = this; + parent = parent || {}; options = options || {}; if (options && options.constructor === parent.constructor) { return options; @@ -1202,7 +1199,7 @@ return /******/ (function(modules) { // webpackBootstrap var params = {}; if (foreignKey) { params[foreignKey] = this[definition.idAttribute]; - return definition.getResource(relationName).defaultFilter.call(store, store.s[relationName].collection, relationName, params, { allowSimpleWhere: true }); + return definition.getResource(relationName).defaultFilter.call(store, store.store[relationName].collection, relationName, params, { allowSimpleWhere: true }); } else if (localKeys) { var keys = get(this, localKeys) || []; return definition.getResource(relationName).getAll(isArray(keys) ? keys : _keys(keys)); @@ -1218,7 +1215,7 @@ return /******/ (function(modules) { // webpackBootstrap prop.get = function () { var params = {}; params[foreignKey] = this[definition.idAttribute]; - var items = params[foreignKey] ? definition.getResource(relationName).defaultFilter.call(store, store.s[relationName].collection, relationName, params, { allowSimpleWhere: true }) : []; + var items = params[foreignKey] ? definition.getResource(relationName).defaultFilter.call(store, store.store[relationName].collection, relationName, params, { allowSimpleWhere: true }) : []; if (items.length) { return items[0]; } @@ -1263,6 +1260,8 @@ return /******/ (function(modules) { // webpackBootstrap */ var IllegalArgumentError = (function (_Error) { + _inherits(IllegalArgumentError, _Error); + function IllegalArgumentError(message) { _classCallCheck(this, IllegalArgumentError); @@ -1274,16 +1273,17 @@ return /******/ (function(modules) { // webpackBootstrap this.message = message; } - _inherits(IllegalArgumentError, _Error); - return IllegalArgumentError; - })(Error); + })(Error) /** * Thrown when an invariant is violated or unrecoverable error is encountered during execution. */ + ; var RuntimeError = (function (_Error2) { + _inherits(RuntimeError, _Error2); + function RuntimeError(message) { _classCallCheck(this, RuntimeError); @@ -1295,16 +1295,17 @@ return /******/ (function(modules) { // webpackBootstrap this.message = message; } - _inherits(RuntimeError, _Error2); - return RuntimeError; - })(Error); + })(Error) /** * Thrown when attempting to access or work with a non-existent resource. */ + ; var NonexistentResourceError = (function (_Error3) { + _inherits(NonexistentResourceError, _Error3); + function NonexistentResourceError(resourceName) { _classCallCheck(this, NonexistentResourceError); @@ -1316,8 +1317,6 @@ return /******/ (function(modules) { // webpackBootstrap this.message = resourceName + ' is not a registered resource!'; } - _inherits(NonexistentResourceError, _Error3); - return NonexistentResourceError; })(Error); @@ -1350,7 +1349,7 @@ return /******/ (function(modules) { // webpackBootstrap function check(fnName, resourceName, id, options) { var _this = this; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; options = options || {}; id = _utils['default'].resolveId(definition, id); @@ -1391,7 +1390,7 @@ return /******/ (function(modules) { // webpackBootstrap var _ret = (function () { if (_utils['default'].w) { // force observation handler to be fired for item if there are changes and `Object.observe` is not available - _this.s[_resourceName].observers[_id].deliver(); + _this.store[_resourceName].observers[_id].deliver(); } var ignoredChanges = _options.ignoredChanges || []; @@ -1402,7 +1401,7 @@ return /******/ (function(modules) { // webpackBootstrap } }); // calculate changes - var diff = _utils['default'].diffObjectFromOldObject(item, _this.s[_resourceName].previousAttributes[_id], _utils['default'].equals, ignoredChanges); + var diff = _utils['default'].diffObjectFromOldObject(item, _this.store[_resourceName].previousAttributes[_id], _utils['default'].equals, ignoredChanges); // remove functions from diff _utils['default'].forOwn(diff, function (changeset, name) { var toKeep = []; @@ -1441,7 +1440,7 @@ return /******/ (function(modules) { // webpackBootstrap var _resourceName = _check$call2._resourceName; var _id = _check$call2._id; - var resource = _this.s[_resourceName]; + var resource = _this.store[_resourceName]; if (!definition.keepChangeHistory) { definition.errorFn('changeHistory is disabled for this resource!'); @@ -1464,9 +1463,9 @@ return /******/ (function(modules) { // webpackBootstrap // @returns The item whose computed properties were re-computed. compute: function compute(resourceName, instance) { var _this = this; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; - instance = _utils['default'].resolveItem(_this.s[resourceName], instance); + instance = _utils['default'].resolveItem(_this.store[resourceName], instance); if (!definition) { throw new NER(resourceName); } else if (!instance) { @@ -1492,7 +1491,7 @@ return /******/ (function(modules) { // webpackBootstrap // @param options.defaults Default values with which to initialize the instance. // @returns The new instance. createInstance: function createInstance(resourceName, attrs, options) { - var definition = this.defs[resourceName]; + var definition = this.definitions[resourceName]; var item = undefined; attrs = attrs || {}; @@ -1540,7 +1539,7 @@ return /******/ (function(modules) { // webpackBootstrap // @returns The new collection. createCollection: function createCollection(resourceName, arr, params, options) { var _this = this; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; arr = arr || []; params = params || {}; @@ -1575,7 +1574,7 @@ return /******/ (function(modules) { // webpackBootstrap data.shift(); data.shift(); if (data.$$injected) { - _this.s[resourceName].queryData[_utils['default'].toJson(__this.params)] = __this; + _this.store[resourceName].queryData[_utils['default'].toJson(__this.params)] = __this; __this.$$injected = true; } return __this; @@ -1614,12 +1613,11 @@ return /******/ (function(modules) { // webpackBootstrap get: function get(resourceName, id) { var _check$call3 = check.call(this, 'get', resourceName, id); + // return the item if it exists var _this = _check$call3._this; var _resourceName = _check$call3._resourceName; var _id = _check$call3._id; - - // return the item if it exists - return _this.s[_resourceName].index[_id]; + return _this.store[_resourceName].index[_id]; }, // Return the items in the store that have the given primary keys. @@ -1629,8 +1627,8 @@ return /******/ (function(modules) { // webpackBootstrap // @returns The items with the given primary keys if they're in the store. getAll: function getAll(resourceName, ids) { var _this = this; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var collection = []; if (!definition) { @@ -1684,7 +1682,7 @@ return /******/ (function(modules) { // webpackBootstrap var _resourceName = _check$call5._resourceName; var _id = _check$call5._id; - var resource = _this.s[_resourceName]; + var resource = _this.store[_resourceName]; if (_id) { if (!(_id in resource.modified)) { @@ -1707,7 +1705,7 @@ return /******/ (function(modules) { // webpackBootstrap var _resourceName = _check$call6._resourceName; var _id = _check$call6._id; - var resource = _this.s[_resourceName]; + var resource = _this.store[_resourceName]; if (!(_id in resource.saved)) { resource.saved[_id] = 0; @@ -1727,7 +1725,7 @@ return /******/ (function(modules) { // webpackBootstrap var _resourceName = _check$call7._resourceName; var _id = _check$call7._id; - var resource = _this.s[_resourceName]; + var resource = _this.store[_resourceName]; // return resource from cache return resource.previousAttributes[_id] ? _utils['default'].copy(resource.previousAttributes[_id]) : undefined; @@ -1767,8 +1765,8 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; return new DSUtils.Promise(function (resolve, reject) { - var definition = _this.defs[resourceName]; - id = DSUtils.resolveId(_this.defs[resourceName], id); + var definition = _this.definitions[resourceName]; + id = DSUtils.resolveId(_this.definitions[resourceName], id); if (!definition) { reject(new _this.errors.NER(resourceName)); } else if (!DSUtils._sn(id)) { @@ -1786,7 +1784,7 @@ return /******/ (function(modules) { // webpackBootstrap refreshAll: function refreshAll(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; params = params || {}; return new DSUtils.Promise(function (resolve, reject) { @@ -2373,7 +2371,7 @@ return /******/ (function(modules) { // webpackBootstrap /*! * yabh - * @version 1.0.1 - Homepage + * @version 1.1.0 - Homepage * @author Jason Dobry * @copyright (c) 2015 Jason Dobry * @license MIT @@ -2436,13 +2434,6 @@ return /******/ (function(modules) { // webpackBootstrap /* 0 */ /***/ function(module, exports, __webpack_require__) { - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - Object.defineProperty(exports, '__esModule', { - value: true - }); /** * @method bubbleUp * @param {array} heap The heap. @@ -2511,88 +2502,75 @@ return /******/ (function(modules) { // webpackBootstrap } }; - var BinaryHeap = (function () { - function BinaryHeap(weightFunc, compareFunc) { - _classCallCheck(this, BinaryHeap); + function BinaryHeap(weightFunc, compareFunc) { + if (!weightFunc) { + weightFunc = function (x) { + return x; + }; + } + if (!compareFunc) { + compareFunc = function (x, y) { + return x === y; + }; + } + if (typeof weightFunc !== 'function') { + throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!'); + } + if (typeof compareFunc !== 'function') { + throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!'); + } + this.weightFunc = weightFunc; + this.compareFunc = compareFunc; + this.heap = []; + } - if (!weightFunc) { - weightFunc = function (x) { - return x; - }; - } - if (!compareFunc) { - compareFunc = function (x, y) { - return x === y; - }; - } - if (typeof weightFunc !== 'function') { - throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!'); - } - if (typeof compareFunc !== 'function') { - throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!'); - } - this.weightFunc = weightFunc; - this.compareFunc = compareFunc; - this.heap = []; + var BHProto = BinaryHeap.prototype; + + BHProto.push = function (node) { + this.heap.push(node); + bubbleUp(this.heap, this.weightFunc, this.heap.length - 1); + }; + + BHProto.peek = function () { + return this.heap[0]; + }; + + BHProto.pop = function () { + var front = this.heap[0]; + var end = this.heap.pop(); + if (this.heap.length > 0) { + this.heap[0] = end; + bubbleDown(this.heap, this.weightFunc, 0); } + return front; + }; - _createClass(BinaryHeap, [{ - key: 'push', - value: function push(node) { - this.heap.push(node); - bubbleUp(this.heap, this.weightFunc, this.heap.length - 1); - } - }, { - key: 'peek', - value: function peek() { - return this.heap[0]; - } - }, { - key: 'pop', - value: function pop() { - var front = this.heap[0]; + BHProto.remove = function (node) { + var length = this.heap.length; + for (var i = 0; i < length; i++) { + if (this.compareFunc(this.heap[i], node)) { + var removed = this.heap[i]; var end = this.heap.pop(); - if (this.heap.length > 0) { - this.heap[0] = end; - bubbleDown(this.heap, this.weightFunc, 0); - } - return front; - } - }, { - key: 'remove', - value: function remove(node) { - var length = this.heap.length; - for (var i = 0; i < length; i++) { - if (this.compareFunc(this.heap[i], node)) { - var removed = this.heap[i]; - var end = this.heap.pop(); - if (i !== length - 1) { - this.heap[i] = end; - bubbleUp(this.heap, this.weightFunc, i); - bubbleDown(this.heap, this.weightFunc, i); - } - return removed; - } + if (i !== length - 1) { + this.heap[i] = end; + bubbleUp(this.heap, this.weightFunc, i); + bubbleDown(this.heap, this.weightFunc, i); } - return null; - } - }, { - key: 'removeAll', - value: function removeAll() { - this.heap = []; - } - }, { - key: 'size', - value: function size() { - return this.heap.length; + return removed; } - }]); + } + return null; + }; - return BinaryHeap; - })(); + BHProto.removeAll = function () { + this.heap = []; + }; + + BHProto.size = function () { + return this.heap.length; + }; - exports['default'] = BinaryHeap; - module.exports = exports['default']; + module.exports = BinaryHeap; /***/ } /******/ ]) @@ -3190,7 +3168,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function defineResource(definition) { var _this = this; - var definitions = _this.defs; + var definitions = _this.definitions; /** * This allows the name-only definition shorthand. @@ -3248,7 +3226,7 @@ return /******/ (function(modules) { // webpackBootstrap def = definitions[definition.name]; def.getResource = function (resourceName) { - return _this.defs[resourceName]; + return _this.definitions[resourceName]; }; def.logFn('Preparing resource.'); @@ -3416,7 +3394,7 @@ return /******/ (function(modules) { // webpackBootstrap }; // Initialize store data for the new resource - _this.s[def.name] = { + _this.store[def.name] = { collection: [], expiresHeap: new _utils['default'].BinaryHeap(function (x) { return x.expires; @@ -3436,7 +3414,7 @@ return /******/ (function(modules) { // webpackBootstrap collectionModified: 0 }; - var resource = _this.s[def.name]; + var resource = _this.store[def.name]; // start the reaping if (def.reapInterval) { @@ -3579,7 +3557,7 @@ return /******/ (function(modules) { // webpackBootstrap } catch (err) { _this.defaults.errorFn(err); delete definitions[definition.name]; - delete _this.s[definition.name]; + delete _this.store[definition.name]; throw err; } }; @@ -3601,8 +3579,8 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function eject(resourceName, id, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var item = undefined; var found = false; @@ -3705,7 +3683,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function ejectAll(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; params = params || {}; if (!definition) { @@ -3716,7 +3694,7 @@ return /******/ (function(modules) { // webpackBootstrap definition.logFn('ejectAll', params, options); - var resource = _this.s[resourceName]; + var resource = _this.store[resourceName]; var queryHash = DSUtils.toJson(params); // get items that match the criteria @@ -3757,7 +3735,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function filter(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; if (!definition) { throw new _this.errors.NER(resourceName); @@ -3771,7 +3749,7 @@ return /******/ (function(modules) { // webpackBootstrap options.logFn('filter', params, options); // delegate filtering to DS#defaults.defaultFilter, which can be overridden by developers. - return definition.defaultFilter.call(_this, _this.s[resourceName].collection, resourceName, params, options); + return definition.defaultFilter.call(_this, _this.store[resourceName].collection, resourceName, params, options); }; /***/ }, @@ -3932,7 +3910,7 @@ return /******/ (function(modules) { // webpackBootstrap // Magic! _utils['default'].forEach(definition.relationList, function (def) { var relationName = def.relation; - var relationDef = _this.defs[relationName]; + var relationDef = _this.definitions[relationName]; var toInject = attrs[def.localField]; if (toInject) { if (!relationDef) { @@ -3943,7 +3921,7 @@ return /******/ (function(modules) { // webpackBootstrap (function () { var items = []; _utils['default'].forEach(toInject, function (toInjectItem) { - if (toInjectItem !== _this.s[relationName].index[toInjectItem[relationDef.idAttribute]]) { + if (toInjectItem !== _this.store[relationName].index[toInjectItem[relationDef.idAttribute]]) { try { var injectedItem = relationDef.inject(toInjectItem, options.orig()); if (def.foreignKey) { @@ -3958,7 +3936,7 @@ return /******/ (function(modules) { // webpackBootstrap })(); } else { // handle injecting belongsTo and hasOne relations - if (toInject !== _this.s[relationName].index[toInject[relationDef.idAttribute]]) { + if (toInject !== _this.store[relationName].index[toInject[relationDef.idAttribute]]) { try { var _injected = relationDef.inject(attrs[def.localField], options.orig()); if (def.foreignKey) { @@ -4078,8 +4056,8 @@ return /******/ (function(modules) { // webpackBootstrap */ module.exports = function inject(resourceName, attrs, options) { var _this = this; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var injected = undefined; if (!definition) { @@ -4137,7 +4115,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function create(resourceName, attrs, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var adapter = undefined; options = options || {}; @@ -4189,7 +4167,7 @@ return /******/ (function(modules) { // webpackBootstrap var created = _this.inject(definition.name, attrs, options.orig()); var id = created[definition.idAttribute]; // mark item's `find` query as completed, so a subsequent `find` call for this item will resolve immediately - var resource = _this.s[resourceName]; + var resource = _this.store[resourceName]; resource.completedQueries[id] = new Date().getTime(); resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]); return created; @@ -4221,7 +4199,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function destroy(resourceName, id, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var item = undefined; var adapter = undefined; @@ -4289,7 +4267,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function destroyAll(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var ejected = undefined, toEject = undefined, adapter = undefined; @@ -4363,8 +4341,8 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function find(resourceName, id, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var adapter = undefined; return new DSUtils.Promise(function (resolve, reject) { @@ -4460,9 +4438,9 @@ return /******/ (function(modules) { // webpackBootstrap function processResults(data, resourceName, queryHash, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; - var idAttribute = _this.defs[resourceName].idAttribute; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; + var idAttribute = _this.definitions[resourceName].idAttribute; var date = new Date().getTime(); data = data || []; @@ -4506,15 +4484,15 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function findAll(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var queryHash = undefined, adapter = undefined; return new DSUtils.Promise(function (resolve, reject) { params = params || {}; - if (!_this.defs[resourceName]) { + if (!_this.definitions[resourceName]) { reject(new _this.errors.NER(resourceName)); } else if (!DSUtils._o(params)) { reject(DSUtils._oErr('params')); @@ -4629,7 +4607,7 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; var DSErrors = _this.errors; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; return new DSUtils.Promise(function (resolve, reject) { if (DSUtils._sn(instance)) { @@ -4727,8 +4705,8 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function reap(resourceName, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; return new DSUtils.Promise(function (resolve, reject) { @@ -4819,8 +4797,8 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; var DSErrors = _this.errors; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var item = undefined, noChanges = undefined, adapter = undefined; @@ -4927,7 +4905,7 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; var DSErrors = _this.errors; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var adapter = undefined; return new DSUtils.Promise(function (resolve, reject) { @@ -4966,7 +4944,7 @@ return /******/ (function(modules) { // webpackBootstrap if (options.cacheResponse) { // inject the updated item into the store var injected = definition.inject(attrs, options.orig()); - var resource = _this.s[resourceName]; + var resource = _this.store[resourceName]; var _id = injected[definition.idAttribute]; // mark the item as "saved" resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]); @@ -5001,7 +4979,7 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; var DSErrors = _this.errors; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var adapter = undefined; return new DSUtils.Promise(function (resolve, reject) { @@ -5039,7 +5017,7 @@ return /******/ (function(modules) { // webpackBootstrap var _ret = (function () { // inject the updated items into the store var injected = definition.inject(data, origOptions); - var resource = _this.s[resourceName]; + var resource = _this.store[resourceName]; // mark the items as "saved" DSUtils.forEach(injected, function (i) { var id = i[definition.idAttribute]; diff --git a/dist/js-data.js b/dist/js-data.js index e2c87132..5aa29528 100644 --- a/dist/js-data.js +++ b/dist/js-data.js @@ -1,6 +1,6 @@ /*! * js-data - * @version 2.2.2 - Homepage + * @version 2.2.3 - Homepage * @author Jason Dobry * @copyright (c) 2014-2015 Jason Dobry * @license MIT @@ -84,10 +84,10 @@ return /******/ (function(modules) { // webpackBootstrap return new _datastoreIndex['default'](options); }, version: { - full: '2.2.2', + full: '2.2.3', major: parseInt('2', 10), minor: parseInt('2', 10), - patch: parseInt('2', 10), + patch: parseInt('3', 10), alpha: true ? 'false' : false, beta: true ? 'false' : false } @@ -453,11 +453,7 @@ return /******/ (function(modules) { // webpackBootstrap options = options || {}; _this.store = {}; - // alias store, shaves 0.1 kb off the minified build - _this.s = _this.store; _this.definitions = {}; - // alias definitions, shaves 0.3 kb off the minified build - _this.defs = _this.definitions; _this.adapters = {}; _this.defaults = new Defaults(); _this.observe = _utils['default'].observe; @@ -524,7 +520,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'is', value: function is(resourceName, instance) { - var definition = this.defs[resourceName]; + var definition = this.definitions[resourceName]; if (!definition) { throw new _errors['default'].NER(resourceName); } @@ -985,6 +981,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _: function _(parent, options) { var _this = this; + parent = parent || {}; options = options || {}; if (options && options.constructor === parent.constructor) { return options; @@ -1197,7 +1194,7 @@ return /******/ (function(modules) { // webpackBootstrap var params = {}; if (foreignKey) { params[foreignKey] = this[definition.idAttribute]; - return definition.getResource(relationName).defaultFilter.call(store, store.s[relationName].collection, relationName, params, { allowSimpleWhere: true }); + return definition.getResource(relationName).defaultFilter.call(store, store.store[relationName].collection, relationName, params, { allowSimpleWhere: true }); } else if (localKeys) { var keys = get(this, localKeys) || []; return definition.getResource(relationName).getAll(isArray(keys) ? keys : _keys(keys)); @@ -1213,7 +1210,7 @@ return /******/ (function(modules) { // webpackBootstrap prop.get = function () { var params = {}; params[foreignKey] = this[definition.idAttribute]; - var items = params[foreignKey] ? definition.getResource(relationName).defaultFilter.call(store, store.s[relationName].collection, relationName, params, { allowSimpleWhere: true }) : []; + var items = params[foreignKey] ? definition.getResource(relationName).defaultFilter.call(store, store.store[relationName].collection, relationName, params, { allowSimpleWhere: true }) : []; if (items.length) { return items[0]; } @@ -1258,6 +1255,8 @@ return /******/ (function(modules) { // webpackBootstrap */ var IllegalArgumentError = (function (_Error) { + _inherits(IllegalArgumentError, _Error); + function IllegalArgumentError(message) { _classCallCheck(this, IllegalArgumentError); @@ -1269,16 +1268,17 @@ return /******/ (function(modules) { // webpackBootstrap this.message = message; } - _inherits(IllegalArgumentError, _Error); - return IllegalArgumentError; - })(Error); + })(Error) /** * Thrown when an invariant is violated or unrecoverable error is encountered during execution. */ + ; var RuntimeError = (function (_Error2) { + _inherits(RuntimeError, _Error2); + function RuntimeError(message) { _classCallCheck(this, RuntimeError); @@ -1290,16 +1290,17 @@ return /******/ (function(modules) { // webpackBootstrap this.message = message; } - _inherits(RuntimeError, _Error2); - return RuntimeError; - })(Error); + })(Error) /** * Thrown when attempting to access or work with a non-existent resource. */ + ; var NonexistentResourceError = (function (_Error3) { + _inherits(NonexistentResourceError, _Error3); + function NonexistentResourceError(resourceName) { _classCallCheck(this, NonexistentResourceError); @@ -1311,8 +1312,6 @@ return /******/ (function(modules) { // webpackBootstrap this.message = resourceName + ' is not a registered resource!'; } - _inherits(NonexistentResourceError, _Error3); - return NonexistentResourceError; })(Error); @@ -1345,7 +1344,7 @@ return /******/ (function(modules) { // webpackBootstrap function check(fnName, resourceName, id, options) { var _this = this; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; options = options || {}; id = _utils['default'].resolveId(definition, id); @@ -1385,7 +1384,7 @@ return /******/ (function(modules) { // webpackBootstrap var _ret = (function () { if (_utils['default'].w) { // force observation handler to be fired for item if there are changes and `Object.observe` is not available - _this.s[_resourceName].observers[_id].deliver(); + _this.store[_resourceName].observers[_id].deliver(); } var ignoredChanges = _options.ignoredChanges || []; @@ -1396,7 +1395,7 @@ return /******/ (function(modules) { // webpackBootstrap } }); // calculate changes - var diff = _utils['default'].diffObjectFromOldObject(item, _this.s[_resourceName].previousAttributes[_id], _utils['default'].equals, ignoredChanges); + var diff = _utils['default'].diffObjectFromOldObject(item, _this.store[_resourceName].previousAttributes[_id], _utils['default'].equals, ignoredChanges); // remove functions from diff _utils['default'].forOwn(diff, function (changeset, name) { var toKeep = []; @@ -1435,7 +1434,7 @@ return /******/ (function(modules) { // webpackBootstrap var _resourceName = _check$call2._resourceName; var _id = _check$call2._id; - var resource = _this.s[_resourceName]; + var resource = _this.store[_resourceName]; if (!definition.keepChangeHistory) { definition.errorFn('changeHistory is disabled for this resource!'); @@ -1458,9 +1457,9 @@ return /******/ (function(modules) { // webpackBootstrap // @returns The item whose computed properties were re-computed. compute: function compute(resourceName, instance) { var _this = this; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; - instance = _utils['default'].resolveItem(_this.s[resourceName], instance); + instance = _utils['default'].resolveItem(_this.store[resourceName], instance); if (!definition) { throw new NER(resourceName); } else if (!instance) { @@ -1485,7 +1484,7 @@ return /******/ (function(modules) { // webpackBootstrap // @param options.defaults Default values with which to initialize the instance. // @returns The new instance. createInstance: function createInstance(resourceName, attrs, options) { - var definition = this.defs[resourceName]; + var definition = this.definitions[resourceName]; var item = undefined; attrs = attrs || {}; @@ -1532,7 +1531,7 @@ return /******/ (function(modules) { // webpackBootstrap // @returns The new collection. createCollection: function createCollection(resourceName, arr, params, options) { var _this = this; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; arr = arr || []; params = params || {}; @@ -1566,7 +1565,7 @@ return /******/ (function(modules) { // webpackBootstrap data.shift(); data.shift(); if (data.$$injected) { - _this.s[resourceName].queryData[_utils['default'].toJson(__this.params)] = __this; + _this.store[resourceName].queryData[_utils['default'].toJson(__this.params)] = __this; __this.$$injected = true; } return __this; @@ -1605,12 +1604,11 @@ return /******/ (function(modules) { // webpackBootstrap get: function get(resourceName, id) { var _check$call3 = check.call(this, 'get', resourceName, id); + // return the item if it exists var _this = _check$call3._this; var _resourceName = _check$call3._resourceName; var _id = _check$call3._id; - - // return the item if it exists - return _this.s[_resourceName].index[_id]; + return _this.store[_resourceName].index[_id]; }, // Return the items in the store that have the given primary keys. @@ -1620,8 +1618,8 @@ return /******/ (function(modules) { // webpackBootstrap // @returns The items with the given primary keys if they're in the store. getAll: function getAll(resourceName, ids) { var _this = this; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var collection = []; if (!definition) { @@ -1674,7 +1672,7 @@ return /******/ (function(modules) { // webpackBootstrap var _resourceName = _check$call5._resourceName; var _id = _check$call5._id; - var resource = _this.s[_resourceName]; + var resource = _this.store[_resourceName]; if (_id) { if (!(_id in resource.modified)) { @@ -1697,7 +1695,7 @@ return /******/ (function(modules) { // webpackBootstrap var _resourceName = _check$call6._resourceName; var _id = _check$call6._id; - var resource = _this.s[_resourceName]; + var resource = _this.store[_resourceName]; if (!(_id in resource.saved)) { resource.saved[_id] = 0; @@ -1717,7 +1715,7 @@ return /******/ (function(modules) { // webpackBootstrap var _resourceName = _check$call7._resourceName; var _id = _check$call7._id; - var resource = _this.s[_resourceName]; + var resource = _this.store[_resourceName]; // return resource from cache return resource.previousAttributes[_id] ? _utils['default'].copy(resource.previousAttributes[_id]) : undefined; @@ -1757,8 +1755,8 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; return new DSUtils.Promise(function (resolve, reject) { - var definition = _this.defs[resourceName]; - id = DSUtils.resolveId(_this.defs[resourceName], id); + var definition = _this.definitions[resourceName]; + id = DSUtils.resolveId(_this.definitions[resourceName], id); if (!definition) { reject(new _this.errors.NER(resourceName)); } else if (!DSUtils._sn(id)) { @@ -1775,7 +1773,7 @@ return /******/ (function(modules) { // webpackBootstrap refreshAll: function refreshAll(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; params = params || {}; return new DSUtils.Promise(function (resolve, reject) { @@ -2361,7 +2359,7 @@ return /******/ (function(modules) { // webpackBootstrap /*! * yabh - * @version 1.0.1 - Homepage + * @version 1.1.0 - Homepage * @author Jason Dobry * @copyright (c) 2015 Jason Dobry * @license MIT @@ -2424,13 +2422,6 @@ return /******/ (function(modules) { // webpackBootstrap /* 0 */ /***/ function(module, exports, __webpack_require__) { - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - Object.defineProperty(exports, '__esModule', { - value: true - }); /** * @method bubbleUp * @param {array} heap The heap. @@ -2499,88 +2490,75 @@ return /******/ (function(modules) { // webpackBootstrap } }; - var BinaryHeap = (function () { - function BinaryHeap(weightFunc, compareFunc) { - _classCallCheck(this, BinaryHeap); + function BinaryHeap(weightFunc, compareFunc) { + if (!weightFunc) { + weightFunc = function (x) { + return x; + }; + } + if (!compareFunc) { + compareFunc = function (x, y) { + return x === y; + }; + } + if (typeof weightFunc !== 'function') { + throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!'); + } + if (typeof compareFunc !== 'function') { + throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!'); + } + this.weightFunc = weightFunc; + this.compareFunc = compareFunc; + this.heap = []; + } - if (!weightFunc) { - weightFunc = function (x) { - return x; - }; - } - if (!compareFunc) { - compareFunc = function (x, y) { - return x === y; - }; - } - if (typeof weightFunc !== 'function') { - throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!'); - } - if (typeof compareFunc !== 'function') { - throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!'); - } - this.weightFunc = weightFunc; - this.compareFunc = compareFunc; - this.heap = []; + var BHProto = BinaryHeap.prototype; + + BHProto.push = function (node) { + this.heap.push(node); + bubbleUp(this.heap, this.weightFunc, this.heap.length - 1); + }; + + BHProto.peek = function () { + return this.heap[0]; + }; + + BHProto.pop = function () { + var front = this.heap[0]; + var end = this.heap.pop(); + if (this.heap.length > 0) { + this.heap[0] = end; + bubbleDown(this.heap, this.weightFunc, 0); } + return front; + }; - _createClass(BinaryHeap, [{ - key: 'push', - value: function push(node) { - this.heap.push(node); - bubbleUp(this.heap, this.weightFunc, this.heap.length - 1); - } - }, { - key: 'peek', - value: function peek() { - return this.heap[0]; - } - }, { - key: 'pop', - value: function pop() { - var front = this.heap[0]; + BHProto.remove = function (node) { + var length = this.heap.length; + for (var i = 0; i < length; i++) { + if (this.compareFunc(this.heap[i], node)) { + var removed = this.heap[i]; var end = this.heap.pop(); - if (this.heap.length > 0) { - this.heap[0] = end; - bubbleDown(this.heap, this.weightFunc, 0); - } - return front; - } - }, { - key: 'remove', - value: function remove(node) { - var length = this.heap.length; - for (var i = 0; i < length; i++) { - if (this.compareFunc(this.heap[i], node)) { - var removed = this.heap[i]; - var end = this.heap.pop(); - if (i !== length - 1) { - this.heap[i] = end; - bubbleUp(this.heap, this.weightFunc, i); - bubbleDown(this.heap, this.weightFunc, i); - } - return removed; - } + if (i !== length - 1) { + this.heap[i] = end; + bubbleUp(this.heap, this.weightFunc, i); + bubbleDown(this.heap, this.weightFunc, i); } - return null; - } - }, { - key: 'removeAll', - value: function removeAll() { - this.heap = []; - } - }, { - key: 'size', - value: function size() { - return this.heap.length; + return removed; } - }]); + } + return null; + }; - return BinaryHeap; - })(); + BHProto.removeAll = function () { + this.heap = []; + }; + + BHProto.size = function () { + return this.heap.length; + }; - exports['default'] = BinaryHeap; - module.exports = exports['default']; + module.exports = BinaryHeap; /***/ } /******/ ]) @@ -3178,7 +3156,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function defineResource(definition) { var _this = this; - var definitions = _this.defs; + var definitions = _this.definitions; /** * This allows the name-only definition shorthand. @@ -3236,7 +3214,7 @@ return /******/ (function(modules) { // webpackBootstrap def = definitions[definition.name]; def.getResource = function (resourceName) { - return _this.defs[resourceName]; + return _this.definitions[resourceName]; }; @@ -3403,7 +3381,7 @@ return /******/ (function(modules) { // webpackBootstrap }; // Initialize store data for the new resource - _this.s[def.name] = { + _this.store[def.name] = { collection: [], expiresHeap: new _utils['default'].BinaryHeap(function (x) { return x.expires; @@ -3423,7 +3401,7 @@ return /******/ (function(modules) { // webpackBootstrap collectionModified: 0 }; - var resource = _this.s[def.name]; + var resource = _this.store[def.name]; // start the reaping if (def.reapInterval) { @@ -3565,7 +3543,7 @@ return /******/ (function(modules) { // webpackBootstrap } catch (err) { _this.defaults.errorFn(err); delete definitions[definition.name]; - delete _this.s[definition.name]; + delete _this.store[definition.name]; throw err; } }; @@ -3587,8 +3565,8 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function eject(resourceName, id, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var item = undefined; var found = false; @@ -3690,7 +3668,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function ejectAll(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; params = params || {}; if (!definition) { @@ -3700,7 +3678,7 @@ return /******/ (function(modules) { // webpackBootstrap } - var resource = _this.s[resourceName]; + var resource = _this.store[resourceName]; var queryHash = DSUtils.toJson(params); // get items that match the criteria @@ -3741,7 +3719,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function filter(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; if (!definition) { throw new _this.errors.NER(resourceName); @@ -3754,7 +3732,7 @@ return /******/ (function(modules) { // webpackBootstrap options = DSUtils._(definition, options); // delegate filtering to DS#defaults.defaultFilter, which can be overridden by developers. - return definition.defaultFilter.call(_this, _this.s[resourceName].collection, resourceName, params, options); + return definition.defaultFilter.call(_this, _this.store[resourceName].collection, resourceName, params, options); }; /***/ }, @@ -3915,7 +3893,7 @@ return /******/ (function(modules) { // webpackBootstrap // Magic! _utils['default'].forEach(definition.relationList, function (def) { var relationName = def.relation; - var relationDef = _this.defs[relationName]; + var relationDef = _this.definitions[relationName]; var toInject = attrs[def.localField]; if (toInject) { if (!relationDef) { @@ -3926,7 +3904,7 @@ return /******/ (function(modules) { // webpackBootstrap (function () { var items = []; _utils['default'].forEach(toInject, function (toInjectItem) { - if (toInjectItem !== _this.s[relationName].index[toInjectItem[relationDef.idAttribute]]) { + if (toInjectItem !== _this.store[relationName].index[toInjectItem[relationDef.idAttribute]]) { try { var injectedItem = relationDef.inject(toInjectItem, options.orig()); if (def.foreignKey) { @@ -3941,7 +3919,7 @@ return /******/ (function(modules) { // webpackBootstrap })(); } else { // handle injecting belongsTo and hasOne relations - if (toInject !== _this.s[relationName].index[toInject[relationDef.idAttribute]]) { + if (toInject !== _this.store[relationName].index[toInject[relationDef.idAttribute]]) { try { var _injected = relationDef.inject(attrs[def.localField], options.orig()); if (def.foreignKey) { @@ -4061,8 +4039,8 @@ return /******/ (function(modules) { // webpackBootstrap */ module.exports = function inject(resourceName, attrs, options) { var _this = this; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var injected = undefined; if (!definition) { @@ -4119,7 +4097,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function create(resourceName, attrs, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var adapter = undefined; options = options || {}; @@ -4170,7 +4148,7 @@ return /******/ (function(modules) { // webpackBootstrap var created = _this.inject(definition.name, attrs, options.orig()); var id = created[definition.idAttribute]; // mark item's `find` query as completed, so a subsequent `find` call for this item will resolve immediately - var resource = _this.s[resourceName]; + var resource = _this.store[resourceName]; resource.completedQueries[id] = new Date().getTime(); resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]); return created; @@ -4202,7 +4180,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function destroy(resourceName, id, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var item = undefined; var adapter = undefined; @@ -4269,7 +4247,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function destroyAll(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var ejected = undefined, toEject = undefined, adapter = undefined; @@ -4342,8 +4320,8 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function find(resourceName, id, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var adapter = undefined; return new DSUtils.Promise(function (resolve, reject) { @@ -4438,9 +4416,9 @@ return /******/ (function(modules) { // webpackBootstrap function processResults(data, resourceName, queryHash, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; - var idAttribute = _this.defs[resourceName].idAttribute; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; + var idAttribute = _this.definitions[resourceName].idAttribute; var date = new Date().getTime(); data = data || []; @@ -4484,15 +4462,15 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function findAll(resourceName, params, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var queryHash = undefined, adapter = undefined; return new DSUtils.Promise(function (resolve, reject) { params = params || {}; - if (!_this.defs[resourceName]) { + if (!_this.definitions[resourceName]) { reject(new _this.errors.NER(resourceName)); } else if (!DSUtils._o(params)) { reject(DSUtils._oErr('params')); @@ -4606,7 +4584,7 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; var DSErrors = _this.errors; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; return new DSUtils.Promise(function (resolve, reject) { if (DSUtils._sn(instance)) { @@ -4703,8 +4681,8 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function reap(resourceName, options) { var _this = this; var DSUtils = _this.utils; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; return new DSUtils.Promise(function (resolve, reject) { @@ -4794,8 +4772,8 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; var DSErrors = _this.errors; - var definition = _this.defs[resourceName]; - var resource = _this.s[resourceName]; + var definition = _this.definitions[resourceName]; + var resource = _this.store[resourceName]; var item = undefined, noChanges = undefined, adapter = undefined; @@ -4900,7 +4878,7 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; var DSErrors = _this.errors; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var adapter = undefined; return new DSUtils.Promise(function (resolve, reject) { @@ -4938,7 +4916,7 @@ return /******/ (function(modules) { // webpackBootstrap if (options.cacheResponse) { // inject the updated item into the store var injected = definition.inject(attrs, options.orig()); - var resource = _this.s[resourceName]; + var resource = _this.store[resourceName]; var _id = injected[definition.idAttribute]; // mark the item as "saved" resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]); @@ -4973,7 +4951,7 @@ return /******/ (function(modules) { // webpackBootstrap var DSUtils = _this.utils; var DSErrors = _this.errors; - var definition = _this.defs[resourceName]; + var definition = _this.definitions[resourceName]; var adapter = undefined; return new DSUtils.Promise(function (resolve, reject) { @@ -5010,7 +4988,7 @@ return /******/ (function(modules) { // webpackBootstrap var _ret = (function () { // inject the updated items into the store var injected = definition.inject(data, origOptions); - var resource = _this.s[resourceName]; + var resource = _this.store[resourceName]; // mark the items as "saved" DSUtils.forEach(injected, function (i) { var id = i[definition.idAttribute]; diff --git a/dist/js-data.min.js b/dist/js-data.min.js index 7a9b47fc..6d3a8b3c 100644 --- a/dist/js-data.min.js +++ b/dist/js-data.min.js @@ -1,6 +1,6 @@ /*! * js-data -* @version 2.2.2 - Homepage +* @version 2.2.3 - Homepage * @author Jason Dobry * @copyright (c) 2014-2015 Jason Dobry * @license MIT @@ -8,7 +8,7 @@ * @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.2.2",major:parseInt("2",10),minor:parseInt("2",10),patch:parseInt("2",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=md;d++)c[d]=arguments[d];var e=b[c.shift()]||[];if(e)for(var f=0;fe;e++)d=a[e],j(c,d)||j(b,d)&&c.push(d);return c},M=function(a,b,c){var d=[];return g(a,function(a,c,e){b(a,c,e)&&d.push(a)},c),d};try{u=window,u={}}catch(N){u=null}var O=["beforeValidate","validate","afterValidate","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy"],P=t.isBlacklisted,Q=function X(a,b,c,d,e){if(b){if(a===b)throw new Error("Cannot copy! Source and destination are identical.");if(c=c||[],d=d||[],C(a)){var f=c.indexOf(a);if(-1!==f)return d[f];c.push(a),d.push(b)}var h=void 0;if(z(a)){var i=void 0;for(b.length=0,i=0;ig;g++)if(!Y(d[g],e[g]))return!1;return!0}}return!1}},S=function(a,b){return B(b)||E(b)?b:b&&a?b[a.idAttribute]||b:b},T=function(a,b){return a&&(B(b)||E(b))?a.index[b]||b:b},U=function(a){return null!=a&&""!==a},V=function(a,b){return b=b||"",M(a,U).join(b)},W=function(){for(var a=arguments.length,b=Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=V(b,"/");return d.replace(/([^:\/]|^)\/{2,}/g,"$1/")};b["default"]={Promise:x,_:function(a,b){var c=this;if(b=b||{},b&&b.constructor===a.constructor)return b;if(!C(b))throw new e["default"].IA('"options" must be an object!');g(O,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;i(a,function(a,c){b[c]=a})};return d.prototype=a,d.prototype.orig=function(){var a={};return i(this,function(b,c){a[c]=b}),a},new d(b)},_n:E,_s:B,_sn:G,_snErr:H,_o:C,_oErr:I,_a:z,_aErr:J,compute:function(a,b){var c=this,d=[];g(a.deps,function(a){d.push(r(c,a))}),s(c,b,a[a.length-1].apply(c,d))},contains:j,copy:Q,deepMixIn:k,diffObjectFromOldObject:t.diffObjectFromOldObject,BinaryHeap:f,equals:R,Events:d,filter:M,fillIn:function(a,b){return i(b,function(b,c){c in a||(a[c]=b)}),a},forEach:g,forOwn:i,fromJson:function(a){return B(a)?JSON.parse(a):a},get:r,intersection:L,isArray:z,isBlacklisted:P,isEmpty:K,isFunction:F,isObject:C,isNumber:E,isString:B,keys:o,makePath:W,observe:t,omit:function(a,b){var c=[];return i(a,function(a,d){P(d,b)&&c.push(d)}),g(c,function(b){delete a[b]}),a},pascalCase:l,pick:n,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:m,set:s,slice:h,sort:p,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:q,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)){for(var f=c.cur,g=c.ctx;g;){if(g.cur===f)return void 0;g=g.ctx}if(z(a))for(e=[],d=0;de;e++)d[e]=arguments[e];return a.apply(c,d)})}}(),Object.defineProperty(c,d.localField,k)}})}}},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){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&&(a.__proto__=b)}var f=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}},g=function(a){function b(a){d(this,b),f(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 e(b,a),b}(Error),h=function(a){function b(a){d(this,b),f(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 e(b,a),b}(Error),i=function(a){function b(a){d(this,b),f(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 e(b,a),b}(Error);b["default"]={IllegalArgumentError:g,IA:g,RuntimeError:h,R:h,NonexistentResourceError:i,NER:i}},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.defs[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(){f["default"].w&&g.s[i].observers[j].deliver();var a=k.ignoredChanges||[];f["default"].forEach(h.relationFields,function(b){f["default"].contains(a,b)||a.push(b)});var b=f["default"].diffObjectFromOldObject(l,g.s[i].previousAttributes[j],f["default"].equals,a);return f["default"].forOwn(b,function(a,c){var d=[];f["default"].forOwn(a,function(a,b){f["default"].isFunction(a)||d.push(b)}),b[c]=f["default"].pick(b[c],d)}),f["default"].forEach(h.relationFields,function(a){delete b.added[a],delete b.removed[a],delete b.changed[a]}),{v:b}}();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.s[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.defs[a];if(b=f["default"].resolveItem(c.s[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.defs[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,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.defs[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.s[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(27),digest:function(){this.observe.Platform.performMicrotaskCheckpoint()},eject:c(28),ejectAll:c(29),filter:c(30),get:function(a,b){var c=e.call(this,"get",a,b),d=c._this,f=c._resourceName,g=c._id;return d.s[f].index[g]},getAll:function(a,b){var c=this,d=c.defs[a],e=c.s[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(31),lastModified:function(a,b){var c=e.call(this,"lastModified",a,b||k),d=c._this,f=c._resourceName,g=c._id,h=d.s[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.s[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.s[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){b["default"]={create:c(32),destroy:c(33),destroyAll:c(34),find:c(35),findAll:c(36),loadRelations:c(37),reap:c(38),refresh:function(a,b,c){var d=this,e=d.utils;return new e.Promise(function(f,g){var h=d.defs[a];b=e.resolveId(d.defs[a],b),h?e._sn(b)?(c=e._(h,c),c.bypassCache=!0,f(d.get(a,b))):g(e._snErr("id")):g(new d.errors.NER(a))}).then(function(e){return e?d.find(a,b,c):e})},refreshAll:function(a,b,c){var d=this,e=d.utils,f=d.defs[a];return b=b||{},new e.Promise(function(g,h){f?e._o(b)?(c=e._(f,c),c.bypassCache=!0,g(d.filter(a,b,c))):h(e._oErr("params")):h(new d.errors.NER(a))}).then(function(g){return c.bypassCache=!0,d.findAll(a,b,c).then(function(a){return e.forEach(g,function(b){-1===a.indexOf(b)&&f.eject(b)}),a})})},save:c(39),update:c(40),updateAll:c(41)}},function(a,b,c){!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(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}}var e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(){function a(a,b){for(var c=0;ch){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}},h=function(){function a(b,c){if(e(this,a),b||(b=function(a){return a}),c||(c=function(a,b){return a===b}),"function"!=typeof b)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');if("function"!=typeof c)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');this.weightFunc=b,this.compareFunc=c,this.heap=[]}return f(a,[{key:"push",value:function(a){this.heap.push(a),d(this.heap,this.weightFunc,this.heap.length-1)}},{key:"peek",value:function(){return this.heap[0]}},{key:"pop",value:function(){var a=this.heap[0],b=this.heap.pop();return this.heap.length>0&&(this.heap[0]=b,g(this.heap,this.weightFunc,0)),a}},{key:"remove",value: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],f=this.heap.pop();return c!==b-1&&(this.heap[c]=f,d(this.heap,this.weightFunc,c),g(this.heap,this.weightFunc,c)),e}return null}},{key:"removeAll",value:function(){this.heap=[]}},{key:"size",value:function(){return this.heap.length}}]),a}();b["default"]=h,a.exports=b["default"]}])})},function(a,b,c){function d(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=d},function(a,b,c){function d(a,b){return-1!==e(a,b)}var e=c(21);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(21);a.exports=d},function(a,b,c){function d(a,b){if(null==a)return[];if(a.length<2)return a;null==b&&(b=e);var c,g,h;return c=~~(a.length/2),g=d(a.slice(0,c),b),h=d(a.slice(c,a.length),b),f(g,h,b)}function e(a,b){return b>a?-1:a>b?1:0}function f(a,b,c){for(var d=[];a.length&&b.length;)d.push(c(a[0],b[0])<=0?a.shift():b.shift());return a.length&&d.push.apply(d,a),b.length&&d.push.apply(d,b),d}a.exports=d},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(22),f=c(23);a.exports=d},function(a,b,c){function d(a,b){for(var c,d=0,g=arguments.length;++dc?d+c:c;d>e;){if(a[e]===b)return e;e++}return-1}a.exports=d},function(a,b,c){function d(a,b){return Object.prototype.hasOwnProperty.call(a,b)}a.exports=d},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(22);a.exports=e},function(a,b,c){function d(a){return!!a&&"object"==typeof a&&a.constructor===Object}a.exports=d},function(a,b,c){function d(a){switch(typeof a){case"string":case"number":case"boolean":return!0}return null==a}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(8);a.exports=d},function(module,exports,__webpack_require__){var _utils=__webpack_require__(2),_errors=__webpack_require__(3),instanceMethods=["compute","eject","refresh","save","update","destroy","loadRelations","changeHistory","changes","hasChanges","lastModified","lastSaved","previous","revert"];module.exports=function defineResource(definition){function Resource(a){this.defaultValues={},this.methods={},this.computed={},_utils["default"].deepMixIn(this,a);var b=_this.defaults;definition["extends"]&&definitions[definition["extends"]]&&(b=definitions[definition["extends"]]),_utils["default"].fillIn(this.defaultValues,b.defaultValues),_utils["default"].fillIn(this.methods,b.methods),_utils["default"].fillIn(this.computed,b.computed),this.endpoint="endpoint"in a?a.endpoint:this.name}var _this=this,definitions=_this.defs;if(_utils["default"]._s(definition)&&(definition={name:definition.replace(/\s/gi,"")}),!_utils["default"]._o(definition))throw _utils["default"]._oErr("definition");if(!_utils["default"]._s(definition.name))throw new _errors["default"].IA('"name" must be a string!');if(definitions[definition.name])throw new _errors["default"].R(definition.name+" is already registered!"); +!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.2.3",major:parseInt("2",10),minor:parseInt("2",10),patch:parseInt("3",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=md;d++)c[d]=arguments[d];var e=b[c.shift()]||[];if(e)for(var f=0;fe;e++)d=a[e],j(c,d)||j(b,d)&&c.push(d);return c},M=function(a,b,c){var d=[];return g(a,function(a,c,e){b(a,c,e)&&d.push(a)},c),d};try{u=window,u={}}catch(N){u=null}var O=["beforeValidate","validate","afterValidate","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy"],P=t.isBlacklisted,Q=function X(a,b,c,d,e){if(b){if(a===b)throw new Error("Cannot copy! Source and destination are identical.");if(c=c||[],d=d||[],C(a)){var f=c.indexOf(a);if(-1!==f)return d[f];c.push(a),d.push(b)}var h=void 0;if(z(a)){var i=void 0;for(b.length=0,i=0;ig;g++)if(!Y(d[g],e[g]))return!1;return!0}}return!1}},S=function(a,b){return B(b)||E(b)?b:b&&a?b[a.idAttribute]||b:b},T=function(a,b){return a&&(B(b)||E(b))?a.index[b]||b:b},U=function(a){return null!=a&&""!==a},V=function(a,b){return b=b||"",M(a,U).join(b)},W=function(){for(var a=arguments.length,b=Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=V(b,"/");return d.replace(/([^:\/]|^)\/{2,}/g,"$1/")};b["default"]={Promise:x,_:function(a,b){var c=this;if(a=a||{},b=b||{},b&&b.constructor===a.constructor)return b;if(!C(b))throw new e["default"].IA('"options" must be an object!');g(O,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;i(a,function(a,c){b[c]=a})};return d.prototype=a,d.prototype.orig=function(){var a={};return i(this,function(b,c){a[c]=b}),a},new d(b)},_n:E,_s:B,_sn:G,_snErr:H,_o:C,_oErr:I,_a:z,_aErr:J,compute:function(a,b){var c=this,d=[];g(a.deps,function(a){d.push(r(c,a))}),s(c,b,a[a.length-1].apply(c,d))},contains:j,copy:Q,deepMixIn:k,diffObjectFromOldObject:t.diffObjectFromOldObject,BinaryHeap:f,equals:R,Events:d,filter:M,fillIn:function(a,b){return i(b,function(b,c){c in a||(a[c]=b)}),a},forEach:g,forOwn:i,fromJson:function(a){return B(a)?JSON.parse(a):a},get:r,intersection:L,isArray:z,isBlacklisted:P,isEmpty:K,isFunction:F,isObject:C,isNumber:E,isString:B,keys:o,makePath:W,observe:t,omit:function(a,b){var c=[];return i(a,function(a,d){P(d,b)&&c.push(d)}),g(c,function(b){delete a[b]}),a},pascalCase:l,pick:n,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:m,set:s,slice:h,sort:p,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:q,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)){for(var f=c.cur,g=c.ctx;g;){if(g.cur===f)return void 0;g=g.ctx}if(z(a))for(e=[],d=0;de;e++)d[e]=arguments[e];return a.apply(c,d)})}}(),Object.defineProperty(c,d.localField,k)}})}}},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){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&&(a.__proto__=b)}var f=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}},g=function(a){function b(a){d(this,b),f(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 e(b,a),b}(Error),h=function(a){function b(a){d(this,b),f(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 e(b,a),b}(Error),i=function(a){function b(a){d(this,b),f(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 e(b,a),b}(Error);b["default"]={IllegalArgumentError:g,IA:g,RuntimeError:h,R:h,NonexistentResourceError:i,NER:i}},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(){f["default"].w&&g.store[i].observers[j].deliver();var a=k.ignoredChanges||[];f["default"].forEach(h.relationFields,function(b){f["default"].contains(a,b)||a.push(b)});var b=f["default"].diffObjectFromOldObject(l,g.store[i].previousAttributes[j],f["default"].equals,a);return f["default"].forOwn(b,function(a,c){var d=[];f["default"].forOwn(a,function(a,b){f["default"].isFunction(a)||d.push(b)}),b[c]=f["default"].pick(b[c],d)}),f["default"].forEach(h.relationFields,function(a){delete b.added[a],delete b.removed[a],delete b.changed[a]}),{v:b}}();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,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(27),digest:function(){this.observe.Platform.performMicrotaskCheckpoint()},eject:c(28),ejectAll:c(29),filter:c(30),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(31),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){b["default"]={create:c(32),destroy:c(33),destroyAll:c(34),find:c(35),findAll:c(36),loadRelations:c(37),reap:c(38),refresh:function(a,b,c){var d=this,e=d.utils;return new e.Promise(function(f,g){var h=d.definitions[a];b=e.resolveId(d.definitions[a],b),h?e._sn(b)?(c=e._(h,c),c.bypassCache=!0,f(d.get(a,b))):g(e._snErr("id")):g(new d.errors.NER(a))}).then(function(e){return e?d.find(a,b,c):e})},refreshAll:function(a,b,c){var d=this,e=d.utils,f=d.definitions[a];return b=b||{},new e.Promise(function(g,h){f?e._o(b)?(c=e._(f,c),c.bypassCache=!0,g(d.filter(a,b,c))):h(e._oErr("params")):h(new d.errors.NER(a))}).then(function(g){return c.bypassCache=!0,d.findAll(a,b,c).then(function(a){return e.forEach(g,function(b){-1===a.indexOf(b)&&f.eject(b)}),a})})},save:c(39),update:c(40),updateAll:c(41)}},function(a,b,c){!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(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,c){function d(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=d},function(a,b,c){function d(a,b){return-1!==e(a,b)}var e=c(21);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(21);a.exports=d},function(a,b,c){function d(a,b){if(null==a)return[];if(a.length<2)return a;null==b&&(b=e);var c,g,h;return c=~~(a.length/2),g=d(a.slice(0,c),b),h=d(a.slice(c,a.length),b),f(g,h,b)}function e(a,b){return b>a?-1:a>b?1:0}function f(a,b,c){for(var d=[];a.length&&b.length;)d.push(c(a[0],b[0])<=0?a.shift():b.shift());return a.length&&d.push.apply(d,a),b.length&&d.push.apply(d,b),d}a.exports=d},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(22),f=c(23);a.exports=d},function(a,b,c){function d(a,b){for(var c,d=0,g=arguments.length;++dc?d+c:c;d>e;){if(a[e]===b)return e;e++}return-1}a.exports=d},function(a,b,c){function d(a,b){return Object.prototype.hasOwnProperty.call(a,b)}a.exports=d},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(22);a.exports=e},function(a,b,c){function d(a){return!!a&&"object"==typeof a&&a.constructor===Object}a.exports=d},function(a,b,c){function d(a){switch(typeof a){case"string":case"number":case"boolean":return!0}return null==a}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(8);a.exports=d},function(module,exports,__webpack_require__){var _utils=__webpack_require__(2),_errors=__webpack_require__(3),instanceMethods=["compute","eject","refresh","save","update","destroy","loadRelations","changeHistory","changes","hasChanges","lastModified","lastSaved","previous","revert"];module.exports=function defineResource(definition){function Resource(a){this.defaultValues={},this.methods={},this.computed={},_utils["default"].deepMixIn(this,a);var b=_this.defaults;definition["extends"]&&definitions[definition["extends"]]&&(b=definitions[definition["extends"]]),_utils["default"].fillIn(this.defaultValues,b.defaultValues),_utils["default"].fillIn(this.methods,b.methods),_utils["default"].fillIn(this.computed,b.computed),this.endpoint="endpoint"in a?a.endpoint:this.name}var _this=this,definitions=_this.definitions;if(_utils["default"]._s(definition)&&(definition={name:definition.replace(/\s/gi,"")}),!_utils["default"]._o(definition))throw _utils["default"]._oErr("definition");if(!_utils["default"]._s(definition.name))throw new _errors["default"].IA('"name" must be a string!');if(definitions[definition.name])throw new _errors["default"].R(definition.name+" is already registered!");try{var def,_class,_ret=function(){if(definition["extends"]&&definitions[definition["extends"]]?Resource.prototype=definitions[definition["extends"]]:Resource.prototype=_this.defaults,definitions[definition.name]=new Resource(definition),def=definitions[definition.name],def.getResource=function(a){return _this.definitions[a]},!_utils["default"]._s(def.idAttribute))throw new _errors["default"].IA('"idAttribute" must be a string!'); -try{var def,_class,_ret=function(){if(definition["extends"]&&definitions[definition["extends"]]?Resource.prototype=definitions[definition["extends"]]:Resource.prototype=_this.defaults,definitions[definition.name]=new Resource(definition),def=definitions[definition.name],def.getResource=function(a){return _this.defs[a]},!_utils["default"]._s(def.idAttribute))throw new _errors["default"].IA('"idAttribute" must be a string!');def.relations&&(def.relationList=[],def.relationFields=[],_utils["default"].forOwn(def.relations,function(a,b){_utils["default"].forOwn(a,function(c,d){_utils["default"]._a(c)||(a[d]=[c]),_utils["default"].forEach(a[d],function(a){a.type=b,a.relation=d,a.name=def.name,def.relationList.push(a),a.localField&&def.relationFields.push(a.localField)})})}),def.relations.belongsTo&&_utils["default"].forOwn(def.relations.belongsTo,function(a,b){_utils["default"].forEach(a,function(a){a.parent&&(def.parent=b,def.parentKey=a.localKey,def.parentField=a.localField)})}),"function"==typeof Object.freeze&&(Object.freeze(def.relations),Object.freeze(def.relationList))),_class=def["class"]=_utils["default"].pascalCase(def.name);try{"function"==typeof def.useClass?(eval("function "+_class+"() { def.useClass.call(this); }"),def[_class]=eval(_class),def[_class].prototype=function(a){function b(){}return b.prototype=a,new b}(def.useClass.prototype)):(eval("function "+_class+"() {}"),def[_class]=eval(_class))}catch(e){def[_class]=function(){}}_utils["default"].forOwn(def.methods,function(a,b){def[_class].prototype[b]=a}),def[_class].prototype.set=function(a,b){var c=this;return _utils["default"].set(this,a,b),def.compute(this),def.instanceEvents&&setTimeout(function(){c.emit("DS.change",def,c)},0),def.handleChange(this),this},def[_class].prototype.get=function(a){return _utils["default"].get(this,a)},def.instanceEvents&&_utils["default"].Events(def[_class].prototype),_utils["default"].applyRelationGettersToTarget(_this,def,def[_class].prototype);var parentOmit=null;def.hasOwnProperty("omit")?parentOmit=_this.defaults.omit:(parentOmit=def.omit,def.omit=[]),def.omit=def.omit.concat(parentOmit||[]),_utils["default"].forOwn(def.computed,function(a,b){_utils["default"].isFunction(a)&&(def.computed[b]=[a],a=def.computed[b]),def.methods&&b in def.methods&&def.errorFn('Computed property "'+b+'" conflicts with previously defined prototype method!'),def.omit.push(b);var c;if(1===a.length){var d=a[0].toString().match(/function.*?\(([\s\S]*?)\)/);c=d[1].split(","),def.computed[b]=c.concat(a),a=def.computed[b],c.length&&def.errorFn("Use the computed property array syntax for compatibility with minified code!")}c=a.slice(0,a.length-1),_utils["default"].forEach(c,function(a,b){c[b]=a.trim()}),a.deps=_utils["default"].filter(c,function(a){return!!a})}),_utils["default"].forEach(instanceMethods,function(a){def[_class].prototype["DS"+_utils["default"].pascalCase(a)]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return c.unshift(this[def.idAttribute]||this),c.unshift(def.name),_this[a].apply(_this,c)}}),def[_class].prototype.DSCreate=function(){for(var a=arguments.length,b=Array(a),c=0;a>c;c++)b[c]=arguments[c];return b.unshift(this),b.unshift(def.name),_this.create.apply(_this,b)},_this.s[def.name]={collection:[],expiresHeap:new _utils["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 resource=_this.s[def.name];def.reapInterval&&setInterval(function(){return def.reap()},def.reapInterval);var fns=["registerAdapter","getAdapterName","getAdapter","is","!clear"];for(var key in _this)"function"==typeof _this[key]&&fns.push(key);_utils["default"].forEach(fns,function(a){var b=a;"!"!==b[0]&&(_this[b].shorthand!==!1?(def[b]=function(){for(var a=arguments.length,c=Array(a),d=0;a>d;d++)c[d]=arguments[d];return c.unshift(def.name),_this[b].apply(_this,c)},def[b].before=function(a){var c=def[b];def[b]=function(){for(var b=arguments.length,d=Array(b),e=0;b>e;e++)d[e]=arguments[e];return c.apply(def,a.apply(def,d)||d)}}):def[b]=function(){for(var a=arguments.length,c=Array(a),d=0;a>d;d++)c[d]=arguments[d];return _this[b].apply(_this,c)})}),def.beforeValidate=_utils["default"].promisify(def.beforeValidate),def.validate=_utils["default"].promisify(def.validate),def.afterValidate=_utils["default"].promisify(def.afterValidate),def.beforeCreate=_utils["default"].promisify(def.beforeCreate),def.afterCreate=_utils["default"].promisify(def.afterCreate),def.beforeUpdate=_utils["default"].promisify(def.beforeUpdate),def.afterUpdate=_utils["default"].promisify(def.afterUpdate),def.beforeDestroy=_utils["default"].promisify(def.beforeDestroy),def.afterDestroy=_utils["default"].promisify(def.afterDestroy);var defaultAdapter=void 0;return def.hasOwnProperty("defaultAdapter")&&(defaultAdapter=def.defaultAdapter),_utils["default"].forOwn(def.actions,function(a,b){if(def[b]&&!def.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 _utils["default"].Promise.reject(a)},def[b]=function(c,d){_utils["default"]._o(c)&&(d=c),d=d||{};var e=def.getAdapter(a.adapter||defaultAdapter||"http"),f=_utils["default"].deepMixIn({},a);if(!d.hasOwnProperty("endpoint")&&f.endpoint&&(d.endpoint=f.endpoint),"function"==typeof d.getEndpoint)f.url=d.getEndpoint(def,d);else{var g=[d.basePath||e.defaults.basePath||def.basePath,e.getEndpoint(def,_utils["default"]._sn(c)?c:null,d)];_utils["default"]._sn(c)&&g.push(c),g.push(a.pathname||b),f.url=_utils["default"].makePath.apply(null,g)}return f.method=f.method||"GET",_utils["default"].deepMixIn(f,d),new _utils["default"].Promise(function(a){return a(f)}).then(d.request||a.request).then(function(a){return e.HTTP(a)}).then(d.response||a.response,d.responseError||a.responseError)}}),_utils["default"].Events(def),def.handleChange=function(a){resource.collectionModified=_utils["default"].updateTimestamp(resource.collectionModified),def.notify&&setTimeout(function(){def.emit("DS.change",def,a)},0)},{v:def}}();if("object"==typeof _ret)return _ret.v}catch(err){throw _this.defaults.errorFn(err),delete definitions[definition.name],delete _this.s[definition.name],err}}},function(a,b,c){a.exports=function(a,b,c){var d=this,e=d.utils,f=d.defs[a],g=d.s[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-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(42);a.exports=d},function(a,b,c){function d(a){return a=e(a),a.replace(f,"")}var e=c(42),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.toLowerCase()}var e=c(42);a.exports=d}])}); +def.relations&&(def.relationList=[],def.relationFields=[],_utils["default"].forOwn(def.relations,function(a,b){_utils["default"].forOwn(a,function(c,d){_utils["default"]._a(c)||(a[d]=[c]),_utils["default"].forEach(a[d],function(a){a.type=b,a.relation=d,a.name=def.name,def.relationList.push(a),a.localField&&def.relationFields.push(a.localField)})})}),def.relations.belongsTo&&_utils["default"].forOwn(def.relations.belongsTo,function(a,b){_utils["default"].forEach(a,function(a){a.parent&&(def.parent=b,def.parentKey=a.localKey,def.parentField=a.localField)})}),"function"==typeof Object.freeze&&(Object.freeze(def.relations),Object.freeze(def.relationList))),_class=def["class"]=_utils["default"].pascalCase(def.name);try{"function"==typeof def.useClass?(eval("function "+_class+"() { def.useClass.call(this); }"),def[_class]=eval(_class),def[_class].prototype=function(a){function b(){}return b.prototype=a,new b}(def.useClass.prototype)):(eval("function "+_class+"() {}"),def[_class]=eval(_class))}catch(e){def[_class]=function(){}}_utils["default"].forOwn(def.methods,function(a,b){def[_class].prototype[b]=a}),def[_class].prototype.set=function(a,b){var c=this;return _utils["default"].set(this,a,b),def.compute(this),def.instanceEvents&&setTimeout(function(){c.emit("DS.change",def,c)},0),def.handleChange(this),this},def[_class].prototype.get=function(a){return _utils["default"].get(this,a)},def.instanceEvents&&_utils["default"].Events(def[_class].prototype),_utils["default"].applyRelationGettersToTarget(_this,def,def[_class].prototype);var parentOmit=null;def.hasOwnProperty("omit")?parentOmit=_this.defaults.omit:(parentOmit=def.omit,def.omit=[]),def.omit=def.omit.concat(parentOmit||[]),_utils["default"].forOwn(def.computed,function(a,b){_utils["default"].isFunction(a)&&(def.computed[b]=[a],a=def.computed[b]),def.methods&&b in def.methods&&def.errorFn('Computed property "'+b+'" conflicts with previously defined prototype method!'),def.omit.push(b);var c;if(1===a.length){var d=a[0].toString().match(/function.*?\(([\s\S]*?)\)/);c=d[1].split(","),def.computed[b]=c.concat(a),a=def.computed[b],c.length&&def.errorFn("Use the computed property array syntax for compatibility with minified code!")}c=a.slice(0,a.length-1),_utils["default"].forEach(c,function(a,b){c[b]=a.trim()}),a.deps=_utils["default"].filter(c,function(a){return!!a})}),_utils["default"].forEach(instanceMethods,function(a){def[_class].prototype["DS"+_utils["default"].pascalCase(a)]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return c.unshift(this[def.idAttribute]||this),c.unshift(def.name),_this[a].apply(_this,c)}}),def[_class].prototype.DSCreate=function(){for(var a=arguments.length,b=Array(a),c=0;a>c;c++)b[c]=arguments[c];return b.unshift(this),b.unshift(def.name),_this.create.apply(_this,b)},_this.store[def.name]={collection:[],expiresHeap:new _utils["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 resource=_this.store[def.name];def.reapInterval&&setInterval(function(){return def.reap()},def.reapInterval);var fns=["registerAdapter","getAdapterName","getAdapter","is","!clear"];for(var key in _this)"function"==typeof _this[key]&&fns.push(key);_utils["default"].forEach(fns,function(a){var b=a;"!"!==b[0]&&(_this[b].shorthand!==!1?(def[b]=function(){for(var a=arguments.length,c=Array(a),d=0;a>d;d++)c[d]=arguments[d];return c.unshift(def.name),_this[b].apply(_this,c)},def[b].before=function(a){var c=def[b];def[b]=function(){for(var b=arguments.length,d=Array(b),e=0;b>e;e++)d[e]=arguments[e];return c.apply(def,a.apply(def,d)||d)}}):def[b]=function(){for(var a=arguments.length,c=Array(a),d=0;a>d;d++)c[d]=arguments[d];return _this[b].apply(_this,c)})}),def.beforeValidate=_utils["default"].promisify(def.beforeValidate),def.validate=_utils["default"].promisify(def.validate),def.afterValidate=_utils["default"].promisify(def.afterValidate),def.beforeCreate=_utils["default"].promisify(def.beforeCreate),def.afterCreate=_utils["default"].promisify(def.afterCreate),def.beforeUpdate=_utils["default"].promisify(def.beforeUpdate),def.afterUpdate=_utils["default"].promisify(def.afterUpdate),def.beforeDestroy=_utils["default"].promisify(def.beforeDestroy),def.afterDestroy=_utils["default"].promisify(def.afterDestroy);var defaultAdapter=void 0;return def.hasOwnProperty("defaultAdapter")&&(defaultAdapter=def.defaultAdapter),_utils["default"].forOwn(def.actions,function(a,b){if(def[b]&&!def.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 _utils["default"].Promise.reject(a)},def[b]=function(c,d){_utils["default"]._o(c)&&(d=c),d=d||{};var e=def.getAdapter(a.adapter||defaultAdapter||"http"),f=_utils["default"].deepMixIn({},a);if(!d.hasOwnProperty("endpoint")&&f.endpoint&&(d.endpoint=f.endpoint),"function"==typeof d.getEndpoint)f.url=d.getEndpoint(def,d);else{var g=[d.basePath||e.defaults.basePath||def.basePath,e.getEndpoint(def,_utils["default"]._sn(c)?c:null,d)];_utils["default"]._sn(c)&&g.push(c),g.push(a.pathname||b),f.url=_utils["default"].makePath.apply(null,g)}return f.method=f.method||"GET",_utils["default"].deepMixIn(f,d),new _utils["default"].Promise(function(a){return a(f)}).then(d.request||a.request).then(function(a){return e.HTTP(a)}).then(d.response||a.response,d.responseError||a.responseError)}}),_utils["default"].Events(def),def.handleChange=function(a){resource.collectionModified=_utils["default"].updateTimestamp(resource.collectionModified),def.notify&&setTimeout(function(){def.emit("DS.change",def,a)},0)},{v:def}}();if("object"==typeof _ret)return _ret.v}catch(err){throw _this.defaults.errorFn(err),delete definitions[definition.name],delete _this.store[definition.name],err}}},function(a,b,c){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-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(42);a.exports=d},function(a,b,c){function d(a){return a=e(a),a.replace(f,"")}var e=c(42),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.toLowerCase()}var e=c(42);a.exports=d}])}); //# sourceMappingURL=js-data.min.map \ No newline at end of file diff --git a/dist/js-data.min.map b/dist/js-data.min.map index 675d8741..b6960f25 100644 --- a/dist/js-data.min.map +++ b/dist/js-data.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data.min.js","sources":["js-data.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_datastoreIndex","_utils","_errors","DS","DSUtils","DSErrors","createStore","options","version","full","major","parseInt","minor","patch","alpha","beta","_classCallCheck","instance","Constructor","TypeError","lifecycleNoopCb","resource","attrs","cb","lifecycleNoop","compare","_x","_x2","_x3","_x4","_again","_function","orderBy","index","a","b","def","cA","cB","undefined","get","_s","upperCase","length","addMethods","target","obj","forOwn","v","k","before","fn","orig","_len","arguments","args","Array","_key","apply","_createClass","defineProperties","props","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","_sync_methodsIndex","_async_methodsIndex","Defaults","value","error","Error","err","name","defaultsPrototype","actions","afterCreate","afterCreateCollection","afterCreateInstance","afterDestroy","afterEject","afterInject","afterReap","afterUpdate","afterValidate","allowSimpleWhere","basePath","beforeCreate","beforeCreateCollection","beforeCreateInstance","beforeDestroy","beforeEject","beforeInject","beforeReap","beforeUpdate","beforeValidate","bypassCache","cacheResponse","w","clearEmptyQueries","computed","defaultAdapter","debug","defaultValues","eagerEject","eagerInject","endpoint","console","fallbackAdapters","findStrictCache","idAttribute","ignoredChanges","instanceEvents","keepChangeHistory","linkRelations","log","d","e","info","logFn","_this","maxAge","methods","notify","omit","onConflict","reapAction","reapInterval","relationsEnumerable","resetHistoryOnInject","returnMeta","strategy","upsert","useClass","useFilter","validate","defaultFilter","collection","resourceName","params","filtered","where","reserved","skip","offset","limit","sort","_o","==","isEmpty","filter","first","keep","clause","field","term","op","expr","isOr","val","substr","intersection","indexOf","contains","_a","forEach","IA","toJson","orderBy[i]","actual","expected","_n","slice","Math","min","store","s","definitions","defs","adapters","defaults","observe","concat","P","Promise","spread","then","arr","Events","errorIfNotExist","adapter","getAdapterName","Adapter","isFunction","definition","NER","_this2","ejected","ejectAll","completedQueries","queryData","dsPrototype","shorthand","getAdapter","registerAdapter","errors","utils","events","on","type","func","ctx","push","f","off","listeners","splice","emit","shift","BinaryHeap","deepMixIn","pascalCase","remove","pick","_keys","set","objectProto","toString","isArray","isRegExp","isString","isObject","isDate","isNumber","isStringOrNumber","isStringOrNumberErr","isObjectErr","isArrayErr","result","array1","array2","item","_length","array","thisObj","results","window","toPromisify","isBlacklisted","copy","source","destination","stackSource","stackDest","blacklist","hasOwnProperty","Date","getTime","RegExp","match","lastIndex","create","getPrototypeOf","equals","o1","o2","t1","t2","keySet","charAt","resolveId","idOrInstance","resolveItem","isValidString","join","items","separator","makePath","_len2","_key2","replace","_","parent","constructor","promisify","O","self","_sn","_snErr","_oErr","_aErr","compute","deps","dep","diffObjectFromOldObject","fillIn","fromJson","json","JSON","parse","keys","bl","toRemove","_len3","_key3","resolve","reject","promise","stringify","updateTimestamp","timestamp","newTimestamp","now","removeCircular","object","rmCirc","nu","Boolean","Number","String","cur","respond","response","meta","applyRelationGettersToTarget","relationList","relationName","relation","localField","localKey","foreignKey","localKeys","link","prop","getResource","getAll","_len4","_key4","_inherits","subClass","superClass","__proto__","_get","property","receiver","desc","getter","Function","getOwnPropertyDescriptor","IllegalArgumentError","_Error","message","captureStackTrace","RuntimeError","_Error2","NonexistentResourceError","_Error3","R","diffIsEmpty","diff","added","removed","changed","check","fnName","fakeId","_resourceName","_id","_options","changes","_check$call","_ret","observers","deliver","relationFields","previousAttributes","changeset","toKeep","changeHistory","_check$call2","changeHistories","errorFn","createInstance","createCollection","fetch","__this","findAll","data","unshift","$$injected","defineResource","digest","Platform","performMicrotaskCheckpoint","eject","_check$call3","ids","hasChanges","_check$call4","inject","lastModified","_check$call5","modified","collectionModified","lastSaved","_check$call6","saved","previous","_check$call7","revert","_check$call8","destroy","destroyAll","find","loadRelations","reap","refresh","refreshAll","existing","found","save","update","updateAll","global","detectObjectObserve","callback","recs","records","test","deliverChangeRecords","unobserve","dirtyCheck","observer","cycles","MAX_DIRTY_CHECK_CYCLES","check_","testingExposeCycleCount","dirtyCheckCycleCount","objectIsEmpty","matches","oldObject","newValue","runEOMTasks","eomTasks","newObservedObject","state_","OPENED","discardRecords","open","obs","arrayObserve","discard","close","observedObjectCache","getObservedObject","dir","pop","Observer","UNOPENED","callback_","target_","directObserver_","value_","id_","nextObserverId","addToAll","_allObserversCount","collectObservers","allObservers","removeFromAll","ObjectObserver","oldObject_","diffObjectFromChangeRecords","changeRecords","oldValues","record","expectedRecordTypes","oldValue","hasObserve","createObject","proto","newObject","getOwnPropertyNames","runEOM","CLOSED","connect_","disconnect_","report_","ex","_errorThrownDuringCallback","stack","discardChanges","runningMicrotaskCheckpoint","anyChanged","toCheck","clearObservers","copyObject","skipChanges","observerSentinel","add","delete","runEOM_","observerSentinel_","hasObjectObserve","bubbleUp","heap","weightFunc","n","element","weight","parentN","floor","_parent","bubbleDown","node","nodeWeight","child2N","child1N","swap","child1","child1Weight","child2","child2Weight","compareFunc","x","y","front","end","len","start","max","idx","mergeSort","compareFn","defaultCompare","mid","left","right","merge","forIn","hasOwn","objects","copyProp","isPlainObject","var_keys","out","parts","split","last","exec","namespace","str","camelCase","toUpperCase","fromIndex","checkDontEnum","_dontEnums","_hasDontEnumBug","ctor","isProto","isPrimitive","path","instanceMethods","Resource","_class","relations","relatedModels","belongsTo","relatedModel","modelName","parentKey","parentField","freeze","eval","Ctor","setTimeout","handleChange","parentOmit","trim","DSCreate","expiresHeap","expires","pendingQueries","setInterval","fns","_len5","_key5","action","request","config","responseError","getEndpoint","url","pathname","method","r","HTTP","queryHash","changeRecord","makeObserverHandler","oldValueFn","firstTime","innerId","_inject","injected","_react","idA","relationDef","toInject","toInjectItem","injectedItem","_injected","initialLastModified","MAX_VALUE","rejectionError","created","toEject","findStrategy","makeFallbackCall","findFallbackAdapters","processResults","date","findAllStrategy","findAllFallbackAdapters","_defineProperty","tasks","__options","task","in","hasOnes","all","expiredItem","peek","_ret2","noChanges","changesOnly","origOptions","instances","replaceAccents","removeNonWord","lowerCase","search","PATTERN","toLowerCase"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js-data.min.js","sources":["js-data.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_datastoreIndex","_utils","_errors","DS","DSUtils","DSErrors","createStore","options","version","full","major","parseInt","minor","patch","alpha","beta","_classCallCheck","instance","Constructor","TypeError","lifecycleNoopCb","resource","attrs","cb","lifecycleNoop","compare","_x","_x2","_x3","_x4","_again","_function","orderBy","index","a","b","def","cA","cB","undefined","get","_s","upperCase","length","addMethods","target","obj","forOwn","v","k","before","fn","orig","_len","arguments","args","Array","_key","apply","_createClass","defineProperties","props","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","_sync_methodsIndex","_async_methodsIndex","Defaults","value","error","Error","err","name","defaultsPrototype","actions","afterCreate","afterCreateCollection","afterCreateInstance","afterDestroy","afterEject","afterInject","afterReap","afterUpdate","afterValidate","allowSimpleWhere","basePath","beforeCreate","beforeCreateCollection","beforeCreateInstance","beforeDestroy","beforeEject","beforeInject","beforeReap","beforeUpdate","beforeValidate","bypassCache","cacheResponse","w","clearEmptyQueries","computed","defaultAdapter","debug","defaultValues","eagerEject","eagerInject","endpoint","console","fallbackAdapters","findStrictCache","idAttribute","ignoredChanges","instanceEvents","keepChangeHistory","linkRelations","log","d","e","info","logFn","_this","maxAge","methods","notify","omit","onConflict","reapAction","reapInterval","relationsEnumerable","resetHistoryOnInject","returnMeta","strategy","upsert","useClass","useFilter","validate","defaultFilter","collection","resourceName","params","filtered","where","reserved","skip","offset","limit","sort","_o","==","isEmpty","filter","first","keep","clause","field","term","op","expr","isOr","val","substr","intersection","indexOf","contains","_a","forEach","IA","toJson","orderBy[i]","actual","expected","_n","slice","Math","min","store","definitions","adapters","defaults","observe","concat","P","Promise","spread","then","arr","Events","errorIfNotExist","adapter","getAdapterName","Adapter","isFunction","definition","NER","_this2","ejected","ejectAll","completedQueries","queryData","dsPrototype","shorthand","getAdapter","registerAdapter","errors","utils","events","on","type","func","ctx","push","f","off","listeners","splice","emit","shift","BinaryHeap","deepMixIn","pascalCase","remove","pick","_keys","set","objectProto","toString","isArray","isRegExp","isString","isObject","isDate","isNumber","isStringOrNumber","isStringOrNumberErr","isObjectErr","isArrayErr","result","array1","array2","item","_length","array","thisObj","results","window","toPromisify","isBlacklisted","copy","source","destination","stackSource","stackDest","blacklist","hasOwnProperty","Date","getTime","RegExp","match","lastIndex","create","getPrototypeOf","equals","o1","o2","t1","t2","keySet","charAt","resolveId","idOrInstance","resolveItem","isValidString","join","items","separator","makePath","_len2","_key2","replace","_","parent","constructor","promisify","O","self","_sn","_snErr","_oErr","_aErr","compute","deps","dep","diffObjectFromOldObject","fillIn","fromJson","json","JSON","parse","keys","bl","toRemove","_len3","_key3","resolve","reject","promise","stringify","updateTimestamp","timestamp","newTimestamp","now","removeCircular","object","rmCirc","nu","Boolean","Number","String","cur","respond","response","meta","applyRelationGettersToTarget","relationList","relationName","relation","localField","localKey","foreignKey","localKeys","link","prop","getResource","getAll","_len4","_key4","_inherits","subClass","superClass","__proto__","_get","property","receiver","desc","getter","Function","getOwnPropertyDescriptor","IllegalArgumentError","_Error","message","captureStackTrace","RuntimeError","_Error2","NonexistentResourceError","_Error3","R","diffIsEmpty","diff","added","removed","changed","check","fnName","fakeId","_resourceName","_id","_options","changes","_check$call","_ret","observers","deliver","relationFields","previousAttributes","changeset","toKeep","changeHistory","_check$call2","changeHistories","errorFn","createInstance","createCollection","fetch","__this","findAll","data","unshift","$$injected","defineResource","digest","Platform","performMicrotaskCheckpoint","eject","_check$call3","ids","hasChanges","_check$call4","inject","lastModified","_check$call5","modified","collectionModified","lastSaved","_check$call6","saved","previous","_check$call7","revert","_check$call8","destroy","destroyAll","find","loadRelations","reap","refresh","refreshAll","existing","found","save","update","updateAll","global","detectObjectObserve","callback","recs","records","test","deliverChangeRecords","unobserve","dirtyCheck","observer","cycles","MAX_DIRTY_CHECK_CYCLES","check_","testingExposeCycleCount","dirtyCheckCycleCount","objectIsEmpty","matches","oldObject","newValue","runEOMTasks","eomTasks","newObservedObject","state_","OPENED","discardRecords","open","obs","arrayObserve","discard","close","observedObjectCache","getObservedObject","dir","pop","Observer","UNOPENED","callback_","target_","directObserver_","value_","id_","nextObserverId","addToAll","_allObserversCount","collectObservers","allObservers","removeFromAll","ObjectObserver","oldObject_","diffObjectFromChangeRecords","changeRecords","oldValues","record","expectedRecordTypes","oldValue","hasObserve","createObject","proto","newObject","getOwnPropertyNames","runEOM","CLOSED","connect_","disconnect_","report_","ex","_errorThrownDuringCallback","stack","discardChanges","runningMicrotaskCheckpoint","anyChanged","toCheck","clearObservers","copyObject","skipChanges","observerSentinel","add","delete","runEOM_","observerSentinel_","hasObjectObserve","bubbleUp","heap","weightFunc","n","element","weight","parentN","floor","_parent","compareFunc","x","y","bubbleDown","node","nodeWeight","child2N","child1N","swap","child1","child1Weight","child2","child2Weight","BHProto","peek","front","end","removeAll","size","len","start","max","idx","mergeSort","compareFn","defaultCompare","mid","left","right","merge","forIn","hasOwn","objects","copyProp","isPlainObject","var_keys","out","parts","split","last","exec","namespace","str","camelCase","toUpperCase","fromIndex","checkDontEnum","_dontEnums","_hasDontEnumBug","ctor","isProto","isPrimitive","path","instanceMethods","Resource","_class","relations","relatedModels","defs","belongsTo","relatedModel","modelName","parentKey","parentField","freeze","eval","Ctor","setTimeout","handleChange","parentOmit","trim","DSCreate","expiresHeap","expires","pendingQueries","setInterval","fns","_len5","_key5","action","request","config","responseError","getEndpoint","url","pathname","method","r","HTTP","queryHash","changeRecord","makeObserverHandler","oldValueFn","firstTime","innerId","_inject","injected","_react","idA","relationDef","toInject","toInjectItem","injectedItem","_injected","initialLastModified","MAX_VALUE","rejectionError","created","toEject","findStrategy","makeFallbackCall","findFallbackAdapters","processResults","date","findAllStrategy","findAllFallbackAdapters","_defineProperty","tasks","__options","task","in","hasOnes","all","expiredItem","_ret2","noChanges","changesOnly","origOptions","instances","replaceAccents","removeNonWord","lowerCase","search","PATTERN","toLowerCase"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index f87c009f..728f35a2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data", "description": "Robust, framework-agnostic in-memory data store.", - "version": "2.2.2", + "version": "2.2.3", "homepage": "http://www.js-data.io", "repository": { "type": "git", @@ -33,21 +33,21 @@ "localstorage" ], "devDependencies": { - "babel-core": "5.6.15", - "babel-loader": "5.3.1", + "babel-core": "5.8.3", + "babel-loader": "5.3.2", "es6-promise": "2.3.0", "grunt": "0.4.5", "grunt-contrib-clean": "0.6.0", "grunt-contrib-uglify": "0.9.1", "grunt-contrib-watch": "0.6.1", - "grunt-karma": "0.11.2", + "grunt-karma": "0.12.0", "grunt-karma-coveralls": "2.5.3", "grunt-mocha-test": "0.12.7", "grunt-webpack": "1.0.11", "jit-grunt": "0.9.1", "jshint": "2.8.0", "jshint-loader": "0.8.3", - "karma": "0.12.37", + "karma": "0.13.3", "karma-chai": "0.1.0", "karma-chrome-launcher": "0.2.0", "karma-coverage": "0.4.2", @@ -56,7 +56,7 @@ "karma-phantomjs-launcher": "0.2.0", "karma-script-launcher": "0.1.0", "karma-sinon": "1.0.4", - "karma-spec-reporter": "0.0.19", + "karma-spec-reporter": "0.0.20", "sinon": "1.15.4", "time-grunt": "1.2.1", "webpack-dev-server": "1.10.1" @@ -65,7 +65,7 @@ "test": "grunt test" }, "dependencies": { - "yabh": "1.0.1", + "yabh": "1.1.0", "mout": "0.11.0" } } diff --git a/src/datastore/async_methods/create.js b/src/datastore/async_methods/create.js index c0b94640..cb3f8bf2 100644 --- a/src/datastore/async_methods/create.js +++ b/src/datastore/async_methods/create.js @@ -19,7 +19,7 @@ module.exports = function create(resourceName, attrs, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; let adapter; options = options || {}; @@ -68,7 +68,7 @@ module.exports = function create(resourceName, attrs, options) { let created = _this.inject(definition.name, attrs, options.orig()); let id = created[definition.idAttribute]; // mark item's `find` query as completed, so a subsequent `find` call for this item will resolve immediately - let resource = _this.s[resourceName]; + let resource = _this.store[resourceName]; resource.completedQueries[id] = new Date().getTime(); resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]); return created; diff --git a/src/datastore/async_methods/destroy.js b/src/datastore/async_methods/destroy.js index 3bb178fa..7a80865f 100644 --- a/src/datastore/async_methods/destroy.js +++ b/src/datastore/async_methods/destroy.js @@ -13,7 +13,7 @@ module.exports = function destroy(resourceName, id, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; let item; let adapter; diff --git a/src/datastore/async_methods/destroyAll.js b/src/datastore/async_methods/destroyAll.js index 6a5bd5ff..1679bd9a 100644 --- a/src/datastore/async_methods/destroyAll.js +++ b/src/datastore/async_methods/destroyAll.js @@ -13,7 +13,7 @@ module.exports = function destroyAll(resourceName, params, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; let ejected, toEject, adapter; params = params || {}; diff --git a/src/datastore/async_methods/find.js b/src/datastore/async_methods/find.js index 9a0c164e..fa07a02a 100644 --- a/src/datastore/async_methods/find.js +++ b/src/datastore/async_methods/find.js @@ -18,8 +18,8 @@ module.exports = function find(resourceName, id, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; - let resource = _this.s[resourceName]; + let definition = _this.definitions[resourceName]; + let resource = _this.store[resourceName]; let adapter; return new DSUtils.Promise((resolve, reject) => { diff --git a/src/datastore/async_methods/findAll.js b/src/datastore/async_methods/findAll.js index af6828da..4eb88353 100644 --- a/src/datastore/async_methods/findAll.js +++ b/src/datastore/async_methods/findAll.js @@ -2,9 +2,9 @@ function processResults(data, resourceName, queryHash, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; - let resource = _this.s[resourceName]; - let idAttribute = _this.defs[resourceName].idAttribute; + let definition = _this.definitions[resourceName]; + let resource = _this.store[resourceName]; + let idAttribute = _this.definitions[resourceName].idAttribute; let date = new Date().getTime(); data = data || []; @@ -48,14 +48,14 @@ function processResults(data, resourceName, queryHash, options) { module.exports = function findAll(resourceName, params, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; - let resource = _this.s[resourceName]; + let definition = _this.definitions[resourceName]; + let resource = _this.store[resourceName]; let queryHash, adapter; return new DSUtils.Promise((resolve, reject) => { params = params || {}; - if (!_this.defs[resourceName]) { + if (!_this.definitions[resourceName]) { reject(new _this.errors.NER(resourceName)); } else if (!DSUtils._o(params)) { reject(DSUtils._oErr('params')); diff --git a/src/datastore/async_methods/index.js b/src/datastore/async_methods/index.js index b844349f..eab9ecfe 100644 --- a/src/datastore/async_methods/index.js +++ b/src/datastore/async_methods/index.js @@ -11,8 +11,8 @@ export default { let DSUtils = _this.utils; return new DSUtils.Promise((resolve, reject) => { - let definition = _this.defs[resourceName]; - id = DSUtils.resolveId(_this.defs[resourceName], id); + let definition = _this.definitions[resourceName]; + id = DSUtils.resolveId(_this.definitions[resourceName], id); if (!definition) { reject(new _this.errors.NER(resourceName)); } else if (!DSUtils._sn(id)) { @@ -28,7 +28,7 @@ export default { refreshAll(resourceName, params, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; params = params || {}; return new DSUtils.Promise((resolve, reject) => { diff --git a/src/datastore/async_methods/loadRelations.js b/src/datastore/async_methods/loadRelations.js index 0fd6aee8..10dba3bd 100644 --- a/src/datastore/async_methods/loadRelations.js +++ b/src/datastore/async_methods/loadRelations.js @@ -10,7 +10,7 @@ module.exports = function loadRelations(resourceName, instance, relations, options) { let _this = this; let {utils: DSUtils, errors: DSErrors} = _this; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; return new DSUtils.Promise((resolve, reject) => { if (DSUtils._sn(instance)) { diff --git a/src/datastore/async_methods/reap.js b/src/datastore/async_methods/reap.js index 48e7a4c7..7356bfe8 100644 --- a/src/datastore/async_methods/reap.js +++ b/src/datastore/async_methods/reap.js @@ -8,8 +8,8 @@ module.exports = function reap(resourceName, options) { let _this = this; var DSUtils = _this.utils; - let definition = _this.defs[resourceName]; - let resource = _this.s[resourceName]; + let definition = _this.definitions[resourceName]; + let resource = _this.store[resourceName]; return new DSUtils.Promise((resolve, reject) => { diff --git a/src/datastore/async_methods/save.js b/src/datastore/async_methods/save.js index 4eeeb82c..d370e6ec 100644 --- a/src/datastore/async_methods/save.js +++ b/src/datastore/async_methods/save.js @@ -9,8 +9,8 @@ module.exports = function save(resourceName, id, options) { let _this = this; let {utils: DSUtils, errors: DSErrors} = _this; - let definition = _this.defs[resourceName]; - let resource = _this.s[resourceName]; + let definition = _this.definitions[resourceName]; + let resource = _this.store[resourceName]; let item, noChanges, adapter; return new DSUtils.Promise((resolve, reject) => { diff --git a/src/datastore/async_methods/update.js b/src/datastore/async_methods/update.js index 6de4769f..9c5c5fe1 100644 --- a/src/datastore/async_methods/update.js +++ b/src/datastore/async_methods/update.js @@ -10,7 +10,7 @@ module.exports = function update(resourceName, id, attrs, options) { let _this = this; let {utils: DSUtils, errors: DSErrors} = _this; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; let adapter; return new DSUtils.Promise((resolve, reject) => { @@ -45,7 +45,7 @@ module.exports = function update(resourceName, id, attrs, options) { if (options.cacheResponse) { // inject the updated item into the store let injected = definition.inject(attrs, options.orig()); - let resource = _this.s[resourceName]; + let resource = _this.store[resourceName]; let id = injected[definition.idAttribute]; // mark the item as "saved" resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]); diff --git a/src/datastore/async_methods/updateAll.js b/src/datastore/async_methods/updateAll.js index 6006110b..b135c121 100644 --- a/src/datastore/async_methods/updateAll.js +++ b/src/datastore/async_methods/updateAll.js @@ -10,7 +10,7 @@ module.exports = function updateAll(resourceName, attrs, params, options) { let _this = this; let {utils: DSUtils, errors: DSErrors} = _this; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; let adapter; return new DSUtils.Promise((resolve, reject) => { @@ -43,7 +43,7 @@ module.exports = function updateAll(resourceName, attrs, params, options) { if (options.cacheResponse) { // inject the updated items into the store let injected = definition.inject(data, origOptions); - let resource = _this.s[resourceName]; + let resource = _this.store[resourceName]; // mark the items as "saved" DSUtils.forEach(injected, i => { let id = i[definition.idAttribute]; diff --git a/src/datastore/index.js b/src/datastore/index.js index 775708a7..760b26b5 100644 --- a/src/datastore/index.js +++ b/src/datastore/index.js @@ -309,11 +309,7 @@ class DS { options = options || {}; _this.store = {}; - // alias store, shaves 0.1 kb off the minified build - _this.s = _this.store; _this.definitions = {}; - // alias definitions, shaves 0.3 kb off the minified build - _this.defs = _this.definitions; _this.adapters = {}; _this.defaults = new Defaults(); _this.observe = DSUtils.observe; @@ -380,7 +376,7 @@ class DS { } is(resourceName, instance) { - let definition = this.defs[resourceName]; + let definition = this.definitions[resourceName]; if (!definition) { throw new DSErrors.NER(resourceName); } diff --git a/src/datastore/sync_methods/defineResource.js b/src/datastore/sync_methods/defineResource.js index 9923fd6c..b061c708 100644 --- a/src/datastore/sync_methods/defineResource.js +++ b/src/datastore/sync_methods/defineResource.js @@ -32,7 +32,7 @@ let instanceMethods = [ module.exports = function defineResource(definition) { let _this = this; - let definitions = _this.defs; + let definitions = _this.definitions; /** * This allows the name-only definition shorthand. @@ -84,7 +84,7 @@ module.exports = function defineResource(definition) { var def = definitions[definition.name]; - def.getResource = resourceName => _this.defs[resourceName]; + def.getResource = resourceName => _this.definitions[resourceName]; def.logFn('Preparing resource.'); @@ -242,7 +242,7 @@ module.exports = function defineResource(definition) { }; // Initialize store data for the new resource - _this.s[def.name] = { + _this.store[def.name] = { collection: [], expiresHeap: new DSUtils.BinaryHeap(x => x.expires, (x, y) => x.item === y), completedQueries: {}, @@ -258,7 +258,7 @@ module.exports = function defineResource(definition) { collectionModified: 0 }; - let resource = _this.s[def.name]; + let resource = _this.store[def.name]; // start the reaping if (def.reapInterval) { @@ -373,7 +373,7 @@ module.exports = function defineResource(definition) { } catch (err) { _this.defaults.errorFn(err); delete definitions[definition.name]; - delete _this.s[definition.name]; + delete _this.store[definition.name]; throw err; } }; diff --git a/src/datastore/sync_methods/eject.js b/src/datastore/sync_methods/eject.js index 3b35e1ff..4af2f515 100644 --- a/src/datastore/sync_methods/eject.js +++ b/src/datastore/sync_methods/eject.js @@ -11,8 +11,8 @@ module.exports = function eject(resourceName, id, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; - let resource = _this.s[resourceName]; + let definition = _this.definitions[resourceName]; + let resource = _this.store[resourceName]; let item; let found = false; diff --git a/src/datastore/sync_methods/ejectAll.js b/src/datastore/sync_methods/ejectAll.js index cc4bacaf..56212772 100644 --- a/src/datastore/sync_methods/ejectAll.js +++ b/src/datastore/sync_methods/ejectAll.js @@ -9,7 +9,7 @@ module.exports = function ejectAll(resourceName, params, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; params = params || {}; if (!definition) { @@ -20,7 +20,7 @@ module.exports = function ejectAll(resourceName, params, options) { definition.logFn('ejectAll', params, options); - let resource = _this.s[resourceName]; + let resource = _this.store[resourceName]; let queryHash = DSUtils.toJson(params); // get items that match the criteria diff --git a/src/datastore/sync_methods/filter.js b/src/datastore/sync_methods/filter.js index 1b8decca..673318c9 100644 --- a/src/datastore/sync_methods/filter.js +++ b/src/datastore/sync_methods/filter.js @@ -11,7 +11,7 @@ module.exports = function filter(resourceName, params, options) { let _this = this; let DSUtils = _this.utils; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; if (!definition) { throw new _this.errors.NER(resourceName); @@ -25,5 +25,5 @@ module.exports = function filter(resourceName, params, options) { options.logFn('filter', params, options); // delegate filtering to DS#defaults.defaultFilter, which can be overridden by developers. - return definition.defaultFilter.call(_this, _this.s[resourceName].collection, resourceName, params, options); + return definition.defaultFilter.call(_this, _this.store[resourceName].collection, resourceName, params, options); }; diff --git a/src/datastore/sync_methods/index.js b/src/datastore/sync_methods/index.js index be1e540f..3d3bcdd0 100644 --- a/src/datastore/sync_methods/index.js +++ b/src/datastore/sync_methods/index.js @@ -12,7 +12,7 @@ function diffIsEmpty(diff) { function check(fnName, resourceName, id, options) { let _this = this; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; options = options || {}; id = DSUtils.resolveId(definition, id); @@ -46,7 +46,7 @@ export default { if (item) { if (DSUtils.w) { // force observation handler to be fired for item if there are changes and `Object.observe` is not available - _this.s[_resourceName].observers[_id].deliver(); + _this.store[_resourceName].observers[_id].deliver(); } let ignoredChanges = _options.ignoredChanges || []; @@ -57,7 +57,7 @@ export default { } }); // calculate changes - let diff = DSUtils.diffObjectFromOldObject(item, _this.s[_resourceName].previousAttributes[_id], DSUtils.equals, ignoredChanges); + let diff = DSUtils.diffObjectFromOldObject(item, _this.store[_resourceName].previousAttributes[_id], DSUtils.equals, ignoredChanges); // remove functions from diff DSUtils.forOwn(diff, (changeset, name) => { let toKeep = []; @@ -85,7 +85,7 @@ export default { // @returns The change history of the given item, if any. changeHistory(resourceName, id) { let {_this, definition, _resourceName, _id} = check.call(this, 'changeHistory', resourceName, id || fakeId); - let resource = _this.s[_resourceName]; + let resource = _this.store[_resourceName]; if (!definition.keepChangeHistory) { definition.errorFn('changeHistory is disabled for this resource!'); @@ -108,9 +108,9 @@ export default { // @returns The item whose computed properties were re-computed. compute(resourceName, instance) { let _this = this; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; - instance = DSUtils.resolveItem(_this.s[resourceName], instance); + instance = DSUtils.resolveItem(_this.store[resourceName], instance); if (!definition) { throw new NER(resourceName); } else if (!instance) { @@ -136,7 +136,7 @@ export default { // @param options.defaults Default values with which to initialize the instance. // @returns The new instance. createInstance(resourceName, attrs, options) { - let definition = this.defs[resourceName]; + let definition = this.definitions[resourceName]; let item; attrs = attrs || {}; @@ -184,7 +184,7 @@ export default { // @returns The new collection. createCollection(resourceName, arr, params, options) { let _this = this; - let definition = _this.defs[resourceName]; + let definition = _this.definitions[resourceName]; arr = arr || []; params = params || {}; @@ -219,7 +219,7 @@ export default { data.shift(); data.shift(); if (data.$$injected) { - _this.s[resourceName].queryData[DSUtils.toJson(__this.params)] = __this; + _this.store[resourceName].queryData[DSUtils.toJson(__this.params)] = __this; __this.$$injected = true; } return __this; @@ -259,7 +259,7 @@ export default { let {_this, _resourceName, _id} = check.call(this, 'get', resourceName, id); // return the item if it exists - return _this.s[_resourceName].index[_id]; + return _this.store[_resourceName].index[_id]; }, // Return the items in the store that have the given primary keys. @@ -269,8 +269,8 @@ export default { // @returns The items with the given primary keys if they're in the store. getAll(resourceName, ids) { let _this = this; - let definition = _this.defs[resourceName]; - let resource = _this.s[resourceName]; + let definition = _this.definitions[resourceName]; + let resource = _this.store[resourceName]; let collection = []; if (!definition) { @@ -316,7 +316,7 @@ export default { // @returns Timestamp from the last time the item was changed. lastModified(resourceName, id) { let {_this, _resourceName, _id} = check.call(this, 'lastModified', resourceName, id || fakeId); - let resource = _this.s[_resourceName]; + let resource = _this.store[_resourceName]; if (_id) { if (!(_id in resource.modified)) { @@ -334,7 +334,7 @@ export default { // @returns Timestamp from the last time the item was saved. lastSaved(resourceName, id) { let {_this, _resourceName, _id} = check.call(this, 'lastSaved', resourceName, id || fakeId); - let resource = _this.s[_resourceName]; + let resource = _this.store[_resourceName]; if (!(_id in resource.saved)) { resource.saved[_id] = 0; @@ -349,7 +349,7 @@ export default { // @returns The previous attributes of the item previous(resourceName, id) { let {_this, _resourceName, _id} = check.call(this, 'previous', resourceName, id); - let resource = _this.s[_resourceName]; + let resource = _this.store[_resourceName]; // return resource from cache return resource.previousAttributes[_id] ? DSUtils.copy(resource.previousAttributes[_id]) : undefined; diff --git a/src/datastore/sync_methods/inject.js b/src/datastore/sync_methods/inject.js index a122e1b9..6478cad3 100644 --- a/src/datastore/sync_methods/inject.js +++ b/src/datastore/sync_methods/inject.js @@ -148,7 +148,7 @@ function _inject(definition, resource, attrs, options) { // Magic! DSUtils.forEach(definition.relationList, def => { let relationName = def.relation; - let relationDef = _this.defs[relationName]; + let relationDef = _this.definitions[relationName]; let toInject = attrs[def.localField]; if (toInject) { if (!relationDef) { @@ -158,7 +158,7 @@ function _inject(definition, resource, attrs, options) { if (DSUtils._a(toInject)) { let items = []; DSUtils.forEach(toInject, toInjectItem => { - if (toInjectItem !== _this.s[relationName].index[toInjectItem[relationDef.idAttribute]]) { + if (toInjectItem !== _this.store[relationName].index[toInjectItem[relationDef.idAttribute]]) { try { let injectedItem = relationDef.inject(toInjectItem, options.orig()); if (def.foreignKey) { @@ -172,7 +172,7 @@ function _inject(definition, resource, attrs, options) { }); } else { // handle injecting belongsTo and hasOne relations - if (toInject !== _this.s[relationName].index[toInject[relationDef.idAttribute]]) { + if (toInject !== _this.store[relationName].index[toInject[relationDef.idAttribute]]) { try { let injected = relationDef.inject(attrs[def.localField], options.orig()); if (def.foreignKey) { @@ -291,8 +291,8 @@ function _inject(definition, resource, attrs, options) { */ module.exports = function inject(resourceName, attrs, options) { let _this = this; - let definition = _this.defs[resourceName]; - let resource = _this.s[resourceName]; + let definition = _this.definitions[resourceName]; + let resource = _this.store[resourceName]; let injected; if (!definition) { diff --git a/src/utils.js b/src/utils.js index bd1d574e..64910be6 100644 --- a/src/utils.js +++ b/src/utils.js @@ -386,6 +386,7 @@ export default { */ _(parent, options) { let _this = this; + parent = parent || {}; options = options || {}; if (options && options.constructor === parent.constructor) { return options; @@ -595,7 +596,7 @@ export default { let params = {}; if (foreignKey) { params[foreignKey] = this[definition.idAttribute]; - return definition.getResource(relationName).defaultFilter.call(store, store.s[relationName].collection, relationName, params, {allowSimpleWhere: true}); + return definition.getResource(relationName).defaultFilter.call(store, store.store[relationName].collection, relationName, params, {allowSimpleWhere: true}); } else if (localKeys) { let keys = get(this, localKeys) || []; return definition.getResource(relationName).getAll(isArray(keys) ? keys : _keys(keys)); @@ -611,7 +612,7 @@ export default { prop.get = function () { let params = {}; params[foreignKey] = this[definition.idAttribute]; - let items = params[foreignKey] ? definition.getResource(relationName).defaultFilter.call(store, store.s[relationName].collection, relationName, params, {allowSimpleWhere: true}) : []; + let items = params[foreignKey] ? definition.getResource(relationName).defaultFilter.call(store, store.store[relationName].collection, relationName, params, {allowSimpleWhere: true}) : []; if (items.length) { return items[0]; }