ember-data-source 2.4.3 → 2.5.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3fd6996056229604ad55f03f0d1fd39c95bd4032
4
- data.tar.gz: 4f450df234dda81e03d92db800fca90daf6a36b4
3
+ metadata.gz: ce0c5fe12ecf1b82742af6562cbc82f782fcedc4
4
+ data.tar.gz: 634b94fce64dca5a7b8278e3a9259b3fad4271d2
5
5
  SHA512:
6
- metadata.gz: 3596f0a6647e21dd97c333fbb04e3131205e96ed0f80a175d0214916176a08c32b7f3b3209bbc7b254e91a508fdafb487b5b16dbc40d5c5862643c89188e332f
7
- data.tar.gz: 9235d59952230bb7e6b9c2bc43b7190262b5b9496d3173cc8d659e0750ad850b155b7437f73739757aff07ded466085d767bf64f02e2a5a71a5ce26c05bba88d
6
+ metadata.gz: d5855115d9816c90e913bd84845dcb4e280aacb6fb1754348a851f553257aa58ad032a462f77a17112efff928b14eace34f7dba0614c65411b56ec9147e7610a
7
+ data.tar.gz: 87cb5bf75c2576602f7695407b7ba7636e585e2942decc290ef6075b5a3c5cf897b5040fc26fc781116dd8e372fb7c67acbf620b954f874591021b0dff86ddc3
@@ -6,7 +6,7 @@
6
6
  * @copyright Copyright 2011-2016 Tilde Inc. and contributors.
7
7
  * Portions Copyright 2011 LivingSocial Inc.
8
8
  * @license Licensed under MIT license (see license.js)
9
- * @version 2.4.3
9
+ * @version 2.5.0-beta.1
10
10
  */
11
11
 
12
12
  var define, requireModule, require, requirejs;
@@ -714,6 +714,7 @@ define('ember-data/-private/debug', ['exports', 'ember'], function (exports, _em
714
714
  exports.runInDebug = runInDebug;
715
715
  exports.warn = warn;
716
716
  exports.debugSeal = debugSeal;
717
+ exports.assertPolymorphicType = assertPolymorphicType;
717
718
 
718
719
  function assert() {
719
720
  return _ember.default.assert.apply(_ember.default, arguments);
@@ -742,6 +743,49 @@ define('ember-data/-private/debug', ['exports', 'ember'], function (exports, _em
742
743
  function debugSeal() {
743
744
  return _ember.default.debugSeal.apply(_ember.default, arguments);
744
745
  }
746
+
747
+ function checkPolymorphic(typeClass, addedRecord) {
748
+ if (typeClass.__isMixin) {
749
+ //TODO Need to do this in order to support mixins, should convert to public api
750
+ //once it exists in Ember
751
+ return typeClass.__mixin.detect(addedRecord.type.PrototypeMixin);
752
+ }
753
+ if (_ember.default.MODEL_FACTORY_INJECTIONS) {
754
+ typeClass = typeClass.superclass;
755
+ }
756
+ return typeClass.detect(addedRecord.type);
757
+ }
758
+
759
+ /**
760
+ Assert that `addedRecord` has a valid type so it can be added to the
761
+ relationship of the `record`.
762
+
763
+ The assert basically checks if the `addedRecord` can be added to the
764
+ relationship (specified via `relationshipMeta`) of the `record`.
765
+
766
+ This utility should only be used internally, as both record parameters must
767
+ be an InternalModel and the `relationshipMeta` needs to be the meta
768
+ information about the relationship, retrieved via
769
+ `record.relationshipFor(key)`.
770
+
771
+ @method assertPolymorphicType
772
+ @param {InternalModel} record
773
+ @param {RelationshipMeta} relationshipMeta retrieved via
774
+ `record.relationshipFor(key)`
775
+ @param {InternalModel} addedRecord record which
776
+ should be added/set for the relationship
777
+ */
778
+
779
+ function assertPolymorphicType(record, relationshipMeta, addedRecord) {
780
+ var addedType = addedRecord.type.modelName;
781
+ var recordType = record.type.modelName;
782
+ var key = relationshipMeta.key;
783
+ var typeClass = record.store.modelFor(relationshipMeta.type);
784
+
785
+ var assertionMessage = 'You cannot add a record of type \'' + addedType + '\' to the \'' + recordType + '.' + key + '\' relationship (only \'' + typeClass.modelName + '\' allowed)';
786
+
787
+ assert(assertionMessage, checkPolymorphic(typeClass, addedRecord));
788
+ }
745
789
  });
746
790
  define('ember-data/-private/ext/date', ['exports', 'ember'], function (exports, _ember) {
747
791
 
@@ -1269,7 +1313,7 @@ define('ember-data/-private/system/is-array-like', ['exports', 'ember'], functio
1269
1313
  return false;
1270
1314
  }
1271
1315
  });
1272
- define("ember-data/-private/system/many-array", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/store/common"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemStoreCommon) {
1316
+ define("ember-data/-private/system/many-array", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/promise-proxies"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemPromiseProxies) {
1273
1317
 
1274
1318
  var get = _ember.default.get;
1275
1319
  var set = _ember.default.set;
@@ -1347,15 +1391,12 @@ define("ember-data/-private/system/many-array", ["exports", "ember", "ember-data
1347
1391
  //a hack for not removing new records
1348
1392
  //TODO remove once we have proper diffing
1349
1393
  var newRecords = this.currentState.filter(function (internalModel) {
1350
- return internalModel.isNew() && toSet.indexOf(internalModel) === -1;
1394
+ return internalModel.isNew();
1351
1395
  });
1352
1396
  toSet = toSet.concat(newRecords);
1353
1397
  var oldLength = this.length;
1354
1398
  this.arrayContentWillChange(0, this.length, toSet.length);
1355
- // It’s possible the parent side of the relationship may have been unloaded by this point
1356
- if ((0, _emberDataPrivateSystemStoreCommon._objectIsAlive)(this)) {
1357
- this.set('length', toSet.length);
1358
- }
1399
+ this.set('length', toSet.length);
1359
1400
  this.currentState = toSet;
1360
1401
  this.arrayContentDidChange(0, oldLength, this.length);
1361
1402
  //TODO Figure out to notify only on additions and maybe only if unloaded
@@ -1544,26 +1585,6 @@ define("ember-data/-private/system/many-array", ["exports", "ember", "ember-data
1544
1585
  /**
1545
1586
  @module ember-data
1546
1587
  */
1547
- define('ember-data/-private/system/merge', ['exports'], function (exports) {
1548
- exports.default = merge;
1549
-
1550
- function merge(original, updates) {
1551
- if (!updates || typeof updates !== 'object') {
1552
- return original;
1553
- }
1554
-
1555
- var props = Object.keys(updates);
1556
- var prop;
1557
- var length = props.length;
1558
-
1559
- for (var i = 0; i < length; i++) {
1560
- prop = props[i];
1561
- original[prop] = updates[prop];
1562
- }
1563
-
1564
- return original;
1565
- }
1566
- });
1567
1588
  define("ember-data/-private/system/model", ["exports", "ember-data/-private/system/model/model", "ember-data/attr", "ember-data/-private/system/model/states", "ember-data/-private/system/model/errors"], function (exports, _emberDataPrivateSystemModelModel, _emberDataAttr, _emberDataPrivateSystemModelStates, _emberDataPrivateSystemModelErrors) {
1568
1589
  exports.RootState = _emberDataPrivateSystemModelStates.default;
1569
1590
  exports.attr = _emberDataAttr.default;
@@ -2215,95 +2236,7 @@ define('ember-data/-private/system/model/errors', ['exports', 'ember', 'ember-da
2215
2236
  }
2216
2237
  });
2217
2238
  });
2218
- define("ember-data/-private/system/model/errors/invalid", ["exports", "ember"], function (exports, _ember) {
2219
- exports.default = InvalidError;
2220
-
2221
- var EmberError = _ember.default.Error;
2222
-
2223
- /**
2224
- A `DS.InvalidError` is used by an adapter to signal the external API
2225
- was unable to process a request because the content was not
2226
- semantically correct or meaningful per the API. Usually this means a
2227
- record failed some form of server side validation. When a promise
2228
- from an adapter is rejected with a `DS.InvalidError` the record will
2229
- transition to the `invalid` state and the errors will be set to the
2230
- `errors` property on the record.
2231
-
2232
- For Ember Data to correctly map errors to their corresponding
2233
- properties on the model, Ember Data expects each error to be
2234
- namespaced under a key that matches the property name. For example
2235
- if you had a Post model that looked like this.
2236
-
2237
- ```app/models/post.js
2238
- import DS from 'ember-data';
2239
-
2240
- export default DS.Model.extend({
2241
- title: DS.attr('string'),
2242
- content: DS.attr('string')
2243
- });
2244
- ```
2245
-
2246
- To show an error from the server related to the `title` and
2247
- `content` properties your adapter could return a promise that
2248
- rejects with a `DS.InvalidError` object that looks like this:
2249
-
2250
- ```app/adapters/post.js
2251
- import Ember from 'ember';
2252
- import DS from 'ember-data';
2253
-
2254
- export default DS.RESTAdapter.extend({
2255
- updateRecord: function() {
2256
- // Fictional adapter that always rejects
2257
- return Ember.RSVP.reject(new DS.InvalidError({
2258
- title: ['Must be unique'],
2259
- content: ['Must not be blank'],
2260
- }));
2261
- }
2262
- });
2263
- ```
2264
-
2265
- Your backend may use different property names for your records the
2266
- store will attempt extract and normalize the errors using the
2267
- serializer's `extractErrors` method before the errors get added to
2268
- the the model. As a result, it is safe for the `InvalidError` to
2269
- wrap the error payload unaltered.
2270
-
2271
- Example
2272
-
2273
- ```app/adapters/application.js
2274
- import Ember from 'ember';
2275
- import DS from 'ember-data';
2276
-
2277
- export default DS.RESTAdapter.extend({
2278
- ajaxError: function(jqXHR) {
2279
- var error = this._super(jqXHR);
2280
-
2281
- // 422 is used by this fictional server to signal a validation error
2282
- if (jqXHR && jqXHR.status === 422) {
2283
- var jsonErrors = Ember.$.parseJSON(jqXHR.responseText);
2284
- return new DS.InvalidError(jsonErrors);
2285
- } else {
2286
- // The ajax request failed however it is not a result of this
2287
- // record being in an invalid state so we do not return a
2288
- // `InvalidError` object.
2289
- return error;
2290
- }
2291
- }
2292
- });
2293
- ```
2294
-
2295
- @class InvalidError
2296
- @namespace DS
2297
- */
2298
-
2299
- function InvalidError(errors) {
2300
- EmberError.call(this, "The backend rejected the commit because it was invalid: " + _ember.default.inspect(errors));
2301
- this.errors = errors;
2302
- }
2303
-
2304
- InvalidError.prototype = Object.create(EmberError.prototype);
2305
- });
2306
- define("ember-data/-private/system/model/internal-model", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/merge", "ember-data/-private/system/model/states", "ember-data/-private/system/relationships/state/create", "ember-data/-private/system/snapshot", "ember-data/-private/system/empty-object", "ember-data/-private/features", "ember-data/-private/utils", "ember-data/-private/system/references"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemMerge, _emberDataPrivateSystemModelStates, _emberDataPrivateSystemRelationshipsStateCreate, _emberDataPrivateSystemSnapshot, _emberDataPrivateSystemEmptyObject, _emberDataPrivateFeatures, _emberDataPrivateUtils, _emberDataPrivateSystemReferences) {
2239
+ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/model/states", "ember-data/-private/system/relationships/state/create", "ember-data/-private/system/snapshot", "ember-data/-private/system/empty-object", "ember-data/-private/features", "ember-data/-private/utils", "ember-data/-private/system/references"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemModelStates, _emberDataPrivateSystemRelationshipsStateCreate, _emberDataPrivateSystemSnapshot, _emberDataPrivateSystemEmptyObject, _emberDataPrivateFeatures, _emberDataPrivateUtils, _emberDataPrivateSystemReferences) {
2307
2240
  var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; })();
2308
2241
 
2309
2242
  exports.default = InternalModel;
@@ -2312,6 +2245,7 @@ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "
2312
2245
  var get = _ember.default.get;
2313
2246
  var set = _ember.default.set;
2314
2247
  var copy = _ember.default.copy;
2248
+ var merge = _ember.default.merge;
2315
2249
 
2316
2250
  var _extractPivotNameCache = new _emberDataPrivateSystemEmptyObject.default();
2317
2251
  var _splitOnDotCache = new _emberDataPrivateSystemEmptyObject.default();
@@ -2504,7 +2438,7 @@ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "
2504
2438
 
2505
2439
  setupData: function (data) {
2506
2440
  var changedKeys = this._changedKeys(data.attributes);
2507
- (0, _emberDataPrivateSystemMerge.default)(this._data, data.attributes);
2441
+ merge(this._data, data.attributes);
2508
2442
  this.pushedData();
2509
2443
  if (this.record) {
2510
2444
  this.record._notifyProperties(changedKeys);
@@ -2616,7 +2550,7 @@ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "
2616
2550
  var oldData = this._data;
2617
2551
  var currentData = this._attributes;
2618
2552
  var inFlightData = this._inFlightAttributes;
2619
- var newData = (0, _emberDataPrivateSystemMerge.default)(copy(inFlightData), currentData);
2553
+ var newData = merge(copy(inFlightData), currentData);
2620
2554
  var diffData = new _emberDataPrivateSystemEmptyObject.default();
2621
2555
 
2622
2556
  var newDataKeys = Object.keys(newData);
@@ -2952,9 +2886,9 @@ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "
2952
2886
  this.didCleanError();
2953
2887
  var changedKeys = this._changedKeys(data);
2954
2888
 
2955
- (0, _emberDataPrivateSystemMerge.default)(this._data, this._inFlightAttributes);
2889
+ merge(this._data, this._inFlightAttributes);
2956
2890
  if (data) {
2957
- (0, _emberDataPrivateSystemMerge.default)(this._data, data);
2891
+ merge(this._data, data);
2958
2892
  }
2959
2893
 
2960
2894
  this._inFlightAttributes = new _emberDataPrivateSystemEmptyObject.default();
@@ -3084,8 +3018,8 @@ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "
3084
3018
  var keys = Object.keys(updates);
3085
3019
  var length = keys.length;
3086
3020
 
3087
- original = (0, _emberDataPrivateSystemMerge.default)(new _emberDataPrivateSystemEmptyObject.default(), this._data);
3088
- original = (0, _emberDataPrivateSystemMerge.default)(original, this._inFlightAttributes);
3021
+ original = merge(new _emberDataPrivateSystemEmptyObject.default(), this._data);
3022
+ original = merge(original, this._inFlightAttributes);
3089
3023
 
3090
3024
  for (i = 0; i < length; i++) {
3091
3025
  key = keys[i];
@@ -5642,7 +5576,7 @@ define('ember-data/-private/system/references', ['exports', 'ember-data/-private
5642
5576
  exports.BelongsToReference = _emberDataPrivateSystemReferencesBelongsTo.default;
5643
5577
  exports.HasManyReference = _emberDataPrivateSystemReferencesHasMany.default;
5644
5578
  });
5645
- define('ember-data/-private/system/references/belongs-to', ['exports', 'ember-data/model', 'ember', 'ember-data/-private/system/references/reference', 'ember-data/-private/utils'], function (exports, _emberDataModel, _ember, _emberDataPrivateSystemReferencesReference, _emberDataPrivateUtils) {
5579
+ define('ember-data/-private/system/references/belongs-to', ['exports', 'ember-data/model', 'ember', 'ember-data/-private/system/references/reference', 'ember-data/-private/debug'], function (exports, _emberDataModel, _ember, _emberDataPrivateSystemReferencesReference, _emberDataPrivateDebug) {
5646
5580
 
5647
5581
  var BelongsToReference = function (store, parentInternalModel, belongsToRelationship) {
5648
5582
  this._super$constructor(store, parentInternalModel);
@@ -5690,7 +5624,7 @@ define('ember-data/-private/system/references/belongs-to', ['exports', 'ember-da
5690
5624
  record = _this.store.push(data);
5691
5625
  }
5692
5626
 
5693
- (0, _emberDataPrivateUtils.assertPolymorphicType)(_this.internalModel, _this.belongsToRelationship.relationshipMeta, record._internalModel);
5627
+ (0, _emberDataPrivateDebug.assertPolymorphicType)(_this.internalModel, _this.belongsToRelationship.relationshipMeta, record._internalModel);
5694
5628
 
5695
5629
  _this.belongsToRelationship.setCanonicalRecord(record._internalModel);
5696
5630
 
@@ -5727,7 +5661,7 @@ define('ember-data/-private/system/references/belongs-to', ['exports', 'ember-da
5727
5661
 
5728
5662
  exports.default = BelongsToReference;
5729
5663
  });
5730
- define('ember-data/-private/system/references/has-many', ['exports', 'ember', 'ember-data/-private/system/references/reference'], function (exports, _ember, _emberDataPrivateSystemReferencesReference) {
5664
+ define('ember-data/-private/system/references/has-many', ['exports', 'ember', 'ember-data/-private/system/references/reference', 'ember-data/-private/debug'], function (exports, _ember, _emberDataPrivateSystemReferencesReference, _emberDataPrivateDebug) {
5731
5665
 
5732
5666
  var get = _ember.default.get;
5733
5667
 
@@ -5780,11 +5714,15 @@ define('ember-data/-private/system/references/has-many', ['exports', 'ember', 'e
5780
5714
 
5781
5715
  var internalModels = array.map(function (obj) {
5782
5716
  var record = _this.store.push(obj);
5717
+
5718
+ (0, _emberDataPrivateDebug.runInDebug)(function () {
5719
+ var relationshipMeta = _this.hasManyRelationship.relationshipMeta;
5720
+ (0, _emberDataPrivateDebug.assertPolymorphicType)(_this.internalModel, relationshipMeta, record._internalModel);
5721
+ });
5722
+
5783
5723
  return record._internalModel;
5784
5724
  });
5785
5725
 
5786
- // TODO add assertion for polymorphic type
5787
-
5788
5726
  _this.hasManyRelationship.computeChanges(internalModels);
5789
5727
 
5790
5728
  return _this.hasManyRelationship.manyArray;
@@ -6830,7 +6768,7 @@ define("ember-data/-private/system/relationships/has-many", ["exports", "ember",
6830
6768
  /**
6831
6769
  @module ember-data
6832
6770
  */
6833
- define("ember-data/-private/system/relationships/state/belongs-to", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/promise-proxies", "ember-data/-private/utils", "ember-data/-private/system/relationships/state/relationship"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateUtils, _emberDataPrivateSystemRelationshipsStateRelationship) {
6771
+ define("ember-data/-private/system/relationships/state/belongs-to", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/relationships/state/relationship"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemRelationshipsStateRelationship) {
6834
6772
  exports.default = BelongsToRelationship;
6835
6773
 
6836
6774
  function BelongsToRelationship(store, record, inverseKey, relationshipMeta) {
@@ -6897,7 +6835,7 @@ define("ember-data/-private/system/relationships/state/belongs-to", ["exports",
6897
6835
  return;
6898
6836
  }
6899
6837
 
6900
- (0, _emberDataPrivateUtils.assertPolymorphicType)(this.record, this.relationshipMeta, newRecord);
6838
+ (0, _emberDataPrivateDebug.assertPolymorphicType)(this.record, this.relationshipMeta, newRecord);
6901
6839
 
6902
6840
  if (this.inverseRecord) {
6903
6841
  this.removeRecord(this.inverseRecord);
@@ -7037,7 +6975,7 @@ define("ember-data/-private/system/relationships/state/create", ["exports", "emb
7037
6975
  return relationships[key];
7038
6976
  };
7039
6977
  });
7040
- define("ember-data/-private/system/relationships/state/has-many", ["exports", "ember-data/-private/debug", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/relationships/state/relationship", "ember-data/-private/system/ordered-set", "ember-data/-private/system/many-array", "ember-data/-private/utils"], function (exports, _emberDataPrivateDebug, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemRelationshipsStateRelationship, _emberDataPrivateSystemOrderedSet, _emberDataPrivateSystemManyArray, _emberDataPrivateUtils) {
6978
+ define("ember-data/-private/system/relationships/state/has-many", ["exports", "ember-data/-private/debug", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/relationships/state/relationship", "ember-data/-private/system/ordered-set", "ember-data/-private/system/many-array"], function (exports, _emberDataPrivateDebug, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemRelationshipsStateRelationship, _emberDataPrivateSystemOrderedSet, _emberDataPrivateSystemManyArray) {
7041
6979
  exports.default = ManyRelationship;
7042
6980
 
7043
6981
  function ManyRelationship(store, record, inverseKey, relationshipMeta) {
@@ -7127,13 +7065,14 @@ define("ember-data/-private/system/relationships/state/has-many", ["exports", "e
7127
7065
  };
7128
7066
 
7129
7067
  ManyRelationship.prototype.notifyRecordRelationshipAdded = function (record, idx) {
7130
- (0, _emberDataPrivateUtils.assertPolymorphicType)(this.record, this.relationshipMeta, record);
7068
+ (0, _emberDataPrivateDebug.assertPolymorphicType)(this.record, this.relationshipMeta, record);
7131
7069
 
7132
7070
  this.record.notifyHasManyAdded(this.key, record, idx);
7133
7071
  };
7134
7072
 
7135
7073
  ManyRelationship.prototype.reload = function () {
7136
- var self = this;
7074
+ var _this = this;
7075
+
7137
7076
  var manyArrayLoadedState = this.manyArray.get('isLoaded');
7138
7077
 
7139
7078
  if (this._loadingPromise) {
@@ -7146,13 +7085,13 @@ define("ember-data/-private/system/relationships/state/has-many", ["exports", "e
7146
7085
  }
7147
7086
 
7148
7087
  if (this.link) {
7149
- return this.fetchLink();
7088
+ this._loadingPromise = (0, _emberDataPrivateSystemPromiseProxies.promiseManyArray)(this.fetchLink(), 'Reload with link');
7089
+ return this._loadingPromise;
7150
7090
  } else {
7151
- return this.store.scheduleFetchMany(this.manyArray.toArray()).then(function () {
7152
- //Goes away after the manyArray refactor
7153
- self.manyArray.set('isLoaded', true);
7154
- return self.manyArray;
7155
- });
7091
+ this._loadingPromise = (0, _emberDataPrivateSystemPromiseProxies.promiseManyArray)(this.store.scheduleFetchMany(this.manyArray.toArray()).then(function () {
7092
+ return _this.manyArray;
7093
+ }), 'Reload with ids');
7094
+ return this._loadingPromise;
7156
7095
  }
7157
7096
  };
7158
7097
 
@@ -7189,22 +7128,22 @@ define("ember-data/-private/system/relationships/state/has-many", ["exports", "e
7189
7128
  };
7190
7129
 
7191
7130
  ManyRelationship.prototype.fetchLink = function () {
7192
- var _this = this;
7131
+ var _this2 = this;
7193
7132
 
7194
7133
  return this.store.findHasMany(this.record, this.link, this.relationshipMeta).then(function (records) {
7195
7134
  if (records.hasOwnProperty('meta')) {
7196
- _this.updateMeta(records.meta);
7135
+ _this2.updateMeta(records.meta);
7197
7136
  }
7198
- _this.store._backburner.join(function () {
7199
- _this.updateRecordsFromAdapter(records);
7200
- _this.manyArray.set('isLoaded', true);
7137
+ _this2.store._backburner.join(function () {
7138
+ _this2.updateRecordsFromAdapter(records);
7139
+ _this2.manyArray.set('isLoaded', true);
7201
7140
  });
7202
- return _this.manyArray;
7141
+ return _this2.manyArray;
7203
7142
  });
7204
7143
  };
7205
7144
 
7206
7145
  ManyRelationship.prototype.findRecords = function () {
7207
- var _this2 = this;
7146
+ var _this3 = this;
7208
7147
 
7209
7148
  var manyArray = this.manyArray.toArray();
7210
7149
  var internalModels = new Array(manyArray.length);
@@ -7215,11 +7154,11 @@ define("ember-data/-private/system/relationships/state/has-many", ["exports", "e
7215
7154
 
7216
7155
  //TODO CLEANUP
7217
7156
  return this.store.findMany(internalModels).then(function () {
7218
- if (!_this2.manyArray.get('isDestroyed')) {
7157
+ if (!_this3.manyArray.get('isDestroyed')) {
7219
7158
  //Goes away after the manyArray refactor
7220
- _this2.manyArray.set('isLoaded', true);
7159
+ _this3.manyArray.set('isLoaded', true);
7221
7160
  }
7222
- return _this2.manyArray;
7161
+ return _this3.manyArray;
7223
7162
  });
7224
7163
  };
7225
7164
  ManyRelationship.prototype.notifyHasManyChanged = function () {
@@ -7227,7 +7166,7 @@ define("ember-data/-private/system/relationships/state/has-many", ["exports", "e
7227
7166
  };
7228
7167
 
7229
7168
  ManyRelationship.prototype.getRecords = function () {
7230
- var _this3 = this;
7169
+ var _this4 = this;
7231
7170
 
7232
7171
  //TODO(Igor) sync server here, once our syncing is not stupid
7233
7172
  if (this.isAsync) {
@@ -7237,7 +7176,7 @@ define("ember-data/-private/system/relationships/state/has-many", ["exports", "e
7237
7176
  promise = this.findRecords();
7238
7177
  } else {
7239
7178
  promise = this.findLink().then(function () {
7240
- return _this3.findRecords();
7179
+ return _this4.findRecords();
7241
7180
  });
7242
7181
  }
7243
7182
  } else {
@@ -7938,50 +7877,10 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
7938
7877
  var badIdFormatAssertion = '`id` has to be non-empty string or number';
7939
7878
 
7940
7879
  exports.badIdFormatAssertion = badIdFormatAssertion;
7941
- var Backburner = _ember.default._Backburner || _ember.default.Backburner || _ember.default.__loader.require('backburner')['default'] || _ember.default.__loader.require('backburner')['Backburner'];
7880
+ var Backburner = _ember.default._Backburner;
7942
7881
  var Map = _ember.default.Map;
7943
7882
  var isArray = Array.isArray || _ember.default.isArray;
7944
7883
 
7945
- //Shim Backburner.join
7946
- if (!Backburner.prototype.join) {
7947
- var isString = function (suspect) {
7948
- return typeof suspect === 'string';
7949
- };
7950
-
7951
- Backburner.prototype.join = function () /*target, method, args */{
7952
- var method, target;
7953
-
7954
- if (this.currentInstance) {
7955
- var length = arguments.length;
7956
- if (length === 1) {
7957
- method = arguments[0];
7958
- target = null;
7959
- } else {
7960
- target = arguments[0];
7961
- method = arguments[1];
7962
- }
7963
-
7964
- if (isString(method)) {
7965
- method = target[method];
7966
- }
7967
-
7968
- if (length === 1) {
7969
- return method();
7970
- } else if (length === 2) {
7971
- return method.call(target);
7972
- } else {
7973
- var args = new Array(length - 2);
7974
- for (var i = 0; i < args.length; i++) {
7975
- args[i] = arguments[i + 2];
7976
- }
7977
- return method.apply(target, args);
7978
- }
7979
- } else {
7980
- return this.run.apply(this, arguments);
7981
- }
7982
- };
7983
- }
7984
-
7985
7884
  //Get the materialized model from the internalModel/promise that returns
7986
7885
  //an internal model and return it in a promiseObject. Useful for returning
7987
7886
  //from find methods
@@ -8001,9 +7900,6 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8001
7900
  var Store;
8002
7901
 
8003
7902
  var Service = _ember.default.Service;
8004
- if (!Service) {
8005
- Service = _ember.default.Object;
8006
- }
8007
7903
 
8008
7904
  // Implementors Note:
8009
7905
  //
@@ -8969,7 +8865,7 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8969
8865
  filter function will be invoked again to determine whether it should
8970
8866
  still be in the array.
8971
8867
  Optionally you can pass a query, which is the equivalent of calling
8972
- [find](#method_find) with that same query, to fetch additional records
8868
+ [query](#method_query) with that same query, to fetch additional records
8973
8869
  from the server. The results returned by the server could then appear
8974
8870
  in the filter if they match the filter function.
8975
8871
  The query itself is not used to filter records, it's only sent to your
@@ -8987,10 +8883,12 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8987
8883
  });
8988
8884
  ```
8989
8885
  @method filter
8886
+ @private
8990
8887
  @param {String} modelName
8991
8888
  @param {Object} query optional query
8992
8889
  @param {Function} filter
8993
8890
  @return {DS.PromiseArray}
8891
+ @deprecated
8994
8892
  */
8995
8893
  filter: function (modelName, query, filter) {
8996
8894
  (0, _emberDataPrivateDebug.assert)('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + _ember.default.inspect(modelName), typeof modelName === 'string');
@@ -9474,7 +9372,7 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
9474
9372
  },
9475
9373
 
9476
9374
  _hasModelFor: function (type) {
9477
- return (0, _emberDataPrivateUtils.getOwner)(this)._lookupFactory('model:' + type);
9375
+ return !!(0, _emberDataPrivateUtils.getOwner)(this)._lookupFactory('model:' + type);
9478
9376
  },
9479
9377
 
9480
9378
  _pushInternalModel: function (data) {
@@ -9570,9 +9468,15 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
9570
9468
  (0, _emberDataPrivateDebug.assert)('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + _ember.default.inspect(modelName), typeof modelName === 'string');
9571
9469
  serializer = this.serializerFor(modelName);
9572
9470
  }
9573
- this._adapterRun(function () {
9574
- return serializer.pushPayload(_this3, payload);
9575
- });
9471
+ if ((0, _emberDataPrivateFeatures.default)('ds-pushpayload-return')) {
9472
+ return this._adapterRun(function () {
9473
+ return serializer.pushPayload(_this3, payload);
9474
+ });
9475
+ } else {
9476
+ this._adapterRun(function () {
9477
+ return serializer.pushPayload(_this3, payload);
9478
+ });
9479
+ }
9576
9480
  },
9577
9481
 
9578
9482
  /**
@@ -10243,6 +10147,7 @@ define("ember-data/-private/system/store/finders", ["exports", "ember", "ember-d
10243
10147
  var record;
10244
10148
  store._adapterRun(function () {
10245
10149
  var payload = (0, _emberDataPrivateSystemStoreSerializerResponse.normalizeResponseHelper)(serializer, store, typeClass, adapterPayload, null, 'queryRecord');
10150
+ _ember.default.assert('`store.queryRecord` expected the adapter to return one record but the response from the adapter was empty.', payload.data);
10246
10151
  //TODO Optimize
10247
10152
  record = store.push(payload);
10248
10153
  });
@@ -10548,52 +10453,10 @@ define("ember-data/-private/transforms/string", ["exports", "ember", "ember-data
10548
10453
  }
10549
10454
  });
10550
10455
  });
10551
- define('ember-data/-private/utils', ['exports', 'ember', 'ember-data/-private/debug'], function (exports, _ember, _emberDataPrivateDebug) {
10456
+ define('ember-data/-private/utils', ['exports', 'ember'], function (exports, _ember) {
10552
10457
 
10553
10458
  var get = _ember.default.get;
10554
10459
 
10555
- /**
10556
- Assert that `addedRecord` has a valid type so it can be added to the
10557
- relationship of the `record`.
10558
-
10559
- The assert basically checks if the `addedRecord` can be added to the
10560
- relationship (specified via `relationshipMeta`) of the `record`.
10561
-
10562
- This utility should only be used internally, as both record parameters must
10563
- be an InternalModel and the `relationshipMeta` needs to be the meta
10564
- information about the relationship, retrieved via
10565
- `record.relationshipFor(key)`.
10566
-
10567
- @method assertPolymorphicType
10568
- @param {InternalModel} record
10569
- @param {RelationshipMeta} relationshipMeta retrieved via
10570
- `record.relationshipFor(key)`
10571
- @param {InternalModel} addedRecord record which
10572
- should be added/set for the relationship
10573
- */
10574
- var assertPolymorphicType = function (record, relationshipMeta, addedRecord) {
10575
- var addedType = addedRecord.type.modelName;
10576
- var recordType = record.type.modelName;
10577
- var key = relationshipMeta.key;
10578
- var typeClass = record.store.modelFor(relationshipMeta.type);
10579
-
10580
- var assertionMessage = 'You cannot add a record of type \'' + addedType + '\' to the \'' + recordType + '.' + key + '\' relationship (only \'' + typeClass.modelName + '\' allowed)';
10581
-
10582
- (0, _emberDataPrivateDebug.assert)(assertionMessage, checkPolymorphic(typeClass, addedRecord));
10583
- };
10584
-
10585
- function checkPolymorphic(typeClass, addedRecord) {
10586
- if (typeClass.__isMixin) {
10587
- //TODO Need to do this in order to support mixins, should convert to public api
10588
- //once it exists in Ember
10589
- return typeClass.__mixin.detect(addedRecord.type.PrototypeMixin);
10590
- }
10591
- if (_ember.default.MODEL_FACTORY_INJECTIONS) {
10592
- typeClass = typeClass.superclass;
10593
- }
10594
- return typeClass.detect(addedRecord.type);
10595
- }
10596
-
10597
10460
  /**
10598
10461
  Check if the passed model has a `type` attribute or a relationship named `type`.
10599
10462
 
@@ -10633,7 +10496,6 @@ define('ember-data/-private/utils', ['exports', 'ember', 'ember-data/-private/de
10633
10496
  return owner;
10634
10497
  }
10635
10498
 
10636
- exports.assertPolymorphicType = assertPolymorphicType;
10637
10499
  exports.modelHasAttributeOrRelationshipNamedType = modelHasAttributeOrRelationshipNamedType;
10638
10500
  exports.getOwner = getOwner;
10639
10501
  });
@@ -11734,9 +11596,9 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
11734
11596
  },
11735
11597
 
11736
11598
  /**
11737
- Called by the store in order to fetch a JSON array for
11738
- the unloaded records in a belongs-to relationship that were originally
11739
- specified as a URL (inside of `links`).
11599
+ Called by the store in order to fetch the JSON for the unloaded record in a
11600
+ belongs-to relationship that was originally specified as a URL (inside of
11601
+ `links`).
11740
11602
  For example, if your original payload looks like this:
11741
11603
  ```js
11742
11604
  {
@@ -12142,15 +12004,13 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12142
12004
  },
12143
12005
 
12144
12006
  buildQuery: function (snapshot) {
12007
+ var include = snapshot.include;
12008
+
12145
12009
  var query = {};
12146
12010
 
12147
12011
  if ((0, _emberDataPrivateFeatures.default)('ds-finder-include')) {
12148
- if (snapshot) {
12149
- var include = snapshot.include;
12150
-
12151
- if (include) {
12152
- query.include = include;
12153
- }
12012
+ if (include) {
12013
+ query.include = include;
12154
12014
  }
12155
12015
  }
12156
12016
 
@@ -12299,6 +12159,38 @@ define("ember-data/attr", ["exports", "ember", "ember-data/-private/debug"], fun
12299
12159
  }
12300
12160
  }).meta(meta);
12301
12161
  }
12162
+
12163
+ // TODO add to documentation of `attr` function above, once this feature is added
12164
+ // /**
12165
+ // * The `options` hash is passed as second argument to a transforms'
12166
+ // * `serialize` and `deserialize` method. This allows to configure a
12167
+ // * transformation and adapt the corresponding value, based on the config:
12168
+ // *
12169
+ // * ```app/models/post.js
12170
+ // * export default DS.Model.extend({
12171
+ // * text: DS.attr('text', {
12172
+ // * uppercase: true
12173
+ // * })
12174
+ // * });
12175
+ // * ```
12176
+ // *
12177
+ // * ```app/transforms/text.js
12178
+ // * export default DS.Transform.extend({
12179
+ // * serialize: function(value, options) {
12180
+ // * if (options.uppercase) {
12181
+ // * return value.toUpperCase();
12182
+ // * }
12183
+ // *
12184
+ // * return value;
12185
+ // * },
12186
+ // *
12187
+ // * deserialize: function(value) {
12188
+ // * return value;
12189
+ // * }
12190
+ // * })
12191
+ // * ```
12192
+ // *
12193
+ // */
12302
12194
  });
12303
12195
  define("ember-data", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/core", "ember-data/-private/system/normalize-model-name", "ember-data/-private/system/model/internal-model", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/store", "ember-data/-private/system/model", "ember-data/model", "ember-data/-private/system/snapshot", "ember-data/adapter", "ember-data/serializer", "ember-data/-private/system/debug", "ember-data/-private/adapters/errors", "ember-data/-private/system/record-arrays", "ember-data/-private/system/many-array", "ember-data/-private/system/record-array-manager", "ember-data/-private/adapters", "ember-data/-private/adapters/build-url-mixin", "ember-data/-private/serializers", "ember-inflector", "ember-data/serializers/embedded-records-mixin", "ember-data/-private/transforms", "ember-data/relationships", "ember-data/setup-container", "ember-data/-private/instance-initializers/initialize-store-service", "ember-data/-private/system/container-proxy", "ember-data/-private/system/relationships/state/relationship"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateCore, _emberDataPrivateSystemNormalizeModelName, _emberDataPrivateSystemModelInternalModel, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemStore, _emberDataPrivateSystemModel, _emberDataModel, _emberDataPrivateSystemSnapshot, _emberDataAdapter, _emberDataSerializer, _emberDataPrivateSystemDebug, _emberDataPrivateAdaptersErrors, _emberDataPrivateSystemRecordArrays, _emberDataPrivateSystemManyArray, _emberDataPrivateSystemRecordArrayManager, _emberDataPrivateAdapters, _emberDataPrivateAdaptersBuildUrlMixin, _emberDataPrivateSerializers, _emberInflector, _emberDataSerializersEmbeddedRecordsMixin, _emberDataPrivateTransforms, _emberDataRelationships, _emberDataSetupContainer, _emberDataPrivateInstanceInitializersInitializeStoreService, _emberDataPrivateSystemContainerProxy, _emberDataPrivateSystemRelationshipsStateRelationship) {
12304
12196
  /**
@@ -12988,7 +12880,7 @@ define('ember-data/serializers/embedded-records-mixin', ['exports', 'ember', 'em
12988
12880
  }
12989
12881
  });
12990
12882
  });
12991
- define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-private/debug', 'ember-data/serializers/json', 'ember-data/-private/system/normalize-model-name', 'ember-inflector'], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializersJson, _emberDataPrivateSystemNormalizeModelName, _emberInflector) {
12883
+ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-private/debug', 'ember-data/serializers/json', 'ember-data/-private/system/normalize-model-name', 'ember-inflector', 'ember-data/-private/features'], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializersJson, _emberDataPrivateSystemNormalizeModelName, _emberInflector, _emberDataPrivateFeatures) {
12992
12884
 
12993
12885
  var dasherize = _ember.default.String.dasherize;
12994
12886
 
@@ -13164,7 +13056,11 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13164
13056
  */
13165
13057
  pushPayload: function (store, payload) {
13166
13058
  var normalizedPayload = this._normalizeDocumentHelper(payload);
13167
- store.push(normalizedPayload);
13059
+ if ((0, _emberDataPrivateFeatures.default)('ds-pushpayload-return')) {
13060
+ return store.push(normalizedPayload);
13061
+ } else {
13062
+ store.push(normalizedPayload);
13063
+ }
13168
13064
  },
13169
13065
 
13170
13066
  /**
@@ -13489,7 +13385,7 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13489
13385
  /**
13490
13386
  @module ember-data
13491
13387
  */
13492
- define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/debug', 'ember-data/serializer', 'ember-data/-private/system/coerce-id', 'ember-data/-private/system/normalize-model-name', 'ember-data/-private/utils', 'ember-data/-private/adapters/errors'], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializer, _emberDataPrivateSystemCoerceId, _emberDataPrivateSystemNormalizeModelName, _emberDataPrivateUtils, _emberDataPrivateAdaptersErrors) {
13388
+ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/debug', 'ember-data/serializer', 'ember-data/-private/system/coerce-id', 'ember-data/-private/system/normalize-model-name', 'ember-data/-private/utils', 'ember-data/-private/adapters/errors', 'ember-data/-private/features'], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializer, _emberDataPrivateSystemCoerceId, _emberDataPrivateSystemNormalizeModelName, _emberDataPrivateUtils, _emberDataPrivateAdaptersErrors, _emberDataPrivateFeatures) {
13493
13389
  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
13494
13390
 
13495
13391
  var get = _ember.default.get;
@@ -13650,13 +13546,23 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
13650
13546
  applyTransforms: function (typeClass, data) {
13651
13547
  var _this = this;
13652
13548
 
13549
+ var attributes = undefined;
13550
+ if ((0, _emberDataPrivateFeatures.default)('ds-transform-pass-options')) {
13551
+ attributes = get(typeClass, 'attributes');
13552
+ }
13553
+
13653
13554
  typeClass.eachTransformedAttribute(function (key, typeClass) {
13654
13555
  if (!data.hasOwnProperty(key)) {
13655
13556
  return;
13656
13557
  }
13657
13558
 
13658
13559
  var transform = _this.transformFor(typeClass);
13659
- data[key] = transform.deserialize(data[key]);
13560
+ if ((0, _emberDataPrivateFeatures.default)('ds-transform-pass-options')) {
13561
+ var transformMeta = attributes.get(key);
13562
+ data[key] = transform.deserialize(data[key], transformMeta.options);
13563
+ } else {
13564
+ data[key] = transform.deserialize(data[key]);
13565
+ }
13660
13566
  });
13661
13567
 
13662
13568
  return data;
@@ -14497,7 +14403,11 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14497
14403
  var value = snapshot.attr(key);
14498
14404
  if (type) {
14499
14405
  var transform = this.transformFor(type);
14500
- value = transform.serialize(value);
14406
+ if ((0, _emberDataPrivateFeatures.default)('ds-transform-pass-options')) {
14407
+ value = transform.serialize(value, attribute.options);
14408
+ } else {
14409
+ value = transform.serialize(value);
14410
+ }
14501
14411
  }
14502
14412
 
14503
14413
  // if provided, use the mapping provided by `attrs` in
@@ -14783,7 +14693,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14783
14693
  }
14784
14694
  });
14785
14695
  });
14786
- define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/debug", "ember-data/serializers/json", "ember-data/-private/system/normalize-model-name", "ember-inflector", "ember-data/-private/system/coerce-id", "ember-data/-private/utils"], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializersJson, _emberDataPrivateSystemNormalizeModelName, _emberInflector, _emberDataPrivateSystemCoerceId, _emberDataPrivateUtils) {
14696
+ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/debug", "ember-data/serializers/json", "ember-data/-private/system/normalize-model-name", "ember-inflector", "ember-data/-private/system/coerce-id", "ember-data/-private/utils", "ember-data/-private/features"], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializersJson, _emberDataPrivateSystemNormalizeModelName, _emberInflector, _emberDataPrivateSystemCoerceId, _emberDataPrivateUtils, _emberDataPrivateFeatures) {
14787
14697
  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
14788
14698
 
14789
14699
  var camelize = _ember.default.String.camelize;
@@ -15179,7 +15089,11 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
15179
15089
  });
15180
15090
  }
15181
15091
 
15182
- store.push(documentHash);
15092
+ if ((0, _emberDataPrivateFeatures.default)('ds-pushpayload-return')) {
15093
+ return store.push(documentHash);
15094
+ } else {
15095
+ store.push(documentHash);
15096
+ }
15183
15097
  },
15184
15098
 
15185
15099
  /**
@@ -15602,7 +15516,7 @@ define('ember-data/transform', ['exports', 'ember'], function (exports, _ember)
15602
15516
  });
15603
15517
  });
15604
15518
  define("ember-data/version", ["exports"], function (exports) {
15605
- exports.default = "2.4.3";
15519
+ exports.default = "2.5.0-beta.1";
15606
15520
  });
15607
15521
  define("ember-inflector", ["exports", "ember", "ember-inflector/lib/system", "ember-inflector/lib/ext/string"], function (exports, _ember, _emberInflectorLibSystem, _emberInflectorLibExtString) {
15608
15522