diff --git a/.github/workflows/ci-components.yml b/.github/workflows/ci-components.yml index c3c48213b26..f736ef9b860 100644 --- a/.github/workflows/ci-components.yml +++ b/.github/workflows/ci-components.yml @@ -42,18 +42,18 @@ jobs: cache-dependency-path: yarn.lock - name: Install Dependencies run: yarn install --immutable - - name: Lint Showcase - run: yarn run lint - working-directory: showcase - - name: Lint Components - run: yarn run lint - working-directory: packages/components - name: Build Icons run: yarn build working-directory: packages/ember-flight-icons - name: Build Components run: yarn build working-directory: packages/components + - name: Lint Showcase + run: yarn run lint + working-directory: showcase + - name: Lint Components + run: yarn run lint + working-directory: packages/components - name: Run Tests run: yarn run test:ember:percy working-directory: showcase diff --git a/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch b/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch new file mode 100644 index 00000000000..e693550d420 --- /dev/null +++ b/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch @@ -0,0 +1,17 @@ +diff --git a/-private/environment/index.js b/-private/environment/index.js +index 217583f4bae53f6f72db8d3debd0f31b3dac2b8e..8caf5463cf2be2248952c2347c738b98d2b7e22b 100644 +--- a/-private/environment/index.js ++++ b/-private/environment/index.js +@@ -46,10 +46,8 @@ function emberLooseEnvironment(options) { + // Pod component/controller/route + candidates.push(templatePath.replace(REGEXES.POD_TEMPLATE, '/component.ts'), templatePath.replace(REGEXES.POD_TEMPLATE, '/controller.ts'), templatePath.replace(REGEXES.POD_TEMPLATE, '/route.ts')); + } +- else if (templatePath.includes('/templates/components/')) { +- // Classic component +- candidates.push(colocatedTsScriptPath.replace('/templates/components/', '/components/')); +- } ++ // we no longer need this as it remnant of classic components and it interferes with our route stricture in showcase up ++ // upstream PR: https://github.com/typed-ember/glint/pull/721 + else if (templatePath.includes('/templates/')) { + // Classic controller/route + candidates.push(colocatedTsScriptPath.replace('/templates/', '/controllers/'), colocatedTsScriptPath.replace('/templates/', '/routes/')); diff --git a/package.json b/package.json index db63b5cbcf8..b1f2c1de1cd 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "packageManager": "yarn@4.0.2", "resolutions": { - "broccoli-asset-rewrite@^2.0.0": "patch:broccoli-asset-rewrite@npm%3A2.0.0#./.yarn/patches/broccoli-asset-rewrite-npm-2.0.0-c4ce42084a.patch" + "broccoli-asset-rewrite@^2.0.0": "patch:broccoli-asset-rewrite@npm%3A2.0.0#./.yarn/patches/broccoli-asset-rewrite-npm-2.0.0-c4ce42084a.patch", + "@glint/environment-ember-loose": "patch:@glint/environment-ember-loose@npm%3A1.4.0#~/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch" } } diff --git a/showcase/.editorconfig b/showcase/.editorconfig new file mode 100644 index 00000000000..c35a002406b --- /dev/null +++ b/showcase/.editorconfig @@ -0,0 +1,19 @@ +# 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/showcase/.ember-cli b/showcase/.ember-cli index 335a1d39ad8..d9ce3fd9df4 100644 --- a/showcase/.ember-cli +++ b/showcase/.ember-cli @@ -8,8 +8,8 @@ "disableAnalytics": true, /** - 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. + 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": false + "isTypeScriptProject": true } diff --git a/showcase/.eslintignore b/showcase/.eslintignore index d474a40bd59..9385391f21b 100644 --- a/showcase/.eslintignore +++ b/showcase/.eslintignore @@ -1,25 +1,13 @@ # unconventional js /blueprints/*/files/ -/vendor/ # compiled output /dist/ -/tmp/ - -# dependencies -/bower_components/ -/node_modules/ # misc /coverage/ !.* .*/ -.eslintcache # ember-try /.node_modules.ember-try/ -/bower.json.ember-try -/npm-shrinkwrap.json.ember-try -/package.json.ember-try -/package-lock.json.ember-try -/yarn.lock.ember-try diff --git a/showcase/.eslintrc.js b/showcase/.eslintrc.js index 864d4ad09f1..e1005bd03ca 100644 --- a/showcase/.eslintrc.js +++ b/showcase/.eslintrc.js @@ -2,19 +2,11 @@ module.exports = { root: true, - parser: '@babel/eslint-parser', + parser: '@typescript-eslint/parser', parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - legacyDecorators: true, - }, - requireConfigFile: false, - babelOptions: { - plugins: [['@babel/plugin-proposal-decorators', { legacy: true }]], - }, + ecmaVersion: 'latest', }, - plugins: ['ember'], + plugins: ['ember', '@typescript-eslint'], extends: [ 'eslint:recommended', 'plugin:ember/recommended', @@ -25,6 +17,15 @@ module.exports = { }, rules: {}, overrides: [ + // ts files + { + files: ['**/*.ts'], + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + ], + rules: {}, + }, // node files { files: [ @@ -33,26 +34,16 @@ module.exports = { './.stylelintrc.js', './.template-lintrc.js', './ember-cli-build.js', - './index.js', './testem.js', './blueprints/*/index.js', './config/**/*.js', './tests/dummy/config/**/*.js', ], - parserOptions: { - sourceType: 'script', - }, env: { browser: false, node: true, }, - plugins: ['node'], - extends: ['plugin:node/recommended'], - rules: { - // this can be removed once the following is fixed - // https://github.com/mysticatea/eslint-plugin-node/issues/77 - 'node/no-unpublished-require': 'off', - }, + extends: ['plugin:n/recommended'], }, { // test files diff --git a/showcase/.gitignore b/showcase/.gitignore index 59552cfc57d..71ad79d02ea 100644 --- a/showcase/.gitignore +++ b/showcase/.gitignore @@ -1,28 +1,21 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - # compiled output /dist/ /declarations/ # dependencies -/bower_components/ /node_modules/ # misc /.env* /.pnp* -/.sass-cache /.eslintcache -/connect.lock /coverage/ -/libpeerconnection.log /npm-debug.log* /testem.log /yarn-error.log # ember-try /.node_modules.ember-try/ -/bower.json.ember-try /npm-shrinkwrap.json.ember-try /package.json.ember-try /package-lock.json.ember-try diff --git a/showcase/.prettierignore b/showcase/.prettierignore index 4178fd571e6..9385391f21b 100644 --- a/showcase/.prettierignore +++ b/showcase/.prettierignore @@ -1,25 +1,13 @@ # unconventional js /blueprints/*/files/ -/vendor/ # compiled output /dist/ -/tmp/ - -# dependencies -/bower_components/ -/node_modules/ # misc /coverage/ !.* -.eslintcache -.lint-todo/ +.*/ # ember-try /.node_modules.ember-try/ -/bower.json.ember-try -/npm-shrinkwrap.json.ember-try -/package.json.ember-try -/package-lock.json.ember-try -/yarn.lock.ember-try diff --git a/showcase/.prettierrc.js b/showcase/.prettierrc.js index 09c56faf0cd..457d0b302f4 100644 --- a/showcase/.prettierrc.js +++ b/showcase/.prettierrc.js @@ -1,19 +1,17 @@ 'use strict'; module.exports = { - singleQuote: true, overrides: [ { - files: '*.hbs', + files: '*.{js,ts}', options: { - singleQuote: false, - printWidth: 120, + singleQuote: true, }, }, { - files: '*.scss', + files: '*.hbs', options: { - singleQuote: false, + printWidth: 120, }, }, ], diff --git a/showcase/.stylelintignore b/showcase/.stylelintignore index b806359ddd2..a0cf71cbd18 100644 --- a/showcase/.stylelintignore +++ b/showcase/.stylelintignore @@ -1,26 +1,8 @@ -# unconventional js +# unconventional files /blueprints/*/files/ -/vendor/ # compiled output /dist/ -/tmp/ -# dependencies -/bower_components/ -/node_modules/ - -# misc -/coverage/ -!.* -.*/ -.eslintcache -.lint-todo/ - -# ember-try +# addons /.node_modules.ember-try/ -/bower.json.ember-try -/npm-shrinkwrap.json.ember-try -/package.json.ember-try -/package-lock.json.ember-try -/yarn.lock.ember-try \ No newline at end of file diff --git a/showcase/app/app.js b/showcase/app/app.ts similarity index 100% rename from showcase/app/app.js rename to showcase/app/app.ts diff --git a/showcase/app/config/environment.d.ts b/showcase/app/config/environment.d.ts index a8f92b9feb9..73d022a3e0d 100644 --- a/showcase/app/config/environment.d.ts +++ b/showcase/app/config/environment.d.ts @@ -1,12 +1,12 @@ /** * Type declarations for - * import config from 'my-app/config/environment' + * import config from 'showcase/config/environment' */ declare const config: { environment: string; modulePrefix: string; podModulePrefix: string; - locationType: 'history' | 'hash' | 'none' | 'auto'; + locationType: 'history' | 'hash' | 'none'; rootURL: string; APP: Record; }; diff --git a/showcase/app/router.js b/showcase/app/router.ts similarity index 100% rename from showcase/app/router.js rename to showcase/app/router.ts diff --git a/showcase/app/templates/components/accordion.hbs b/showcase/app/templates/components/accordion.hbs index 3cc869c8c08..d7ca22a6748 100644 --- a/showcase/app/templates/components/accordion.hbs +++ b/showcase/app/templates/components/accordion.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/alert.hbs b/showcase/app/templates/components/alert.hbs index d4caf7472fa..1bce209ccd7 100644 --- a/showcase/app/templates/components/alert.hbs +++ b/showcase/app/templates/components/alert.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/app-footer.hbs b/showcase/app/templates/components/app-footer.hbs index 4269632e556..711f6ef0c24 100644 --- a/showcase/app/templates/components/app-footer.hbs +++ b/showcase/app/templates/components/app-footer.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/application-state.hbs b/showcase/app/templates/components/application-state.hbs index bb3f5ab5f36..231b09a023e 100644 --- a/showcase/app/templates/components/application-state.hbs +++ b/showcase/app/templates/components/application-state.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/badge-count.hbs b/showcase/app/templates/components/badge-count.hbs index 73bf2c93074..156a8d35b86 100644 --- a/showcase/app/templates/components/badge-count.hbs +++ b/showcase/app/templates/components/badge-count.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/badge.hbs b/showcase/app/templates/components/badge.hbs index b43cb0b6547..8cc9afe3f4c 100644 --- a/showcase/app/templates/components/badge.hbs +++ b/showcase/app/templates/components/badge.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/button-set.hbs b/showcase/app/templates/components/button-set.hbs index 4805726ba30..8fe0164f604 100644 --- a/showcase/app/templates/components/button-set.hbs +++ b/showcase/app/templates/components/button-set.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/button.hbs b/showcase/app/templates/components/button.hbs index fff4c4d4049..6b352f3d50e 100644 --- a/showcase/app/templates/components/button.hbs +++ b/showcase/app/templates/components/button.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/card.hbs b/showcase/app/templates/components/card.hbs index 2a3d18ba3a1..e1542bfeb86 100644 --- a/showcase/app/templates/components/card.hbs +++ b/showcase/app/templates/components/card.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/code-block.hbs b/showcase/app/templates/components/code-block.hbs index 04d6623d1ab..febe47b7e1e 100644 --- a/showcase/app/templates/components/code-block.hbs +++ b/showcase/app/templates/components/code-block.hbs @@ -1,7 +1,6 @@ -{{! @glint-nocheck: not typesafe yet }} {{! -Copyright (c) HashiCorp, Inc. -SPDX-License-Identifier: MPL-2.0 + Copyright (c) HashiCorp, Inc. + SPDX-License-Identifier: MPL-2.0 }} {{page-title "CodeBlock Component"}} diff --git a/showcase/app/templates/components/copy/button.hbs b/showcase/app/templates/components/copy/button.hbs index c9f71156059..3834e643770 100644 --- a/showcase/app/templates/components/copy/button.hbs +++ b/showcase/app/templates/components/copy/button.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/copy/snippet.hbs b/showcase/app/templates/components/copy/snippet.hbs index 1a572a50220..2310ba87ae1 100644 --- a/showcase/app/templates/components/copy/snippet.hbs +++ b/showcase/app/templates/components/copy/snippet.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/dropdown.hbs b/showcase/app/templates/components/dropdown.hbs index 37435370e8d..b8c8f817c76 100644 --- a/showcase/app/templates/components/dropdown.hbs +++ b/showcase/app/templates/components/dropdown.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/flyout.hbs b/showcase/app/templates/components/flyout.hbs index 9ae8373228b..a0852c8a755 100644 --- a/showcase/app/templates/components/flyout.hbs +++ b/showcase/app/templates/components/flyout.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/base-elements.hbs b/showcase/app/templates/components/form/base-elements.hbs index aef87b3d265..8aed3f1b067 100644 --- a/showcase/app/templates/components/form/base-elements.hbs +++ b/showcase/app/templates/components/form/base-elements.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/checkbox.hbs b/showcase/app/templates/components/form/checkbox.hbs index d080f7d01ce..f02ccc74f8b 100644 --- a/showcase/app/templates/components/form/checkbox.hbs +++ b/showcase/app/templates/components/form/checkbox.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/file-input.hbs b/showcase/app/templates/components/form/file-input.hbs index afd82ad2e67..13c525d70bb 100644 --- a/showcase/app/templates/components/form/file-input.hbs +++ b/showcase/app/templates/components/form/file-input.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/masked-input.hbs b/showcase/app/templates/components/form/masked-input.hbs index 03e5898bc82..a5ee2c0c646 100644 --- a/showcase/app/templates/components/form/masked-input.hbs +++ b/showcase/app/templates/components/form/masked-input.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/radio-card.hbs b/showcase/app/templates/components/form/radio-card.hbs index 0d3fa079f46..98b8e1b1020 100644 --- a/showcase/app/templates/components/form/radio-card.hbs +++ b/showcase/app/templates/components/form/radio-card.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/radio.hbs b/showcase/app/templates/components/form/radio.hbs index f752ca27e44..4286d53fd93 100644 --- a/showcase/app/templates/components/form/radio.hbs +++ b/showcase/app/templates/components/form/radio.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/select.hbs b/showcase/app/templates/components/form/select.hbs index 8766d55e6b4..cf70f423769 100644 --- a/showcase/app/templates/components/form/select.hbs +++ b/showcase/app/templates/components/form/select.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/text-input.hbs b/showcase/app/templates/components/form/text-input.hbs index c0156c853fb..366676fc0e6 100644 --- a/showcase/app/templates/components/form/text-input.hbs +++ b/showcase/app/templates/components/form/text-input.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/textarea.hbs b/showcase/app/templates/components/form/textarea.hbs index 4a0f8428c28..5ae961144b0 100644 --- a/showcase/app/templates/components/form/textarea.hbs +++ b/showcase/app/templates/components/form/textarea.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/toggle.hbs b/showcase/app/templates/components/form/toggle.hbs index fd8e89ed091..1b5143e7330 100644 --- a/showcase/app/templates/components/form/toggle.hbs +++ b/showcase/app/templates/components/form/toggle.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/icon-tile.hbs b/showcase/app/templates/components/icon-tile.hbs index afef1df28b5..2b2363648d6 100644 --- a/showcase/app/templates/components/icon-tile.hbs +++ b/showcase/app/templates/components/icon-tile.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/link/inline.hbs b/showcase/app/templates/components/link/inline.hbs index 6d794ba3951..bc68d2f9e34 100644 --- a/showcase/app/templates/components/link/inline.hbs +++ b/showcase/app/templates/components/link/inline.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/link/standalone.hbs b/showcase/app/templates/components/link/standalone.hbs index 45c767493ec..f4bc8234bdb 100644 --- a/showcase/app/templates/components/link/standalone.hbs +++ b/showcase/app/templates/components/link/standalone.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/modal.hbs b/showcase/app/templates/components/modal.hbs index b8b1258fbdb..aec8dfcfa72 100644 --- a/showcase/app/templates/components/modal.hbs +++ b/showcase/app/templates/components/modal.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/page-header.hbs b/showcase/app/templates/components/page-header.hbs index 75b203fac43..dc972832b0d 100644 --- a/showcase/app/templates/components/page-header.hbs +++ b/showcase/app/templates/components/page-header.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/pagination.hbs b/showcase/app/templates/components/pagination.hbs index bfd1f9cdbb0..9de2b190cff 100644 --- a/showcase/app/templates/components/pagination.hbs +++ b/showcase/app/templates/components/pagination.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/reveal.hbs b/showcase/app/templates/components/reveal.hbs index d520d16420a..fb6a2fec500 100644 --- a/showcase/app/templates/components/reveal.hbs +++ b/showcase/app/templates/components/reveal.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/rich-tooltip.hbs b/showcase/app/templates/components/rich-tooltip.hbs index 1def75c90f2..536edd24f04 100644 --- a/showcase/app/templates/components/rich-tooltip.hbs +++ b/showcase/app/templates/components/rich-tooltip.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/segmented-group.hbs b/showcase/app/templates/components/segmented-group.hbs index 4f262fc19ac..dc61e9776da 100644 --- a/showcase/app/templates/components/segmented-group.hbs +++ b/showcase/app/templates/components/segmented-group.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/separator.hbs b/showcase/app/templates/components/separator.hbs index 4547e56052b..ff6c7af7427 100644 --- a/showcase/app/templates/components/separator.hbs +++ b/showcase/app/templates/components/separator.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/side-nav.hbs b/showcase/app/templates/components/side-nav.hbs index 3c9d4a69d94..e57d06012e2 100644 --- a/showcase/app/templates/components/side-nav.hbs +++ b/showcase/app/templates/components/side-nav.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/stepper.hbs b/showcase/app/templates/components/stepper.hbs index 7b4de495c5a..4231989312c 100644 --- a/showcase/app/templates/components/stepper.hbs +++ b/showcase/app/templates/components/stepper.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/table.hbs b/showcase/app/templates/components/table.hbs index 29e652bdd8b..c26c45e7ef6 100644 --- a/showcase/app/templates/components/table.hbs +++ b/showcase/app/templates/components/table.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/tabs.hbs b/showcase/app/templates/components/tabs.hbs index 80f1cc38b14..1a99ac8d747 100644 --- a/showcase/app/templates/components/tabs.hbs +++ b/showcase/app/templates/components/tabs.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/tag.hbs b/showcase/app/templates/components/tag.hbs index 2fdd00aabae..35fe7ba82ab 100644 --- a/showcase/app/templates/components/tag.hbs +++ b/showcase/app/templates/components/tag.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/text.hbs b/showcase/app/templates/components/text.hbs index 94936281fce..a3b66f51ace 100644 --- a/showcase/app/templates/components/text.hbs +++ b/showcase/app/templates/components/text.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/toast.hbs b/showcase/app/templates/components/toast.hbs index 9d7c9df1e60..5ee5c33d5ef 100644 --- a/showcase/app/templates/components/toast.hbs +++ b/showcase/app/templates/components/toast.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/tooltip.hbs b/showcase/app/templates/components/tooltip.hbs index 29618457d1b..9b7edaf94c7 100644 --- a/showcase/app/templates/components/tooltip.hbs +++ b/showcase/app/templates/components/tooltip.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/index.hbs b/showcase/app/templates/index.hbs index e9404421011..95ab7d6553f 100644 --- a/showcase/app/templates/index.hbs +++ b/showcase/app/templates/index.hbs @@ -1,8 +1,8 @@ -{{! @glint-nocheck: not typesafe yet }} {{! -Copyright (c) HashiCorp, Inc. -SPDX-License-Identifier: MPL-2.0 + Copyright (c) HashiCorp, Inc. + SPDX-License-Identifier: MPL-2.0 }} +
Foundations diff --git a/showcase/app/templates/utilities/interactive.hbs b/showcase/app/templates/utilities/interactive.hbs index f1b15d80007..1394183213f 100644 --- a/showcase/app/templates/utilities/interactive.hbs +++ b/showcase/app/templates/utilities/interactive.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/utilities/popover-primitive.hbs b/showcase/app/templates/utilities/popover-primitive.hbs index 26850af0d04..66c6cc66c9d 100644 --- a/showcase/app/templates/utilities/popover-primitive.hbs +++ b/showcase/app/templates/utilities/popover-primitive.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/blueprints/hds-component-test/index.js b/showcase/blueprints/hds-component-test/index.js index af9f722f302..e790d1ce0c2 100644 --- a/showcase/blueprints/hds-component-test/index.js +++ b/showcase/blueprints/hds-component-test/index.js @@ -4,7 +4,7 @@ */ /* eslint-disable ember/no-string-prototype-extensions */ -/* eslint-disable node/no-extraneous-require */ +/* eslint-disable n/no-extraneous-require */ 'use strict'; const stringUtil = require('ember-cli-string-utils'); diff --git a/showcase/blueprints/hds-component/index.js b/showcase/blueprints/hds-component/index.js index ff520c1af54..0743c9b2bad 100644 --- a/showcase/blueprints/hds-component/index.js +++ b/showcase/blueprints/hds-component/index.js @@ -4,7 +4,7 @@ */ /* eslint-disable ember/no-string-prototype-extensions */ -/* eslint-disable node/no-extraneous-require */ +/* eslint-disable n/no-extraneous-require */ 'use strict'; const stringUtil = require('ember-cli-string-utils'); diff --git a/showcase/config/ember-cli-update.json b/showcase/config/ember-cli-update.json index bc6cc28efe9..094d3f2e4ad 100644 --- a/showcase/config/ember-cli-update.json +++ b/showcase/config/ember-cli-update.json @@ -11,7 +11,10 @@ "codemodsSource": "ember-app-codemods-manifest@1", "isBaseBlueprint": true, "options": [ - "--ci-provider=github" + "--no-welcome", + "--yarn", + "--ci-provider=github", + "--typescript" ] } ] diff --git a/showcase/ember-cli-build.js b/showcase/ember-cli-build.js index c73cb46974f..ea15158c0d7 100644 --- a/showcase/ember-cli-build.js +++ b/showcase/ember-cli-build.js @@ -9,6 +9,10 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app'); module.exports = function (defaults) { const app = new EmberApp(defaults, { + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, + // See https://github.com/adopted-ember-addons/ember-cli-sass sassOptions: { precision: 4, diff --git a/showcase/package.json b/showcase/package.json index aa272fa717f..2be0540ce81 100644 --- a/showcase/package.json +++ b/showcase/package.json @@ -16,18 +16,17 @@ "scripts": { "build": "yarn build:packages && ember build --environment=production", "build:packages": "yarn workspace @hashicorp/ember-flight-icons build && yarn workspace @hashicorp/design-system-components build", - "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", - "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix", + "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"", + "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"", "lint:css": "stylelint \"app/styles/**/*.scss\"", - "lint:css:fix": "npm-run-all \"lint:css --fix\"", + "lint:css:fix": "concurrently \"npm:lint:css -- --fix\"", "lint:hbs": "ember-template-lint .", "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", - "lint:glint": "glint", - "lint:types": "tsc --noEmit", + "lint:types": "glint", "start": "yarn build:packages && ember serve", - "test": "npm-run-all lint test:*", + "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", "test:ember": "yarn build:packages && ember test", "test:ember-compatibility": "ember try:each", "test:ember:percy": "percy exec ember test", @@ -36,8 +35,6 @@ }, "devDependencies": { "@babel/core": "^7.24.5", - "@babel/eslint-parser": "^7.22.15", - "@babel/plugin-proposal-decorators": "^7.23.2", "@ember/optional-features": "^2.0.0", "@ember/string": "^3.1.1", "@ember/test-helpers": "^3.2.0", @@ -56,7 +53,10 @@ "@tsconfig/ember": "^3.0.6", "@types/qunit": "^2.19.10", "@types/rsvp": "^4.0.9", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "broccoli-asset-rev": "^3.0.0", + "concurrently": "^8.2.1", "ember-a11y-testing": "^6.1.1", "ember-auto-import": "^2.6.3", "ember-basic-dropdown": "^8.1.0", @@ -75,7 +75,8 @@ "ember-concurrency": "^4.0.2", "ember-deep-tracked": "^2.0.0", "ember-load-initializers": "^2.1.2", - "ember-page-title": "^8.0.0", + "ember-modifier": "^4.1.0", + "ember-page-title": "^8.2.3", "ember-power-select": "^8.2.0", "ember-qunit": "^8.0.1", "ember-resolver": "^11.0.1", @@ -90,11 +91,10 @@ "eslint": "^8.52.0", "eslint-config-prettier": "^8.10.0", "eslint-plugin-ember": "^11.11.1", - "eslint-plugin-node": "^11.1.0", + "eslint-plugin-n": "^16.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-qunit": "^8.0.1", "loader.js": "^4.7.0", - "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "qunit": "^2.20.0", "qunit-dom": "^3.0.0", @@ -103,6 +103,7 @@ "stylelint": "^16.3.1", "stylelint-config-rational-order": "^0.1.2", "stylelint-config-standard-scss": "^13.1.0", + "tracked-built-ins": "^3.2.0", "typescript": "^5.4.2", "webpack": "^5.89.0" }, diff --git a/showcase/tests/helpers/index.js b/showcase/tests/helpers/index.ts similarity index 81% rename from showcase/tests/helpers/index.js rename to showcase/tests/helpers/index.ts index d1c00b3cf13..d1dfbee54f0 100644 --- a/showcase/tests/helpers/index.js +++ b/showcase/tests/helpers/index.ts @@ -9,11 +9,13 @@ import { setupTest as upstreamSetupTest, } from 'ember-qunit'; +import type { SetupTestOptions } from 'ember-qunit'; + // This file exists to provide wrappers around ember-qunit's // test setup functions. This way, you can easily extend the setup that is // needed per test type. -function setupApplicationTest(hooks, options) { +function setupApplicationTest(hooks: NestedHooks, options?: SetupTestOptions) { upstreamSetupApplicationTest(hooks, options); // Additional setup for application tests can be done here. @@ -32,13 +34,13 @@ function setupApplicationTest(hooks, options) { // setupMirage(hooks); // ember-cli-mirage } -function setupRenderingTest(hooks, options) { +function setupRenderingTest(hooks: NestedHooks, options?: SetupTestOptions) { upstreamSetupRenderingTest(hooks, options); // Additional setup for rendering tests can be done here. } -function setupTest(hooks, options) { +function setupTest(hooks: NestedHooks, options?: SetupTestOptions) { upstreamSetupTest(hooks, options); // Additional setup for unit tests can be done here. diff --git a/showcase/tests/test-helper.js b/showcase/tests/test-helper.ts similarity index 97% rename from showcase/tests/test-helper.js rename to showcase/tests/test-helper.ts index 3a5ac32a113..238075b67f1 100644 --- a/showcase/tests/test-helper.js +++ b/showcase/tests/test-helper.ts @@ -43,6 +43,7 @@ setRunOptions({ 'best-practice', ], }, + // @ts-expect-error: This is a valid option include: [['#ember-testing-container']], exclude: [['.flight-sprite-container'], ['.shw-page-main']], }); diff --git a/showcase/tsconfig.json b/showcase/tsconfig.json index 61b46631f35..27e50b83f0b 100644 --- a/showcase/tsconfig.json +++ b/showcase/tsconfig.json @@ -1,16 +1,12 @@ { "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": ".", "allowJs": true, "skipLibCheck": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "noPropertyAccessFromIndexSignature": false, "paths": { "showcase/tests/*": [ "tests/*" diff --git a/showcase/types/dummy/index.d.ts b/showcase/types/dummy/index.d.ts deleted file mode 100644 index ea06c205ff8..00000000000 --- a/showcase/types/dummy/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import 'ember-source/types'; -import '@glint/environment-ember-loose'; diff --git a/showcase/types/global.d.ts b/showcase/types/global.d.ts index 3b83d0dbfa9..7c03253288a 100644 --- a/showcase/types/global.d.ts +++ b/showcase/types/global.d.ts @@ -1,6 +1,15 @@ +/** + * Copyright (c) HashiCorp, Inc. + * SPDX-License-Identifier: MPL-2.0 + */ + +/* eslint-disable ember/require-tagless-components */ +/* eslint-disable @typescript-eslint/ban-types */ + import '@glint/environment-ember-loose'; -import 'ember-source/types'; -import Component from '@ember/component'; +import Component from '@glimmer/component'; + +import type PageTitle from 'ember-page-title/template-registry'; export interface ShwTxtSignature { Args: { @@ -11,8 +20,8 @@ export interface ShwTxtSignature { }; Element: HTMLElement; Blocks: { - default: [] - } + default: []; + }; } export class ShwTxt extends Component {} @@ -20,8 +29,8 @@ export interface ShwLabelSignature { Args: {}; Element: HTMLParagraphElement; Blocks: { - default: [] - } + default: []; + }; } export class ShwLabel extends Component {} @@ -32,10 +41,12 @@ export interface ShwFlexItemSignature { }; Element: HTMLDivElement; Blocks: { - default: [{ - Label: typeof ShwLabel; - }] - } + default: [ + { + Label: typeof ShwLabel; + } + ]; + }; } export class ShwFlexItem extends Component {} @@ -47,11 +58,13 @@ export interface ShwFlexSignature { }; Element: HTMLDivElement; Blocks: { - default: [{ - Label: typeof ShwLabel; - Item: typeof ShwFlexItem; - }] - } + default: [ + { + Label: typeof ShwLabel; + Item: typeof ShwFlexItem; + } + ]; + }; } export class ShwFlex extends Component {} @@ -63,10 +76,12 @@ export interface ShwGridItemSignature { }; Element: HTMLDivElement; Blocks: { - default: [{ - Label: typeof ShwLabel; - }] - } + default: [ + { + Label: typeof ShwLabel; + } + ]; + }; } export class ShwGridItem extends Component {} @@ -77,11 +92,13 @@ export interface ShwGridSignature { }; Element: HTMLDivElement; Blocks: { - default: [{ - Label: typeof ShwLabel; - Item: typeof ShwGridItem; - }] - } + default: [ + { + Label: typeof ShwLabel; + Item: typeof ShwGridItem; + } + ]; + }; } export class ShwGrid extends Component {} @@ -96,19 +113,11 @@ export interface ShwOutlinerSignature { Args: {}; Element: HTMLDivElement; Blocks: { - default: [] - } + default: []; + }; } export class ShwOutliner extends Component {} -// Types for compiled templates -declare module 'showcase/templates/*' { - import { TemplateFactory } from 'ember-cli-htmlbars'; - - const tmpl: TemplateFactory; - export default tmpl; -} - import type HdsComponentsRegistry from '@hashicorp/design-system-components/template-registry'; import type EmberStyleModifier from 'ember-style-modifier'; @@ -117,7 +126,10 @@ export default interface EmberStyleModifierRegistry { } declare module '@glint/environment-ember-loose/registry' { - export default interface Registry extends EmberStyleModifierRegistry, HdsComponentsRegistry { + export default interface Registry + extends EmberStyleModifierRegistry, + HdsComponentsRegistry, + PageTitle { 'Shw::Text': typeof ShwTxt; 'Shw::Text::H1': typeof ShwTxt; 'Shw::Text::H2': typeof ShwTxt; diff --git a/showcase/types/showcase/index.d.ts b/showcase/types/showcase/index.d.ts index d2f5fc1b01a..a2e59775409 100644 --- a/showcase/types/showcase/index.d.ts +++ b/showcase/types/showcase/index.d.ts @@ -1,11 +1,3 @@ -import Ember from 'ember'; - -declare global { - // Prevents ESLint from "fixing" this via its auto-fix to turn it into a type - // alias (e.g. after running any Ember CLI generator) - // eslint-disable-next-line @typescript-eslint/no-empty-interface - interface Array extends Ember.ArrayPrototypeExtensions {} - // interface Function extends Ember.FunctionPrototypeExtensions {} -} +import 'ember-source/types'; export {}; diff --git a/website/package.json b/website/package.json index 86938b46f98..21c56a17cf1 100644 --- a/website/package.json +++ b/website/package.json @@ -82,7 +82,7 @@ "ember-math-helpers": "^3.0.0", "ember-meta": "^2.0.0", "ember-modifier": "^4.1.0", - "ember-page-title": "^8.0.0", + "ember-page-title": "^8.2.3", "ember-power-select": "^8.2.0", "ember-prism": "^0.13.0", "ember-qunit": "^8.0.1", diff --git a/yarn.lock b/yarn.lock index 69b5f387543..ef9fd1e18e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -707,7 +707,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:^7.13.5, @babel/plugin-proposal-decorators@npm:^7.16.7, @babel/plugin-proposal-decorators@npm:^7.20.13, @babel/plugin-proposal-decorators@npm:^7.23.2, @babel/plugin-proposal-decorators@npm:^7.23.7": +"@babel/plugin-proposal-decorators@npm:^7.13.5, @babel/plugin-proposal-decorators@npm:^7.16.7, @babel/plugin-proposal-decorators@npm:^7.20.13, @babel/plugin-proposal-decorators@npm:^7.23.7": version: 7.23.7 resolution: "@babel/plugin-proposal-decorators@npm:7.23.7" dependencies: @@ -3549,7 +3549,7 @@ __metadata: languageName: node linkType: hard -"@glint/environment-ember-loose@npm:^1.4.0": +"@glint/environment-ember-loose@npm:1.4.0": version: 1.4.0 resolution: "@glint/environment-ember-loose@npm:1.4.0" peerDependencies: @@ -3581,6 +3581,38 @@ __metadata: languageName: node linkType: hard +"@glint/environment-ember-loose@patch:@glint/environment-ember-loose@npm%3A1.4.0#~/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch": + version: 1.4.0 + resolution: "@glint/environment-ember-loose@patch:@glint/environment-ember-loose@npm%3A1.4.0#~/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch::version=1.4.0&hash=023960" + peerDependencies: + "@glimmer/component": ^1.1.2 + "@glint/template": ^1.4.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 + checksum: 025b200db337ee0353f70e7561a792250ccd530ace9916336faaaafa10670cb05828e613d94b6c5015276bf135148a730bf9d2e416bcd5380804f0ae22d55325 + languageName: node + linkType: hard + "@glint/template@npm:^1.4.0": version: 1.4.0 resolution: "@glint/template@npm:1.4.0" @@ -5895,7 +5927,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.14.0": +"@typescript-eslint/eslint-plugin@npm:^6.14.0, @typescript-eslint/eslint-plugin@npm:^6.21.0": version: 6.21.0 resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" dependencies: @@ -5953,7 +5985,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.14.0": +"@typescript-eslint/parser@npm:^6.14.0, @typescript-eslint/parser@npm:^6.21.0": version: 6.21.0 resolution: "@typescript-eslint/parser@npm:6.21.0" dependencies: @@ -9184,6 +9216,13 @@ __metadata: languageName: node linkType: hard +"builtin-modules@npm:^3.3.0": + version: 3.3.0 + resolution: "builtin-modules@npm:3.3.0" + checksum: 62e063ab40c0c1efccbfa9ffa31873e4f9d57408cb396a2649981a0ecbce56aabc93c28feaccbc5658c95aab2703ad1d11980e62ec2e5e72637404e1eb60f39e + languageName: node + linkType: hard + "builtins@npm:^5.0.0": version: 5.0.1 resolution: "builtins@npm:5.0.1" @@ -9193,6 +9232,15 @@ __metadata: languageName: node linkType: hard +"builtins@npm:^5.0.1": + version: 5.1.0 + resolution: "builtins@npm:5.1.0" + dependencies: + semver: "npm:^7.0.0" + checksum: 60aa9969f69656bf6eab82cd74b23ab805f112ae46a54b912bccc1533875760f2d2ce95e0a7d13144e35ada9f0386f17ed4961908bc9434b5a5e21375b1902b2 + languageName: node + linkType: hard + "bundle-name@npm:^3.0.0": version: 3.0.0 resolution: "bundle-name@npm:3.0.0" @@ -10235,7 +10283,7 @@ __metadata: languageName: node linkType: hard -"concurrently@npm:^8.2.2": +"concurrently@npm:^8.2.1, concurrently@npm:^8.2.2": version: 8.2.2 resolution: "concurrently@npm:8.2.2" dependencies: @@ -12718,14 +12766,15 @@ __metadata: languageName: node linkType: hard -"ember-page-title@npm:^8.0.0": - version: 8.1.0 - resolution: "ember-page-title@npm:8.1.0" +"ember-page-title@npm:^8.2.3": + version: 8.2.3 + resolution: "ember-page-title@npm:8.2.3" dependencies: - "@embroider/addon-shim": "npm:^1.8.6" + "@embroider/addon-shim": "npm:^1.8.7" + "@simple-dom/document": "npm:^1.4.0" peerDependencies: ember-source: ">= 3.28.0" - checksum: d86ceaf06ae7e3787d39a6efcf326459fe8c565daf282ae630598bd8295acf937563180d72450472f3e5ced8e8d739f8cd9bd41651a1bb155c22bc9ee7a16c91 + checksum: 2cceab289fce8ff4d6424ece57d2635edf98ecda6575311e325ef4669b83a76e4e39affe4d3b1e9512f39000aa3133383656b8a740b1532ec57e23e8102849b4 languageName: node linkType: hard @@ -13701,6 +13750,27 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-n@npm:^16.1.0": + version: 16.6.2 + resolution: "eslint-plugin-n@npm:16.6.2" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + builtins: "npm:^5.0.1" + eslint-plugin-es-x: "npm:^7.5.0" + get-tsconfig: "npm:^4.7.0" + globals: "npm:^13.24.0" + ignore: "npm:^5.2.4" + is-builtin-module: "npm:^3.2.1" + is-core-module: "npm:^2.12.1" + minimatch: "npm:^3.1.2" + resolve: "npm:^1.22.2" + semver: "npm:^7.5.3" + peerDependencies: + eslint: ">=7.0.0" + checksum: e0f600d03d3a3df57e9a811648b1b534a6d67c90ea9406340ddf3763c2b87cf5ef910b390f787ca5cb27c8d8ff36aad42d70209b54e2a1cb4cc2507ca417229a + languageName: node + linkType: hard + "eslint-plugin-n@npm:^17.7.0": version: 17.7.0 resolution: "eslint-plugin-n@npm:17.7.0" @@ -15641,7 +15711,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0, globals@npm:^13.6.0, globals@npm:^13.9.0": +"globals@npm:^13.19.0, globals@npm:^13.24.0, globals@npm:^13.6.0, globals@npm:^13.9.0": version: 13.24.0 resolution: "globals@npm:13.24.0" dependencies: @@ -16964,6 +17034,15 @@ __metadata: languageName: node linkType: hard +"is-builtin-module@npm:^3.2.1": + version: 3.2.1 + resolution: "is-builtin-module@npm:3.2.1" + dependencies: + builtin-modules: "npm:^3.3.0" + checksum: e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88 + languageName: node + linkType: hard + "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -16971,7 +17050,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": +"is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -24089,8 +24168,6 @@ __metadata: resolution: "showcase@workspace:showcase" dependencies: "@babel/core": "npm:^7.24.5" - "@babel/eslint-parser": "npm:^7.22.15" - "@babel/plugin-proposal-decorators": "npm:^7.23.2" "@ember/optional-features": "npm:^2.0.0" "@ember/string": "npm:^3.1.1" "@ember/test-helpers": "npm:^3.2.0" @@ -24109,7 +24186,10 @@ __metadata: "@tsconfig/ember": "npm:^3.0.6" "@types/qunit": "npm:^2.19.10" "@types/rsvp": "npm:^4.0.9" + "@typescript-eslint/eslint-plugin": "npm:^6.21.0" + "@typescript-eslint/parser": "npm:^6.21.0" broccoli-asset-rev: "npm:^3.0.0" + concurrently: "npm:^8.2.1" ember-a11y-testing: "npm:^6.1.1" ember-auto-import: "npm:^2.6.3" ember-basic-dropdown: "npm:^8.1.0" @@ -24128,7 +24208,8 @@ __metadata: ember-concurrency: "npm:^4.0.2" ember-deep-tracked: "npm:^2.0.0" ember-load-initializers: "npm:^2.1.2" - ember-page-title: "npm:^8.0.0" + ember-modifier: "npm:^4.1.0" + ember-page-title: "npm:^8.2.3" ember-power-select: "npm:^8.2.0" ember-qunit: "npm:^8.0.1" ember-resolver: "npm:^11.0.1" @@ -24143,11 +24224,10 @@ __metadata: eslint: "npm:^8.52.0" eslint-config-prettier: "npm:^8.10.0" eslint-plugin-ember: "npm:^11.11.1" - eslint-plugin-node: "npm:^11.1.0" + eslint-plugin-n: "npm:^16.1.0" eslint-plugin-prettier: "npm:^4.2.1" eslint-plugin-qunit: "npm:^8.0.1" loader.js: "npm:^4.7.0" - npm-run-all: "npm:^4.1.5" prettier: "npm:^2.8.8" qunit: "npm:^2.20.0" qunit-dom: "npm:^3.0.0" @@ -24156,6 +24236,7 @@ __metadata: stylelint: "npm:^16.3.1" stylelint-config-rational-order: "npm:^0.1.2" stylelint-config-standard-scss: "npm:^13.1.0" + tracked-built-ins: "npm:^3.2.0" typescript: "npm:^5.4.2" webpack: "npm:^5.89.0" languageName: unknown @@ -25951,6 +26032,16 @@ __metadata: languageName: node linkType: hard +"tracked-built-ins@npm:^3.2.0": + version: 3.3.0 + resolution: "tracked-built-ins@npm:3.3.0" + dependencies: + "@embroider/addon-shim": "npm:^1.8.3" + ember-tracked-storage-polyfill: "npm:^1.0.0" + checksum: e3c9b838e95b04c4bfab705ba95b08763e783a89cd4652f6c06a6843081367aa7562a293e74c3ca1281c1b46851b412d62936d8efae33585bc20eea9387bf0bb + languageName: node + linkType: hard + "tracked-maps-and-sets@npm:^3.0.1": version: 3.0.2 resolution: "tracked-maps-and-sets@npm:3.0.2" @@ -27352,7 +27443,7 @@ __metadata: ember-math-helpers: "npm:^3.0.0" ember-meta: "npm:^2.0.0" ember-modifier: "npm:^4.1.0" - ember-page-title: "npm:^8.0.0" + ember-page-title: "npm:^8.2.3" ember-power-select: "npm:^8.2.0" ember-prism: "npm:^0.13.0" ember-qunit: "npm:^8.0.1"