From 572db5b0775c05dbd1ae91a61b5f422d8800b312 Mon Sep 17 00:00:00 2001 From: Jovan Milosevic Date: Thu, 28 Sep 2023 13:36:33 +0200 Subject: [PATCH] Setup typescript configuration --- .gitignore | 1 + ember-phone-input/.eslintignore | 1 + ember-phone-input/.eslintrc.cjs | 102 +++- ember-phone-input/.prettierignore | 1 + ember-phone-input/babel.config.json | 1 + ember-phone-input/package.json | 37 +- ember-phone-input/rollup.config.mjs | 28 +- ember-phone-input/tsconfig.json | 12 + pnpm-lock.yaml | 705 +++++++++++++++++++--------- test-app/.eslintrc.js | 80 +++- test-app/config/environment.d.ts | 13 + test-app/package.json | 9 + test-app/tsconfig.json | 23 + test-app/types/glint.d.ts | 5 + test-app/types/index.d.ts | 2 + 15 files changed, 764 insertions(+), 256 deletions(-) create mode 100644 ember-phone-input/tsconfig.json create mode 100644 test-app/config/environment.d.ts create mode 100644 test-app/tsconfig.json create mode 100644 test-app/types/glint.d.ts create mode 100644 test-app/types/index.d.ts diff --git a/.gitignore b/.gitignore index 00f39164e..295e202cd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ # compiled output dist/ .pnpm-store/ +declarations/ # dependencies node_modules/ diff --git a/ember-phone-input/.eslintignore b/ember-phone-input/.eslintignore index e69140be4..4e982747d 100644 --- a/ember-phone-input/.eslintignore +++ b/ember-phone-input/.eslintignore @@ -3,6 +3,7 @@ # compiled output /dist/ +/declarations/ # misc /coverage/ diff --git a/ember-phone-input/.eslintrc.cjs b/ember-phone-input/.eslintrc.cjs index d53f1f987..a061294cd 100644 --- a/ember-phone-input/.eslintrc.cjs +++ b/ember-phone-input/.eslintrc.cjs @@ -2,28 +2,28 @@ module.exports = { root: true, - parser: '@babel/eslint-parser', + parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 2018, sourceType: 'module', ecmaFeatures: { - legacyDecorators: true, + legacyDecorators: true }, babelOptions: { - root: __dirname, - }, + root: __dirname + } }, plugins: ['ember'], extends: [ 'eslint:recommended', 'plugin:ember/recommended', - 'plugin:prettier/recommended', + 'plugin:prettier/recommended' ], env: { - browser: true, + browser: true }, globals: { - intlTelInputUtils: true, + intlTelInputUtils: true }, rules: {}, overrides: [ @@ -33,17 +33,95 @@ module.exports = { './.eslintrc.js', './.prettierrc.js', './.template-lintrc.js', - './addon-main.js', + './addon-main.js' ], parserOptions: { - sourceType: 'script', + sourceType: 'script' }, env: { browser: false, - node: true, + node: true }, plugins: ['node'], - extends: ['plugin:node/recommended'], + extends: ['plugin:node/recommended'] }, - ], + // ts files + { + files: ['**/*.ts'], + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended' + ], + rules: { + // https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/recommended.ts + '@typescript-eslint/no-explicit-any': 'error', + '@typescript-eslint/no-non-null-assertion': 'error', + '@typescript-eslint/no-unused-vars': 'error', + // https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/strict.ts + '@typescript-eslint/array-type': [ + 'error', + { + default: 'array', + readonly: 'array' + } + ], + '@typescript-eslint/ban-tslint-comment': 'error', + '@typescript-eslint/class-literal-property-style': 'error', + '@typescript-eslint/consistent-generic-constructors': 'error', + '@typescript-eslint/consistent-indexed-object-style': 'error', + '@typescript-eslint/consistent-type-assertions': 'error', + '@typescript-eslint/consistent-type-definitions': 'error', + '@typescript-eslint/consistent-type-imports': 'error', + '@typescript-eslint/explicit-function-return-type': 'error', + '@typescript-eslint/explicit-member-accessibility': [ + 'error', + { + accessibility: 'no-public' + } + ], + 'no-restricted-syntax': [ + 'error', + { + selector: + ':matches(PropertyDefinition, MethodDefinition)[accessibility="private"]', + message: 'Use #private instead' + }, + { + selector: + ':matches(PropertyDefinition, MethodDefinition)[accessibility="protected"]', + message: 'Use #private instead' + } + ], + '@typescript-eslint/explicit-module-boundary-types': 'error', + '@typescript-eslint/member-delimiter-style': 'error', + '@typescript-eslint/member-ordering': 'error', + '@typescript-eslint/method-signature-style': 'error', + '@typescript-eslint/no-confusing-non-null-assertion': 'error', + '@typescript-eslint/no-duplicate-enum-values': 'error', + '@typescript-eslint/no-dynamic-delete': 'error', + '@typescript-eslint/no-extraneous-class': 'error', + '@typescript-eslint/no-import-type-side-effects': 'error', + '@typescript-eslint/no-invalid-void-type': 'error', + '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error', + '@typescript-eslint/no-require-imports': 'error', + '@typescript-eslint/no-type-alias': [ + 'error', + { + allowGenerics: 'always' + } + ], + '@typescript-eslint/no-unsafe-declaration-merging': 'error', + '@typescript-eslint/parameter-properties': 'error', + '@typescript-eslint/prefer-enum-initializers': 'error', + '@typescript-eslint/prefer-for-of': 'error', + '@typescript-eslint/prefer-function-type': 'error', + '@typescript-eslint/prefer-literal-enum-member': 'error', + '@typescript-eslint/prefer-ts-expect-error': 'error', + '@typescript-eslint/sort-type-constituents': 'error', + '@typescript-eslint/type-annotation-spacing': 'error', + '@typescript-eslint/typedef': 'error', + '@typescript-eslint/unified-signatures': 'error' + } + } + ] }; diff --git a/ember-phone-input/.prettierignore b/ember-phone-input/.prettierignore index b73c82347..caec5488d 100644 --- a/ember-phone-input/.prettierignore +++ b/ember-phone-input/.prettierignore @@ -5,6 +5,7 @@ # compiled output /dist/ /tmp/ +/declarations/ # dependencies /node_modules/ diff --git a/ember-phone-input/babel.config.json b/ember-phone-input/babel.config.json index cfcf8a3c3..739f8261f 100644 --- a/ember-phone-input/babel.config.json +++ b/ember-phone-input/babel.config.json @@ -1,4 +1,5 @@ { + "presets": [["@babel/preset-typescript"]], "plugins": [ "@embroider/addon-dev/template-colocation-plugin", ["@babel/plugin-proposal-decorators", { "legacy": true }], diff --git a/ember-phone-input/package.json b/ember-phone-input/package.json index 5976f4d2c..1ec853ffd 100644 --- a/ember-phone-input/package.json +++ b/ember-phone-input/package.json @@ -24,17 +24,23 @@ "author": "", "files": [ "addon-main.cjs", + "declarations", "dist" ], "scripts": { - "build": "rollup --config", + "build": "concurrently 'pnpm:build:*'", + "build:js": "rollup --config", + "build:types": "glint --declaration", "lint": "concurrently 'pnpm:lint:*(!fix)' --names 'lint:'", "lint:fix": "concurrently 'pnpm:lint:*:fix' --names 'fix:'", "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern", "lint:js": "eslint . --cache", + "lint:types": "glint", "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern", "lint:js:fix": "eslint . --fix", - "start": "rollup --config --watch", + "start": "concurrently 'pnpm:start:*'", + "start:js": "rollup --config --watch --no-watch.clearScreen", + "start:types": "glint -d --watch", "test": "echo 'A v2 addon does not have tests, run tests in test-app'", "prepack": "rollup --config", "prepare": "rollup --config" @@ -51,8 +57,15 @@ "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-decorators": "7.23.0", "@babel/plugin-syntax-decorators": "7.22.10", + "@babel/preset-typescript": "^7.23.0", "@embroider/addon-dev": "4.1.0", + "@glint/core": "^1.2.0", + "@glint/environment-ember-loose": "^1.2.0", + "@glint/template": "^1.2.0", "@rollup/plugin-babel": "6.0.3", + "@tsconfig/ember": "^3.0.1", + "@typescript-eslint/eslint-plugin": "^6.5.0", + "@typescript-eslint/parser": "^6.5.0", "concurrently": "8.2.1", "ember-template-lint": "5.11.2", "eslint": "7.32.0", @@ -62,7 +75,8 @@ "eslint-plugin-prettier": "5.0.0", "prettier": "3.0.3", "rollup": "3.29.4", - "rollup-plugin-copy": "3.5.0" + "rollup-plugin-copy": "3.5.0", + "typescript": "^5.2.2" }, "publishConfig": { "registry": "https://registry.npmjs.org" @@ -82,10 +96,23 @@ "demoURL": "http://qonto.github.io/ember-phone-input/" }, "exports": { - ".": "./dist/index.js", - "./*": "./dist/*.js", + ".": { + "types": "./declarations/index.d.ts", + "default": "./dist/index.js" + }, + "./*": { + "types": "./declarations/*.d.ts", + "default": "./dist/*.js" + }, "./addon-main.js": "./addon-main.cjs" }, + "typesVersions": { + "*": { + "*": [ + "declarations/*" + ] + } + }, "volta": { "extends": "../package.json" } diff --git a/ember-phone-input/rollup.config.mjs b/ember-phone-input/rollup.config.mjs index 6652a4abb..6e6ae0e91 100644 --- a/ember-phone-input/rollup.config.mjs +++ b/ember-phone-input/rollup.config.mjs @@ -4,9 +4,12 @@ import { Addon } from '@embroider/addon-dev/rollup'; const addon = new Addon({ srcDir: 'src', - destDir: 'dist', + destDir: 'dist' }); +// Add extensions here, such as ts, gjs, etc that you may import +const extensions = ['.js', '.ts']; + export default { // This provides defaults that work well alongside `publicEntrypoints` below. // You can augment this if you need to. @@ -15,12 +18,20 @@ export default { plugins: [ // These are the modules that users should be able to import from your // addon. Anything not listed here may get optimized away. - addon.publicEntrypoints(["index.js", "**/*.js"]), + addon.publicEntrypoints([ + 'components/**/*.js', + 'services/**/*.js', + 'instance-initializers/**/*.js' + ]), // These are the modules that should get reexported into the traditional // "app" tree. Things in here should also be in publicEntrypoints above, but // not everything in publicEntrypoints necessarily needs to go here. - addon.appReexports(['components/**/*.js', 'services/**/*.js', 'instance-initializers/**/*.js']), + addon.appReexports([ + 'components/**/*.js', + 'services/**/*.js', + 'instance-initializers/**/*.js' + ]), // Follow the V2 Addon rules about dependencies. Your code can import from // `dependencies` and `peerDependencies` as well as standard Ember-provided @@ -34,7 +45,8 @@ export default { // By default, this will load the actual babel config from the file // babel.config.json. babel({ - babelHelpers: 'bundled', + extensions, + babelHelpers: 'bundled' }), // Ensure that standalone .hbs files are properly integrated as Javascript. @@ -51,8 +63,8 @@ export default { copy({ targets: [ { src: '../README.md', dest: '.' }, - { src: '../LICENSE.md', dest: '.' }, - ], - }), - ], + { src: '../LICENSE.md', dest: '.' } + ] + }) + ] }; diff --git a/ember-phone-input/tsconfig.json b/ember-phone-input/tsconfig.json new file mode 100644 index 000000000..e00b32b6f --- /dev/null +++ b/ember-phone-input/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@tsconfig/ember/tsconfig.json", + "include": ["src/**/*", "unpublished-development-types/**/*"], + "glint": { + "environment": "ember-loose" + }, + "compilerOptions": { + "allowJs": true, + "declarationDir": "declarations", + "skipLibCheck": true + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c32967e5a..53ef05b36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ importers: version: 3.0.3 release-it: specifier: 16.2.1 - version: 16.2.1 + version: 16.2.1(typescript@5.2.2) ember-phone-input: dependencies: @@ -54,12 +54,33 @@ importers: '@babel/plugin-syntax-decorators': specifier: 7.22.10 version: 7.22.10(@babel/core@7.23.0) + '@babel/preset-typescript': + specifier: ^7.23.0 + version: 7.23.0(@babel/core@7.23.0) '@embroider/addon-dev': specifier: 4.1.0 - version: 4.1.0(rollup@3.29.4) + version: 4.1.0(@glint/template@1.2.0)(rollup@3.29.4) + '@glint/core': + specifier: ^1.2.0 + version: 1.2.0(typescript@5.2.2) + '@glint/environment-ember-loose': + specifier: ^1.2.0 + version: 1.2.0(@glimmer/component@1.1.2)(@glint/template@1.2.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0) + '@glint/template': + specifier: ^1.2.0 + version: 1.2.0 '@rollup/plugin-babel': specifier: 6.0.3 version: 6.0.3(@babel/core@7.23.0)(rollup@3.29.4) + '@tsconfig/ember': + specifier: ^3.0.1 + version: 3.0.1 + '@typescript-eslint/eslint-plugin': + specifier: ^6.5.0 + version: 6.7.3(@typescript-eslint/parser@6.7.3)(eslint@7.32.0)(typescript@5.2.2) + '@typescript-eslint/parser': + specifier: ^6.5.0 + version: 6.7.3(eslint@7.32.0)(typescript@5.2.2) concurrently: specifier: 8.2.1 version: 8.2.1 @@ -90,6 +111,9 @@ importers: rollup-plugin-copy: specifier: 3.5.0 version: 3.5.0 + typescript: + specifier: ^5.2.2 + version: 5.2.2 test-app: dependencies: @@ -105,7 +129,7 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: 3.2.0 - version: 3.2.0(ember-source@5.3.0)(webpack@5.88.2) + version: 3.2.0(@glint/template@1.2.0)(ember-source@5.3.0)(webpack@5.88.2) '@embroider/test-setup': specifier: 3.0.1 version: 3.0.1 @@ -115,6 +139,27 @@ importers: '@glimmer/tracking': specifier: 1.1.2 version: 1.1.2 + '@glint/core': + specifier: ^1.2.0 + version: 1.2.0(typescript@5.2.2) + '@glint/environment-ember-loose': + specifier: ^1.2.0 + version: 1.2.0(@glimmer/component@1.1.2)(@glint/template@1.2.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0) + '@glint/template': + specifier: ^1.2.0 + version: 1.2.0 + '@tsconfig/ember': + specifier: ^3.0.1 + version: 3.0.1 + '@types/qunit': + specifier: ^2.19.6 + version: 2.19.6 + '@typescript-eslint/eslint-plugin': + specifier: ^6.5.0 + version: 6.7.3(@typescript-eslint/parser@6.7.3)(eslint@7.32.0)(typescript@5.2.2) + '@typescript-eslint/parser': + specifier: ^6.5.0 + version: 6.7.3(eslint@7.32.0)(typescript@5.2.2) babel-eslint: specifier: 10.1.0 version: 10.1.0(eslint@7.32.0) @@ -126,13 +171,13 @@ importers: version: 8.2.1 ember-auto-import: specifier: 2.6.3 - version: 2.6.3(webpack@5.88.2) + version: 2.6.3(@glint/template@1.2.0)(webpack@5.88.2) ember-cli: specifier: 4.12.2 version: 4.12.2 ember-cli-addon-docs: specifier: 5.2.0 - version: 5.2.0(@babel/core@7.23.0)(@ember/test-helpers@3.2.0)(ember-data@5.3.0)(ember-fetch@8.1.2)(ember-source@5.3.0)(webpack@5.88.2) + version: 5.2.0(@babel/core@7.23.0)(@ember/test-helpers@3.2.0)(@glint/environment-ember-loose@1.2.0)(@glint/template@1.2.0)(ember-data@5.3.0)(ember-fetch@8.1.2)(ember-source@5.3.0)(webpack@5.88.2) ember-cli-addon-docs-yuidoc: specifier: 1.0.0 version: 1.0.0 @@ -172,9 +217,12 @@ importers: ember-cli-terser: specifier: 4.0.2 version: 4.0.2 + ember-cli-typescript: + specifier: ^5.2.1 + version: 5.2.1 ember-data: specifier: 5.3.0 - version: 5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0) + version: 5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0) ember-fetch: specifier: 8.1.2 version: 8.1.2 @@ -189,13 +237,13 @@ importers: version: 8.0.0 ember-qunit: specifier: 8.0.1 - version: 8.0.1(@ember/test-helpers@3.2.0)(ember-source@5.3.0)(qunit@2.20.0) + version: 8.0.1(@ember/test-helpers@3.2.0)(@glint/template@1.2.0)(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.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + version: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) ember-source-channel-url: specifier: 3.0.0 version: 3.0.0 @@ -258,13 +306,16 @@ importers: version: 2.0.0 release-it: specifier: 16.2.1 - version: 16.2.1 + version: 16.2.1(typescript@5.2.2) release-it-lerna-changelog: specifier: 5.0.0 version: 5.0.0(release-it@16.2.1) tracked-built-ins: specifier: 3.3.0 version: 3.3.0 + typescript: + specifier: ^5.2.2 + version: 5.2.2 webpack: specifier: 5.88.2 version: 5.88.2 @@ -729,6 +780,16 @@ packages: '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -1049,6 +1110,18 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 + /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + /@babel/plugin-transform-modules-systemjs@7.22.11(@babel/core@7.23.0): resolution: {integrity: sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==} engines: {node: '>=6.9.0'} @@ -1453,6 +1526,20 @@ packages: '@babel/types': 7.23.0 esutils: 2.0.3 + /@babel/preset-typescript@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.0) + dev: true + /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} @@ -1558,7 +1645,7 @@ packages: engines: {node: '>=4.0.0'} dev: true - /@ember-data/adapter@5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2): + /@ember-data/adapter@5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@ember/string@3.1.1)(@glint/template@1.2.0)(ember-inflector@4.0.2): resolution: {integrity: sha512-OKbqtuOn6ZHFvU36P8876TsWtr6BKx1eOAzftnRtS8kD8r9rxdXapCA7M2V3l+Fma4d+MMwm8flLrqMddP5rmA==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -1566,10 +1653,10 @@ packages: '@ember/string': ^3.1.1 ember-inflector: ^4.0.2 dependencies: - '@ember-data/private-build-infra': 5.3.0 - '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0) + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) + '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0) '@ember/string': 3.1.1 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) ember-cli-test-info: 1.0.0 ember-inflector: 4.0.2 @@ -1579,7 +1666,7 @@ packages: - supports-color dev: true - /@ember-data/debug@5.3.0(@ember-data/store@5.3.0)(@ember/string@3.1.1): + /@ember-data/debug@5.3.0(@ember-data/store@5.3.0)(@ember/string@3.1.1)(@glint/template@1.2.0): resolution: {integrity: sha512-R5Jo4N7TSlMj4HdP+kGGVM7vtxxmIm1y+RaqKiRFmh3kzf8lL5FYF6vE0Hjkfu+p9KGnGSuTm731kPxYMZnbzQ==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -1587,12 +1674,12 @@ packages: '@ember/string': ^3.1.1 dependencies: '@babel/core': 7.23.0 - '@ember-data/private-build-infra': 5.3.0 - '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0) + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) + '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - '@embroider/macros': 1.13.1 - ember-auto-import: 2.6.3(webpack@5.88.2) + '@embroider/macros': 1.13.1(@glint/template@1.2.0) + ember-auto-import: 2.6.3(@glint/template@1.2.0)(webpack@5.88.2) ember-cli-babel: 8.1.0(@babel/core@7.23.0) webpack: 5.88.2 transitivePeerDependencies: @@ -1604,16 +1691,16 @@ packages: - webpack-cli dev: true - /@ember-data/graph@5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0): + /@ember-data/graph@5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0): resolution: {integrity: sha512-BK1PGJVpW/ioP9IrvPECvbeiMf8cX0o4Ym3PWRlXIgWbfTnN57/XHwqL6qRo46Li2tMyzoranE6q7Jxhu6DCIg==} engines: {node: 16.* || >= 18.*} peerDependencies: '@ember-data/store': 5.3.0 dependencies: - '@ember-data/private-build-infra': 5.3.0 - '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0) + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) + '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0) '@ember/edition-utils': 1.2.0 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) transitivePeerDependencies: - '@babel/core' @@ -1621,7 +1708,7 @@ packages: - supports-color dev: true - /@ember-data/json-api@5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2): + /@ember-data/json-api@5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0)(ember-inflector@4.0.2): resolution: {integrity: sha512-irS0uuotz5VJbmaGEoK7Ad8JjlVzCI2C+lxz22UelR64Vbb1btnBHlw2Tr2n9s0kNxaR1iHUB94Fo2LBbr0Prg==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -1630,12 +1717,12 @@ packages: '@ember-data/store': 5.3.0 ember-inflector: ^4.0.2 dependencies: - '@ember-data/graph': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0) - '@ember-data/private-build-infra': 5.3.0 + '@ember-data/graph': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0) + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) '@ember-data/request-utils': 5.3.0(@babel/core@7.23.0) - '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0) + '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0) '@ember/edition-utils': 1.2.0 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) ember-inflector: 4.0.2 transitivePeerDependencies: @@ -1644,7 +1731,7 @@ packages: - supports-color dev: true - /@ember-data/legacy-compat@5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0): + /@ember-data/legacy-compat@5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0)(@glint/template@1.2.0): resolution: {integrity: sha512-KST6bMqvr6+DLTY5XRLOyCBgOGIj6QCpZQtyOWOhPwKnfeBXygppF9ys0ZWaNhlAaVZSrQ3uPubUit9Y72ZTYQ==} engines: {node: 16.* || >= 18} peerDependencies: @@ -1657,11 +1744,11 @@ packages: '@ember-data/json-api': optional: true dependencies: - '@ember-data/graph': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0) - '@ember-data/json-api': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) - '@ember-data/private-build-infra': 5.3.0 - '@ember-data/request': 5.3.0(@babel/core@7.23.0) - '@embroider/macros': 1.13.1 + '@ember-data/graph': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0) + '@ember-data/json-api': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0)(ember-inflector@4.0.2) + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) + '@ember-data/request': 5.3.0(@babel/core@7.23.0)(@glint/template@1.2.0) + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) transitivePeerDependencies: - '@babel/core' @@ -1669,7 +1756,7 @@ packages: - supports-color dev: true - /@ember-data/model@5.3.0(@babel/core@7.23.0)(@ember-data/debug@5.3.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/legacy-compat@5.3.0)(@ember-data/store@5.3.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.3.0): + /@ember-data/model@5.3.0(@babel/core@7.23.0)(@ember-data/debug@5.3.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/legacy-compat@5.3.0)(@ember-data/store@5.3.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glint/template@1.2.0)(ember-inflector@4.0.2)(ember-source@5.3.0): resolution: {integrity: sha512-9DckZXu3DZk1fYd1js6kS2SCxuuaQBDE1N3NMc+Zz55n8qu1LKHLxr+dGwVqV+Wtl7LGcAU1ocnm7gKNhC1vuw==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -1689,17 +1776,17 @@ packages: '@ember-data/json-api': optional: true dependencies: - '@ember-data/debug': 5.3.0(@ember-data/store@5.3.0)(@ember/string@3.1.1) - '@ember-data/graph': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0) - '@ember-data/json-api': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) - '@ember-data/legacy-compat': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0) - '@ember-data/private-build-infra': 5.3.0 - '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0) - '@ember-data/tracking': 5.3.0(@babel/core@7.23.0) + '@ember-data/debug': 5.3.0(@ember-data/store@5.3.0)(@ember/string@3.1.1)(@glint/template@1.2.0) + '@ember-data/graph': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0) + '@ember-data/json-api': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0)(ember-inflector@4.0.2) + '@ember-data/legacy-compat': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0)(@glint/template@1.2.0) + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) + '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0) + '@ember-data/tracking': 5.3.0(@babel/core@7.23.0)(@glint/template@1.2.0) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - '@embroider/macros': 1.13.1 - ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.0)(ember-source@5.3.0) + '@embroider/macros': 1.13.1(@glint/template@1.2.0) + ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.0)(@glint/template@1.2.0)(ember-source@5.3.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) ember-cli-string-utils: 1.1.0 ember-cli-test-info: 1.0.0 @@ -1712,7 +1799,7 @@ packages: - supports-color dev: true - /@ember-data/private-build-infra@5.3.0: + /@ember-data/private-build-infra@5.3.0(@glint/template@1.2.0): resolution: {integrity: sha512-n7VCPgvjS0Yza5USBucdYjTvlk5GC6fIdWiQUGdK9QxHnyekFg2Znu932ulKp/Iokoc8iBEaVX3HoiCwM/Hw1w==} engines: {node: 16.* || >= 18.*} dependencies: @@ -1720,7 +1807,7 @@ packages: '@babel/plugin-transform-block-scoping': 7.22.15(@babel/core@7.23.0) '@babel/runtime': 7.22.15 '@ember/edition-utils': 1.2.0 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) babel-import-util: 1.4.1 babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.0) babel-plugin-filter-imports: 4.0.0 @@ -1753,13 +1840,13 @@ packages: - supports-color dev: true - /@ember-data/request@5.3.0(@babel/core@7.23.0): + /@ember-data/request@5.3.0(@babel/core@7.23.0)(@glint/template@1.2.0): resolution: {integrity: sha512-dsgwnhXYMlgO99DPur2AYQpFigU8DSk628GZ9qDhQQ9IRfGkT3yjFGg9M/Bp0G+U3dJbs56Tiy+VhSl36k0Wsw==} engines: {node: 16.* || >= 18} dependencies: - '@ember-data/private-build-infra': 5.3.0 + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) '@ember/test-waiters': 3.0.2 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) transitivePeerDependencies: - '@babel/core' @@ -1770,16 +1857,16 @@ packages: /@ember-data/rfc395-data@0.0.4: resolution: {integrity: sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ==} - /@ember-data/serializer@5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(ember-inflector@4.0.2): + /@ember-data/serializer@5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(@glint/template@1.2.0)(ember-inflector@4.0.2): resolution: {integrity: sha512-apsfN8qHOVQxIxmPQh6SSxYtzNcb3/jvdjJDrU6L8eklyQXfxcbaBD6r2uUAA2jaI94oNXoSHM/75TZnJjLIZA==} engines: {node: 16.* || >= 18.*} peerDependencies: '@ember/string': ^3.1.1 ember-inflector: ^4.0.2 dependencies: - '@ember-data/private-build-infra': 5.3.0 + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) '@ember/string': 3.1.1 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) ember-cli-test-info: 1.0.0 ember-inflector: 4.0.2 @@ -1789,7 +1876,7 @@ packages: - supports-color dev: true - /@ember-data/store@5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0): + /@ember-data/store@5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0): resolution: {integrity: sha512-okM7AJmgM8Wz+FNgsDXVUVw32UZVLKko2K/2GfBmOjOcKVnfwLKI08HmQNLnT5IXiOsJW5mA4mRESuVgN8L4lQ==} engines: {node: 16.* || >= 18.*} peerDependencies: @@ -1797,12 +1884,12 @@ packages: '@ember/string': ^3.1.1 '@glimmer/tracking': ^1.1.2 dependencies: - '@ember-data/private-build-infra': 5.3.0 - '@ember-data/tracking': 5.3.0(@babel/core@7.23.0) + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) + '@ember-data/tracking': 5.3.0(@babel/core@7.23.0)(@glint/template@1.2.0) '@ember/string': 3.1.1 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) '@glimmer/tracking': 1.1.2 - ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.0)(ember-source@5.3.0) + ember-cached-decorator-polyfill: 1.0.2(@babel/core@7.23.0)(@glint/template@1.2.0)(ember-source@5.3.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) transitivePeerDependencies: - '@babel/core' @@ -1811,12 +1898,12 @@ packages: - supports-color dev: true - /@ember-data/tracking@5.3.0(@babel/core@7.23.0): + /@ember-data/tracking@5.3.0(@babel/core@7.23.0)(@glint/template@1.2.0): resolution: {integrity: sha512-CEaV9zbKY40I0c7a7AXIhV4P+veA70plWCGU2fA/AMk69BdT64vKx9r+HPvAVsaz7ER4XCnUqyPAZnCWypa9WA==} engines: {node: 16.* || >= 18} dependencies: - '@ember-data/private-build-infra': 5.3.0 - '@embroider/macros': 1.13.1 + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-babel: 8.1.0(@babel/core@7.23.0) transitivePeerDependencies: - '@babel/core' @@ -1870,7 +1957,7 @@ packages: - supports-color dev: true - /@ember/render-modifiers@2.1.0(@babel/core@7.23.0)(ember-source@5.3.0): + /@ember/render-modifiers@2.1.0(@babel/core@7.23.0)(@glint/template@1.2.0)(ember-source@5.3.0): resolution: {integrity: sha512-LruhfoDv2itpk0fA0IC76Sxjcnq/7BC6txpQo40hOko8Dn6OxwQfxkPIbZGV0Cz7df+iX+VJrcYzNIvlc3w2EQ==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: @@ -1880,10 +1967,11 @@ packages: '@glint/template': optional: true dependencies: - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) + '@glint/template': 1.2.0 ember-cli-babel: 7.26.11 ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.23.0) - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) transitivePeerDependencies: - '@babel/core' - supports-color @@ -1897,21 +1985,21 @@ packages: - supports-color dev: true - /@ember/test-helpers@3.2.0(ember-source@5.3.0)(webpack@5.88.2): + /@ember/test-helpers@3.2.0(@glint/template@1.2.0)(ember-source@5.3.0)(webpack@5.88.2): resolution: {integrity: sha512-3yWpPsK5O77tUdCwW3HayrAcdlRitIRYMvLIG69Pkal1JMIGdNYVTvJ2R1lenhQh2syd/WFmGM07vQuDAtotQw==} engines: {node: 16.* || >= 18} peerDependencies: ember-source: ^4.0.0 || ^5.0.0 dependencies: '@ember/test-waiters': 3.0.2 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) '@simple-dom/interface': 1.4.0 broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 - ember-auto-import: 2.6.3(webpack@5.88.2) + ember-auto-import: 2.6.3(@glint/template@1.2.0)(webpack@5.88.2) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) transitivePeerDependencies: - '@glint/template' - supports-color @@ -1930,12 +2018,12 @@ packages: - supports-color dev: true - /@embroider/addon-dev@4.1.0(rollup@3.29.4): + /@embroider/addon-dev@4.1.0(@glint/template@1.2.0)(rollup@3.29.4): resolution: {integrity: sha512-DR9mGlFxcXFIP9jmVbYhy0CwxIzVqMppiIg8at9C+qayr3Wj3SdS7jM95p0kxv3mMgOYs+Z6FsAaj2em6aRs4w==} engines: {node: 12.* || 14.* || >= 16} hasBin: true dependencies: - '@embroider/core': 3.2.1 + '@embroider/core': 3.2.1(@glint/template@1.2.0) '@rollup/pluginutils': 4.2.1 content-tag: 1.1.0 fs-extra: 10.1.0 @@ -1963,14 +2051,14 @@ packages: transitivePeerDependencies: - supports-color - /@embroider/core@3.2.1: + /@embroider/core@3.2.1(@glint/template@1.2.0): resolution: {integrity: sha512-GhKc9pqPcbKpvUkhTnRqJhr3Pc4xslnzhrGQqBDBNwOZ0/zUU02wpiB+PmiA3+mZFTZNQoUCq4A7vm5dXraQug==} engines: {node: 12.* || 14.* || >= 16} dependencies: '@babel/core': 7.23.0 '@babel/parser': 7.22.16 '@babel/traverse': 7.22.20 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) '@embroider/shared-internals': 2.4.0 assert-never: 1.2.1 babel-plugin-ember-template-compilation: 2.2.0 @@ -1999,7 +2087,7 @@ packages: - utf-8-validate dev: true - /@embroider/macros@1.13.1: + /@embroider/macros@1.13.1(@glint/template@1.2.0): resolution: {integrity: sha512-4htraP/rNIht8uCxXoc59Bw2EsBFfc4YUQD9XSpzJ4xUr1V0GQf9wL/noeSuYSxIhwRfZOErnJhsdyf1hH+I/A==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: @@ -2009,6 +2097,7 @@ packages: optional: true dependencies: '@embroider/shared-internals': 2.4.0 + '@glint/template': 1.2.0 assert-never: 1.2.1 babel-import-util: 2.0.0 ember-cli-babel: 7.26.11 @@ -2068,7 +2157,7 @@ packages: resolve: 1.22.6 dev: true - /@embroider/util@1.12.0(ember-source@5.3.0): + /@embroider/util@1.12.0(@glint/environment-ember-loose@1.2.0)(@glint/template@1.2.0)(ember-source@5.3.0): resolution: {integrity: sha512-P4M1QADEH9ceIYC9mwHeV+6DDgEIQQYFfZi728nVKqTAxakXoiLgu/BCyQmEGyow9fYEPYaC1boDCZxW2JQAXg==} engines: {node: 14.* || >= 16} peerDependencies: @@ -2081,10 +2170,12 @@ packages: '@glint/template': optional: true dependencies: - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) + '@glint/environment-ember-loose': 1.2.0(@glimmer/component@1.1.2)(@glint/template@1.2.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0) + '@glint/template': 1.2.0 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) transitivePeerDependencies: - supports-color dev: true @@ -2365,6 +2456,64 @@ packages: '@glimmer/interfaces': 0.84.2 '@glimmer/util': 0.84.2 + /@glint/core@1.2.0(typescript@5.2.2): + resolution: {integrity: sha512-dugZ4wSWOubC9O4+pxhX1EgTf7rVi1ZNYsZ66XKEKPY2JGxAtI5dqyjl4BsX8SkbGKKDKeMKIZjcaDsz17VMqw==} + hasBin: true + peerDependencies: + typescript: '>=4.8.0' + dependencies: + '@glimmer/syntax': 0.84.3 + escape-string-regexp: 4.0.0 + semver: 7.5.4 + silent-error: 1.1.1 + typescript: 5.2.2 + uuid: 8.3.2 + vscode-languageserver: 8.1.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.7 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@glint/environment-ember-loose@1.2.0(@glimmer/component@1.1.2)(@glint/template@1.2.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0): + resolution: {integrity: sha512-zj26Gh0cPY8FdT8X+UBUfgXB2Gt7T1RUn9jhlG1O7sZJTCmL8B/UNSZEB4KMAcs/dDv53u/pBl78+JF2B7F+7w==} + peerDependencies: + '@glimmer/component': ^1.1.2 + '@glint/template': ^1.2.0 + '@types/ember__array': ^4.0.2 + '@types/ember__component': ^4.0.10 + '@types/ember__controller': ^4.0.2 + '@types/ember__object': ^4.0.4 + '@types/ember__routing': ^4.0.11 + ember-cli-htmlbars: ^6.0.1 + ember-modifier: ^3.2.7 || ^4.0.0 + peerDependenciesMeta: + '@types/ember__array': + optional: true + '@types/ember__component': + optional: true + '@types/ember__controller': + optional: true + '@types/ember__object': + optional: true + '@types/ember__routing': + optional: true + ember-cli-htmlbars: + optional: true + ember-modifier: + optional: true + dependencies: + '@glimmer/component': 1.1.2(@babel/core@7.23.0) + '@glint/template': 1.2.0 + ember-cli-htmlbars: 6.3.0 + ember-modifier: 4.1.0(ember-source@5.3.0) + dev: true + + /@glint/template@1.2.0: + resolution: {integrity: sha512-8KsJSLyFQ7lB+ZgJeykoyCs4uw+p2+tMeoOZ1gP7JaoiBhlJOXtGwQv5qt4LGKNX1NjkMkyAYDGVzF1Psgnzhg==} + dev: true + /@handlebars/parser@2.0.0: resolution: {integrity: sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==} @@ -3044,7 +3193,7 @@ packages: lerna-changelog: 2.2.0 lodash.template: 4.5.0 mdast-util-from-markdown: 1.3.1 - release-it: 16.2.1 + release-it: 16.2.1(typescript@5.2.2) tmp: 0.2.1 validate-peer-dependencies: 2.2.0 which: 2.0.2 @@ -3061,7 +3210,7 @@ packages: dependencies: detect-indent: 6.1.0 detect-newline: 3.1.0 - release-it: 16.2.1 + release-it: 16.2.1(typescript@5.2.2) semver: 7.5.4 url-join: 4.0.1 validate-peer-dependencies: 1.2.0 @@ -3165,6 +3314,10 @@ packages: resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} dev: true + /@tsconfig/ember@3.0.1: + resolution: {integrity: sha512-IBoECN9o9StxTZSy12eNSPdqiH5VzngD5Qx9YQDfteiXk9XyJhnyRQuBoU/MQCVnqau9fJpgKoA8Sy/0qItFXw==} + dev: true + /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: @@ -3448,6 +3601,10 @@ packages: resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} dev: true + /@types/qunit@2.19.6: + resolution: {integrity: sha512-bz9STa6EHurtpSfn5cNiScBladlw43bM+7luQA985Kd9YlF4dZaLmKt3c5/oSyN1AWAl50YBpqTq0BxCP64nGg==} + dev: true + /@types/range-parser@1.2.4: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true @@ -3468,6 +3625,10 @@ packages: resolution: {integrity: sha512-J3Ol++HCC7/hwZhanDvggFYU/GtxHxE/e7cGRWxR04BF7Tt3TqJZ84BkzQgDxmX0uu8IagiyfmfoUlBACh2Ilg==} dev: true + /@types/semver@7.5.3: + resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} + dev: true + /@types/send@0.17.1: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: @@ -3494,6 +3655,137 @@ packages: resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} dev: true + /@typescript-eslint/eslint-plugin@6.7.3(@typescript-eslint/parser@6.7.3)(eslint@7.32.0)(typescript@5.2.2): + resolution: {integrity: sha512-vntq452UHNltxsaaN+L9WyuMch8bMd9CqJ3zhzTPXXidwbf5mqqKCVXEuvRZUqLJSTLeWE65lQwyXsRGnXkCTA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.8.1 + '@typescript-eslint/parser': 6.7.3(eslint@7.32.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.7.3 + '@typescript-eslint/type-utils': 6.7.3(eslint@7.32.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.3(eslint@7.32.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.3 + debug: 4.3.4 + eslint: 7.32.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.7.3(eslint@7.32.0)(typescript@5.2.2): + resolution: {integrity: sha512-TlutE+iep2o7R8Lf+yoer3zU6/0EAUc8QIBB3GYBc1KGz4c4TRm83xwXUZVPlZ6YCLss4r77jbu6j3sendJoiQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.7.3 + '@typescript-eslint/types': 6.7.3 + '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.3 + debug: 4.3.4 + eslint: 7.32.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.7.3: + resolution: {integrity: sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.3 + '@typescript-eslint/visitor-keys': 6.7.3 + dev: true + + /@typescript-eslint/type-utils@6.7.3(eslint@7.32.0)(typescript@5.2.2): + resolution: {integrity: sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.3(eslint@7.32.0)(typescript@5.2.2) + debug: 4.3.4 + eslint: 7.32.0 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.7.3: + resolution: {integrity: sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.7.3(typescript@5.2.2): + resolution: {integrity: sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.7.3 + '@typescript-eslint/visitor-keys': 6.7.3 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.7.3(eslint@7.32.0)(typescript@5.2.2): + resolution: {integrity: sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.3 + '@typescript-eslint/scope-manager': 6.7.3 + '@typescript-eslint/types': 6.7.3 + '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.2.2) + eslint: 7.32.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.7.3: + resolution: {integrity: sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.3 + eslint-visitor-keys: 3.4.3 + dev: true + /@webassemblyjs/ast@1.11.6: resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} dependencies: @@ -7095,7 +7387,7 @@ packages: vary: 1.1.2 dev: true - /cosmiconfig@8.3.6: + /cosmiconfig@8.3.6(typescript@5.2.2): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -7108,6 +7400,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 + typescript: 5.2.2 dev: true /create-ecdh@4.0.4: @@ -7830,15 +8123,15 @@ packages: - supports-color dev: true - /ember-arg-types@1.1.0(webpack@5.88.2): + /ember-arg-types@1.1.0(@glint/template@1.2.0)(webpack@5.88.2): resolution: {integrity: sha512-hWpUz0eiNkWzi3FgHW5QU6LyCDyUlTWwuIROHluEKZoa9m6LJVXbb/EVFgIG3FkAib6a5Ie00WvkXEZFXxh3+A==} engines: {node: 14.* || >= 16} dependencies: - '@embroider/macros': 1.13.1 - ember-auto-import: 2.6.3(webpack@5.88.2) + '@embroider/macros': 1.13.1(@glint/template@1.2.0) + ember-auto-import: 2.6.3(@glint/template@1.2.0)(webpack@5.88.2) ember-cli-babel: 7.26.11 ember-cli-typescript: 5.2.1 - ember-get-config: 2.1.1 + ember-get-config: 2.1.1(@glint/template@1.2.0) prop-types: 15.8.1 transitivePeerDependencies: - '@glint/template' @@ -7885,47 +8178,7 @@ packages: - webpack-command dev: true - /ember-auto-import@2.6.3: - resolution: {integrity: sha512-uLhrRDJYWCRvQ4JQ1e64XlSrqAKSd6PXaJ9ZsZI6Tlms9T4DtQFxNXasqji2ZRJBVrxEoLCRYX3RTldsQ0vNGQ==} - engines: {node: 12.* || 14.* || >= 16} - dependencies: - '@babel/core': 7.23.0 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.0) - '@babel/plugin-proposal-decorators': 7.23.0(@babel/core@7.23.0) - '@babel/preset-env': 7.22.20(@babel/core@7.23.0) - '@embroider/macros': 1.13.1 - '@embroider/shared-internals': 2.4.0 - babel-loader: 8.3.0(@babel/core@7.23.0)(webpack@4.47.0) - babel-plugin-ember-modules-api-polyfill: 3.5.0 - babel-plugin-ember-template-compilation: 2.2.0 - babel-plugin-htmlbars-inline-precompile: 5.3.1 - babel-plugin-syntax-dynamic-import: 6.18.0 - broccoli-debug: 0.6.5 - broccoli-funnel: 3.0.8 - broccoli-merge-trees: 4.2.0 - broccoli-plugin: 4.0.7 - broccoli-source: 3.0.1 - css-loader: 5.2.7(webpack@5.88.2) - debug: 4.3.4 - fs-extra: 10.1.0 - fs-tree-diff: 2.0.1 - handlebars: 4.7.8 - js-string-escape: 1.0.1 - lodash: 4.17.21 - mini-css-extract-plugin: 2.7.6(webpack@5.88.2) - parse5: 6.0.1 - resolve: 1.22.6 - resolve-package-path: 4.0.3 - semver: 7.5.4 - style-loader: 2.0.0(webpack@5.88.2) - typescript-memoize: 1.1.1 - walk-sync: 3.0.0 - transitivePeerDependencies: - - '@glint/template' - - supports-color - - webpack - - /ember-auto-import@2.6.3(webpack@5.88.2): + /ember-auto-import@2.6.3(@glint/template@1.2.0)(webpack@5.88.2): resolution: {integrity: sha512-uLhrRDJYWCRvQ4JQ1e64XlSrqAKSd6PXaJ9ZsZI6Tlms9T4DtQFxNXasqji2ZRJBVrxEoLCRYX3RTldsQ0vNGQ==} engines: {node: 12.* || 14.* || >= 16} dependencies: @@ -7933,7 +8186,7 @@ packages: '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.0) '@babel/plugin-proposal-decorators': 7.23.0(@babel/core@7.23.0) '@babel/preset-env': 7.22.20(@babel/core@7.23.0) - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) '@embroider/shared-internals': 2.4.0 babel-loader: 8.3.0(@babel/core@7.23.0)(webpack@5.88.2) babel-plugin-ember-modules-api-polyfill: 3.5.0 @@ -7979,19 +8232,19 @@ packages: - supports-color dev: true - /ember-cached-decorator-polyfill@1.0.2(@babel/core@7.23.0)(ember-source@5.3.0): + /ember-cached-decorator-polyfill@1.0.2(@babel/core@7.23.0)(@glint/template@1.2.0)(ember-source@5.3.0): resolution: {integrity: sha512-hUX6OYTKltAPAu8vsVZK02BfMTV0OUXrPqvRahYPhgS7D0I6joLjlskd7mhqJMcaXLywqceIy8/s+x8bxF8bpQ==} engines: {node: 14.* || >= 16} peerDependencies: ember-source: ^3.13.0 || ^4.0.0 || >= 5.0.0 dependencies: - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) '@glimmer/tracking': 1.1.2 babel-import-util: 1.4.1 ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.0) ember-cli-babel: 7.26.11 ember-cli-babel-plugin-helpers: 1.1.1 - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -8013,7 +8266,7 @@ packages: - supports-color dev: true - /ember-cli-addon-docs@5.2.0(@babel/core@7.23.0)(@ember/test-helpers@3.2.0)(ember-data@5.3.0)(ember-fetch@8.1.2)(ember-source@5.3.0)(webpack@5.88.2): + /ember-cli-addon-docs@5.2.0(@babel/core@7.23.0)(@ember/test-helpers@3.2.0)(@glint/environment-ember-loose@1.2.0)(@glint/template@1.2.0)(ember-data@5.3.0)(ember-fetch@8.1.2)(ember-source@5.3.0)(webpack@5.88.2): resolution: {integrity: sha512-+7pRAC1qtDtm9tasOYU6OzJSh24iLZP8ouY4ZtGztCi8RV1LHTeNFq3YziSvs+QedpexS2nBTG4kPFCZpKSnFg==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: @@ -8021,7 +8274,7 @@ packages: ember-fetch: ^8.1.1 dependencies: '@csstools/postcss-sass': 5.0.1(postcss@8.4.30) - '@ember/render-modifiers': 2.1.0(@babel/core@7.23.0)(ember-source@5.3.0) + '@ember/render-modifiers': 2.1.0(@babel/core@7.23.0)(@glint/template@1.2.0)(ember-source@5.3.0) '@ember/test-waiters': 3.0.2 '@glimmer/component': 1.1.2(@babel/core@7.23.0) '@glimmer/syntax': 0.84.3 @@ -8037,10 +8290,10 @@ packages: broccoli-source: 3.0.1 broccoli-stew: 3.0.0 chalk: 4.1.2 - ember-auto-import: 2.6.3(webpack@5.88.2) + ember-auto-import: 2.6.3(@glint/template@1.2.0)(webpack@5.88.2) ember-cli-autoprefixer: 2.0.0 ember-cli-babel: 7.26.11 - ember-cli-clipboard: 1.1.0(ember-source@5.3.0)(webpack@5.88.2) + ember-cli-clipboard: 1.1.0(@glint/template@1.2.0)(ember-source@5.3.0)(webpack@5.88.2) ember-cli-htmlbars: 6.3.0 ember-cli-postcss: 8.2.0 ember-cli-string-helpers: 6.1.0 @@ -8049,15 +8302,15 @@ packages: ember-code-snippet: 3.0.0 ember-composable-helpers: 5.0.0 ember-concurrency: 2.3.7(@babel/core@7.23.0) - ember-data: 5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0) + ember-data: 5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0) ember-fetch: 8.1.2 ember-keyboard: 8.2.1(@babel/core@7.23.0)(@ember/test-helpers@3.2.0)(ember-source@5.3.0) - ember-modal-dialog: 4.1.2(ember-source@5.3.0)(ember-tether@2.0.1) + ember-modal-dialog: 4.1.2(@glint/environment-ember-loose@1.2.0)(@glint/template@1.2.0)(ember-source@5.3.0)(ember-tether@2.0.1) ember-responsive: 5.0.0 ember-router-generator: 2.0.0 ember-router-scroll: 4.1.2(@babel/core@7.23.0) ember-set-helper: 2.0.1 - ember-svg-jar: 2.4.6 + ember-svg-jar: 2.4.6(@glint/template@1.2.0) ember-tether: 2.0.1 ember-truth-helpers: 3.1.1 esm: 3.2.25 @@ -8109,7 +8362,7 @@ packages: ember-source: ^3.28.0 || >= 4.0.0 dependencies: ember-cli-babel: 7.26.11 - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) git-repo-info: 2.1.1 transitivePeerDependencies: - supports-color @@ -8226,14 +8479,14 @@ packages: - supports-color dev: true - /ember-cli-clipboard@1.1.0(ember-source@5.3.0)(webpack@5.88.2): + /ember-cli-clipboard@1.1.0(@glint/template@1.2.0)(ember-source@5.3.0)(webpack@5.88.2): resolution: {integrity: sha512-gqFMeLCMe7OKP8rtZluV3BsP03bnjqD/f1QQLdOB9gAbdiHzMIAbwIA/RhccGtGQgy5AlnxkkQ+7j/h6UDluPQ==} engines: {node: 14.* || >= 16} dependencies: - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) clipboard: 2.0.11 - ember-arg-types: 1.1.0(webpack@5.88.2) - ember-auto-import: 2.6.3(webpack@5.88.2) + ember-arg-types: 1.1.0(@glint/template@1.2.0)(webpack@5.88.2) + ember-auto-import: 2.6.3(@glint/template@1.2.0)(webpack@5.88.2) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-modifier: 4.1.0(ember-source@5.3.0) @@ -8830,29 +9083,29 @@ packages: - supports-color dev: true - /ember-data@5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0): + /ember-data@5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0): resolution: {integrity: sha512-ca8udUa2SrWyYxPckYc89Fdv/9pCG3X360zHvlGxtB4C87o3dWp6sle98tP9G1TjximKhrU/PMrqpdhJ8rOGtA==} engines: {node: 16.* || >= 18.*} peerDependencies: '@ember/string': ^3.1.1 dependencies: - '@ember-data/adapter': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2) - '@ember-data/debug': 5.3.0(@ember-data/store@5.3.0)(@ember/string@3.1.1) - '@ember-data/graph': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0) - '@ember-data/json-api': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(ember-inflector@4.0.2) - '@ember-data/legacy-compat': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0) - '@ember-data/model': 5.3.0(@babel/core@7.23.0)(@ember-data/debug@5.3.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/legacy-compat@5.3.0)(@ember-data/store@5.3.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(ember-inflector@4.0.2)(ember-source@5.3.0) - '@ember-data/private-build-infra': 5.3.0 - '@ember-data/request': 5.3.0(@babel/core@7.23.0) + '@ember-data/adapter': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@ember/string@3.1.1)(@glint/template@1.2.0)(ember-inflector@4.0.2) + '@ember-data/debug': 5.3.0(@ember-data/store@5.3.0)(@ember/string@3.1.1)(@glint/template@1.2.0) + '@ember-data/graph': 5.3.0(@babel/core@7.23.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0) + '@ember-data/json-api': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/request-utils@5.3.0)(@ember-data/store@5.3.0)(@glint/template@1.2.0)(ember-inflector@4.0.2) + '@ember-data/legacy-compat': 5.3.0(@babel/core@7.23.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/request@5.3.0)(@glint/template@1.2.0) + '@ember-data/model': 5.3.0(@babel/core@7.23.0)(@ember-data/debug@5.3.0)(@ember-data/graph@5.3.0)(@ember-data/json-api@5.3.0)(@ember-data/legacy-compat@5.3.0)(@ember-data/store@5.3.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glint/template@1.2.0)(ember-inflector@4.0.2)(ember-source@5.3.0) + '@ember-data/private-build-infra': 5.3.0(@glint/template@1.2.0) + '@ember-data/request': 5.3.0(@babel/core@7.23.0)(@glint/template@1.2.0) '@ember-data/request-utils': 5.3.0(@babel/core@7.23.0) - '@ember-data/serializer': 5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(ember-inflector@4.0.2) - '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0) - '@ember-data/tracking': 5.3.0(@babel/core@7.23.0) + '@ember-data/serializer': 5.3.0(@babel/core@7.23.0)(@ember/string@3.1.1)(@glint/template@1.2.0)(ember-inflector@4.0.2) + '@ember-data/store': 5.3.0(@babel/core@7.23.0)(@ember-data/tracking@5.3.0)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(@glint/template@1.2.0)(ember-source@5.3.0) + '@ember-data/tracking': 5.3.0(@babel/core@7.23.0)(@glint/template@1.2.0) '@ember/edition-utils': 1.2.0 '@ember/string': 3.1.1 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) broccoli-merge-trees: 4.2.0 - ember-auto-import: 2.6.3(webpack@5.88.2) + ember-auto-import: 2.6.3(@glint/template@1.2.0)(webpack@5.88.2) ember-cli-babel: 8.1.0(@babel/core@7.23.0) ember-inflector: 4.0.2 webpack: 5.88.2 @@ -8914,11 +9167,11 @@ packages: - supports-color dev: true - /ember-get-config@2.1.1: + /ember-get-config@2.1.1(@glint/template@1.2.0): resolution: {integrity: sha512-uNmv1cPG/4qsac8oIf5txJ2FZ8p88LEpG4P3dNcjsJS98Y8hd0GPMFwVqpnzI78Lz7VYRGQWY4jnE4qm5R3j4g==} engines: {node: 12.* || 14.* || >= 16} dependencies: - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-babel: 7.26.11 transitivePeerDependencies: - '@glint/template' @@ -8942,7 +9195,7 @@ packages: '@ember/test-helpers': optional: true dependencies: - '@ember/test-helpers': 3.2.0(ember-source@5.3.0)(webpack@5.88.2) + '@ember/test-helpers': 3.2.0(@glint/template@1.2.0)(ember-source@5.3.0)(webpack@5.88.2) '@embroider/addon-shim': 1.8.6 ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.0) ember-modifier: 4.1.0(ember-source@5.3.0) @@ -8964,7 +9217,7 @@ packages: - supports-color dev: true - /ember-modal-dialog@4.1.2(ember-source@5.3.0)(ember-tether@2.0.1): + /ember-modal-dialog@4.1.2(@glint/environment-ember-loose@1.2.0)(@glint/template@1.2.0)(ember-source@5.3.0)(ember-tether@2.0.1): resolution: {integrity: sha512-Wl5jPE74ciSmwbmmhqRNAri7YHbiY1gVjteHPmsgKpUqlW2Yoghp7qoCvVN6v3Nnx1sqv+FXWFPwEcJknWkvaA==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: @@ -8973,8 +9226,8 @@ packages: ember-tether: optional: true dependencies: - '@embroider/macros': 1.13.1 - '@embroider/util': 1.12.0(ember-source@5.3.0) + '@embroider/macros': 1.13.1(@glint/template@1.2.0) + '@embroider/util': 1.12.0(@glint/environment-ember-loose@1.2.0)(@glint/template@1.2.0)(ember-source@5.3.0) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-cli-version-checker: 2.2.0 @@ -9010,7 +9263,7 @@ packages: '@embroider/addon-shim': 1.8.6 ember-cli-normalize-entity-name: 1.0.0 ember-cli-string-utils: 1.1.0 - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) transitivePeerDependencies: - supports-color dev: true @@ -9024,18 +9277,18 @@ packages: - supports-color dev: true - /ember-qunit@8.0.1(@ember/test-helpers@3.2.0)(ember-source@5.3.0)(qunit@2.20.0): + /ember-qunit@8.0.1(@ember/test-helpers@3.2.0)(@glint/template@1.2.0)(ember-source@5.3.0)(qunit@2.20.0): resolution: {integrity: sha512-13PtywHNPTQKkDW4o8QRkJvcdsZr8hRyvh6xh/YLAX8+HaRLd3nPL8mBF4O/Kur/DAj3QWLvjzktZ2uRNGSh3A==} peerDependencies: '@ember/test-helpers': '>=3.0.3' ember-source: '>=4.0.0' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 3.2.0(ember-source@5.3.0)(webpack@5.88.2) + '@ember/test-helpers': 3.2.0(@glint/template@1.2.0)(ember-source@5.3.0)(webpack@5.88.2) '@embroider/addon-shim': 1.8.6 - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) ember-cli-test-loader: 3.1.0 - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) qunit: 2.20.0 transitivePeerDependencies: - '@glint/template' @@ -9052,7 +9305,7 @@ packages: optional: true dependencies: ember-cli-babel: 7.26.11 - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) transitivePeerDependencies: - supports-color dev: true @@ -9110,65 +9363,7 @@ packages: - encoding dev: true - /ember-source@5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5): - resolution: {integrity: sha512-MnsPEYo2gArYzlY0uu5bBH60oNYcgcayYQEd27nJumuaceN1sMLMu1jGQmjiQzZ4b6U5edEUNQbCIZ/9TXbASw==} - engines: {node: '>= 16.*'} - peerDependencies: - '@glimmer/component': ^1.1.2 - dependencies: - '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-block-scoping': 7.22.15(@babel/core@7.23.0) - '@ember/edition-utils': 1.2.0 - '@glimmer/compiler': 0.84.2 - '@glimmer/component': 1.1.2(@babel/core@7.23.0) - '@glimmer/destroyable': 0.84.2 - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.84.3 - '@glimmer/interfaces': 0.84.2 - '@glimmer/manager': 0.84.2 - '@glimmer/node': 0.84.2 - '@glimmer/opcode-compiler': 0.84.2 - '@glimmer/owner': 0.84.2 - '@glimmer/program': 0.84.2 - '@glimmer/reference': 0.84.2 - '@glimmer/runtime': 0.84.2 - '@glimmer/syntax': 0.84.2 - '@glimmer/validator': 0.84.2 - '@glimmer/vm-babel-plugins': 0.84.3(@babel/core@7.23.0) - '@simple-dom/interface': 1.4.0 - babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.0) - babel-plugin-filter-imports: 4.0.0 - backburner.js: 2.7.0 - broccoli-concat: 4.2.5 - broccoli-debug: 0.6.5 - broccoli-file-creator: 2.1.1 - broccoli-funnel: 3.0.8 - broccoli-merge-trees: 4.2.0 - chalk: 4.1.2 - ember-auto-import: 2.6.3 - ember-cli-babel: 7.26.11 - ember-cli-get-component-path-option: 1.0.0 - ember-cli-is-package-missing: 1.0.0 - ember-cli-normalize-entity-name: 1.0.0 - ember-cli-path-utils: 1.0.0 - ember-cli-string-utils: 1.1.0 - ember-cli-typescript-blueprint-polyfill: 0.1.0 - ember-cli-version-checker: 5.1.2 - ember-router-generator: 2.0.0 - inflection: 2.0.1 - resolve: 1.22.6 - route-recognizer: 0.3.4 - router_js: 8.0.3(route-recognizer@0.3.4)(rsvp@4.8.5) - semver: 7.5.4 - silent-error: 1.1.1 - transitivePeerDependencies: - - '@babel/core' - - '@glint/template' - - rsvp - - supports-color - - webpack - - /ember-source@5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2): + /ember-source@5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2): resolution: {integrity: sha512-MnsPEYo2gArYzlY0uu5bBH60oNYcgcayYQEd27nJumuaceN1sMLMu1jGQmjiQzZ4b6U5edEUNQbCIZ/9TXbASw==} engines: {node: '>= 16.*'} peerDependencies: @@ -9203,7 +9398,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.6.3(webpack@5.88.2) + ember-auto-import: 2.6.3(@glint/template@1.2.0)(webpack@5.88.2) ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -9227,11 +9422,11 @@ packages: - webpack dev: true - /ember-svg-jar@2.4.6: + /ember-svg-jar@2.4.6(@glint/template@1.2.0): resolution: {integrity: sha512-W+t6sRAiPhRl4imGKEMWsQDiCV8Nl2GRwzUpqZ1a+CZoW+2aCkF+kcngeDlHn5XzT16bQXg/QYXUvwtKJlSLfg==} engines: {node: 12.* || 14.* || >= 16} dependencies: - '@embroider/macros': 1.13.1 + '@embroider/macros': 1.13.1(@glint/template@1.2.0) broccoli-caching-writer: 3.0.3 broccoli-concat: 4.2.5 broccoli-funnel: 3.0.8 @@ -11256,6 +11451,10 @@ packages: resolution: {integrity: sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==} dev: true + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + /growly@1.3.0: resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} dev: true @@ -15800,7 +15999,7 @@ packages: lerna-changelog: 2.2.0 lodash.template: 4.5.0 mdast-util-from-markdown: 1.3.1 - release-it: 16.2.1 + release-it: 16.2.1(typescript@5.2.2) tmp: 0.2.1 validate-peer-dependencies: 2.2.0 which: 2.0.2 @@ -15809,7 +16008,7 @@ packages: - supports-color dev: true - /release-it@16.2.1: + /release-it@16.2.1(typescript@5.2.2): resolution: {integrity: sha512-+bHiKPqkpld+NaiW+K/2WsjaHgfPB00J6uk8a+g8QyuBtzfFoMVe+GKsfaDO5ztEHRrSg+7luoXzd8IfvPNPig==} engines: {node: '>=16'} hasBin: true @@ -15818,7 +16017,7 @@ packages: '@octokit/rest': 19.0.13 async-retry: 1.3.3 chalk: 5.3.0 - cosmiconfig: 8.3.6 + cosmiconfig: 8.3.6(typescript@5.2.2) execa: 7.2.0 git-url-parse: 13.1.0 globby: 13.2.2 @@ -17796,7 +17995,7 @@ packages: dependencies: '@embroider/addon-shim': 1.8.6 ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.0) - ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.88.2) + ember-source: 5.3.0(@babel/core@7.23.0)(@glimmer/component@1.1.2)(@glint/template@1.2.0)(rsvp@4.8.5)(webpack@5.88.2) transitivePeerDependencies: - '@babel/core' - supports-color @@ -17836,6 +18035,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: true + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true @@ -17954,6 +18162,12 @@ packages: /typescript-memoize@1.1.1: resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + /uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true @@ -18301,6 +18515,37 @@ packages: /vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + /vscode-jsonrpc@8.1.0: + resolution: {integrity: sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==} + engines: {node: '>=14.0.0'} + dev: true + + /vscode-languageserver-protocol@3.17.3: + resolution: {integrity: sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==} + dependencies: + vscode-jsonrpc: 8.1.0 + vscode-languageserver-types: 3.17.3 + dev: true + + /vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: true + + /vscode-languageserver-types@3.17.3: + resolution: {integrity: sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==} + dev: true + + /vscode-languageserver@8.1.0: + resolution: {integrity: sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.17.3 + dev: true + + /vscode-uri@3.0.7: + resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} + dev: true + /w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} deprecated: Use your platform's native performance.now() and performance.timeOrigin. diff --git a/test-app/.eslintrc.js b/test-app/.eslintrc.js index 19a2c2360..b0043df23 100644 --- a/test-app/.eslintrc.js +++ b/test-app/.eslintrc.js @@ -2,7 +2,7 @@ module.exports = { root: true, - parser: 'babel-eslint', + parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 2018, sourceType: 'module', @@ -50,6 +50,84 @@ module.exports = { // test files files: ['tests/**/*-test.{js,ts}'], extends: ['plugin:qunit/recommended'] + }, + // ts files + { + files: ['**/*.ts'], + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended' + ], + rules: { + // https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/recommended.ts + '@typescript-eslint/no-explicit-any': 'error', + '@typescript-eslint/no-non-null-assertion': 'error', + '@typescript-eslint/no-unused-vars': 'error', + // https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/strict.ts + '@typescript-eslint/array-type': [ + 'error', + { + default: 'array', + readonly: 'array' + } + ], + '@typescript-eslint/ban-tslint-comment': 'error', + '@typescript-eslint/class-literal-property-style': 'error', + '@typescript-eslint/consistent-generic-constructors': 'error', + '@typescript-eslint/consistent-indexed-object-style': 'error', + '@typescript-eslint/consistent-type-assertions': 'error', + '@typescript-eslint/consistent-type-definitions': 'error', + '@typescript-eslint/consistent-type-imports': 'error', + '@typescript-eslint/explicit-function-return-type': 'error', + '@typescript-eslint/explicit-member-accessibility': [ + 'error', + { + accessibility: 'no-public' + } + ], + 'no-restricted-syntax': [ + 'error', + { + selector: + ':matches(PropertyDefinition, MethodDefinition)[accessibility="private"]', + message: 'Use #private instead' + }, + { + selector: + ':matches(PropertyDefinition, MethodDefinition)[accessibility="protected"]', + message: 'Use #private instead' + } + ], + '@typescript-eslint/explicit-module-boundary-types': 'error', + '@typescript-eslint/member-delimiter-style': 'error', + '@typescript-eslint/member-ordering': 'error', + '@typescript-eslint/method-signature-style': 'error', + '@typescript-eslint/no-confusing-non-null-assertion': 'error', + '@typescript-eslint/no-duplicate-enum-values': 'error', + '@typescript-eslint/no-dynamic-delete': 'error', + '@typescript-eslint/no-extraneous-class': 'error', + '@typescript-eslint/no-import-type-side-effects': 'error', + '@typescript-eslint/no-invalid-void-type': 'error', + '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error', + '@typescript-eslint/no-require-imports': 'error', + '@typescript-eslint/no-type-alias': [ + 'error', + { + allowGenerics: 'always' + } + ], + '@typescript-eslint/no-unsafe-declaration-merging': 'error', + '@typescript-eslint/parameter-properties': 'error', + '@typescript-eslint/prefer-enum-initializers': 'error', + '@typescript-eslint/prefer-for-of': 'error', + '@typescript-eslint/prefer-function-type': 'error', + '@typescript-eslint/prefer-literal-enum-member': 'error', + '@typescript-eslint/prefer-ts-expect-error': 'error', + '@typescript-eslint/sort-type-constituents': 'error', + '@typescript-eslint/type-annotation-spacing': 'error', + '@typescript-eslint/typedef': 'error', + '@typescript-eslint/unified-signatures': 'error' + } } ] }; diff --git a/test-app/config/environment.d.ts b/test-app/config/environment.d.ts new file mode 100644 index 000000000..fbda509a8 --- /dev/null +++ b/test-app/config/environment.d.ts @@ -0,0 +1,13 @@ +export default config; + +/** + * Type declarations for import config from 'my-app/config/environment' + */ +declare const config: { + environment: string; + modulePrefix: string; + podModulePrefix: string; + locationType: 'auto' | 'hash' | 'history' | 'none'; + rootURL: string; + APP: Record; +}; diff --git a/test-app/package.json b/test-app/package.json index 1e76202fd..f4e825f15 100644 --- a/test-app/package.json +++ b/test-app/package.json @@ -30,6 +30,13 @@ "@embroider/test-setup": "3.0.1", "@glimmer/component": "1.1.2", "@glimmer/tracking": "1.1.2", + "@glint/core": "^1.2.0", + "@glint/environment-ember-loose": "^1.2.0", + "@glint/template": "^1.2.0", + "@tsconfig/ember": "^3.0.1", + "@types/qunit": "^2.19.6", + "@typescript-eslint/eslint-plugin": "^6.5.0", + "@typescript-eslint/parser": "^6.5.0", "babel-eslint": "10.1.0", "broccoli-asset-rev": "3.0.0", "concurrently": "8.2.1", @@ -44,6 +51,7 @@ "ember-cli-inject-live-reload": "2.1.0", "ember-cli-sri": "2.1.1", "ember-cli-terser": "4.0.2", + "ember-cli-typescript": "^5.2.1", "ember-data": "5.3.0", "ember-fetch": "8.1.2", "ember-load-initializers": "2.1.2", @@ -67,6 +75,7 @@ "qunit": "2.20.0", "qunit-dom": "2.0.0", "tracked-built-ins": "3.3.0", + "typescript": "^5.2.2", "webpack": "5.88.2", "ember-cli-deploy": "2.0.0", "ember-cli-deploy-build": "3.0.0", diff --git a/test-app/tsconfig.json b/test-app/tsconfig.json new file mode 100644 index 000000000..6d69f8a17 --- /dev/null +++ b/test-app/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "@tsconfig/ember/tsconfig.json", + "compilerOptions": { + // 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": ".", + // Type check only the code specifically refered to in the source code. + "skipLibCheck": true, + "paths": { + "test-app/tests/*": ["tests/*"], + "test-app/*": ["app/*"], + "*": ["types/*"] + } + }, + "include": ["app/**/*", "tests/**/*", "types/**/*"], + "glint": { + "environment": "ember-loose", + "transform": { + "include": ["app/**", "tests/**"] + } + } +} diff --git a/test-app/types/glint.d.ts b/test-app/types/glint.d.ts new file mode 100644 index 000000000..2a6c30570 --- /dev/null +++ b/test-app/types/glint.d.ts @@ -0,0 +1,5 @@ +import '@glint/environment-ember-loose'; + +declare module '@glint/environment-ember-loose/registry' { + export default interface Registry {} +} diff --git a/test-app/types/index.d.ts b/test-app/types/index.d.ts new file mode 100644 index 000000000..2109bac67 --- /dev/null +++ b/test-app/types/index.d.ts @@ -0,0 +1,2 @@ +import 'ember-source/types'; +import 'ember-source/types/preview';