ember-source 5.6.0-alpha.2 → 5.6.0-alpha.4

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 (55) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/dependencies/@glimmer/debug.js +1533 -0
  3. package/dist/dependencies/@glimmer/destroyable.js +30 -59
  4. package/dist/dependencies/@glimmer/encoder.js +13 -24
  5. package/dist/dependencies/@glimmer/global-context.js +38 -41
  6. package/dist/dependencies/@glimmer/manager.js +144 -326
  7. package/dist/dependencies/@glimmer/node.js +14 -46
  8. package/dist/dependencies/@glimmer/opcode-compiler.js +1673 -2478
  9. package/dist/dependencies/@glimmer/owner.js +2 -5
  10. package/dist/dependencies/@glimmer/program.js +102 -185
  11. package/dist/dependencies/@glimmer/reference.js +58 -126
  12. package/dist/dependencies/@glimmer/runtime.js +4674 -5639
  13. package/dist/dependencies/@glimmer/util.js +340 -326
  14. package/dist/dependencies/@glimmer/validator.js +160 -217
  15. package/dist/dependencies/@glimmer/vm.js +174 -23
  16. package/dist/dependencies/@glimmer/wire-format.js +91 -34
  17. package/dist/dependencies/@simple-dom/document.js +1 -1
  18. package/dist/dependencies/backburner.js.js +1 -1
  19. package/dist/dependencies/router_js.js +15 -16
  20. package/dist/dependencies/rsvp.js +89 -88
  21. package/dist/ember-template-compiler.js +8574 -8350
  22. package/dist/ember-template-compiler.map +1 -1
  23. package/dist/ember-testing.js +107 -107
  24. package/dist/ember-testing.map +1 -1
  25. package/dist/ember.debug.js +11216 -9634
  26. package/dist/ember.debug.map +1 -1
  27. package/dist/header/license.js +1 -1
  28. package/dist/packages/@ember/-internals/glimmer/index.js +109 -80
  29. package/dist/packages/@ember/-internals/metal/index.js +5 -4
  30. package/dist/packages/@ember/-internals/utils/index.js +3 -4
  31. package/dist/packages/@ember/array/-internals.js +1 -2
  32. package/dist/packages/@ember/debug/lib/inspect.js +0 -1
  33. package/dist/packages/@ember/object/core.js +0 -1
  34. package/dist/packages/@ember/object/mixin.js +1 -2
  35. package/dist/packages/@ember/routing/route.js +23 -101
  36. package/dist/packages/@ember/routing/router.js +25 -84
  37. package/dist/packages/ember/version.js +1 -1
  38. package/dist/packages/ember-babel.js +13 -0
  39. package/docs/data.json +217 -242
  40. package/lib/index.js +1 -5
  41. package/package.json +26 -21
  42. package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
  43. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +4 -4
  44. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +3 -3
  45. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +5 -8
  46. package/types/stable/@ember/-internals/glimmer/lib/component-managers/root.d.ts +3 -3
  47. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
  48. package/types/stable/@ember/-internals/glimmer/lib/resolver.d.ts +3 -3
  49. package/types/stable/@ember/-internals/glimmer/lib/syntax/utils.d.ts +3 -2
  50. package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +2 -2
  51. package/types/stable/@ember/-internals/glimmer/lib/utils/outlet.d.ts +39 -18
  52. package/types/stable/@ember/-internals/utility-types/index.d.ts +1 -0
  53. package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +4 -3
  54. package/types/stable/@ember/routing/route.d.ts +6 -28
  55. package/dist/dependencies/@glimmer/low-level.js +0 -77
package/lib/index.js CHANGED
@@ -8,7 +8,7 @@ const buildDebugMacroPlugin = require('./build-debug-macro-plugin');
8
8
  const buildStripClassCallcheckPlugin = require('./build-strip-class-callcheck-plugin');
9
9
  const injectBabelHelpers = require('./transforms/inject-babel-helpers').injectBabelHelpers;
10
10
  const debugTree = require('broccoli-debug').buildDebugCallback('ember-source:addon');
11
- const vmBabelPlugins = require('@glimmer/vm-babel-plugins');
11
+ const { default: vmBabelPlugins } = require('@glimmer/vm-babel-plugins');
12
12
  const Overrides = require('./overrides');
13
13
  const SilentError = require('silent-error');
14
14
  const SupportedBrowsers = require('./browsers');
@@ -156,10 +156,6 @@ module.exports = {
156
156
  babelHelperPlugin,
157
157
  buildDebugMacroPlugin(!isProduction),
158
158
  ...vmBabelPlugins({ isDebug: !isProduction }),
159
- [
160
- require.resolve('@babel/plugin-transform-block-scoping'),
161
- { throwIfClosureRequired: true },
162
- ],
163
159
  ],
164
160
  }),
165
161
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-source",
3
- "version": "5.6.0-alpha.2",
3
+ "version": "5.6.0-alpha.4",
4
4
  "description": "A JavaScript framework for creating ambitious web applications",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -55,29 +55,29 @@
55
55
  },
56
56
  "dependencies": {
57
57
  "@babel/helper-module-imports": "^7.16.7",
58
- "@babel/plugin-transform-block-scoping": "^7.22.5",
59
58
  "@ember/edition-utils": "^1.2.0",
60
- "@glimmer/compiler": "0.84.3",
59
+ "@glimmer/compiler": "0.85.13",
61
60
  "@glimmer/component": "^1.1.2",
62
- "@glimmer/destroyable": "0.84.3",
61
+ "@glimmer/destroyable": "0.85.13",
63
62
  "@glimmer/env": "^0.1.7",
64
- "@glimmer/global-context": "0.84.3",
65
- "@glimmer/interfaces": "0.84.3",
66
- "@glimmer/manager": "0.84.3",
67
- "@glimmer/node": "0.84.3",
68
- "@glimmer/opcode-compiler": "0.84.3",
69
- "@glimmer/owner": "0.84.3",
70
- "@glimmer/program": "0.84.3",
71
- "@glimmer/reference": "0.84.3",
72
- "@glimmer/runtime": "0.84.3",
73
- "@glimmer/syntax": "0.84.3",
74
- "@glimmer/util": "0.84.3",
75
- "@glimmer/validator": "0.84.3",
76
- "@glimmer/vm-babel-plugins": "0.84.3",
63
+ "@glimmer/global-context": "0.85.13",
64
+ "@glimmer/interfaces": "0.85.13",
65
+ "@glimmer/manager": "0.85.13",
66
+ "@glimmer/node": "0.85.13",
67
+ "@glimmer/opcode-compiler": "0.85.13",
68
+ "@glimmer/owner": "0.85.13",
69
+ "@glimmer/program": "0.85.13",
70
+ "@glimmer/reference": "0.85.13",
71
+ "@glimmer/runtime": "0.85.13",
72
+ "@glimmer/syntax": "0.85.13",
73
+ "@glimmer/util": "0.85.13",
74
+ "@glimmer/validator": "0.85.13",
75
+ "@glimmer/vm": "0.85.13",
76
+ "@glimmer/vm-babel-plugins": "0.85.13",
77
77
  "@simple-dom/interface": "^1.4.0",
78
78
  "babel-plugin-debug-macros": "^0.3.4",
79
79
  "babel-plugin-filter-imports": "^4.0.0",
80
- "backburner.js": "^2.7.0",
80
+ "backburner.js": "^2.8.0",
81
81
  "broccoli-concat": "^4.2.5",
82
82
  "broccoli-debug": "^0.6.4",
83
83
  "broccoli-file-creator": "^2.1.1",
@@ -136,7 +136,7 @@
136
136
  "ember-cli-browserstack": "^2.0.1",
137
137
  "ember-cli-dependency-checker": "^3.3.1",
138
138
  "ember-cli-yuidoc": "^0.9.1",
139
- "eslint": "^8.39.0",
139
+ "eslint": "^8.53.0",
140
140
  "eslint-config-prettier": "^8.5.0",
141
141
  "eslint-import-resolver-node": "^0.3.7",
142
142
  "eslint-plugin-disable-features": "^0.1.3",
@@ -173,6 +173,11 @@
173
173
  "resolutions": {
174
174
  "socket.io": "^4.7.0"
175
175
  },
176
+ "pnpm": {
177
+ "overrides": {
178
+ "rollup": "^4.2.0"
179
+ }
180
+ },
176
181
  "peerDependencies": {
177
182
  "@glimmer/component": "^1.1.2"
178
183
  },
@@ -194,9 +199,9 @@
194
199
  },
195
200
  "volta": {
196
201
  "node": "16.20.0",
197
- "pnpm": "8.7.6"
202
+ "pnpm": "8.10.0"
198
203
  },
199
- "_originalVersion": "5.6.0-alpha.2",
204
+ "_originalVersion": "5.6.0-alpha.4",
200
205
  "_versionPreviouslyCalculated": true,
201
206
  "publishConfig": {
202
207
  "tag": "alpha"
@@ -477,7 +477,7 @@ declare module '@ember/-internals/glimmer' {
477
477
  default as OutletView,
478
478
  BootEnvironment,
479
479
  } from '@ember/-internals/glimmer/lib/views/outlet';
480
- export { OutletState } from '@ember/-internals/glimmer/lib/utils/outlet';
480
+ export { OutletState, RenderState } from '@ember/-internals/glimmer/lib/utils/outlet';
481
481
  export {
482
482
  componentCapabilities,
483
483
  modifierCapabilities,
@@ -1,5 +1,6 @@
1
1
  declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
2
2
  import { type default as Owner, type InternalFactory } from '@ember/-internals/owner';
3
+ import type { Nullable } from '@ember/-internals/utility-types';
3
4
  import type {
4
5
  Bounds,
5
6
  CompilableProgram,
@@ -7,7 +8,6 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
7
8
  ElementOperations,
8
9
  Environment,
9
10
  InternalComponentCapabilities,
10
- Option,
11
11
  PreparedArguments,
12
12
  VMArguments,
13
13
  WithCreateInstance,
@@ -43,9 +43,9 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
43
43
  {
44
44
  protected templateFor(component: Component): CompilableProgram | null;
45
45
  getDynamicLayout(bucket: ComponentStateBucket): CompilableProgram | null;
46
- getTagName(state: ComponentStateBucket): Option<string>;
46
+ getTagName(state: ComponentStateBucket): Nullable<string>;
47
47
  getCapabilities(): InternalComponentCapabilities;
48
- prepareArgs(ComponentClass: ComponentFactory, args: VMArguments): Option<PreparedArguments>;
48
+ prepareArgs(ComponentClass: ComponentFactory, args: VMArguments): Nullable<PreparedArguments>;
49
49
  create(
50
50
  owner: Owner,
51
51
  ComponentClass: ComponentFactory,
@@ -67,7 +67,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
67
67
  update(bucket: ComponentStateBucket): void;
68
68
  didUpdateLayout(bucket: ComponentStateBucket): void;
69
69
  didUpdate({ component, isInteractive }: ComponentStateBucket): void;
70
- getDestroyable(bucket: ComponentStateBucket): Option<Destroyable>;
70
+ getDestroyable(bucket: ComponentStateBucket): Nullable<Destroyable>;
71
71
  }
72
72
  export function processComponentInitializationAssertions(component: Component, props: any): void;
73
73
  export function initialRenderInstrumentDetails(component: any): any;
@@ -8,13 +8,13 @@ declare module '@ember/-internals/glimmer/lib/component-managers/mount' {
8
8
  Destroyable,
9
9
  Environment,
10
10
  InternalComponentCapabilities,
11
- Option,
12
11
  VMArguments,
13
12
  WithCreateInstance,
14
13
  WithCustomDebugRenderTree,
15
14
  WithDynamicLayout,
16
15
  WithSubOwner,
17
16
  } from '@glimmer/interfaces';
17
+ import type { Nullable } from '@ember/-internals/utility-types';
18
18
  import type { Reference } from '@glimmer/reference';
19
19
  import type RuntimeResolver from '@ember/-internals/glimmer/lib/resolver';
20
20
  interface EngineState {
@@ -50,7 +50,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/mount' {
50
50
  templateModuleName?: string
51
51
  ): CustomRenderNode[];
52
52
  getSelf({ self }: EngineState): Reference;
53
- getDestroyable(bucket: EngineState): Option<Destroyable>;
53
+ getDestroyable(bucket: EngineState): Nullable<Destroyable>;
54
54
  didCreate(): void;
55
55
  didUpdate(): void;
56
56
  didRenderLayout(): void;
@@ -63,7 +63,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/mount' {
63
63
  state: EngineDefinitionState;
64
64
  manager: MountManager;
65
65
  compilable: null;
66
- capabilities: import('@glimmer/interfaces').InternalComponentCapability;
66
+ capabilities: import('@glimmer/interfaces').CapabilityMask;
67
67
  constructor(resolvedName: string);
68
68
  }
69
69
  export {};
@@ -5,26 +5,24 @@ declare module '@ember/-internals/glimmer/lib/component-managers/outlet' {
5
5
  CapturedArguments,
6
6
  CompilableProgram,
7
7
  ComponentDefinition,
8
+ CapabilityMask,
8
9
  CustomRenderNode,
9
10
  Destroyable,
10
11
  Environment,
11
12
  InternalComponentCapabilities,
12
- InternalComponentCapability,
13
- Option,
14
13
  Template,
15
14
  VMArguments,
16
15
  WithCreateInstance,
17
16
  WithCustomDebugRenderTree,
18
17
  } from '@glimmer/interfaces';
18
+ import type { Nullable } from '@ember/-internals/utility-types';
19
19
  import type { Reference } from '@glimmer/reference';
20
20
  import type { DynamicScope } from '@ember/-internals/glimmer/lib/renderer';
21
21
  import type { OutletState } from '@ember/-internals/glimmer/lib/utils/outlet';
22
22
  import type OutletView from '@ember/-internals/glimmer/lib/views/outlet';
23
23
  interface OutletInstanceState {
24
24
  self: Reference;
25
- outlet?: {
26
- name: string;
27
- };
25
+ outletBucket?: {};
28
26
  engineBucket?: {
29
27
  mountPoint: string;
30
28
  };
@@ -34,7 +32,6 @@ declare module '@ember/-internals/glimmer/lib/component-managers/outlet' {
34
32
  export interface OutletDefinitionState {
35
33
  ref: Reference<OutletState | undefined>;
36
34
  name: string;
37
- outlet: string;
38
35
  template: Template;
39
36
  controller: unknown;
40
37
  model: unknown;
@@ -63,7 +60,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/outlet' {
63
60
  didUpdate(): void;
64
61
  didRenderLayout(state: OutletInstanceState): void;
65
62
  didUpdateLayout(): void;
66
- getDestroyable(): Option<Destroyable>;
63
+ getDestroyable(): Nullable<Destroyable>;
67
64
  }
68
65
  export class OutletComponentDefinition
69
66
  implements
@@ -74,7 +71,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/outlet' {
74
71
  handle: number;
75
72
  resolvedName: string;
76
73
  compilable: CompilableProgram;
77
- capabilities: InternalComponentCapability;
74
+ capabilities: CapabilityMask;
78
75
  constructor(state: OutletDefinitionState, manager?: OutletComponentManager);
79
76
  }
80
77
  export function createRootOutlet(outletView: OutletView): OutletComponentDefinition;
@@ -3,10 +3,10 @@ declare module '@ember/-internals/glimmer/lib/component-managers/root' {
3
3
  ComponentDefinition,
4
4
  Environment,
5
5
  InternalComponentCapabilities,
6
- Option,
7
6
  Owner,
8
7
  VMArguments,
9
8
  } from '@glimmer/interfaces';
9
+ import type { Nullable } from '@ember/-internals/utility-types';
10
10
  import type Component from '@ember/-internals/glimmer/lib/component';
11
11
  import type { DynamicScope } from '@ember/-internals/glimmer/lib/renderer';
12
12
  import ComponentStateBucket from '@ember/-internals/glimmer/lib/utils/curly-component-state-bucket';
@@ -17,7 +17,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/root' {
17
17
  create(
18
18
  _owner: Owner,
19
19
  _state: unknown,
20
- _args: Option<VMArguments>,
20
+ _args: Nullable<VMArguments>,
21
21
  { isInteractive }: Environment,
22
22
  dynamicScope: DynamicScope
23
23
  ): ComponentStateBucket;
@@ -28,7 +28,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/root' {
28
28
  resolvedName: string;
29
29
  state: object;
30
30
  manager: RootComponentManager;
31
- capabilities: import('@glimmer/interfaces').InternalComponentCapability;
31
+ capabilities: import('@glimmer/interfaces').CapabilityMask;
32
32
  compilable: null;
33
33
  constructor(component: Component);
34
34
  }
@@ -8,12 +8,12 @@ declare module '@ember/-internals/glimmer/lib/renderer' {
8
8
  DynamicScope as GlimmerDynamicScope,
9
9
  ElementBuilder,
10
10
  Environment,
11
- Option,
12
11
  RenderResult,
13
12
  RuntimeContext,
14
13
  Template,
15
14
  TemplateFactory,
16
15
  } from '@glimmer/interfaces';
16
+ import type { Nullable } from '@ember/-internals/utility-types';
17
17
  import type { Reference } from '@glimmer/reference';
18
18
  import type { CurriedValue } from '@glimmer/runtime';
19
19
  import { clientBuilder } from '@glimmer/runtime';
@@ -26,7 +26,7 @@ declare module '@ember/-internals/glimmer/lib/renderer' {
26
26
  import OutletView from '@ember/-internals/glimmer/lib/views/outlet';
27
27
  export type IBuilder = (env: Environment, cursor: Cursor) => ElementBuilder;
28
28
  export interface View {
29
- parentView: Option<View>;
29
+ parentView: Nullable<View>;
30
30
  renderer: Renderer;
31
31
  tagName: string | null;
32
32
  elementId: string | null;
@@ -112,7 +112,7 @@ declare module '@ember/-internals/glimmer/lib/renderer' {
112
112
  remove(view: Component): void;
113
113
  cleanupRootFor(view: unknown): void;
114
114
  destroy(): void;
115
- getElement(view: View): Option<Element>;
115
+ getElement(view: View): Nullable<Element>;
116
116
  getBounds(view: View): {
117
117
  parentElement: SimpleElement;
118
118
  firstNode: SimpleNode;
@@ -4,19 +4,19 @@ declare module '@ember/-internals/glimmer/lib/resolver' {
4
4
  CompileTimeResolver,
5
5
  HelperDefinitionState,
6
6
  ModifierDefinitionState,
7
- Option,
8
7
  ResolvedComponentDefinition,
9
8
  RuntimeResolver,
10
9
  } from '@glimmer/interfaces';
10
+ import type { Nullable } from '@ember/-internals/utility-types';
11
11
  const BUILTIN_KEYWORD_MODIFIERS: Record<string, ModifierDefinitionState>;
12
12
  export default class ResolverImpl
13
13
  implements RuntimeResolver<InternalOwner>, CompileTimeResolver<InternalOwner>
14
14
  {
15
15
  private componentDefinitionCache;
16
16
  lookupPartial(): null;
17
- lookupHelper(name: string, owner: InternalOwner): Option<HelperDefinitionState>;
17
+ lookupHelper(name: string, owner: InternalOwner): Nullable<HelperDefinitionState>;
18
18
  lookupBuiltInHelper(name: string): HelperDefinitionState | null;
19
- lookupModifier(name: string, owner: InternalOwner): Option<ModifierDefinitionState>;
19
+ lookupModifier(name: string, owner: InternalOwner): Nullable<ModifierDefinitionState>;
20
20
  lookupBuiltInModifier<K extends keyof typeof BUILTIN_KEYWORD_MODIFIERS>(
21
21
  name: K
22
22
  ): (typeof BUILTIN_KEYWORD_MODIFIERS)[K];
@@ -1,4 +1,5 @@
1
1
  declare module '@ember/-internals/glimmer/lib/syntax/utils' {
2
- import type { Core, Option } from '@glimmer/interfaces';
3
- export function hashToArgs(hash: Option<Core.Hash>): Option<Core.Hash>;
2
+ import type { Core } from '@glimmer/interfaces';
3
+ import type { Nullable } from '@ember/-internals/utility-types';
4
+ export function hashToArgs(hash: Nullable<Core.Hash>): Nullable<Core.Hash>;
4
5
  }
@@ -1,5 +1,5 @@
1
1
  declare module '@ember/-internals/glimmer/lib/utils/iterator' {
2
- import type { Option } from '@glimmer/interfaces';
2
+ import type { Nullable } from '@ember/-internals/utility-types';
3
3
  import type { IteratorDelegate } from '@glimmer/reference';
4
- export default function toIterator(iterable: unknown): Option<IteratorDelegate>;
4
+ export default function toIterator(iterable: unknown): Nullable<IteratorDelegate>;
5
5
  }
@@ -1,18 +1,23 @@
1
1
  declare module '@ember/-internals/glimmer/lib/utils/outlet' {
2
2
  import type { InternalOwner } from '@ember/-internals/owner';
3
- import type { Template, TemplateFactory } from '@glimmer/interfaces';
3
+ import type { Template } from '@glimmer/interfaces';
4
4
  export interface RenderState {
5
5
  /**
6
- * Not sure why this is here, we use the owner of the template for lookups.
7
- *
8
- * Maybe this is for the render helper?
6
+ * This is usually inherited from the parent (all the way up to the app
7
+ * instance). However, engines uses this to swap out the owner when crossing
8
+ * a mount point.
9
9
  */
10
10
  owner: InternalOwner;
11
11
  /**
12
- * The name of the parent outlet state.
12
+ * @deprecated This used to specify "which parent route to render into",
13
+ * which is not a thing anymore.
14
+ */
15
+ into: undefined;
16
+ /**
17
+ * @deprecated This used to specify "which named outlet in the parent
18
+ * template to render into", which is not a thing anymore.
13
19
  */
14
- into: string | undefined;
15
- outlet: string;
20
+ outlet: 'main';
16
21
  /**
17
22
  * The name of the route/template
18
23
  */
@@ -28,24 +33,40 @@ declare module '@ember/-internals/glimmer/lib/utils/outlet' {
28
33
  /**
29
34
  * template (the layout of the outlet component)
30
35
  */
31
- template: Template | TemplateFactory | undefined;
32
- }
33
- export interface Outlets {
34
- [name: string]: OutletState | undefined;
36
+ template: Template | undefined;
35
37
  }
36
38
  export interface OutletState {
37
- /**
38
- * Nested outlet connections.
39
- */
40
- outlets: Outlets;
41
39
  /**
42
40
  * Represents what was rendered into this outlet.
43
41
  */
44
42
  render: RenderState | undefined;
45
43
  /**
46
- * Has to do with render helper and orphan outlets.
47
- * Whether outlet state was rendered.
44
+ * Represents what, if any, should be rendered into the next {{outlet}} found
45
+ * at this level.
46
+ *
47
+ * This used to be a dictionary of children outlets, including the {{outlet}}
48
+ * "main" outlet any {{outlet "named"}} named outlets. Since named outlets
49
+ * are not a thing anymore, this can now just be a single`child`.
50
+ */
51
+ outlets: {
52
+ main: OutletState | undefined;
53
+ };
54
+ /**
55
+ * @deprecated
56
+ *
57
+ * This tracks whether this outlet state actually made it onto the page
58
+ * somewhere. This was more of a problem when you can declare named outlets
59
+ * left and right, and anything can render into anywhere else. We want to
60
+ * warn users when you tried to render into somewhere that does not exist,
61
+ * but we don't know what named outlets exists until after we have rendered
62
+ * everything, so this was used to track these orphan renders.
63
+ *
64
+ * This can still happen, if, according to the router, a route is active and
65
+ * so its template should be rendered, but the parent template is missing the
66
+ * `{{outlet}}` keyword, or that it was hidden by an `{{#if}}` or something.
67
+ * I guess that is considered valid, because nothing checks for this anymore.
68
+ * seems valid for the parent to decide not to render a child template?
48
69
  */
49
- wasUsed?: boolean;
70
+ wasUsed?: undefined;
50
71
  }
51
72
  }
@@ -11,5 +11,6 @@ declare module '@ember/-internals/utility-types' {
11
11
  export class Opaque<Data> {
12
12
  private [Data];
13
13
  }
14
+ export type Nullable<T> = T | null;
14
15
  export {};
15
16
  }
@@ -1,7 +1,8 @@
1
1
  declare module '@ember/-internals/views/lib/system/utils' {
2
2
  import type { View } from '@ember/-internals/glimmer/lib/renderer';
3
3
  import type { InternalOwner } from '@ember/-internals/owner';
4
- import type { Dict, Option } from '@glimmer/interfaces';
4
+ import type { Dict } from '@glimmer/interfaces';
5
+ import type { Nullable } from '@ember/-internals/utility-types';
5
6
  /**
6
7
  @module ember
7
8
  */
@@ -19,13 +20,13 @@ declare module '@ember/-internals/views/lib/system/utils' {
19
20
  @param {Ember.View} view
20
21
  */
21
22
  export function getViewId(view: View): string;
22
- export function getElementView(element: Element): Option<View>;
23
+ export function getElementView(element: Element): Nullable<View>;
23
24
  /**
24
25
  @private
25
26
  @method getViewElement
26
27
  @param {Ember.View} view
27
28
  */
28
- export function getViewElement(view: View): Option<Element>;
29
+ export function getViewElement(view: View): Nullable<Element>;
29
30
  export function setElementView(element: Element, view: View): void;
30
31
  export function setViewElement(view: View, element: Element): void;
31
32
  export function clearElementView(element: Element): void;
@@ -6,7 +6,7 @@ declare module '@ember/routing/route' {
6
6
  import { ActionHandler } from '@ember/-internals/runtime';
7
7
  import type { AnyFn } from '@ember/-internals/utility-types';
8
8
  import Controller from '@ember/controller';
9
- import type { Template } from '@glimmer/interfaces';
9
+ import type { RenderState } from '@ember/-internals/glimmer';
10
10
  import type { InternalRouteInfo, Route as IRoute, Transition, TransitionState } from 'router_js';
11
11
  import type { QueryParam } from '@ember/routing/router';
12
12
  import EmberRouter from '@ember/routing/router';
@@ -30,8 +30,8 @@ declare module '@ember/routing/route' {
30
30
  };
31
31
  type MaybeParameters<T> = T extends AnyFn ? Parameters<T> : unknown[];
32
32
  type MaybeReturnType<T> = T extends AnyFn ? ReturnType<T> : unknown;
33
- export const ROUTE_CONNECTIONS: WeakMap<object, any>;
34
33
  const RENDER: unique symbol;
34
+ const RENDER_STATE: unique symbol;
35
35
  /**
36
36
  @module @ember/routing/route
37
37
  */
@@ -1103,24 +1103,13 @@ declare module '@ember/routing/route' {
1103
1103
  @public
1104
1104
  */
1105
1105
  modelFor(_name: string): unknown | undefined;
1106
+ [RENDER_STATE]: RenderState | undefined;
1106
1107
  /**
1107
- `this[RENDER]` is used to render a template into a region of another template
1108
- (indicated by an `{{outlet}}`).
1109
-
1108
+ `this[RENDER]` is used to set up the rendering option for the outlet state.
1110
1109
  @method this[RENDER]
1111
- @param {String} name the name of the template to render
1112
- @param {Object} [options] the options
1113
- @param {String} [options.into] the template to render into,
1114
- referenced by name. Defaults to the parent template
1115
- @param {String} [options.outlet] the outlet inside `options.into` to render into.
1116
- Defaults to 'main'
1117
- @param {String|Object} [options.controller] the controller to use for this template,
1118
- referenced by name or as a controller instance. Defaults to the Route's paired controller
1119
- @param {Object} [options.model] the model object to set on `options.controller`.
1120
- Defaults to the return value of the Route's model hook
1121
1110
  @private
1122
1111
  */
1123
- [RENDER](name?: string, options?: PartialRenderOptions): void;
1112
+ [RENDER](): void;
1124
1113
  willDestroy(): void;
1125
1114
  /**
1126
1115
  @private
@@ -1240,18 +1229,7 @@ declare module '@ember/routing/route' {
1240
1229
  K extends keyof this ? this[K] : K extends keyof this['actions'] ? this['actions'][K] : never
1241
1230
  >;
1242
1231
  }
1243
- export interface RenderOptions {
1244
- owner: Owner;
1245
- into?: string;
1246
- outlet: string;
1247
- name: string;
1248
- controller: Controller | string | undefined;
1249
- model: unknown;
1250
- template: Template;
1251
- }
1252
- type PartialRenderOptions = Partial<
1253
- Pick<RenderOptions, 'into' | 'outlet' | 'controller' | 'model'>
1254
- >;
1232
+ export function getRenderState(route: Route): RenderState | undefined;
1255
1233
  export function getFullQueryParams(
1256
1234
  router: EmberRouter,
1257
1235
  state: RouteTransitionState
@@ -1,77 +0,0 @@
1
- class Storage {
2
- constructor() {
3
- this.array = [];
4
- this.next = 0;
5
- }
6
-
7
- add(element) {
8
- let {
9
- next: slot,
10
- array
11
- } = this;
12
-
13
- if (slot === array.length) {
14
- this.next++;
15
- } else {
16
- let prev = array[slot];
17
- this.next = prev;
18
- }
19
-
20
- this.array[slot] = element;
21
- return slot;
22
- }
23
-
24
- deref(pointer) {
25
- return this.array[pointer];
26
- }
27
-
28
- drop(pointer) {
29
- this.array[pointer] = this.next;
30
- this.next = pointer;
31
- }
32
-
33
- }
34
-
35
- class Stack {
36
- constructor(vec = []) {
37
- this.vec = vec;
38
- }
39
-
40
- clone() {
41
- return new Stack(this.vec.slice());
42
- }
43
-
44
- sliceFrom(start) {
45
- return new Stack(this.vec.slice(start));
46
- }
47
-
48
- slice(start, end) {
49
- return new Stack(this.vec.slice(start, end));
50
- }
51
-
52
- copy(from, to) {
53
- this.vec[to] = this.vec[from];
54
- } // TODO: how to model u64 argument?
55
-
56
-
57
- writeRaw(pos, value) {
58
- // TODO: Grow?
59
- this.vec[pos] = value;
60
- } // TODO: partially decoded enum?
61
-
62
-
63
- getRaw(pos) {
64
- return this.vec[pos];
65
- }
66
-
67
- reset() {
68
- this.vec.length = 0;
69
- }
70
-
71
- len() {
72
- return this.vec.length;
73
- }
74
-
75
- }
76
-
77
- export { Stack, Storage };