ember-source 4.8.0-alpha.5 → 4.8.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/blueprints/helper/files/__root__/{__collection__ → helpers}/__name__.ts +0 -0
  3. package/blueprints/helper/index.js +0 -15
  4. package/blueprints/helper-test/index.js +0 -3
  5. package/blueprints/helper-test/mocha-0.12-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.js +0 -0
  6. package/blueprints/helper-test/mocha-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.js +0 -0
  7. package/blueprints/helper-test/mocha-rfc-232-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.ts +0 -0
  8. package/blueprints/helper-test/qunit-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.js +0 -0
  9. package/blueprints/helper-test/qunit-rfc-232-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.ts +0 -0
  10. package/blueprints-js/helper/files/__root__/{__collection__ → helpers}/__name__.js +0 -0
  11. package/blueprints-js/helper-test/mocha-0.12-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.js +0 -0
  12. package/blueprints-js/helper-test/mocha-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.js +0 -0
  13. package/blueprints-js/helper-test/mocha-rfc-232-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.js +0 -0
  14. package/blueprints-js/helper-test/qunit-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.js +0 -0
  15. package/blueprints-js/helper-test/qunit-rfc-232-files/__root__/__testType__/{__collection__ → helpers}/__name__-test.js +0 -0
  16. package/build-metadata.json +3 -3
  17. package/dist/dependencies/router_js.js +1 -1
  18. package/dist/ember-template-compiler.js +675 -18
  19. package/dist/ember-template-compiler.map +1 -1
  20. package/dist/ember-testing.js +11 -11
  21. package/dist/ember-testing.map +1 -1
  22. package/dist/ember.debug.js +19576 -20510
  23. package/dist/ember.debug.map +1 -1
  24. package/dist/header/license.js +1 -1
  25. package/dist/packages/@ember/-internals/glimmer/index.js +4 -2
  26. package/dist/packages/@ember/-internals/metal/index.js +214 -1094
  27. package/dist/packages/@ember/-internals/routing/index.js +1 -17
  28. package/dist/packages/@ember/-internals/runtime/index.js +3 -16
  29. package/dist/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +2 -1
  30. package/dist/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +4 -3
  31. package/dist/packages/@ember/-internals/runtime/lib/mixins/comparable.js +1 -1
  32. package/dist/packages/@ember/-internals/runtime/lib/mixins/container_proxy.js +1 -1
  33. package/dist/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +1 -8
  34. package/dist/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +2 -1
  35. package/dist/packages/@ember/-internals/utils/index.js +3 -3
  36. package/dist/packages/@ember/-internals/views/lib/component_lookup.js +1 -1
  37. package/dist/packages/@ember/-internals/views/lib/mixins/action_support.js +2 -1
  38. package/dist/packages/@ember/-internals/views/lib/mixins/child_views_support.js +2 -1
  39. package/dist/packages/@ember/-internals/views/lib/mixins/class_names_support.js +2 -1
  40. package/dist/packages/@ember/-internals/views/lib/mixins/view_state_support.js +1 -1
  41. package/dist/packages/@ember/-internals/views/lib/mixins/view_support.js +2 -1
  42. package/dist/packages/@ember/-internals/views/lib/system/event_dispatcher.js +1 -1
  43. package/dist/packages/@ember/-internals/views/lib/views/core_view.js +3 -1
  44. package/dist/packages/@ember/application/index.js +876 -2
  45. package/dist/packages/@ember/application/instance.js +2 -2
  46. package/dist/packages/@ember/application/namespace.js +70 -1
  47. package/dist/packages/@ember/array/index.js +1503 -2
  48. package/dist/packages/@ember/array/mutable.js +1 -1
  49. package/dist/packages/@ember/array/proxy.js +307 -1
  50. package/dist/packages/@ember/canary-features/index.js +2 -2
  51. package/dist/packages/@ember/controller/index.js +260 -3
  52. package/dist/packages/@ember/debug/container-debug-adapter.js +99 -1
  53. package/dist/packages/@ember/debug/data-adapter.js +574 -1
  54. package/dist/packages/@ember/engine/index.js +5 -5
  55. package/dist/packages/@ember/engine/instance.js +4 -4
  56. package/dist/packages/@ember/enumerable/index.js +3 -1
  57. package/dist/packages/@ember/enumerable/mutable.js +4 -0
  58. package/dist/packages/@ember/{-internals/runtime/lib/system/object.js → object/-internals.js} +4 -17
  59. package/dist/packages/@ember/object/core.js +731 -1
  60. package/dist/packages/@ember/object/evented.js +93 -2
  61. package/dist/packages/@ember/object/index.js +76 -4
  62. package/dist/packages/@ember/object/internals.js +3 -2
  63. package/dist/packages/@ember/object/lib/computed/computed_macros.js +3 -1
  64. package/dist/packages/@ember/object/lib/computed/reduce_computed_macros.js +4 -3
  65. package/dist/packages/@ember/object/mixin.js +659 -1
  66. package/dist/packages/@ember/object/observable.js +341 -1
  67. package/dist/packages/@ember/object/promise-proxy-mixin.js +150 -1
  68. package/dist/packages/@ember/object/proxy.js +10 -1
  69. package/dist/packages/@ember/routing/-internals.js +7 -0
  70. package/dist/packages/@ember/routing/auto-location.js +249 -1
  71. package/dist/packages/@ember/routing/hash-location.js +169 -1
  72. package/dist/packages/@ember/routing/history-location.js +289 -1
  73. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/cache.js +0 -0
  74. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/controller_for.js +0 -0
  75. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/dsl.js +0 -0
  76. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/engines.js +0 -0
  77. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/generate_controller.js +0 -0
  78. package/dist/packages/@ember/{-internals/routing/lib/location/util.js → routing/lib/location-utils.js} +0 -0
  79. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/query_params.js +0 -0
  80. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/route-info.js +0 -0
  81. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/router_state.js +1 -1
  82. package/dist/packages/@ember/{-internals/routing/lib/services/routing.js → routing/lib/routing-service.js} +2 -2
  83. package/dist/packages/@ember/{-internals/routing/lib/system → routing/lib}/transition.js +0 -0
  84. package/dist/packages/@ember/{-internals/routing → routing}/lib/utils.js +0 -0
  85. package/dist/packages/@ember/routing/location.js +104 -1
  86. package/dist/packages/@ember/routing/none-location.js +123 -1
  87. package/dist/packages/@ember/routing/route.js +1700 -1
  88. package/dist/packages/@ember/routing/router-service.js +510 -1
  89. package/dist/packages/@ember/routing/router.js +1666 -1
  90. package/dist/packages/@ember/service/index.js +1 -1
  91. package/dist/packages/@ember/utils/index.js +7 -2
  92. package/dist/packages/@ember/{-internals/runtime → utils}/lib/compare.js +2 -2
  93. package/dist/packages/@ember/{-internals/runtime → utils}/lib/is-equal.js +0 -0
  94. package/dist/packages/@ember/utils/lib/is_blank.js +35 -0
  95. package/dist/packages/@ember/utils/lib/is_empty.js +68 -0
  96. package/dist/packages/@ember/utils/lib/is_none.js +27 -0
  97. package/dist/packages/@ember/utils/lib/is_present.js +38 -0
  98. package/dist/packages/@ember/{-internals/runtime → utils}/lib/type-of.js +2 -2
  99. package/dist/packages/ember/index.js +47 -28
  100. package/dist/packages/ember/version.js +1 -1
  101. package/dist/packages/ember-testing/lib/adapters/adapter.js +1 -1
  102. package/dist/packages/ember-testing/lib/helpers/current_path.js +2 -2
  103. package/dist/packages/ember-testing/lib/helpers/current_route_name.js +2 -2
  104. package/dist/packages/ember-testing/lib/helpers/current_url.js +1 -1
  105. package/docs/data.json +9428 -9189
  106. package/package.json +23 -8
  107. package/types/preview/@ember/-internals/resolver.d.ts +35 -0
  108. package/types/preview/@ember/application/-private/event-dispatcher.d.ts +18 -0
  109. package/types/preview/@ember/application/-private/registry.d.ts +15 -0
  110. package/types/preview/@ember/application/deprecations.d.ts +24 -0
  111. package/types/preview/@ember/application/index.d.ts +153 -0
  112. package/types/preview/@ember/application/instance.d.ts +9 -0
  113. package/types/preview/@ember/application/tsconfig.json +3 -0
  114. package/types/preview/@ember/application/types.d.ts +29 -0
  115. package/types/preview/@ember/array/-private/enumerable.d.ts +13 -0
  116. package/types/preview/@ember/array/-private/mutable-enumerable.d.ts +13 -0
  117. package/types/preview/@ember/array/-private/native-array.d.ts +23 -0
  118. package/types/preview/@ember/array/index.d.ts +243 -0
  119. package/types/preview/@ember/array/mutable.d.ts +94 -0
  120. package/types/preview/@ember/array/proxy.d.ts +29 -0
  121. package/types/preview/@ember/array/tsconfig.json +3 -0
  122. package/types/preview/@ember/component/-private/class-names-support.d.ts +27 -0
  123. package/types/preview/@ember/component/-private/core-view.d.ts +14 -0
  124. package/types/preview/@ember/component/-private/glimmer-interfaces.d.ts +45 -0
  125. package/types/preview/@ember/component/-private/signature-utils.d.ts +107 -0
  126. package/types/preview/@ember/component/-private/view-mixin.d.ts +59 -0
  127. package/types/preview/@ember/component/helper.d.ts +122 -0
  128. package/types/preview/@ember/component/index.d.ts +132 -0
  129. package/types/preview/@ember/component/template-only.d.ts +47 -0
  130. package/types/preview/@ember/component/tsconfig.json +3 -0
  131. package/types/preview/@ember/controller/index.d.ts +48 -0
  132. package/types/preview/@ember/controller/tsconfig.json +3 -0
  133. package/types/preview/@ember/debug/container-debug-adapter.d.ts +13 -0
  134. package/types/preview/@ember/debug/data-adapter.d.ts +64 -0
  135. package/types/preview/@ember/debug/index.d.ts +98 -0
  136. package/types/preview/@ember/debug/tsconfig.json +3 -0
  137. package/types/preview/@ember/destroyable/index.d.ts +23 -0
  138. package/types/preview/@ember/destroyable/tsconfig.json +3 -0
  139. package/types/preview/@ember/engine/-private/container-proxy-mixin.d.ts +17 -0
  140. package/types/preview/@ember/engine/-private/registry-proxy-mixin.d.ts +54 -0
  141. package/types/preview/@ember/engine/-private/types/initializer.d.ts +8 -0
  142. package/types/preview/@ember/engine/index.d.ts +45 -0
  143. package/types/preview/@ember/engine/instance.d.ts +24 -0
  144. package/types/preview/@ember/engine/tsconfig.json +3 -0
  145. package/types/preview/@ember/error/index.d.ts +6 -0
  146. package/types/preview/@ember/error/tsconfig.json +3 -0
  147. package/types/preview/@ember/helper/index.d.ts +49 -0
  148. package/types/preview/@ember/helper/tsconfig.json +3 -0
  149. package/types/preview/@ember/modifier/index.d.ts +33 -0
  150. package/types/preview/@ember/modifier/tsconfig.json +3 -0
  151. package/types/preview/@ember/object/-private/action-handler.d.ts +31 -0
  152. package/types/preview/@ember/object/-private/types.d.ts +63 -0
  153. package/types/preview/@ember/object/compat.d.ts +9 -0
  154. package/types/preview/@ember/object/computed.d.ts +263 -0
  155. package/types/preview/@ember/object/core.d.ts +89 -0
  156. package/types/preview/@ember/object/evented.d.ts +45 -0
  157. package/types/preview/@ember/object/events.d.ts +47 -0
  158. package/types/preview/@ember/object/index.d.ts +126 -0
  159. package/types/preview/@ember/object/internals.d.ts +17 -0
  160. package/types/preview/@ember/object/mixin.d.ts +19 -0
  161. package/types/preview/@ember/object/observable.d.ts +89 -0
  162. package/types/preview/@ember/object/observers.d.ts +34 -0
  163. package/types/preview/@ember/object/promise-proxy-mixin.d.ts +37 -0
  164. package/types/preview/@ember/object/proxy.d.ts +27 -0
  165. package/types/preview/@ember/object/tsconfig.json +3 -0
  166. package/types/preview/@ember/owner/index.d.ts +102 -0
  167. package/types/preview/@ember/owner/tsconfig.json +3 -0
  168. package/types/preview/@ember/polyfills/index.d.ts +23 -0
  169. package/types/preview/@ember/polyfills/tsconfig.json +3 -0
  170. package/types/preview/@ember/polyfills/types.d.ts +6 -0
  171. package/types/preview/@ember/routing/-private/router-dsl.d.ts +20 -0
  172. package/types/preview/@ember/routing/auto-location.d.ts +8 -0
  173. package/types/preview/@ember/routing/hash-location.d.ts +10 -0
  174. package/types/preview/@ember/routing/history-location.d.ts +9 -0
  175. package/types/preview/@ember/routing/index.d.ts +20 -0
  176. package/types/preview/@ember/routing/none-location.d.ts +11 -0
  177. package/types/preview/@ember/routing/route-info.d.ts +74 -0
  178. package/types/preview/@ember/routing/route.d.ts +533 -0
  179. package/types/preview/@ember/routing/router-service.d.ts +351 -0
  180. package/types/preview/@ember/routing/router.d.ts +49 -0
  181. package/types/preview/@ember/routing/transition.d.ts +126 -0
  182. package/types/preview/@ember/routing/tsconfig.json +3 -0
  183. package/types/preview/@ember/routing/types.d.ts +15 -0
  184. package/types/preview/@ember/runloop/-private/backburner.d.ts +43 -0
  185. package/types/preview/@ember/runloop/-private/types.d.ts +9 -0
  186. package/types/preview/@ember/runloop/index.d.ts +175 -0
  187. package/types/preview/@ember/runloop/tsconfig.json +3 -0
  188. package/types/preview/@ember/runloop/types.d.ts +5 -0
  189. package/types/preview/@ember/service/index.d.ts +25 -0
  190. package/types/preview/@ember/service/tsconfig.json +3 -0
  191. package/types/preview/@ember/string/index.d.ts +9 -0
  192. package/types/preview/@ember/string/tsconfig.json +3 -0
  193. package/types/preview/@ember/template/-private/handlebars.d.ts +7 -0
  194. package/types/preview/@ember/template/index.d.ts +5 -0
  195. package/types/preview/@ember/template/tsconfig.json +3 -0
  196. package/types/preview/@ember/test/adapter.d.ts +22 -0
  197. package/types/preview/@ember/test/index.d.ts +49 -0
  198. package/types/preview/@ember/test/tsconfig.json +3 -0
  199. package/types/preview/@ember/utils/-private/types.d.ts +39 -0
  200. package/types/preview/@ember/utils/index.d.ts +42 -0
  201. package/types/preview/@ember/utils/tsconfig.json +3 -0
  202. package/types/preview/ember/-private/type-utils.d.ts +54 -0
  203. package/types/preview/ember/index.d.ts +381 -0
  204. package/types/preview/ember/tsconfig.json +3 -0
  205. package/types/preview/index.d.ts +120 -0
  206. package/types/preview/tsconfig.json +6 -0
  207. package/blueprints/helper/mu-files/__root__/__collection__/__name__.js +0 -7
  208. package/blueprints-js/helper/mu-files/__root__/__collection__/__name__.js +0 -7
  209. package/dist/packages/@ember/-internals/extension-support/index.js +0 -2
  210. package/dist/packages/@ember/-internals/extension-support/lib/container_debug_adapter.js +0 -96
  211. package/dist/packages/@ember/-internals/extension-support/lib/data_adapter.js +0 -576
  212. package/dist/packages/@ember/-internals/routing/lib/ext/controller.js +0 -224
  213. package/dist/packages/@ember/-internals/routing/lib/location/api.js +0 -104
  214. package/dist/packages/@ember/-internals/routing/lib/location/auto_location.js +0 -250
  215. package/dist/packages/@ember/-internals/routing/lib/location/hash_location.js +0 -170
  216. package/dist/packages/@ember/-internals/routing/lib/location/history_location.js +0 -290
  217. package/dist/packages/@ember/-internals/routing/lib/location/none_location.js +0 -124
  218. package/dist/packages/@ember/-internals/routing/lib/services/router.js +0 -506
  219. package/dist/packages/@ember/-internals/routing/lib/system/route.js +0 -1696
  220. package/dist/packages/@ember/-internals/routing/lib/system/router.js +0 -1662
  221. package/dist/packages/@ember/-internals/runtime/lib/mixins/array.js +0 -1501
  222. package/dist/packages/@ember/-internals/runtime/lib/mixins/enumerable.js +0 -3
  223. package/dist/packages/@ember/-internals/runtime/lib/mixins/evented.js +0 -91
  224. package/dist/packages/@ember/-internals/runtime/lib/mixins/mutable_enumerable.js +0 -4
  225. package/dist/packages/@ember/-internals/runtime/lib/mixins/observable.js +0 -339
  226. package/dist/packages/@ember/-internals/runtime/lib/mixins/promise_proxy.js +0 -149
  227. package/dist/packages/@ember/-internals/runtime/lib/system/array_proxy.js +0 -305
  228. package/dist/packages/@ember/-internals/runtime/lib/system/core_object.js +0 -730
  229. package/dist/packages/@ember/-internals/runtime/lib/system/namespace.js +0 -69
  230. package/dist/packages/@ember/-internals/runtime/lib/system/object_proxy.js +0 -7
  231. package/dist/packages/@ember/application/lib/application.js +0 -870
  232. package/dist/packages/@ember/controller/lib/controller_mixin.js +0 -42
  233. package/dist/packages/@ember/runloop/type-tests.ts/begin-end.test.js +0 -5
  234. package/dist/packages/@ember/runloop/type-tests.ts/bind.test.js +0 -59
  235. package/dist/packages/@ember/runloop/type-tests.ts/cancel.test.js +0 -5
  236. package/dist/packages/@ember/runloop/type-tests.ts/debounce.test.js +0 -77
  237. package/dist/packages/@ember/runloop/type-tests.ts/join.test.js +0 -38
  238. package/dist/packages/@ember/runloop/type-tests.ts/later.test.js +0 -38
  239. package/dist/packages/@ember/runloop/type-tests.ts/next.test.js +0 -38
  240. package/dist/packages/@ember/runloop/type-tests.ts/once.test.js +0 -38
  241. package/dist/packages/@ember/runloop/type-tests.ts/run.test.js +0 -38
  242. package/dist/packages/@ember/runloop/type-tests.ts/schedule-once.test.js +0 -39
  243. package/dist/packages/@ember/runloop/type-tests.ts/schedule.test.js +0 -39
  244. package/dist/packages/@ember/runloop/type-tests.ts/throttle.test.js +0 -77
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 4.8.0-alpha.5
9
+ * @version 4.8.0-beta.2
10
10
  */
11
11
 
12
12
  /* eslint-disable no-var */
@@ -1108,18 +1108,22 @@ define("@ember/-internals/utils/index", ["exports", "@glimmer/util", "@ember/deb
1108
1108
 
1109
1109
  class Cache {
1110
1110
  constructor(limit, func, store) {
1111
+ if (store === void 0) {
1112
+ store = new Map();
1113
+ }
1114
+
1111
1115
  this.limit = limit;
1112
1116
  this.func = func;
1113
1117
  this.store = store;
1114
1118
  this.size = 0;
1115
1119
  this.misses = 0;
1116
1120
  this.hits = 0;
1117
- this.store = store || new Map();
1118
1121
  }
1119
1122
 
1120
1123
  get(key) {
1121
1124
  if (this.store.has(key)) {
1122
- this.hits++;
1125
+ this.hits++; // SAFETY: we know the value is present because `.has(key)` was `true`.
1126
+
1123
1127
  return this.store.get(key);
1124
1128
  } else {
1125
1129
  this.misses++;
@@ -1311,8 +1315,8 @@ define("@ember/canary-features/index", ["exports", "@ember/-internals/environmen
1311
1315
  @public
1312
1316
  */
1313
1317
  var DEFAULT_FEATURES = {
1314
- EMBER_LIBRARIES_ISREGISTERED: null,
1315
- EMBER_IMPROVED_INSTRUMENTATION: null,
1318
+ EMBER_LIBRARIES_ISREGISTERED: false,
1319
+ EMBER_IMPROVED_INSTRUMENTATION: false,
1316
1320
  EMBER_UNIQUE_ID_HELPER: true,
1317
1321
  EMBER_DEFAULT_HELPER_MANAGER: true
1318
1322
  };
@@ -1375,31 +1379,684 @@ define("@ember/canary-features/index", ["exports", "@ember/-internals/environmen
1375
1379
  var EMBER_DEFAULT_HELPER_MANAGER = featureValue(FEATURES.EMBER_DEFAULT_HELPER_MANAGER);
1376
1380
  _exports.EMBER_DEFAULT_HELPER_MANAGER = EMBER_DEFAULT_HELPER_MANAGER;
1377
1381
  });
1378
- define("@ember/debug/container-debug-adapter", ["exports", "@ember/-internals/extension-support"], function (_exports, _extensionSupport) {
1382
+ define("@ember/debug/container-debug-adapter", ["exports", "@ember/string", "@ember/object", "@ember/array", "@ember/utils", "@ember/-internals/owner", "@ember/application/namespace"], function (_exports, _string, _object, _array, _utils, _owner, _namespace) {
1379
1383
  "use strict";
1380
1384
 
1381
1385
  Object.defineProperty(_exports, "__esModule", {
1382
1386
  value: true
1383
1387
  });
1384
- Object.defineProperty(_exports, "default", {
1385
- enumerable: true,
1386
- get: function () {
1387
- return _extensionSupport.ContainerDebugAdapter;
1388
+ _exports.default = void 0;
1389
+
1390
+ /**
1391
+ @module @ember/debug/container-debug-adapter
1392
+ */
1393
+
1394
+ /**
1395
+ The `ContainerDebugAdapter` helps the container and resolver interface
1396
+ with tools that debug Ember such as the
1397
+ [Ember Inspector](https://github.com/emberjs/ember-inspector)
1398
+ for Chrome and Firefox.
1399
+
1400
+ This class can be extended by a custom resolver implementer
1401
+ to override some of the methods with library-specific code.
1402
+
1403
+ The methods likely to be overridden are:
1404
+
1405
+ * `canCatalogEntriesByType`
1406
+ * `catalogEntriesByType`
1407
+
1408
+ The adapter will need to be registered
1409
+ in the application's container as `container-debug-adapter:main`.
1410
+
1411
+ Example:
1412
+
1413
+ ```javascript
1414
+ Application.initializer({
1415
+ name: "containerDebugAdapter",
1416
+
1417
+ initialize(application) {
1418
+ application.register('container-debug-adapter:main', require('app/container-debug-adapter'));
1419
+ }
1420
+ });
1421
+ ```
1422
+
1423
+ @class ContainerDebugAdapter
1424
+ @extends EmberObject
1425
+ @since 1.5.0
1426
+ @public
1427
+ */
1428
+ class ContainerDebugAdapter extends _object.default {
1429
+ constructor(owner) {
1430
+ super(owner);
1431
+ this.resolver = (0, _owner.getOwner)(this).lookup('resolver-for-debugging:main');
1388
1432
  }
1389
- });
1433
+ /**
1434
+ Returns true if it is possible to catalog a list of available
1435
+ classes in the resolver for a given type.
1436
+ @method canCatalogEntriesByType
1437
+ @param {String} type The type. e.g. "model", "controller", "route".
1438
+ @return {boolean} whether a list is available for this type.
1439
+ @public
1440
+ */
1441
+
1442
+
1443
+ canCatalogEntriesByType(type) {
1444
+ if (type === 'model' || type === 'template') {
1445
+ return false;
1446
+ }
1447
+
1448
+ return true;
1449
+ }
1450
+ /**
1451
+ Returns the available classes a given type.
1452
+ @method catalogEntriesByType
1453
+ @param {String} type The type. e.g. "model", "controller", "route".
1454
+ @return {Array} An array of strings.
1455
+ @public
1456
+ */
1457
+
1458
+
1459
+ catalogEntriesByType(type) {
1460
+ var namespaces = (0, _array.A)(_namespace.default.NAMESPACES);
1461
+ var types = (0, _array.A)();
1462
+ var typeSuffixRegex = new RegExp((0, _string.classify)(type) + "$");
1463
+ namespaces.forEach(namespace => {
1464
+ for (var key in namespace) {
1465
+ if (!Object.prototype.hasOwnProperty.call(namespace, key)) {
1466
+ continue;
1467
+ }
1468
+
1469
+ if (typeSuffixRegex.test(key)) {
1470
+ var klass = namespace[key];
1471
+
1472
+ if ((0, _utils.typeOf)(klass) === 'class') {
1473
+ types.push((0, _string.dasherize)(key.replace(typeSuffixRegex, '')));
1474
+ }
1475
+ }
1476
+ }
1477
+ });
1478
+ return types;
1479
+ }
1480
+
1481
+ }
1482
+
1483
+ _exports.default = ContainerDebugAdapter;
1390
1484
  });
1391
- define("@ember/debug/data-adapter", ["exports", "@ember/-internals/extension-support"], function (_exports, _extensionSupport) {
1485
+ define("@ember/debug/data-adapter", ["exports", "@ember/-internals/owner", "@ember/runloop", "@ember/object", "@ember/string", "@ember/application/namespace", "@ember/array", "@glimmer/validator"], function (_exports, _owner, _runloop, _object, _string, _namespace, _array, _validator) {
1392
1486
  "use strict";
1393
1487
 
1394
1488
  Object.defineProperty(_exports, "__esModule", {
1395
1489
  value: true
1396
1490
  });
1397
- Object.defineProperty(_exports, "default", {
1398
- enumerable: true,
1399
- get: function () {
1400
- return _extensionSupport.DataAdapter;
1491
+ _exports.default = void 0;
1492
+
1493
+ function iterate(arr, fn) {
1494
+ if (Symbol.iterator in arr) {
1495
+ for (var item of arr) {
1496
+ fn(item);
1497
+ }
1498
+ } else {
1499
+ arr.forEach(fn);
1500
+ }
1501
+ }
1502
+
1503
+ class RecordsWatcher {
1504
+ constructor(records, recordsAdded, recordsUpdated, recordsRemoved, wrapRecord, release) {
1505
+ this.wrapRecord = wrapRecord;
1506
+ this.release = release;
1507
+ this.recordCaches = new Map();
1508
+ this.added = [];
1509
+ this.updated = [];
1510
+ this.removed = [];
1511
+ this.recordArrayCache = (0, _validator.createCache)(() => {
1512
+ var seen = new Set(); // Track `[]` for legacy support
1513
+
1514
+ (0, _validator.consumeTag)((0, _validator.tagFor)(records, '[]'));
1515
+ iterate(records, record => {
1516
+ (0, _validator.getValue)(this.getCacheForItem(record));
1517
+ seen.add(record);
1518
+ }); // Untrack this operation because these records are being removed, they
1519
+ // should not be polled again in the future
1520
+
1521
+ (0, _validator.untrack)(() => {
1522
+ this.recordCaches.forEach((_cache, record) => {
1523
+ if (!seen.has(record)) {
1524
+ this.removed.push(wrapRecord(record));
1525
+ this.recordCaches.delete(record);
1526
+ }
1527
+ });
1528
+ });
1529
+
1530
+ if (this.added.length > 0) {
1531
+ recordsAdded(this.added);
1532
+ this.added = [];
1533
+ }
1534
+
1535
+ if (this.updated.length > 0) {
1536
+ recordsUpdated(this.updated);
1537
+ this.updated = [];
1538
+ }
1539
+
1540
+ if (this.removed.length > 0) {
1541
+ recordsRemoved(this.removed);
1542
+ this.removed = [];
1543
+ }
1544
+ });
1401
1545
  }
1402
- });
1546
+
1547
+ getCacheForItem(record) {
1548
+ var recordCache = this.recordCaches.get(record);
1549
+
1550
+ if (!recordCache) {
1551
+ var hasBeenAdded = false;
1552
+ recordCache = (0, _validator.createCache)(() => {
1553
+ if (!hasBeenAdded) {
1554
+ this.added.push(this.wrapRecord(record));
1555
+ hasBeenAdded = true;
1556
+ } else {
1557
+ this.updated.push(this.wrapRecord(record));
1558
+ }
1559
+ });
1560
+ this.recordCaches.set(record, recordCache);
1561
+ }
1562
+
1563
+ return recordCache;
1564
+ }
1565
+
1566
+ revalidate() {
1567
+ (0, _validator.getValue)(this.recordArrayCache);
1568
+ }
1569
+
1570
+ }
1571
+
1572
+ class TypeWatcher {
1573
+ constructor(records, onChange, release) {
1574
+ this.release = release;
1575
+ var hasBeenAccessed = false;
1576
+ this.cache = (0, _validator.createCache)(() => {
1577
+ // Empty iteration, we're doing this just
1578
+ // to track changes to the records array
1579
+ iterate(records, () => {}); // Also track `[]` for legacy support
1580
+
1581
+ (0, _validator.consumeTag)((0, _validator.tagFor)(records, '[]'));
1582
+
1583
+ if (hasBeenAccessed === true) {
1584
+ onChange();
1585
+ } else {
1586
+ hasBeenAccessed = true;
1587
+ }
1588
+ });
1589
+ this.release = release;
1590
+ }
1591
+
1592
+ revalidate() {
1593
+ (0, _validator.getValue)(this.cache);
1594
+ }
1595
+
1596
+ }
1597
+ /**
1598
+ The `DataAdapter` helps a data persistence library
1599
+ interface with tools that debug Ember such
1600
+ as the [Ember Inspector](https://github.com/emberjs/ember-inspector)
1601
+ for Chrome and Firefox.
1602
+
1603
+ This class will be extended by a persistence library
1604
+ which will override some of the methods with
1605
+ library-specific code.
1606
+
1607
+ The methods likely to be overridden are:
1608
+
1609
+ * `getFilters`
1610
+ * `detect`
1611
+ * `columnsForType`
1612
+ * `getRecords`
1613
+ * `getRecordColumnValues`
1614
+ * `getRecordKeywords`
1615
+ * `getRecordFilterValues`
1616
+ * `getRecordColor`
1617
+
1618
+ The adapter will need to be registered
1619
+ in the application's container as `dataAdapter:main`.
1620
+
1621
+ Example:
1622
+
1623
+ ```javascript
1624
+ Application.initializer({
1625
+ name: "data-adapter",
1626
+
1627
+ initialize: function(application) {
1628
+ application.register('data-adapter:main', DS.DataAdapter);
1629
+ }
1630
+ });
1631
+ ```
1632
+
1633
+ @class DataAdapter
1634
+ @extends EmberObject
1635
+ @public
1636
+ */
1637
+
1638
+
1639
+ class DataAdapter extends _object.default {
1640
+ constructor(owner) {
1641
+ super(owner);
1642
+ this.releaseMethods = (0, _array.A)();
1643
+ this.recordsWatchers = new Map();
1644
+ this.typeWatchers = new Map();
1645
+ this.flushWatchers = null;
1646
+ /**
1647
+ The container-debug-adapter which is used
1648
+ to list all models.
1649
+ @property containerDebugAdapter
1650
+ @default undefined
1651
+ @since 1.5.0
1652
+ @public
1653
+ **/
1654
+
1655
+ /**
1656
+ The number of attributes to send
1657
+ as columns. (Enough to make the record
1658
+ identifiable).
1659
+ @private
1660
+ @property attributeLimit
1661
+ @default 3
1662
+ @since 1.3.0
1663
+ */
1664
+
1665
+ this.attributeLimit = 3;
1666
+ /**
1667
+ Ember Data > v1.0.0-beta.18
1668
+ requires string model names to be passed
1669
+ around instead of the actual factories.
1670
+ This is a stamp for the Ember Inspector
1671
+ to differentiate between the versions
1672
+ to be able to support older versions too.
1673
+ @public
1674
+ @property acceptsModelName
1675
+ */
1676
+
1677
+ this.acceptsModelName = true;
1678
+ this.containerDebugAdapter = (0, _owner.getOwner)(this).lookup('container-debug-adapter:main');
1679
+ }
1680
+ /**
1681
+ Map from records arrays to RecordsWatcher instances
1682
+ @private
1683
+ @property recordsWatchers
1684
+ @since 3.26.0
1685
+ */
1686
+
1687
+ /**
1688
+ Map from records arrays to TypeWatcher instances
1689
+ @private
1690
+ @property typeWatchers
1691
+ @since 3.26.0
1692
+ */
1693
+
1694
+ /**
1695
+ Callback that is currently scheduled on backburner end to flush and check
1696
+ all active watchers.
1697
+ @private
1698
+ @property flushWatchers
1699
+ @since 3.26.0
1700
+ */
1701
+
1702
+ /**
1703
+ Stores all methods that clear observers.
1704
+ These methods will be called on destruction.
1705
+ @private
1706
+ @property releaseMethods
1707
+ @since 1.3.0
1708
+ */
1709
+
1710
+ /**
1711
+ Specifies how records can be filtered.
1712
+ Records returned will need to have a `filterValues`
1713
+ property with a key for every name in the returned array.
1714
+ @public
1715
+ @method getFilters
1716
+ @return {Array} List of objects defining filters.
1717
+ The object should have a `name` and `desc` property.
1718
+ */
1719
+
1720
+
1721
+ getFilters() {
1722
+ return (0, _array.A)();
1723
+ }
1724
+ /**
1725
+ Fetch the model types and observe them for changes.
1726
+ @public
1727
+ @method watchModelTypes
1728
+ @param {Function} typesAdded Callback to call to add types.
1729
+ Takes an array of objects containing wrapped types (returned from `wrapModelType`).
1730
+ @param {Function} typesUpdated Callback to call when a type has changed.
1731
+ Takes an array of objects containing wrapped types.
1732
+ @return {Function} Method to call to remove all observers
1733
+ */
1734
+
1735
+
1736
+ watchModelTypes(typesAdded, typesUpdated) {
1737
+ var modelTypes = this.getModelTypes();
1738
+ var releaseMethods = (0, _array.A)();
1739
+ var typesToSend;
1740
+ typesToSend = modelTypes.map(type => {
1741
+ var klass = type.klass;
1742
+ var wrapped = this.wrapModelType(klass, type.name);
1743
+ releaseMethods.push(this.observeModelType(type.name, typesUpdated));
1744
+ return wrapped;
1745
+ });
1746
+ typesAdded(typesToSend);
1747
+
1748
+ var release = () => {
1749
+ releaseMethods.forEach(fn => fn());
1750
+ this.releaseMethods.removeObject(release);
1751
+ };
1752
+
1753
+ this.releaseMethods.pushObject(release);
1754
+ return release;
1755
+ }
1756
+
1757
+ _nameToClass(type) {
1758
+ if (typeof type === 'string') {
1759
+ var owner = (0, _owner.getOwner)(this);
1760
+ var Factory = owner.factoryFor("model:" + type);
1761
+ type = Factory && Factory.class;
1762
+ }
1763
+
1764
+ return type;
1765
+ }
1766
+ /**
1767
+ Fetch the records of a given type and observe them for changes.
1768
+ @public
1769
+ @method watchRecords
1770
+ @param {String} modelName The model name.
1771
+ @param {Function} recordsAdded Callback to call to add records.
1772
+ Takes an array of objects containing wrapped records.
1773
+ The object should have the following properties:
1774
+ columnValues: {Object} The key and value of a table cell.
1775
+ object: {Object} The actual record object.
1776
+ @param {Function} recordsUpdated Callback to call when a record has changed.
1777
+ Takes an array of objects containing wrapped records.
1778
+ @param {Function} recordsRemoved Callback to call when a record has removed.
1779
+ Takes an array of objects containing wrapped records.
1780
+ @return {Function} Method to call to remove all observers.
1781
+ */
1782
+
1783
+
1784
+ watchRecords(modelName, recordsAdded, recordsUpdated, recordsRemoved) {
1785
+ var klass = this._nameToClass(modelName);
1786
+
1787
+ var records = this.getRecords(klass, modelName);
1788
+ var {
1789
+ recordsWatchers
1790
+ } = this;
1791
+ var recordsWatcher = recordsWatchers.get(records);
1792
+
1793
+ if (!recordsWatcher) {
1794
+ recordsWatcher = new RecordsWatcher(records, recordsAdded, recordsUpdated, recordsRemoved, record => this.wrapRecord(record), () => {
1795
+ recordsWatchers.delete(records);
1796
+ this.updateFlushWatchers();
1797
+ });
1798
+ recordsWatchers.set(records, recordsWatcher);
1799
+ this.updateFlushWatchers();
1800
+ recordsWatcher.revalidate();
1801
+ }
1802
+
1803
+ return recordsWatcher.release;
1804
+ }
1805
+
1806
+ updateFlushWatchers() {
1807
+ if (this.flushWatchers === null) {
1808
+ if (this.typeWatchers.size > 0 || this.recordsWatchers.size > 0) {
1809
+ this.flushWatchers = () => {
1810
+ this.typeWatchers.forEach(watcher => watcher.revalidate());
1811
+ this.recordsWatchers.forEach(watcher => watcher.revalidate());
1812
+ };
1813
+
1814
+ _runloop._backburner.on('end', this.flushWatchers);
1815
+ }
1816
+ } else if (this.typeWatchers.size === 0 && this.recordsWatchers.size === 0) {
1817
+ _runloop._backburner.off('end', this.flushWatchers);
1818
+
1819
+ this.flushWatchers = null;
1820
+ }
1821
+ }
1822
+ /**
1823
+ Clear all observers before destruction
1824
+ @private
1825
+ @method willDestroy
1826
+ */
1827
+
1828
+
1829
+ willDestroy() {
1830
+ this._super(...arguments);
1831
+
1832
+ this.typeWatchers.forEach(watcher => watcher.release());
1833
+ this.recordsWatchers.forEach(watcher => watcher.release());
1834
+ this.releaseMethods.forEach(fn => fn());
1835
+
1836
+ if (this.flushWatchers) {
1837
+ _runloop._backburner.off('end', this.flushWatchers);
1838
+ }
1839
+ }
1840
+ /**
1841
+ Detect whether a class is a model.
1842
+ Test that against the model class
1843
+ of your persistence library.
1844
+ @public
1845
+ @method detect
1846
+ @return boolean Whether the class is a model class or not.
1847
+ */
1848
+
1849
+
1850
+ detect(_klass) {
1851
+ return false;
1852
+ }
1853
+ /**
1854
+ Get the columns for a given model type.
1855
+ @public
1856
+ @method columnsForType
1857
+ @return {Array} An array of columns of the following format:
1858
+ name: {String} The name of the column.
1859
+ desc: {String} Humanized description (what would show in a table column name).
1860
+ */
1861
+
1862
+
1863
+ columnsForType(_klass) {
1864
+ return (0, _array.A)();
1865
+ }
1866
+ /**
1867
+ Adds observers to a model type class.
1868
+ @private
1869
+ @method observeModelType
1870
+ @param {String} modelName The model type name.
1871
+ @param {Function} typesUpdated Called when a type is modified.
1872
+ @return {Function} The function to call to remove observers.
1873
+ */
1874
+
1875
+
1876
+ observeModelType(modelName, typesUpdated) {
1877
+ var klass = this._nameToClass(modelName);
1878
+
1879
+ var records = this.getRecords(klass, modelName);
1880
+
1881
+ var onChange = () => {
1882
+ typesUpdated([this.wrapModelType(klass, modelName)]);
1883
+ };
1884
+
1885
+ var {
1886
+ typeWatchers
1887
+ } = this;
1888
+ var typeWatcher = typeWatchers.get(records);
1889
+
1890
+ if (!typeWatcher) {
1891
+ typeWatcher = new TypeWatcher(records, onChange, () => {
1892
+ typeWatchers.delete(records);
1893
+ this.updateFlushWatchers();
1894
+ });
1895
+ typeWatchers.set(records, typeWatcher);
1896
+ this.updateFlushWatchers();
1897
+ typeWatcher.revalidate();
1898
+ }
1899
+
1900
+ return typeWatcher.release;
1901
+ }
1902
+ /**
1903
+ Wraps a given model type and observes changes to it.
1904
+ @private
1905
+ @method wrapModelType
1906
+ @param {Class} klass A model class.
1907
+ @param {String} modelName Name of the class.
1908
+ @return {Object} The wrapped type has the following format:
1909
+ name: {String} The name of the type.
1910
+ count: {Integer} The number of records available.
1911
+ columns: {Columns} An array of columns to describe the record.
1912
+ object: {Class} The actual Model type class.
1913
+ */
1914
+
1915
+
1916
+ wrapModelType(klass, name) {
1917
+ var records = this.getRecords(klass, name);
1918
+ return {
1919
+ name,
1920
+ count: (0, _object.get)(records, 'length'),
1921
+ columns: this.columnsForType(klass),
1922
+ object: klass
1923
+ };
1924
+ }
1925
+ /**
1926
+ Fetches all models defined in the application.
1927
+ @private
1928
+ @method getModelTypes
1929
+ @return {Array} Array of model types.
1930
+ */
1931
+
1932
+
1933
+ getModelTypes() {
1934
+ var containerDebugAdapter = this.containerDebugAdapter;
1935
+ var stringTypes = containerDebugAdapter.canCatalogEntriesByType('model') ? containerDebugAdapter.catalogEntriesByType('model') : this._getObjectsOnNamespaces(); // New adapters return strings instead of classes.
1936
+
1937
+ var klassTypes = (0, _array.A)(stringTypes).map(name => {
1938
+ return {
1939
+ klass: this._nameToClass(name),
1940
+ name
1941
+ };
1942
+ });
1943
+ return (0, _array.A)(klassTypes).filter(type => this.detect(type.klass));
1944
+ }
1945
+ /**
1946
+ Loops over all namespaces and all objects
1947
+ attached to them.
1948
+ @private
1949
+ @method _getObjectsOnNamespaces
1950
+ @return {Array} Array of model type strings.
1951
+ */
1952
+
1953
+
1954
+ _getObjectsOnNamespaces() {
1955
+ var namespaces = (0, _array.A)(_namespace.default.NAMESPACES);
1956
+ var types = (0, _array.A)();
1957
+ namespaces.forEach(namespace => {
1958
+ for (var key in namespace) {
1959
+ if (!Object.prototype.hasOwnProperty.call(namespace, key)) {
1960
+ continue;
1961
+ } // Even though we will filter again in `getModelTypes`,
1962
+ // we should not call `lookupFactory` on non-models
1963
+
1964
+
1965
+ if (!this.detect(namespace[key])) {
1966
+ continue;
1967
+ }
1968
+
1969
+ var name = (0, _string.dasherize)(key);
1970
+ types.push(name);
1971
+ }
1972
+ });
1973
+ return types;
1974
+ }
1975
+ /**
1976
+ Fetches all loaded records for a given type.
1977
+ @public
1978
+ @method getRecords
1979
+ @return {Array} An array of records.
1980
+ This array will be observed for changes,
1981
+ so it should update when new records are added/removed.
1982
+ */
1983
+
1984
+
1985
+ getRecords(_klass, _name) {
1986
+ return (0, _array.A)();
1987
+ }
1988
+ /**
1989
+ Wraps a record and observers changes to it.
1990
+ @private
1991
+ @method wrapRecord
1992
+ @param {Object} record The record instance.
1993
+ @return {Object} The wrapped record. Format:
1994
+ columnValues: {Array}
1995
+ searchKeywords: {Array}
1996
+ */
1997
+
1998
+
1999
+ wrapRecord(record) {
2000
+ return {
2001
+ object: record,
2002
+ columnValues: this.getRecordColumnValues(record),
2003
+ searchKeywords: this.getRecordKeywords(record),
2004
+ filterValues: this.getRecordFilterValues(record),
2005
+ color: this.getRecordColor(record)
2006
+ };
2007
+ }
2008
+ /**
2009
+ Gets the values for each column.
2010
+ @public
2011
+ @method getRecordColumnValues
2012
+ @return {Object} Keys should match column names defined
2013
+ by the model type.
2014
+ */
2015
+
2016
+
2017
+ getRecordColumnValues(_record) {
2018
+ return {};
2019
+ }
2020
+ /**
2021
+ Returns keywords to match when searching records.
2022
+ @public
2023
+ @method getRecordKeywords
2024
+ @return {Array} Relevant keywords for search.
2025
+ */
2026
+
2027
+
2028
+ getRecordKeywords(_record) {
2029
+ return (0, _array.A)();
2030
+ }
2031
+ /**
2032
+ Returns the values of filters defined by `getFilters`.
2033
+ @public
2034
+ @method getRecordFilterValues
2035
+ @param {Object} record The record instance.
2036
+ @return {Object} The filter values.
2037
+ */
2038
+
2039
+
2040
+ getRecordFilterValues(_record) {
2041
+ return {};
2042
+ }
2043
+ /**
2044
+ Each record can have a color that represents its state.
2045
+ @public
2046
+ @method getRecordColor
2047
+ @param {Object} record The record instance
2048
+ @return {String} The records color.
2049
+ Possible options: black, red, blue, green.
2050
+ */
2051
+
2052
+
2053
+ getRecordColor(_record) {
2054
+ return null;
2055
+ }
2056
+
2057
+ }
2058
+
2059
+ _exports.default = DataAdapter;
1403
2060
  });
1404
2061
  define("@ember/debug/index", ["exports", "@ember/-internals/browser-environment", "@ember/error", "@ember/debug/lib/deprecate", "@ember/debug/lib/testing", "@ember/debug/lib/warn", "@ember/-internals/utils", "@ember/debug/lib/capture-render-tree"], function (_exports, _browserEnvironment, _error, _deprecate2, _testing, _warn2, _utils, _captureRenderTree) {
1405
2062
  "use strict";
@@ -18737,7 +19394,7 @@ define("ember/version", ["exports"], function (_exports) {
18737
19394
  value: true
18738
19395
  });
18739
19396
  _exports.default = void 0;
18740
- var _default = "4.8.0-alpha.5";
19397
+ var _default = "4.8.0-beta.2";
18741
19398
  _exports.default = _default;
18742
19399
  });
18743
19400
  define("simple-html-tokenizer", ["exports"], function (_exports) {