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
@@ -0,0 +1,175 @@
1
+ declare module '@ember/runloop' {
2
+ import {
3
+ EmberMethod,
4
+ EmberMethodParams,
5
+ AnyFn,
6
+ EmberMethodReturn,
7
+ } from 'ember/-private/type-utils';
8
+ import { EmberRunQueues } from '@ember/runloop/-private/types';
9
+ import { EmberRunTimer } from '@ember/runloop/types';
10
+ import '@ember/runloop/-private/backburner';
11
+
12
+ /**
13
+ * Runs the passed target and method inside of a RunLoop, ensuring any
14
+ * deferred actions including bindings and views updates are flushed at the
15
+ * end.
16
+ */
17
+ export function run<M extends AnyFn>(method: M): ReturnType<M>;
18
+ export function run<T, M extends EmberMethod<T>>(
19
+ target: T,
20
+ method: M,
21
+ ...args: EmberMethodParams<T, M>
22
+ ): EmberMethodReturn<T, M>;
23
+
24
+ /**
25
+ * If no run-loop is present, it creates a new one. If a run loop is
26
+ * present it will queue itself to run on the existing run-loops action
27
+ * queue.
28
+ */
29
+ export function join<M extends AnyFn>(
30
+ method: M,
31
+ ...args: Parameters<M>
32
+ ): ReturnType<M> | undefined;
33
+ export function join<T, M extends EmberMethod<T>>(
34
+ target: T,
35
+ method: M,
36
+ ...args: EmberMethodParams<T, M>
37
+ ): EmberMethodReturn<T, M> | undefined;
38
+
39
+ /**
40
+ * Allows you to specify which context to call the specified function in while
41
+ * adding the execution of that function to the Ember run loop. This ability
42
+ * makes this method a great way to asynchronously integrate third-party libraries
43
+ * into your Ember application.
44
+ */
45
+ // NOTE: it would be nice to make this curry arguments, which is how it actually
46
+ // works, but that is a *lot* of type shenanigans, and also diverges from the
47
+ // `Function.prototype.bind` implementation. We should track the latter, despite
48
+ // the loss of safety, because it makes interop cleaner.
49
+ export function bind<T, M extends EmberMethod<T>>(
50
+ target: T,
51
+ method: M,
52
+ ...args: any[]
53
+ ): (...args: any[]) => EmberMethodReturn<T, M>;
54
+
55
+ /**
56
+ * Begins a new RunLoop. Any deferred actions invoked after the begin will
57
+ * be buffered until you invoke a matching call to `run.end()`. This is
58
+ * a lower-level way to use a RunLoop instead of using `run()`.
59
+ */
60
+ export function begin(): void;
61
+
62
+ /**
63
+ * Ends a RunLoop. This must be called sometime after you call
64
+ * `run.begin()` to flush any deferred actions. This is a lower-level way
65
+ * to use a RunLoop instead of using `run()`.
66
+ */
67
+ export function end(): void;
68
+
69
+ /**
70
+ * Adds the passed target/method and any optional arguments to the named
71
+ * queue to be executed at the end of the RunLoop. If you have not already
72
+ * started a RunLoop when calling this method one will be started for you
73
+ * automatically.
74
+ */
75
+ export function schedule<T, M extends EmberMethod<T>>(
76
+ queue: EmberRunQueues,
77
+ target: T,
78
+ method: M,
79
+ ...args: EmberMethodParams<T, M>
80
+ ): EmberRunTimer;
81
+ export function schedule<M extends AnyFn>(
82
+ queue: EmberRunQueues,
83
+ method: M,
84
+ ...args: Parameters<M>
85
+ ): EmberRunTimer;
86
+
87
+ /**
88
+ * Invokes the passed target/method and optional arguments after a specified
89
+ * period of time. The last parameter of this method must always be a number
90
+ * of milliseconds.
91
+ */
92
+ export function later(method: AnyFn, wait: number): EmberRunTimer;
93
+ export function later<T, M extends EmberMethod<T>>(
94
+ ...args: [target: T, method: M, ...args: EmberMethodParams<T, M>, wait: number]
95
+ ): EmberRunTimer;
96
+
97
+ /**
98
+ * Schedule a function to run one time during the current RunLoop. This is equivalent
99
+ * to calling `scheduleOnce` with the "actions" queue.
100
+ */
101
+ export function once<T, M extends EmberMethod<T>>(
102
+ target: T,
103
+ method: M,
104
+ ...args: EmberMethodParams<T, M>
105
+ ): EmberRunTimer;
106
+
107
+ export function once<T, M extends keyof T>(
108
+ target: T,
109
+ method: M,
110
+ ...args: EmberMethodParams<T, M>
111
+ ): EmberRunTimer;
112
+
113
+ /**
114
+ * Schedules a function to run one time in a given queue of the current RunLoop.
115
+ * Calling this method with the same queue/target/method combination will have
116
+ * no effect (past the initial call).
117
+ */
118
+ export function scheduleOnce<T, M extends EmberMethod<T>>(
119
+ queue: EmberRunQueues,
120
+ target: T,
121
+ method: M,
122
+ ...args: EmberMethodParams<T, M>
123
+ ): EmberRunTimer;
124
+
125
+ /**
126
+ * Schedules an item to run from within a separate run loop, after
127
+ * control has been returned to the system. This is equivalent to calling
128
+ * `run.later` with a wait time of 1ms.
129
+ */
130
+ export function next<T, M extends EmberMethod<T>>(
131
+ target: T,
132
+ method: M,
133
+ ...args: EmberMethodParams<T, M>
134
+ ): EmberRunTimer;
135
+ export function next<M extends AnyFn>(method: M, ...args: Parameters<M>): EmberRunTimer;
136
+
137
+ /**
138
+ * Cancels a scheduled item. Must be a value returned by `run.later()`,
139
+ * `run.once()`, `run.scheduleOnce()`, `run.next()`, `run.debounce()`, or
140
+ * `run.throttle()`.
141
+ */
142
+ export function cancel(timer?: EmberRunTimer): boolean;
143
+
144
+ /**
145
+ * Delay calling the target method until the debounce period has elapsed
146
+ * with no additional debounce calls. If `debounce` is called again before
147
+ * the specified time has elapsed, the timer is reset and the entire period
148
+ * must pass again before the target method is called.
149
+ */
150
+ export function debounce(method: AnyFn, wait: number, immediate?: boolean): EmberRunTimer;
151
+ export function debounce<Target, M extends EmberMethod<Target>>(
152
+ ...args: [
153
+ target: Target,
154
+ method: M,
155
+ ...args: EmberMethodParams<Target, M>,
156
+ wait: number,
157
+ immediate?: boolean
158
+ ]
159
+ ): EmberRunTimer;
160
+
161
+ /**
162
+ * Ensure that the target method is never called more frequently than
163
+ * the specified spacing period. The target method is called immediately.
164
+ */
165
+ export function throttle(method: AnyFn, spacing: number, immediate?: boolean): EmberRunTimer;
166
+ export function throttle<T, M extends EmberMethod<T>>(
167
+ ...args: [
168
+ target: T,
169
+ method: M,
170
+ ...methodArgs: EmberMethodParams<T, M>,
171
+ spacing: number,
172
+ immediate?: boolean
173
+ ]
174
+ ): EmberRunTimer;
175
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../tsconfig.json"
3
+ }
@@ -0,0 +1,5 @@
1
+ declare module '@ember/runloop/types' {
2
+ export interface EmberRunTimer {
3
+ __ember_run_timer_brand__: boolean;
4
+ }
5
+ }
@@ -0,0 +1,25 @@
1
+ declare module '@ember/service' {
2
+ import EmberObject from '@ember/object';
3
+ import type { BasicComputedProperty } from '@ember/object/computed';
4
+
5
+ export default class Service extends EmberObject {}
6
+ /**
7
+ * Creates a property that lazily looks up a service in the container. There
8
+ * are no restrictions as to what objects a service can be injected into.
9
+ */
10
+ export function inject(): Service; // @inject() foo, foo: inject()
11
+ export function inject(target: object, propertyKey: string | symbol): void; // @inject foo
12
+ export function inject<K extends keyof Registry>(name: K): Registry[K] & BasicComputedProperty; // @inject('store') foo @inject() foo
13
+
14
+ /**
15
+ * Creates a property that lazily looks up a service in the container. There
16
+ * are no restrictions as to what objects a service can be injected into.
17
+ */
18
+ export function service(): Service; // @service() foo, foo: service()
19
+ export function service(target: object, propertyKey: string | symbol): void; // @service foo
20
+ export function service<K extends keyof Registry>(name: K): Registry[K] & BasicComputedProperty; // @service('store') foo @service() foo
21
+
22
+ // A type registry for Ember `Service`s. Meant to be declaration-merged so
23
+ // string lookups resolve to the correct type.
24
+ interface Registry {}
25
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../tsconfig.json"
3
+ }
@@ -0,0 +1,9 @@
1
+ declare module '@ember/string' {
2
+ export function camelize(str: string): string;
3
+ export function capitalize(str: string): string;
4
+ export function classify(str: string): string;
5
+ export function dasherize(str: string): string;
6
+ export function decamelize(str: string): string;
7
+ export function underscore(str: string): string;
8
+ export function w(str: string): string[];
9
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../tsconfig.json"
3
+ }
@@ -0,0 +1,7 @@
1
+ declare module '@ember/template/-private/handlebars' {
2
+ export class SafeString {
3
+ constructor(str: string);
4
+ toString(): string;
5
+ toHTML(): string;
6
+ }
7
+ }
@@ -0,0 +1,5 @@
1
+ declare module '@ember/template' {
2
+ import { SafeString } from '@ember/template/-private/handlebars';
3
+ export function htmlSafe(str: string): SafeString;
4
+ export function isHTMLSafe(str: unknown): str is SafeString;
5
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../tsconfig.json"
3
+ }
@@ -0,0 +1,22 @@
1
+ declare module '@ember/test/adapter' {
2
+ /**
3
+ * The primary purpose of this class is to create hooks that can be implemented
4
+ * by an adapter for various test frameworks.
5
+ */
6
+ export default class Adapter {
7
+ /**
8
+ * This callback will be called whenever an async operation is about to start.
9
+ */
10
+ asyncStart(): unknown;
11
+ /**
12
+ * This callback will be called whenever an async operation has completed.
13
+ */
14
+ asyncEnd(): unknown;
15
+ /**
16
+ * Override this method with your testing framework's false assertion.
17
+ * This function is called whenever an exception occurs causing the testing
18
+ * promise to fail.
19
+ */
20
+ exception(error: string): unknown;
21
+ }
22
+ }
@@ -0,0 +1,49 @@
1
+ declare module '@ember/test' {
2
+ import Application from '@ember/application';
3
+
4
+ /**
5
+ * `registerHelper` is used to register a test helper that will be injected
6
+ * when `App.injectTestHelpers` is called.
7
+ */
8
+ export function registerHelper(
9
+ name: string,
10
+ helperMethod: (app: Application, ...args: any[]) => unknown,
11
+ options?: object
12
+ ): unknown;
13
+ /**
14
+ * `registerAsyncHelper` is used to register an async test helper that will be injected
15
+ * when `App.injectTestHelpers` is called.
16
+ */
17
+ export function registerAsyncHelper(
18
+ name: string,
19
+ helperMethod: (app: Application, ...args: any[]) => unknown
20
+ ): void;
21
+
22
+ /**
23
+ * Remove a previously added helper method.
24
+ */
25
+ export function unregisterHelper(name: string): void;
26
+
27
+ /**
28
+ * This allows ember-testing to play nicely with other asynchronous
29
+ * events, such as an application that is waiting for a CSS3
30
+ * transition or an IndexDB transaction. The waiter runs periodically
31
+ * after each async helper (i.e. `click`, `andThen`, `visit`, etc) has executed,
32
+ * until the returning result is truthy. After the waiters finish, the next async helper
33
+ * is executed and the process repeats.
34
+ */
35
+ export function registerWaiter(callback: () => boolean): unknown;
36
+ export function registerWaiter<Context>(
37
+ context: Context,
38
+ callback: (this: Context) => boolean
39
+ ): unknown;
40
+ /**
41
+ * `unregisterWaiter` is used to unregister a callback that was
42
+ * registered with `registerWaiter`.
43
+ */
44
+ export function unregisterWaiter(callback: () => boolean): unknown;
45
+ export function unregisterWaiter<Context>(
46
+ context: Context,
47
+ callback: (this: Context) => boolean
48
+ ): unknown;
49
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../tsconfig.json"
3
+ }
@@ -0,0 +1,39 @@
1
+ declare module '@ember/utils/-private/types' {
2
+ import type { AnyFn } from 'ember/-private/type-utils';
3
+ import NativeArray from '@ember/array/-private/native-array';
4
+
5
+ // prettier-ignore
6
+ type _KeysOfType<Key extends keyof TypeLookup, Type> =
7
+ // Checks non-`const` versions, and correctly resolves those types
8
+ // constructed via e.g. the `Number` constructor.
9
+ TypeLookup[Key] extends Type ? Key :
10
+ // Checks `const` versions, e.g. handling strict function types when also
11
+ // using a const-valued function like `const x = () => 4 as const`.
12
+ Type extends TypeLookup[Key] ? Key : never;
13
+
14
+ // prettier-ignore
15
+ type KeysOfType<Type> =
16
+ { [Key in keyof TypeLookup]: _KeysOfType<Key, Type> }[keyof TypeLookup];
17
+
18
+ // Since `TypeLookup` resolves all *other* types, including `null` and
19
+ // `undefined`, we can assume that if the type does *not* resolve from
20
+ // `KeysOfType`, it is safe to treat it as 'object'.
21
+ export type TypeOf<T> = KeysOfType<T> extends never ? 'object' : KeysOfType<T>;
22
+
23
+ export interface TypeLookup {
24
+ string: string;
25
+ number: number;
26
+ boolean: boolean;
27
+ regexp: RegExp;
28
+ function: AnyFn;
29
+ array: Array<unknown> | NativeArray<unknown>;
30
+ error: Error;
31
+ filelist: FileList;
32
+ date: Date;
33
+ null: null;
34
+ undefined: undefined;
35
+ }
36
+
37
+ // Don't export anything but the required type util
38
+ export {};
39
+ }
@@ -0,0 +1,42 @@
1
+ declare module '@ember/utils' {
2
+ import { TypeOf } from '@ember/utils/-private/types';
3
+
4
+ /**
5
+ * Compares two javascript values and returns:
6
+ */
7
+ export function compare(v: unknown, w: unknown): number;
8
+
9
+ /**
10
+ * A value is blank if it is empty or a whitespace string.
11
+ */
12
+ export function isBlank(obj?: unknown): boolean;
13
+
14
+ /**
15
+ * Verifies that a value is `null` or an empty string, empty array,
16
+ * or empty function.
17
+ */
18
+ export function isEmpty(obj?: unknown): boolean;
19
+
20
+ /**
21
+ * Compares two objects, returning true if they are equal.
22
+ */
23
+ export function isEqual(a: unknown, b: unknown): boolean;
24
+
25
+ /**
26
+ * Returns true if the passed value is null or undefined. This avoids errors
27
+ * from JSLint complaining about use of ==, which can be technically
28
+ * confusing.
29
+ */
30
+ export function isNone(obj?: unknown): obj is null | undefined;
31
+
32
+ /**
33
+ * A value is present if it not `isBlank`.
34
+ */
35
+ export function isPresent(obj?: unknown): boolean;
36
+
37
+ /**
38
+ * Returns a consistent type for the passed object.
39
+ */
40
+ export function typeOf<T>(value: T): TypeOf<T>;
41
+ export function typeOf(): 'undefined';
42
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../tsconfig.json"
3
+ }
@@ -0,0 +1,54 @@
1
+ declare module 'ember/-private/type-utils' {
2
+ // These are utility types used throughout the Ember type definitions. They
3
+ // should *never* be used in end user code.
4
+
5
+ /** A safe-ish type representing any function. */
6
+ export type AnyFn = (...args: any[]) => unknown;
7
+
8
+ export type AnyMethod<Target> = (this: Target, ...args: any[]) => unknown;
9
+
10
+ export type MethodsOf<O> = {
11
+ [K in keyof O]: O[K] extends AnyFn ? O[K] : never;
12
+ };
13
+
14
+ // Not just `keyof MethodsOf<O>` because that doesn't correctly exclude all the
15
+ // `never` fields.
16
+ export type MethodNamesOf<O> = {
17
+ [K in keyof O]: O[K] extends AnyFn ? K : never;
18
+ }[keyof O];
19
+
20
+ export type MethodParams<T, M extends MethodNamesOf<T>> = Parameters<MethodsOf<T>[M]>;
21
+
22
+ export type MethodReturns<T, M extends MethodNamesOf<T>> = ReturnType<MethodsOf<T>[M]>;
23
+
24
+ // prettier-ignore
25
+ /** Get the return value of a method string name or a function. */
26
+ export type EmberMethodParams<T, M extends EmberMethod<T>> =
27
+ M extends AnyMethod<T> ? Parameters<M> :
28
+ M extends keyof T ? T[M] extends AnyMethod<T> ? Parameters<MethodsOf<T>[M]> : never :
29
+ never;
30
+
31
+ // prettier-ignore
32
+ /** Get the return value of a method string name or a function. */
33
+ export type EmberMethodReturn<T, M extends EmberMethod<T>> =
34
+ M extends AnyMethod<T> ? ReturnType<M> :
35
+ M extends keyof T ? T[M] extends AnyMethod<T> ? ReturnType<MethodsOf<T>[M]> : never :
36
+ never;
37
+
38
+ /**
39
+ * A type utility for Ember's common name-of-object-on-target-or-function
40
+ * pattern for e.g. event handlers.
41
+ */
42
+ export type EmberMethod<Target> = AnyMethod<Target> | keyof Target;
43
+
44
+ // A way of representing non-user-constructible types. You can conveniently use
45
+ // this by doing `interface Type extends Data<'some-type-name'> { ... }` for
46
+ // simple types, and/or you can type-parameterize it as makes sense for your use
47
+ // case (see e.g. `@ember/component/helper`'s use with functional helpers).
48
+ const Data: unique symbol;
49
+ export class Opaque<Data> {
50
+ private declare [Data]: Data;
51
+ }
52
+
53
+ export {};
54
+ }