Skip to content

Instantly share code, notes, and snippets.

@leepfrog
Last active July 15, 2023 22:39
Show Gist options
  • Save leepfrog/967156093e576f6bdc2048691a7a5b79 to your computer and use it in GitHub Desktop.
Save leepfrog/967156093e576f6bdc2048691a7a5b79 to your computer and use it in GitHub Desktop.

Ember 5.1 project blueprint and built-in types

TLDR

The Issue

These are the steps I took to setup Ember 5.1, Embroider, TypeScript, & built in ember-source Types. In the end, I am stuck on a specific error message that I am currently working to resolve:

$ ember serve
WARNING: Ember CLI v5.1.0 is not tested against Node v20.3.1. See "https://github.com/ember-cli/ember-cli/blob/master/docs/node-support.md" to find out which version of Node is best to use.
node_modules/.pnpm/@[email protected]/node_modules/@glimmer/validator/dist/types/lib/validators.d.ts:78:45 - error TS2422: A class can only implement an object type or intersection of object types with statically known members.

78 declare class MonomorphicTagImpl implements MonomorphicTag {
                                               ~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]/node_modules/@glimmer/manager/dist/types/lib/public/modifier.d.ts:45:5 - error TS2416: Property 'getTag' in type 'CustomModifierManager<O, ModifierInstance>' is not assignable to the same property in base type 'InternalModifierManager<CustomModifierState<ModifierInstance>, object>'.
  Type '({ tag }: CustomModifierState<ModifierInstance>) => UpdatableTag' is not assignable to type '(modifier: CustomModifierState<ModifierInstance>) => UpdatableTag | null'.
    Type 'MonomorphicTagBase<MonomorphicTagTypes.Updatable>' is missing the following properties from type 'MonomorphicTagBase<MonomorphicTagTypes.Updatable>': [TYPE], [COMPUTE]

45     getTag({ tag }: CustomModifierState<ModifierInstance>): UpdatableTag;
       ~~~~~~

Typechecking failed


Stack Trace and Error Report: /var/folders/kf/p0r0x76j7lq2ct_gm8s_ly540000gq/T/error.dump.1ea72f3845d761da4545043f4051d92f.log

Some Questions / Observations

  • (generic): Is there a process to validate Node v20 for support adoption?
  • (generic): ember new does not contain glint
  • (typescript): There are warning messages about no TypeScript blueprint available on ember new
  • (typescript): ember new relies on @types/ember\* and not ember-source types
  • (typescript): Conflicting @types/ember* packages are installed because of ember-data dependencies
  • (typescript): the blog post is missing a few packages from the list of types to remove: @types/ember-qunit, @types/ember-resolver, @types/ember__test-helpers
  • (typescript): Unable to get a working setup using ember-source types on a bare bones project

Project Setup

1. Check Versions

$ ember --version
ember-cli: 5.1.0
node: 20.3.1
os: darwin arm64

$ pnpm --version
8.6.7

2. Create Project from ember new

Setup

$ EMBER_CLI_PNPM=true ember new super-listings --embroider=true --typescript=true --pnpm=true

WARNING: Ember CLI v5.1.0 is not tested against Node v20.3.1. See "https://github.com/ember-cli/ember-cli/blob/master/docs/node-support.md" to find out which version of Node is best to use.
installing app
Ember CLI v5.1.0

✨  Creating a new Ember app in /Users/devel/Development/learning/ember/super-listings:
You passed the '--typescript' flag but there is no TypeScript blueprint available. A JavaScript blueprint will be generated instead.
You passed the '--typescript' flag but there is no TypeScript blueprint available. A JavaScript blueprint will be generated instead.
You passed the '--typescript' flag but there is no TypeScript blueprint available. A JavaScript blueprint will be generated instead.
You passed the '--typescript' flag but there is no TypeScript blueprint available. A JavaScript blueprint will be generated instead.
You passed the '--typescript' flag but there is no TypeScript blueprint available. A JavaScript blueprint will be generated instead.
You passed the '--typescript' flag but there is no TypeScript blueprint available. A JavaScript blueprint will be generated instead.
You passed the '--typescript' flag but there is no TypeScript blueprint available. A JavaScript blueprint will be generated instead.
You passed the '--typescript' flag but there is no TypeScript blueprint available. A JavaScript blueprint will be generated instead.
  create .editorconfig
  create .ember-cli
  create .eslintignore
  create .eslintrc.js
  create .github/workflows/ci.yml
  create .prettierignore
  create .prettierrc.js
  create .stylelintignore
  create .stylelintrc.js
  create .template-lintrc.js
  create .watchmanconfig
  create README.md
  create app/app.ts
  create app/components/.gitkeep
  create app/controllers/.gitkeep
  create app/helpers/.gitkeep
  create app/index.html
  create app/models/.gitkeep
  create app/router.ts
  create app/routes/.gitkeep
  create app/styles/app.css
  create app/templates/application.hbs
  create config/ember-cli-update.json
  create config/environment.js
  create config/optional-features.json
  create config/targets.js
  create ember-cli-build.js
  create .gitignore
  create package.json
  create public/robots.txt
  create testem.js
  create tests/helpers/index.ts
  create tests/index.html
  create tests/integration/.gitkeep
  create tests/test-helper.ts
  create tests/unit/.gitkeep
  install addon ember-cli-typescript

🚧  Installing packages... This might take a couple of minutes.
pnpm: Installed ember-cli-typescript
installing ember-cli-typescript
  install packages typescript, @tsconfig/ember, @types/ember, @types/ember-resolver, @types/ember__test-helpers, @types/ember__object, @types/ember__service, @types/ember__controller, @types/ember__destroyable, @types/ember__string, @types/ember__template, @types/ember__polyfills, @types/ember__utils, @types/ember__runloop, @types/ember__debug, @types/ember__engine, @types/ember__application, @types/ember__test, @types/ember__array, @types/ember__error, @types/ember__component, @types/ember__routing, @types/rsvp, @types/ember-data, @types/ember-data__adapter, @types/ember-data__model, @types/ember-data__serializer, @types/ember-data__store, @types/ember-qunit, @types/qunit

🚧  Installing packages... This might take a couple of minutes.
pnpm: Installed typescript@latest, @tsconfig/ember@latest and 28 other packages
  create app/config/environment.d.ts
  create tsconfig.json
  create types/super-listings/index.d.ts
  create types/ember-data/types/registries/model.d.ts
  create types/global.d.ts
Installed addon package.

🚧  Installing packages... This might take a couple of minutes.
pnpm: Installed dependencies

🎥  Initializing git repository.
Git: successfully initialized.

🎉  Successfully created project super-listings.
👉   Get started by typing:

  $ cd super-listings
  $ pnpm start

Happy coding!

Verify

  • Started ember server
  • Verified that WelcomePage could be reached
  • Verified that ember test works

3. Configure project to use ember-source types

Modify app/app.js

/**
 * @typedef {import('ember-source/types')} EmberTypes
 */

Modify types/super-listings/index.d.ts

import "ember-source/types";

Modify package.json

Remove packages as instructed in this ember blog article:

@types/ember
@types/ember__application
@types/ember__array
@types/ember__component
@types/ember__controller
@types/ember__debug
@types/ember__destroyable
@types/ember__engine
@types/ember__error
@types/ember__helper
@types/ember__modifier
@types/ember__object
@types/ember__owner
@types/ember__polyfills
@types/ember__routing
@types/ember__runloop
@types/ember__service
@types/ember__string
@types/ember__template
@types/ember__test
@types/ember__utils
$ pnpm install
 WARN  deprecated @types/[email protected]: This is a stub types definition. @ember/test-helpers provides its own type definitions, so you do not need this installed.
 WARN  deprecated @types/[email protected]: This is a stub types definition. ember-resolver provides its own type definitions, so you do not need this installed.
 WARN  deprecated @types/[email protected]: This is a stub types definition. ember-qunit provides its own type definitions, so you do not need this installed.
 WARN  deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
 WARN  deprecated @babel/[email protected]: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
 WARN  deprecated [email protected]: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
 WARN  deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
 WARN  deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
 WARN  deprecated [email protected]: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog
 WARN  deprecated [email protected]: Please use @jridgewell/sourcemap-codec instead
 WARN  deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
 WARN  deprecated [email protected]: This is probably built in to whatever tool you're using. If you still need it... idk
 WARN  deprecated @types/[email protected]: This is a stub types definition. broccoli-plugin provides its own type definitions, so you do not need this installed.
 WARN  deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
 WARN  deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
 WARN  deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
Packages: -1
-
Progress: resolved 1508, reused 1508, downloaded 0, added 0, done

devDependencies:
- @types/ember 4.0.4
- @types/ember__application 4.0.6
- @types/ember__array 4.0.4
- @types/ember__component 4.0.14
- @types/ember__controller 4.0.5
- @types/ember__debug 4.0.4
- @types/ember__destroyable 4.0.2
- @types/ember__engine 4.0.5
- @types/ember__error 4.0.3
- @types/ember__object 4.0.6
- @types/ember__polyfills 4.0.2
- @types/ember__routing 4.0.13
- @types/ember__runloop 4.0.3
- @types/ember__service 4.0.3
- @types/ember__string 3.0.11
- @types/ember__template 4.0.2
- @types/ember__test 4.0.2
- @types/ember__utils 4.0.3

 WARN  Issues with peer dependencies found
.
└─┬ ember-data 5.1.1
  └─┬ @ember-data/model 5.1.1
    └─┬ ember-cached-decorator-polyfill 1.0.1
      └── ✕ unmet peer ember-source@"^3.13.0 || ^4.0.0": found 5.1.2

Done in 3.5s

Remove additional packages from package.json

As you could see in the previous output, there are warnings about types that already provide their own definitions. Remove those additional packages:

@types/ember-qunit
@types/ember-resolver
@types/ember__test-helpers
$ pnpm install
 WARN  deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
 WARN  deprecated @babel/[email protected]: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
 WARN  deprecated [email protected]: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
 WARN  deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
 WARN  deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
 WARN  deprecated [email protected]: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog
 WARN  deprecated [email protected]: Please use @jridgewell/sourcemap-codec instead
 WARN  deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
 WARN  deprecated @types/[email protected]: This is a stub types definition. broccoli-plugin provides its own type definitions, so you do not need this installed.
 WARN  deprecated [email protected]: This is probably built in to whatever tool you're using. If you still need it... idk
 WARN  deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
 WARN  deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
 WARN  deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
Packages: -3
---
Progress: resolved 1505, reused 1505, downloaded 0, added 0, done

devDependencies:
- @types/ember__test-helpers 2.9.1
- @types/ember-qunit 6.1.1
- @types/ember-resolver 9.0.0

 WARN  Issues with peer dependencies found
.
└─┬ ember-data 5.1.1
  └─┬ @ember-data/model 5.1.1
    └─┬ ember-cached-decorator-polyfill 1.0.1
      └── ✕ unmet peer ember-source@"^3.13.0 || ^4.0.0": found 5.1.2

Done in 2.9s

Start Ember Serve (fails)

$ ember serve
WARNING: Ember CLI v5.1.0 is not tested against Node v20.3.1. See "https://github.com/ember-cli/ember-cli/blob/master/docs/node-support.md" to find out which version of Node is best to use.
node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__object/-private/types.d.ts:75:39 - error TS2315: Type 'Mixin' is not generic.

75 export type MixinOrLiteral<T, Base> = Mixin<T, Base> | T;
                                         ~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__object/observable.d.ts:92:27 - error TS2315: Type 'Mixin' is not generic.

92 declare const Observable: Mixin<Observable, CoreObject>;
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__object/index.d.ts:50:4 - error TS2315: Type 'ComputedProperty' is not generic.

50 ): ComputedProperty<Get, Set>;
      ~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__object/index.d.ts:121:32 - error TS2315: Type 'ComputedProperty' is not generic.

121     desc: PropertyDescriptor | ComputedProperty<unknown>,
                                   ~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__engine/-private/registry-proxy-mixin.d.ts:51:35 - error TS2315: Type 'Mixin' is not generic.

51 declare const RegistryProxyMixin: Mixin<RegistryProxyMixin>;
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__engine/-private/container-proxy-mixin.d.ts:14:36 - error TS2315: Type 'Mixin' is not generic.

14 declare const ContainerProxyMixin: Mixin<ContainerProxyMixin>;
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__object/evented.d.ts:48:24 - error TS2315: Type 'Mixin' is not generic.

48 declare const Evented: Mixin<Evented>;
                          ~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__service/index.d.ts:18:27 - error TS2315: Type 'ComputedProperty' is not generic.

18 export function inject(): ComputedProperty<Service>; // @inject() foo, foo: inject()
                             ~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__service/index.d.ts:20:60 - error TS2315: Type 'ComputedProperty' is not generic.

20 export function inject<K extends keyof Registry>(name: K): ComputedProperty<Registry[K]>; // @inject('store') foo      @inject() foo
                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__service/index.d.ts:26:28 - error TS2315: Type 'ComputedProperty' is not generic.

26 export function service(): ComputedProperty<Service>; // @service() foo, foo: service()
                              ~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__service/index.d.ts:28:61 - error TS2315: Type 'ComputedProperty' is not generic.

28 export function service<K extends keyof Registry>(name: K): ComputedProperty<Registry[K]>; // @service('store') foo      @service() foo
                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]/node_modules/@glimmer/validator/dist/types/lib/validators.d.ts:78:45 - error TS2422: A class can only implement an object type or intersection of object types with statically known members.

78 declare class MonomorphicTagImpl implements MonomorphicTag {
                                               ~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]/node_modules/@glimmer/manager/dist/types/lib/public/modifier.d.ts:45:5 - error TS2416: Property 'getTag' in type 'CustomModifierManager<O, ModifierInstance>' is not assignable to the same property in base type 'InternalModifierManager<CustomModifierState<ModifierInstance>, object>'.
  Type '({ tag }: CustomModifierState<ModifierInstance>) => UpdatableTag' is not assignable to type '(modifier: CustomModifierState<ModifierInstance>) => UpdatableTag | null'.
    Type 'MonomorphicTagBase<MonomorphicTagTypes.Updatable>' is missing the following properties from type 'MonomorphicTagBase<MonomorphicTagTypes.Updatable>': [TYPE], [COMPUTE]

45     getTag({ tag }: CustomModifierState<ModifierInstance>): UpdatableTag;
       ~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/mutable-enumerable.d.ts:27:34 - error TS2315: Type 'Mixin' is not generic.

27 declare const MutableEnumerable: Mixin<MutableEnumerable<unknown>>;
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property ''[]'' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'any' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'compact' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'every' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'filter' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'filterBy' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'find' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'findBy' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'forEach' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'getEach' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'invoke' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'isAny' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'isEvery' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'map' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'mapBy' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'reduce' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'reject' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'rejectBy' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'setEach' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'sortBy' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'uniq' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'uniqBy' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:12:11 - error TS2320: Interface 'MutableArray<T>' cannot simultaneously extend types 'EmberArray<T>' and 'MutableEnumerable<T>'.
  Named property 'without' of types 'EmberArray<T>' and 'MutableEnumerable<T>' are not identical.

12 interface MutableArray<T> extends EmberArray<T>, MutableEnumerable<T> {
             ~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/mutable.d.ts:74:29 - error TS2315: Type 'Mixin' is not generic.

74 declare const MutableArray: Mixin<MutableArray<unknown>>;
                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/native-array.d.ts:15:11 - error TS2320: Interface 'NativeArray<T>' cannot simultaneously extend types 'GlobalArray<T>' and 'MutableArray<T>'.
  Named property 'every' of types 'GlobalArray<T>' and 'MutableArray<T>' are not identical.

15 interface NativeArray<T> extends GlobalArray<T>, MutableArray<T>, Observable {
             ~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/native-array.d.ts:15:11 - error TS2320: Interface 'NativeArray<T>' cannot simultaneously extend types 'GlobalArray<T>' and 'MutableArray<T>'.
  Named property 'filter' of types 'GlobalArray<T>' and 'MutableArray<T>' are not identical.

15 interface NativeArray<T> extends GlobalArray<T>, MutableArray<T>, Observable {
             ~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/native-array.d.ts:15:11 - error TS2320: Interface 'NativeArray<T>' cannot simultaneously extend types 'GlobalArray<T>' and 'MutableArray<T>'.
  Named property 'find' of types 'GlobalArray<T>' and 'MutableArray<T>' are not identical.

15 interface NativeArray<T> extends GlobalArray<T>, MutableArray<T>, Observable {
             ~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/native-array.d.ts:15:11 - error TS2320: Interface 'NativeArray<T>' cannot simultaneously extend types 'GlobalArray<T>' and 'MutableArray<T>'.
  Named property 'forEach' of types 'GlobalArray<T>' and 'MutableArray<T>' are not identical.

15 interface NativeArray<T> extends GlobalArray<T>, MutableArray<T>, Observable {
             ~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/native-array.d.ts:15:11 - error TS2320: Interface 'NativeArray<T>' cannot simultaneously extend types 'GlobalArray<T>' and 'MutableArray<T>'.
  Named property 'map' of types 'GlobalArray<T>' and 'MutableArray<T>' are not identical.

15 interface NativeArray<T> extends GlobalArray<T>, MutableArray<T>, Observable {
             ~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/native-array.d.ts:15:11 - error TS2320: Interface 'NativeArray<T>' cannot simultaneously extend types 'GlobalArray<T>' and 'MutableArray<T>'.
  Named property 'reduce' of types 'GlobalArray<T>' and 'MutableArray<T>' are not identical.

15 interface NativeArray<T> extends GlobalArray<T>, MutableArray<T>, Observable {
             ~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/native-array.d.ts:15:11 - error TS2320: Interface 'NativeArray<T>' cannot simultaneously extend types 'GlobalArray<T>' and 'MutableArray<T>'.
  Named property 'slice' of types 'GlobalArray<T>' and 'MutableArray<T>' are not identical.

15 interface NativeArray<T> extends GlobalArray<T>, MutableArray<T>, Observable {
             ~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/native-array.d.ts:22:28 - error TS2315: Type 'Mixin' is not generic.

22 declare const NativeArray: Mixin<NativeArray<unknown>>;
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/enumerable.d.ts:163:11 - error TS2315: Type 'ComputedProperty' is not generic.

163     '[]': ComputedProperty<this>;
              ~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/-private/enumerable.d.ts:166:27 - error TS2315: Type 'Mixin' is not generic.

166 declare const Enumerable: Mixin<Enumerable<unknown>>;
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/index.d.ts:23:22 - error TS2315: Type 'ComputedProperty' is not generic.

23     length: number | ComputedProperty<number>;
                        ~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/index.d.ts:60:14 - error TS2315: Type 'ComputedProperty' is not generic.

60     '@each': ComputedProperty<T>;
                ~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/index.d.ts:64:22 - error TS2315: Type 'Mixin' is not generic.

64 declare const Array: Mixin<Array<unknown>>;
                        ~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__object/-private/action-handler.d.ts:27:30 - error TS2315: Type 'Mixin' is not generic.

27 declare const ActionHandler: Mixin<ActionHandler>;
                                ~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__component/-private/class-names-support.d.ts:24:34 - error TS2315: Type 'Mixin' is not generic.

24 declare const ClassNamesSupport: Mixin<ClassNamesSupport>;
                                    ~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__component/-private/view-mixin.d.ts:55:26 - error TS2315: Type 'Mixin' is not generic.

55 declare const ViewMixin: Mixin<ViewMixin>;
                            ~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__controller/index.d.ts:52:27 - error TS2315: Type 'ComputedProperty' is not generic.

52 export function inject(): ComputedProperty<Controller>;
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__controller/index.d.ts:53:60 - error TS2315: Type 'ComputedProperty' is not generic.

53 export function inject<K extends keyof Registry>(name: K): ComputedProperty<Registry[K]>;
                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected]/node_modules/ember-source/types/stable/@ember/service/owner-ext.d.ts:9:5 - error TS2717: Subsequent property declarations must have the same type.  Property 'service' must be of type 'Registry', but here has type 'Registry'.

9     service: Registry;
      ~~~~~~~

  node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__service/index.d.ts:37:9
    37         service: Registry;
               ~~~~~~~
    'service' was also declared here.

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__array/proxy.d.ts:6:22 - error TS2315: Type 'ComputedProperty' is not generic.

6     length: number | ComputedProperty<number>;
                       ~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@types/ember__object/promise-proxy-mixin.d.ts:34:34 - error TS2315: Type 'Mixin' is not generic.

34 declare const PromiseProxyMixin: Mixin<PromiseProxyMixin<any>>;
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Typechecking failed


Stack Trace and Error Report: /var/folders/kf/p0r0x76j7lq2ct_gm8s_ly540000gq/T/error.dump.6a5f4da78187a7a248111f7cd4c06897.log

Remove Conflicting Types

These errors occur because old type definitions are loaded in addition to the built in ember-source type defintions. The dependencies come from ember-data. This is a known issue (see Caveats section on the blog post)

Determine why old types installed
$ pnpm why @types/ember__object
Legend: production dependency, optional only, dev only

[email protected] /Users/devel/Development/learning/ember/super-rentals

devDependencies:
@types/ember-data 4.4.11
├─┬ @types/ember 4.0.4
│ ├─┬ @types/ember__application 4.0.6
│ │ ├─┬ @types/ember__engine 4.0.5
│ │ │ └── @types/ember__object 4.0.6
│ │ ├── @types/ember__object 4.0.6
│ │ └─┬ @types/ember__routing 4.0.13
│ │   ├─┬ @types/ember__controller 4.0.5
│ │   │ └── @types/ember__object 4.0.6
│ │   ├── @types/ember__object 4.0.6
│ │   └─┬ @types/ember__service 4.0.3
│ │     └── @types/ember__object 4.0.6
│ ├─┬ @types/ember__array 4.0.4
│ │ └── @types/ember__object 4.0.6
│ ├─┬ @types/ember__component 4.0.14
│ │ └── @types/ember__object 4.0.6
│ ├─┬ @types/ember__controller 4.0.5
│ │ └── @types/ember__object 4.0.6
│ ├─┬ @types/ember__debug 4.0.4
│ │ └── @types/ember__object 4.0.6
│ ├─┬ @types/ember__engine 4.0.5
│ │ └── @types/ember__object 4.0.6
│ ├── @types/ember__object 4.0.6
│ ├─┬ @types/ember__routing 4.0.13
│ │ ├─┬ @types/ember__controller 4.0.5
│ │ │ └── @types/ember__object 4.0.6
│ │ ├── @types/ember__object 4.0.6
│ │ └─┬ @types/ember__service 4.0.3
│ │   └── @types/ember__object 4.0.6
│ ├─┬ @types/ember__service 4.0.3
│ │ └── @types/ember__object 4.0.6
│ └─┬ @types/ember__test 4.0.2
│   └─┬ @types/ember__application 4.0.6
│     ├─┬ @types/ember__engine 4.0.5
│     │ └── @types/ember__object 4.0.6
│     ├── @types/ember__object 4.0.6
│     └─┬ @types/ember__routing 4.0.13
│       ├─┬ @types/ember__controller 4.0.5
│       │ └── @types/ember__object 4.0.6
│       ├── @types/ember__object 4.0.6
│       └─┬ @types/ember__service 4.0.3
│         └── @types/ember__object 4.0.6
└── @types/ember__object 4.0.6
@types/ember-data__adapter 4.0.2
└─┬ @types/ember-data 4.4.11
  ├─┬ @types/ember 4.0.4
  │ ├─┬ @types/ember__application 4.0.6
  │ │ ├─┬ @types/ember__engine 4.0.5
  │ │ │ └── @types/ember__object 4.0.6
  │ │ ├── @types/ember__object 4.0.6
  │ │ └─┬ @types/ember__routing 4.0.13
  │ │   ├─┬ @types/ember__controller 4.0.5
  │ │   │ └── @types/ember__object 4.0.6
  │ │   ├── @types/ember__object 4.0.6
  │ │   └─┬ @types/ember__service 4.0.3
  │ │     └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__array 4.0.4
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__component 4.0.14
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__controller 4.0.5
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__debug 4.0.4
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__engine 4.0.5
  │ │ └── @types/ember__object 4.0.6
  │ ├── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__routing 4.0.13
  │ │ ├─┬ @types/ember__controller 4.0.5
  │ │ │ └── @types/ember__object 4.0.6
  │ │ ├── @types/ember__object 4.0.6
  │ │ └─┬ @types/ember__service 4.0.3
  │ │   └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__service 4.0.3
  │ │ └── @types/ember__object 4.0.6
  │ └─┬ @types/ember__test 4.0.2
  │   └─┬ @types/ember__application 4.0.6
  │     ├─┬ @types/ember__engine 4.0.5
  │     │ └── @types/ember__object 4.0.6
  │     ├── @types/ember__object 4.0.6
  │     └─┬ @types/ember__routing 4.0.13
  │       ├─┬ @types/ember__controller 4.0.5
  │       │ └── @types/ember__object 4.0.6
  │       ├── @types/ember__object 4.0.6
  │       └─┬ @types/ember__service 4.0.3
  │         └── @types/ember__object 4.0.6
  └── @types/ember__object 4.0.6
@types/ember-data__model 4.0.1
└─┬ @types/ember-data 4.4.11
  ├─┬ @types/ember 4.0.4
  │ ├─┬ @types/ember__application 4.0.6
  │ │ ├─┬ @types/ember__engine 4.0.5
  │ │ │ └── @types/ember__object 4.0.6
  │ │ ├── @types/ember__object 4.0.6
  │ │ └─┬ @types/ember__routing 4.0.13
  │ │   ├─┬ @types/ember__controller 4.0.5
  │ │   │ └── @types/ember__object 4.0.6
  │ │   ├── @types/ember__object 4.0.6
  │ │   └─┬ @types/ember__service 4.0.3
  │ │     └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__array 4.0.4
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__component 4.0.14
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__controller 4.0.5
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__debug 4.0.4
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__engine 4.0.5
  │ │ └── @types/ember__object 4.0.6
  │ ├── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__routing 4.0.13
  │ │ ├─┬ @types/ember__controller 4.0.5
  │ │ │ └── @types/ember__object 4.0.6
  │ │ ├── @types/ember__object 4.0.6
  │ │ └─┬ @types/ember__service 4.0.3
  │ │   └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__service 4.0.3
  │ │ └── @types/ember__object 4.0.6
  │ └─┬ @types/ember__test 4.0.2
  │   └─┬ @types/ember__application 4.0.6
  │     ├─┬ @types/ember__engine 4.0.5
  │     │ └── @types/ember__object 4.0.6
  │     ├── @types/ember__object 4.0.6
  │     └─┬ @types/ember__routing 4.0.13
  │       ├─┬ @types/ember__controller 4.0.5
  │       │ └── @types/ember__object 4.0.6
  │       ├── @types/ember__object 4.0.6
  │       └─┬ @types/ember__service 4.0.3
  │         └── @types/ember__object 4.0.6
  └── @types/ember__object 4.0.6
@types/ember-data__serializer 4.0.2
└─┬ @types/ember-data 4.4.11
  ├─┬ @types/ember 4.0.4
  │ ├─┬ @types/ember__application 4.0.6
  │ │ ├─┬ @types/ember__engine 4.0.5
  │ │ │ └── @types/ember__object 4.0.6
  │ │ ├── @types/ember__object 4.0.6
  │ │ └─┬ @types/ember__routing 4.0.13
  │ │   ├─┬ @types/ember__controller 4.0.5
  │ │   │ └── @types/ember__object 4.0.6
  │ │   ├── @types/ember__object 4.0.6
  │ │   └─┬ @types/ember__service 4.0.3
  │ │     └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__array 4.0.4
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__component 4.0.14
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__controller 4.0.5
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__debug 4.0.4
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__engine 4.0.5
  │ │ └── @types/ember__object 4.0.6
  │ ├── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__routing 4.0.13
  │ │ ├─┬ @types/ember__controller 4.0.5
  │ │ │ └── @types/ember__object 4.0.6
  │ │ ├── @types/ember__object 4.0.6
  │ │ └─┬ @types/ember__service 4.0.3
  │ │   └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__service 4.0.3
  │ │ └── @types/ember__object 4.0.6
  │ └─┬ @types/ember__test 4.0.2
  │   └─┬ @types/ember__application 4.0.6
  │     ├─┬ @types/ember__engine 4.0.5
  │     │ └── @types/ember__object 4.0.6
  │     ├── @types/ember__object 4.0.6
  │     └─┬ @types/ember__routing 4.0.13
  │       ├─┬ @types/ember__controller 4.0.5
  │       │ └── @types/ember__object 4.0.6
  │       ├── @types/ember__object 4.0.6
  │       └─┬ @types/ember__service 4.0.3
  │         └── @types/ember__object 4.0.6
  └── @types/ember__object 4.0.6
@types/ember-data__store 4.0.3
└─┬ @types/ember-data 4.4.11
  ├─┬ @types/ember 4.0.4
  │ ├─┬ @types/ember__application 4.0.6
  │ │ ├─┬ @types/ember__engine 4.0.5
  │ │ │ └── @types/ember__object 4.0.6
  │ │ ├── @types/ember__object 4.0.6
  │ │ └─┬ @types/ember__routing 4.0.13
  │ │   ├─┬ @types/ember__controller 4.0.5
  │ │   │ └── @types/ember__object 4.0.6
  │ │   ├── @types/ember__object 4.0.6
  │ │   └─┬ @types/ember__service 4.0.3
  │ │     └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__array 4.0.4
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__component 4.0.14
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__controller 4.0.5
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__debug 4.0.4
  │ │ └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__engine 4.0.5
  │ │ └── @types/ember__object 4.0.6
  │ ├── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__routing 4.0.13
  │ │ ├─┬ @types/ember__controller 4.0.5
  │ │ │ └── @types/ember__object 4.0.6
  │ │ ├── @types/ember__object 4.0.6
  │ │ └─┬ @types/ember__service 4.0.3
  │ │   └── @types/ember__object 4.0.6
  │ ├─┬ @types/ember__service 4.0.3
  │ │ └── @types/ember__object 4.0.6
  │ └─┬ @types/ember__test 4.0.2
  │   └─┬ @types/ember__application 4.0.6
  │     ├─┬ @types/ember__engine 4.0.5
  │     │ └── @types/ember__object 4.0.6
  │     ├── @types/ember__object 4.0.6
  │     └─┬ @types/ember__routing 4.0.13
  │       ├─┬ @types/ember__controller 4.0.5
  │       │ └── @types/ember__object 4.0.6
  │       ├── @types/ember__object 4.0.6
  │       └─┬ @types/ember__service 4.0.3
  │         └── @types/ember__object 4.0.6
  └── @types/ember__object 4.0.6
Create .npmrc to prevent conflicting @types packages from being installed
hoist-pattern[]=*
hoist-pattern[]=!@types/ember
hoist-pattern[]=!@types/ember__application
hoist-pattern[]=!@types/ember__array
hoist-pattern[]=!@types/ember__component
hoist-pattern[]=!@types/ember__controller
hoist-pattern[]=!@types/ember__debug
hoist-pattern[]=!@types/ember__destroyable
hoist-pattern[]=!@types/ember__engine
hoist-pattern[]=!@types/ember__error
hoist-pattern[]=!@types/ember__helper
hoist-pattern[]=!@types/ember__modifier
hoist-pattern[]=!@types/ember__object
hoist-pattern[]=!@types/ember__owner
hoist-pattern[]=!@types/ember__polyfills
hoist-pattern[]=!@types/ember__routing
hoist-pattern[]=!@types/ember__runloop
hoist-pattern[]=!@types/ember__service
hoist-pattern[]=!@types/ember__string
hoist-pattern[]=!@types/ember__template
hoist-pattern[]=!@types/ember__test
hoist-pattern[]=!@types/ember__utils
hoist-pattern[]=!@types/ember-qunit
hoist-pattern[]=!@types/ember-resolver
hoist-pattern[]=!@types/ember__test-helpers
Re-run pnpm install:
$ pnpm install
✔ The modules directory at "/Users/devel/Development/learning/ember/super-rentals/node_modules" will be removed and reinstalled from scratch. Proceed? (Y/n) · true
Recreating /Users/devel/Development/learning/ember/super-rentals/node_modules
Lockfile is up to date, resolution step is skipped
Packages: +1505
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: /Users/devel/Library/pnpm/store/v3
  Virtual store is at:             node_modules/.pnpm
Progress: resolved 1505, reused 1505, downloaded 0, added 1505, done
j[
devDependencies:
+ @ember/optional-features 2.0.0
+ @ember/string 3.1.1
+ @ember/test-helpers 3.2.0
+ @embroider/compat 3.1.5
+ @embroider/core 3.1.3
+ @embroider/webpack 3.1.3
+ @glimmer/component 1.1.2
+ @glimmer/tracking 1.1.2
+ @tsconfig/ember 3.0.0
+ @types/ember-data 4.4.11
+ @types/ember-data__adapter 4.0.2
+ @types/ember-data__model 4.0.1
+ @types/ember-data__serializer 4.0.2
+ @types/ember-data__store 4.0.3
+ @types/qunit 2.19.6
+ @types/rsvp 4.0.4
+ @typescript-eslint/eslint-plugin 5.62.0
+ @typescript-eslint/parser 5.62.0
+ broccoli-asset-rev 3.0.0
+ concurrently 8.2.0
+ ember-auto-import 2.6.3
+ ember-cli 5.1.0
+ ember-cli-app-version 6.0.1
+ ember-cli-babel 7.26.11
+ ember-cli-clean-css 2.0.0
+ ember-cli-dependency-checker 3.3.2
+ ember-cli-htmlbars 6.2.0
+ ember-cli-inject-live-reload 2.1.0
+ ember-cli-typescript 5.2.1
+ ember-data 5.1.1
+ ember-fetch 8.1.2
+ ember-load-initializers 2.1.2
+ ember-modifier 4.1.0
+ ember-page-title 7.0.0
+ ember-qunit 7.0.0
+ ember-resolver 10.1.1
+ ember-source 5.1.2
+ ember-template-lint 5.11.0
+ ember-welcome-page 7.0.2
+ eslint 8.45.0
+ eslint-config-prettier 8.8.0
+ eslint-plugin-ember 11.10.0
+ eslint-plugin-n 16.0.1
+ eslint-plugin-prettier 4.2.1
+ eslint-plugin-qunit 8.0.0
+ loader.js 4.7.0
+ prettier 2.8.8
+ qunit 2.19.4
+ qunit-dom 2.0.0
+ stylelint 15.10.1
+ stylelint-config-standard 33.0.0
+ stylelint-prettier 3.0.0
+ tracked-built-ins 3.1.1
+ typescript 5.1.6
+ webpack 5.88.1

Done in 16.7s

Attempt to Restart Ember server

$ ember serve
WARNING: Ember CLI v5.1.0 is not tested against Node v20.3.1. See "https://github.com/ember-cli/ember-cli/blob/master/docs/node-support.md" to find out which version of Node is best to use.
node_modules/.pnpm/@[email protected]/node_modules/@glimmer/validator/dist/types/lib/validators.d.ts:78:45 - error TS2422: A class can only implement an object type or intersection of object types with statically known members.

78 declare class MonomorphicTagImpl implements MonomorphicTag {
                                               ~~~~~~~~~~~~~~

node_modules/.pnpm/@[email protected]/node_modules/@glimmer/manager/dist/types/lib/public/modifier.d.ts:45:5 - error TS2416: Property 'getTag' in type 'CustomModifierManager<O, ModifierInstance>' is not assignable to the same property in base type 'InternalModifierManager<CustomModifierState<ModifierInstance>, object>'.
  Type '({ tag }: CustomModifierState<ModifierInstance>) => UpdatableTag' is not assignable to type '(modifier: CustomModifierState<ModifierInstance>) => UpdatableTag | null'.
    Type 'MonomorphicTagBase<MonomorphicTagTypes.Updatable>' is missing the following properties from type 'MonomorphicTagBase<MonomorphicTagTypes.Updatable>': [TYPE], [COMPUTE]

45     getTag({ tag }: CustomModifierState<ModifierInstance>): UpdatableTag;
       ~~~~~~

Typechecking failed


Stack Trace and Error Report: /var/folders/kf/p0r0x76j7lq2ct_gm8s_ly540000gq/T/error.dump.1ea72f3845d761da4545043f4051d92f.log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment