ember-data-source 1.13.6 → 1.13.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,13 +4,12 @@
4
4
  var ember$data$lib$system$object$polyfills$$keysFunc = Object.keys || Ember.keys;
5
5
  var ember$data$lib$system$object$polyfills$$create = Object.create || Ember.create;
6
6
 
7
- /**
7
+ var ember$data$lib$adapters$errors$$EmberError = Ember.Error;
8
+ var ember$data$lib$adapters$errors$$forEach = Ember.ArrayPolyfills.forEach;
9
+ var ember$data$lib$adapters$errors$$SOURCE_POINTER_REGEXP = /^\/?data\/(attributes|relationships)\/(.*)/;/**
8
10
  @class AdapterError
9
11
  @namespace DS
10
- */var ember$data$lib$adapters$errors$$EmberError = Ember.Error;
11
-
12
- var ember$data$lib$adapters$errors$$forEach = Ember.ArrayPolyfills.forEach;
13
- var ember$data$lib$adapters$errors$$SOURCE_POINTER_REGEXP = /data\/(attributes|relationships)\/(.*)/;
12
+ */
14
13
  function ember$data$lib$adapters$errors$$AdapterError(errors, message) {
15
14
  message = message || "Adapter operation failed";
16
15
 
@@ -84,7 +83,7 @@
84
83
  */
85
84
  function ember$data$lib$adapters$errors$$InvalidError(errors) {
86
85
  if (!Ember.isArray(errors)) {
87
- Ember.deprecate("`InvalidError` expects json-api formatted errors.");
86
+ Ember.deprecate("`InvalidError` expects json-api formatted errors.", false, { id: "ds.errors.invalid-error-expects-json-api-format", until: "2.0.0" });
88
87
  errors = ember$data$lib$adapters$errors$$errorsHashToArray(errors);
89
88
  }
90
89
  ember$data$lib$adapters$errors$$AdapterError.call(this, errors, "The adapter rejected the commit because it was invalid");
@@ -123,10 +122,10 @@
123
122
  var messages = Ember.makeArray(errors[key]);
124
123
  for (var i = 0; i < messages.length; i++) {
125
124
  out.push({
126
- title: 'Invalid Attribute',
125
+ title: "Invalid Attribute",
127
126
  detail: messages[i],
128
127
  source: {
129
- pointer: "data/attributes/" + key
128
+ pointer: "/data/attributes/" + key
130
129
  }
131
130
  });
132
131
  }
@@ -577,7 +576,7 @@
577
576
  */
578
577
  shouldReloadAll: function (store, snapshotRecordArray) {
579
578
  var modelName = snapshotRecordArray.type.modelName;
580
- Ember.deprecate('The default behavior of shouldReloadAll will change in Ember Data 2.0 to always return false when there is at least one "' + modelName + '" record in the store. If you would like to preserve the current behavior please override shouldReloadAll in your adapter:application and return true.');
579
+ Ember.deprecate('The default behavior of shouldReloadAll will change in Ember Data 2.0 to always return false when there is at least one "' + modelName + '" record in the store. If you would like to preserve the current behavior please override shouldReloadAll in your adapter:application and return true.', false, { id: 'ds.adapter.should-reload-all-default-behavior', until: '2.0.0' });
581
580
  return true;
582
581
  },
583
582
 
@@ -595,7 +594,7 @@
595
594
  @return {Boolean}
596
595
  */
597
596
  shouldBackgroundReloadRecord: function (store, snapshot) {
598
- Ember.deprecate('The default behavior of `shouldBackgroundReloadRecord` will change in Ember Data 2.0 to always return true. If you would like to preserve the current behavior please override `shouldBackgroundReloadRecord` in your adapter:application and return false.');
597
+ Ember.deprecate('The default behavior of `shouldBackgroundReloadRecord` will change in Ember Data 2.0 to always return true. If you would like to preserve the current behavior please override `shouldBackgroundReloadRecord` in your adapter:application and return false.', false, { id: 'ds.adapter.should-background-reload-record-default-behavior', until: '2.0.0' });
599
598
  return false;
600
599
  },
601
600
 
@@ -754,7 +753,10 @@
754
753
  */
755
754
  urlForFindRecord: function (id, modelName, snapshot) {
756
755
  if (this.urlForFind !== ember$data$lib$adapters$build$url$mixin$$urlForFind) {
757
- Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.');
756
+ Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.', false, {
757
+ id: 'ds.adapter.url-for-find-deprecated',
758
+ until: '2.0.0'
759
+ });
758
760
  return this.urlForFind(id, modelName, snapshot);
759
761
  }
760
762
  return this._buildURL(modelName, id);
@@ -786,7 +788,10 @@
786
788
  */
787
789
  urlForQuery: function (query, modelName) {
788
790
  if (this.urlForFindQuery !== ember$data$lib$adapters$build$url$mixin$$urlForFindQuery) {
789
- Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.');
791
+ Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.', false, {
792
+ id: 'ds.adapter.url-for-find-query-deprecated',
793
+ until: '2.0.0'
794
+ });
790
795
  return this.urlForFindQuery(query, modelName);
791
796
  }
792
797
  return this._buildURL(modelName);
@@ -870,21 +875,16 @@
870
875
  if (path) {
871
876
  // Protocol relative url
872
877
  //jscs:disable disallowEmptyBlocks
873
- if (/^\/\//.test(path)) {
874
- // Do nothing, the full host is already included. This branch
875
- // avoids the absolute path logic and the relative path logic.
876
-
877
- // Absolute path
878
- } else if (path.charAt(0) === '/') {
879
- //jscs:enable disallowEmptyBlocks
880
- if (host) {
881
- path = path.slice(1);
882
- url.push(host);
883
- }
884
- // Relative path
885
- } else if (!/^http(s)?:\/\//.test(path)) {
886
- url.push(parentURL);
887
- }
878
+ if (/^\/\//.test(path)) {} else if (path.charAt(0) === '/') {
879
+ //jscs:enable disallowEmptyBlocks
880
+ if (host) {
881
+ path = path.slice(1);
882
+ url.push(host);
883
+ }
884
+ // Relative path
885
+ } else if (!/^http(s)?:\/\//.test(path)) {
886
+ url.push(parentURL);
887
+ }
888
888
  } else {
889
889
  if (host) {
890
890
  url.push(host);
@@ -928,36 +928,45 @@
928
928
  });
929
929
 
930
930
  function ember$data$lib$adapters$build$url$mixin$$urlForFind(id, modelName, snapshot) {
931
- Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.');
931
+ Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.', false, {
932
+ id: 'ds.adapter.url-for-find-deprecated',
933
+ until: '2.0.0'
934
+ });
935
+
932
936
  return this._buildURL(modelName, id);
933
937
  }
934
938
 
935
939
  function ember$data$lib$adapters$build$url$mixin$$urlForFindQuery(query, modelName) {
936
- Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.');
940
+ Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.', false, {
941
+ id: 'ds.adapter.url-for-find-query-deprecated',
942
+ until: '2.0.0'
943
+ });
937
944
  return this._buildURL(modelName);
938
945
  }
939
946
 
940
947
  var ember$data$lib$adapters$build$url$mixin$$default = ember$data$lib$adapters$build$url$mixin$$BuildURLMixin;
941
948
 
942
- /**
949
+ var ember$data$lib$adapters$rest$adapter$$get = Ember.get;
950
+ var ember$data$lib$adapters$rest$adapter$$set = Ember.set;
951
+ var ember$data$lib$adapters$rest$adapter$$forEach = Ember.ArrayPolyfills.forEach;/**
943
952
  The REST adapter allows your store to communicate with an HTTP server by
944
953
  transmitting JSON via XHR. Most Ember.js apps that consume a JSON API
945
954
  should use the REST adapter.
946
-
955
+
947
956
  This adapter is designed around the idea that the JSON exchanged with
948
957
  the server should be conventional.
949
-
958
+
950
959
  ## JSON Structure
951
-
960
+
952
961
  The REST adapter expects the JSON returned from your server to follow
953
962
  these conventions.
954
-
963
+
955
964
  ### Object Root
956
-
965
+
957
966
  The JSON payload should be an object that contains the record inside a
958
967
  root property. For example, in response to a `GET` request for
959
968
  `/posts/1`, the JSON should look like this:
960
-
969
+
961
970
  ```js
962
971
  {
963
972
  "post": {
@@ -967,10 +976,10 @@
967
976
  }
968
977
  }
969
978
  ```
970
-
979
+
971
980
  Similarly, in response to a `GET` request for `/posts`, the JSON should
972
981
  look like this:
973
-
982
+
974
983
  ```js
975
984
  {
976
985
  "posts": [
@@ -987,26 +996,26 @@
987
996
  ]
988
997
  }
989
998
  ```
990
-
999
+
991
1000
  ### Conventional Names
992
-
1001
+
993
1002
  Attribute names in your JSON payload should be the camelCased versions of
994
1003
  the attributes in your Ember.js models.
995
-
1004
+
996
1005
  For example, if you have a `Person` model:
997
-
1006
+
998
1007
  ```app/models/person.js
999
1008
  import DS from 'ember-data';
1000
-
1009
+
1001
1010
  export default DS.Model.extend({
1002
1011
  firstName: DS.attr('string'),
1003
1012
  lastName: DS.attr('string'),
1004
1013
  occupation: DS.attr('string')
1005
1014
  });
1006
1015
  ```
1007
-
1016
+
1008
1017
  The JSON returned should look like this:
1009
-
1018
+
1010
1019
  ```js
1011
1020
  {
1012
1021
  "person": {
@@ -1017,45 +1026,45 @@
1017
1026
  }
1018
1027
  }
1019
1028
  ```
1020
-
1029
+
1021
1030
  ## Customization
1022
-
1031
+
1023
1032
  ### Endpoint path customization
1024
-
1033
+
1025
1034
  Endpoint paths can be prefixed with a `namespace` by setting the namespace
1026
1035
  property on the adapter:
1027
-
1036
+
1028
1037
  ```app/adapters/application.js
1029
1038
  import DS from 'ember-data';
1030
-
1039
+
1031
1040
  export default DS.RESTAdapter.extend({
1032
1041
  namespace: 'api/1'
1033
1042
  });
1034
1043
  ```
1035
1044
  Requests for `App.Person` would now target `/api/1/people/1`.
1036
-
1045
+
1037
1046
  ### Host customization
1038
-
1047
+
1039
1048
  An adapter can target other hosts by setting the `host` property.
1040
-
1049
+
1041
1050
  ```app/adapters/application.js
1042
1051
  import DS from 'ember-data';
1043
-
1052
+
1044
1053
  export default DS.RESTAdapter.extend({
1045
1054
  host: 'https://api.example.com'
1046
1055
  });
1047
1056
  ```
1048
-
1057
+
1049
1058
  ### Headers customization
1050
-
1059
+
1051
1060
  Some APIs require HTTP headers, e.g. to provide an API key. Arbitrary
1052
1061
  headers can be set as key/value pairs on the `RESTAdapter`'s `headers`
1053
1062
  object and Ember Data will send them along with each ajax request.
1054
-
1055
-
1063
+
1064
+
1056
1065
  ```app/adapters/application.js
1057
1066
  import DS from 'ember-data';
1058
-
1067
+
1059
1068
  export default DS.RESTAdapter.extend({
1060
1069
  headers: {
1061
1070
  "API_KEY": "secret key",
@@ -1063,14 +1072,14 @@
1063
1072
  }
1064
1073
  });
1065
1074
  ```
1066
-
1075
+
1067
1076
  `headers` can also be used as a computed property to support dynamic
1068
1077
  headers. In the example below, the `session` object has been
1069
1078
  injected into an adapter by Ember's container.
1070
-
1079
+
1071
1080
  ```app/adapters/application.js
1072
1081
  import DS from 'ember-data';
1073
-
1082
+
1074
1083
  export default DS.RESTAdapter.extend({
1075
1084
  headers: function() {
1076
1085
  return {
@@ -1080,17 +1089,17 @@
1080
1089
  }.property("session.authToken")
1081
1090
  });
1082
1091
  ```
1083
-
1092
+
1084
1093
  In some cases, your dynamic headers may require data from some
1085
1094
  object outside of Ember's observer system (for example
1086
1095
  `document.cookie`). You can use the
1087
1096
  [volatile](/api/classes/Ember.ComputedProperty.html#method_volatile)
1088
1097
  function to set the property into a non-cached mode causing the headers to
1089
1098
  be recomputed with every request.
1090
-
1099
+
1091
1100
  ```app/adapters/application.js
1092
1101
  import DS from 'ember-data';
1093
-
1102
+
1094
1103
  export default DS.RESTAdapter.extend({
1095
1104
  headers: function() {
1096
1105
  return {
@@ -1100,17 +1109,15 @@
1100
1109
  }.property().volatile()
1101
1110
  });
1102
1111
  ```
1103
-
1112
+
1104
1113
  @class RESTAdapter
1105
1114
  @constructor
1106
1115
  @namespace DS
1107
1116
  @extends DS.Adapter
1108
1117
  @uses DS.BuildURLMixin
1109
1118
  */
1110
- var ember$data$lib$adapters$rest$adapter$$get = Ember.get;
1111
- var ember$data$lib$adapters$rest$adapter$$set = Ember.set;
1112
- var ember$data$lib$adapters$rest$adapter$$forEach = Ember.ArrayPolyfills.forEach;var ember$data$lib$adapters$rest$adapter$$RestAdapter = ember$data$lib$system$adapter$$default.extend(ember$data$lib$adapters$build$url$mixin$$default, {
1113
- defaultSerializer: '-rest',
1119
+ var ember$data$lib$adapters$rest$adapter$$RestAdapter = ember$data$lib$system$adapter$$default.extend(ember$data$lib$adapters$build$url$mixin$$default, {
1120
+ defaultSerializer: "-rest",
1114
1121
 
1115
1122
  /**
1116
1123
  By default, the RESTAdapter will send the query params sorted alphabetically to the
@@ -1252,8 +1259,11 @@
1252
1259
  @deprecated Use [findRecord](#method_findRecord) instead
1253
1260
  */
1254
1261
  find: function (store, type, id, snapshot) {
1255
- Ember.deprecate('RestAdapter#find has been deprecated and renamed to `findRecord`.');
1256
- return this.ajax(this.buildURL(type.modelName, id, snapshot, 'find'), 'GET');
1262
+ Ember.deprecate("RestAdapter#find has been deprecated and renamed to `findRecord`.", false, {
1263
+ id: "ds.adapter.find-renamed-to-find-record",
1264
+ until: "2.0.0"
1265
+ });
1266
+ return this.ajax(this.buildURL(type.modelName, id, snapshot, "find"), "GET");
1257
1267
  },
1258
1268
 
1259
1269
  /**
@@ -1272,10 +1282,13 @@
1272
1282
  findRecord: function (store, type, id, snapshot) {
1273
1283
  var find = ember$data$lib$adapters$rest$adapter$$RestAdapter.prototype.find;
1274
1284
  if (find !== this.find) {
1275
- Ember.deprecate('RestAdapter#find has been deprecated and renamed to `findRecord`.');
1285
+ Ember.deprecate("RestAdapter#find has been deprecated and renamed to `findRecord`.", false, {
1286
+ id: "ds.adapter.find-renamed-to-find-record",
1287
+ until: "2.0.0"
1288
+ });
1276
1289
  return this.find(store, type, id, snapshot);
1277
1290
  }
1278
- return this.ajax(this.buildURL(type.modelName, id, snapshot, 'findRecord'), 'GET');
1291
+ return this.ajax(this.buildURL(type.modelName, id, snapshot, "findRecord"), "GET");
1279
1292
  },
1280
1293
 
1281
1294
  /**
@@ -1297,9 +1310,9 @@
1297
1310
  query = { since: sinceToken };
1298
1311
  }
1299
1312
 
1300
- url = this.buildURL(type.modelName, null, null, 'findAll');
1313
+ url = this.buildURL(type.modelName, null, null, "findAll");
1301
1314
 
1302
- return this.ajax(url, 'GET', { data: query });
1315
+ return this.ajax(url, "GET", { data: query });
1303
1316
  },
1304
1317
 
1305
1318
  /**
@@ -1318,14 +1331,17 @@
1318
1331
  @deprecated Use [query](#method_query) instead
1319
1332
  */
1320
1333
  findQuery: function (store, type, query) {
1321
- Ember.deprecate('RestAdapter#findQuery has been deprecated and renamed to `query`.');
1322
- var url = this.buildURL(type.modelName, null, null, 'findQuery', query);
1334
+ Ember.deprecate("RestAdapter#findQuery has been deprecated and renamed to `query`.", false, {
1335
+ id: "ds.adapter.find-query-renamed-to-query",
1336
+ until: "2.0.0"
1337
+ });
1338
+ var url = this.buildURL(type.modelName, null, null, "findQuery", query);
1323
1339
 
1324
1340
  if (this.sortQueryParams) {
1325
1341
  query = this.sortQueryParams(query);
1326
1342
  }
1327
1343
 
1328
- return this.ajax(url, 'GET', { data: query });
1344
+ return this.ajax(url, "GET", { data: query });
1329
1345
  },
1330
1346
 
1331
1347
  /**
@@ -1345,17 +1361,45 @@
1345
1361
  query: function (store, type, query) {
1346
1362
  var findQuery = ember$data$lib$adapters$rest$adapter$$RestAdapter.prototype.findQuery;
1347
1363
  if (findQuery !== this.findQuery) {
1348
- Ember.deprecate('RestAdapter#findQuery has been deprecated and renamed to `query`.');
1364
+ Ember.deprecate("RestAdapter#findQuery has been deprecated and renamed to `query`.", false, {
1365
+ id: "ds.adapter.find-query-renamed-to-query",
1366
+ until: "2.0.0"
1367
+ });
1349
1368
  return this.findQuery(store, type, query);
1350
1369
  }
1351
1370
 
1352
- var url = this.buildURL(type.modelName, null, null, 'query', query);
1371
+ var url = this.buildURL(type.modelName, null, null, "query", query);
1353
1372
 
1354
1373
  if (this.sortQueryParams) {
1355
1374
  query = this.sortQueryParams(query);
1356
1375
  }
1357
1376
 
1358
- return this.ajax(url, 'GET', { data: query });
1377
+ return this.ajax(url, "GET", { data: query });
1378
+ },
1379
+
1380
+ /**
1381
+ Called by the store in order to fetch a JSON object for
1382
+ the record that matches a particular query.
1383
+ The `queryRecord` method makes an Ajax (HTTP GET) request to a URL
1384
+ computed by `buildURL`, and returns a promise for the resulting
1385
+ payload.
1386
+ The `query` argument is a simple JavaScript object that will be passed directly
1387
+ to the server as parameters.
1388
+ @private
1389
+ @method queryRecord
1390
+ @param {DS.Store} store
1391
+ @param {DS.Model} type
1392
+ @param {Object} query
1393
+ @return {Promise} promise
1394
+ */
1395
+ queryRecord: function (store, type, query) {
1396
+ var url = this.buildURL(type.modelName, null, null, "queryRecord", query);
1397
+
1398
+ if (this.sortQueryParams) {
1399
+ query = this.sortQueryParams(query);
1400
+ }
1401
+
1402
+ return this.ajax(url, "GET", { data: query });
1359
1403
  },
1360
1404
 
1361
1405
  /**
@@ -1385,8 +1429,8 @@
1385
1429
  @return {Promise} promise
1386
1430
  */
1387
1431
  findMany: function (store, type, ids, snapshots) {
1388
- var url = this.buildURL(type.modelName, ids, snapshots, 'findMany');
1389
- return this.ajax(url, 'GET', { data: { ids: ids } });
1432
+ var url = this.buildURL(type.modelName, ids, snapshots, "findMany");
1433
+ return this.ajax(url, "GET", { data: { ids: ids } });
1390
1434
  },
1391
1435
 
1392
1436
  /**
@@ -1415,9 +1459,9 @@
1415
1459
  var id = snapshot.id;
1416
1460
  var type = snapshot.modelName;
1417
1461
 
1418
- url = this.urlPrefix(url, this.buildURL(type, id, null, 'findHasMany'));
1462
+ url = this.urlPrefix(url, this.buildURL(type, id, null, "findHasMany"));
1419
1463
 
1420
- return this.ajax(url, 'GET');
1464
+ return this.ajax(url, "GET");
1421
1465
  },
1422
1466
 
1423
1467
  /**
@@ -1446,8 +1490,8 @@
1446
1490
  var id = snapshot.id;
1447
1491
  var type = snapshot.modelName;
1448
1492
 
1449
- url = this.urlPrefix(url, this.buildURL(type, id, null, 'findBelongsTo'));
1450
- return this.ajax(url, 'GET');
1493
+ url = this.urlPrefix(url, this.buildURL(type, id, null, "findBelongsTo"));
1494
+ return this.ajax(url, "GET");
1451
1495
  },
1452
1496
 
1453
1497
  /**
@@ -1466,7 +1510,7 @@
1466
1510
  createRecord: function (store, type, snapshot) {
1467
1511
  var data = {};
1468
1512
  var serializer = store.serializerFor(type.modelName);
1469
- var url = this.buildURL(type.modelName, null, snapshot, 'createRecord');
1513
+ var url = this.buildURL(type.modelName, null, snapshot, "createRecord");
1470
1514
 
1471
1515
  serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
1472
1516
 
@@ -1493,7 +1537,7 @@
1493
1537
  serializer.serializeIntoHash(data, type, snapshot);
1494
1538
 
1495
1539
  var id = snapshot.id;
1496
- var url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');
1540
+ var url = this.buildURL(type.modelName, id, snapshot, "updateRecord");
1497
1541
 
1498
1542
  return this.ajax(url, "PUT", { data: data });
1499
1543
  },
@@ -1510,24 +1554,24 @@
1510
1554
  deleteRecord: function (store, type, snapshot) {
1511
1555
  var id = snapshot.id;
1512
1556
 
1513
- return this.ajax(this.buildURL(type.modelName, id, snapshot, 'deleteRecord'), "DELETE");
1557
+ return this.ajax(this.buildURL(type.modelName, id, snapshot, "deleteRecord"), "DELETE");
1514
1558
  },
1515
1559
 
1516
1560
  _stripIDFromURL: function (store, snapshot) {
1517
1561
  var url = this.buildURL(snapshot.modelName, snapshot.id, snapshot);
1518
1562
 
1519
- var expandedURL = url.split('/');
1563
+ var expandedURL = url.split("/");
1520
1564
  //Case when the url is of the format ...something/:id
1521
1565
  var lastSegment = expandedURL[expandedURL.length - 1];
1522
1566
  var id = snapshot.id;
1523
1567
  if (lastSegment === id) {
1524
1568
  expandedURL[expandedURL.length - 1] = "";
1525
- } else if (ember$data$lib$adapters$rest$adapter$$endsWith(lastSegment, '?id=' + id)) {
1569
+ } else if (ember$data$lib$adapters$rest$adapter$$endsWith(lastSegment, "?id=" + id)) {
1526
1570
  //Case when the url is of the format ...something?id=:id
1527
1571
  expandedURL[expandedURL.length - 1] = lastSegment.substring(0, lastSegment.length - id.length - 1);
1528
1572
  }
1529
1573
 
1530
- return expandedURL.join('/');
1574
+ return expandedURL.join("/");
1531
1575
  },
1532
1576
 
1533
1577
  // http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
@@ -1586,7 +1630,7 @@
1586
1630
 
1587
1631
  var groupsArray = [];
1588
1632
  groups.forEach(function (group, key) {
1589
- var paramNameLength = '&ids%5B%5D='.length;
1633
+ var paramNameLength = "&ids%5B%5D=".length;
1590
1634
  var splitGroups = splitGroupToFitInUrl(group, maxURLLength, paramNameLength);
1591
1635
 
1592
1636
  ember$data$lib$adapters$rest$adapter$$forEach.call(splitGroups, function (splitGroup) {
@@ -1706,7 +1750,10 @@
1706
1750
  var response = undefined;
1707
1751
 
1708
1752
  if (adapter.ajaxSuccess) {
1709
- Ember.deprecate("`ajaxSuccess` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead.");
1753
+ Ember.deprecate("`ajaxSuccess` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead.", false, {
1754
+ id: "ds.adapter.ajax-success-deprecated",
1755
+ until: "2.0.0"
1756
+ });
1710
1757
  response = adapter.ajaxSuccess(jqXHR, payload);
1711
1758
  }
1712
1759
 
@@ -1725,16 +1772,19 @@
1725
1772
  var error = undefined;
1726
1773
 
1727
1774
  if (adapter.ajaxError) {
1728
- Ember.deprecate("`ajaxError` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead.");
1775
+ Ember.deprecate("`ajaxError` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead.", false, {
1776
+ id: "ds.adapter.ajax-error-deprecated",
1777
+ until: "2.0.0"
1778
+ });
1729
1779
  error = adapter.ajaxError(jqXHR, textStatus, errorThrown);
1730
1780
  }
1731
1781
 
1732
1782
  if (!(error instanceof Error)) {
1733
1783
  if (errorThrown instanceof Error) {
1734
1784
  error = errorThrown;
1735
- } else if (textStatus === 'timeout') {
1785
+ } else if (textStatus === "timeout") {
1736
1786
  error = new ember$data$lib$adapters$errors$$TimeoutError();
1737
- } else if (textStatus === 'abort') {
1787
+ } else if (textStatus === "abort") {
1738
1788
  error = new ember$data$lib$adapters$errors$$AbortError();
1739
1789
  } else {
1740
1790
  error = adapter.handleResponse(jqXHR.status, ember$data$lib$adapters$rest$adapter$$parseResponseHeaders(jqXHR.getAllResponseHeaders()), adapter.parseErrorResponse(jqXHR.responseText) || errorThrown);
@@ -1745,7 +1795,7 @@
1745
1795
  };
1746
1796
 
1747
1797
  Ember.$.ajax(hash);
1748
- }, 'DS: RESTAdapter#ajax ' + type + ' to ' + url);
1798
+ }, "DS: RESTAdapter#ajax " + type + " to " + url);
1749
1799
  },
1750
1800
 
1751
1801
  /**
@@ -1760,15 +1810,15 @@
1760
1810
  var hash = options || {};
1761
1811
  hash.url = url;
1762
1812
  hash.type = type;
1763
- hash.dataType = 'json';
1813
+ hash.dataType = "json";
1764
1814
  hash.context = this;
1765
1815
 
1766
- if (hash.data && type !== 'GET') {
1767
- hash.contentType = 'application/json; charset=utf-8';
1816
+ if (hash.data && type !== "GET") {
1817
+ hash.contentType = "application/json; charset=utf-8";
1768
1818
  hash.data = JSON.stringify(hash.data);
1769
1819
  }
1770
1820
 
1771
- var headers = ember$data$lib$adapters$rest$adapter$$get(this, 'headers');
1821
+ var headers = ember$data$lib$adapters$rest$adapter$$get(this, "headers");
1772
1822
  if (headers !== undefined) {
1773
1823
  hash.beforeSend = function (xhr) {
1774
1824
  ember$data$lib$adapters$rest$adapter$$forEach.call(ember$data$lib$system$object$polyfills$$keysFunc(headers), function (key) {
@@ -1805,7 +1855,7 @@
1805
1855
  @return {Object} errors payload
1806
1856
  */
1807
1857
  normalizeErrorResponse: function (status, headers, payload) {
1808
- if (payload && typeof payload === 'object' && payload.errors) {
1858
+ if (payload && typeof payload === "object" && payload.errors) {
1809
1859
  return payload.errors;
1810
1860
  } else {
1811
1861
  return [{
@@ -1823,12 +1873,12 @@
1823
1873
  return headers;
1824
1874
  }
1825
1875
 
1826
- var headerPairs = headerStr.split('\u000d\u000a');
1876
+ var headerPairs = headerStr.split("\r\n");
1827
1877
  for (var i = 0; i < headerPairs.length; i++) {
1828
1878
  var headerPair = headerPairs[i];
1829
1879
  // Can't use split() here because it does the wrong thing
1830
1880
  // if the header value has the string ": " in it.
1831
- var index = headerPair.indexOf('\u003a\u0020');
1881
+ var index = headerPair.indexOf(": ");
1832
1882
  if (index > 0) {
1833
1883
  var key = headerPair.substring(0, index);
1834
1884
  var val = headerPair.substring(index + 2);
@@ -1841,7 +1891,7 @@
1841
1891
 
1842
1892
  //From http://stackoverflow.com/questions/280634/endswith-in-javascript
1843
1893
  function ember$data$lib$adapters$rest$adapter$$endsWith(string, suffix) {
1844
- if (typeof String.prototype.endsWith !== 'function') {
1894
+ if (typeof String.prototype.endsWith !== "function") {
1845
1895
  return string.indexOf(suffix, string.length - suffix.length) !== -1;
1846
1896
  } else {
1847
1897
  return string.endsWith(suffix);
@@ -1849,16 +1899,22 @@
1849
1899
  }
1850
1900
 
1851
1901
  if (Ember.platform.hasPropertyAccessors) {
1852
- Ember.defineProperty(ember$data$lib$adapters$rest$adapter$$RestAdapter.prototype, 'maxUrlLength', {
1902
+ Ember.defineProperty(ember$data$lib$adapters$rest$adapter$$RestAdapter.prototype, "maxUrlLength", {
1853
1903
  enumerable: false,
1854
1904
  get: function () {
1855
- Ember.deprecate('maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.');
1905
+ Ember.deprecate("maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.", false, {
1906
+ id: "ds.adapter.max-url-length-deprecated-case",
1907
+ until: "2.0.0"
1908
+ });
1856
1909
  return this.maxURLLength;
1857
1910
  },
1858
1911
 
1859
1912
  set: function (value) {
1860
- Ember.deprecate('maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.');
1861
- ember$data$lib$adapters$rest$adapter$$set(this, 'maxURLLength', value);
1913
+ Ember.deprecate("maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.", false, {
1914
+ id: "ds.adapter.max-url-length-deprecated-case",
1915
+ until: "2.0.0"
1916
+ });
1917
+ ember$data$lib$adapters$rest$adapter$$set(this, "maxURLLength", value);
1862
1918
  }
1863
1919
  });
1864
1920
  }
@@ -1972,7 +2028,7 @@
1972
2028
  }
1973
2029
 
1974
2030
  if (!Object.create && !Object.create(null).hasOwnProperty) {
1975
- throw new Error("This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg");
2031
+ throw new Error('This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg');
1976
2032
  }
1977
2033
 
1978
2034
  function ember$inflector$lib$lib$system$inflector$$makeDictionary() {
@@ -2108,12 +2164,12 @@
2108
2164
  @param {Object} irregular
2109
2165
  */
2110
2166
  inflect: function (word, typeRules, irregular) {
2111
- var inflection, substitution, result, lowercase, wordSplit, firstPhrase, lastWord, isBlank, isCamelized, rule;
2167
+ var inflection, substitution, result, lowercase, wordSplit, firstPhrase, lastWord, isBlank, isCamelized, isUncountable, isIrregular, rule;
2112
2168
 
2113
2169
  isBlank = !word || ember$inflector$lib$lib$system$inflector$$BLANK_REGEX.test(word);
2114
2170
 
2115
2171
  isCamelized = ember$inflector$lib$lib$system$inflector$$CAMELIZED_REGEX.test(word);
2116
- firstPhrase = "";
2172
+ firstPhrase = '';
2117
2173
 
2118
2174
  if (isBlank) {
2119
2175
  return word;
@@ -2121,28 +2177,25 @@
2121
2177
 
2122
2178
  lowercase = word.toLowerCase();
2123
2179
  wordSplit = ember$inflector$lib$lib$system$inflector$$LAST_WORD_DASHED_REGEX.exec(word) || ember$inflector$lib$lib$system$inflector$$LAST_WORD_CAMELIZED_REGEX.exec(word);
2124
-
2125
2180
  if (wordSplit) {
2126
2181
  firstPhrase = wordSplit[1];
2127
2182
  lastWord = wordSplit[2].toLowerCase();
2128
2183
  }
2129
2184
 
2130
- for (rule in this.rules.uncountable) {
2131
- if (lowercase.match(rule + "$")) {
2132
- return word;
2133
- }
2134
- }
2185
+ isUncountable = this.rules.uncountable[lowercase] || this.rules.uncountable[lastWord];
2135
2186
 
2136
- for (rule in this.rules.irregular) {
2137
- if (lowercase.match(rule + "$")) {
2138
- substitution = irregular[rule];
2187
+ if (isUncountable) {
2188
+ return word;
2189
+ }
2139
2190
 
2140
- if (isCamelized && irregular[lastWord]) {
2141
- substitution = ember$inflector$lib$lib$system$inflector$$capitalize(substitution);
2142
- rule = ember$inflector$lib$lib$system$inflector$$capitalize(rule);
2143
- }
2191
+ isIrregular = irregular && (irregular[lowercase] || irregular[lastWord]);
2144
2192
 
2145
- return word.replace(rule, substitution);
2193
+ if (isIrregular) {
2194
+ if (irregular[lowercase]) {
2195
+ return isIrregular;
2196
+ } else {
2197
+ isIrregular = isCamelized ? ember$inflector$lib$lib$system$inflector$$capitalize(isIrregular) : isIrregular;
2198
+ return firstPhrase + isIrregular;
2146
2199
  }
2147
2200
  }
2148
2201
 
@@ -2271,7 +2324,7 @@
2271
2324
  if (count !== 1) {
2272
2325
  word = ember$inflector$lib$lib$system$string$$pluralize(word);
2273
2326
  }
2274
- return count + " " + word;
2327
+ return count + ' ' + word;
2275
2328
  }
2276
2329
  });
2277
2330
 
@@ -2302,16 +2355,18 @@
2302
2355
  ember$lib$main$$default.String.singularize = ember$inflector$lib$lib$system$string$$singularize;
2303
2356
  var ember$inflector$lib$main$$default = ember$inflector$lib$lib$system$inflector$$default;
2304
2357
 
2305
- if (typeof define !== 'undefined' && define.amd) {
2306
- define('ember-inflector', ['exports'], function (__exports__) {
2307
- __exports__['default'] = ember$inflector$lib$lib$system$inflector$$default;
2358
+ if (typeof define !== "undefined" && define.amd) {
2359
+ define("ember-inflector", ["exports"], function (__exports__) {
2360
+ __exports__["default"] = ember$inflector$lib$lib$system$inflector$$default;
2308
2361
  return ember$inflector$lib$lib$system$inflector$$default;
2309
2362
  });
2310
- } else if (typeof module !== 'undefined' && module['exports']) {
2311
- module['exports'] = ember$inflector$lib$lib$system$inflector$$default;
2363
+ } else if (typeof module !== "undefined" && module["exports"]) {
2364
+ module["exports"] = ember$inflector$lib$lib$system$inflector$$default;
2312
2365
  }
2313
2366
 
2314
2367
  var activemodel$adapter$lib$system$active$model$adapter$$_Ember$String = ember$lib$main$$default.String;
2368
+ var activemodel$adapter$lib$system$active$model$adapter$$decamelize = activemodel$adapter$lib$system$active$model$adapter$$_Ember$String.decamelize;
2369
+ var activemodel$adapter$lib$system$active$model$adapter$$underscore = activemodel$adapter$lib$system$active$model$adapter$$_Ember$String.underscore;
2315
2370
 
2316
2371
  /**
2317
2372
  @module ember-data
@@ -2408,8 +2463,6 @@
2408
2463
  @extends DS.RESTAdapter
2409
2464
  **/
2410
2465
 
2411
- var activemodel$adapter$lib$system$active$model$adapter$$decamelize = activemodel$adapter$lib$system$active$model$adapter$$_Ember$String.decamelize;
2412
- var activemodel$adapter$lib$system$active$model$adapter$$underscore = activemodel$adapter$lib$system$active$model$adapter$$_Ember$String.underscore;
2413
2466
  var activemodel$adapter$lib$system$active$model$adapter$$ActiveModelAdapter = ember$data$lib$adapters$rest$adapter$$default.extend({
2414
2467
  defaultSerializer: '-active-model',
2415
2468
  /**
@@ -2654,7 +2707,7 @@
2654
2707
  @type {String}
2655
2708
  @default 'id'
2656
2709
  */
2657
- primaryKey: 'id',
2710
+ primaryKey: "id",
2658
2711
 
2659
2712
  /**
2660
2713
  The `attrs` object can be used to declare a simple mapping between
@@ -2705,7 +2758,7 @@
2705
2758
  @property attrs
2706
2759
  @type {Object}
2707
2760
  */
2708
- mergedProperties: ['attrs'],
2761
+ mergedProperties: ["attrs"],
2709
2762
 
2710
2763
  /**
2711
2764
  Given a subclass of `DS.Model` and a JSON object this method will
@@ -2761,25 +2814,25 @@
2761
2814
  */
2762
2815
  normalizeResponse: function (store, primaryModelClass, payload, id, requestType) {
2763
2816
  switch (requestType) {
2764
- case 'findRecord':
2817
+ case "findRecord":
2765
2818
  return this.normalizeFindRecordResponse.apply(this, arguments);
2766
- case 'queryRecord':
2819
+ case "queryRecord":
2767
2820
  return this.normalizeQueryRecordResponse.apply(this, arguments);
2768
- case 'findAll':
2821
+ case "findAll":
2769
2822
  return this.normalizeFindAllResponse.apply(this, arguments);
2770
- case 'findBelongsTo':
2823
+ case "findBelongsTo":
2771
2824
  return this.normalizeFindBelongsToResponse.apply(this, arguments);
2772
- case 'findHasMany':
2825
+ case "findHasMany":
2773
2826
  return this.normalizeFindHasManyResponse.apply(this, arguments);
2774
- case 'findMany':
2827
+ case "findMany":
2775
2828
  return this.normalizeFindManyResponse.apply(this, arguments);
2776
- case 'query':
2829
+ case "query":
2777
2830
  return this.normalizeQueryResponse.apply(this, arguments);
2778
- case 'createRecord':
2831
+ case "createRecord":
2779
2832
  return this.normalizeCreateRecordResponse.apply(this, arguments);
2780
- case 'deleteRecord':
2833
+ case "deleteRecord":
2781
2834
  return this.normalizeDeleteRecordResponse.apply(this, arguments);
2782
- case 'updateRecord':
2835
+ case "updateRecord":
2783
2836
  return this.normalizeUpdateRecordResponse.apply(this, arguments);
2784
2837
  }
2785
2838
  },
@@ -2974,7 +3027,7 @@
2974
3027
 
2975
3028
  var meta = this.extractMeta(store, primaryModelClass, payload);
2976
3029
  if (meta) {
2977
- Ember.assert('The `meta` returned from `extractMeta` has to be an object, not "' + Ember.typeOf(meta) + '".', Ember.typeOf(meta) === 'object');
3030
+ Ember.assert("The `meta` returned from `extractMeta` has to be an object, not \"" + Ember.typeOf(meta) + "\".", Ember.typeOf(meta) === "object");
2978
3031
  documentHash.meta = meta;
2979
3032
  }
2980
3033
 
@@ -3038,7 +3091,7 @@
3038
3091
  @return {Object}
3039
3092
  */
3040
3093
  normalize: function (typeClass, hash) {
3041
- if (this.get('isNewSerializerAPI')) {
3094
+ if (this.get("isNewSerializerAPI")) {
3042
3095
  return ember$data$lib$serializers$json$serializer$$_newNormalize.apply(this, arguments);
3043
3096
  }
3044
3097
 
@@ -3063,7 +3116,7 @@
3063
3116
  @return {String}
3064
3117
  */
3065
3118
  extractId: function (modelClass, resourceHash) {
3066
- var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, 'primaryKey');
3119
+ var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, "primaryKey");
3067
3120
  var id = resourceHash[primaryKey];
3068
3121
  return ember$data$lib$system$coerce$id$$default(id);
3069
3122
  },
@@ -3081,7 +3134,7 @@
3081
3134
  var attributes = {};
3082
3135
 
3083
3136
  modelClass.eachAttribute(function (key) {
3084
- attributeKey = this.keyForAttribute(key, 'deserialize');
3137
+ attributeKey = this.keyForAttribute(key, "deserialize");
3085
3138
  if (resourceHash.hasOwnProperty(attributeKey)) {
3086
3139
  attributes[key] = resourceHash[attributeKey];
3087
3140
  }
@@ -3107,7 +3160,7 @@
3107
3160
  is polymorphic. It could however also be embedded resources that the
3108
3161
  EmbeddedRecordsMixin has be able to process.
3109
3162
  */
3110
- if (Ember.typeOf(relationshipHash) === 'object') {
3163
+ if (Ember.typeOf(relationshipHash) === "object") {
3111
3164
  if (relationshipHash.id) {
3112
3165
  relationshipHash.id = ember$data$lib$system$coerce$id$$default(relationshipHash.id);
3113
3166
  }
@@ -3132,13 +3185,13 @@
3132
3185
 
3133
3186
  modelClass.eachRelationship(function (key, relationshipMeta) {
3134
3187
  var relationship = null;
3135
- var relationshipKey = this.keyForRelationship(key, relationshipMeta.kind, 'deserialize');
3188
+ var relationshipKey = this.keyForRelationship(key, relationshipMeta.kind, "deserialize");
3136
3189
  if (resourceHash.hasOwnProperty(relationshipKey)) {
3137
3190
  var data = null;
3138
3191
  var relationshipHash = resourceHash[relationshipKey];
3139
- if (relationshipMeta.kind === 'belongsTo') {
3192
+ if (relationshipMeta.kind === "belongsTo") {
3140
3193
  data = this.extractRelationship(relationshipMeta.type, relationshipHash);
3141
- } else if (relationshipMeta.kind === 'hasMany') {
3194
+ } else if (relationshipMeta.kind === "hasMany") {
3142
3195
  data = Ember.A(relationshipHash).map(function (item) {
3143
3196
  return this.extractRelationship(relationshipMeta.type, item);
3144
3197
  }, this);
@@ -3202,7 +3255,7 @@
3202
3255
 
3203
3256
  if (this.keyForAttribute) {
3204
3257
  typeClass.eachAttribute(function (key) {
3205
- payloadKey = this.keyForAttribute(key, 'deserialize');
3258
+ payloadKey = this.keyForAttribute(key, "deserialize");
3206
3259
  if (key === payloadKey) {
3207
3260
  return;
3208
3261
  }
@@ -3225,7 +3278,7 @@
3225
3278
 
3226
3279
  if (this.keyForRelationship) {
3227
3280
  typeClass.eachRelationship(function (key, relationship) {
3228
- payloadKey = this.keyForRelationship(key, relationship.kind, 'deserialize');
3281
+ payloadKey = this.keyForRelationship(key, relationship.kind, "deserialize");
3229
3282
  if (key === payloadKey) {
3230
3283
  return;
3231
3284
  }
@@ -3244,7 +3297,7 @@
3244
3297
  @private
3245
3298
  */
3246
3299
  normalizeUsingDeclaredMapping: function (typeClass, hash) {
3247
- var attrs = ember$data$lib$serializers$json$serializer$$get(this, 'attrs');
3300
+ var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
3248
3301
  var payloadKey, key;
3249
3302
 
3250
3303
  if (attrs) {
@@ -3267,9 +3320,9 @@
3267
3320
  @private
3268
3321
  */
3269
3322
  normalizeId: function (hash) {
3270
- var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, 'primaryKey');
3323
+ var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, "primaryKey");
3271
3324
 
3272
- if (primaryKey === 'id') {
3325
+ if (primaryKey === "id") {
3273
3326
  return;
3274
3327
  }
3275
3328
 
@@ -3297,7 +3350,7 @@
3297
3350
  @return {String} key
3298
3351
  */
3299
3352
  _getMappedKey: function (key) {
3300
- var attrs = ember$data$lib$serializers$json$serializer$$get(this, 'attrs');
3353
+ var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
3301
3354
  var mappedKey;
3302
3355
  if (attrs && attrs[key]) {
3303
3356
  mappedKey = attrs[key];
@@ -3306,7 +3359,7 @@
3306
3359
  if (mappedKey.key) {
3307
3360
  mappedKey = mappedKey.key;
3308
3361
  }
3309
- if (typeof mappedKey === 'string') {
3362
+ if (typeof mappedKey === "string") {
3310
3363
  key = mappedKey;
3311
3364
  }
3312
3365
  }
@@ -3323,7 +3376,7 @@
3323
3376
  @return {boolean} true if the key can be serialized
3324
3377
  */
3325
3378
  _canSerialize: function (key) {
3326
- var attrs = ember$data$lib$serializers$json$serializer$$get(this, 'attrs');
3379
+ var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
3327
3380
 
3328
3381
  return !attrs || !attrs[key] || attrs[key].serialize !== false;
3329
3382
  },
@@ -3338,7 +3391,7 @@
3338
3391
  @return {boolean} true if the key must be serialized
3339
3392
  */
3340
3393
  _mustSerialize: function (key) {
3341
- var attrs = ember$data$lib$serializers$json$serializer$$get(this, 'attrs');
3394
+ var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
3342
3395
 
3343
3396
  return attrs && attrs[key] && attrs[key].serialize === true;
3344
3397
  },
@@ -3357,7 +3410,7 @@
3357
3410
  if (this._mustSerialize(key)) {
3358
3411
  return true;
3359
3412
  }
3360
- return this._canSerialize(key) && (relationshipType === 'manyToNone' || relationshipType === 'manyToMany');
3413
+ return this._canSerialize(key) && (relationshipType === "manyToNone" || relationshipType === "manyToMany");
3361
3414
  },
3362
3415
 
3363
3416
  // SERIALIZE
@@ -3481,7 +3534,7 @@
3481
3534
  var id = snapshot.id;
3482
3535
 
3483
3536
  if (id) {
3484
- json[ember$data$lib$serializers$json$serializer$$get(this, 'primaryKey')] = id;
3537
+ json[ember$data$lib$serializers$json$serializer$$get(this, "primaryKey")] = id;
3485
3538
  }
3486
3539
  }
3487
3540
 
@@ -3490,9 +3543,9 @@
3490
3543
  }, this);
3491
3544
 
3492
3545
  snapshot.eachRelationship(function (key, relationship) {
3493
- if (relationship.kind === 'belongsTo') {
3546
+ if (relationship.kind === "belongsTo") {
3494
3547
  this.serializeBelongsTo(snapshot, json, relationship);
3495
- } else if (relationship.kind === 'hasMany') {
3548
+ } else if (relationship.kind === "hasMany") {
3496
3549
  this.serializeHasMany(snapshot, json, relationship);
3497
3550
  }
3498
3551
  }, this);
@@ -3562,7 +3615,7 @@
3562
3615
  var payloadKey = this._getMappedKey(key);
3563
3616
 
3564
3617
  if (payloadKey === key && this.keyForAttribute) {
3565
- payloadKey = this.keyForAttribute(key, 'serialize');
3618
+ payloadKey = this.keyForAttribute(key, "serialize");
3566
3619
  }
3567
3620
 
3568
3621
  json[payloadKey] = value;
@@ -3913,9 +3966,12 @@
3913
3966
  @return {Object} json The deserialized payload
3914
3967
  */
3915
3968
  extractSingle: function (store, typeClass, payload, id, requestType) {
3916
- if (!this.get('didDeprecateNormalizePayload')) {
3917
- this.set('didDeprecateNormalizePayload', true);
3918
- Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === ember$data$lib$serializers$json$serializer$$JSONSerializer.prototype.normalizePayload);
3969
+ if (!this.get("didDeprecateNormalizePayload")) {
3970
+ this.set("didDeprecateNormalizePayload", true);
3971
+ Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$JSONSerializer.prototype.normalizePayload, {
3972
+ id: "ds.serializer.normalize-payload-deprecated",
3973
+ until: "2.0.0"
3974
+ });
3919
3975
  }
3920
3976
  var normalizedPayload = this.normalizePayload(payload);
3921
3977
  return this.normalize(typeClass, normalizedPayload);
@@ -3944,9 +4000,12 @@
3944
4000
  @return {Array} array An array of deserialized objects
3945
4001
  */
3946
4002
  extractArray: function (store, typeClass, arrayPayload, id, requestType) {
3947
- if (!this.get('didDeprecateNormalizePayload')) {
3948
- this.set('didDeprecateNormalizePayload', true);
3949
- Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === ember$data$lib$serializers$json$serializer$$JSONSerializer.prototype.normalizePayload);
4003
+ if (!this.get("didDeprecateNormalizePayload")) {
4004
+ this.set("didDeprecateNormalizePayload", true);
4005
+ Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$JSONSerializer.prototype.normalizePayload, {
4006
+ id: "ds.serializer.normalize-payload-deprecated",
4007
+ until: "2.0.0"
4008
+ });
3950
4009
  }
3951
4010
  var normalizedPayload = this.normalizePayload(arrayPayload);
3952
4011
  var serializer = this;
@@ -3978,7 +4037,7 @@
3978
4037
  @param {Object} payload
3979
4038
  */
3980
4039
  extractMeta: function (store, typeClass, payload) {
3981
- if (this.get('isNewSerializerAPI')) {
4040
+ if (this.get("isNewSerializerAPI")) {
3982
4041
  return ember$data$lib$serializers$json$serializer$$_newExtractMeta.apply(this, arguments);
3983
4042
  }
3984
4043
 
@@ -4014,7 +4073,7 @@
4014
4073
  @return {Object} json The deserialized errors
4015
4074
  */
4016
4075
  extractErrors: function (store, typeClass, payload, id) {
4017
- if (payload && typeof payload === 'object' && payload.errors) {
4076
+ if (payload && typeof payload === "object" && payload.errors) {
4018
4077
  payload = ember$data$lib$adapters$errors$$errorsArrayToHash(payload.errors);
4019
4078
  this.normalizeErrors(typeClass, payload);
4020
4079
  }
@@ -4088,7 +4147,7 @@
4088
4147
  @return {DS.Transform} transform
4089
4148
  */
4090
4149
  transformFor: function (attributeType, skipAssertion) {
4091
- var transform = this.container.lookup('transform:' + attributeType);
4150
+ var transform = this.container.lookup("transform:" + attributeType);
4092
4151
  Ember.assert("Unable to find transform for '" + attributeType + "'", skipAssertion || !!transform);
4093
4152
  return transform;
4094
4153
  }
@@ -4129,7 +4188,7 @@
4129
4188
  @private
4130
4189
  */
4131
4190
  function ember$data$lib$serializers$json$serializer$$_newExtractMeta(store, modelClass, payload) {
4132
- if (payload && payload.hasOwnProperty('meta')) {
4191
+ if (payload && payload.hasOwnProperty("meta")) {
4133
4192
  var meta = payload.meta;
4134
4193
  delete payload.meta;
4135
4194
  return meta;
@@ -4267,97 +4326,13 @@
4267
4326
  });
4268
4327
  };
4269
4328
 
4270
- /**
4271
- @module ember-data
4272
- */
4273
-
4274
- /**
4275
- Holds validation errors for a given record organized by attribute names.
4276
-
4277
- Every DS.Model has an `errors` property that is an instance of
4278
- `DS.Errors`. This can be used to display validation error
4279
- messages returned from the server when a `record.save()` rejects.
4280
- This works automatically with `DS.ActiveModelAdapter`, but you
4281
- can implement [ajaxError](/api/data/classes/DS.RESTAdapter.html#method_ajaxError)
4282
- in other adapters as well.
4283
-
4284
- For Example, if you had an `User` model that looked like this:
4285
-
4286
- ```app/models/user.js
4287
- import DS from 'ember-data';
4288
-
4289
- export default DS.Model.extend({
4290
- username: attr('string'),
4291
- email: attr('string')
4292
- });
4293
- ```
4294
- And you attempted to save a record that did not validate on the backend.
4295
-
4296
- ```javascript
4297
- var user = store.createRecord('user', {
4298
- username: 'tomster',
4299
- email: 'invalidEmail'
4300
- });
4301
- user.save();
4302
- ```
4303
-
4304
- Your backend data store might return a response that looks like
4305
- this. This response will be used to populate the error object.
4306
-
4307
- ```javascript
4308
- {
4309
- "errors": {
4310
- "username": ["This username is already taken!"],
4311
- "email": ["Doesn't look like a valid email."]
4312
- }
4313
- }
4314
- ```
4315
-
4316
- Errors can be displayed to the user by accessing their property name
4317
- to get an array of all the error objects for that property. Each
4318
- error object is a JavaScript object with two keys:
4319
-
4320
- - `message` A string containing the error message from the backend
4321
- - `attribute` The name of the property associated with this error message
4322
-
4323
- ```handlebars
4324
- <label>Username: {{input value=username}} </label>
4325
- {{#each model.errors.username as |error|}}
4326
- <div class="error">
4327
- {{error.message}}
4328
- </div>
4329
- {{/each}}
4330
-
4331
- <label>Email: {{input value=email}} </label>
4332
- {{#each model.errors.email as |error|}}
4333
- <div class="error">
4334
- {{error.message}}
4335
- </div>
4336
- {{/each}}
4337
- ```
4338
-
4339
- You can also access the special `messages` property on the error
4340
- object to get an array of all the error strings.
4341
-
4342
- ```handlebars
4343
- {{#each model.errors.messages as |message|}}
4344
- <div class="error">
4345
- {{message}}
4346
- </div>
4347
- {{/each}}
4348
- ```
4349
-
4350
- @class Errors
4351
- @namespace DS
4352
- @extends Ember.Object
4353
- @uses Ember.Enumerable
4354
- @uses Ember.Evented
4355
- */
4356
4329
  var ember$data$lib$system$model$errors$$get = Ember.get;
4330
+ var ember$data$lib$system$model$errors$$set = Ember.set;
4357
4331
  var ember$data$lib$system$model$errors$$isEmpty = Ember.isEmpty;
4358
4332
  var ember$data$lib$system$model$errors$$map = Ember.ArrayPolyfills.map;
4333
+ var ember$data$lib$system$model$errors$$makeArray = Ember.makeArray;
4359
4334
 
4360
- var ember$data$lib$system$model$errors$$default = Ember.Object.extend(Ember.Enumerable, Ember.Evented, {
4335
+ var ember$data$lib$system$model$errors$$default = Ember.ArrayProxy.extend(Ember.Evented, {
4361
4336
  /**
4362
4337
  Register with target handler
4363
4338
  @method registerHandlers
@@ -4439,21 +4414,12 @@
4439
4414
  return errors;
4440
4415
  },
4441
4416
 
4442
- /**
4443
- @method nextObject
4444
- @private
4445
- */
4446
- nextObject: function (index, previousObject, context) {
4447
- return ember$data$lib$system$model$errors$$get(this, 'content').objectAt(index);
4448
- },
4449
-
4450
4417
  /**
4451
4418
  Total number of errors.
4452
4419
  @property length
4453
4420
  @type {Number}
4454
4421
  @readOnly
4455
4422
  */
4456
- length: Ember.computed.oneWay('content.length').readOnly(),
4457
4423
 
4458
4424
  /**
4459
4425
  @property isEmpty
@@ -4479,11 +4445,10 @@
4479
4445
  var wasEmpty = ember$data$lib$system$model$errors$$get(this, 'isEmpty');
4480
4446
 
4481
4447
  messages = this._findOrCreateMessages(attribute, messages);
4482
- ember$data$lib$system$model$errors$$get(this, 'content').addObjects(messages);
4448
+ this.addObjects(messages);
4483
4449
  ember$data$lib$system$model$errors$$get(this, 'errorsByAttributeName').get(attribute).addObjects(messages);
4484
4450
 
4485
4451
  this.notifyPropertyChange(attribute);
4486
- this.enumerableContentDidChange();
4487
4452
 
4488
4453
  if (wasEmpty && !ember$data$lib$system$model$errors$$get(this, 'isEmpty')) {
4489
4454
  this.trigger('becameInvalid');
@@ -4497,7 +4462,7 @@
4497
4462
  _findOrCreateMessages: function (attribute, messages) {
4498
4463
  var errors = this.errorsFor(attribute);
4499
4464
 
4500
- return ember$data$lib$system$model$errors$$map.call(Ember.makeArray(messages), function (message) {
4465
+ return ember$data$lib$system$model$errors$$map.call(ember$data$lib$system$model$errors$$makeArray(messages), function (message) {
4501
4466
  return errors.findBy('message', message) || {
4502
4467
  attribute: attribute,
4503
4468
  message: message
@@ -4538,12 +4503,11 @@
4538
4503
  return;
4539
4504
  }
4540
4505
 
4541
- var content = ember$data$lib$system$model$errors$$get(this, 'content').rejectBy('attribute', attribute);
4542
- ember$data$lib$system$model$errors$$get(this, 'content').setObjects(content);
4506
+ var content = this.rejectBy('attribute', attribute);
4507
+ ember$data$lib$system$model$errors$$set(this, 'content', content);
4543
4508
  ember$data$lib$system$model$errors$$get(this, 'errorsByAttributeName')["delete"](attribute);
4544
4509
 
4545
4510
  this.notifyPropertyChange(attribute);
4546
- this.enumerableContentDidChange();
4547
4511
 
4548
4512
  if (ember$data$lib$system$model$errors$$get(this, 'isEmpty')) {
4549
4513
  this.trigger('becameValid');
@@ -4572,9 +4536,19 @@
4572
4536
  return;
4573
4537
  }
4574
4538
 
4575
- ember$data$lib$system$model$errors$$get(this, 'content').clear();
4576
- ember$data$lib$system$model$errors$$get(this, 'errorsByAttributeName').clear();
4577
- this.enumerableContentDidChange();
4539
+ var errorsByAttributeName = ember$data$lib$system$model$errors$$get(this, 'errorsByAttributeName');
4540
+ var attributes = Ember.A();
4541
+
4542
+ errorsByAttributeName.forEach(function (_, attribute) {
4543
+ attributes.push(attribute);
4544
+ });
4545
+
4546
+ errorsByAttributeName.clear();
4547
+ attributes.forEach(function (attribute) {
4548
+ this.notifyPropertyChange(attribute);
4549
+ }, this);
4550
+
4551
+ this._super();
4578
4552
 
4579
4553
  this.trigger('becameValid');
4580
4554
  },
@@ -4603,6 +4577,63 @@
4603
4577
  }
4604
4578
  });
4605
4579
 
4580
+ var ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter;
4581
+
4582
+ try {
4583
+ ember$lib$main$$default.computed({
4584
+ set: function () {},
4585
+ get: function () {}
4586
+ });
4587
+ ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter = true;
4588
+ } catch (e) {
4589
+ ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter = false;
4590
+ }
4591
+
4592
+ var ember$new$computed$lib$utils$can$use$new$syntax$$default = ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter;
4593
+ var ember$new$computed$lib$main$$default = ember$new$computed$lib$main$$newComputed;
4594
+
4595
+ var ember$new$computed$lib$main$$computed = ember$lib$main$$default.computed;
4596
+
4597
+ function ember$new$computed$lib$main$$newComputed() {
4598
+ var polyfillArguments = [];
4599
+ var config = arguments[arguments.length - 1];
4600
+
4601
+ if (typeof config === 'function' || ember$new$computed$lib$utils$can$use$new$syntax$$default) {
4602
+ return ember$new$computed$lib$main$$computed.apply(undefined, arguments);
4603
+ }
4604
+
4605
+ for (var i = 0, l = arguments.length - 1; i < l; i++) {
4606
+ polyfillArguments.push(arguments[i]);
4607
+ }
4608
+
4609
+ var func;
4610
+ if (config.set) {
4611
+ func = function (key, value) {
4612
+ if (arguments.length > 1) {
4613
+ return config.set.call(this, key, value);
4614
+ } else {
4615
+ return config.get.call(this, key);
4616
+ }
4617
+ };
4618
+ } else {
4619
+ func = function (key) {
4620
+ return config.get.call(this, key);
4621
+ };
4622
+ }
4623
+
4624
+ polyfillArguments.push(func);
4625
+
4626
+ return ember$new$computed$lib$main$$computed.apply(undefined, polyfillArguments);
4627
+ }
4628
+
4629
+ var ember$new$computed$lib$main$$getKeys = Object.keys || ember$lib$main$$default.keys;
4630
+ var ember$new$computed$lib$main$$computedKeys = ember$new$computed$lib$main$$getKeys(ember$new$computed$lib$main$$computed);
4631
+
4632
+ for (var ember$new$computed$lib$main$$i = 0, ember$new$computed$lib$main$$l = ember$new$computed$lib$main$$computedKeys.length; ember$new$computed$lib$main$$i < ember$new$computed$lib$main$$l; ember$new$computed$lib$main$$i++) {
4633
+ ember$new$computed$lib$main$$newComputed[ember$new$computed$lib$main$$computedKeys[ember$new$computed$lib$main$$i]] = ember$new$computed$lib$main$$computed[ember$new$computed$lib$main$$computedKeys[ember$new$computed$lib$main$$i]];
4634
+ }
4635
+ var ember$data$lib$system$model$model$$errorDeprecationShown = false;
4636
+
4606
4637
  /**
4607
4638
  @module ember-data
4608
4639
  */
@@ -4610,6 +4641,8 @@
4610
4641
  var ember$data$lib$system$model$model$$get = Ember.get;
4611
4642
  var ember$data$lib$system$model$model$$forEach = Ember.ArrayPolyfills.forEach;
4612
4643
  var ember$data$lib$system$model$model$$indexOf = Ember.ArrayPolyfills.indexOf;
4644
+ var ember$data$lib$system$model$model$$merge = Ember.merge;
4645
+ var ember$data$lib$system$model$model$$copy = Ember.copy;
4613
4646
 
4614
4647
  function ember$data$lib$system$model$model$$intersection(array1, array2) {
4615
4648
  var result = [];
@@ -4622,9 +4655,9 @@
4622
4655
  return result;
4623
4656
  }
4624
4657
 
4625
- var ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS = ['currentState', 'data', 'store'];
4658
+ var ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS = ["currentState", "data", "store"];
4626
4659
 
4627
- var ember$data$lib$system$model$model$$retrieveFromCurrentState = Ember.computed('currentState', function (key) {
4660
+ var ember$data$lib$system$model$model$$retrieveFromCurrentState = Ember.computed("currentState", function (key) {
4628
4661
  return ember$data$lib$system$model$model$$get(this._internalModel.currentState, key);
4629
4662
  }).readOnly();
4630
4663
 
@@ -4709,10 +4742,29 @@
4709
4742
  @readOnly
4710
4743
  @deprecated
4711
4744
  */
4712
- isDirty: Ember.computed('currentState.isDirty', function () {
4713
- Ember.deprecate('DS.Model#isDirty has been deprecated please use hasDirtyAttributes instead');
4714
- return this.get('currentState.isDirty');
4745
+ isDirty: Ember.computed("currentState.isDirty", function () {
4746
+ Ember.deprecate("DS.Model#isDirty has been deprecated please use hasDirtyAttributes instead", false, {
4747
+ id: "ds.model.is-dirty-deprecated",
4748
+ until: "2.0.0"
4749
+ });
4750
+ return this.get("currentState.isDirty");
4751
+ }),
4752
+
4753
+ /**
4754
+ @property error
4755
+ @type {Boolean}
4756
+ @deprecated
4757
+ */
4758
+ error: ember$new$computed$lib$main$$default("adapterError", {
4759
+ get: function () {
4760
+ if (!ember$data$lib$system$model$model$$errorDeprecationShown) {
4761
+ Ember.deprecate("DS.Model#error has been deprecated please use adapterError instead");
4762
+ ember$data$lib$system$model$model$$errorDeprecationShown = true;
4763
+ }
4764
+ return Ember.get(this, "adapterError");
4765
+ }
4715
4766
  }),
4767
+
4716
4768
  /**
4717
4769
  If this property is `true` the record is in the `dirty` state. The
4718
4770
  record has local changes that have not yet been saved by the
@@ -4732,8 +4784,8 @@
4732
4784
  @type {Boolean}
4733
4785
  @readOnly
4734
4786
  */
4735
- hasDirtyAttributes: Ember.computed('currentState.isDirty', function () {
4736
- return this.get('currentState.isDirty');
4787
+ hasDirtyAttributes: Ember.computed("currentState.isDirty", function () {
4788
+ return this.get("currentState.isDirty");
4737
4789
  }),
4738
4790
  /**
4739
4791
  If this property is `true` the record is in the `saving` state. A
@@ -4935,9 +4987,9 @@
4935
4987
  var errors = ember$data$lib$system$model$errors$$default.create();
4936
4988
 
4937
4989
  errors.registerHandlers(this._internalModel, function () {
4938
- this.send('becameInvalid');
4990
+ this.send("becameInvalid");
4939
4991
  }, function () {
4940
- this.send('becameValid');
4992
+ this.send("becameValid");
4941
4993
  });
4942
4994
 
4943
4995
  return errors;
@@ -4979,7 +5031,7 @@
4979
5031
  */
4980
5032
  toJSON: function (options) {
4981
5033
  // container is for lazy transform lookups
4982
- var serializer = this.store.serializerFor('-default');
5034
+ var serializer = this.store.serializerFor("-default");
4983
5035
  var snapshot = this._internalModel.createSnapshot();
4984
5036
 
4985
5037
  return serializer.serialize(snapshot, options);
@@ -5039,7 +5091,7 @@
5039
5091
  @private
5040
5092
  @type {Object}
5041
5093
  */
5042
- data: Ember.computed.readOnly('_internalModel._data'),
5094
+ data: Ember.computed.readOnly("_internalModel._data"),
5043
5095
 
5044
5096
  //TODO Do we want to deprecate these?
5045
5097
  /**
@@ -5161,8 +5213,10 @@
5161
5213
  and value is an [oldProp, newProp] array.
5162
5214
  */
5163
5215
  changedAttributes: function () {
5164
- var oldData = ember$data$lib$system$model$model$$get(this._internalModel, '_data');
5165
- var newData = ember$data$lib$system$model$model$$get(this._internalModel, '_attributes');
5216
+ var oldData = ember$data$lib$system$model$model$$get(this._internalModel, "_data");
5217
+ var currentData = ember$data$lib$system$model$model$$get(this._internalModel, "_attributes");
5218
+ var inFlightData = ember$data$lib$system$model$model$$get(this._internalModel, "_inFlightAttributes");
5219
+ var newData = ember$data$lib$system$model$model$$merge(ember$data$lib$system$model$model$$copy(inFlightData), currentData);
5166
5220
  var diffData = ember$data$lib$system$object$polyfills$$create(null);
5167
5221
 
5168
5222
  var newDataKeys = ember$data$lib$system$object$polyfills$$keysFunc(newData);
@@ -5207,7 +5261,10 @@
5207
5261
  @deprecated Use `rollbackAttributes()` instead
5208
5262
  */
5209
5263
  rollback: function () {
5210
- Ember.deprecate('Using model.rollback() has been deprecated. Use model.rollbackAttributes() to discard any unsaved changes to a model.');
5264
+ Ember.deprecate("Using model.rollback() has been deprecated. Use model.rollbackAttributes() to discard any unsaved changes to a model.", false, {
5265
+ id: "ds.model.rollback-deprecated",
5266
+ until: "2.0.0"
5267
+ });
5211
5268
  this.rollbackAttributes();
5212
5269
  },
5213
5270
 
@@ -5237,7 +5294,7 @@
5237
5294
  },
5238
5295
 
5239
5296
  toStringExtension: function () {
5240
- return ember$data$lib$system$model$model$$get(this, 'id');
5297
+ return ember$data$lib$system$model$model$$get(this, "id");
5241
5298
  },
5242
5299
 
5243
5300
  /**
@@ -5329,7 +5386,7 @@
5329
5386
  // rely on the data property.
5330
5387
  willMergeMixin: function (props) {
5331
5388
  var constructor = this.constructor;
5332
- Ember.assert('`' + ember$data$lib$system$model$model$$intersection(ember$data$lib$system$object$polyfills$$keysFunc(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0] + '` is a reserved property name on DS.Model objects. Please choose a different property name for ' + constructor.toString(), !ember$data$lib$system$model$model$$intersection(ember$data$lib$system$object$polyfills$$keysFunc(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0]);
5389
+ Ember.assert("`" + ember$data$lib$system$model$model$$intersection(ember$data$lib$system$object$polyfills$$keysFunc(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0] + "` is a reserved property name on DS.Model objects. Please choose a different property name for " + constructor.toString(), !ember$data$lib$system$model$model$$intersection(ember$data$lib$system$object$polyfills$$keysFunc(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0]);
5333
5390
  },
5334
5391
 
5335
5392
  attr: function () {
@@ -5428,7 +5485,10 @@
5428
5485
  }
5429
5486
  return normalizedResponse;
5430
5487
  } else {
5431
- Ember.deprecate('Your custom serializer uses the old version of the Serializer API, with `extract` hooks. Please upgrade your serializers to the new Serializer API using `normalizeResponse` hooks instead.');
5488
+ Ember.deprecate('Your custom serializer uses the old version of the Serializer API, with `extract` hooks. Please upgrade your serializers to the new Serializer API using `normalizeResponse` hooks instead.', false, {
5489
+ id: 'ds.serializer.extract-hooks-deprecated',
5490
+ until: '2.0.0'
5491
+ });
5432
5492
  var serializerPayload = serializer.extract(store, modelClass, payload, id, requestType);
5433
5493
  return ember$data$lib$system$store$serializer$response$$_normalizeSerializerPayload(modelClass, serializerPayload);
5434
5494
  }
@@ -5508,7 +5568,7 @@
5508
5568
  return value;
5509
5569
  }
5510
5570
 
5511
- Ember.assert("A " + relationshipMeta.parentType + " record was pushed into the store with the value of " + key + " being " + Ember.inspect(value) + ", but " + key + " is a belongsTo relationship so the value must not be an array. You should probably check your data payload or serializer.", !Ember.isArray(value));
5571
+ Ember.assert('A ' + relationshipMeta.parentType + ' record was pushed into the store with the value of ' + key + ' being ' + Ember.inspect(value) + ', but ' + key + ' is a belongsTo relationship so the value must not be an array. You should probably check your data payload or serializer.', !Ember.isArray(value));
5512
5572
  return { id: '' + value, type: relationshipMeta.type };
5513
5573
  };
5514
5574
 
@@ -5520,7 +5580,7 @@
5520
5580
  }
5521
5581
  } else if (relationshipMeta.kind === 'hasMany') {
5522
5582
  //|| [] because the hasMany could be === null
5523
- Ember.assert("A " + relationshipMeta.parentType + " record was pushed into the store with the value of " + key + " being '" + Ember.inspect(value) + "', but " + key + " is a hasMany relationship so the value must be an array. You should probably check your data payload or serializer.", Ember.isArray(value) || value === null);
5583
+ Ember.assert('A ' + relationshipMeta.parentType + ' record was pushed into the store with the value of ' + key + ' being \'' + Ember.inspect(value) + '\', but ' + key + ' is a hasMany relationship so the value must be an array. You should probably check your data payload or serializer.', Ember.isArray(value) || value === null);
5524
5584
 
5525
5585
  relationshipData = Ember.A(value || []);
5526
5586
 
@@ -5814,7 +5874,7 @@
5814
5874
  @return {Object}
5815
5875
  */
5816
5876
  normalize: function (typeClass, hash, prop) {
5817
- if (this.get('isNewSerializerAPI')) {
5877
+ if (this.get("isNewSerializerAPI")) {
5818
5878
  ember$data$lib$serializers$rest$serializer$$_newNormalize.apply(this, arguments);
5819
5879
  return this._super.apply(this, arguments);
5820
5880
  }
@@ -5826,7 +5886,10 @@
5826
5886
  this.normalizeUsingDeclaredMapping(typeClass, hash);
5827
5887
 
5828
5888
  if (this.normalizeHash && this.normalizeHash[prop]) {
5829
- Ember.deprecate('`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.');
5889
+ Ember.deprecate("`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.", false, {
5890
+ id: "ds.serializer.normalize-hash-deprecated",
5891
+ until: "2.0.0"
5892
+ });
5830
5893
  this.normalizeHash[prop](hash);
5831
5894
  }
5832
5895
 
@@ -5853,7 +5916,7 @@
5853
5916
  var modelClass = store.modelFor(modelName);
5854
5917
  var serializer = store.serializerFor(modelName);
5855
5918
 
5856
- Ember.assert(this.toString() + " has opted into the new serializer API and expects the " + serializer.toString() + " it collaborates with to also support the new serializer API by setting its `isNewSerializerAPI` property to true.", ember$data$lib$serializers$rest$serializer$$get(serializer, 'isNewSerializerAPI'));
5919
+ Ember.assert(this.toString() + " has opted into the new serializer API and expects the " + serializer.toString() + " it collaborates with to also support the new serializer API by setting its `isNewSerializerAPI` property to true.", ember$data$lib$serializers$rest$serializer$$get(serializer, "isNewSerializerAPI"));
5857
5920
 
5858
5921
  /*jshint loopfunc:true*/
5859
5922
  ember$data$lib$serializers$rest$serializer$$forEach.call(arrayHash, function (hash) {
@@ -5892,7 +5955,7 @@
5892
5955
 
5893
5956
  var meta = this.extractMeta(store, primaryModelClass, payload);
5894
5957
  if (meta) {
5895
- Ember.assert('The `meta` returned from `extractMeta` has to be an object, not "' + Ember.typeOf(meta) + '".', Ember.typeOf(meta) === 'object');
5958
+ Ember.assert("The `meta` returned from `extractMeta` has to be an object, not \"" + Ember.typeOf(meta) + "\".", Ember.typeOf(meta) === "object");
5896
5959
  documentHash.meta = meta;
5897
5960
  }
5898
5961
 
@@ -5920,14 +5983,16 @@
5920
5983
  ```
5921
5984
  This forces `_users` to be added to `included` instead of `data`.
5922
5985
  */
5923
- if (prop.charAt(0) === '_') {
5986
+ if (prop.charAt(0) === "_") {
5924
5987
  forcedSecondary = true;
5925
5988
  modelName = prop.substr(1);
5926
5989
  }
5927
5990
 
5928
5991
  var typeName = this.modelNameFromPayloadKey(modelName);
5929
5992
  if (!store.modelFactoryFor(typeName)) {
5930
- Ember.warn(this.warnMessageNoModelForKey(modelName, typeName), false);
5993
+ Ember.warn(this.warnMessageNoModelForKey(modelName, typeName), false, {
5994
+ id: "ds.serializer.model-for-key-missing"
5995
+ });
5931
5996
  continue;
5932
5997
  }
5933
5998
 
@@ -5947,7 +6012,7 @@
5947
6012
  }
5948
6013
  ```
5949
6014
  */
5950
- if (isPrimary && Ember.typeOf(value) !== 'array') {
6015
+ if (isPrimary && Ember.typeOf(value) !== "array") {
5951
6016
  var _normalize = this.normalize(primaryModelClass, value, prop);
5952
6017
 
5953
6018
  var _data = _normalize.data;
@@ -6074,7 +6139,10 @@
6074
6139
  @return {Object} the primary response to the original request
6075
6140
  */
6076
6141
  extractSingle: function (store, primaryTypeClass, rawPayload, recordId) {
6077
- Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload);
6142
+ Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload, {
6143
+ id: "ds.serializer.normalize-payload-deprecated",
6144
+ until: "2.0.0"
6145
+ });
6078
6146
  var payload = this.normalizePayload(rawPayload);
6079
6147
  var primaryRecord;
6080
6148
 
@@ -6082,7 +6150,9 @@
6082
6150
  var modelName = this.modelNameFromPayloadKey(prop);
6083
6151
 
6084
6152
  if (!store.modelFactoryFor(modelName)) {
6085
- Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false);
6153
+ Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, {
6154
+ id: "ds.serializer.model-for-key-missing"
6155
+ });
6086
6156
  continue;
6087
6157
  }
6088
6158
  var isPrimary = this.isPrimaryType(store, modelName, primaryTypeClass);
@@ -6104,7 +6174,7 @@
6104
6174
  var type = store.modelFor(typeName);
6105
6175
  var typeSerializer = store.serializerFor(type.modelName);
6106
6176
 
6107
- Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, 'isNewSerializerAPI') ? 'new' : 'old') + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, 'isNewSerializerAPI') === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, 'isNewSerializerAPI'));
6177
+ Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") ? "new" : "old") + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, "isNewSerializerAPI"));
6108
6178
 
6109
6179
  hash = typeSerializer.normalize(type, hash, prop);
6110
6180
 
@@ -6214,7 +6284,10 @@
6214
6284
  to the original query.
6215
6285
  */
6216
6286
  extractArray: function (store, primaryTypeClass, rawPayload) {
6217
- Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload);
6287
+ Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload, {
6288
+ id: "ds.serializer.normalize-payload-deprecated",
6289
+ until: "2.0.0"
6290
+ });
6218
6291
  var payload = this.normalizePayload(rawPayload);
6219
6292
  var primaryArray;
6220
6293
 
@@ -6222,20 +6295,22 @@
6222
6295
  var modelName = prop;
6223
6296
  var forcedSecondary = false;
6224
6297
 
6225
- if (prop.charAt(0) === '_') {
6298
+ if (prop.charAt(0) === "_") {
6226
6299
  forcedSecondary = true;
6227
6300
  modelName = prop.substr(1);
6228
6301
  }
6229
6302
 
6230
6303
  var typeName = this.modelNameFromPayloadKey(modelName);
6231
6304
  if (!store.modelFactoryFor(typeName)) {
6232
- Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false);
6305
+ Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false, {
6306
+ id: "ds.serializer.model-for-key-missing"
6307
+ });
6233
6308
  continue;
6234
6309
  }
6235
6310
  var type = store.modelFor(typeName);
6236
6311
  var typeSerializer = store.serializerFor(type.modelName);
6237
6312
 
6238
- Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, 'isNewSerializerAPI') ? 'new' : 'old') + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, 'isNewSerializerAPI') === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, 'isNewSerializerAPI'));
6313
+ Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") ? "new" : "old") + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, "isNewSerializerAPI"));
6239
6314
 
6240
6315
  var isPrimary = !forcedSecondary && this.isPrimaryType(store, typeName, primaryTypeClass);
6241
6316
 
@@ -6288,24 +6363,29 @@
6288
6363
  @param {Object} rawPayload
6289
6364
  */
6290
6365
  pushPayload: function (store, rawPayload) {
6291
- if (this.get('isNewSerializerAPI')) {
6366
+ if (this.get("isNewSerializerAPI")) {
6292
6367
  ember$data$lib$serializers$rest$serializer$$_newPushPayload.apply(this, arguments);
6293
6368
  return;
6294
6369
  }
6295
6370
 
6296
- Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload);
6371
+ Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload, {
6372
+ id: "ds.serializer.normalize-payload-deprecated",
6373
+ until: "2.0.0"
6374
+ });
6297
6375
  var payload = this.normalizePayload(rawPayload);
6298
6376
 
6299
6377
  for (var prop in payload) {
6300
6378
  var modelName = this.modelNameFromPayloadKey(prop);
6301
6379
  if (!store.modelFactoryFor(modelName)) {
6302
- Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false);
6380
+ Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, {
6381
+ id: "ds.serializer.model-for-key-missing"
6382
+ });
6303
6383
  continue;
6304
6384
  }
6305
6385
  var typeClass = store.modelFor(modelName);
6306
6386
  var typeSerializer = store.serializerFor(modelName);
6307
6387
 
6308
- Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, 'isNewSerializerAPI') ? 'new' : 'old') + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, 'isNewSerializerAPI') === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, 'isNewSerializerAPI'));
6388
+ Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") ? "new" : "old") + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, "isNewSerializerAPI"));
6309
6389
 
6310
6390
  /*jshint loopfunc:true*/
6311
6391
  var normalizedArray = ember$data$lib$serializers$rest$serializer$$map.call(Ember.makeArray(payload[prop]), function (hash) {
@@ -6560,7 +6640,10 @@
6560
6640
  @deprecated
6561
6641
  */
6562
6642
  typeForRoot: function (modelName) {
6563
- Ember.deprecate("typeForRoot is deprecated. Use modelNameFromPayloadKey instead.");
6643
+ Ember.deprecate("typeForRoot is deprecated. Use modelNameFromPayloadKey instead.", false, {
6644
+ id: "ds.serializer.type-for-root-deprecated",
6645
+ until: "2.0.0"
6646
+ });
6564
6647
  return this.modelNameFromPayloadKey(modelName);
6565
6648
  },
6566
6649
 
@@ -6588,7 +6671,7 @@
6588
6671
  Ember.runInDebug(function () {
6589
6672
  ember$data$lib$serializers$rest$serializer$$RESTSerializer.reopen({
6590
6673
  warnMessageNoModelForKey: function (prop, typeKey) {
6591
- return 'Encountered "' + prop + '" in payload, but no model was found for model name "' + typeKey + '" (resolved model name using ' + this.constructor.toString() + '.modelNameFromPayloadKey("' + prop + '"))';
6674
+ return "Encountered \"" + prop + "\" in payload, but no model was found for model name \"" + typeKey + "\" (resolved model name using " + this.constructor.toString() + ".modelNameFromPayloadKey(\"" + prop + "\"))";
6592
6675
  }
6593
6676
  });
6594
6677
  });
@@ -6605,7 +6688,10 @@
6605
6688
  */
6606
6689
  function ember$data$lib$serializers$rest$serializer$$_newNormalize(modelClass, resourceHash, prop) {
6607
6690
  if (this.normalizeHash && this.normalizeHash[prop]) {
6608
- Ember.deprecate('`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.');
6691
+ Ember.deprecate("`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.", false, {
6692
+ id: "ds.serializer.normalize-hash-deprecated",
6693
+ until: "2.0.0"
6694
+ });
6609
6695
  this.normalizeHash[prop](resourceHash);
6610
6696
  }
6611
6697
  }
@@ -6621,19 +6707,24 @@
6621
6707
  included: []
6622
6708
  };
6623
6709
 
6624
- Ember.deprecate('`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.', this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload);
6710
+ Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload, {
6711
+ id: "ds.serializer.normalize-payload-deprecated",
6712
+ until: "2.0.0"
6713
+ });
6625
6714
  var payload = this.normalizePayload(rawPayload);
6626
6715
 
6627
6716
  for (var prop in payload) {
6628
6717
  var modelName = this.modelNameFromPayloadKey(prop);
6629
6718
  if (!store.modelFactoryFor(modelName)) {
6630
- Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false);
6719
+ Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, {
6720
+ id: "ds.serializer.model-for-key-missing"
6721
+ });
6631
6722
  continue;
6632
6723
  }
6633
6724
  var type = store.modelFor(modelName);
6634
6725
  var typeSerializer = store.serializerFor(type.modelName);
6635
6726
 
6636
- Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, 'isNewSerializerAPI') ? 'new' : 'old') + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, 'isNewSerializerAPI') === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, 'isNewSerializerAPI'));
6727
+ Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") ? "new" : "old") + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, "isNewSerializerAPI"));
6637
6728
 
6638
6729
  /*jshint loopfunc:true*/
6639
6730
  ember$data$lib$serializers$rest$serializer$$forEach.call(Ember.makeArray(payload[prop]), function (hash) {
@@ -6659,6 +6750,11 @@
6659
6750
  */
6660
6751
 
6661
6752
  var activemodel$adapter$lib$system$active$model$serializer$$_Ember$String = ember$lib$main$$default.String;
6753
+ var activemodel$adapter$lib$system$active$model$serializer$$singularize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.singularize;
6754
+ var activemodel$adapter$lib$system$active$model$serializer$$classify = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.classify;
6755
+ var activemodel$adapter$lib$system$active$model$serializer$$decamelize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.decamelize;
6756
+ var activemodel$adapter$lib$system$active$model$serializer$$camelize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.camelize;
6757
+ var activemodel$adapter$lib$system$active$model$serializer$$underscore = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.underscore;
6662
6758
 
6663
6759
  /**
6664
6760
  The ActiveModelSerializer is a subclass of the RESTSerializer designed to integrate
@@ -6747,11 +6843,6 @@
6747
6843
  @namespace DS
6748
6844
  @extends DS.RESTSerializer
6749
6845
  */
6750
- var activemodel$adapter$lib$system$active$model$serializer$$singularize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.singularize;
6751
- var activemodel$adapter$lib$system$active$model$serializer$$classify = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.classify;
6752
- var activemodel$adapter$lib$system$active$model$serializer$$decamelize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.decamelize;
6753
- var activemodel$adapter$lib$system$active$model$serializer$$camelize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.camelize;
6754
- var activemodel$adapter$lib$system$active$model$serializer$$underscore = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.underscore;
6755
6846
  var activemodel$adapter$lib$system$active$model$serializer$$ActiveModelSerializer = ember$data$lib$serializers$rest$serializer$$default.extend({
6756
6847
  // SERIALIZE
6757
6848
 
@@ -6775,10 +6866,10 @@
6775
6866
  */
6776
6867
  keyForRelationship: function (relationshipModelName, kind) {
6777
6868
  var key = activemodel$adapter$lib$system$active$model$serializer$$decamelize(relationshipModelName);
6778
- if (kind === "belongsTo") {
6779
- return key + "_id";
6780
- } else if (kind === "hasMany") {
6781
- return activemodel$adapter$lib$system$active$model$serializer$$singularize(key) + "_ids";
6869
+ if (kind === 'belongsTo') {
6870
+ return key + '_id';
6871
+ } else if (kind === 'hasMany') {
6872
+ return activemodel$adapter$lib$system$active$model$serializer$$singularize(key) + '_ids';
6782
6873
  } else {
6783
6874
  return key;
6784
6875
  }
@@ -6821,7 +6912,7 @@
6821
6912
  serializePolymorphicType: function (snapshot, json, relationship) {
6822
6913
  var key = relationship.key;
6823
6914
  var belongsTo = snapshot.belongsTo(key);
6824
- var jsonKey = activemodel$adapter$lib$system$active$model$serializer$$underscore(key + "_type");
6915
+ var jsonKey = activemodel$adapter$lib$system$active$model$serializer$$underscore(key + '_type');
6825
6916
 
6826
6917
  if (ember$lib$main$$default.isNone(belongsTo)) {
6827
6918
  json[jsonKey] = null;
@@ -6912,18 +7003,18 @@
6912
7003
  typeClass.eachRelationship(function (key, relationship) {
6913
7004
  var payloadKey, payload;
6914
7005
  if (relationship.options.polymorphic) {
6915
- payloadKey = this.keyForAttribute(key, "deserialize");
7006
+ payloadKey = this.keyForAttribute(key, 'deserialize');
6916
7007
  payload = hash[payloadKey];
6917
7008
  if (payload && payload.type) {
6918
7009
  payload.type = this.modelNameFromPayloadKey(payload.type);
6919
- } else if (payload && relationship.kind === "hasMany") {
7010
+ } else if (payload && relationship.kind === 'hasMany') {
6920
7011
  for (var i = 0, len = payload.length; i < len; i++) {
6921
7012
  var single = payload[i];
6922
7013
  single.type = this.modelNameFromPayloadKey(single.type);
6923
7014
  }
6924
7015
  }
6925
7016
  } else {
6926
- payloadKey = this.keyForRelationship(key, relationship.kind, "deserialize");
7017
+ payloadKey = this.keyForRelationship(key, relationship.kind, 'deserialize');
6927
7018
  if (!hash.hasOwnProperty(payloadKey)) {
6928
7019
  return;
6929
7020
  }
@@ -6941,7 +7032,7 @@
6941
7032
 
6942
7033
  extractRelationships: function (modelClass, resourceHash) {
6943
7034
  modelClass.eachRelationship(function (key, relationshipMeta) {
6944
- var relationshipKey = this.keyForRelationship(key, relationshipMeta.kind, "deserialize");
7035
+ var relationshipKey = this.keyForRelationship(key, relationshipMeta.kind, 'deserialize');
6945
7036
 
6946
7037
  // prefer the format the AMS gem expects, e.g.:
6947
7038
  // relationship: {id: id, type: type}
@@ -6980,23 +7071,23 @@
6980
7071
  resourceHash[relationshipKey] = { id: id, type: type };
6981
7072
  // otherwise hasMany
6982
7073
  } else {
6983
- var hashes = resourceHash[polymorphicKey];
7074
+ var hashes = resourceHash[polymorphicKey];
6984
7075
 
6985
- if (!hashes) {
6986
- return;
6987
- }
7076
+ if (!hashes) {
7077
+ return;
7078
+ }
6988
7079
 
6989
- // TODO: replace this with map when ActiveModelAdapter branches for Ember Data 2.0
6990
- var array = [];
6991
- for (var i = 0, _length = hashes.length; i < _length; i++) {
6992
- var hash = hashes[i];
6993
- var id = hash.id;
6994
- var type = hash.type;
7080
+ // TODO: replace this with map when ActiveModelAdapter branches for Ember Data 2.0
7081
+ var array = [];
7082
+ for (var i = 0, _length = hashes.length; i < _length; i++) {
7083
+ var hash = hashes[i];
7084
+ var id = hash.id;
7085
+ var type = hash.type;
6995
7086
 
6996
- array.push({ id: id, type: type });
6997
- }
6998
- resourceHash[relationshipKey] = array;
7087
+ array.push({ id: id, type: type });
6999
7088
  }
7089
+ resourceHash[relationshipKey] = array;
7090
+ }
7000
7091
  }
7001
7092
  }
7002
7093
 
@@ -7027,7 +7118,10 @@
7027
7118
 
7028
7119
  ember$data$lib$system$container$proxy$$ContainerProxy.prototype.registerDeprecation = function (deprecated, valid) {
7029
7120
  var preLookupCallback = function () {
7030
- Ember.deprecate("You tried to look up '" + deprecated + "', " + "but this has been deprecated in favor of '" + valid + "'.", false);
7121
+ Ember.deprecate('You tried to look up \'' + deprecated + '\', but this has been deprecated in favor of \'' + valid + '\'.', false, {
7122
+ id: 'ds.store.deprecated-lookup',
7123
+ until: '2.0.0'
7124
+ });
7031
7125
  };
7032
7126
 
7033
7127
  return this.registerAlias(deprecated, valid, preLookupCallback);
@@ -7049,29 +7143,12 @@
7049
7143
  var activemodel$adapter$lib$setup$container$$default = activemodel$adapter$lib$setup$container$$setupActiveModelAdapter;
7050
7144
  function activemodel$adapter$lib$setup$container$$setupActiveModelAdapter(registry, application) {
7051
7145
  var proxy = new ember$data$lib$system$container$proxy$$default(registry);
7052
- proxy.registerDeprecations([{ deprecated: 'serializer:_ams', valid: 'serializer:-active-model' }, { deprecated: 'adapter:_ams', valid: 'adapter:-active-model' }]);
7146
+ proxy.registerDeprecations([{ deprecated: "serializer:_ams", valid: "serializer:-active-model" }, { deprecated: "adapter:_ams", valid: "adapter:-active-model" }]);
7053
7147
 
7054
- registry.register('serializer:-active-model', activemodel$adapter$lib$system$active$model$serializer$$default.extend({ isNewSerializerAPI: true }));
7055
- registry.register('adapter:-active-model', activemodel$adapter$lib$system$active$model$adapter$$default);
7148
+ registry.register("serializer:-active-model", activemodel$adapter$lib$system$active$model$serializer$$default.extend({ isNewSerializerAPI: true }));
7149
+ registry.register("adapter:-active-model", activemodel$adapter$lib$system$active$model$adapter$$default);
7056
7150
  }
7057
7151
 
7058
- /**
7059
- `DS.FixtureAdapter` is an adapter that loads records from memory.
7060
- It's primarily used for development and testing. You can also use
7061
- `DS.FixtureAdapter` while working on the API but is not ready to
7062
- integrate yet. It is a fully functioning adapter. All CRUD methods
7063
- are implemented. You can also implement query logic that a remote
7064
- system would do. It's possible to develop your entire application
7065
- with `DS.FixtureAdapter`.
7066
-
7067
- For information on how to use the `FixtureAdapter` in your
7068
- application please see the [FixtureAdapter
7069
- guide](/guides/models/the-fixture-adapter/).
7070
-
7071
- @class FixtureAdapter
7072
- @namespace DS
7073
- @extends DS.Adapter
7074
- */
7075
7152
  /**
7076
7153
  @module ember-data
7077
7154
  */
@@ -7121,9 +7198,9 @@
7121
7198
  return fixtures.map(function (fixture) {
7122
7199
  var fixtureIdType = typeof fixture.id;
7123
7200
  if (fixtureIdType !== "number" && fixtureIdType !== "string") {
7124
- throw new Error(ember$data$lib$adapters$fixture$adapter$$fmt('the id property must be defined as a number or string for fixture %@', [fixture]));
7201
+ throw new Error(ember$data$lib$adapters$fixture$adapter$$fmt("the id property must be defined as a number or string for fixture %@", [fixture]));
7125
7202
  }
7126
- fixture.id = fixture.id + '';
7203
+ fixture.id = fixture.id + "";
7127
7204
  return fixture;
7128
7205
  });
7129
7206
  }
@@ -7139,7 +7216,7 @@
7139
7216
  @return {(Promise|Array)}
7140
7217
  */
7141
7218
  queryFixtures: function (fixtures, query, typeClass) {
7142
- Ember.assert('Not implemented: You must override the DS.FixtureAdapter::queryFixtures method to support querying the fixture store.');
7219
+ Ember.assert("Not implemented: You must override the DS.FixtureAdapter::queryFixtures method to support querying the fixture store.");
7143
7220
  },
7144
7221
 
7145
7222
  /**
@@ -7194,7 +7271,7 @@
7194
7271
  Ember.assert("Unable to find fixtures for model type " + typeClass.toString() + ". If you're defining your fixtures using `Model.FIXTURES = ...`, please change it to `Model.reopenClass({ FIXTURES: ... })`.", fixtures);
7195
7272
 
7196
7273
  if (fixtures) {
7197
- fixture = Ember.A(fixtures).findBy('id', id);
7274
+ fixture = Ember.A(fixtures).findBy("id", id);
7198
7275
  }
7199
7276
 
7200
7277
  if (fixture) {
@@ -7357,7 +7434,7 @@
7357
7434
  */
7358
7435
  findFixtureById: function (fixtures, id) {
7359
7436
  return Ember.A(fixtures).find(function (r) {
7360
- if ('' + ember$data$lib$adapters$fixture$adapter$$get(r, 'id') === '' + id) {
7437
+ if ("" + ember$data$lib$adapters$fixture$adapter$$get(r, "id") === "" + id) {
7361
7438
  return true;
7362
7439
  } else {
7363
7440
  return false;
@@ -7376,14 +7453,14 @@
7376
7453
 
7377
7454
  return new Ember.RSVP.Promise(function (resolve) {
7378
7455
  var value = Ember.copy(callback.call(context), true);
7379
- if (ember$data$lib$adapters$fixture$adapter$$get(adapter, 'simulateRemoteResponse')) {
7456
+ if (ember$data$lib$adapters$fixture$adapter$$get(adapter, "simulateRemoteResponse")) {
7380
7457
  // Schedule with setTimeout
7381
7458
  Ember.run.later(function () {
7382
7459
  resolve(value);
7383
- }, ember$data$lib$adapters$fixture$adapter$$get(adapter, 'latency'));
7460
+ }, ember$data$lib$adapters$fixture$adapter$$get(adapter, "latency"));
7384
7461
  } else {
7385
7462
  // Asynchronous, but at the of the runloop with zero latency
7386
- Ember.run.schedule('actions', null, function () {
7463
+ Ember.run.schedule("actions", null, function () {
7387
7464
  resolve(value);
7388
7465
  });
7389
7466
  }
@@ -7465,7 +7542,7 @@
7465
7542
  });
7466
7543
 
7467
7544
  var ember$data$lib$core$$DS = Ember.Namespace.create({
7468
- VERSION: '1.13.6'
7545
+ VERSION: '1.13.7'
7469
7546
  });
7470
7547
 
7471
7548
  if (Ember.libraries) {
@@ -7488,7 +7565,7 @@
7488
7565
  }
7489
7566
 
7490
7567
  function ember$data$lib$system$store$common$$_guard(promise, test) {
7491
- var guarded = promise['finally'](function () {
7568
+ var guarded = promise["finally"](function () {
7492
7569
  if (!test()) {
7493
7570
  guarded._subscribers.length = 0;
7494
7571
  }
@@ -7509,7 +7586,10 @@
7509
7586
  }
7510
7587
 
7511
7588
  if (serializer === null || serializer === undefined) {
7512
- Ember.deprecate('Ember Data 2.0 will no longer support adapters with a null serializer property. Please define `defaultSerializer: "-default"` your adapter and make sure the `serializer` property is not null.');
7589
+ Ember.deprecate('Ember Data 2.0 will no longer support adapters with a null serializer property. Please define `defaultSerializer: "-default"` your adapter and make sure the `serializer` property is not null.', false, {
7590
+ id: 'ds.adapter.null-serializer-property',
7591
+ until: '2.0.0'
7592
+ });
7513
7593
  serializer = {
7514
7594
  extract: function (store, type, payload) {
7515
7595
  return payload;
@@ -7527,7 +7607,10 @@
7527
7607
  var snapshot = internalModel.createSnapshot(options);
7528
7608
  var promise;
7529
7609
  if (!adapter.findRecord) {
7530
- Ember.deprecate('Adapter#find has been deprecated and renamed to `findRecord`.');
7610
+ Ember.deprecate("Adapter#find has been deprecated and renamed to `findRecord`.", false, {
7611
+ id: "ds.adapter.find-renamed-to-find-record",
7612
+ until: "2.0.0"
7613
+ });
7531
7614
  promise = adapter.find(store, typeClass, id, snapshot);
7532
7615
  } else {
7533
7616
  promise = adapter.findRecord(store, typeClass, id, snapshot);
@@ -7541,7 +7624,7 @@
7541
7624
  return promise.then(function (adapterPayload) {
7542
7625
  Ember.assert("You made a request for a " + typeClass.typeClassKey + " with id " + id + ", but the adapter's response did not have any data", adapterPayload);
7543
7626
  return store._adapterRun(function () {
7544
- var requestType = ember$data$lib$system$store$finders$$get(serializer, 'isNewSerializerAPI') ? 'findRecord' : 'find';
7627
+ var requestType = ember$data$lib$system$store$finders$$get(serializer, "isNewSerializerAPI") ? "findRecord" : "find";
7545
7628
  var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, id, requestType);
7546
7629
  //TODO Optimize
7547
7630
  var record = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
@@ -7558,13 +7641,13 @@
7558
7641
  }
7559
7642
 
7560
7643
  function ember$data$lib$system$store$finders$$_findMany(adapter, store, typeClass, ids, internalModels) {
7561
- var snapshots = Ember.A(internalModels).invoke('createSnapshot');
7644
+ var snapshots = Ember.A(internalModels).invoke("createSnapshot");
7562
7645
  var promise = adapter.findMany(store, typeClass, ids, snapshots);
7563
7646
  var serializer = ember$data$lib$system$store$serializers$$serializerForAdapter(store, adapter, typeClass.modelName);
7564
7647
  var label = "DS: Handle Adapter#findMany of " + typeClass;
7565
7648
 
7566
7649
  if (promise === undefined) {
7567
- throw new Error('adapter.findMany returned undefined, this was very likely a mistake');
7650
+ throw new Error("adapter.findMany returned undefined, this was very likely a mistake");
7568
7651
  }
7569
7652
 
7570
7653
  promise = ember$data$lib$system$store$finders$$Promise.cast(promise, label);
@@ -7572,7 +7655,7 @@
7572
7655
 
7573
7656
  return promise.then(function (adapterPayload) {
7574
7657
  return store._adapterRun(function () {
7575
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'findMany');
7658
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findMany");
7576
7659
  //TODO Optimize, no need to materialize here
7577
7660
  var records = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
7578
7661
  return ember$data$lib$system$store$finders$$map.call(records, function (record) {
@@ -7595,13 +7678,13 @@
7595
7678
 
7596
7679
  return promise.then(function (adapterPayload) {
7597
7680
  return store._adapterRun(function () {
7598
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'findHasMany');
7681
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findHasMany");
7599
7682
  //TODO Use a non record creating push
7600
7683
  var records = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
7601
7684
  var recordArray = ember$data$lib$system$store$finders$$map.call(records, function (record) {
7602
7685
  return record._internalModel;
7603
7686
  });
7604
- if (ember$data$lib$system$store$finders$$get(serializer, 'isNewSerializerAPI')) {
7687
+ if (ember$data$lib$system$store$finders$$get(serializer, "isNewSerializerAPI")) {
7605
7688
  recordArray.meta = payload.meta;
7606
7689
  }
7607
7690
  return recordArray;
@@ -7622,7 +7705,7 @@
7622
7705
 
7623
7706
  return promise.then(function (adapterPayload) {
7624
7707
  return store._adapterRun(function () {
7625
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'findBelongsTo');
7708
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findBelongsTo");
7626
7709
 
7627
7710
  if (!payload.data) {
7628
7711
  return null;
@@ -7648,7 +7731,7 @@
7648
7731
 
7649
7732
  return promise.then(function (adapterPayload) {
7650
7733
  store._adapterRun(function () {
7651
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'findAll');
7734
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findAll");
7652
7735
  //TODO Optimize
7653
7736
  ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
7654
7737
  });
@@ -7663,7 +7746,10 @@
7663
7746
  var promise;
7664
7747
 
7665
7748
  if (!adapter.query) {
7666
- Ember.deprecate('Adapter#findQuery has been deprecated and renamed to `query`.');
7749
+ Ember.deprecate("Adapter#findQuery has been deprecated and renamed to `query`.", false, {
7750
+ id: "ds.adapter.find-query-renamed-to-query",
7751
+ until: "2.0.0"
7752
+ });
7667
7753
  promise = adapter.findQuery(store, typeClass, query, recordArray);
7668
7754
  } else {
7669
7755
  promise = adapter.query(store, typeClass, query, recordArray);
@@ -7678,7 +7764,7 @@
7678
7764
  return promise.then(function (adapterPayload) {
7679
7765
  var records;
7680
7766
  store._adapterRun(function () {
7681
- var requestType = ember$data$lib$system$store$finders$$get(serializer, 'isNewSerializerAPI') ? 'query' : 'findQuery';
7767
+ var requestType = ember$data$lib$system$store$finders$$get(serializer, "isNewSerializerAPI") ? "query" : "findQuery";
7682
7768
  var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, requestType);
7683
7769
  //TODO Optimize
7684
7770
  records = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
@@ -7701,7 +7787,7 @@
7701
7787
  return promise.then(function (adapterPayload) {
7702
7788
  var record;
7703
7789
  store._adapterRun(function () {
7704
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'queryRecord');
7790
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "queryRecord");
7705
7791
  //TODO Optimize
7706
7792
  record = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
7707
7793
  });
@@ -7710,14 +7796,51 @@
7710
7796
  }, null, "DS: Extract payload of queryRecord " + typeClass);
7711
7797
  }
7712
7798
  function ember$data$lib$system$snapshot$record$array$$SnapshotRecordArray(recordArray, meta, adapterOptions) {
7799
+ /**
7800
+ An array of snapshots
7801
+ @private
7802
+ @property _snapshots
7803
+ @type {Array}
7804
+ */
7713
7805
  this._snapshots = null;
7806
+ /**
7807
+ An array of records
7808
+ @private
7809
+ @property _recordArray
7810
+ @type {Array}
7811
+ */
7714
7812
  this._recordArray = recordArray;
7813
+ /**
7814
+ Number of records in the array
7815
+ @property length
7816
+ @type {Number}
7817
+ */
7715
7818
  this.length = recordArray.get('length');
7819
+ /**
7820
+ The type of the underlying records for the snapshots in the array, as a DS.Model
7821
+ @property type
7822
+ @type {DS.Model}
7823
+ */
7716
7824
  this.type = recordArray.get('type');
7825
+ /**
7826
+ Meta object
7827
+ @property meta
7828
+ @type {Object}
7829
+ */
7717
7830
  this.meta = meta;
7831
+ /**
7832
+ A hash of adapter options
7833
+ @property adapterOptions
7834
+ @type {Object}
7835
+ */
7718
7836
  this.adapterOptions = adapterOptions;
7719
7837
  }
7720
7838
 
7839
+ /**
7840
+ Get snapshots of the underlying record array
7841
+ @method snapshots
7842
+ @return {Array} Array of snapshots
7843
+ */
7721
7844
  ember$data$lib$system$snapshot$record$array$$SnapshotRecordArray.prototype.snapshots = function () {
7722
7845
  if (this._snapshots) {
7723
7846
  return this._snapshots;
@@ -7793,7 +7916,7 @@
7793
7916
  @return {DS.Model} record
7794
7917
  */
7795
7918
  objectAtContent: function (index) {
7796
- var content = ember$data$lib$system$record$arrays$record$array$$get(this, 'content');
7919
+ var content = ember$data$lib$system$record$arrays$record$array$$get(this, "content");
7797
7920
  var internalModel = content.objectAt(index);
7798
7921
  return internalModel && internalModel.getRecord();
7799
7922
  },
@@ -7811,12 +7934,12 @@
7811
7934
  @method update
7812
7935
  */
7813
7936
  update: function () {
7814
- if (ember$data$lib$system$record$arrays$record$array$$get(this, 'isUpdating')) {
7937
+ if (ember$data$lib$system$record$arrays$record$array$$get(this, "isUpdating")) {
7815
7938
  return;
7816
7939
  }
7817
7940
 
7818
- var store = ember$data$lib$system$record$arrays$record$array$$get(this, 'store');
7819
- var modelName = ember$data$lib$system$record$arrays$record$array$$get(this, 'type.modelName');
7941
+ var store = ember$data$lib$system$record$arrays$record$array$$get(this, "store");
7942
+ var modelName = ember$data$lib$system$record$arrays$record$array$$get(this, "type.modelName");
7820
7943
 
7821
7944
  return store.findAll(modelName, { reload: true });
7822
7945
  },
@@ -7829,7 +7952,7 @@
7829
7952
  @param {number} an optional index to insert at
7830
7953
  */
7831
7954
  addInternalModel: function (internalModel, idx) {
7832
- var content = ember$data$lib$system$record$arrays$record$array$$get(this, 'content');
7955
+ var content = ember$data$lib$system$record$arrays$record$array$$get(this, "content");
7833
7956
  if (idx === undefined) {
7834
7957
  content.addObject(internalModel);
7835
7958
  } else if (!content.contains(internalModel)) {
@@ -7844,7 +7967,7 @@
7844
7967
  @param {InternalModel} internalModel
7845
7968
  */
7846
7969
  removeInternalModel: function (internalModel) {
7847
- ember$data$lib$system$record$arrays$record$array$$get(this, 'content').removeObject(internalModel);
7970
+ ember$data$lib$system$record$arrays$record$array$$get(this, "content").removeObject(internalModel);
7848
7971
  },
7849
7972
 
7850
7973
  /**
@@ -7862,7 +7985,7 @@
7862
7985
  */
7863
7986
  save: function () {
7864
7987
  var recordArray = this;
7865
- var promiseLabel = "DS: RecordArray#save " + ember$data$lib$system$record$arrays$record$array$$get(this, 'type');
7988
+ var promiseLabel = "DS: RecordArray#save " + ember$data$lib$system$record$arrays$record$array$$get(this, "type");
7866
7989
  var promise = Ember.RSVP.all(this.invoke("save"), promiseLabel).then(function (array) {
7867
7990
  return recordArray;
7868
7991
  }, null, "DS: RecordArray#save return RecordArray");
@@ -7873,7 +7996,7 @@
7873
7996
  _dissociateFromOwnRecords: function () {
7874
7997
  var array = this;
7875
7998
 
7876
- this.get('content').forEach(function (record) {
7999
+ this.get("content").forEach(function (record) {
7877
8000
  var recordArrays = record._recordArrays;
7878
8001
 
7879
8002
  if (recordArrays) {
@@ -7887,20 +8010,20 @@
7887
8010
  @private
7888
8011
  */
7889
8012
  _unregisterFromManager: function () {
7890
- var manager = ember$data$lib$system$record$arrays$record$array$$get(this, 'manager');
8013
+ var manager = ember$data$lib$system$record$arrays$record$array$$get(this, "manager");
7891
8014
  manager.unregisterRecordArray(this);
7892
8015
  },
7893
8016
 
7894
8017
  willDestroy: function () {
7895
8018
  this._unregisterFromManager();
7896
8019
  this._dissociateFromOwnRecords();
7897
- ember$data$lib$system$record$arrays$record$array$$set(this, 'content', undefined);
8020
+ ember$data$lib$system$record$arrays$record$array$$set(this, "content", undefined);
7898
8021
  this._super.apply(this, arguments);
7899
8022
  },
7900
8023
 
7901
8024
  createSnapshot: function (options) {
7902
8025
  var adapterOptions = options && options.adapterOptions;
7903
- var meta = this.get('meta');
8026
+ var meta = this.get("meta");
7904
8027
  return new ember$data$lib$system$snapshot$record$array$$default(this, meta, adapterOptions);
7905
8028
  }
7906
8029
  });
@@ -7937,7 +8060,7 @@
7937
8060
  isLoaded: true,
7938
8061
 
7939
8062
  replace: function () {
7940
- var type = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, 'type').toString();
8063
+ var type = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "type").toString();
7941
8064
  throw new Error("The result of a client-side filter (on " + type + ") is immutable.");
7942
8065
  },
7943
8066
 
@@ -7946,13 +8069,13 @@
7946
8069
  @private
7947
8070
  */
7948
8071
  _updateFilter: function () {
7949
- var manager = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, 'manager');
7950
- manager.updateFilter(this, ember$data$lib$system$record$arrays$filtered$record$array$$get(this, 'type'), ember$data$lib$system$record$arrays$filtered$record$array$$get(this, 'filterFunction'));
8072
+ var manager = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "manager");
8073
+ manager.updateFilter(this, ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "type"), ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "filterFunction"));
7951
8074
  },
7952
8075
 
7953
- updateFilter: Ember.observer(function () {
8076
+ updateFilter: Ember.observer("filterFunction", function () {
7954
8077
  Ember.run.once(this, this._updateFilter);
7955
- }, 'filterFunction')
8078
+ })
7956
8079
  });
7957
8080
 
7958
8081
  var ember$data$lib$system$clone$null$$default = ember$data$lib$system$clone$null$$cloneNull;
@@ -7974,7 +8097,7 @@
7974
8097
  query: null,
7975
8098
 
7976
8099
  replace: function () {
7977
- var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'type').toString();
8100
+ var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type").toString();
7978
8101
  throw new Error("The result of a server query (on " + type + ") is immutable.");
7979
8102
  },
7980
8103
 
@@ -7984,8 +8107,8 @@
7984
8107
  @param {Array} data
7985
8108
  */
7986
8109
  load: function (data) {
7987
- var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'store');
7988
- var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'type');
8110
+ var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "store");
8111
+ var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type");
7989
8112
  var modelName = type.modelName;
7990
8113
  var records = store.pushMany(modelName, data);
7991
8114
 
@@ -7998,13 +8121,13 @@
7998
8121
  @private
7999
8122
  */
8000
8123
  loadRecords: function (records) {
8001
- var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'store');
8002
- var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'type');
8124
+ var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "store");
8125
+ var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type");
8003
8126
  var modelName = type.modelName;
8004
8127
  var meta = store._metadataFor(modelName);
8005
8128
 
8006
8129
  //TODO Optimize
8007
- var internalModels = Ember.A(records).mapBy('_internalModel');
8130
+ var internalModels = Ember.A(records).mapBy("_internalModel");
8008
8131
  this.setProperties({
8009
8132
  content: Ember.A(internalModels),
8010
8133
  isLoaded: true,
@@ -8016,7 +8139,7 @@
8016
8139
  }, this);
8017
8140
 
8018
8141
  // TODO: should triggering didLoad event be the last action of the runLoop?
8019
- Ember.run.once(this, 'trigger', 'didLoad');
8142
+ Ember.run.once(this, "trigger", "didLoad");
8020
8143
  }
8021
8144
  });
8022
8145
 
@@ -8088,7 +8211,7 @@
8088
8211
  return;
8089
8212
  }
8090
8213
 
8091
- Ember.run.schedule('actions', this, this.updateRecordArrays);
8214
+ Ember.run.schedule("actions", this, this.updateRecordArrays);
8092
8215
  },
8093
8216
 
8094
8217
  recordArraysForRecord: function (record) {
@@ -8134,7 +8257,7 @@
8134
8257
  var recordArrays = this.filteredRecordArrays.get(typeClass);
8135
8258
  var filter;
8136
8259
  ember$data$lib$system$record$array$manager$$forEach.call(recordArrays, function (array) {
8137
- filter = ember$data$lib$system$record$array$manager$$get(array, 'filterFunction');
8260
+ filter = ember$data$lib$system$record$array$manager$$get(array, "filterFunction");
8138
8261
  this.updateFilterRecordArray(array, filter, typeClass, record);
8139
8262
  }, this);
8140
8263
  },
@@ -8146,7 +8269,7 @@
8146
8269
  var filter;
8147
8270
 
8148
8271
  ember$data$lib$system$record$array$manager$$forEach.call(recordArrays, function (array) {
8149
- filter = ember$data$lib$system$record$array$manager$$get(array, 'filterFunction');
8272
+ filter = ember$data$lib$system$record$array$manager$$get(array, "filterFunction");
8150
8273
  this.updateFilterRecordArray(array, filter, typeClass, record);
8151
8274
  }, this);
8152
8275
 
@@ -8327,11 +8450,11 @@
8327
8450
 
8328
8451
  // unregister live record array
8329
8452
  } else if (this.liveRecordArrays.has(typeClass)) {
8330
- var liveRecordArrayForType = this.liveRecordArrayFor(typeClass);
8331
- if (array === liveRecordArrayForType) {
8332
- this.liveRecordArrays["delete"](typeClass);
8333
- }
8453
+ var liveRecordArrayForType = this.liveRecordArrayFor(typeClass);
8454
+ if (array === liveRecordArrayForType) {
8455
+ this.liveRecordArrays["delete"](typeClass);
8334
8456
  }
8457
+ }
8335
8458
  },
8336
8459
 
8337
8460
  willDestroy: function () {
@@ -8413,7 +8536,10 @@
8413
8536
 
8414
8537
  instanceFor: function (key) {
8415
8538
  if (key === 'adapter:-rest') {
8416
- ember$lib$main$$default.deprecate('You are currently using the default DS.RESTAdapter adapter. For Ember 2.0 the default adapter will be DS.JSONAPIAdapter. If you would like to continue using DS.RESTAdapter please create an application adapter that extends DS.RESTAdapter.');
8539
+ ember$lib$main$$default.deprecate('You are currently using the default DS.RESTAdapter adapter. For Ember 2.0 the default adapter will be DS.JSONAPIAdapter. If you would like to continue using DS.RESTAdapter please create an application adapter that extends DS.RESTAdapter.', false, {
8540
+ id: 'ds.adapter.default-adapter-changing-to-json-api',
8541
+ until: '2.0.0'
8542
+ });
8417
8543
  }
8418
8544
 
8419
8545
  var cache = this._cache;
@@ -8813,6 +8939,7 @@
8813
8939
 
8814
8940
  rolledBack: function (internalModel) {
8815
8941
  internalModel.clearErrorMessages();
8942
+ internalModel.transitionTo('loaded.saved');
8816
8943
  internalModel.triggerLater('ready');
8817
8944
  },
8818
8945
 
@@ -8899,7 +9026,7 @@
8899
9026
  ember$data$lib$system$model$states$$createdState.uncommitted.propertyWasReset = Ember.K;
8900
9027
 
8901
9028
  function ember$data$lib$system$model$states$$assertAgainstUnloadRecord(internalModel) {
8902
- Ember.assert("You can only unload a record which is not inFlight. `" + internalModel + "`", false);
9029
+ Ember.assert('You can only unload a record which is not inFlight. `' + internalModel + '`', false);
8903
9030
  }
8904
9031
 
8905
9032
  ember$data$lib$system$model$states$$updatedState.inFlight.unloadRecord = ember$data$lib$system$model$states$$assertAgainstUnloadRecord;
@@ -9218,14 +9345,14 @@
9218
9345
  continue;
9219
9346
  }
9220
9347
  if (typeof object[prop] === 'object') {
9221
- object[prop] = ember$data$lib$system$model$states$$wireState(object[prop], object, name + "." + prop);
9348
+ object[prop] = ember$data$lib$system$model$states$$wireState(object[prop], object, name + '.' + prop);
9222
9349
  }
9223
9350
  }
9224
9351
 
9225
9352
  return object;
9226
9353
  }
9227
9354
 
9228
- ember$data$lib$system$model$states$$RootState = ember$data$lib$system$model$states$$wireState(ember$data$lib$system$model$states$$RootState, null, "root");
9355
+ ember$data$lib$system$model$states$$RootState = ember$data$lib$system$model$states$$wireState(ember$data$lib$system$model$states$$RootState, null, 'root');
9229
9356
 
9230
9357
  var ember$data$lib$system$model$states$$default = ember$data$lib$system$model$states$$RootState;
9231
9358
 
@@ -9438,8 +9565,10 @@
9438
9565
  },
9439
9566
 
9440
9567
  updateLink: function (link) {
9441
- Ember.warn("You have pushed a record of type '" + this.record.type.modelName + "' with '" + this.key + "' as a link, but the association is not an async relationship.", this.isAsync);
9442
- Ember.assert("You have pushed a record of type '" + this.record.type.modelName + "' with '" + this.key + "' as a link, but the value of that link is not a string.", typeof link === 'string' || link === null);
9568
+ Ember.warn('You have pushed a record of type \'' + this.record.type.modelName + '\' with \'' + this.key + '\' as a link, but the association is not an async relationship.', this.isAsync, {
9569
+ id: 'ds.store.push-link-for-sync-relationship'
9570
+ });
9571
+ Ember.assert('You have pushed a record of type \'' + this.record.type.modelName + '\' with \'' + this.key + '\' as a link, but the value of that link is not a string.', typeof link === 'string' || link === null);
9443
9572
  if (link !== this.link) {
9444
9573
  this.link = link;
9445
9574
  this.linkPromise = null;
@@ -9674,10 +9803,10 @@
9674
9803
  */
9675
9804
  save: function () {
9676
9805
  var manyArray = this;
9677
- var promiseLabel = "DS: ManyArray#save " + ember$data$lib$system$many$array$$get(this, 'type');
9678
- var promise = Ember.RSVP.all(this.invoke("save"), promiseLabel).then(function (array) {
9806
+ var promiseLabel = 'DS: ManyArray#save ' + ember$data$lib$system$many$array$$get(this, 'type');
9807
+ var promise = Ember.RSVP.all(this.invoke('save'), promiseLabel).then(function (array) {
9679
9808
  return manyArray;
9680
- }, null, "DS: ManyArray#save return ManyArray");
9809
+ }, null, 'DS: ManyArray#save return ManyArray');
9681
9810
 
9682
9811
  return ember$data$lib$system$promise$proxies$$PromiseArray.create({ promise: promise });
9683
9812
  },
@@ -9694,7 +9823,7 @@
9694
9823
  var type = ember$data$lib$system$many$array$$get(this, 'type');
9695
9824
  var record;
9696
9825
 
9697
- Ember.assert("You cannot add '" + type.modelName + "' records to this polymorphic relationship.", !ember$data$lib$system$many$array$$get(this, 'isPolymorphic'));
9826
+ Ember.assert('You cannot add \'' + type.modelName + '\' records to this polymorphic relationship.', !ember$data$lib$system$many$array$$get(this, 'isPolymorphic'));
9698
9827
 
9699
9828
  record = store.createRecord(type.modelName, hash);
9700
9829
  this.pushObject(record);
@@ -9708,7 +9837,10 @@
9708
9837
  @deprecated Use `addObject()` instead
9709
9838
  */
9710
9839
  addRecord: function (record) {
9711
- Ember.deprecate('Using manyArray.addRecord() has been deprecated. You should use manyArray.addObject() instead.');
9840
+ Ember.deprecate('Using manyArray.addRecord() has been deprecated. You should use manyArray.addObject() instead.', false, {
9841
+ id: 'ds.many-array.add-record-deprecated',
9842
+ until: '2.0.0'
9843
+ });
9712
9844
  this.addObject(record);
9713
9845
  },
9714
9846
 
@@ -9718,7 +9850,10 @@
9718
9850
  @deprecated Use `removeObject()` instead
9719
9851
  */
9720
9852
  removeRecord: function (record) {
9721
- Ember.deprecate('Using manyArray.removeRecord() has been deprecated. You should use manyArray.removeObject() instead.');
9853
+ Ember.deprecate('Using manyArray.removeRecord() has been deprecated. You should use manyArray.removeObject() instead.', false, {
9854
+ id: 'ds.many-array.remove-record-deprecated',
9855
+ until: '2.0.0'
9856
+ });
9722
9857
  this.removeObject(record);
9723
9858
  }
9724
9859
  });
@@ -9793,7 +9928,7 @@
9793
9928
  ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype._super$updateMeta = ember$data$lib$system$relationships$state$relationship$$default.prototype.updateMeta;
9794
9929
  ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype.updateMeta = function (meta) {
9795
9930
  this._super$updateMeta(meta);
9796
- this.manyArray.set('meta', meta);
9931
+ this.manyArray.set("meta", meta);
9797
9932
  };
9798
9933
 
9799
9934
  ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype._super$addCanonicalRecord = ember$data$lib$system$relationships$state$relationship$$default.prototype.addCanonicalRecord;
@@ -9866,7 +10001,7 @@
9866
10001
  } else {
9867
10002
  return this.store.scheduleFetchMany(this.manyArray.toArray()).then(function () {
9868
10003
  //Goes away after the manyArray refactor
9869
- self.manyArray.set('isLoaded', true);
10004
+ self.manyArray.set("isLoaded", true);
9870
10005
  return self.manyArray;
9871
10006
  });
9872
10007
  }
@@ -9908,7 +10043,7 @@
9908
10043
  var _this = this;
9909
10044
 
9910
10045
  return this.store.findHasMany(this.record, this.link, this.relationshipMeta).then(function (records) {
9911
- if (records.hasOwnProperty('meta')) {
10046
+ if (records.hasOwnProperty("meta")) {
9912
10047
  _this.updateMeta(records.meta);
9913
10048
  }
9914
10049
  _this.store._backburner.join(function () {
@@ -9925,7 +10060,7 @@
9925
10060
  return rec._internalModel;
9926
10061
  })).then(function () {
9927
10062
  //Goes away after the manyArray refactor
9928
- manyArray.set('isLoaded', true);
10063
+ manyArray.set("isLoaded", true);
9929
10064
  return manyArray;
9930
10065
  });
9931
10066
  };
@@ -9950,11 +10085,11 @@
9950
10085
  promise: promise
9951
10086
  });
9952
10087
  } else {
9953
- Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.hasMany({ async: true })`)", this.manyArray.isEvery('isEmpty', false));
10088
+ Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.hasMany({ async: true })`)", this.manyArray.isEvery("isEmpty", false));
9954
10089
 
9955
10090
  //TODO(Igor) WTF DO I DO HERE?
9956
- if (!this.manyArray.get('isDestroyed')) {
9957
- this.manyArray.set('isLoaded', true);
10091
+ if (!this.manyArray.get("isDestroyed")) {
10092
+ this.manyArray.set("isLoaded", true);
9958
10093
  }
9959
10094
  return this.manyArray;
9960
10095
  }
@@ -10048,7 +10183,7 @@
10048
10183
  };
10049
10184
 
10050
10185
  ember$data$lib$system$relationships$state$belongs$to$$BelongsToRelationship.prototype.setRecordPromise = function (newPromise) {
10051
- var content = newPromise.get && newPromise.get('content');
10186
+ var content = newPromise.get && newPromise.get("content");
10052
10187
  Ember.assert("You passed in a promise that did not originate from an EmberData relationship. You can only pass promises that come from a belongsTo or hasMany relationship to the get call.", content !== undefined);
10053
10188
  this.setRecord(content ? content._internalModel : content);
10054
10189
  };
@@ -10112,7 +10247,7 @@
10112
10247
  return null;
10113
10248
  }
10114
10249
  var toReturn = this.inverseRecord.getRecord();
10115
- Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.belongsTo({ async: true })`)", toReturn === null || !toReturn.get('isEmpty'));
10250
+ Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.belongsTo({ async: true })`)", toReturn === null || !toReturn.get("isEmpty"));
10116
10251
  return toReturn;
10117
10252
  }
10118
10253
  };
@@ -10129,7 +10264,7 @@
10129
10264
  inverseKey = inverse.name;
10130
10265
  }
10131
10266
 
10132
- if (relationshipMeta.kind === 'hasMany') {
10267
+ if (relationshipMeta.kind === "hasMany") {
10133
10268
  return new ember$data$lib$system$relationships$state$has$many$$default(store, record, inverseKey, relationshipMeta);
10134
10269
  } else {
10135
10270
  return new ember$data$lib$system$relationships$state$belongs$to$$default(store, record, inverseKey, relationshipMeta);
@@ -10147,7 +10282,7 @@
10147
10282
 
10148
10283
  ember$data$lib$system$relationships$state$create$$Relationships.prototype.get = function (key) {
10149
10284
  var relationships = this.initializedRelationships;
10150
- var relationshipsByName = ember$data$lib$system$relationships$state$create$$get(this.record.type, 'relationshipsByName');
10285
+ var relationshipsByName = ember$data$lib$system$relationships$state$create$$get(this.record.type, "relationshipsByName");
10151
10286
  if (!relationships[key] && relationshipsByName.get(key)) {
10152
10287
  relationships[key] = ember$data$lib$system$relationships$state$create$$createRelationshipFor(this.record, relationshipsByName.get(key), this.record.store);
10153
10288
  }
@@ -10157,17 +10292,17 @@
10157
10292
  var ember$data$lib$system$relationships$state$create$$default = ember$data$lib$system$relationships$state$create$$Relationships;
10158
10293
 
10159
10294
  /**
10295
+ @module ember-data
10296
+ */
10297
+
10298
+ var ember$data$lib$system$snapshot$$get = Ember.get;/**
10160
10299
  @class Snapshot
10161
10300
  @namespace DS
10162
10301
  @private
10163
10302
  @constructor
10164
10303
  @param {DS.Model} internalModel The model to create a snapshot from
10165
10304
  */
10166
- /**
10167
- @module ember-data
10168
- */
10169
-
10170
- var ember$data$lib$system$snapshot$$get = Ember.get;function ember$data$lib$system$snapshot$$Snapshot(internalModel) {
10305
+ function ember$data$lib$system$snapshot$$Snapshot(internalModel) {
10171
10306
  this._attributes = ember$data$lib$system$object$polyfills$$create(null);
10172
10307
  this._belongsToRelationships = ember$data$lib$system$object$polyfills$$create(null);
10173
10308
  this._belongsToIds = ember$data$lib$system$object$polyfills$$create(null);
@@ -10204,7 +10339,10 @@
10204
10339
  // again.
10205
10340
  if (callDeprecate) {
10206
10341
  callDeprecate = false;
10207
- Ember.deprecate('Usage of `snapshot.constructor` is deprecated, use `snapshot.type` instead.');
10342
+ Ember.deprecate('Usage of `snapshot.constructor` is deprecated, use `snapshot.type` instead.', false, {
10343
+ id: 'ds.snapshot.constructor-deprecator',
10344
+ until: '2.0.0'
10345
+ });
10208
10346
  callDeprecate = true;
10209
10347
  }
10210
10348
 
@@ -10274,7 +10412,7 @@
10274
10412
  if (keyName in this._attributes) {
10275
10413
  return this._attributes[keyName];
10276
10414
  }
10277
- throw new Ember.Error("Model '" + Ember.inspect(this.record) + "' has no attribute named '" + keyName + "' defined.");
10415
+ throw new Ember.Error('Model \'' + Ember.inspect(this.record) + '\' has no attribute named \'' + keyName + '\' defined.');
10278
10416
  },
10279
10417
 
10280
10418
  /**
@@ -10356,7 +10494,7 @@
10356
10494
 
10357
10495
  relationship = this._internalModel._relationships.get(keyName);
10358
10496
  if (!(relationship && relationship.relationshipMeta.kind === 'belongsTo')) {
10359
- throw new Ember.Error("Model '" + Ember.inspect(this.record) + "' has no belongsTo relationship named '" + keyName + "' defined.");
10497
+ throw new Ember.Error('Model \'' + Ember.inspect(this.record) + '\' has no belongsTo relationship named \'' + keyName + '\' defined.');
10360
10498
  }
10361
10499
 
10362
10500
  hasData = ember$data$lib$system$snapshot$$get(relationship, 'hasData');
@@ -10420,7 +10558,7 @@
10420
10558
 
10421
10559
  relationship = this._internalModel._relationships.get(keyName);
10422
10560
  if (!(relationship && relationship.relationshipMeta.kind === 'hasMany')) {
10423
- throw new Ember.Error("Model '" + Ember.inspect(this.record) + "' has no hasMany relationship named '" + keyName + "' defined.");
10561
+ throw new Ember.Error('Model \'' + Ember.inspect(this.record) + '\' has no hasMany relationship named \'' + keyName + '\' defined.');
10424
10562
  }
10425
10563
 
10426
10564
  hasData = ember$data$lib$system$snapshot$$get(relationship, 'hasData');
@@ -10489,7 +10627,10 @@
10489
10627
  @deprecated Use [attr](#method_attr), [belongsTo](#method_belongsTo) or [hasMany](#method_hasMany) instead
10490
10628
  */
10491
10629
  get: function (keyName) {
10492
- Ember.deprecate('Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead.');
10630
+ Ember.deprecate('Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead.', false, {
10631
+ id: 'ds.snapshot.get-deprecated',
10632
+ until: '2.0.0'
10633
+ });
10493
10634
 
10494
10635
  if (keyName === 'id') {
10495
10636
  return this.id;
@@ -10535,7 +10676,10 @@
10535
10676
  @private
10536
10677
  */
10537
10678
  _createSnapshot: function () {
10538
- Ember.deprecate("You called _createSnapshot on what's already a DS.Snapshot. You shouldn't manually create snapshots in your adapter since the store passes snapshots to adapters by default.");
10679
+ Ember.deprecate('You called _createSnapshot on what\'s already a DS.Snapshot. You shouldn\'t manually create snapshots in your adapter since the store passes snapshots to adapters by default.', false, {
10680
+ id: 'ds.snapshot.create-snapshot-on-snapshot',
10681
+ until: '2.0.0'
10682
+ });
10539
10683
  return this;
10540
10684
  }
10541
10685
  };
@@ -10543,7 +10687,10 @@
10543
10687
  Ember.defineProperty(ember$data$lib$system$snapshot$$Snapshot.prototype, 'typeKey', {
10544
10688
  enumerable: false,
10545
10689
  get: function () {
10546
- Ember.deprecate('Snapshot.typeKey is deprecated. Use snapshot.modelName instead.');
10690
+ Ember.deprecate('Snapshot.typeKey is deprecated. Use snapshot.modelName instead.', false, {
10691
+ id: 'ds.snapshot.type-key-deprecated',
10692
+ until: '2.0.0'
10693
+ });
10547
10694
  return this.modelName;
10548
10695
  },
10549
10696
  set: function () {
@@ -10563,7 +10710,7 @@
10563
10710
  var ember$data$lib$system$model$internal$model$$_splitOnDotCache = ember$data$lib$system$object$polyfills$$create(null);
10564
10711
 
10565
10712
  function ember$data$lib$system$model$internal$model$$splitOnDot(name) {
10566
- return ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] || (ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] = name.split('.'));
10713
+ return ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] || (ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] = name.split("."));
10567
10714
  }
10568
10715
 
10569
10716
  function ember$data$lib$system$model$internal$model$$extractPivotName(name) {
@@ -10634,15 +10781,15 @@
10634
10781
  };
10635
10782
 
10636
10783
  ember$data$lib$system$model$internal$model$$InternalModel.prototype = {
10637
- isEmpty: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isEmpty'),
10638
- isLoading: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isLoading'),
10639
- isLoaded: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isLoaded'),
10640
- hasDirtyAttributes: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('hasDirtyAttributes'),
10641
- isSaving: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isSaving'),
10642
- isDeleted: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isDeleted'),
10643
- isNew: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isNew'),
10644
- isValid: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isValid'),
10645
- dirtyType: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('dirtyType'),
10784
+ isEmpty: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isEmpty"),
10785
+ isLoading: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isLoading"),
10786
+ isLoaded: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isLoaded"),
10787
+ hasDirtyAttributes: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("hasDirtyAttributes"),
10788
+ isSaving: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isSaving"),
10789
+ isDeleted: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isDeleted"),
10790
+ isNew: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isNew"),
10791
+ isValid: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isValid"),
10792
+ dirtyType: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("dirtyType"),
10646
10793
 
10647
10794
  constructor: ember$data$lib$system$model$internal$model$$InternalModel,
10648
10795
  materializeRecord: function () {
@@ -10654,7 +10801,7 @@
10654
10801
  store: this.store,
10655
10802
  container: this.container,
10656
10803
  _internalModel: this,
10657
- currentState: ember$data$lib$system$model$internal$model$$get(this, 'currentState'),
10804
+ currentState: ember$data$lib$system$model$internal$model$$get(this, "currentState"),
10658
10805
  isError: this.isError,
10659
10806
  adapterError: this.error
10660
10807
  });
@@ -10666,7 +10813,7 @@
10666
10813
  },
10667
10814
 
10668
10815
  deleteRecord: function () {
10669
- this.send('deleteRecord');
10816
+ this.send("deleteRecord");
10670
10817
  },
10671
10818
 
10672
10819
  save: function (options) {
@@ -10680,14 +10827,14 @@
10680
10827
  startedReloading: function () {
10681
10828
  this.isReloading = true;
10682
10829
  if (this.record) {
10683
- ember$data$lib$system$model$internal$model$$set(this.record, 'isReloading', true);
10830
+ ember$data$lib$system$model$internal$model$$set(this.record, "isReloading", true);
10684
10831
  }
10685
10832
  },
10686
10833
 
10687
10834
  finishedReloading: function () {
10688
10835
  this.isReloading = false;
10689
10836
  if (this.record) {
10690
- ember$data$lib$system$model$internal$model$$set(this.record, 'isReloading', false);
10837
+ ember$data$lib$system$model$internal$model$$set(this.record, "isReloading", false);
10691
10838
  }
10692
10839
  },
10693
10840
 
@@ -10696,7 +10843,7 @@
10696
10843
  var record = this;
10697
10844
  var promiseLabel = "DS: Model#reload of " + this;
10698
10845
  return new ember$data$lib$system$model$internal$model$$Promise(function (resolve) {
10699
- record.send('reloadRecord', resolve);
10846
+ record.send("reloadRecord", resolve);
10700
10847
  }, promiseLabel).then(function () {
10701
10848
  record.didCleanError();
10702
10849
  return record;
@@ -10717,7 +10864,7 @@
10717
10864
  },
10718
10865
 
10719
10866
  unloadRecord: function () {
10720
- this.send('unloadRecord');
10867
+ this.send("unloadRecord");
10721
10868
  },
10722
10869
 
10723
10870
  eachRelationship: function (callback, binding) {
@@ -10743,7 +10890,7 @@
10743
10890
  },
10744
10891
 
10745
10892
  becameReady: function () {
10746
- Ember.run.schedule('actions', this.store.recordArrayManager, this.store.recordArrayManager.recordWasLoaded, this);
10893
+ Ember.run.schedule("actions", this.store.recordArrayManager, this.store.recordArrayManager.recordWasLoaded, this);
10747
10894
  },
10748
10895
 
10749
10896
  didInitalizeData: function () {
@@ -10776,7 +10923,7 @@
10776
10923
  @param {Promise} promise
10777
10924
  */
10778
10925
  loadingData: function (promise) {
10779
- this.send('loadingData', promise);
10926
+ this.send("loadingData", promise);
10780
10927
  },
10781
10928
 
10782
10929
  /**
@@ -10784,7 +10931,7 @@
10784
10931
  @private
10785
10932
  */
10786
10933
  loadedData: function () {
10787
- this.send('loadedData');
10934
+ this.send("loadedData");
10788
10935
  this.didInitalizeData();
10789
10936
  },
10790
10937
 
@@ -10793,7 +10940,7 @@
10793
10940
  @private
10794
10941
  */
10795
10942
  notFound: function () {
10796
- this.send('notFound');
10943
+ this.send("notFound");
10797
10944
  },
10798
10945
 
10799
10946
  /**
@@ -10801,7 +10948,7 @@
10801
10948
  @private
10802
10949
  */
10803
10950
  pushedData: function () {
10804
- this.send('pushedData');
10951
+ this.send("pushedData");
10805
10952
  },
10806
10953
 
10807
10954
  flushChangedAttributes: function () {
@@ -10814,7 +10961,7 @@
10814
10961
  @private
10815
10962
  */
10816
10963
  adapterWillCommit: function () {
10817
- this.send('willCommit');
10964
+ this.send("willCommit");
10818
10965
  },
10819
10966
 
10820
10967
  /**
@@ -10822,7 +10969,7 @@
10822
10969
  @private
10823
10970
  */
10824
10971
  adapterDidDirty: function () {
10825
- this.send('becomeDirty');
10972
+ this.send("becomeDirty");
10826
10973
  this.updateRecordArraysLater();
10827
10974
  },
10828
10975
 
@@ -10833,7 +10980,7 @@
10833
10980
  @param {Object} context
10834
10981
  */
10835
10982
  send: function (name, context) {
10836
- var currentState = ember$data$lib$system$model$internal$model$$get(this, 'currentState');
10983
+ var currentState = ember$data$lib$system$model$internal$model$$get(this, "currentState");
10837
10984
 
10838
10985
  if (!currentState[name]) {
10839
10986
  this._unhandledEvent(currentState, name, context);
@@ -10871,7 +11018,7 @@
10871
11018
 
10872
11019
  this._attributes = ember$data$lib$system$object$polyfills$$create(null);
10873
11020
 
10874
- if (ember$data$lib$system$model$internal$model$$get(this, 'isError')) {
11021
+ if (ember$data$lib$system$model$internal$model$$get(this, "isError")) {
10875
11022
  this._inFlightAttributes = ember$data$lib$system$object$polyfills$$create(null);
10876
11023
  this.didCleanError();
10877
11024
  }
@@ -10893,7 +11040,7 @@
10893
11040
  this._inFlightAttributes = ember$data$lib$system$object$polyfills$$create(null);
10894
11041
  }
10895
11042
 
10896
- this.send('rolledBack');
11043
+ this.send("rolledBack");
10897
11044
 
10898
11045
  this.record._notifyProperties(dirtyKeys);
10899
11046
  },
@@ -10907,7 +11054,7 @@
10907
11054
  // always having direct reference to state objects
10908
11055
 
10909
11056
  var pivotName = ember$data$lib$system$model$internal$model$$extractPivotName(name);
10910
- var currentState = ember$data$lib$system$model$internal$model$$get(this, 'currentState');
11057
+ var currentState = ember$data$lib$system$model$internal$model$$get(this, "currentState");
10911
11058
  var state = currentState;
10912
11059
 
10913
11060
  do {
@@ -10937,10 +11084,10 @@
10937
11084
  enters[i].enter(this);
10938
11085
  }
10939
11086
 
10940
- ember$data$lib$system$model$internal$model$$set(this, 'currentState', state);
11087
+ ember$data$lib$system$model$internal$model$$set(this, "currentState", state);
10941
11088
  //TODO Consider whether this is the best approach for keeping these two in sync
10942
11089
  if (this.record) {
10943
- ember$data$lib$system$model$internal$model$$set(this.record, 'currentState', state);
11090
+ ember$data$lib$system$model$internal$model$$set(this.record, "currentState", state);
10944
11091
  }
10945
11092
 
10946
11093
  for (i = 0, l = setups.length; i < l; i++) {
@@ -10973,7 +11120,7 @@
10973
11120
  if (this._deferredTriggers.push(args) !== 1) {
10974
11121
  return;
10975
11122
  }
10976
- Ember.run.scheduleOnce('actions', this, '_triggerDeferredTriggers');
11123
+ Ember.run.scheduleOnce("actions", this, "_triggerDeferredTriggers");
10977
11124
  },
10978
11125
 
10979
11126
  _triggerDeferredTriggers: function () {
@@ -11059,7 +11206,7 @@
11059
11206
  _preloadRelationship: function (key, preloadValue) {
11060
11207
  var relationshipMeta = this.type.metaForProperty(key);
11061
11208
  var type = relationshipMeta.type;
11062
- if (relationshipMeta.kind === 'hasMany') {
11209
+ if (relationshipMeta.kind === "hasMany") {
11063
11210
  this._preloadHasMany(key, preloadValue, type);
11064
11211
  } else {
11065
11212
  this._preloadBelongsTo(key, preloadValue, type);
@@ -11087,7 +11234,7 @@
11087
11234
  },
11088
11235
 
11089
11236
  _convertStringOrNumberIntoInternalModel: function (value, type) {
11090
- if (typeof value === 'string' || typeof value === 'number') {
11237
+ if (typeof value === "string" || typeof value === "number") {
11091
11238
  return this.store._internalModelForId(type, value);
11092
11239
  }
11093
11240
  if (value._internalModel) {
@@ -11108,7 +11255,7 @@
11108
11255
  setId: function (id) {
11109
11256
  this.id = id;
11110
11257
  //TODO figure out whether maybe we should proxy
11111
- ember$data$lib$system$model$internal$model$$set(this.record, 'id', id);
11258
+ ember$data$lib$system$model$internal$model$$set(this.record, "id", id);
11112
11259
  },
11113
11260
 
11114
11261
  didError: function (error) {
@@ -11155,7 +11302,7 @@
11155
11302
 
11156
11303
  this._inFlightAttributes = ember$data$lib$system$object$polyfills$$create(null);
11157
11304
 
11158
- this.send('didCommit');
11305
+ this.send("didCommit");
11159
11306
  this.updateRecordArraysLater();
11160
11307
 
11161
11308
  if (!data) {
@@ -11175,22 +11322,22 @@
11175
11322
  return;
11176
11323
  }
11177
11324
  this._updatingRecordArraysLater = true;
11178
- Ember.run.schedule('actions', this, this.updateRecordArrays);
11325
+ Ember.run.schedule("actions", this, this.updateRecordArrays);
11179
11326
  },
11180
11327
 
11181
11328
  addErrorMessageToAttribute: function (attribute, message) {
11182
11329
  var record = this.getRecord();
11183
- ember$data$lib$system$model$internal$model$$get(record, 'errors').add(attribute, message);
11330
+ ember$data$lib$system$model$internal$model$$get(record, "errors").add(attribute, message);
11184
11331
  },
11185
11332
 
11186
11333
  removeErrorMessageFromAttribute: function (attribute) {
11187
11334
  var record = this.getRecord();
11188
- ember$data$lib$system$model$internal$model$$get(record, 'errors').remove(attribute);
11335
+ ember$data$lib$system$model$internal$model$$get(record, "errors").remove(attribute);
11189
11336
  },
11190
11337
 
11191
11338
  clearErrorMessages: function () {
11192
11339
  var record = this.getRecord();
11193
- ember$data$lib$system$model$internal$model$$get(record, 'errors').clear();
11340
+ ember$data$lib$system$model$internal$model$$get(record, "errors").clear();
11194
11341
  },
11195
11342
 
11196
11343
  // FOR USE DURING COMMIT PROCESS
@@ -11216,7 +11363,7 @@
11216
11363
  @private
11217
11364
  */
11218
11365
  adapterDidError: function (error) {
11219
- this.send('becameError');
11366
+ this.send("becameError");
11220
11367
  this.didError(error);
11221
11368
  this._saveWasRejected();
11222
11369
  },
@@ -11306,15 +11453,15 @@
11306
11453
 
11307
11454
  var ember$data$lib$system$model$internal$model$$default = ember$data$lib$system$model$internal$model$$InternalModel;
11308
11455
 
11309
- var ember$data$lib$system$store$$Backburner = Ember._Backburner || Ember.Backburner || Ember.__loader.require('backburner')['default'] || Ember.__loader.require('backburner')['Backburner'];
11456
+ var ember$data$lib$system$store$$Backburner = Ember._Backburner || Ember.Backburner || Ember.__loader.require("backburner")["default"] || Ember.__loader.require("backburner")["Backburner"];
11310
11457
 
11311
11458
  //Shim Backburner.join
11312
11459
  if (!ember$data$lib$system$store$$Backburner.prototype.join) {
11313
11460
  var ember$data$lib$system$store$$isString = function (suspect) {
11314
- return typeof suspect === 'string';
11461
+ return typeof suspect === "string";
11315
11462
  };
11316
11463
 
11317
- ember$data$lib$system$store$$Backburner.prototype.join = function () /*target, method, args */{
11464
+ ember$data$lib$system$store$$Backburner.prototype.join = function () {
11318
11465
  var method, target;
11319
11466
 
11320
11467
  if (this.currentInstance) {
@@ -11469,7 +11616,7 @@
11469
11616
  @private
11470
11617
  */
11471
11618
  init: function () {
11472
- this._backburner = new ember$data$lib$system$store$$Backburner(['normalizeRelationships', 'syncRelationships', 'finished']);
11619
+ this._backburner = new ember$data$lib$system$store$$Backburner(["normalizeRelationships", "syncRelationships", "finished"]);
11473
11620
  // internal bookkeeping; not observable
11474
11621
  this.typeMaps = {};
11475
11622
  this.recordArrayManager = ember$data$lib$system$record$array$manager$$default.create({
@@ -11492,7 +11639,7 @@
11492
11639
  @default DS.RESTAdapter
11493
11640
  @type {(DS.Adapter|String)}
11494
11641
  */
11495
- adapter: '-rest',
11642
+ adapter: "-rest",
11496
11643
 
11497
11644
  /**
11498
11645
  Returns a JSON representation of the record using a custom
@@ -11522,12 +11669,12 @@
11522
11669
  @private
11523
11670
  @return DS.Adapter
11524
11671
  */
11525
- defaultAdapter: Ember.computed('adapter', function () {
11526
- var adapter = ember$data$lib$system$store$$get(this, 'adapter');
11672
+ defaultAdapter: Ember.computed("adapter", function () {
11673
+ var adapter = ember$data$lib$system$store$$get(this, "adapter");
11527
11674
 
11528
- Ember.assert('You tried to set `adapter` property to an instance of `DS.Adapter`, where it should be a name', typeof adapter === 'string');
11675
+ Ember.assert("You tried to set `adapter` property to an instance of `DS.Adapter`, where it should be a name", typeof adapter === "string");
11529
11676
 
11530
- adapter = this.retrieveManagedInstance('adapter', adapter);
11677
+ adapter = this.retrieveManagedInstance("adapter", adapter);
11531
11678
 
11532
11679
  return adapter;
11533
11680
  }),
@@ -11560,7 +11707,7 @@
11560
11707
  @return {DS.Model} record
11561
11708
  */
11562
11709
  createRecord: function (modelName, inputProperties) {
11563
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
11710
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
11564
11711
  var typeClass = this.modelFor(modelName);
11565
11712
  var properties = ember$data$lib$system$store$$copy(inputProperties) || ember$data$lib$system$object$polyfills$$create(null);
11566
11713
 
@@ -11702,19 +11849,25 @@
11702
11849
  find: function (modelName, id, preload) {
11703
11850
  Ember.assert("You need to pass a type to the store's find method", arguments.length >= 1);
11704
11851
  Ember.assert("You may not pass `" + id + "` as id to the store's find method", arguments.length === 1 || !Ember.isNone(id));
11705
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
11852
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
11706
11853
 
11707
11854
  if (arguments.length === 1) {
11708
- Ember.deprecate('Using store.find(type) has been deprecated. Use store.findAll(type) to retrieve all records for a given type.');
11855
+ Ember.deprecate("Using store.find(type) has been deprecated. Use store.findAll(type) to retrieve all records for a given type.", false, {
11856
+ id: "ds.store.find-with-type-deprecated",
11857
+ until: "2.0.0"
11858
+ });
11709
11859
  return this.findAll(modelName);
11710
11860
  }
11711
11861
 
11712
11862
  // We are passed a query instead of an id.
11713
- if (Ember.typeOf(id) === 'object') {
11714
- Ember.deprecate('Calling store.find() with a query object is deprecated. Use store.query() instead.');
11863
+ if (Ember.typeOf(id) === "object") {
11864
+ Ember.deprecate("Calling store.find() with a query object is deprecated. Use store.query() instead.", false, {
11865
+ id: "ds.store.find-with-type-deprecated",
11866
+ until: "2.0.0"
11867
+ });
11715
11868
  return this.query(modelName, id);
11716
11869
  }
11717
- var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), 'find');
11870
+ var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), "find");
11718
11871
  return this.findRecord(modelName, ember$data$lib$system$coerce$id$$default(id), options);
11719
11872
  },
11720
11873
 
@@ -11728,9 +11881,12 @@
11728
11881
  @return {Promise} promise
11729
11882
  */
11730
11883
  fetchById: function (modelName, id, preload) {
11731
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
11732
- var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), 'fetchById');
11733
- Ember.deprecate('Using store.fetchById(type, id) has been deprecated. Use store.findRecord(type, id, { reload: true }) to reload a record for a given type.');
11884
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
11885
+ var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), "fetchById");
11886
+ Ember.deprecate("Using store.fetchById(type, id) has been deprecated. Use store.findRecord(type, id, { reload: true }) to reload a record for a given type.", false, {
11887
+ id: "ds.store.fetch-by-id-deprecated",
11888
+ until: "2.0.0"
11889
+ });
11734
11890
  if (this.hasRecordForId(modelName, id)) {
11735
11891
  return this.peekRecord(modelName, id).reload();
11736
11892
  } else {
@@ -11747,7 +11903,10 @@
11747
11903
  @return {Promise} promise
11748
11904
  */
11749
11905
  fetchAll: function (modelName) {
11750
- Ember.deprecate('Using store.fetchAll(type) has been deprecated. Use store.findAll(type, { reload: true }) to retrieve all records for a given type.');
11906
+ Ember.deprecate("Using store.fetchAll(type) has been deprecated. Use store.findAll(type, { reload: true }) to retrieve all records for a given type.", false, {
11907
+ id: "ds.store.fetch-all-deprecated",
11908
+ until: "2.0.0"
11909
+ });
11751
11910
  return this.findAll(modelName, { reload: true });
11752
11911
  },
11753
11912
 
@@ -11760,8 +11919,11 @@
11760
11919
  @deprecated Use [findRecord](#method_findRecord) instead
11761
11920
  */
11762
11921
  fetch: function (modelName, id, preload) {
11763
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
11764
- Ember.deprecate('Using store.fetch() has been deprecated. Use store.findRecord for fetching individual records or store.findAll for collections');
11922
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
11923
+ Ember.deprecate("Using store.fetch() has been deprecated. Use store.findRecord for fetching individual records or store.findAll for collections", false, {
11924
+ id: "ds.store.fetch-deprecated",
11925
+ until: "2.0.0"
11926
+ });
11765
11927
  return this.findRecord(modelName, id, { reload: true, preload: preload });
11766
11928
  },
11767
11929
 
@@ -11775,8 +11937,11 @@
11775
11937
  @return {Promise} promise
11776
11938
  */
11777
11939
  findById: function (modelName, id, preload) {
11778
- Ember.deprecate('Using store.findById() has been deprecated. Use store.findRecord() to return a record for a given type and id combination.');
11779
- var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), 'findById');
11940
+ Ember.deprecate("Using store.findById() has been deprecated. Use store.findRecord() to return a record for a given type and id combination.", false, {
11941
+ id: "ds.store.find-by-id-deprecated",
11942
+ until: "2.0.0"
11943
+ });
11944
+ var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), "findById");
11780
11945
  return this.findRecord(modelName, id, options);
11781
11946
  },
11782
11947
 
@@ -11815,7 +11980,7 @@
11815
11980
  @return {Promise} promise
11816
11981
  */
11817
11982
  findRecord: function (modelName, id, options) {
11818
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
11983
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
11819
11984
  var internalModel = this._internalModelForId(modelName, id);
11820
11985
  options = options || {};
11821
11986
 
@@ -11825,7 +11990,7 @@
11825
11990
 
11826
11991
  var fetchedInternalModel = this._findRecord(internalModel, options);
11827
11992
 
11828
- return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, 'id'));
11993
+ return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, "id"));
11829
11994
  },
11830
11995
 
11831
11996
  _findRecord: function (internalModel, options) {
@@ -11861,7 +12026,7 @@
11861
12026
 
11862
12027
  var fetchedInternalModel = this._findEmptyInternalModel(internalModel, options);
11863
12028
 
11864
- return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, 'id'));
12029
+ return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, "id"));
11865
12030
  },
11866
12031
 
11867
12032
  _findEmptyInternalModel: function (internalModel, options) {
@@ -11887,7 +12052,7 @@
11887
12052
  @return {Promise} promise
11888
12053
  */
11889
12054
  findByIds: function (modelName, ids) {
11890
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12055
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
11891
12056
  var store = this;
11892
12057
 
11893
12058
  return ember$data$lib$system$promise$proxies$$promiseArray(Ember.RSVP.all(ember$data$lib$system$store$$map.call(ids, function (id) {
@@ -11911,7 +12076,7 @@
11911
12076
  var adapter = this.adapterFor(typeClass.modelName);
11912
12077
 
11913
12078
  Ember.assert("You tried to find a record but you have no adapter (for " + typeClass + ")", adapter);
11914
- Ember.assert("You tried to find a record but your adapter (for " + typeClass + ") does not implement 'findRecord'", typeof adapter.findRecord === 'function' || typeof adapter.find === 'function');
12079
+ Ember.assert("You tried to find a record but your adapter (for " + typeClass + ") does not implement 'findRecord'", typeof adapter.findRecord === "function" || typeof adapter.find === "function");
11915
12080
 
11916
12081
  var promise = ember$data$lib$system$store$finders$$_find(adapter, this, typeClass, id, internalModel, options);
11917
12082
  return promise;
@@ -11931,7 +12096,7 @@
11931
12096
  return internalModel._loadingPromise;
11932
12097
  }
11933
12098
 
11934
- var resolver = Ember.RSVP.defer('Fetching ' + typeClass + 'with id: ' + internalModel.id);
12099
+ var resolver = Ember.RSVP.defer("Fetching " + typeClass + "with id: " + internalModel.id);
11935
12100
  var pendingFetchItem = {
11936
12101
  record: internalModel,
11937
12102
  resolver: resolver,
@@ -11946,7 +12111,7 @@
11946
12111
  } else {
11947
12112
  this._pendingFetch.get(typeClass).push(pendingFetchItem);
11948
12113
  }
11949
- Ember.run.scheduleOnce('afterRender', this, this.flushAllPendingFetches);
12114
+ Ember.run.scheduleOnce("afterRender", this, this.flushAllPendingFetches);
11950
12115
 
11951
12116
  return promise;
11952
12117
  },
@@ -11964,7 +12129,7 @@
11964
12129
  var store = this;
11965
12130
  var adapter = store.adapterFor(typeClass.modelName);
11966
12131
  var shouldCoalesce = !!adapter.findMany && adapter.coalesceFindRequests;
11967
- var records = Ember.A(pendingFetchItems).mapBy('record');
12132
+ var records = Ember.A(pendingFetchItems).mapBy("record");
11968
12133
 
11969
12134
  function _fetchRecord(recordResolverPair) {
11970
12135
  recordResolverPair.resolver.resolve(store.fetchRecord(recordResolverPair.record, recordResolverPair.options)); // TODO adapter options
@@ -11972,7 +12137,7 @@
11972
12137
 
11973
12138
  function resolveFoundRecords(records) {
11974
12139
  ember$data$lib$system$store$$forEach.call(records, function (record) {
11975
- var pair = Ember.A(pendingFetchItems).findBy('record', record);
12140
+ var pair = Ember.A(pendingFetchItems).findBy("record", record);
11976
12141
  if (pair) {
11977
12142
  var resolver = pair.resolver;
11978
12143
  resolver.resolve(record);
@@ -11988,7 +12153,9 @@
11988
12153
  return resolvedRecords.contains(record);
11989
12154
  });
11990
12155
  if (missingRecords.length) {
11991
- Ember.warn('Ember Data expected to find records with the following ids in the adapter response but they were missing: ' + Ember.inspect(Ember.A(missingRecords).mapBy('id')), false);
12156
+ Ember.warn("Ember Data expected to find records with the following ids in the adapter response but they were missing: " + Ember.inspect(Ember.A(missingRecords).mapBy("id")), false, {
12157
+ id: "ds.store.missing-records-from-adapter"
12158
+ });
11992
12159
  }
11993
12160
  rejectRecords(missingRecords);
11994
12161
  };
@@ -12002,7 +12169,7 @@
12002
12169
 
12003
12170
  function rejectRecords(records, error) {
12004
12171
  ember$data$lib$system$store$$forEach.call(records, function (record) {
12005
- var pair = Ember.A(pendingFetchItems).findBy('record', record);
12172
+ var pair = Ember.A(pendingFetchItems).findBy("record", record);
12006
12173
  if (pair) {
12007
12174
  var resolver = pair.resolver;
12008
12175
  resolver.reject(error);
@@ -12025,16 +12192,16 @@
12025
12192
  // records from the grouped snapshots even though the _findMany() finder
12026
12193
  // will once again convert the records to snapshots for adapter.findMany()
12027
12194
 
12028
- var snapshots = Ember.A(records).invoke('createSnapshot');
12195
+ var snapshots = Ember.A(records).invoke("createSnapshot");
12029
12196
  var groups = adapter.groupRecordsForFindMany(this, snapshots);
12030
12197
  ember$data$lib$system$store$$forEach.call(groups, function (groupOfSnapshots) {
12031
- var groupOfRecords = Ember.A(groupOfSnapshots).mapBy('_internalModel');
12198
+ var groupOfRecords = Ember.A(groupOfSnapshots).mapBy("_internalModel");
12032
12199
  var requestedRecords = Ember.A(groupOfRecords);
12033
- var ids = requestedRecords.mapBy('id');
12200
+ var ids = requestedRecords.mapBy("id");
12034
12201
  if (ids.length > 1) {
12035
12202
  ember$data$lib$system$store$finders$$_findMany(adapter, store, typeClass, ids, requestedRecords).then(resolveFoundRecords).then(makeMissingRecordsRejector(requestedRecords)).then(null, makeRecordsRejector(requestedRecords));
12036
12203
  } else if (ids.length === 1) {
12037
- var pair = Ember.A(pendingFetchItems).findBy('record', groupOfRecords[0]);
12204
+ var pair = Ember.A(pendingFetchItems).findBy("record", groupOfRecords[0]);
12038
12205
  _fetchRecord(pair);
12039
12206
  } else {
12040
12207
  Ember.assert("You cannot return an empty array from adapter's method groupRecordsForFindMany", false);
@@ -12061,7 +12228,10 @@
12061
12228
  @return {DS.Model|null} record
12062
12229
  */
12063
12230
  getById: function (modelName, id) {
12064
- Ember.deprecate('Using store.getById() has been deprecated. Use store.peekRecord to get a record by a given type and ID without triggering a fetch.');
12231
+ Ember.deprecate("Using store.getById() has been deprecated. Use store.peekRecord to get a record by a given type and ID without triggering a fetch.", false, {
12232
+ id: "ds.store.get-by-id-deprecated",
12233
+ until: "2.0.0"
12234
+ });
12065
12235
  return this.peekRecord(modelName, id);
12066
12236
  },
12067
12237
 
@@ -12081,7 +12251,7 @@
12081
12251
  @return {DS.Model|null} record
12082
12252
  */
12083
12253
  peekRecord: function (modelName, id) {
12084
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12254
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12085
12255
  if (this.hasRecordForId(modelName, id)) {
12086
12256
  return this._internalModelForId(modelName, id).getRecord();
12087
12257
  } else {
@@ -12106,7 +12276,7 @@
12106
12276
 
12107
12277
  Ember.assert("You cannot reload a record without an ID", id);
12108
12278
  Ember.assert("You tried to reload a record but you have no adapter (for " + modelName + ")", adapter);
12109
- Ember.assert("You tried to reload a record but your adapter does not implement `findRecord`", typeof adapter.findRecord === 'function' || typeof adapter.find === 'function');
12279
+ Ember.assert("You tried to reload a record but your adapter does not implement `findRecord`", typeof adapter.findRecord === "function" || typeof adapter.find === "function");
12110
12280
 
12111
12281
  return this.scheduleFetch(internalModel);
12112
12282
  },
@@ -12119,7 +12289,7 @@
12119
12289
  @return {Boolean}
12120
12290
  */
12121
12291
  hasRecordForId: function (modelName, inputId) {
12122
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12292
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12123
12293
  var typeClass = this.modelFor(modelName);
12124
12294
  var id = ember$data$lib$system$coerce$id$$default(inputId);
12125
12295
  var internalModel = this.typeMapFor(typeClass).idToRecord[id];
@@ -12136,7 +12306,7 @@
12136
12306
  @return {DS.Model} record
12137
12307
  */
12138
12308
  recordForId: function (modelName, id) {
12139
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12309
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12140
12310
  return this._internalModelForId(modelName, id).getRecord();
12141
12311
  },
12142
12312
 
@@ -12185,7 +12355,7 @@
12185
12355
  var adapter = this.adapterFor(owner.type.modelName);
12186
12356
 
12187
12357
  Ember.assert("You tried to load a hasMany relationship but you have no adapter (for " + owner.type + ")", adapter);
12188
- Ember.assert("You tried to load a hasMany relationship from a specified `link` in the original payload but your adapter does not implement `findHasMany`", typeof adapter.findHasMany === 'function');
12358
+ Ember.assert("You tried to load a hasMany relationship from a specified `link` in the original payload but your adapter does not implement `findHasMany`", typeof adapter.findHasMany === "function");
12189
12359
 
12190
12360
  return ember$data$lib$system$store$finders$$_findHasMany(adapter, this, owner, link, relationship);
12191
12361
  },
@@ -12202,7 +12372,7 @@
12202
12372
  var adapter = this.adapterFor(owner.type.modelName);
12203
12373
 
12204
12374
  Ember.assert("You tried to load a belongsTo relationship but you have no adapter (for " + owner.type + ")", adapter);
12205
- Ember.assert("You tried to load a belongsTo relationship from a specified `link` in the original payload but your adapter does not implement `findBelongsTo`", typeof adapter.findBelongsTo === 'function');
12375
+ Ember.assert("You tried to load a belongsTo relationship from a specified `link` in the original payload but your adapter does not implement `findBelongsTo`", typeof adapter.findBelongsTo === "function");
12206
12376
 
12207
12377
  return ember$data$lib$system$store$finders$$_findBelongsTo(adapter, this, owner, link, relationship);
12208
12378
  },
@@ -12243,14 +12413,14 @@
12243
12413
  @return {Promise} promise
12244
12414
  */
12245
12415
  query: function (modelName, query) {
12246
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12416
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12247
12417
  var typeClass = this.modelFor(modelName);
12248
12418
  var array = this.recordArrayManager.createAdapterPopulatedRecordArray(typeClass, query);
12249
12419
 
12250
12420
  var adapter = this.adapterFor(modelName);
12251
12421
 
12252
12422
  Ember.assert("You tried to load a query but you have no adapter (for " + typeClass + ")", adapter);
12253
- Ember.assert("You tried to load a query but your adapter does not implement `query`", typeof adapter.query === 'function' || typeof adapter.findQuery === 'function');
12423
+ Ember.assert("You tried to load a query but your adapter does not implement `query`", typeof adapter.query === "function" || typeof adapter.findQuery === "function");
12254
12424
 
12255
12425
  return ember$data$lib$system$promise$proxies$$promiseArray(ember$data$lib$system$store$finders$$_query(adapter, this, typeClass, query, array));
12256
12426
  },
@@ -12271,13 +12441,13 @@
12271
12441
  queryRecord: function (modelName, query) {
12272
12442
  Ember.assert("You need to pass a type to the store's queryRecord method", modelName);
12273
12443
  Ember.assert("You need to pass a query hash to the store's queryRecord method", query);
12274
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12444
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12275
12445
 
12276
12446
  var typeClass = this.modelFor(modelName);
12277
12447
  var adapter = this.adapterFor(modelName);
12278
12448
 
12279
12449
  Ember.assert("You tried to make a query but you have no adapter (for " + typeClass + ")", adapter);
12280
- Ember.assert("You tried to make a query but your adapter does not implement `queryRecord`", typeof adapter.queryRecord === 'function');
12450
+ Ember.assert("You tried to make a query but your adapter does not implement `queryRecord`", typeof adapter.queryRecord === "function");
12281
12451
 
12282
12452
  return ember$data$lib$system$promise$proxies$$promiseObject(ember$data$lib$system$store$finders$$_queryRecord(adapter, this, typeClass, query));
12283
12453
  },
@@ -12297,7 +12467,10 @@
12297
12467
  @deprecated Use `store.query instead`
12298
12468
  */
12299
12469
  findQuery: function (modelName, query) {
12300
- Ember.deprecate('store#findQuery is deprecated. You should use store#query instead.');
12470
+ Ember.deprecate("store#findQuery is deprecated. You should use store#query instead.", false, {
12471
+ id: "ds.store.find-query-deprecated",
12472
+ until: "2.0.0"
12473
+ });
12301
12474
  return this.query(modelName, query);
12302
12475
  },
12303
12476
 
@@ -12321,7 +12494,7 @@
12321
12494
  @return {DS.AdapterPopulatedRecordArray}
12322
12495
  */
12323
12496
  findAll: function (modelName, options) {
12324
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12497
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12325
12498
  var typeClass = this.modelFor(modelName);
12326
12499
 
12327
12500
  return this._fetchAll(typeClass, this.peekAll(modelName), options);
@@ -12339,10 +12512,10 @@
12339
12512
  var adapter = this.adapterFor(typeClass.modelName);
12340
12513
  var sinceToken = this.typeMapFor(typeClass).metadata.since;
12341
12514
 
12342
- ember$data$lib$system$store$$set(array, 'isUpdating', true);
12515
+ ember$data$lib$system$store$$set(array, "isUpdating", true);
12343
12516
 
12344
12517
  Ember.assert("You tried to load all records but you have no adapter (for " + typeClass + ")", adapter);
12345
- Ember.assert("You tried to load all records but your adapter does not implement `findAll`", typeof adapter.findAll === 'function');
12518
+ Ember.assert("You tried to load all records but your adapter does not implement `findAll`", typeof adapter.findAll === "function");
12346
12519
  if (options.reload) {
12347
12520
  return ember$data$lib$system$promise$proxies$$promiseArray(ember$data$lib$system$store$finders$$_findAll(adapter, this, typeClass, sinceToken, options));
12348
12521
  }
@@ -12363,7 +12536,7 @@
12363
12536
  */
12364
12537
  didUpdateAll: function (typeClass) {
12365
12538
  var liveRecordArray = this.recordArrayManager.liveRecordArrayFor(typeClass);
12366
- ember$data$lib$system$store$$set(liveRecordArray, 'isUpdating', false);
12539
+ ember$data$lib$system$store$$set(liveRecordArray, "isUpdating", false);
12367
12540
  },
12368
12541
 
12369
12542
  /**
@@ -12385,7 +12558,10 @@
12385
12558
  @return {DS.RecordArray}
12386
12559
  */
12387
12560
  all: function (modelName) {
12388
- Ember.deprecate('Using store.all() has been deprecated. Use store.peekAll() to get all records by a given type without triggering a fetch.');
12561
+ Ember.deprecate("Using store.all() has been deprecated. Use store.peekAll() to get all records by a given type without triggering a fetch.", false, {
12562
+ id: "ds.store.all-renamed-deprecated",
12563
+ until: "2.0.0"
12564
+ });
12389
12565
  return this.peekAll(modelName);
12390
12566
  },
12391
12567
 
@@ -12408,7 +12584,7 @@
12408
12584
  @return {DS.RecordArray}
12409
12585
  */
12410
12586
  peekAll: function (modelName) {
12411
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12587
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12412
12588
  var typeClass = this.modelFor(modelName);
12413
12589
 
12414
12590
  var liveRecordArray = this.recordArrayManager.liveRecordArrayFor(typeClass);
@@ -12428,7 +12604,7 @@
12428
12604
  @param {String=} modelName
12429
12605
  */
12430
12606
  unloadAll: function (modelName) {
12431
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), !modelName || typeof modelName === 'string');
12607
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), !modelName || typeof modelName === "string");
12432
12608
  if (arguments.length === 0) {
12433
12609
  var typeMaps = this.typeMaps;
12434
12610
  var keys = ember$data$lib$system$object$polyfills$$keysFunc(typeMaps);
@@ -12452,7 +12628,7 @@
12452
12628
  }
12453
12629
 
12454
12630
  function byType(entry) {
12455
- return typeMaps[entry]['type'].modelName;
12631
+ return typeMaps[entry]["type"].modelName;
12456
12632
  }
12457
12633
  },
12458
12634
 
@@ -12499,11 +12675,13 @@
12499
12675
  @return {DS.PromiseArray}
12500
12676
  */
12501
12677
  filter: function (modelName, query, filter) {
12502
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12678
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12503
12679
 
12504
12680
  if (!Ember.ENV.ENABLE_DS_FILTER) {
12505
- Ember.deprecate('The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page', false, {
12506
- url: 'https://github.com/ember-data/ember-data-filter'
12681
+ Ember.deprecate("The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page", false, {
12682
+ url: "https://github.com/ember-data/ember-data-filter",
12683
+ id: "ds.store.filter-deprecated",
12684
+ until: "2.0.0"
12507
12685
  });
12508
12686
  }
12509
12687
 
@@ -12551,7 +12729,7 @@
12551
12729
  @return {boolean}
12552
12730
  */
12553
12731
  recordIsLoaded: function (modelName, id) {
12554
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12732
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12555
12733
  return this.hasRecordForId(modelName, id);
12556
12734
  },
12557
12735
 
@@ -12563,7 +12741,10 @@
12563
12741
  @deprecated
12564
12742
  */
12565
12743
  metadataFor: function (modelName) {
12566
- Ember.deprecate("`store.metadataFor()` has been deprecated. You can use `.get('meta')` on relationships and arrays returned from `store.query()`.");
12744
+ Ember.deprecate("`store.metadataFor()` has been deprecated. You can use `.get('meta')` on relationships and arrays returned from `store.query()`.", false, {
12745
+ id: "ds.store.metadata-for-deprecated",
12746
+ until: "2.0.0"
12747
+ });
12567
12748
  return this._metadataFor(modelName);
12568
12749
  },
12569
12750
 
@@ -12574,7 +12755,7 @@
12574
12755
  @private
12575
12756
  */
12576
12757
  _metadataFor: function (modelName) {
12577
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12758
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12578
12759
  var typeClass = this.modelFor(modelName);
12579
12760
  return this.typeMapFor(typeClass).metadata;
12580
12761
  },
@@ -12588,7 +12769,10 @@
12588
12769
  @deprecated
12589
12770
  */
12590
12771
  setMetadataFor: function (modelName, metadata) {
12591
- Ember.deprecate("`store.setMetadataFor()` has been deprecated. Please return meta from your serializer's `extractMeta` hook.");
12772
+ Ember.deprecate("`store.setMetadataFor()` has been deprecated. Please return meta from your serializer's `extractMeta` hook.", false, {
12773
+ id: "ds.store.set-metadata-for-deprecated",
12774
+ until: "2.0.0"
12775
+ });
12592
12776
  this._setMetadataFor(modelName, metadata);
12593
12777
  },
12594
12778
 
@@ -12599,7 +12783,7 @@
12599
12783
  @private
12600
12784
  */
12601
12785
  _setMetadataFor: function (modelName, metadata) {
12602
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
12786
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12603
12787
  var typeClass = this.modelFor(modelName);
12604
12788
  Ember.merge(this.typeMapFor(typeClass).metadata, metadata);
12605
12789
  },
@@ -12644,7 +12828,7 @@
12644
12828
  snapshot: snapshot,
12645
12829
  resolver: resolver
12646
12830
  });
12647
- ember$data$lib$system$store$$once(this, 'flushPendingSave');
12831
+ ember$data$lib$system$store$$once(this, "flushPendingSave");
12648
12832
  },
12649
12833
 
12650
12834
  /**
@@ -12664,14 +12848,14 @@
12664
12848
  var adapter = this.adapterFor(record.type.modelName);
12665
12849
  var operation;
12666
12850
 
12667
- if (ember$data$lib$system$store$$get(record, 'currentState.stateName') === 'root.deleted.saved') {
12851
+ if (ember$data$lib$system$store$$get(record, "currentState.stateName") === "root.deleted.saved") {
12668
12852
  return resolver.resolve();
12669
12853
  } else if (record.isNew()) {
12670
- operation = 'createRecord';
12854
+ operation = "createRecord";
12671
12855
  } else if (record.isDeleted()) {
12672
- operation = 'deleteRecord';
12856
+ operation = "deleteRecord";
12673
12857
  } else {
12674
- operation = 'updateRecord';
12858
+ operation = "updateRecord";
12675
12859
  }
12676
12860
 
12677
12861
  resolver.resolve(ember$data$lib$system$store$$_commit(adapter, this, operation, snapshot));
@@ -12696,7 +12880,7 @@
12696
12880
  }
12697
12881
  if (data) {
12698
12882
  // normalize relationship IDs into records
12699
- this._backburner.schedule('normalizeRelationships', this, '_setupRelationships', internalModel, internalModel.type, data);
12883
+ this._backburner.schedule("normalizeRelationships", this, "_setupRelationships", internalModel, internalModel.type, data);
12700
12884
  this.updateId(internalModel, data);
12701
12885
  }
12702
12886
 
@@ -12759,7 +12943,7 @@
12759
12943
  @return {Object} typeMap
12760
12944
  */
12761
12945
  typeMapFor: function (typeClass) {
12762
- var typeMaps = ember$data$lib$system$store$$get(this, 'typeMaps');
12946
+ var typeMaps = ember$data$lib$system$store$$get(this, "typeMaps");
12763
12947
  var guid = Ember.guidFor(typeClass);
12764
12948
  var typeMap = typeMaps[guid];
12765
12949
 
@@ -12820,10 +13004,10 @@
12820
13004
  _modelForMixin: function (modelName) {
12821
13005
  var normalizedModelName = ember$data$lib$system$normalize$model$name$$default(modelName);
12822
13006
  var registry = this.container._registry ? this.container._registry : this.container;
12823
- var mixin = registry.resolve('mixin:' + normalizedModelName);
13007
+ var mixin = registry.resolve("mixin:" + normalizedModelName);
12824
13008
  if (mixin) {
12825
13009
  //Cache the class as a model
12826
- registry.register('model:' + normalizedModelName, DS.Model.extend(mixin));
13010
+ registry.register("model:" + normalizedModelName, DS.Model.extend(mixin));
12827
13011
  }
12828
13012
  var factory = this.modelFactoryFor(normalizedModelName);
12829
13013
  if (factory) {
@@ -12843,7 +13027,7 @@
12843
13027
  @return {DS.Model}
12844
13028
  */
12845
13029
  modelFor: function (modelName) {
12846
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
13030
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12847
13031
 
12848
13032
  var factory = this.modelFactoryFor(modelName);
12849
13033
  if (!factory) {
@@ -12856,12 +13040,15 @@
12856
13040
  factory.modelName = factory.modelName || ember$data$lib$system$normalize$model$name$$default(modelName);
12857
13041
 
12858
13042
  // deprecate typeKey
12859
- if (!('typeKey' in factory)) {
12860
- Ember.defineProperty(factory, 'typeKey', {
13043
+ if (!("typeKey" in factory)) {
13044
+ Ember.defineProperty(factory, "typeKey", {
12861
13045
  enumerable: true,
12862
13046
  configurable: false,
12863
13047
  get: function () {
12864
- Ember.deprecate('Usage of `typeKey` has been deprecated and will be removed in Ember Data 1.0. It has been replaced by `modelName` on the model class.');
13048
+ Ember.deprecate("Usage of `typeKey` has been deprecated and will be removed in Ember Data 2.0. It has been replaced by `modelName` on the model class.", false, {
13049
+ id: "ds.model.type-key-replace-by-model-name",
13050
+ until: "2.0.0"
13051
+ });
12865
13052
  var typeKey = this.modelName;
12866
13053
  if (typeKey) {
12867
13054
  typeKey = Ember.String.camelize(this.modelName);
@@ -12869,7 +13056,7 @@
12869
13056
  return typeKey;
12870
13057
  },
12871
13058
  set: function () {
12872
- Ember.assert('Setting typeKey is not supported. In addition, typeKey has also been deprecated in favor of modelName. Setting modelName is also not supported.');
13059
+ Ember.assert("Setting typeKey is not supported. In addition, typeKey has also been deprecated in favor of modelName. Setting modelName is also not supported.");
12873
13060
  }
12874
13061
  });
12875
13062
  }
@@ -12878,9 +13065,9 @@
12878
13065
  },
12879
13066
 
12880
13067
  modelFactoryFor: function (modelName) {
12881
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
13068
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
12882
13069
  var normalizedKey = ember$data$lib$system$normalize$model$name$$default(modelName);
12883
- return this.container.lookupFactory('model:' + normalizedKey);
13070
+ return this.container.lookupFactory("model:" + normalizedKey);
12884
13071
  },
12885
13072
 
12886
13073
  /**
@@ -12943,15 +13130,18 @@
12943
13130
 
12944
13131
  var data, modelName;
12945
13132
 
12946
- if (Ember.typeOf(modelNameArg) === 'object' && Ember.typeOf(dataArg) === 'undefined') {
13133
+ if (Ember.typeOf(modelNameArg) === "object" && Ember.typeOf(dataArg) === "undefined") {
12947
13134
  data = modelNameArg;
12948
13135
  } else {
12949
- Ember.deprecate('store.push(type, data) has been deprecated. Please provide a JSON-API document object as the first and only argument to store.push.');
12950
- Ember.assert("Expected an object as `data` in a call to `push` for " + modelNameArg + " , but was " + Ember.typeOf(dataArg), Ember.typeOf(dataArg) === 'object');
12951
- Ember.assert("You must include an `id` for " + modelNameArg + " in an object passed to `push`", dataArg.id != null && dataArg.id !== '');
13136
+ Ember.deprecate("store.push(type, data) has been deprecated. Please provide a JSON-API document object as the first and only argument to store.push.", false, {
13137
+ id: "ds.store.push-with-type-and-data-deprecated",
13138
+ until: "2.0.0"
13139
+ });
13140
+ Ember.assert("Expected an object as `data` in a call to `push` for " + modelNameArg + " , but was " + Ember.typeOf(dataArg), Ember.typeOf(dataArg) === "object");
13141
+ Ember.assert("You must include an `id` for " + modelNameArg + " in an object passed to `push`", dataArg.id != null && dataArg.id !== "");
12952
13142
  data = ember$data$lib$system$store$serializer$response$$_normalizeSerializerPayload(this.modelFor(modelNameArg), dataArg);
12953
13143
  modelName = modelNameArg;
12954
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string' || typeof data === 'undefined');
13144
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string" || typeof data === "undefined");
12955
13145
  }
12956
13146
 
12957
13147
  if (data.included) {
@@ -12960,7 +13150,7 @@
12960
13150
  });
12961
13151
  }
12962
13152
 
12963
- if (Ember.typeOf(data.data) === 'array') {
13153
+ if (Ember.typeOf(data.data) === "array") {
12964
13154
  var internalModels = ember$data$lib$system$store$$map.call(data.data, function (recordData) {
12965
13155
  return _this._pushInternalModel(recordData);
12966
13156
  });
@@ -12980,8 +13170,8 @@
12980
13170
 
12981
13171
  _pushInternalModel: function (data) {
12982
13172
  var modelName = data.type;
12983
- Ember.assert("Expected an object as 'data' in a call to 'push' for " + modelName + ", but was " + Ember.typeOf(data), Ember.typeOf(data) === 'object');
12984
- Ember.assert("You must include an 'id' for " + modelName + " in an object passed to 'push'", data.id != null && data.id !== '');
13173
+ Ember.assert("Expected an object as 'data' in a call to 'push' for " + modelName + ", but was " + Ember.typeOf(data), Ember.typeOf(data) === "object");
13174
+ Ember.assert("You must include an 'id' for " + modelName + " in an object passed to 'push'", data.id != null && data.id !== "");
12985
13175
  Ember.assert("You tried to push data with a type '" + modelName + "' but no model could be found with that name.", this._hasModelFor(modelName));
12986
13176
 
12987
13177
  var type = this.modelFor(modelName);
@@ -12992,10 +13182,10 @@
12992
13182
 
12993
13183
  if (Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS) {
12994
13184
  Ember.warn("The payload for '" + type.modelName + "' contains these unknown keys: " + Ember.inspect(filter.call(ember$data$lib$system$object$polyfills$$keysFunc(data), function (key) {
12995
- return !(key === 'id' || key === 'links' || ember$data$lib$system$store$$get(type, 'fields').has(key) || key.match(/Type$/));
13185
+ return !(key === "id" || key === "links" || ember$data$lib$system$store$$get(type, "fields").has(key) || key.match(/Type$/));
12996
13186
  })) + ". Make sure they've been defined in your model.", filter.call(ember$data$lib$system$object$polyfills$$keysFunc(data), function (key) {
12997
- return !(key === 'id' || key === 'links' || ember$data$lib$system$store$$get(type, 'fields').has(key) || key.match(/Type$/));
12998
- }).length === 0);
13187
+ return !(key === "id" || key === "links" || ember$data$lib$system$store$$get(type, "fields").has(key) || key.match(/Type$/));
13188
+ }).length === 0, { id: "ds.store.unknown-keys-in-payload" });
12999
13189
  }
13000
13190
 
13001
13191
  // Actually load the record into the store.
@@ -13004,7 +13194,7 @@
13004
13194
  var store = this;
13005
13195
 
13006
13196
  this._backburner.join(function () {
13007
- store._backburner.schedule('normalizeRelationships', store, '_setupRelationships', internalModel, type, data);
13197
+ store._backburner.schedule("normalizeRelationships", store, "_setupRelationships", internalModel, type, data);
13008
13198
  });
13009
13199
 
13010
13200
  return internalModel;
@@ -13075,10 +13265,10 @@
13075
13265
  if (!inputPayload) {
13076
13266
  payload = modelName;
13077
13267
  serializer = ember$data$lib$system$store$$defaultSerializer(this);
13078
- Ember.assert("You cannot use `store#pushPayload` without a modelName unless your default serializer defines `pushPayload`", typeof serializer.pushPayload === 'function');
13268
+ Ember.assert("You cannot use `store#pushPayload` without a modelName unless your default serializer defines `pushPayload`", typeof serializer.pushPayload === "function");
13079
13269
  } else {
13080
13270
  payload = inputPayload;
13081
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
13271
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
13082
13272
  serializer = this.serializerFor(modelName);
13083
13273
  }
13084
13274
  var store = this;
@@ -13104,7 +13294,7 @@
13104
13294
  @return {Object} The normalized payload
13105
13295
  */
13106
13296
  normalize: function (modelName, payload) {
13107
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
13297
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
13108
13298
  var serializer = this.serializerFor(modelName);
13109
13299
  var model = this.modelFor(modelName);
13110
13300
  return serializer.normalize(model, payload);
@@ -13118,8 +13308,11 @@
13118
13308
  @deprecated Use [push](#method_push) instead
13119
13309
  */
13120
13310
  update: function (modelName, data) {
13121
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
13122
- Ember.deprecate('Using store.update() has been deprecated since store.push() now handles partial updates. You should use store.push() instead.');
13311
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
13312
+ Ember.deprecate("Using store.update() has been deprecated since store.push() now handles partial updates. You should use store.push() instead.", false, {
13313
+ id: "ds.store.update-deprecated",
13314
+ until: "2.0.0"
13315
+ });
13123
13316
  return this.push(modelName, data);
13124
13317
  },
13125
13318
 
@@ -13133,8 +13326,11 @@
13133
13326
  @return {Array}
13134
13327
  */
13135
13328
  pushMany: function (modelName, datas) {
13136
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
13137
- Ember.deprecate('Using store.pushMany() has been deprecated since store.push() now handles multiple items. You should use store.push() instead.');
13329
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
13330
+ Ember.deprecate("Using store.pushMany() has been deprecated since store.push() now handles multiple items. You should use store.push() instead.", false, {
13331
+ id: "ds.store.push-many-deprecated",
13332
+ until: "2.0.0"
13333
+ });
13138
13334
  var length = datas.length;
13139
13335
  var result = new Array(length);
13140
13336
 
@@ -13152,8 +13348,11 @@
13152
13348
  @deprecated Use [setMetadataFor](#method_setMetadataFor) instead
13153
13349
  */
13154
13350
  metaForType: function (modelName, metadata) {
13155
- Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
13156
- Ember.deprecate('Using store.metaForType() has been deprecated. Use store.setMetadataFor() to set metadata for a specific type.');
13351
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
13352
+ Ember.deprecate("Using store.metaForType() has been deprecated. Use store.setMetadataFor() to set metadata for a specific type.", false, {
13353
+ id: "ds.store.meta-for-type-deprecated",
13354
+ until: "2.0.0"
13355
+ });
13157
13356
  this.setMetadataFor(modelName, metadata);
13158
13357
  },
13159
13358
 
@@ -13171,8 +13370,8 @@
13171
13370
  var typeMap = this.typeMapFor(type);
13172
13371
  var idToRecord = typeMap.idToRecord;
13173
13372
 
13174
- Ember.assert('The id ' + id + ' has already been used with another record of type ' + type.toString() + '.', !id || !idToRecord[id]);
13175
- Ember.assert("`" + Ember.inspect(type) + "` does not appear to be an ember-data model", typeof type._create === 'function');
13373
+ Ember.assert("The id " + id + " has already been used with another record of type " + type.toString() + ".", !id || !idToRecord[id]);
13374
+ Ember.assert("`" + Ember.inspect(type) + "` does not appear to be an ember-data model", typeof type._create === "function");
13176
13375
 
13177
13376
  // lookupFactory should really return an object that creates
13178
13377
  // instances with the injections applied
@@ -13205,7 +13404,10 @@
13205
13404
  @deprecated Use [unloadRecord](#method_unloadRecord) instead
13206
13405
  */
13207
13406
  dematerializeRecord: function (record) {
13208
- Ember.deprecate('Using store.dematerializeRecord() has been deprecated since it was intended for private use only. You should use store.unloadRecord() instead.');
13407
+ Ember.deprecate("Using store.dematerializeRecord() has been deprecated since it was intended for private use only. You should use store.unloadRecord() instead.", false, {
13408
+ id: "ds.store.dematerialize-record-deprecated",
13409
+ until: "2.0.0"
13410
+ });
13209
13411
  this._dematerializeRecord(record);
13210
13412
  },
13211
13413
 
@@ -13252,12 +13454,11 @@
13252
13454
  adapterFor: function (modelOrClass) {
13253
13455
  var modelName;
13254
13456
 
13255
- Ember.deprecate('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelOrClass === 'string');
13256
-
13257
- if (typeof modelOrClass !== 'string') {
13258
- modelName = modelOrClass.modelName;
13259
- } else {
13457
+ if (typeof modelOrClass === "string") {
13260
13458
  modelName = modelOrClass;
13459
+ } else {
13460
+ Ember.deprecate("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), false, { id: "ds.store.passing-classes-deprecated", until: "2.0.0" });
13461
+ modelName = modelOrClass.modelName;
13261
13462
  }
13262
13463
 
13263
13464
  return this.lookupAdapter(modelName);
@@ -13291,14 +13492,14 @@
13291
13492
  serializerFor: function (modelOrClass) {
13292
13493
  var modelName;
13293
13494
 
13294
- Ember.deprecate('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelOrClass), typeof modelOrClass === 'string');
13295
- if (typeof modelOrClass !== 'string') {
13296
- modelName = modelOrClass.modelName;
13297
- } else {
13495
+ if (typeof modelOrClass === "string") {
13298
13496
  modelName = modelOrClass;
13497
+ } else {
13498
+ Ember.deprecate("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), false, { id: "ds.store.passing-classes-deprecated", until: "2.0.0" });
13499
+ modelName = modelOrClass.modelName;
13299
13500
  }
13300
13501
 
13301
- var fallbacks = ['application', this.adapterFor(modelName).get('defaultSerializer'), '-default'];
13502
+ var fallbacks = ["application", this.adapterFor(modelName).get("defaultSerializer"), "-default"];
13302
13503
 
13303
13504
  var serializer = this.lookupSerializer(modelName, fallbacks);
13304
13505
  return serializer;
@@ -13321,21 +13522,21 @@
13321
13522
  var normalizedModelName = ember$data$lib$system$normalize$model$name$$default(modelName);
13322
13523
 
13323
13524
  var instance = this._instanceCache.get(type, normalizedModelName, fallbacks);
13324
- ember$data$lib$system$store$$set(instance, 'store', this);
13525
+ ember$data$lib$system$store$$set(instance, "store", this);
13325
13526
  return instance;
13326
13527
  },
13327
13528
 
13328
13529
  lookupAdapter: function (name) {
13329
- return this.retrieveManagedInstance('adapter', name, this.get('_adapterFallbacks'));
13530
+ return this.retrieveManagedInstance("adapter", name, this.get("_adapterFallbacks"));
13330
13531
  },
13331
13532
 
13332
- _adapterFallbacks: Ember.computed('adapter', function () {
13333
- var adapter = this.get('adapter');
13334
- return ['application', adapter, '-rest'];
13533
+ _adapterFallbacks: Ember.computed("adapter", function () {
13534
+ var adapter = this.get("adapter");
13535
+ return ["application", adapter, "-rest"];
13335
13536
  }),
13336
13537
 
13337
13538
  lookupSerializer: function (name, fallbacks) {
13338
- return this.retrieveManagedInstance('serializer', name, fallbacks);
13539
+ return this.retrieveManagedInstance("serializer", name, fallbacks);
13339
13540
  },
13340
13541
 
13341
13542
  willDestroy: function () {
@@ -13360,9 +13561,9 @@
13360
13561
  var value;
13361
13562
  if (data.relationships[key] && data.relationships[key].data) {
13362
13563
  value = data.relationships[key].data;
13363
- if (kind === 'belongsTo') {
13564
+ if (kind === "belongsTo") {
13364
13565
  data.relationships[key].data = ember$data$lib$system$store$$deserializeRecordId(store, key, relationship, value);
13365
- } else if (kind === 'hasMany') {
13566
+ } else if (kind === "hasMany") {
13366
13567
  data.relationships[key].data = ember$data$lib$system$store$$deserializeRecordIds(store, key, relationship, value);
13367
13568
  }
13368
13569
  }
@@ -13396,7 +13597,7 @@
13396
13597
  // Delegation to the adapter and promise management
13397
13598
 
13398
13599
  function ember$data$lib$system$store$$defaultSerializer(store) {
13399
- return store.serializerFor('application');
13600
+ return store.serializerFor("application");
13400
13601
  }
13401
13602
 
13402
13603
  function ember$data$lib$system$store$$_commit(adapter, store, operation, snapshot) {
@@ -13465,10 +13666,10 @@
13465
13666
  var value = data.relationships[key].data;
13466
13667
 
13467
13668
  if (value !== undefined) {
13468
- if (kind === 'belongsTo') {
13669
+ if (kind === "belongsTo") {
13469
13670
  relationship = record._relationships.get(key);
13470
13671
  relationship.setCanonicalRecord(value);
13471
- } else if (kind === 'hasMany') {
13672
+ } else if (kind === "hasMany") {
13472
13673
  relationship = record._relationships.get(key);
13473
13674
  relationship.updateRecordsFromAdapter(value);
13474
13675
  }
@@ -13479,7 +13680,7 @@
13479
13680
  function ember$data$lib$system$store$$deprecatePreload(preloadOrOptions, type, methodName) {
13480
13681
  if (preloadOrOptions) {
13481
13682
  var modelProperties = [];
13482
- var fields = Ember.get(type, 'fields');
13683
+ var fields = Ember.get(type, "fields");
13483
13684
  fields.forEach(function (fieldType, key) {
13484
13685
  modelProperties.push(key);
13485
13686
  });
@@ -13487,14 +13688,17 @@
13487
13688
  var preloadDetected = false;
13488
13689
  for (var i = 0, _length = modelProperties.length; i < _length; i++) {
13489
13690
  var key = modelProperties[i];
13490
- if (typeof preloadOrOptions[key] !== 'undefined') {
13691
+ if (typeof preloadOrOptions[key] !== "undefined") {
13491
13692
  preloadDetected = true;
13492
13693
  break;
13493
13694
  }
13494
13695
  }
13495
13696
 
13496
13697
  if (preloadDetected) {
13497
- Ember.deprecate("Passing a preload argument to `store." + methodName + "` is deprecated. Please move it to the preload key on the " + methodName + " `options` argument.");
13698
+ Ember.deprecate("Passing a preload argument to `store." + methodName + "` is deprecated. Please move it to the preload key on the " + methodName + " `options` argument.", false, {
13699
+ id: "ds.store.preload-outside-options",
13700
+ until: "2.0.0"
13701
+ });
13498
13702
  var preload = preloadOrOptions;
13499
13703
  return {
13500
13704
  preload: preload
@@ -13717,7 +13921,22 @@
13717
13921
  },
13718
13922
 
13719
13923
  /**
13720
- @method keyForAttribute
13924
+ `keyForAttribute` can be used to define rules for how to convert an
13925
+ attribute name in your model to a key in your JSON.
13926
+ By default `JSONAPISerializer` follows the format used on the examples of
13927
+ http://jsonapi.org/format and uses dashes as the word separator in the JSON
13928
+ attribute keys.
13929
+ This behaviour can be easily customized by extending this method.
13930
+ Example
13931
+ ```app/serializers/application.js
13932
+ import DS from 'ember-data';
13933
+ export default DS.JSONAPISerializer.extend({
13934
+ keyForAttribute: function(attr, method) {
13935
+ return Ember.String.dasherize(attr).toUpperCase();
13936
+ }
13937
+ });
13938
+ ```
13939
+ @method keyForAttribute
13721
13940
  @param {String} key
13722
13941
  @param {String} method
13723
13942
  @return {String} normalized key
@@ -13727,6 +13946,21 @@
13727
13946
  },
13728
13947
 
13729
13948
  /**
13949
+ `keyForRelationship` can be used to define a custom key when
13950
+ serializing and deserializing relationship properties.
13951
+ By default `JSONAPISerializer` follows the format used on the examples of
13952
+ http://jsonapi.org/format and uses dashes as word separators in
13953
+ relationship properties.
13954
+ This behaviour can be easily customized by extending this method.
13955
+ Example
13956
+ ```app/serializers/post.js
13957
+ import DS from 'ember-data';
13958
+ export default DS.JSONAPISerializer.extend({
13959
+ keyForRelationship: function(key, relationship, method) {
13960
+ return Ember.String.underscore(key);
13961
+ }
13962
+ });
13963
+ ```
13730
13964
  @method keyForRelationship
13731
13965
  @param {String} key
13732
13966
  @param {String} typeClass
@@ -13856,44 +14090,50 @@
13856
14090
  @param {Object} [application] an application namespace
13857
14091
  */
13858
14092
  function ember$data$lib$initializers$store$$initializeStore(registry, application) {
13859
- Ember.deprecate('Specifying a custom Store for Ember Data on your global namespace as `App.Store` ' + 'has been deprecated. Please use `App.ApplicationStore` instead.', !(application && application.Store));
14093
+ Ember.deprecate("Specifying a custom Store for Ember Data on your global namespace as `App.Store` " + "has been deprecated. Please use `App.ApplicationStore` instead.", !(application && application.Store), { id: "ds.initializer.specifying-custom-store-on-global-namespace-deprecated", until: "2.0.0" });
13860
14094
 
13861
- registry.optionsForType('serializer', { singleton: false });
13862
- registry.optionsForType('adapter', { singleton: false });
14095
+ registry.optionsForType("serializer", { singleton: false });
14096
+ registry.optionsForType("adapter", { singleton: false });
13863
14097
 
13864
14098
  // allow older names to be looked up
13865
14099
  var proxy = new ember$data$lib$system$container$proxy$$default(registry);
13866
- proxy.registerDeprecations([{ deprecated: 'serializer:_default', valid: 'serializer:-default' }, { deprecated: 'serializer:_rest', valid: 'serializer:-rest' }, { deprecated: 'adapter:_rest', valid: 'adapter:-rest' }]);
14100
+ proxy.registerDeprecations([{ deprecated: "serializer:_default", valid: "serializer:-default" }, { deprecated: "serializer:_rest", valid: "serializer:-rest" }, { deprecated: "adapter:_rest", valid: "adapter:-rest" }]);
13867
14101
 
13868
14102
  // new go forward paths
13869
- registry.register('serializer:-default', ember$data$lib$serializers$json$serializer$$default.extend({ isNewSerializerAPI: true }));
13870
- registry.register('serializer:-rest', ember$data$lib$serializers$rest$serializer$$default.extend({ isNewSerializerAPI: true }));
13871
- registry.register('adapter:-rest', ember$data$lib$adapters$rest$adapter$$default);
14103
+ registry.register("serializer:-default", ember$data$lib$serializers$json$serializer$$default.extend({ isNewSerializerAPI: true }));
14104
+ registry.register("serializer:-rest", ember$data$lib$serializers$rest$serializer$$default.extend({ isNewSerializerAPI: true }));
14105
+ registry.register("adapter:-rest", ember$data$lib$adapters$rest$adapter$$default);
13872
14106
 
13873
- registry.register('adapter:-json-api', ember$data$lib$adapters$json$api$adapter$$default);
13874
- registry.register('serializer:-json-api', ember$data$lib$serializers$json$api$serializer$$default);
14107
+ registry.register("adapter:-json-api", ember$data$lib$adapters$json$api$adapter$$default);
14108
+ registry.register("serializer:-json-api", ember$data$lib$serializers$json$api$serializer$$default);
13875
14109
 
13876
14110
  var store;
13877
- if (registry.has('store:main')) {
13878
- Ember.deprecate('Registering a custom store as `store:main` or defining a store in app/store.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`');
13879
- store = registry.lookup('store:main');
14111
+ if (registry.has("store:main")) {
14112
+ Ember.deprecate("Registering a custom store as `store:main` or defining a store in app/store.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`", false, {
14113
+ id: "ds.initializer.custom-store-as-store-main-deprecated",
14114
+ until: "2.0.0"
14115
+ });
14116
+ store = registry.lookup("store:main");
13880
14117
  } else {
13881
14118
  var storeMainProxy = new ember$data$lib$system$container$proxy$$default(registry);
13882
- storeMainProxy.registerDeprecations([{ deprecated: 'store:main', valid: 'service:store' }]);
14119
+ storeMainProxy.registerDeprecations([{ deprecated: "store:main", valid: "service:store" }]);
13883
14120
  }
13884
14121
 
13885
- if (registry.has('store:application')) {
13886
- Ember.deprecate('Registering a custom store as `store:application` or defining a store in app/stores/application.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`');
13887
- store = registry.lookup('store:application');
14122
+ if (registry.has("store:application")) {
14123
+ Ember.deprecate("Registering a custom store as `store:main` or defining a store in app/store.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`", false, {
14124
+ id: "ds.initializer.custom-store-as-store-main-deprecated",
14125
+ until: "2.0.0"
14126
+ });
14127
+ store = registry.lookup("store:application");
13888
14128
  } else {
13889
14129
  var storeApplicationProxy = new ember$data$lib$system$container$proxy$$default(registry);
13890
- storeApplicationProxy.registerDeprecations([{ deprecated: 'store:application', valid: 'service:store' }]);
14130
+ storeApplicationProxy.registerDeprecations([{ deprecated: "store:application", valid: "service:store" }]);
13891
14131
  }
13892
14132
 
13893
14133
  if (store) {
13894
- registry.register('service:store', store, { instantiate: false });
13895
- } else if (!registry.has('service:store')) {
13896
- registry.register('service:store', application && application.Store || ember$data$lib$system$store$$default);
14134
+ registry.register("service:store", store, { instantiate: false });
14135
+ } else if (!registry.has("service:store")) {
14136
+ registry.register("service:store", application && application.Store || ember$data$lib$system$store$$default);
13897
14137
  }
13898
14138
  }
13899
14139
 
@@ -13984,9 +14224,9 @@
13984
14224
  deserialize: function (serialized) {
13985
14225
  var type = typeof serialized;
13986
14226
 
13987
- if (type === "string") {
14227
+ if (type === 'string') {
13988
14228
  return new Date(Ember.Date.parse(serialized));
13989
- } else if (type === "number") {
14229
+ } else if (type === 'number') {
13990
14230
  return new Date(serialized);
13991
14231
  } else if (serialized === null || serialized === undefined) {
13992
14232
  // if the value is null return null
@@ -14065,61 +14305,6 @@
14065
14305
  registry.injection('route', 'store', 'service:store');
14066
14306
  registry.injection('data-adapter', 'store', 'service:store');
14067
14307
  }
14068
- var ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter;
14069
-
14070
- try {
14071
- ember$lib$main$$default.computed({
14072
- set: function () {},
14073
- get: function () {}
14074
- });
14075
- ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter = true;
14076
- } catch (e) {
14077
- ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter = false;
14078
- }
14079
-
14080
- var ember$new$computed$lib$utils$can$use$new$syntax$$default = ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter;
14081
- var ember$new$computed$lib$main$$default = ember$new$computed$lib$main$$newComputed;
14082
-
14083
- var ember$new$computed$lib$main$$computed = ember$lib$main$$default.computed;
14084
-
14085
- function ember$new$computed$lib$main$$newComputed() {
14086
- var polyfillArguments = [];
14087
- var config = arguments[arguments.length - 1];
14088
-
14089
- if (typeof config === 'function' || ember$new$computed$lib$utils$can$use$new$syntax$$default) {
14090
- return ember$new$computed$lib$main$$computed.apply(undefined, arguments);
14091
- }
14092
-
14093
- for (var i = 0, l = arguments.length - 1; i < l; i++) {
14094
- polyfillArguments.push(arguments[i]);
14095
- }
14096
-
14097
- var func;
14098
- if (config.set) {
14099
- func = function (key, value) {
14100
- if (arguments.length > 1) {
14101
- return config.set.call(this, key, value);
14102
- } else {
14103
- return config.get.call(this, key);
14104
- }
14105
- };
14106
- } else {
14107
- func = function (key) {
14108
- return config.get.call(this, key);
14109
- };
14110
- }
14111
-
14112
- polyfillArguments.push(func);
14113
-
14114
- return ember$new$computed$lib$main$$computed.apply(undefined, polyfillArguments);
14115
- }
14116
-
14117
- var ember$new$computed$lib$main$$getKeys = Object.keys || ember$lib$main$$default.keys;
14118
- var ember$new$computed$lib$main$$computedKeys = ember$new$computed$lib$main$$getKeys(ember$new$computed$lib$main$$computed);
14119
-
14120
- for (var ember$new$computed$lib$main$$i = 0, ember$new$computed$lib$main$$l = ember$new$computed$lib$main$$computedKeys.length; ember$new$computed$lib$main$$i < ember$new$computed$lib$main$$l; ember$new$computed$lib$main$$i++) {
14121
- ember$new$computed$lib$main$$newComputed[ember$new$computed$lib$main$$computedKeys[ember$new$computed$lib$main$$i]] = ember$new$computed$lib$main$$computed[ember$new$computed$lib$main$$computedKeys[ember$new$computed$lib$main$$i]];
14122
- }
14123
14308
  var ember$data$lib$system$model$attributes$$default = ember$data$lib$system$model$attributes$$attr;
14124
14309
 
14125
14310
  /**
@@ -14168,7 +14353,7 @@
14168
14353
 
14169
14354
  this.eachComputedProperty(function (name, meta) {
14170
14355
  if (meta.isAttribute) {
14171
- Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.toString(), name !== 'id');
14356
+ Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.toString(), name !== "id");
14172
14357
 
14173
14358
  meta.name = name;
14174
14359
  map.set(name, meta);
@@ -14254,7 +14439,7 @@
14254
14439
  @static
14255
14440
  */
14256
14441
  eachAttribute: function (callback, binding) {
14257
- ember$data$lib$system$model$attributes$$get(this, 'attributes').forEach(function (meta, name) {
14442
+ ember$data$lib$system$model$attributes$$get(this, "attributes").forEach(function (meta, name) {
14258
14443
  callback.call(binding, name, meta);
14259
14444
  }, binding);
14260
14445
  },
@@ -14294,7 +14479,7 @@
14294
14479
  @static
14295
14480
  */
14296
14481
  eachTransformedAttribute: function (callback, binding) {
14297
- ember$data$lib$system$model$attributes$$get(this, 'transformedAttributes').forEach(function (type, name) {
14482
+ ember$data$lib$system$model$attributes$$get(this, "transformedAttributes").forEach(function (type, name) {
14298
14483
  callback.call(binding, name, type);
14299
14484
  });
14300
14485
  }
@@ -14379,7 +14564,7 @@
14379
14564
  @return {Attribute}
14380
14565
  */
14381
14566
  function ember$data$lib$system$model$attributes$$attr(type, options) {
14382
- if (typeof type === 'object') {
14567
+ if (typeof type === "object") {
14383
14568
  options = type;
14384
14569
  type = undefined;
14385
14570
  } else {
@@ -14402,7 +14587,7 @@
14402
14587
  }
14403
14588
  },
14404
14589
  set: function (key, value) {
14405
- Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.constructor.toString(), key !== 'id');
14590
+ Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.constructor.toString(), key !== "id");
14406
14591
  var internalModel = this._internalModel;
14407
14592
  var oldValue = ember$data$lib$system$model$attributes$$getValue(internalModel, key);
14408
14593
 
@@ -14411,7 +14596,7 @@
14411
14596
  // the 'didSetProperty' handler if it is no different from the original value
14412
14597
  internalModel._attributes[key] = value;
14413
14598
 
14414
- this._internalModel.send('didSetProperty', {
14599
+ this._internalModel.send("didSetProperty", {
14415
14600
  name: key,
14416
14601
  oldValue: oldValue,
14417
14602
  originalValue: internalModel._data[key],
@@ -14428,15 +14613,6 @@
14428
14613
  var ember$data$lib$system$debug$debug$adapter$$capitalize = Ember.String.capitalize;
14429
14614
  var ember$data$lib$system$debug$debug$adapter$$underscore = Ember.String.underscore;
14430
14615
  var ember$data$lib$system$debug$debug$adapter$$_Ember = Ember;
14431
-
14432
- /**
14433
- Extend `Ember.DataAdapter` with ED specific code.
14434
-
14435
- @class DebugAdapter
14436
- @namespace DS
14437
- @extends Ember.DataAdapter
14438
- @private
14439
- */
14440
14616
  var ember$data$lib$system$debug$debug$adapter$$assert = ember$data$lib$system$debug$debug$adapter$$_Ember.assert;
14441
14617
 
14442
14618
  var ember$data$lib$system$debug$debug$adapter$$default = Ember.DataAdapter.extend({
@@ -14476,7 +14652,7 @@
14476
14652
  }
14477
14653
  }
14478
14654
  }
14479
- ember$data$lib$system$debug$debug$adapter$$assert("Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support", !!modelName);
14655
+ ember$data$lib$system$debug$debug$adapter$$assert('Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support', !!modelName);
14480
14656
  return this.get('store').peekAll(modelName);
14481
14657
  },
14482
14658
 
@@ -14565,7 +14741,7 @@
14565
14741
  @param {Ember.Registry} registry
14566
14742
  */
14567
14743
  function ember$data$lib$initializers$data$adapter$$initializeDebugAdapter(registry) {
14568
- registry.register('data-adapter:main', ember$data$lib$system$debug$debug$adapter$$default);
14744
+ registry.register("data-adapter:main", ember$data$lib$system$debug$debug$adapter$$default);
14569
14745
  }
14570
14746
  var ember$data$lib$instance$initializers$initialize$store$service$$default = ember$data$lib$instance$initializers$initialize$store$service$$initializeStoreService;
14571
14747
  /**
@@ -14659,51 +14835,51 @@
14659
14835
  Ember.onLoad('Ember.Application', function (Application) {
14660
14836
 
14661
14837
  Application.initializer({
14662
- name: "ember-data",
14838
+ name: 'ember-data',
14663
14839
  initialize: ember$data$lib$setup$container$$initializeInjects
14664
14840
  });
14665
14841
 
14666
14842
  if (Application.instanceInitializer) {
14667
14843
  Application.instanceInitializer({
14668
- name: "ember-data",
14844
+ name: 'ember-data',
14669
14845
  initialize: ember$data$lib$instance$initializers$initialize$store$service$$default
14670
14846
  });
14671
14847
  } else {
14672
14848
  Application.initializer({
14673
- name: "ember-data-store-service",
14674
- after: "ember-data",
14849
+ name: 'ember-data-store-service',
14850
+ after: 'ember-data',
14675
14851
  initialize: ember$data$lib$instance$initializers$initialize$store$service$$default
14676
14852
  });
14677
14853
  }
14678
14854
 
14679
14855
  // Deprecated initializers to satisfy old code that depended on them
14680
14856
  Application.initializer({
14681
- name: "store",
14682
- after: "ember-data",
14857
+ name: 'store',
14858
+ after: 'ember-data',
14683
14859
  initialize: ember$data$lib$ember$initializer$$K
14684
14860
  });
14685
14861
 
14686
14862
  Application.initializer({
14687
- name: "activeModelAdapter",
14688
- before: "store",
14863
+ name: 'activeModelAdapter',
14864
+ before: 'store',
14689
14865
  initialize: ember$data$lib$ember$initializer$$K
14690
14866
  });
14691
14867
 
14692
14868
  Application.initializer({
14693
- name: "transforms",
14694
- before: "store",
14869
+ name: 'transforms',
14870
+ before: 'store',
14695
14871
  initialize: ember$data$lib$ember$initializer$$K
14696
14872
  });
14697
14873
 
14698
14874
  Application.initializer({
14699
- name: "data-adapter",
14700
- before: "store",
14875
+ name: 'data-adapter',
14876
+ before: 'store',
14701
14877
  initialize: ember$data$lib$ember$initializer$$K
14702
14878
  });
14703
14879
 
14704
14880
  Application.initializer({
14705
- name: "injectStore",
14706
- before: "store",
14881
+ name: 'injectStore',
14882
+ before: 'store',
14707
14883
  initialize: ember$data$lib$ember$initializer$$K
14708
14884
  });
14709
14885
  });
@@ -15106,7 +15282,7 @@
15106
15282
  key = this.keyForAttribute(attr, 'serialize');
15107
15283
  hasMany = snapshot.hasMany(attr);
15108
15284
 
15109
- Ember.warn("The embedded relationship '" + key + "' is undefined for '" + snapshot.modelName + "' with id '" + snapshot.id + "'. Please include it in your original payload.", Ember.typeOf(hasMany) !== 'undefined');
15285
+ Ember.warn('The embedded relationship \'' + key + '\' is undefined for \'' + snapshot.modelName + '\' with id \'' + snapshot.id + '\'. Please include it in your original payload.', Ember.typeOf(hasMany) !== 'undefined', { id: 'ds.serializer.embedded-relationship-undefined' });
15110
15286
 
15111
15287
  json[key] = Ember.A(hasMany).map(function (embeddedSnapshot) {
15112
15288
  var embeddedJson = embeddedSnapshot.record.serialize({ includeId: true });
@@ -15199,14 +15375,14 @@
15199
15375
  typeClass.eachRelationship(function (key, relationship) {
15200
15376
  if (serializer.hasDeserializeRecordsOption(key)) {
15201
15377
  var embeddedTypeClass = store.modelFor(relationship.type);
15202
- if (relationship.kind === "hasMany") {
15378
+ if (relationship.kind === 'hasMany') {
15203
15379
  if (relationship.options.polymorphic) {
15204
15380
  this._extractEmbeddedHasManyPolymorphic(store, key, partial);
15205
15381
  } else {
15206
15382
  this._extractEmbeddedHasMany(store, key, embeddedTypeClass, partial);
15207
15383
  }
15208
15384
  }
15209
- if (relationship.kind === "belongsTo") {
15385
+ if (relationship.kind === 'belongsTo') {
15210
15386
  if (relationship.options.polymorphic) {
15211
15387
  this._extractEmbeddedBelongsToPolymorphic(store, key, partial);
15212
15388
  } else {
@@ -15359,10 +15535,10 @@
15359
15535
 
15360
15536
  typeClass.eachRelationship(function (key, relationship) {
15361
15537
  if (serializer.hasDeserializeRecordsOption(key)) {
15362
- if (relationship.kind === "hasMany") {
15538
+ if (relationship.kind === 'hasMany') {
15363
15539
  _this2._extractEmbeddedHasMany(store, key, partial, relationship);
15364
15540
  }
15365
- if (relationship.kind === "belongsTo") {
15541
+ if (relationship.kind === 'belongsTo') {
15366
15542
  _this2._extractEmbeddedBelongsTo(store, key, partial, relationship);
15367
15543
  }
15368
15544
  }
@@ -15506,7 +15682,7 @@
15506
15682
  */
15507
15683
  function ember$data$lib$system$relationships$belongs$to$$belongsTo(modelName, options) {
15508
15684
  var opts, userEnteredModelName;
15509
- if (typeof modelName === 'object') {
15685
+ if (typeof modelName === "object") {
15510
15686
  opts = modelName;
15511
15687
  userEnteredModelName = undefined;
15512
15688
  } else {
@@ -15514,16 +15690,16 @@
15514
15690
  userEnteredModelName = modelName;
15515
15691
  }
15516
15692
 
15517
- if (typeof userEnteredModelName === 'string') {
15693
+ if (typeof userEnteredModelName === "string") {
15518
15694
  userEnteredModelName = ember$data$lib$system$normalize$model$name$$default(userEnteredModelName);
15519
15695
  }
15520
15696
 
15521
- Ember.assert("The first argument to DS.belongsTo must be a string representing a model type key, not an instance of " + Ember.inspect(userEnteredModelName) + ". E.g., to define a relation to the Person model, use DS.belongsTo('person')", typeof userEnteredModelName === 'string' || typeof userEnteredModelName === 'undefined');
15697
+ Ember.assert("The first argument to DS.belongsTo must be a string representing a model type key, not an instance of " + Ember.inspect(userEnteredModelName) + ". E.g., to define a relation to the Person model, use DS.belongsTo('person')", typeof userEnteredModelName === "string" || typeof userEnteredModelName === "undefined");
15522
15698
 
15523
15699
  opts = opts || {};
15524
15700
 
15525
15701
  var shouldWarnAsync = false;
15526
- if (typeof opts.async === 'undefined') {
15702
+ if (typeof opts.async === "undefined") {
15527
15703
  shouldWarnAsync = true;
15528
15704
  }
15529
15705
 
@@ -15531,18 +15707,30 @@
15531
15707
  type: userEnteredModelName,
15532
15708
  isRelationship: true,
15533
15709
  options: opts,
15534
- kind: 'belongsTo',
15710
+ kind: "belongsTo",
15535
15711
  key: null,
15536
15712
  shouldWarnAsync: shouldWarnAsync
15537
15713
  };
15538
15714
 
15539
15715
  return ember$new$computed$lib$main$$default({
15540
15716
  get: function (key) {
15541
- Ember.warn('You provided a serialize option on the "' + key + '" property in the "' + this._internalModel.modelName + '" class, this belongs in the serializer. See DS.Serializer and it\'s implementations http://emberjs.com/api/data/classes/DS.Serializer.html', !opts.hasOwnProperty('serialize'));
15542
- Ember.warn('You provided an embedded option on the "' + key + '" property in the "' + this._internalModel.modelName + '" class, this belongs in the serializer. See DS.EmbeddedRecordsMixin http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html', !opts.hasOwnProperty('embedded'));
15717
+ if (opts.hasOwnProperty("serialize")) {
15718
+ Ember.warn("You provided a serialize option on the \"" + key + "\" property in the \"" + this._internalModel.modelName + "\" class, this belongs in the serializer. See DS.Serializer and it's implementations http://emberjs.com/api/data/classes/DS.Serializer.html", false, {
15719
+ id: "ds.model.serialize-option-in-belongs-to"
15720
+ });
15721
+ }
15722
+
15723
+ if (opts.hasOwnProperty("embedded")) {
15724
+ Ember.warn("You provided an embedded option on the \"" + key + "\" property in the \"" + this._internalModel.modelName + "\" class, this belongs in the serializer. See DS.EmbeddedRecordsMixin http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html", false, {
15725
+ id: "ds.model.embedded-option-in-belongs-to"
15726
+ });
15727
+ }
15543
15728
 
15544
15729
  if (meta.shouldWarnAsync) {
15545
- Ember.deprecate("In Ember Data 2.0, relationships will be asynchronous by default. You must set `" + key + ": DS.belongsTo('" + modelName + "', { async: false })` if you wish for a relationship remain synchronous.");
15730
+ Ember.deprecate("In Ember Data 2.0, relationships will be asynchronous by default. You must set `" + key + ": DS.belongsTo('" + modelName + "', { async: false })` if you wish for a relationship remain synchronous.", false, {
15731
+ id: "ds.model.relationship-changing-to-asynchrounous-by-default",
15732
+ until: "2.0.0"
15733
+ });
15546
15734
  meta.shouldWarnAsycn = false;
15547
15735
  }
15548
15736
 
@@ -15684,21 +15872,21 @@
15684
15872
  @return {Ember.computed} relationship
15685
15873
  */
15686
15874
  function ember$data$lib$system$relationships$has$many$$hasMany(type, options) {
15687
- if (typeof type === 'object') {
15875
+ if (typeof type === "object") {
15688
15876
  options = type;
15689
15877
  type = undefined;
15690
15878
  }
15691
15879
 
15692
- Ember.assert("The first argument to DS.hasMany must be a string representing a model type key, not an instance of " + Ember.inspect(type) + ". E.g., to define a relation to the Comment model, use DS.hasMany('comment')", typeof type === 'string' || typeof type === 'undefined');
15880
+ Ember.assert("The first argument to DS.hasMany must be a string representing a model type key, not an instance of " + Ember.inspect(type) + ". E.g., to define a relation to the Comment model, use DS.hasMany('comment')", typeof type === "string" || typeof type === "undefined");
15693
15881
 
15694
15882
  options = options || {};
15695
15883
 
15696
15884
  var shouldWarnAsync = false;
15697
- if (typeof options.async === 'undefined') {
15885
+ if (typeof options.async === "undefined") {
15698
15886
  shouldWarnAsync = true;
15699
15887
  }
15700
15888
 
15701
- if (typeof type === 'string') {
15889
+ if (typeof type === "string") {
15702
15890
  type = ember$data$lib$system$normalize$model$name$$default(type);
15703
15891
  }
15704
15892
 
@@ -15710,7 +15898,7 @@
15710
15898
  type: type,
15711
15899
  isRelationship: true,
15712
15900
  options: options,
15713
- kind: 'hasMany',
15901
+ kind: "hasMany",
15714
15902
  key: null,
15715
15903
  shouldWarnAsync: shouldWarnAsync
15716
15904
  };
@@ -15718,7 +15906,10 @@
15718
15906
  return ember$new$computed$lib$main$$default({
15719
15907
  get: function (key) {
15720
15908
  if (meta.shouldWarnAsync) {
15721
- Ember.deprecate("In Ember Data 2.0, relationships will be asynchronous by default. You must set `" + key + ": DS.hasMany('" + type + "', { async: false })` if you wish for a relationship remain synchronous.");
15909
+ Ember.deprecate("In Ember Data 2.0, relationships will be asynchronous by default. You must set `" + key + ": DS.hasMany('" + type + "', { async: false })` if you wish for a relationship remain synchronous.", false, {
15910
+ id: "ds.model.relationship-changing-to-asynchrounous-by-default",
15911
+ until: "2.0.0"
15912
+ });
15722
15913
  meta.shouldWarnAsync = false;
15723
15914
  }
15724
15915
  var relationship = this._internalModel._relationships.get(key);
@@ -15728,7 +15919,7 @@
15728
15919
  var relationship = this._internalModel._relationships.get(key);
15729
15920
  relationship.clear();
15730
15921
  Ember.assert("You must pass an array of records to set a hasMany relationship", Ember.isArray(records));
15731
- relationship.addRecords(Ember.A(records).mapBy('_internalModel'));
15922
+ relationship.addRecords(Ember.A(records).mapBy("_internalModel"));
15732
15923
  return relationship.getRecords();
15733
15924
  }
15734
15925
  }).meta(meta);
@@ -15932,7 +16123,7 @@
15932
16123
  @return {DS.Model} the type of the relationship, or undefined
15933
16124
  */
15934
16125
  typeForRelationship: function (name, store) {
15935
- var relationship = ember$data$lib$system$relationships$ext$$get(this, 'relationshipsByName').get(name);
16126
+ var relationship = ember$data$lib$system$relationships$ext$$get(this, "relationshipsByName").get(name);
15936
16127
  return relationship && store.modelFor(relationship.type);
15937
16128
  },
15938
16129
 
@@ -15963,7 +16154,7 @@
15963
16154
  @return {Object} the inverse relationship, or null
15964
16155
  */
15965
16156
  inverseFor: function (name, store) {
15966
- var inverseMap = ember$data$lib$system$relationships$ext$$get(this, 'inverseMap');
16157
+ var inverseMap = ember$data$lib$system$relationships$ext$$get(this, "inverseMap");
15967
16158
  if (inverseMap[name]) {
15968
16159
  return inverseMap[name];
15969
16160
  } else {
@@ -15990,18 +16181,22 @@
15990
16181
 
15991
16182
  var inverseName, inverseKind, inverse;
15992
16183
 
15993
- Ember.warn("Detected a reflexive relationship by the name of '" + name + "' without an inverse option. Look at http://emberjs.com/guides/models/defining-models/#toc_reflexive-relation for how to explicitly specify inverses.", options.inverse || propertyMeta.type !== propertyMeta.parentType.modelName);
15994
-
15995
16184
  //If inverse is specified manually, return the inverse
15996
16185
  if (options.inverse) {
15997
16186
  inverseName = options.inverse;
15998
- inverse = Ember.get(inverseType, 'relationshipsByName').get(inverseName);
16187
+ inverse = Ember.get(inverseType, "relationshipsByName").get(inverseName);
15999
16188
 
16000
16189
  Ember.assert("We found no inverse relationships by the name of '" + inverseName + "' on the '" + inverseType.modelName + "' model. This is most likely due to a missing attribute on your model definition.", !Ember.isNone(inverse));
16001
16190
 
16002
16191
  inverseKind = inverse.kind;
16003
16192
  } else {
16004
16193
  //No inverse was specified manually, we need to use a heuristic to guess one
16194
+ if (propertyMeta.type === propertyMeta.parentType.modelName) {
16195
+ Ember.warn("Detected a reflexive relationship by the name of '" + name + "' without an inverse option. Look at http://emberjs.com/guides/models/defining-models/#toc_reflexive-relation for how to explicitly specify inverses.", false, {
16196
+ id: "ds.model.reflexive-relationship-without-inverse"
16197
+ });
16198
+ }
16199
+
16005
16200
  var possibleRelationships = findPossibleInverses(this, inverseType);
16006
16201
 
16007
16202
  if (possibleRelationships.length === 0) {
@@ -16028,7 +16223,7 @@
16028
16223
  function findPossibleInverses(type, inverseType, relationshipsSoFar) {
16029
16224
  var possibleRelationships = relationshipsSoFar || [];
16030
16225
 
16031
- var relationshipMap = ember$data$lib$system$relationships$ext$$get(inverseType, 'relationships');
16226
+ var relationshipMap = ember$data$lib$system$relationships$ext$$get(inverseType, "relationships");
16032
16227
  if (!relationshipMap) {
16033
16228
  return possibleRelationships;
16034
16229
  }
@@ -16236,7 +16431,7 @@
16236
16431
  if (meta.isRelationship) {
16237
16432
  map.set(name, meta.kind);
16238
16433
  } else if (meta.isAttribute) {
16239
- map.set(name, 'attribute');
16434
+ map.set(name, "attribute");
16240
16435
  }
16241
16436
  });
16242
16437
 
@@ -16253,7 +16448,7 @@
16253
16448
  @param {any} binding the value to which the callback's `this` should be bound
16254
16449
  */
16255
16450
  eachRelationship: function (callback, binding) {
16256
- ember$data$lib$system$relationships$ext$$get(this, 'relationshipsByName').forEach(function (relationship, name) {
16451
+ ember$data$lib$system$relationships$ext$$get(this, "relationshipsByName").forEach(function (relationship, name) {
16257
16452
  callback.call(binding, name, relationship);
16258
16453
  });
16259
16454
  },
@@ -16269,7 +16464,7 @@
16269
16464
  @param {any} binding the value to which the callback's `this` should be bound
16270
16465
  */
16271
16466
  eachRelatedType: function (callback, binding) {
16272
- ember$data$lib$system$relationships$ext$$get(this, 'relatedTypes').forEach(function (type) {
16467
+ ember$data$lib$system$relationships$ext$$get(this, "relatedTypes").forEach(function (type) {
16273
16468
  callback.call(binding, type);
16274
16469
  });
16275
16470
  },
@@ -16281,16 +16476,16 @@
16281
16476
  var key, otherKind;
16282
16477
 
16283
16478
  if (!inverse) {
16284
- return knownKind === 'belongsTo' ? 'oneToNone' : 'manyToNone';
16479
+ return knownKind === "belongsTo" ? "oneToNone" : "manyToNone";
16285
16480
  }
16286
16481
 
16287
16482
  key = inverse.name;
16288
16483
  otherKind = inverse.kind;
16289
16484
 
16290
- if (otherKind === 'belongsTo') {
16291
- return knownKind === 'belongsTo' ? 'oneToOne' : 'manyToOne';
16485
+ if (otherKind === "belongsTo") {
16486
+ return knownKind === "belongsTo" ? "oneToOne" : "manyToOne";
16292
16487
  } else {
16293
- return knownKind === 'belongsTo' ? 'oneToMany' : 'manyToMany';
16488
+ return knownKind === "belongsTo" ? "oneToMany" : "manyToMany";
16294
16489
  }
16295
16490
  }
16296
16491
 
@@ -16341,7 +16536,7 @@
16341
16536
  },
16342
16537
 
16343
16538
  relationshipFor: function (name) {
16344
- return ember$data$lib$system$relationships$ext$$get(this.constructor, 'relationshipsByName').get(name);
16539
+ return ember$data$lib$system$relationships$ext$$get(this.constructor, "relationshipsByName").get(name);
16345
16540
  },
16346
16541
 
16347
16542
  inverseFor: function (key) {
@@ -16419,11 +16614,13 @@
16419
16614
  var ember$data$lib$main$$_ActiveModelSerializer = activemodel$adapter$lib$system$active$model$serializer$$default;
16420
16615
 
16421
16616
  if (Ember.platform.hasPropertyAccessors) {
16422
- Ember.defineProperty(ember$data$lib$core$$default, 'ActiveModelAdapter', {
16617
+ Ember.defineProperty(ember$data$lib$core$$default, "ActiveModelAdapter", {
16423
16618
  get: function () {
16424
16619
  if (ember$data$lib$main$$_ActiveModelSerializer === activemodel$adapter$lib$system$active$model$adapter$$default) {
16425
- Ember.deprecate('The ActiveModelAdapter has been moved into a plugin. It will not be bundled with Ember Data in 2.0', false, {
16426
- url: 'https://github.com/ember-data/active-model-adapter'
16620
+ Ember.deprecate("The ActiveModelAdapter has been moved into a plugin. It will not be bundled with Ember Data in 2.0", false, {
16621
+ url: "https://github.com/ember-data/active-model-adapter",
16622
+ id: "ds.adapter.active-model-adapter-deprecated",
16623
+ until: "2.0.0"
16427
16624
  });
16428
16625
  }
16429
16626
  return ember$data$lib$main$$_ActiveModelAdapter;
@@ -16432,11 +16629,13 @@
16432
16629
  ember$data$lib$main$$_ActiveModelAdapter = ActiveModelAdapter;
16433
16630
  }
16434
16631
  });
16435
- Ember.defineProperty(ember$data$lib$core$$default, 'ActiveModelSerializer', {
16632
+ Ember.defineProperty(ember$data$lib$core$$default, "ActiveModelSerializer", {
16436
16633
  get: function () {
16437
16634
  if (ember$data$lib$main$$_ActiveModelSerializer === activemodel$adapter$lib$system$active$model$serializer$$default) {
16438
- Ember.deprecate('The ActiveModelSerializer has been moved into a plugin. It will not be bundled with Ember Data in 2.0', false, {
16439
- url: 'https://github.com/ember-data/active-model-adapter'
16635
+ Ember.deprecate("The ActiveModelSerializer has been moved into a plugin. It will not be bundled with Ember Data in 2.0", false, {
16636
+ url: "https://github.com/ember-data/active-model-adapter",
16637
+ id: "ds.serializer.active-model-serializer-deprecated",
16638
+ until: "2.0.0"
16440
16639
  });
16441
16640
  }
16442
16641
  return ember$data$lib$main$$_ActiveModelSerializer;
@@ -16460,7 +16659,7 @@
16460
16659
 
16461
16660
  ember$data$lib$core$$default._setupContainer = ember$data$lib$setup$container$$default;
16462
16661
 
16463
- Ember.defineProperty(ember$data$lib$core$$default, 'normalizeModelName', {
16662
+ Ember.defineProperty(ember$data$lib$core$$default, "normalizeModelName", {
16464
16663
  enumerable: true,
16465
16664
  writable: false,
16466
16665
  configurable: false,
@@ -16470,10 +16669,13 @@
16470
16669
  var ember$data$lib$main$$_FixtureAdapter = ember$data$lib$adapters$fixture$adapter$$default;
16471
16670
 
16472
16671
  if (Ember.platform.hasPropertyAccessors) {
16473
- Ember.defineProperty(ember$data$lib$core$$default, 'FixtureAdapter', {
16672
+ Ember.defineProperty(ember$data$lib$core$$default, "FixtureAdapter", {
16474
16673
  get: function () {
16475
16674
  if (ember$data$lib$main$$_FixtureAdapter === ember$data$lib$adapters$fixture$adapter$$default) {
16476
- Ember.deprecate('DS.FixtureAdapter has been deprecated and moved into an unsupported addon: https://github.com/emberjs/ember-data-fixture-adapter/tree/master');
16675
+ Ember.deprecate("DS.FixtureAdapter has been deprecated and moved into an unsupported addon: https://github.com/emberjs/ember-data-fixture-adapter/tree/master", false, {
16676
+ id: "ds.adapter.fixture-adapter-deprecated",
16677
+ until: "2.0.0"
16678
+ });
16477
16679
  }
16478
16680
  return ember$data$lib$main$$_FixtureAdapter;
16479
16681
  },