diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml
index 9165cf41..9bbadde1 100644
--- a/.github/workflows/ci-build.yml
+++ b/.github/workflows/ci-build.yml
@@ -86,10 +86,6 @@ jobs:
run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}'
working-directory: ./test-apps/base-tests/
- - name: 'Change ember-concurrency TS to ${{ matrix.typescript-scenario }}'
- run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}'
- working-directory: ./test-apps/ember-concurrency-v2
-
- name: 'Change ember-fetch TS to ${{ matrix.typescript-scenario }}'
run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}'
working-directory: ./test-apps/ember-fetch-v8
@@ -110,7 +106,6 @@ jobs:
matrix:
app:
- test-apps/base-tests
- - test-apps/ember-concurrency-v2
ember-try-scenario:
- ember-lts-3.16
- ember-lts-3.20
diff --git a/addon/addon/wait-for.ts b/addon/addon/wait-for.ts
index e0f89868..cdd14eac 100644
--- a/addon/addon/wait-for.ts
+++ b/addon/addon/wait-for.ts
@@ -48,32 +48,6 @@ type DecoratorArguments = [object, string, PropertyDescriptor, string?];
* }
* }
*
- * @example
- *
- * import Component from '@ember/component';
- * import { task } from 'ember-concurrency';
- * import { waitFor } from '@ember/test-waiters';
- *
- * export default Component.extend({
- * doTaskStuff: task(waitFor(function* doTaskStuff() {
- * yield somethingAsync();
- * }
- * });
- *
- * @example
- *
- * import Component from '@ember/component';
- * import { task } from 'ember-concurrency-decorators';
- * import { waitFor } from '@ember/test-waiters';
- *
- * export default class Friendz extends Component {
- * @task
- * @waitFor
- * *doTaskStuff() {
- * yield somethingAsync();
- * }
- * }
- *
*/
export default function waitFor, PromiseReturn>(
fn: AsyncFunction,
diff --git a/addon/package.json b/addon/package.json
index 0c17cbd0..461743f3 100644
--- a/addon/package.json
+++ b/addon/package.json
@@ -53,8 +53,6 @@
"ember-cli-htmlbars": "^6.3.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-uglify": "^3.0.0",
- "ember-concurrency-decorators": "^2.0.3",
- "ember-concurrency-ts": "^0.3.1",
"ember-decorators-polyfill": "^1.1.5",
"ember-disable-prototype-extensions": "^1.1.3",
"ember-load-initializers": "^2.1.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2fc53609..99ae78a5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -87,12 +87,6 @@ importers:
ember-cli-uglify:
specifier: ^3.0.0
version: 3.0.0
- ember-concurrency-decorators:
- specifier: ^2.0.3
- version: 2.0.3(@babel/core@7.24.5)
- ember-concurrency-ts:
- specifier: ^0.3.1
- version: 0.3.1(ember-concurrency@2.3.7)
ember-decorators-polyfill:
specifier: ^1.1.5
version: 1.1.5(@babel/core@7.24.5)
@@ -326,184 +320,6 @@ importers:
specifier: ^5.88.2
version: 5.88.2
- test-apps/ember-concurrency-v2:
- dependencies:
- '@ember/test-waiters':
- specifier: workspace:*
- version: link:../../addon
- devDependencies:
- '@babel/core':
- specifier: ^7.24.5
- version: 7.24.5(supports-color@8.1.1)
- '@ember/optional-features':
- specifier: ^2.0.0
- version: 2.0.0
- '@ember/string':
- specifier: ^3.1.1
- version: 3.1.1
- '@ember/test-helpers':
- specifier: ^3.2.0
- version: 3.2.0(@glint/template@1.2.1)(ember-source@5.3.0)(webpack@5.88.2)
- '@glimmer/component':
- specifier: ^1.1.2
- version: 1.1.2(@babel/core@7.24.5)
- '@glimmer/env':
- specifier: ^0.1.7
- version: 0.1.7
- '@glimmer/tracking':
- specifier: ^1.1.2
- version: 1.1.2
- '@glint/environment-ember-loose':
- specifier: ^1.1.0
- version: 1.2.1(@glimmer/component@1.1.2)(@glint/template@1.2.1)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0)
- '@glint/template':
- specifier: ^1.1.0
- version: 1.2.1
- '@tsconfig/ember':
- specifier: ^3.0.6
- version: 3.0.6
- '@types/qunit':
- specifier: ^2.19.9
- version: 2.19.9
- '@types/rsvp':
- specifier: ^4.0.4
- version: 4.0.4
- '@typescript-eslint/eslint-plugin':
- specifier: ^6.7.2
- version: 6.9.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.0.4)
- '@typescript-eslint/parser':
- specifier: ^6.7.2
- version: 6.9.0(eslint@8.52.0)(typescript@5.0.4)
- broccoli-asset-rev:
- specifier: ^3.0.0
- version: 3.0.0
- co:
- specifier: ^4.6.0
- version: 4.6.0
- concurrently:
- specifier: ^8.2.1
- version: 8.2.1
- ember-auto-import:
- specifier: ^2.7.2
- version: 2.7.2(@glint/template@1.2.1)(webpack@5.88.2)
- ember-cli:
- specifier: ~5.3.0
- version: 5.3.0
- ember-cli-app-version:
- specifier: ^6.0.1
- version: 6.0.1(ember-source@5.3.0)
- ember-cli-babel:
- specifier: ^8.0.0
- version: 8.2.0(@babel/core@7.24.5)
- ember-cli-clean-css:
- specifier: ^3.0.0
- version: 3.0.0
- ember-cli-dependency-checker:
- specifier: ^3.3.2
- version: 3.3.2(ember-cli@5.3.0)
- ember-cli-htmlbars:
- specifier: ^6.3.0
- version: 6.3.0
- ember-cli-inject-live-reload:
- specifier: ^2.1.0
- version: 2.1.0
- ember-cli-sri:
- specifier: ^2.1.1
- version: 2.1.1
- ember-cli-terser:
- specifier: ^4.0.2
- version: 4.0.2
- ember-concurrency:
- specifier: ^2.1.2
- version: 2.3.7(@babel/core@7.24.5)
- ember-concurrency-decorators:
- specifier: ^2.0.3
- version: 2.0.3(@babel/core@7.24.5)
- ember-concurrency-ts:
- specifier: ^0.3.1
- version: 0.3.1(ember-concurrency@2.3.7)
- ember-fetch:
- specifier: ^8.1.2
- version: 8.1.2
- ember-load-initializers:
- specifier: ^2.1.2
- version: 2.1.2(@babel/core@7.24.5)
- ember-modifier:
- specifier: ^4.1.0
- version: 4.1.0(ember-source@5.3.0)
- ember-page-title:
- specifier: ^8.0.0
- version: 8.0.0
- ember-qunit:
- specifier: ^8.0.2
- version: 8.0.2(@ember/test-helpers@3.2.0)(@glint/template@1.2.1)(ember-source@5.3.0)(qunit@2.20.0)
- ember-resolver:
- specifier: ^11.0.1
- version: 11.0.1(ember-source@5.3.0)
- ember-source:
- specifier: ~5.3.0
- version: 5.3.0(@babel/core@7.24.5)(@glimmer/component@1.1.2)(@glint/template@1.2.1)(rsvp@4.8.5)(webpack@5.88.2)
- ember-source-channel-url:
- specifier: ^3.0.0
- version: 3.0.0
- ember-template-lint:
- specifier: ^5.11.2
- version: 5.11.2
- ember-try:
- specifier: ^3.0.0
- version: 3.0.0
- ember-welcome-page:
- specifier: ^7.0.2
- version: 7.0.2
- eslint:
- specifier: ^8.49.0
- version: 8.52.0
- eslint-config-prettier:
- specifier: ^9.0.0
- version: 9.0.0(eslint@8.52.0)
- eslint-plugin-ember:
- specifier: ^11.11.1
- version: 11.11.1(eslint@8.52.0)
- eslint-plugin-n:
- specifier: ^16.1.0
- version: 16.2.0(eslint@8.52.0)
- eslint-plugin-prettier:
- specifier: ^5.0.0
- version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.52.0)(prettier@3.0.3)
- eslint-plugin-qunit:
- specifier: ^8.0.0
- version: 8.0.1(eslint@8.52.0)
- loader.js:
- specifier: ^4.7.0
- version: 4.7.0
- prettier:
- specifier: ^3.0.3
- version: 3.0.3
- qunit:
- specifier: ^2.20.0
- version: 2.20.0
- qunit-dom:
- specifier: ^3.0.0
- version: 3.0.0
- stylelint:
- specifier: ^15.10.3
- version: 15.11.0(typescript@5.0.4)
- stylelint-config-standard:
- specifier: ^34.0.0
- version: 34.0.0(stylelint@15.11.0)
- stylelint-prettier:
- specifier: ^4.0.2
- version: 4.0.2(prettier@3.0.3)(stylelint@15.11.0)
- tracked-built-ins:
- specifier: ^3.2.0
- version: 3.3.0
- typescript:
- specifier: ~5.0.0
- version: 5.0.4
- webpack:
- specifier: ^5.88.2
- version: 5.88.2
-
test-apps/ember-fetch-v8:
devDependencies:
'@babel/core':
@@ -3034,19 +2850,6 @@ packages:
- supports-color
dev: true
- /@babel/plugin-transform-typescript@7.8.7(@babel/core@7.24.5):
- resolution: {integrity: sha512-7O0UsPQVNKqpHeHLpfvOG4uXmlw+MOxYvUv6Otc9uH5SYMIxvF6eBdjkWvC3f9G+VXe0RsNExyAQBeTRug/wqQ==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.24.5(supports-color@8.1.1)
- '@babel/helper-create-class-features-plugin': 7.17.6(@babel/core@7.24.5)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript': 7.16.7(@babel/core@7.24.5)
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/@babel/plugin-transform-unicode-escapes@7.16.7(@babel/core@7.24.5):
resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==}
engines: {node: '>=6.9.0'}
@@ -3611,15 +3414,6 @@ packages:
/@ember-data/rfc395-data@0.0.4:
resolution: {integrity: sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ==}
- /@ember-decorators/utils@6.1.1:
- resolution: {integrity: sha512-0KqnoeoLKb6AyoSU65TRF5T85wmS4uDn06oARddwNPxxf/lt5jQlh41uX3W7V/fWL9tPu8x1L1Vvpc80MN1+YA==}
- engines: {node: '>= 8.*'}
- dependencies:
- ember-cli-babel: 7.26.11
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/@ember/edition-utils@1.2.0:
resolution: {integrity: sha512-VmVq/8saCaPdesQmftPqbFtxJWrzxNGSQ+e8x8LLe3Hjm36pJ04Q8LeORGZkAeOhldoUX9seLGmSaHeXkIqoog==}
dev: true
@@ -6157,11 +5951,6 @@ packages:
lodash: 4.17.21
dev: true
- /babel-plugin-htmlbars-inline-precompile@3.2.0:
- resolution: {integrity: sha512-IUeZmgs9tMUGXYu1vfke5I18yYJFldFGdNFQOWslXTnDWXzpwPih7QFduUqvT+awDpDuNtXpdt5JAf43Q1Hhzg==}
- engines: {node: 8.* || 10.* || >= 12.*}
- dev: true
-
/babel-plugin-htmlbars-inline-precompile@5.3.1:
resolution: {integrity: sha512-QWjjFgSKtSRIcsBhJmEwS2laIdrA6na8HAlc/pEAhjHgQsah/gMiBFRZvbQTy//hWxR4BMwV7/Mya7q5H8uHeA==}
engines: {node: 10.* || >= 12.*}
@@ -7154,14 +6943,6 @@ packages:
resolution: {integrity: sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==}
engines: {node: 8.* || >= 10.*}
- /broccoli-output-wrapper@2.0.0:
- resolution: {integrity: sha512-V/ozejo+snzNf75i/a6iTmp71k+rlvqjE3+jYfimuMwR1tjNNRdtfno+NGNQB2An9bIAeqZnKhMDurAznHAdtA==}
- dependencies:
- heimdalljs-logger: 0.1.10
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/broccoli-output-wrapper@3.2.5:
resolution: {integrity: sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw==}
engines: {node: 10.* || >= 12.*}
@@ -7257,21 +7038,6 @@ packages:
rimraf: 2.7.1
symlink-or-copy: 1.3.1
- /broccoli-plugin@3.1.0:
- resolution: {integrity: sha512-7w7FP8WJYjLvb0eaw27LO678TGGaom++49O1VYIuzjhXjK5kn2+AMlDm7CaUFw4F7CLGoVQeZ84d8gICMJa4lA==}
- engines: {node: 8.* || 10.* || >= 12.*}
- dependencies:
- broccoli-node-api: 1.7.0
- broccoli-output-wrapper: 2.0.0
- fs-merger: 3.2.1
- promise-map-series: 0.2.3
- quick-temp: 0.1.8
- rimraf: 2.7.1
- symlink-or-copy: 1.3.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/broccoli-plugin@4.0.7:
resolution: {integrity: sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==}
engines: {node: 10.* || >= 12.*}
@@ -8952,28 +8718,6 @@ packages:
resolution: {integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA==}
dev: true
- /ember-cli-htmlbars@4.5.0:
- resolution: {integrity: sha512-bYJpK1pqFu9AadDAGTw05g2LMNzY8xTCIqQm7dMJmKEoUpLRFbPf4SfHXrktzDh7Q5iggl6Skzf1M0bPlIxARw==}
- engines: {node: 8.* || 10.* || >= 12.*}
- dependencies:
- '@ember/edition-utils': 1.2.0
- babel-plugin-htmlbars-inline-precompile: 3.2.0
- broccoli-debug: 0.6.5
- broccoli-persistent-filter: 2.3.1
- broccoli-plugin: 3.1.0
- common-tags: 1.8.2
- ember-cli-babel-plugin-helpers: 1.1.1
- fs-tree-diff: 2.0.1
- hash-for-dep: 1.5.1
- heimdalljs-logger: 0.1.10
- json-stable-stringify: 1.0.1
- semver: 6.3.1
- strip-bom: 4.0.0
- walk-sync: 2.2.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/ember-cli-htmlbars@5.7.2:
resolution: {integrity: sha512-Uj6R+3TtBV5RZoJY14oZn/sNPnc+UgmC8nb5rI4P3fR/gYoyTFIZSXiIM7zl++IpMoIrocxOrgt+mhonKphgGg==}
engines: {node: 10.* || >= 12.*}
@@ -9151,29 +8895,6 @@ packages:
- supports-color
dev: true
- /ember-cli-typescript@3.1.4(@babel/core@7.24.5):
- resolution: {integrity: sha512-HJ73kL45OGRmIkPhBNFt31I1SGUvdZND+LCH21+qpq3pPlFpJG8GORyXpP+2ze8PbnITNLzwe5AwUrpyuRswdQ==}
- engines: {node: 8.* || >= 10.*}
- dependencies:
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7(@babel/core@7.24.5)
- '@babel/plugin-proposal-optional-chaining': 7.16.7(@babel/core@7.24.5)
- '@babel/plugin-transform-typescript': 7.8.7(@babel/core@7.24.5)
- ansi-to-html: 0.6.15
- broccoli-stew: 3.0.0
- debug: 4.3.4(supports-color@8.1.1)
- ember-cli-babel-plugin-helpers: 1.1.1
- execa: 3.4.0
- fs-extra: 8.1.0
- resolve: 1.22.0
- rsvp: 4.8.5
- semver: 6.3.1
- stagehand: 1.0.0
- walk-sync: 2.2.0
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
- dev: true
-
/ember-cli-typescript@4.2.1:
resolution: {integrity: sha512-0iKTZ+/wH6UB/VTWKvGuXlmwiE8HSIGcxHamwNhEC5x1mN3z8RfvsFZdQWYUzIWFN2Tek0gmepGRPTwWdBYl/A==}
engines: {node: 10.* || >= 12.*}
@@ -9578,63 +9299,6 @@ packages:
- supports-color
dev: true
- /ember-compatibility-helpers@1.2.7(@babel/core@7.24.5):
- resolution: {integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA==}
- engines: {node: 10.* || >= 12.*}
- dependencies:
- babel-plugin-debug-macros: 0.2.0(@babel/core@7.24.5)
- ember-cli-version-checker: 5.1.2
- find-up: 5.0.0
- fs-extra: 9.1.0
- semver: 5.7.2
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
- dev: true
-
- /ember-concurrency-decorators@2.0.3(@babel/core@7.24.5):
- resolution: {integrity: sha512-r6O34YKI/slyYapVsuOPnmaKC4AsmBSwvgcadbdy+jHNj+mnryXPkm+3hhhRnFdlsKUKdEuXvl43lhjhYRLhhA==}
- engines: {node: 10.* || >= 12}
- dependencies:
- '@ember-decorators/utils': 6.1.1
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 4.5.0
- ember-cli-typescript: 3.1.4(@babel/core@7.24.5)
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
- dev: true
-
- /ember-concurrency-ts@0.3.1(ember-concurrency@2.3.7):
- resolution: {integrity: sha512-lE9uqPgK1Y9PN/0BJ5zE2a+h95izRCn6FCyt7qVV3012TlblTynsBaoUuAbN1T3KfzFsrJaXwsxzRbDjEde2Sw==}
- engines: {node: 10.* || >= 12}
- peerDependencies:
- ember-concurrency: ^1.2.1 || ^2.0.0-rc.1
- dependencies:
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 4.5.0
- ember-concurrency: 2.3.7(@babel/core@7.24.5)
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /ember-concurrency@2.3.7(@babel/core@7.24.5):
- resolution: {integrity: sha512-sz6sTIXN/CuLb5wdpauFa+rWXuvXXSnSHS4kuNzU5GSMDX1pLBWSuovoUk61FUe6CYRqBmT1/UushObwBGickQ==}
- engines: {node: 10.* || 12.* || 14.* || >= 16}
- dependencies:
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.23.5
- '@glimmer/tracking': 1.1.2
- ember-cli-babel: 7.26.11
- ember-cli-babel-plugin-helpers: 1.1.1
- ember-cli-htmlbars: 5.7.2
- ember-compatibility-helpers: 1.2.7(@babel/core@7.24.5)
- ember-destroyable-polyfill: 2.0.3(@babel/core@7.24.5)
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
- dev: true
-
/ember-decorators-polyfill@1.1.5(@babel/core@7.24.5):
resolution: {integrity: sha512-O154i8sLoVjsiKzSqxGRfHGr+N+drT6mRrLDbNgJCnW/V5uLg/ppZFpUsrdxuXnp5Q9us3OfXV1nX2CH+7bUpA==}
engines: {node: 8.* || >= 10.*}
@@ -9647,18 +9311,6 @@ packages:
- supports-color
dev: true
- /ember-destroyable-polyfill@2.0.3(@babel/core@7.24.5):
- resolution: {integrity: sha512-TovtNqCumzyAiW0/OisSkkVK93xnVF4NRU6+FN0ubpfwEOpRrmM2RqDwXI6YAChCgSHON1cz0DfQStpA1Gjuuw==}
- engines: {node: 10.* || >= 12}
- dependencies:
- ember-cli-babel: 7.26.11
- ember-cli-version-checker: 5.1.2
- ember-compatibility-helpers: 1.2.6(@babel/core@7.24.5)
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
- dev: true
-
/ember-disable-prototype-extensions@1.1.3:
resolution: {integrity: sha512-SB9NcZ27OtoUk+gfalsc3QU17+54OoqR668qHcuvHByk4KAhGxCKlkm9EBlKJcGr7yceOOAJqohTcCEBqfRw9g==}
engines: {node: '>= 0.10.0'}
@@ -10671,22 +10323,6 @@ packages:
strip-final-newline: 2.0.0
dev: true
- /execa@3.4.0:
- resolution: {integrity: sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==}
- engines: {node: ^8.12.0 || >=9.7.0}
- dependencies:
- cross-spawn: 7.0.3
- get-stream: 5.2.0
- human-signals: 1.1.1
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- p-finally: 2.0.1
- signal-exit: 3.0.7
- strip-final-newline: 2.0.0
- dev: true
-
/execa@4.1.0:
resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==}
engines: {node: '>=10'}
diff --git a/test-apps/ember-concurrency-v2/.editorconfig b/test-apps/ember-concurrency-v2/.editorconfig
deleted file mode 100644
index c35a0024..00000000
--- a/test-apps/ember-concurrency-v2/.editorconfig
+++ /dev/null
@@ -1,19 +0,0 @@
-# EditorConfig helps developers define and maintain consistent
-# coding styles between different editors and IDEs
-# editorconfig.org
-
-root = true
-
-[*]
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-indent_style = space
-indent_size = 2
-
-[*.hbs]
-insert_final_newline = false
-
-[*.{diff,md}]
-trim_trailing_whitespace = false
diff --git a/test-apps/ember-concurrency-v2/.ember-cli b/test-apps/ember-concurrency-v2/.ember-cli
deleted file mode 100644
index 978eea26..00000000
--- a/test-apps/ember-concurrency-v2/.ember-cli
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- /**
- Ember CLI sends analytics information by default. The data is completely
- anonymous, but there are times when you might want to disable this behavior.
-
- Setting `disableAnalytics` to true will prevent any data from being sent.
- */
- "disableAnalytics": false,
-
- /**
- Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript
- rather than JavaScript by default, when a TypeScript version of a given blueprint is available.
- */
- "isTypeScriptProject": true
-}
diff --git a/test-apps/ember-concurrency-v2/.eslintignore b/test-apps/ember-concurrency-v2/.eslintignore
deleted file mode 100644
index 9385391f..00000000
--- a/test-apps/ember-concurrency-v2/.eslintignore
+++ /dev/null
@@ -1,13 +0,0 @@
-# unconventional js
-/blueprints/*/files/
-
-# compiled output
-/dist/
-
-# misc
-/coverage/
-!.*
-.*/
-
-# ember-try
-/.node_modules.ember-try/
diff --git a/test-apps/ember-concurrency-v2/.eslintrc.js b/test-apps/ember-concurrency-v2/.eslintrc.js
deleted file mode 100644
index 63a17669..00000000
--- a/test-apps/ember-concurrency-v2/.eslintrc.js
+++ /dev/null
@@ -1,65 +0,0 @@
-'use strict';
-
-module.exports = {
- root: true,
- parser: '@typescript-eslint/parser',
- parserOptions: {
- ecmaVersion: 'latest',
- },
- plugins: ['ember', '@typescript-eslint'],
- extends: [
- 'eslint:recommended',
- 'plugin:ember/recommended',
- 'plugin:prettier/recommended',
- ],
- env: {
- browser: true,
- },
- rules: {},
- overrides: [
- // ts files
- {
- files: ['**/*.ts'],
- extends: [
- 'plugin:@typescript-eslint/eslint-recommended',
- 'plugin:@typescript-eslint/recommended',
- ],
- rules: {},
- },
- // node files
- {
- files: [
- './.eslintrc.js',
- './.prettierrc.js',
- './.stylelintrc.js',
- './.template-lintrc.js',
- './ember-cli-build.js',
- './testem.js',
- './blueprints/*/index.js',
- './config/**/*.js',
- './lib/*/index.js',
- './server/**/*.js',
- ],
- env: {
- browser: false,
- node: true,
- },
- extends: ['plugin:n/recommended'],
- },
- {
- // test files
- files: ['tests/**/*.{js,ts}'],
- extends: ['plugin:qunit/recommended'],
- rules: {
- // Disabled rules when migrating to v2 addon / updated app
- 'ember/no-classic-classes': 'off',
- 'qunit/no-assert-equal': 'off',
- 'qunit/no-identical-names': 'off',
- '@typescript-eslint/ban-types': 'off',
- '@typescript-eslint/ban-ts-comment': 'off',
- '@typescript-eslint/no-explicit-any': 'off',
- '@typescript-eslint/no-empty-function': 'off',
- },
- },
- ],
-};
diff --git a/test-apps/ember-concurrency-v2/.gitignore b/test-apps/ember-concurrency-v2/.gitignore
deleted file mode 100644
index 71ad79d0..00000000
--- a/test-apps/ember-concurrency-v2/.gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-# compiled output
-/dist/
-/declarations/
-
-# dependencies
-/node_modules/
-
-# misc
-/.env*
-/.pnp*
-/.eslintcache
-/coverage/
-/npm-debug.log*
-/testem.log
-/yarn-error.log
-
-# ember-try
-/.node_modules.ember-try/
-/npm-shrinkwrap.json.ember-try
-/package.json.ember-try
-/package-lock.json.ember-try
-/yarn.lock.ember-try
-
-# broccoli-debug
-/DEBUG/
diff --git a/test-apps/ember-concurrency-v2/.prettierignore b/test-apps/ember-concurrency-v2/.prettierignore
deleted file mode 100644
index 5d42a532..00000000
--- a/test-apps/ember-concurrency-v2/.prettierignore
+++ /dev/null
@@ -1,15 +0,0 @@
-# unconventional js
-/blueprints/*/files/
-
-# compiled output
-/dist/
-
-# misc
-/coverage/
-!.*
-.*/
-*.md
-*.html
-
-# ember-try
-/.node_modules.ember-try/
diff --git a/test-apps/ember-concurrency-v2/.prettierrc.js b/test-apps/ember-concurrency-v2/.prettierrc.js
deleted file mode 100644
index e5f7b6d1..00000000
--- a/test-apps/ember-concurrency-v2/.prettierrc.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-module.exports = {
- overrides: [
- {
- files: '*.{js,ts}',
- options: {
- singleQuote: true,
- },
- },
- ],
-};
diff --git a/test-apps/ember-concurrency-v2/.stylelintignore b/test-apps/ember-concurrency-v2/.stylelintignore
deleted file mode 100644
index a0cf71cb..00000000
--- a/test-apps/ember-concurrency-v2/.stylelintignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# unconventional files
-/blueprints/*/files/
-
-# compiled output
-/dist/
-
-# addons
-/.node_modules.ember-try/
diff --git a/test-apps/ember-concurrency-v2/.stylelintrc.js b/test-apps/ember-concurrency-v2/.stylelintrc.js
deleted file mode 100644
index 021c539a..00000000
--- a/test-apps/ember-concurrency-v2/.stylelintrc.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
- extends: ['stylelint-config-standard', 'stylelint-prettier/recommended'],
-};
diff --git a/test-apps/ember-concurrency-v2/.template-lintrc.js b/test-apps/ember-concurrency-v2/.template-lintrc.js
deleted file mode 100644
index f35f61c7..00000000
--- a/test-apps/ember-concurrency-v2/.template-lintrc.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
- extends: 'recommended',
-};
diff --git a/test-apps/ember-concurrency-v2/.watchmanconfig b/test-apps/ember-concurrency-v2/.watchmanconfig
deleted file mode 100644
index f9c3d8f8..00000000
--- a/test-apps/ember-concurrency-v2/.watchmanconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "ignore_dirs": ["dist"]
-}
diff --git a/test-apps/ember-concurrency-v2/README.md b/test-apps/ember-concurrency-v2/README.md
deleted file mode 100644
index c31baf5c..00000000
--- a/test-apps/ember-concurrency-v2/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# ember-concurrency-v2
-
-This README outlines the details of collaborating on this Ember application.
-A short introduction of this app could easily go here.
-
-## Prerequisites
-
-You will need the following things properly installed on your computer.
-
-* [Git](https://git-scm.com/)
-* [Node.js](https://nodejs.org/) (with npm)
-* [Ember CLI](https://cli.emberjs.com/release/)
-* [Google Chrome](https://google.com/chrome/)
-
-## Installation
-
-* `git clone ` this repository
-* `cd ember-concurrency-v2`
-* `npm install`
-
-## Running / Development
-
-* `ember serve`
-* Visit your app at [http://localhost:4200](http://localhost:4200).
-* Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
-
-### Code Generators
-
-Make use of the many generators for code, try `ember help generate` for more details
-
-### Running Tests
-
-* `ember test`
-* `ember test --server`
-
-### Linting
-
-* `npm run lint`
-* `npm run lint:fix`
-
-### Building
-
-* `ember build` (development)
-* `ember build --environment production` (production)
-
-### Deploying
-
-Specify what it takes to deploy your app.
-
-## Further Reading / Useful Links
-
-* [ember.js](https://emberjs.com/)
-* [ember-cli](https://cli.emberjs.com/release/)
-* Development Browser Extensions
- * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
- * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
diff --git a/test-apps/ember-concurrency-v2/app/app.ts b/test-apps/ember-concurrency-v2/app/app.ts
deleted file mode 100644
index 948427ec..00000000
--- a/test-apps/ember-concurrency-v2/app/app.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import Application from '@ember/application';
-import Resolver from 'ember-resolver';
-import loadInitializers from 'ember-load-initializers';
-import config from 'ember-concurrency-v2/config/environment';
-
-export default class App extends Application {
- modulePrefix = config.modulePrefix;
- podModulePrefix = config.podModulePrefix;
- Resolver = Resolver;
-}
-
-loadInitializers(App, config.modulePrefix);
diff --git a/test-apps/ember-concurrency-v2/app/components/.gitkeep b/test-apps/ember-concurrency-v2/app/components/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/test-apps/ember-concurrency-v2/app/config/environment.d.ts b/test-apps/ember-concurrency-v2/app/config/environment.d.ts
deleted file mode 100644
index a53a2098..00000000
--- a/test-apps/ember-concurrency-v2/app/config/environment.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-export default config;
-
-/**
- * Type declarations for
- * import config from 'my-app/config/environment'
- */
-declare const config: {
- environment: string;
- modulePrefix: string;
- podModulePrefix: string;
- locationType: 'history' | 'hash' | 'none' | 'auto';
- rootURL: string;
- APP: Record;
- isTestCli: boolean | undefined;
-};
diff --git a/test-apps/ember-concurrency-v2/app/controllers/.gitkeep b/test-apps/ember-concurrency-v2/app/controllers/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/test-apps/ember-concurrency-v2/app/helpers/.gitkeep b/test-apps/ember-concurrency-v2/app/helpers/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/test-apps/ember-concurrency-v2/app/index.html b/test-apps/ember-concurrency-v2/app/index.html
deleted file mode 100644
index cca7124b..00000000
--- a/test-apps/ember-concurrency-v2/app/index.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- EmberConcurrencyV2
-
-
-
- {{content-for "head"}}
-
-
-
-
- {{content-for "head-footer"}}
-
-
- {{content-for "body"}}
-
-
-
-
- {{content-for "body-footer"}}
-
-
diff --git a/test-apps/ember-concurrency-v2/app/models/.gitkeep b/test-apps/ember-concurrency-v2/app/models/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/test-apps/ember-concurrency-v2/app/router.ts b/test-apps/ember-concurrency-v2/app/router.ts
deleted file mode 100644
index 6bdce492..00000000
--- a/test-apps/ember-concurrency-v2/app/router.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import EmberRouter from '@ember/routing/router';
-import config from 'ember-concurrency-v2/config/environment';
-
-export default class Router extends EmberRouter {
- location = config.locationType;
- rootURL = config.rootURL;
-}
-
-Router.map(function () {
- // Add route declarations here
-});
diff --git a/test-apps/ember-concurrency-v2/app/routes/.gitkeep b/test-apps/ember-concurrency-v2/app/routes/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/test-apps/ember-concurrency-v2/app/styles/app.css b/test-apps/ember-concurrency-v2/app/styles/app.css
deleted file mode 100644
index 2763afa4..00000000
--- a/test-apps/ember-concurrency-v2/app/styles/app.css
+++ /dev/null
@@ -1 +0,0 @@
-/* Ember supports plain CSS out of the box. More info: https://cli.emberjs.com/release/advanced-use/stylesheets/ */
diff --git a/test-apps/ember-concurrency-v2/app/templates/application.hbs b/test-apps/ember-concurrency-v2/app/templates/application.hbs
deleted file mode 100644
index 1bd21f13..00000000
--- a/test-apps/ember-concurrency-v2/app/templates/application.hbs
+++ /dev/null
@@ -1,7 +0,0 @@
-{{page-title "EmberConcurrencyV2"}}
-
-{{! The following component displays Ember's default welcome message. }}
-
-{{! Feel free to remove this! }}
-
-{{outlet}}
\ No newline at end of file
diff --git a/test-apps/ember-concurrency-v2/config/ember-cli-update.json b/test-apps/ember-concurrency-v2/config/ember-cli-update.json
deleted file mode 100644
index 512e25e7..00000000
--- a/test-apps/ember-concurrency-v2/config/ember-cli-update.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "schemaVersion": "1.0.0",
- "packages": [
- {
- "name": "ember-cli",
- "version": "5.3.0",
- "blueprints": [
- {
- "name": "app",
- "outputRepo": "https://github.com/ember-cli/ember-new-output",
- "codemodsSource": "ember-app-codemods-manifest@1",
- "isBaseBlueprint": true,
- "options": ["--ci-provider=github", "--typescript"]
- }
- ]
- }
- ]
-}
diff --git a/test-apps/ember-concurrency-v2/config/ember-try.js b/test-apps/ember-concurrency-v2/config/ember-try.js
deleted file mode 100644
index 84c1a479..00000000
--- a/test-apps/ember-concurrency-v2/config/ember-try.js
+++ /dev/null
@@ -1,141 +0,0 @@
-'use strict';
-
-const getChannelURL = require('ember-source-channel-url');
-
-function embroider(label, deps) {
- return [
- {
- name: `${label}-embroider-safe`,
- npm: {
- devDependencies: {
- ...deps,
- },
- },
- env: {
- EMBROIDER_TEST_SETUP_OPTIONS: 'safe',
- },
- },
- {
- name: `${label}-embroider-optimized`,
- npm: {
- devDependencies: {
- ...deps,
- },
- },
- env: {
- EMBROIDER_TEST_SETUP_OPTIONS: 'optimized',
- },
- },
- ];
-}
-
-const v3Embroider = embroider('3.x', {
- '@embroider/core': `^3.4.2`,
- '@embroider/webpack': `^3.2.1`,
- '@embroider/compat': `^3.4.0`,
- '@embroider/test-setup': `^3.0.3`,
-});
-
-module.exports = async function () {
- return {
- usePnpm: true,
- scenarios: [
- {
- name: 'ember-lts-3.16',
- npm: {
- devDependencies: {
- '@ember/test-helpers': '^2.0.0',
- 'ember-source': '~3.16.0',
- 'ember-cli': '^4.10.0',
- },
- },
- },
- {
- name: 'ember-lts-3.20',
- npm: {
- devDependencies: {
- '@ember/test-helpers': '^2.0.0',
- 'ember-source': '~3.20.0',
- 'ember-cli': '^4.10.0',
- },
- },
- },
- {
- name: 'ember-lts-3.24',
- npm: {
- devDependencies: {
- '@ember/test-helpers': '^2.0.0',
- 'ember-source': '~3.24.0',
- 'ember-cli': '^4.10.0',
- },
- },
- },
- {
- name: 'ember-lts-3.28',
- npm: {
- devDependencies: {
- '@ember/test-helpers': '^2.0.0',
- 'ember-source': '~3.28.0',
- 'ember-cli': '^4.10.0',
- },
- },
- },
- {
- name: 'ember-lts-4.12',
- npm: {
- devDependencies: {
- 'ember-source': '~4.12.0',
- },
- },
- },
- {
- name: 'ember-lts-5.4',
- npm: {
- devDependencies: {
- 'ember-source': '~5.4.0',
- },
- },
- },
-
- {
- name: 'ember-release',
- npm: {
- dependencies: {
- 'ember-auto-import': '^2.2.0',
- webpack: '^5.0.0',
- },
- devDependencies: {
- 'ember-source': await getChannelURL('release'),
- },
- },
- },
- {
- name: 'ember-beta',
- npm: {
- dependencies: {
- 'ember-auto-import': '^2.2.0',
- webpack: '^5.0.0',
- },
- devDependencies: {
- 'ember-resolver': '^10.0.0',
- 'ember-source': await getChannelURL('beta'),
- },
- },
- },
- {
- name: 'ember-canary',
- npm: {
- dependencies: {
- 'ember-auto-import': '^2.2.0',
- webpack: '^5.0.0',
- },
- devDependencies: {
- 'ember-resolver': '^10.0.0',
- 'ember-source': await getChannelURL('canary'),
- },
- },
- },
- ...v3Embroider,
- ],
- };
-};
diff --git a/test-apps/ember-concurrency-v2/config/environment.js b/test-apps/ember-concurrency-v2/config/environment.js
deleted file mode 100644
index dda46289..00000000
--- a/test-apps/ember-concurrency-v2/config/environment.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-
-module.exports = function (environment) {
- const ENV = {
- modulePrefix: 'ember-concurrency-v2',
- environment,
- rootURL: '/',
- locationType: 'history',
- EmberENV: {
- EXTEND_PROTOTYPES: false,
- FEATURES: {
- // Here you can enable experimental features on an ember canary build
- // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
- },
- },
-
- APP: {
- // Here you can pass flags/options to your application instance
- // when it is created
- },
- };
-
- if (environment === 'development') {
- // ENV.APP.LOG_RESOLVER = true;
- // ENV.APP.LOG_ACTIVE_GENERATION = true;
- // ENV.APP.LOG_TRANSITIONS = true;
- // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
- // ENV.APP.LOG_VIEW_LOOKUPS = true;
- }
-
- if (environment === 'test') {
- // Testem prefers this...
- ENV.locationType = 'none';
-
- // keep test console output quieter
- ENV.APP.LOG_ACTIVE_GENERATION = false;
- ENV.APP.LOG_VIEW_LOOKUPS = false;
-
- ENV.APP.rootElement = '#ember-testing';
- ENV.APP.autoboot = false;
- }
-
- if (environment === 'production') {
- // here you can enable a production-specific feature
- }
-
- return ENV;
-};
diff --git a/test-apps/ember-concurrency-v2/config/optional-features.json b/test-apps/ember-concurrency-v2/config/optional-features.json
deleted file mode 100644
index b26286e2..00000000
--- a/test-apps/ember-concurrency-v2/config/optional-features.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "application-template-wrapper": false,
- "default-async-observers": true,
- "jquery-integration": false,
- "template-only-glimmer-components": true
-}
diff --git a/test-apps/ember-concurrency-v2/config/targets.js b/test-apps/ember-concurrency-v2/config/targets.js
deleted file mode 100644
index 1e48e059..00000000
--- a/test-apps/ember-concurrency-v2/config/targets.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-const browsers = [
- 'last 1 Chrome versions',
- 'last 1 Firefox versions',
- 'last 1 Safari versions',
-];
-
-module.exports = {
- browsers,
-};
diff --git a/test-apps/ember-concurrency-v2/ember-cli-build.js b/test-apps/ember-concurrency-v2/ember-cli-build.js
deleted file mode 100644
index 12f8dea5..00000000
--- a/test-apps/ember-concurrency-v2/ember-cli-build.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-const EmberApp = require('ember-cli/lib/broccoli/ember-app');
-
-module.exports = function (defaults) {
- const app = new EmberApp(defaults, {
- 'ember-cli-babel': { enableTypeScriptTransform: true },
-
- // Add options here
- });
-
- return app.toTree();
-};
diff --git a/test-apps/ember-concurrency-v2/package.json b/test-apps/ember-concurrency-v2/package.json
deleted file mode 100644
index 9895ec4c..00000000
--- a/test-apps/ember-concurrency-v2/package.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- "name": "ember-concurrency-v2",
- "version": "0.0.0",
- "private": true,
- "description": "Small description for ember-concurrency-v2 goes here",
- "repository": "",
- "license": "MIT",
- "author": "",
- "directories": {
- "doc": "doc",
- "test": "tests"
- },
- "scripts": {
- "build": "ember build --environment=production",
- "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"",
- "lint:css": "stylelint \"**/*.css\"",
- "lint:css:fix": "concurrently \"npm:lint:css -- --fix\"",
- "format": "pnpm prettier -w .",
- "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\" && pnpm format",
- "lint:prettier": "prettier --check .",
- "lint:hbs": "ember-template-lint .",
- "lint:hbs:fix": "ember-template-lint . --fix",
- "lint:js": "eslint . --cache",
- "lint:js:fix": "eslint . --fix",
- "lint:types": "tsc --noEmit",
- "start": "ember serve",
- "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"",
- "test:ember": "ember test"
- },
- "dependencies": {
- "@ember/test-waiters": "workspace:*"
- },
- "devDependencies": {
- "@babel/core": "^7.24.5",
- "@ember/optional-features": "^2.0.0",
- "@ember/string": "^3.1.1",
- "@ember/test-helpers": "^3.2.0",
- "@glimmer/component": "^1.1.2",
- "@glimmer/env": "^0.1.7",
- "@glimmer/tracking": "^1.1.2",
- "@glint/environment-ember-loose": "^1.1.0",
- "@glint/template": "^1.1.0",
- "@tsconfig/ember": "^3.0.6",
- "@types/qunit": "^2.19.9",
- "@types/rsvp": "^4.0.4",
- "@typescript-eslint/eslint-plugin": "^6.7.2",
- "@typescript-eslint/parser": "^6.7.2",
- "broccoli-asset-rev": "^3.0.0",
- "co": "^4.6.0",
- "concurrently": "^8.2.1",
- "ember-auto-import": "^2.7.2",
- "ember-cli": "~5.3.0",
- "ember-cli-app-version": "^6.0.1",
- "ember-cli-babel": "^8.0.0",
- "ember-cli-clean-css": "^3.0.0",
- "ember-cli-dependency-checker": "^3.3.2",
- "ember-cli-htmlbars": "^6.3.0",
- "ember-cli-inject-live-reload": "^2.1.0",
- "ember-cli-sri": "^2.1.1",
- "ember-cli-terser": "^4.0.2",
- "ember-concurrency": "^2.1.2",
- "ember-concurrency-decorators": "^2.0.3",
- "ember-concurrency-ts": "^0.3.1",
- "ember-fetch": "^8.1.2",
- "ember-load-initializers": "^2.1.2",
- "ember-modifier": "^4.1.0",
- "ember-page-title": "^8.0.0",
- "ember-qunit": "^8.0.2",
- "ember-resolver": "^11.0.1",
- "ember-source": "~5.3.0",
- "ember-source-channel-url": "^3.0.0",
- "ember-template-lint": "^5.11.2",
- "ember-try": "^3.0.0",
- "ember-welcome-page": "^7.0.2",
- "eslint": "^8.49.0",
- "eslint-config-prettier": "^9.0.0",
- "eslint-plugin-ember": "^11.11.1",
- "eslint-plugin-n": "^16.1.0",
- "eslint-plugin-prettier": "^5.0.0",
- "eslint-plugin-qunit": "^8.0.0",
- "loader.js": "^4.7.0",
- "prettier": "^3.0.3",
- "qunit": "^2.20.0",
- "qunit-dom": "^3.0.0",
- "stylelint": "^15.10.3",
- "stylelint-config-standard": "^34.0.0",
- "stylelint-prettier": "^4.0.2",
- "tracked-built-ins": "^3.2.0",
- "typescript": "~5.0.0",
- "webpack": "^5.88.2"
- },
- "engines": {
- "node": "16.* || >= 18"
- },
- "ember": {
- "edition": "octane"
- },
- "volta": {
- "extends": "../../package.json"
- }
-}
diff --git a/test-apps/ember-concurrency-v2/public/robots.txt b/test-apps/ember-concurrency-v2/public/robots.txt
deleted file mode 100644
index f5916452..00000000
--- a/test-apps/ember-concurrency-v2/public/robots.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# http://www.robotstxt.org
-User-agent: *
-Disallow:
diff --git a/test-apps/ember-concurrency-v2/testem.js b/test-apps/ember-concurrency-v2/testem.js
deleted file mode 100644
index ed2f3712..00000000
--- a/test-apps/ember-concurrency-v2/testem.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-
-module.exports = {
- test_page: 'tests/index.html?hidepassed',
- disable_watching: true,
- launch_in_ci: ['Chrome'],
- launch_in_dev: ['Chrome'],
- browser_start_timeout: 120,
- browser_args: {
- Chrome: {
- ci: [
- // --no-sandbox is needed when running Chrome inside a container
- process.env.CI ? '--no-sandbox' : null,
- '--headless',
- '--disable-dev-shm-usage',
- '--disable-software-rasterizer',
- '--mute-audio',
- '--remote-debugging-port=0',
- '--window-size=1440,900',
- ].filter(Boolean),
- },
- },
-};
diff --git a/test-apps/ember-concurrency-v2/tests/index.html b/test-apps/ember-concurrency-v2/tests/index.html
deleted file mode 100644
index ca0406cd..00000000
--- a/test-apps/ember-concurrency-v2/tests/index.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
- EmberConcurrencyV2 Tests
-
-
-
- {{content-for "head"}}
- {{content-for "test-head"}}
-
-
-
-
-
- {{content-for "head-footer"}}
- {{content-for "test-head-footer"}}
-
-
- {{content-for "body"}}
- {{content-for "test-body"}}
-
-
-
-
-
-
-
-
-
-
- {{content-for "body-footer"}}
- {{content-for "test-body-footer"}}
-
-
diff --git a/test-apps/ember-concurrency-v2/tests/test-helper.ts b/test-apps/ember-concurrency-v2/tests/test-helper.ts
deleted file mode 100644
index d9ef0f5c..00000000
--- a/test-apps/ember-concurrency-v2/tests/test-helper.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import Application from 'ember-concurrency-v2/app';
-import config from 'ember-concurrency-v2/config/environment';
-import * as QUnit from 'qunit';
-import { setApplication } from '@ember/test-helpers';
-import { setup } from 'qunit-dom';
-import { start } from 'ember-qunit';
-
-setApplication(Application.create(config.APP));
-
-setup(QUnit.assert);
-
-start();
diff --git a/test-apps/ember-concurrency-v2/tests/unit/utils/mock-stable-error.ts b/test-apps/ember-concurrency-v2/tests/unit/utils/mock-stable-error.ts
deleted file mode 100644
index 744d196f..00000000
--- a/test-apps/ember-concurrency-v2/tests/unit/utils/mock-stable-error.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/* eslint-disable no-global-assign */
-/* eslint-disable no-unused-vars */
-
-const ERROR = Error;
-
-// @ts-ignore
-Error = ERROR;
-
-export function overrideError(_Error: any) {
- // @ts-ignore
- Error = _Error;
-}
-export function resetError() {
- // @ts-ignore
- Error = ERROR;
-}
-export default class MockStableError {
- message: string;
- // @ts-ignore
- constructor(message: string) {
- this.message = message;
- }
- get stack() {
- return 'STACK';
- }
-}
diff --git a/test-apps/ember-concurrency-v2/tests/unit/wait-for-test.ts b/test-apps/ember-concurrency-v2/tests/unit/wait-for-test.ts
deleted file mode 100644
index 9af6e97e..00000000
--- a/test-apps/ember-concurrency-v2/tests/unit/wait-for-test.ts
+++ /dev/null
@@ -1,446 +0,0 @@
-import MockStableError, {
- overrideError,
- resetError,
-} from './utils/mock-stable-error';
-// @ember/test-waiters is still a v1 addon and is too weird
-// to have in-repo types working correctly.
-// @ts-ignore
-import { _reset, getPendingWaiterState, waitFor } from '@ember/test-waiters';
-import { module, test } from 'qunit';
-
-import EmberObject, { get } from '@ember/object';
-import { DEBUG } from '@glimmer/env';
-
-import { task as taskFn, didCancel } from 'ember-concurrency';
-import type { TaskGenerator } from 'ember-concurrency';
-// type resolution is not working correctly due to usage of forked
-// (non-published) ember-concurrency-decorators remove this ts-ignore when
-// migrating back to mainline off the fork
-// @ts-ignore
-import { task as taskDec } from 'ember-concurrency-decorators';
-import { perform } from 'ember-concurrency-ts';
-// @ts-ignore
-import co from 'co';
-
-// @ember/test-waiters is still a v1 addon and is too weird
-// to have in-repo types working correctly.
-// @ts-ignore
-import { PromiseType, Thenable } from '@ember/test-waiters/types';
-
-interface ModeDef {
- name: string;
- createPromise: Function;
- createThrowingPromise: Function;
-}
-
-if (DEBUG) {
- module('wait-for', function (hooks) {
- hooks.afterEach(function () {
- _reset();
- resetError();
- });
- const generatorTestModules = [
- (function () {
- const EmberObjectThing = EmberObject.extend({
- doStuffTask: taskFn(
- waitFor(function* doTaskStuff(...args: any) {
- yield new Promise((resolve) => {
- setTimeout(resolve, 10);
- });
- return args.reverse();
- }),
- ),
- doAsyncStuff(...args: any) {
- // @ts-ignore
- return this.doStuffTask.perform(...args);
- },
-
- throwingTask: taskFn(
- waitFor(function* taskThrow() {
- yield new Promise((resolve) => {
- setTimeout(resolve, 10);
- });
- throw new Error('doh!');
- }),
- ),
- asyncThrow() {
- // @ts-ignore
- return this.throwingTask.perform();
- },
- });
-
- class NativeThing {
- @taskDec
- @waitFor
- *doStuffTask(...args: any): TaskGenerator {
- yield new Promise((resolve) => {
- setTimeout(resolve, 10);
- });
- return args.reverse();
- }
- doAsyncStuff(...args: any) {
- return perform(this.doStuffTask, ...args);
- }
-
- @taskDec
- @waitFor
- *throwingTask() {
- yield new Promise((resolve) => {
- setTimeout(resolve, 10);
- });
- throw new Error('doh!');
- }
- asyncThrow(...args: any) {
- // @ts-expect-error throwingTask missing, due to `this` not having its type changed
- return perform(this.throwingTask, ...args);
- }
- }
- return {
- name: 'Generator',
- waiterName: '@ember/test-waiters:generator-waiter',
- EmberObjectThing,
- NativeThing,
- };
- })(),
- ];
-
- const testModules = [...generatorTestModules];
-
- testModules.forEach(
- ({ name, waiterName, EmberObjectThing, NativeThing }) => {
- module(name, function () {
- const invocationType = [
- {
- name: 'class function',
- createPromise(...args: any[]) {
- // @ts-expect-error - doAsyncStuff missing due to TS being hard to use with the old (pre)class model
- return EmberObjectThing.create().doAsyncStuff(...args);
- },
- createThrowingPromise() {
- // @ts-expect-error - asyncThrow missing due to TS being hard to use with the old (pre)class model
- return EmberObjectThing.create().asyncThrow();
- },
- },
- {
- name: 'decorator',
- createPromise(...args: any[]) {
- return new NativeThing().doAsyncStuff(...args);
- },
- createThrowingPromise() {
- return new NativeThing().asyncThrow();
- },
- },
- ];
-
- invocationType.forEach(
- ({ name, createPromise, createThrowingPromise }: ModeDef) => {
- module(name, function () {
- test('waitFor wraps and registers a waiter', async function (assert) {
- overrideError(MockStableError);
-
- const promise = createPromise();
-
- assert.deepEqual(getPendingWaiterState(), {
- pending: 1,
- waiters: {
- [waiterName]: [
- {
- label: undefined,
- stack: 'STACK',
- },
- ],
- },
- });
-
- await (
- promise as unknown as Thenable>
- ).then(() => {
- assert.deepEqual(getPendingWaiterState(), {
- pending: 0,
- waiters: {},
- });
- });
- });
-
- test('waitFor handles arguments and return value', async function (assert) {
- overrideError(MockStableError);
-
- const ret = await createPromise(1, 'foo');
- assert.deepEqual(ret, ['foo', 1]);
- });
-
- test('waitFor transitions waiter to not pending even if promise throws when thenable wrapped', async function (assert) {
- const promise = createThrowingPromise();
-
- try {
- await promise;
- } catch (e) {
- assert.deepEqual(getPendingWaiterState(), {
- pending: 0,
- waiters: {},
- });
- }
- });
- });
- },
- );
- });
- },
- );
-
- module('waitFor ember-concurrency interop', function () {
- class Deferred {
- promise: Promise;
- resolve: Function = () => null;
-
- constructor() {
- this.promise = new Promise((res) => (this.resolve = res));
- }
- }
-
- class NativeThing {
- iterations: Array = [];
- _continue?: Function;
-
- @taskDec
- @waitFor
- *doStuffTask(): TaskGenerator {
- for (let i = 0; i < 3; i += 1) {
- const continuation = new Deferred();
- if (this._continue !== undefined) {
- throw new Error('pending continue, cannot proceed');
- }
- const completion = new Deferred();
- let complete = false;
-
- this._continue = () => {
- if (complete === true) {
- throw new Error(
- 'Cannot call continue twice on a single iteration',
- );
- } else {
- complete = true;
- }
-
- continuation.resolve();
- return completion.promise;
- };
-
- try {
- yield continuation.promise;
- } finally {
- this._continue = undefined;
- completion.resolve();
- }
- this.iterations.push(i);
- }
- return 'done';
- }
-
- get continue() {
- if (this._continue === undefined) {
- throw new Error('Cannot call continue twice on a single iteration');
- } else {
- try {
- return this._continue;
- } finally {
- // detect invalid usage. Specifically, our test (as written
- // currently) would be in-error if any given continue() is invoked more
- // then once
- this._continue = undefined;
- }
- }
- }
-
- @taskDec
- *parentTask(): TaskGenerator {
- // @ts-ignore
- return yield this.doStuffTask.perform();
- }
-
- @taskDec
- @waitFor
- *wrappedParentTask(): TaskGenerator {
- // @ts-ignore
- return yield this.doStuffTask.perform();
- }
- }
-
- test('tasks with multiple yields work', async function (assert) {
- const thing = new NativeThing();
- const task = perform(thing.doStuffTask);
-
- assert.deepEqual(getPendingWaiterState().pending, 1);
-
- await thing.continue();
- assert.deepEqual(thing.iterations, [0]);
- assert.deepEqual(getPendingWaiterState().pending, 1);
-
- await thing.continue();
- assert.deepEqual(thing.iterations, [0, 1]);
- assert.deepEqual(getPendingWaiterState().pending, 1);
-
- await thing.continue();
- await task;
-
- assert.deepEqual(thing.iterations, [0, 1, 2]);
- assert.deepEqual(getPendingWaiterState().pending, 0);
- });
-
- interface CancellationDef {
- desc: string;
- taskName: 'doStuffTask' | 'parentTask' | 'wrappedParentTask';
- }
-
- const cancellationCases: CancellationDef[] = [
- { desc: 'direct', taskName: 'doStuffTask' },
- { desc: 'parent', taskName: 'parentTask' },
- { desc: 'wrapped parent', taskName: 'wrappedParentTask' },
- ];
-
- cancellationCases.forEach(({ desc, taskName }) => {
- test(`${desc} task cancellation works`, async function (assert) {
- const thing = new NativeThing();
-
- const instance = perform(get(thing, taskName));
- assert.deepEqual(getPendingWaiterState().pending, 1);
-
- await thing.continue();
- assert.deepEqual(thing.iterations, [0]);
- assert.deepEqual(getPendingWaiterState().pending, 1);
-
- instance.cancel();
- try {
- await instance;
- assert.ok(false);
- } catch (e) {
- assert.ok(didCancel(e));
- assert.deepEqual(getPendingWaiterState().pending, 0);
- }
- });
- });
- });
-
- module('waitFor co interop', function () {
- function coDec(
- _target: object,
- _key: string,
- descriptor: PropertyDescriptor,
- ): PropertyDescriptor {
- descriptor.value = co.wrap(descriptor.value);
- return descriptor;
- }
-
- class Deferred {
- promise: Promise;
- resolve: Function = () => null;
-
- constructor() {
- this.promise = new Promise((res) => (this.resolve = res));
- }
- }
-
- class NativeThing {
- iterations: Array = [];
- _continue?: Function;
-
- @coDec
- @waitFor
- *doStuffCo(): TaskGenerator {
- for (let i = 0; i < 3; i += 1) {
- const continuation = new Deferred();
- if (this._continue !== undefined) {
- throw new Error('pending continue, cannot proceed');
- }
- const completion = new Deferred();
- let continued = false;
-
- this._continue = () => {
- if (continued === true) {
- throw new Error(
- 'Cannot call continue twice on a single iteration',
- );
- } else {
- continued = true;
- }
-
- continuation.resolve();
- return completion.promise;
- };
-
- try {
- yield continuation.promise;
- } finally {
- completion.resolve();
- this._continue = undefined;
- }
- this.iterations.push(i);
- }
- return 'done';
- }
-
- get continue() {
- if (this._continue === undefined) {
- throw new Error('Cannot call continue twice on a single iteration');
- } else {
- try {
- return this._continue;
- } finally {
- // detect invalid usage. Specifically, our test (as written
- // currently) would be in-error if any given continue() is invoked more
- // then once
- this._continue = undefined;
- }
- }
- }
- }
-
- test('it works', async function (assert) {
- const thing = new NativeThing();
-
- thing.doStuffCo();
- assert.deepEqual(getPendingWaiterState().pending, 1);
-
- await thing.continue();
- assert.deepEqual(thing.iterations, [0]);
- assert.deepEqual(getPendingWaiterState().pending, 1);
-
- await thing.continue();
- assert.deepEqual(thing.iterations, [0, 1]);
- assert.deepEqual(getPendingWaiterState().pending, 1);
-
- await thing.continue();
-
- assert.deepEqual(thing.iterations, [0, 1, 2]);
- assert.deepEqual(getPendingWaiterState().pending, 0);
- });
- });
-
- test('types', async function (assert) {
- assert.expect(0);
-
- async function asyncFn(a: string, b: string) {
- return `${a}${b}`;
- }
- function* genFn(a: string, b: string) {
- yield `${a}${b}`;
- return `${a}${b}`;
- }
-
- function asyncNoop(fn: typeof asyncFn) {
- return fn;
- }
- function genNoop(fn: typeof genFn) {
- return fn;
- }
-
- asyncNoop(waitFor(asyncFn));
- genNoop(waitFor(genFn));
-
- // @ts-expect-error wrong argument types
- waitFor(asyncFn)(1, 2);
- // @ts-expect-error wrong argument types
- waitFor(genFn)(1, 2);
- });
- });
-}
diff --git a/test-apps/ember-concurrency-v2/tsconfig.json b/test-apps/ember-concurrency-v2/tsconfig.json
deleted file mode 100644
index 037eefa2..00000000
--- a/test-apps/ember-concurrency-v2/tsconfig.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "extends": "@tsconfig/ember/tsconfig.json",
- "compilerOptions": {
- // have to skipLibCheck becauseu ember-concurrency has the wrong types for ComputedProperty
- "skipLibCheck": true,
- // The combination of `baseUrl` with `paths` allows Ember's classic package
- // layout, which is not resolvable with the Node resolution algorithm, to
- // work with TypeScript.
- "baseUrl": ".",
- "paths": {
- "ember-concurrency-v2/tests/*": ["tests/*"],
- "ember-concurrency-v2/*": ["app/*"],
- "*": ["types/*"]
- }
- }
-}
diff --git a/test-apps/ember-concurrency-v2/types/index.d.ts b/test-apps/ember-concurrency-v2/types/index.d.ts
deleted file mode 100644
index 33a43970..00000000
--- a/test-apps/ember-concurrency-v2/types/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'ember-source/types';