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
@@ -128,7 +128,7 @@ declare module '@ember/object/mixin' {
128
128
  @param arguments*
129
129
  @public
130
130
  */
131
- static create(...args: any[]): Mixin;
131
+ static create<M extends typeof Mixin>(...args: any[]): InstanceType<M>;
132
132
  /** @internal */
133
133
  static mixins(obj: object): Mixin[];
134
134
  /**
@@ -137,7 +137,7 @@ declare module '@ember/object/mixin' {
137
137
  @private
138
138
  @internal
139
139
  */
140
- reopen(...args: any[]): this | undefined;
140
+ reopen(...args: Array<Mixin | Record<string, unknown>>): this;
141
141
  /**
142
142
  @method apply
143
143
  @param obj
@@ -118,6 +118,7 @@ declare module '@ember/object/observable' {
118
118
  @return {Object} The property value or undefined.
119
119
  @public
120
120
  */
121
+ get<K extends keyof this>(key: K): this[K];
121
122
  get(key: string): unknown;
122
123
  /**
123
124
  To get the values of multiple properties at once, call `getProperties`
@@ -140,6 +141,16 @@ declare module '@ember/object/observable' {
140
141
  @return {Object}
141
142
  @public
142
143
  */
144
+ getProperties<L extends Array<keyof this>>(
145
+ list: L
146
+ ): {
147
+ [Key in L[number]]: this[Key];
148
+ };
149
+ getProperties<L extends Array<keyof this>>(
150
+ ...list: L
151
+ ): {
152
+ [Key in L[number]]: this[Key];
153
+ };
143
154
  getProperties<L extends string[]>(
144
155
  list: L
145
156
  ): {
@@ -194,6 +205,7 @@ declare module '@ember/object/observable' {
194
205
  @return {Object} The passed value
195
206
  @public
196
207
  */
208
+ set<K extends keyof this, T extends this[K]>(key: K, value: T): T;
197
209
  set<T>(key: string, value: T): T;
198
210
  /**
199
211
  Sets a list of properties at once. These properties are set inside
@@ -209,7 +221,15 @@ declare module '@ember/object/observable' {
209
221
  @return {Object} The passed in hash
210
222
  @public
211
223
  */
212
- setProperties<T extends Record<string, any>>(hash: T): T;
224
+ setProperties<
225
+ K extends keyof this,
226
+ P extends {
227
+ [Key in K]: this[Key];
228
+ }
229
+ >(
230
+ hash: P
231
+ ): P;
232
+ setProperties<T extends Record<string, unknown>>(hash: T): T;
213
233
  /**
214
234
  Convenience method to call `propertyWillChange` and `propertyDidChange` in
215
235
  succession.
@@ -80,7 +80,31 @@ declare module '@ember/object/proxy' {
80
80
  @uses Ember.ProxyMixin
81
81
  @public
82
82
  */
83
- interface ObjectProxy extends _ProxyMixin {}
84
- class ObjectProxy extends FrameworkObject {}
83
+ interface ObjectProxy<Content = unknown> extends _ProxyMixin<Content> {
84
+ get<K extends keyof Content>(keyName: K): Content[K];
85
+ get<K extends keyof this>(keyname: K): this[K];
86
+ get(keyName: string): unknown;
87
+ set<K extends keyof Content>(keyName: K, value: Content[K]): Content[K];
88
+ set<K extends keyof this>(keyName: K, value: this[K]): this[K];
89
+ set(keyName: string): unknown;
90
+ getProperties<K extends keyof Content | keyof this>(
91
+ list: K[]
92
+ ): Pick<Content, Exclude<K, keyof this>> & Pick<this, Exclude<K, keyof Content>>;
93
+ getProperties<K extends keyof Content | keyof this>(
94
+ ...list: K[]
95
+ ): Pick<Content, Exclude<K, keyof this>> & Pick<this, Exclude<K, keyof Content>>;
96
+ getProperties<K extends string>(list: K[]): Record<K, unknown>;
97
+ getProperties<K extends string>(...list: K[]): Record<K, unknown>;
98
+ setProperties<
99
+ K extends keyof Content | keyof this,
100
+ Hash extends Partial<
101
+ Pick<Content, Exclude<K, keyof this>> & Pick<this, Exclude<K, keyof Content>>
102
+ >
103
+ >(
104
+ hash: Hash
105
+ ): Hash;
106
+ setProperties<T extends Record<string, unknown>>(hash: T): T;
107
+ }
108
+ class ObjectProxy<Content = unknown> extends FrameworkObject {}
85
109
  export default ObjectProxy;
86
110
  }
@@ -110,9 +110,3 @@ declare module '@ember/routing/hash-location' {
110
110
  _removeEventListener(): void;
111
111
  }
112
112
  }
113
-
114
- declare module '@ember/routing/location' {
115
- interface Registry {
116
- hash: HashLocation;
117
- }
118
- }
@@ -140,9 +140,3 @@ declare module '@ember/routing/history-location' {
140
140
  _removeEventListener(): void;
141
141
  }
142
142
  }
143
-
144
- declare module '@ember/routing/location' {
145
- interface Registry {
146
- history: HistoryLocation;
147
- }
148
- }
@@ -1,5 +1,6 @@
1
1
  declare module '@ember/routing/lib/controller_for' {
2
2
  import type { Container } from '@ember/-internals/container';
3
+ import type { FactoryClass, InternalFactory } from '@ember/-internals/owner';
3
4
  import type { RegisterOptions } from '@ember/owner';
4
5
  /**
5
6
  @module ember/routing
@@ -15,11 +16,5 @@ declare module '@ember/routing/lib/controller_for' {
15
16
  container: Container,
16
17
  controllerName: string,
17
18
  lookupOptions: RegisterOptions
18
- ):
19
- | object
20
- | import('@ember/routing/-internals/owner').InternalFactory<
21
- object,
22
- import('@ember/routing/-internals/owner').FactoryClass
23
- >
24
- | undefined;
19
+ ): InternalFactory<object, FactoryClass> | object | undefined;
25
20
  }
@@ -3,14 +3,18 @@ declare module '@ember/routing/lib/router_state' {
3
3
  import type Router from 'router_js';
4
4
  import type Route from '@ember/routing/route';
5
5
  import type EmberRouter from '@ember/routing/router';
6
- export default class RouterState<R extends Route> {
7
- router: Router<R>;
8
- emberRouter: EmberRouter<R>;
9
- routerJsState: TransitionState<R>;
10
- constructor(emberRouter: EmberRouter<R>, router: Router<R>, routerJsState: TransitionState<R>);
6
+ export default class RouterState {
7
+ router: Router<Route>;
8
+ emberRouter: EmberRouter;
9
+ routerJsState: TransitionState<Route>;
10
+ constructor(
11
+ emberRouter: EmberRouter,
12
+ router: Router<Route>,
13
+ routerJsState: TransitionState<Route>
14
+ );
11
15
  isActiveIntent(
12
16
  routeName: string,
13
- models: ModelFor<R>[],
17
+ models: ModelFor<Route>[],
14
18
  queryParams?: Record<string, unknown>
15
19
  ): boolean;
16
20
  }
@@ -23,8 +23,8 @@ declare module '@ember/routing/lib/routing-service' {
23
23
  currentState: EmberRouter['currentState'];
24
24
  currentRouteName: EmberRouter['currentRouteName'];
25
25
  currentPath: EmberRouter['currentPath'];
26
- [ROUTER]?: EmberRouter<R>;
27
- get router(): EmberRouter<R>;
26
+ [ROUTER]?: EmberRouter;
27
+ get router(): EmberRouter;
28
28
  hasRoute(routeName: string): boolean;
29
29
  transitionTo(
30
30
  routeName: string,
@@ -51,7 +51,7 @@ declare module '@ember/routing/lib/routing-service' {
51
51
  contexts: ModelFor<R>[],
52
52
  queryParams: Record<string, unknown> | undefined,
53
53
  routeName: string,
54
- routerState: RouterState<R>
54
+ routerState: RouterState
55
55
  ): boolean;
56
56
  }
57
57
  }
@@ -1,6 +1,5 @@
1
1
  declare module '@ember/routing/lib/utils' {
2
2
  import type { ControllerQueryParam, ControllerQueryParamType } from '@ember/controller';
3
- import type { ModelFor } from 'router_js';
4
3
  import type Router from 'router_js';
5
4
  import type { ExtendedInternalRouteInfo } from '@ember/routing/route';
6
5
  import type Route from '@ember/routing/route';
@@ -10,27 +9,27 @@ declare module '@ember/routing/lib/utils' {
10
9
  scope: string;
11
10
  type?: ControllerQueryParamType;
12
11
  };
13
- export type NamedRouteArgs<R extends Route> =
14
- | [routeNameOrUrl: string, ...modelsAndOptions: [...ModelFor<R>[], RouteOptions]]
15
- | [routeNameOrUrl: string, ...models: ModelFor<R>[]];
16
- export type UnnamedRouteArgs<R extends Route> =
17
- | [...modelsAndOptions: [...ModelFor<R>[], RouteOptions]]
18
- | [...models: ModelFor<R>[]]
12
+ export type NamedRouteArgs =
13
+ | [routeNameOrUrl: string, ...modelsAndOptions: [...unknown[], RouteOptions]]
14
+ | [routeNameOrUrl: string, ...models: unknown[]];
15
+ export type UnnamedRouteArgs =
16
+ | [...modelsAndOptions: [...unknown[], RouteOptions]]
17
+ | [...models: unknown[]]
19
18
  | [options: RouteOptions];
20
- export type RouteArgs<R extends Route> = NamedRouteArgs<R> | UnnamedRouteArgs<R>;
21
- type ExtractedArgs<R extends Route> = {
19
+ export type RouteArgs = NamedRouteArgs | UnnamedRouteArgs;
20
+ type ExtractedArgs = {
22
21
  routeName: string | undefined;
23
- models: ModelFor<R>[];
22
+ models: unknown[];
24
23
  queryParams: Record<string, unknown>;
25
24
  };
26
25
  export type RouteOptions = {
27
26
  queryParams: Record<string, unknown>;
28
27
  };
29
- export function extractRouteArgs<R extends Route>(args: RouteArgs<R>): ExtractedArgs<R>;
28
+ export function extractRouteArgs(args: RouteArgs): ExtractedArgs;
30
29
  export function getActiveTargetName(router: Router<Route>): string;
31
- export function stashParamNames<R extends Route>(
32
- router: EmberRouter<R>,
33
- routeInfos: Array<ExtendedInternalRouteInfo<R>> & {
30
+ export function stashParamNames(
31
+ router: EmberRouter,
32
+ routeInfos: Array<ExtendedInternalRouteInfo<Route>> & {
34
33
  _namesStashed?: boolean;
35
34
  }
36
35
  ): void;
@@ -43,7 +42,7 @@ declare module '@ember/routing/lib/utils' {
43
42
  queryParams: Readonly<ControllerQueryParam[]>
44
43
  ): Record<string, ExpandedControllerQueryParam>;
45
44
  export function resemblesURL(str: unknown): str is string;
46
- export function prefixRouteNameArg<T extends NamedRouteArgs<Route> | UnnamedRouteArgs<Route>>(
45
+ export function prefixRouteNameArg<T extends NamedRouteArgs | UnnamedRouteArgs>(
47
46
  route: Route,
48
47
  args: T
49
48
  ): T;
@@ -0,0 +1,18 @@
1
+ // This module provides an 'extension' to the `@ember/routing/location` module
2
+ // from the `@ember/routing` package, so that users can rely on
3
+ // `owner.lookup('location:hash')` type checking and returning `HashLocation`
4
+ // (and the same for other location types). Our type publishing infrastructure
5
+ // will pass it through unchanged, so end users will get this extension.
6
+
7
+ import '@ember/routing/location';
8
+ import type HashLocation from '@ember/routing/hash-location';
9
+ import type HistoryLocation from '@ember/routing/history-location';
10
+ import type NoneLocation from '@ember/routing/none-location';
11
+
12
+ declare module '@ember/routing/location' {
13
+ interface Registry {
14
+ hash: HashLocation;
15
+ history: HistoryLocation;
16
+ none: NoneLocation;
17
+ }
18
+ }
@@ -115,9 +115,3 @@ declare module '@ember/routing/location' {
115
115
  export type UpdateCallback = (url: string) => void;
116
116
  export interface Registry extends Record<string, Location | undefined> {}
117
117
  }
118
-
119
- declare module '@ember/owner' {
120
- interface DIRegistry {
121
- location: Registry;
122
- }
123
- }
@@ -80,9 +80,3 @@ declare module '@ember/routing/none-location' {
80
80
  formatURL(url: string): string;
81
81
  }
82
82
  }
83
-
84
- declare module '@ember/routing/location' {
85
- interface Registry {
86
- none: NoneLocation;
87
- }
88
- }
@@ -0,0 +1,11 @@
1
+ // This module provides an 'extension' to the `@ember/owner` module from the
2
+ // `@ember/routing/location` module. Our type publishing infrastructure will
3
+ // pass it through unchanged, so end users will get this extension.
4
+
5
+ import type { Registry } from '@ember/routing/location';
6
+
7
+ declare module '@ember/owner' {
8
+ export interface DIRegistry {
9
+ location: Registry;
10
+ }
11
+ }
@@ -3,6 +3,7 @@ declare module '@ember/routing/route' {
3
3
  import { BucketCache } from '@ember/routing/-internals';
4
4
  import EmberObject from '@ember/object';
5
5
  import Evented from '@ember/object/evented';
6
+ import { ActionHandler } from '@ember/-internals/runtime';
6
7
  import type { AnyFn } from '@ember/-internals/utility-types';
7
8
  import Controller from '@ember/controller';
8
9
  import type { Template } from '@glimmer/interfaces';
@@ -23,7 +24,7 @@ declare module '@ember/routing/route' {
23
24
  allowOverrides(prop: string, value: unknown): any;
24
25
  };
25
26
  };
26
- type RouteTransitionState<R extends Route> = TransitionState<R> & {
27
+ type RouteTransitionState = TransitionState<Route> & {
27
28
  fullQueryParams?: Record<string, unknown>;
28
29
  queryParamsFor?: Record<string, Record<string, unknown>>;
29
30
  };
@@ -45,7 +46,7 @@ declare module '@ember/routing/route' {
45
46
  @since 1.0.0
46
47
  @public
47
48
  */
48
- interface Route<T = unknown> extends IRoute<T> {
49
+ interface Route<Model = unknown> extends IRoute<Model>, ActionHandler, Evented {
49
50
  /**
50
51
  The `willTransition` action is fired at the beginning of any
51
52
  attempted transition with a `Transition` object as the sole
@@ -212,23 +213,24 @@ declare module '@ember/routing/route' {
212
213
  */
213
214
  error?(error: Error, transition: Transition): boolean | void;
214
215
  }
215
- const Route_base: Readonly<typeof EmberObject> & (new (owner?: Owner | undefined) => EmberObject);
216
- class Route<T = unknown> extends Route_base implements IRoute, Evented {
216
+ const Route_base: Readonly<typeof EmberObject> &
217
+ (new (owner?: Owner | undefined) => EmberObject) &
218
+ import('@ember/object/mixin').default;
219
+ class Route<Model = unknown> extends Route_base implements IRoute {
217
220
  static isRouteFactory: boolean;
218
- context: T;
219
- currentModel: T;
221
+ /** @internal */
222
+ context: Model;
223
+ /** @internal */
224
+ currentModel: Model;
225
+ /** @internal */
220
226
  _bucketCache: BucketCache;
227
+ /** @internal */
221
228
  _internalName: string;
222
229
  private _names;
223
230
  _router: EmberRouter;
224
231
  _topLevelViewTemplate: any;
225
232
  _environment: any;
226
- constructor(owner: Owner);
227
- on: (name: string, method: ((...args: any[]) => void) | string) => this;
228
- one: (name: string, method: string | ((...args: any[]) => void)) => this;
229
- trigger: (name: string, ...args: any[]) => any;
230
- off: (name: string, method: string | ((...args: any[]) => void)) => this;
231
- has: (name: string) => boolean;
233
+ constructor(owner?: Owner);
232
234
  /**
233
235
  A hook you can implement to convert the route's model into parameters
234
236
  for the URL.
@@ -275,7 +277,7 @@ declare module '@ember/routing/route' {
275
277
  @public
276
278
  */
277
279
  serialize(
278
- model: T | undefined,
280
+ model: Model | undefined,
279
281
  params: string[]
280
282
  ):
281
283
  | {
@@ -592,7 +594,7 @@ declare module '@ember/routing/route' {
592
594
  @since 1.7.0
593
595
  @public
594
596
  */
595
- resetController(_controller: Controller, _isExiting: boolean, _transition: Transition): this;
597
+ resetController(_controller: Controller, _isExiting: boolean, _transition: Transition): void;
596
598
  /**
597
599
  @private
598
600
 
@@ -687,7 +689,7 @@ declare module '@ember/routing/route' {
687
689
  @since 1.2.0
688
690
  @public
689
691
  */
690
- intermediateTransitionTo(...args: NamedRouteArgs<this>): void;
692
+ intermediateTransitionTo(...args: NamedRouteArgs): void;
691
693
  /**
692
694
  Refresh the model on this route and any child routes, firing the
693
695
  `beforeModel`, `model`, and `afterModel` hooks in a similar fashion
@@ -717,7 +719,7 @@ declare module '@ember/routing/route' {
717
719
  @private
718
720
  @method setup
719
721
  */
720
- setup(context: T | undefined, transition: Transition): void;
722
+ setup(context: Model | undefined, transition: Transition): void;
721
723
  _qpChanged(prop: string, value: unknown, qp: QueryParam): void;
722
724
  /**
723
725
  This hook is the first of the route entry validation hooks
@@ -787,7 +789,10 @@ declare module '@ember/routing/route' {
787
789
  @since 1.0.0
788
790
  @public
789
791
  */
790
- afterModel(_resolvedModel: T | undefined, _transition: Transition): unknown | Promise<unknown>;
792
+ afterModel(
793
+ _resolvedModel: Model | undefined,
794
+ _transition: Transition
795
+ ): unknown | Promise<unknown>;
791
796
  /**
792
797
  A hook you can implement to optionally redirect to another route.
793
798
 
@@ -811,7 +816,7 @@ declare module '@ember/routing/route' {
811
816
  @since 1.0.0
812
817
  @public
813
818
  */
814
- redirect(_model: T, _transition: Transition): void;
819
+ redirect(_model: Model, _transition: Transition): void;
815
820
  /**
816
821
  Called when the context is changed by router.js.
817
822
 
@@ -897,7 +902,10 @@ declare module '@ember/routing/route' {
897
902
  @since 1.0.0
898
903
  @public
899
904
  */
900
- model(params: Record<string, unknown>, transition: Transition): T | PromiseLike<T> | undefined;
905
+ model(
906
+ params: Record<string, unknown>,
907
+ transition: Transition
908
+ ): Model | PromiseLike<Model> | undefined;
901
909
  /**
902
910
  @private
903
911
  @method deserialize
@@ -907,7 +915,10 @@ declare module '@ember/routing/route' {
907
915
 
908
916
  Router.js hook.
909
917
  */
910
- deserialize(_params: {}, transition: Transition): T | PromiseLike<T> | undefined;
918
+ deserialize(
919
+ _params: Record<string, unknown>,
920
+ transition: Transition
921
+ ): Model | PromiseLike<Model> | undefined;
911
922
  /**
912
923
 
913
924
  @method findModel
@@ -986,7 +997,11 @@ declare module '@ember/routing/route' {
986
997
  @since 1.0.0
987
998
  @public
988
999
  */
989
- setupController(controller: Controller, context: T | undefined, _transition?: Transition): void;
1000
+ setupController(
1001
+ controller: Controller,
1002
+ context: Model | undefined,
1003
+ _transition?: Transition
1004
+ ): void;
990
1005
  /**
991
1006
  Returns the controller of the current route, or a parent (or any ancestor)
992
1007
  route in a route hierarchy.
@@ -1240,9 +1255,9 @@ declare module '@ember/routing/route' {
1240
1255
  type PartialRenderOptions = Partial<
1241
1256
  Pick<RenderOptions, 'into' | 'outlet' | 'controller' | 'model'>
1242
1257
  >;
1243
- export function getFullQueryParams<R extends Route>(
1244
- router: EmberRouter<R>,
1245
- state: RouteTransitionState<R>
1258
+ export function getFullQueryParams(
1259
+ router: EmberRouter,
1260
+ state: RouteTransitionState
1246
1261
  ): Record<string, unknown>;
1247
1262
  const defaultSerialize: (
1248
1263
  model: any,
@@ -38,12 +38,18 @@ declare module '@ember/routing/router-service' {
38
38
  @extends Service
39
39
  @class RouterService
40
40
  */
41
- interface RouterService<R extends Route> extends Evented {}
41
+ interface RouterService extends Evented {
42
+ on(
43
+ eventName: 'routeWillChange' | 'routeDidChange',
44
+ callback: (transition: Transition) => void
45
+ ): this;
46
+ }
42
47
  const RouterService_base: Readonly<typeof Service> &
43
- (new (owner?: import('@ember/-internals/owner').default | undefined) => Service);
44
- class RouterService<R extends Route> extends RouterService_base {
45
- [ROUTER]?: EmberRouter<R>;
46
- get _router(): EmberRouter<R>;
48
+ (new (owner?: import('@ember/-internals/owner').default | undefined) => Service) &
49
+ import('@ember/object/mixin').default;
50
+ class RouterService extends RouterService_base {
51
+ [ROUTER]?: EmberRouter;
52
+ get _router(): EmberRouter;
47
53
  willDestroy(): void;
48
54
  /**
49
55
  Transition the application into another route. The route may
@@ -90,7 +96,7 @@ declare module '@ember/routing/router-service' {
90
96
  attempted transition
91
97
  @public
92
98
  */
93
- transitionTo(...args: RouteArgs<R>): Transition;
99
+ transitionTo(...args: RouteArgs): Transition;
94
100
  /**
95
101
  Similar to `transitionTo`, but instead of adding the destination to the browser's URL history,
96
102
  it replaces the entry for the current route.
@@ -128,7 +134,7 @@ declare module '@ember/routing/router-service' {
128
134
  attempted transition
129
135
  @public
130
136
  */
131
- replaceWith(...args: RouteArgs<R>): Transition;
137
+ replaceWith(...args: RouteArgs): Transition;
132
138
  /**
133
139
  Generate a URL based on the supplied route name and optionally a model. The
134
140
  URL is returned as a string that can be used for any purpose.
@@ -197,7 +203,10 @@ declare module '@ember/routing/router-service' {
197
203
  @return {String} the string representing the generated URL
198
204
  @public
199
205
  */
200
- urlFor(routeName: string, ...args: ModelFor<R>[] | [...ModelFor<R>[], RouteOptions]): string;
206
+ urlFor<R extends Route>(
207
+ routeName: string,
208
+ ...args: ModelFor<R>[] | [...ModelFor<R>[], RouteOptions]
209
+ ): string;
201
210
  /**
202
211
  Returns `true` if `routeName/models/queryParams` is the active route, where `models` and `queryParams` are optional.
203
212
  See [model](api/ember/release/classes/Route/methods/model?anchor=model) and
@@ -245,7 +254,7 @@ declare module '@ember/routing/router-service' {
245
254
  @return {boolean} true if the provided routeName/models/queryParams are active
246
255
  @public
247
256
  */
248
- isActive(...args: RouteArgs<R>): boolean;
257
+ isActive(...args: RouteArgs): boolean;
249
258
  /**
250
259
  Takes a string URL and returns a `RouteInfo` for the leafmost route represented
251
260
  by the URL. Returns `null` if the URL is not recognized. This method expects to
@@ -587,9 +596,3 @@ declare module '@ember/routing/router-service' {
587
596
  }
588
597
  export { RouterService as default, RouteInfo, RouteInfoWithAttributes };
589
598
  }
590
-
591
- declare module '@ember/service' {
592
- interface Registry {
593
- router: RouterService<Route>;
594
- }
595
- }