ember-source 5.0.0 → 5.1.0-alpha.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 (176) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/ember-template-compiler.js +19 -35
  3. package/dist/ember-template-compiler.map +1 -1
  4. package/dist/ember-testing.js +8 -31
  5. package/dist/ember-testing.map +1 -1
  6. package/dist/ember.debug.js +798 -436
  7. package/dist/ember.debug.map +1 -1
  8. package/dist/header/license.js +1 -1
  9. package/dist/packages/@ember/-internals/glimmer/index.js +44 -89
  10. package/dist/packages/@ember/-internals/metal/index.js +7 -66
  11. package/dist/packages/@ember/-internals/utility-types/index.js +1 -1
  12. package/dist/packages/@ember/array/proxy.js +0 -1
  13. package/dist/packages/@ember/component/template-only.js +15 -27
  14. package/dist/packages/@ember/debug/index.js +6 -30
  15. package/dist/packages/@ember/debug/lib/warn.js +1 -0
  16. package/dist/packages/@ember/helper/index.js +139 -3
  17. package/dist/packages/@ember/modifier/index.js +11 -3
  18. package/dist/packages/@ember/object/core.js +37 -0
  19. package/dist/packages/@ember/object/mixin.js +1 -1
  20. package/dist/packages/@ember/object/proxy.js +1 -0
  21. package/dist/packages/@ember/routing/lib/utils.js +0 -1
  22. package/dist/packages/@ember/routing/route.js +8 -0
  23. package/dist/packages/@ember/routing/router-service.js +0 -1
  24. package/dist/packages/@ember/runloop/-private/backburner.js +10 -0
  25. package/dist/packages/@ember/runloop/index.js +6 -2
  26. package/dist/packages/@ember/test/index.js +5 -3
  27. package/dist/packages/ember/index.js +229 -220
  28. package/dist/packages/ember/version.js +1 -1
  29. package/dist/packages/ember-testing/lib/test/waiters.js +4 -1
  30. package/docs/data.json +478 -327
  31. package/package.json +26 -23
  32. package/types/publish.mjs +147 -354
  33. package/types/stable/@ember/-internals/glimmer/index.d.ts +6 -1
  34. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +256 -132
  35. package/types/stable/@ember/-internals/glimmer/lib/components/input.d.ts +5 -2
  36. package/types/stable/@ember/-internals/glimmer/lib/components/link-to.d.ts +5 -2
  37. package/types/stable/@ember/-internals/glimmer/lib/components/textarea.d.ts +8 -2
  38. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +66 -56
  39. package/types/stable/@ember/-internals/glimmer/lib/templates/empty.d.ts +5 -0
  40. package/types/stable/@ember/-internals/glimmer/lib/templates/input.d.ts +5 -0
  41. package/types/stable/@ember/-internals/glimmer/lib/templates/link-to.d.ts +5 -0
  42. package/types/stable/@ember/-internals/glimmer/lib/templates/outlet.d.ts +5 -0
  43. package/types/stable/@ember/-internals/glimmer/lib/templates/root.d.ts +5 -0
  44. package/types/stable/@ember/-internals/glimmer/lib/templates/textarea.d.ts +5 -0
  45. package/types/stable/@ember/-internals/metal/lib/computed.d.ts +2 -1
  46. package/types/stable/@ember/-internals/metal/lib/computed_cache.d.ts +1 -0
  47. package/types/stable/@ember/-internals/metal/lib/get_properties.d.ts +4 -2
  48. package/types/stable/@ember/-internals/metal/lib/set_properties.d.ts +3 -5
  49. package/types/stable/@ember/-internals/utility-types/index.d.ts +5 -0
  50. package/types/stable/@ember/-internals/views/lib/component_lookup.d.ts +8 -1
  51. package/types/stable/@ember/-internals/views/lib/system/action_manager.d.ts +3 -4
  52. package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +4 -6
  53. package/types/stable/@ember/application/instance.d.ts +1 -1
  54. package/types/stable/@ember/array/index.d.ts +1 -1
  55. package/types/stable/@ember/array/proxy.d.ts +11 -13
  56. package/types/stable/@ember/component/helper.d.ts +6 -1
  57. package/types/stable/@ember/component/template-only.d.ts +36 -1
  58. package/types/stable/@ember/controller/index.d.ts +6 -5
  59. package/types/stable/@ember/debug/data-adapter.d.ts +10 -3
  60. package/types/stable/@ember/debug/index.d.ts +4 -1
  61. package/types/stable/@ember/debug/lib/warn.d.ts +6 -1
  62. package/types/stable/@ember/engine/index.d.ts +2 -1
  63. package/types/stable/@ember/engine/instance.d.ts +2 -1
  64. package/types/stable/@ember/helper/index.d.ts +141 -3
  65. package/types/stable/@ember/modifier/index.d.ts +11 -2
  66. package/types/stable/@ember/object/core.d.ts +14 -9
  67. package/types/stable/@ember/object/index.d.ts +3 -2
  68. package/types/stable/@ember/object/lib/computed/reduce_computed_macros.d.ts +1 -1
  69. package/types/stable/@ember/object/mixin.d.ts +2 -2
  70. package/types/stable/@ember/object/observable.d.ts +21 -1
  71. package/types/stable/@ember/object/proxy.d.ts +26 -2
  72. package/types/stable/@ember/routing/hash-location.d.ts +0 -6
  73. package/types/stable/@ember/routing/history-location.d.ts +0 -6
  74. package/types/stable/@ember/routing/lib/controller_for.d.ts +2 -7
  75. package/types/stable/@ember/routing/lib/router_state.d.ts +10 -6
  76. package/types/stable/@ember/routing/lib/routing-service.d.ts +3 -3
  77. package/types/stable/@ember/routing/lib/utils.d.ts +14 -15
  78. package/types/stable/@ember/routing/location-ext.d.ts +18 -0
  79. package/types/stable/@ember/routing/location.d.ts +0 -6
  80. package/types/stable/@ember/routing/none-location.d.ts +0 -6
  81. package/types/stable/@ember/routing/owner-ext.d.ts +11 -0
  82. package/types/stable/@ember/routing/route.d.ts +39 -24
  83. package/types/stable/@ember/routing/router-service.d.ts +18 -15
  84. package/types/stable/@ember/routing/router.d.ts +42 -44
  85. package/types/stable/@ember/routing/service-ext.d.ts +14 -0
  86. package/types/stable/@ember/runloop/-private/backburner.d.ts +7 -0
  87. package/types/stable/@ember/runloop/index.d.ts +12 -4
  88. package/types/stable/@ember/service/index.d.ts +20 -7
  89. package/types/stable/@ember/service/owner-ext.d.ts +11 -0
  90. package/types/stable/@ember/template-compilation/index.d.ts +16 -1
  91. package/types/stable/@ember/test/index.d.ts +6 -6
  92. package/types/stable/@ember/utils/lib/compare.d.ts +1 -1
  93. package/types/stable/ember/index.d.ts +320 -246
  94. package/types/stable/ember/version.d.ts +4 -0
  95. package/types/stable/ember-template-compiler/index.d.ts +1 -8
  96. package/types/stable/ember-template-compiler/lib/types.d.ts +20 -0
  97. package/types/stable/ember-testing/lib/adapters/adapter.d.ts +37 -1
  98. package/types/stable/ember-testing/lib/adapters/qunit.d.ts +18 -3
  99. package/types/stable/ember-testing/lib/test/helpers.d.ts +5 -1
  100. package/types/stable/ember-testing/lib/test/promise.d.ts +1 -1
  101. package/types/stable/index.d.ts +298 -4
  102. package/types/stable/loader/lib/index.d.ts +4 -0
  103. package/types/stable/require.d.ts +4 -0
  104. package/types/preview/@ember/application/-private/event-dispatcher.d.ts +0 -18
  105. package/types/preview/@ember/application/-private/registry.d.ts +0 -15
  106. package/types/preview/@ember/application/index.d.ts +0 -136
  107. package/types/preview/@ember/application/instance.d.ts +0 -9
  108. package/types/preview/@ember/application/types.d.ts +0 -29
  109. package/types/preview/@ember/array/-private/enumerable.d.ts +0 -13
  110. package/types/preview/@ember/array/-private/mutable-enumerable.d.ts +0 -13
  111. package/types/preview/@ember/array/-private/native-array.d.ts +0 -181
  112. package/types/preview/@ember/array/index.d.ts +0 -251
  113. package/types/preview/@ember/array/mutable.d.ts +0 -94
  114. package/types/preview/@ember/array/proxy.d.ts +0 -29
  115. package/types/preview/@ember/component/-private/class-names-support.d.ts +0 -27
  116. package/types/preview/@ember/component/-private/core-view.d.ts +0 -14
  117. package/types/preview/@ember/component/-private/glimmer-interfaces.d.ts +0 -49
  118. package/types/preview/@ember/component/-private/signature-utils.d.ts +0 -107
  119. package/types/preview/@ember/component/-private/view-mixin.d.ts +0 -59
  120. package/types/preview/@ember/component/helper.d.ts +0 -122
  121. package/types/preview/@ember/component/index.d.ts +0 -164
  122. package/types/preview/@ember/component/template-only.d.ts +0 -47
  123. package/types/preview/@ember/controller/index.d.ts +0 -47
  124. package/types/preview/@ember/debug/container-debug-adapter.d.ts +0 -14
  125. package/types/preview/@ember/debug/data-adapter.d.ts +0 -64
  126. package/types/preview/@ember/debug/index.d.ts +0 -98
  127. package/types/preview/@ember/destroyable/index.d.ts +0 -23
  128. package/types/preview/@ember/engine/-private/container-proxy-mixin.d.ts +0 -11
  129. package/types/preview/@ember/engine/-private/registry-proxy-mixin.d.ts +0 -12
  130. package/types/preview/@ember/engine/-private/types/initializer.d.ts +0 -8
  131. package/types/preview/@ember/engine/index.d.ts +0 -45
  132. package/types/preview/@ember/engine/instance.d.ts +0 -25
  133. package/types/preview/@ember/helper/index.d.ts +0 -49
  134. package/types/preview/@ember/modifier/index.d.ts +0 -33
  135. package/types/preview/@ember/object/-private/action-handler.d.ts +0 -31
  136. package/types/preview/@ember/object/-private/types.d.ts +0 -63
  137. package/types/preview/@ember/object/compat.d.ts +0 -9
  138. package/types/preview/@ember/object/computed.d.ts +0 -263
  139. package/types/preview/@ember/object/core.d.ts +0 -89
  140. package/types/preview/@ember/object/evented.d.ts +0 -45
  141. package/types/preview/@ember/object/events.d.ts +0 -47
  142. package/types/preview/@ember/object/index.d.ts +0 -126
  143. package/types/preview/@ember/object/internals.d.ts +0 -17
  144. package/types/preview/@ember/object/mixin.d.ts +0 -19
  145. package/types/preview/@ember/object/observable.d.ts +0 -89
  146. package/types/preview/@ember/object/observers.d.ts +0 -34
  147. package/types/preview/@ember/object/promise-proxy-mixin.d.ts +0 -37
  148. package/types/preview/@ember/object/proxy.d.ts +0 -27
  149. package/types/preview/@ember/routing/-private/router-dsl.d.ts +0 -20
  150. package/types/preview/@ember/routing/hash-location.d.ts +0 -26
  151. package/types/preview/@ember/routing/history-location.d.ts +0 -25
  152. package/types/preview/@ember/routing/index.d.ts +0 -17
  153. package/types/preview/@ember/routing/location.d.ts +0 -104
  154. package/types/preview/@ember/routing/none-location.d.ts +0 -27
  155. package/types/preview/@ember/routing/route-info.d.ts +0 -73
  156. package/types/preview/@ember/routing/route.d.ts +0 -532
  157. package/types/preview/@ember/routing/router-service.d.ts +0 -359
  158. package/types/preview/@ember/routing/router.d.ts +0 -41
  159. package/types/preview/@ember/routing/transition.d.ts +0 -126
  160. package/types/preview/@ember/routing/types.d.ts +0 -15
  161. package/types/preview/@ember/runloop/-private/backburner.d.ts +0 -43
  162. package/types/preview/@ember/runloop/-private/types.d.ts +0 -9
  163. package/types/preview/@ember/runloop/index.d.ts +0 -175
  164. package/types/preview/@ember/runloop/types.d.ts +0 -5
  165. package/types/preview/@ember/service/index.d.ts +0 -32
  166. package/types/preview/@ember/template/-private/handlebars.d.ts +0 -7
  167. package/types/preview/@ember/template/index.d.ts +0 -6
  168. package/types/preview/@ember/template-compilation/index.d.ts +0 -28
  169. package/types/preview/@ember/test/adapter.d.ts +0 -22
  170. package/types/preview/@ember/test/index.d.ts +0 -49
  171. package/types/preview/@ember/utils/-private/types.d.ts +0 -39
  172. package/types/preview/@ember/utils/index.d.ts +0 -42
  173. package/types/preview/ember/-private/type-utils.d.ts +0 -57
  174. package/types/preview/ember/index.d.ts +0 -347
  175. package/types/preview/index.d.ts +0 -121
  176. /package/dist/dependencies/{backburner.js → backburner.js.js} +0 -0
@@ -29,14 +29,11 @@ declare module '@ember/routing/router' {
29
29
  /**
30
30
  @module @ember/routing/router
31
31
  */
32
- function defaultDidTransition<R extends Route>(
33
- this: EmberRouter<R>,
34
- infos: InternalRouteInfo<R>[]
35
- ): void;
36
- function defaultWillTransition<R extends Route>(
37
- this: EmberRouter<R>,
38
- oldInfos: InternalRouteInfo<R>[],
39
- newInfos: InternalRouteInfo<R>[]
32
+ function defaultDidTransition(this: EmberRouter, infos: InternalRouteInfo<Route>[]): void;
33
+ function defaultWillTransition(
34
+ this: EmberRouter,
35
+ oldInfos: InternalRouteInfo<Route>[],
36
+ newInfos: InternalRouteInfo<Route>[]
40
37
  ): void;
41
38
  export interface QueryParam {
42
39
  prop: string;
@@ -54,7 +51,8 @@ declare module '@ember/routing/router' {
54
51
  controllerName: string;
55
52
  }
56
53
  const EmberRouter_base: Readonly<typeof EmberObject> &
57
- (new (owner?: Owner | undefined) => EmberObject);
54
+ (new (owner?: Owner | undefined) => EmberObject) &
55
+ import('@ember/object/mixin').default;
58
56
  /**
59
57
  The `EmberRouter` class manages the application state and URLs. Refer to
60
58
  the [routing guide](https://guides.emberjs.com/release/routing/) for documentation.
@@ -64,7 +62,7 @@ declare module '@ember/routing/router' {
64
62
  @uses Evented
65
63
  @public
66
64
  */
67
- class EmberRouter<R extends Route = Route> extends EmberRouter_base implements Evented {
65
+ class EmberRouter extends EmberRouter_base implements Evented {
68
66
  /**
69
67
  Represents the URL of the root of the application, often '/'. This prefix is
70
68
  assumed on all routes defined on this router.
@@ -93,7 +91,7 @@ declare module '@ember/routing/router' {
93
91
  @public
94
92
  */
95
93
  location: (keyof LocationRegistry & string) | EmberLocation;
96
- _routerMicrolib: Router<R>;
94
+ _routerMicrolib: Router<Route>;
97
95
  _didSetupRouter: boolean;
98
96
  _initialTransitionStarted: boolean;
99
97
  currentURL: string | null;
@@ -114,7 +112,7 @@ declare module '@ember/routing/router' {
114
112
  _handledErrors: Set<unknown>;
115
113
  _engineInstances: Record<string, Record<string, EngineInstance>>;
116
114
  _engineInfoByRoute: any;
117
- _routerService: RouterService<R>;
115
+ _routerService: RouterService;
118
116
  _slowTransitionTimer: Timer | null;
119
117
  private namespace;
120
118
  on: (name: string, method: ((...args: any[]) => void) | string) => this;
@@ -181,11 +179,11 @@ declare module '@ember/routing/router' {
181
179
  startRouting(): void;
182
180
  setupRouter(): boolean;
183
181
  _setOutlets(): void;
184
- handleURL(url: string): import('router_js').InternalTransition<R>;
182
+ handleURL(url: string): import('router_js').InternalTransition<Route<unknown>>;
185
183
  _doURLTransition<M extends 'handleURL' | 'transitionTo'>(
186
184
  routerJsMethod: M,
187
185
  url: string
188
- ): import('router_js').InternalTransition<R>;
186
+ ): import('router_js').InternalTransition<Route<unknown>>;
189
187
  /**
190
188
  Transition the application into another route. The route may
191
189
  be either a single route or route path:
@@ -200,7 +198,7 @@ declare module '@ember/routing/router' {
200
198
  attempted transition
201
199
  @public
202
200
  */
203
- transitionTo(...args: RouteArgs<R>): Transition;
201
+ transitionTo(...args: RouteArgs): Transition;
204
202
  intermediateTransitionTo(name: string, ...args: any[]): void;
205
203
  /**
206
204
  Similar to `transitionTo`, but instead of adding the destination to the browser's URL history,
@@ -219,8 +217,11 @@ declare module '@ember/routing/router' {
219
217
  attempted transition
220
218
  @public
221
219
  */
222
- replaceWith(...args: RouteArgs<R>): Transition;
223
- generate(name: string, ...args: ModelFor<R>[] | [...ModelFor<R>[], RouteOptions]): string;
220
+ replaceWith(...args: RouteArgs): Transition;
221
+ generate(
222
+ name: string,
223
+ ...args: ModelFor<Route>[] | [...ModelFor<Route>[], RouteOptions]
224
+ ): string;
224
225
  /**
225
226
  Determines if the supplied route is currently active.
226
227
 
@@ -245,7 +246,7 @@ declare module '@ember/routing/router' {
245
246
  */
246
247
  isActiveIntent(
247
248
  routeName: string,
248
- models: ModelFor<R>[],
249
+ models: ModelFor<Route>[],
249
250
  queryParams: Record<string, unknown>
250
251
  ): boolean;
251
252
  send(name: string, ...args: any[]): void;
@@ -280,7 +281,7 @@ declare module '@ember/routing/router' {
280
281
  @return {Void}
281
282
  */
282
283
  _serializeQueryParams(
283
- routeInfos: InternalRouteInfo<R>[],
284
+ routeInfos: InternalRouteInfo<Route>[],
284
285
  queryParams: Record<string, unknown>
285
286
  ): asserts queryParams is Record<string, string | null | undefined>;
286
287
  /**
@@ -302,7 +303,7 @@ declare module '@ember/routing/router' {
302
303
  @return {Void}
303
304
  */
304
305
  _deserializeQueryParams(
305
- routeInfos: InternalRouteInfo<R>[],
306
+ routeInfos: InternalRouteInfo<Route>[],
306
307
  queryParams: Record<string, unknown>
307
308
  ): void;
308
309
  /**
@@ -325,18 +326,18 @@ declare module '@ember/routing/router' {
325
326
  @return {Void}
326
327
  */
327
328
  _pruneDefaultQueryParamValues(
328
- routeInfos: InternalRouteInfo<R>[],
329
+ routeInfos: InternalRouteInfo<Route>[],
329
330
  queryParams: Record<string, string | null | undefined>
330
331
  ): void;
331
332
  _doTransition(
332
333
  _targetRouteName: string | undefined,
333
- models: ModelFor<R>[],
334
+ models: ModelFor<Route>[],
334
335
  _queryParams: Record<string, unknown>,
335
336
  _fromRouterService?: boolean
336
337
  ): Transition;
337
338
  _processActiveTransitionQueryParams(
338
339
  targetRouteName: string,
339
- models: ModelFor<R>[],
340
+ models: ModelFor<Route>[],
340
341
  queryParams: Record<string, unknown>,
341
342
  _queryParams: {}
342
343
  ): void;
@@ -354,7 +355,7 @@ declare module '@ember/routing/router' {
354
355
  */
355
356
  _prepareQueryParams(
356
357
  targetRouteName: string,
357
- models: ModelFor<R>[],
358
+ models: ModelFor<Route>[],
358
359
  queryParams: Record<string, unknown>,
359
360
  _fromRouterService?: boolean
360
361
  ): void;
@@ -367,7 +368,7 @@ declare module '@ember/routing/router' {
367
368
  @param {RouteInfo} routeInfo
368
369
  @return {Object}
369
370
  */
370
- _getQPMeta(routeInfo: InternalRouteInfo<R>): QueryParamMeta | undefined;
371
+ _getQPMeta(routeInfo: InternalRouteInfo<Route>): QueryParamMeta | undefined;
371
372
  /**
372
373
  Returns a merged query params meta object for a given set of routeInfos.
373
374
  Useful for knowing what query params are available for a given route hierarchy.
@@ -377,7 +378,7 @@ declare module '@ember/routing/router' {
377
378
  @param {Array<RouteInfo>} routeInfos
378
379
  @return {Object}
379
380
  */
380
- _queryParamsFor(routeInfos: InternalRouteInfo<R>[]): {
381
+ _queryParamsFor(routeInfos: InternalRouteInfo<Route>[]): {
381
382
  qps: QueryParam[];
382
383
  map: Record<string, QueryParam>;
383
384
  };
@@ -394,7 +395,7 @@ declare module '@ember/routing/router' {
394
395
  */
395
396
  _fullyScopeQueryParams(
396
397
  leafRouteName: string,
397
- contexts: ModelFor<R>[],
398
+ contexts: ModelFor<Route>[],
398
399
  queryParams: QueryParams
399
400
  ): void;
400
401
  /**
@@ -409,13 +410,13 @@ declare module '@ember/routing/router' {
409
410
  @return {Void}
410
411
  */
411
412
  _hydrateUnsuppliedQueryParams(
412
- state: TransitionState<R>,
413
+ state: TransitionState<Route>,
413
414
  queryParams: QueryParams,
414
415
  _fromRouterService: boolean
415
416
  ): void;
416
417
  _scheduleLoadingEvent(transition: Transition, originRoute: Route): void;
417
- currentState: null | RouterState<R>;
418
- targetState: null;
418
+ currentState: null | RouterState;
419
+ targetState: null | RouterState;
419
420
  _handleSlowTransition(transition: Transition, originRoute: Route): void;
420
421
  _cancelSlowTransitionTimer(): void;
421
422
  _markErrorAsHandled(error: Error): void;
@@ -487,29 +488,26 @@ declare module '@ember/routing/router' {
487
488
  }
488
489
  let defaultActionHandlers: {
489
490
  willResolveModel<R extends Route<unknown>>(
490
- this: EmberRouter<R>,
491
- _routeInfos: InternalRouteInfo<R>[],
491
+ this: EmberRouter,
492
+ _routeInfos: InternalRouteInfo<Route>[],
492
493
  transition: Transition,
493
494
  originRoute: R
494
495
  ): void;
495
- error<R_1 extends Route<unknown>>(
496
- this: EmberRouter<R_1>,
497
- routeInfos: InternalRouteInfo<R_1>[],
496
+ error(
497
+ this: EmberRouter,
498
+ routeInfos: InternalRouteInfo<Route>[],
498
499
  error: Error,
499
500
  transition: Transition
500
501
  ): void;
501
- loading<R_2 extends Route<unknown>>(
502
- this: EmberRouter<R_2>,
503
- routeInfos: InternalRouteInfo<R_2>[],
502
+ loading(
503
+ this: EmberRouter,
504
+ routeInfos: InternalRouteInfo<Route>[],
504
505
  transition: Transition
505
506
  ): void;
506
507
  };
507
- export function triggerEvent<
508
- R extends Route,
509
- N extends MethodNamesOf<typeof defaultActionHandlers>
510
- >(
511
- this: EmberRouter<R>,
512
- routeInfos: InternalRouteInfo<R>[],
508
+ export function triggerEvent<N extends MethodNamesOf<typeof defaultActionHandlers>>(
509
+ this: EmberRouter,
510
+ routeInfos: InternalRouteInfo<Route>[],
513
511
  ignoreFailure: boolean,
514
512
  name: N,
515
513
  args: OmitFirst<Parameters<typeof defaultActionHandlers[N]>>
@@ -0,0 +1,14 @@
1
+ // This module provides an 'extension' to the `@ember/service` module from the
2
+ // `@ember/routing` package, so that users can rely on `@service('router')` type
3
+ // checking and `Owner.lookup('service:router')` returning `RouterService`. Our
4
+ // type publishing infrastructure will pass it through unchanged, so end users
5
+ // will get this extension.
6
+
7
+ import '@ember/service';
8
+ import type RouterService from '@ember/routing/router-service';
9
+
10
+ declare module '@ember/service' {
11
+ export interface Registry {
12
+ router: RouterService;
13
+ }
14
+ }
@@ -0,0 +1,7 @@
1
+ declare module '@ember/runloop/-private/backburner' {
2
+ import type Backburner from 'backburner.js';
3
+ export type { Backburner };
4
+ export type DebugInfo = ReturnType<Backburner['getDebugInfo']>;
5
+ export { IQueueItem as QueueItem } from 'backburner.js/dist/backburner/interfaces';
6
+ export { DeferredActionQueues } from 'backburner.js';
7
+ }
@@ -1,6 +1,5 @@
1
1
  declare module '@ember/runloop' {
2
- import type { DeferredActionQueues } from 'backburner.js';
3
- import Backburner, { Timer } from 'backburner.js';
2
+ import Backburner, { Timer, type DeferredActionQueues } from 'backburner.js';
4
3
  import type { AnyFn } from '@ember/-internals/utility-types';
5
4
  export { Timer };
6
5
  type PartialParams<P extends any[]> = P extends [infer First, ...infer Rest]
@@ -38,6 +37,10 @@ declare module '@ember/runloop' {
38
37
  @private
39
38
  */
40
39
  export const _queues: string[];
40
+ /**
41
+ * @internal
42
+ * @private
43
+ */
41
44
  export const _backburner: Backburner;
42
45
  /**
43
46
  @module @ember/runloop
@@ -223,6 +226,11 @@ declare module '@ember/runloop' {
223
226
  ): T[U] extends AnyFn
224
227
  ? (...args: RemainingParams<A, Parameters<T[U]>>) => ReturnType<T[U]> | void
225
228
  : never;
229
+ export function bind<T, M extends keyof T & PropertyKey>(
230
+ target: T,
231
+ methodName: M,
232
+ ...args: any[]
233
+ ): (...args: any[]) => unknown;
226
234
  /**
227
235
  Begins a new RunLoop. Any deferred actions invoked after the begin will
228
236
  be buffered until you invoke a matching call to `end()`. This is
@@ -626,11 +634,11 @@ declare module '@ember/runloop' {
626
634
  @method cancel
627
635
  @static
628
636
  @for @ember/runloop
629
- @param {Object} timer Timer object to cancel
637
+ @param {Object} [timer] Timer object to cancel
630
638
  @return {Boolean} true if canceled or false/undefined if it wasn't found
631
639
  @public
632
640
  */
633
- export function cancel(timer: Timer): boolean;
641
+ export function cancel(timer?: Timer): boolean;
634
642
  /**
635
643
  Delay calling the target method until the debounce period has elapsed
636
644
  with no additional debounce calls. If `debounce` is called again before
@@ -82,12 +82,25 @@ declare module '@ember/service' {
82
82
  /**
83
83
  A type registry for Ember `Service`s. Meant to be declaration-merged so string
84
84
  lookups resolve to the correct type.
85
- */
86
- export interface Registry {}
87
- }
88
85
 
89
- declare module '@ember/owner' {
90
- interface DIRegistry {
91
- service: Registry;
92
- }
86
+ Blueprints should include such a declaration merge for TypeScript:
87
+
88
+ ```ts
89
+ import Service from '@ember/service';
90
+
91
+ export default class ExampleService extends Service {
92
+ // ...
93
+ }
94
+
95
+ declare module '@ember/service' {
96
+ export interface Registry {
97
+ example: ExampleService;
98
+ }
99
+ }
100
+ ```
101
+
102
+ Then `@service` can check that the service is registered correctly, and APIs
103
+ like `owner.lookup('service:example')` can return `ExampleService`.
104
+ */
105
+ export interface Registry extends Record<string, object | undefined> {}
93
106
  }
@@ -0,0 +1,11 @@
1
+ // This module provides an 'extension' to the `@ember/owner` module from the
2
+ // `@ember/service` module. Our type publishing infrastructure will pass it
3
+ // through unchanged, so end users will get this extension.
4
+
5
+ import type { Registry } from '@ember/service';
6
+
7
+ declare module '@ember/owner' {
8
+ export interface DIRegistry {
9
+ service: Registry;
10
+ }
11
+ }
@@ -1,4 +1,19 @@
1
1
  declare module '@ember/template-compilation' {
2
+ import type { TemplateFactory } from '@glimmer/interfaces';
2
3
  export { compile as compileTemplate } from 'ember-template-compiler';
3
- export let precompileTemplate: (() => never) | undefined;
4
+ interface CommonOptions {
5
+ moduleName?: string;
6
+ }
7
+ interface LooseModeOptions extends CommonOptions {
8
+ strictMode?: false;
9
+ }
10
+ interface StrictModeOptions extends CommonOptions {
11
+ strictMode: true;
12
+ scope: () => Record<string, unknown>;
13
+ }
14
+ interface PrecompileTemplate {
15
+ (templateString: string, options?: LooseModeOptions): TemplateFactory;
16
+ (templateString: string, options: StrictModeOptions): TemplateFactory;
17
+ }
18
+ export let precompileTemplate: PrecompileTemplate;
4
19
  }
@@ -1,8 +1,8 @@
1
1
  declare module '@ember/test' {
2
- import { type Test } from 'ember-testing';
3
- export let registerAsyncHelper: typeof Test['registerAsyncHelper'] | (() => never);
4
- export let registerHelper: typeof Test['registerHelper'] | (() => never);
5
- export let registerWaiter: typeof Test['registerWaiter'] | (() => never);
6
- export let unregisterHelper: typeof Test['unregisterHelper'] | (() => never);
7
- export let unregisterWaiter: typeof Test['unregisterWaiter'] | (() => never);
2
+ import { type Test as TestNS } from 'ember-testing';
3
+ export let registerAsyncHelper: typeof TestNS['registerAsyncHelper'];
4
+ export let registerHelper: typeof TestNS['registerHelper'];
5
+ export let registerWaiter: typeof TestNS['registerWaiter'];
6
+ export let unregisterHelper: typeof TestNS['unregisterHelper'];
7
+ export let unregisterWaiter: typeof TestNS['unregisterWaiter'];
8
8
  }
@@ -49,6 +49,6 @@ declare module '@ember/utils/lib/compare' {
49
49
  @return {Number} -1 if v < w, 0 if v = w and 1 if v > w.
50
50
  @public
51
51
  */
52
- export default function compare(v: unknown, w: unknown): Compare;
52
+ export default function compare<T>(v: T, w: T): Compare;
53
53
  export {};
54
54
  }