diff --git a/.changeset/lucky-stingrays-call.md b/.changeset/lucky-stingrays-call.md new file mode 100644 index 0000000000..390bf72638 --- /dev/null +++ b/.changeset/lucky-stingrays-call.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": patch +--- + +Template Registry - Removed redundant entries diff --git a/.changeset/rare-suns-love.md b/.changeset/rare-suns-love.md new file mode 100644 index 0000000000..bcfe2ef1c5 --- /dev/null +++ b/.changeset/rare-suns-love.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": patch +--- + +Fix missing TypeScript `declaration` diff --git a/.changeset/tiny-apes-sin.md b/.changeset/tiny-apes-sin.md new file mode 100644 index 0000000000..1c9f1689db --- /dev/null +++ b/.changeset/tiny-apes-sin.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": patch +--- + +`Hds::BadgeCount` - Fixed typo in template registry declaration diff --git a/.github/workflows/ci-components.yml b/.github/workflows/ci-components.yml index c3c48213b2..f736ef9b86 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 0000000000..e693550d42 --- /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 db63b5cbcf..b1f2c1de1c 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/packages/components/.eslintrc.cjs b/packages/components/.eslintrc.cjs new file mode 100644 index 0000000000..e08fb41150 --- /dev/null +++ b/packages/components/.eslintrc.cjs @@ -0,0 +1,58 @@ +'use strict'; + +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 'latest', + }, + plugins: ['ember', 'import'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:prettier/recommended', + ], + env: { + browser: true, + }, + rules: {}, + overrides: [ + // ts files + { + files: ['**/*.ts', '**/*.gts'], + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + ], + rules: { + // Add any custom rules here + }, + }, + // require relative imports use full extensions + { + files: ['src/**/*.{js,ts,gjs,gts}'], + rules: { + 'import/extensions': ['error', 'always', { ignorePackages: true }], + }, + }, + // node files + { + files: [ + './.eslintrc.cjs', + './.prettierrc.cjs', + './.template-lintrc.cjs', + './addon-main.cjs', + '.stylelintrc.js', + ], + parserOptions: { + sourceType: 'script', + }, + env: { + browser: false, + node: true, + }, + plugins: ['n'], + extends: ['plugin:n/recommended'], + }, + ], +}; diff --git a/packages/components/.eslintrc.js b/packages/components/.eslintrc.js deleted file mode 100644 index 6b9b40843c..0000000000 --- a/packages/components/.eslintrc.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 2018, - ecmaFeatures: { - legacyDecorators: true, - }, - requireConfigFile: false, - babelOptions: { - plugins: [['@babel/plugin-proposal-decorators', { legacy: true }]], - }, - }, - plugins: ['ember'], - extends: [ - 'eslint:recommended', - 'plugin:ember/recommended', - 'plugin:prettier/recommended', - ], - env: { - browser: true, - }, - rules: {}, - overrides: [ - // node files - { - files: ['**/*.ts', '**/*.gts'], - extends: [ - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - ], - }, - { - files: [ - './.eslintrc.js', - './.prettierrc.js', - './.stylelintrc.js', - './.template-lintrc.js', - './ember-cli-build.js', - './addon-main.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'], - }, - { - // test files - files: ['tests/**/*-test.{js,ts}'], - extends: ['plugin:qunit/recommended'], - rules: { - 'qunit/require-expect': 'off', - }, - }, - ], -}; diff --git a/packages/components/.prettierrc.js b/packages/components/.prettierrc.cjs similarity index 100% rename from packages/components/.prettierrc.js rename to packages/components/.prettierrc.cjs diff --git a/packages/components/.template-lintrc.js b/packages/components/.template-lintrc.cjs similarity index 100% rename from packages/components/.template-lintrc.js rename to packages/components/.template-lintrc.cjs diff --git a/packages/components/addon-main.js b/packages/components/addon-main.cjs similarity index 100% rename from packages/components/addon-main.js rename to packages/components/addon-main.cjs diff --git a/packages/components/config/environment.d.ts b/packages/components/config/environment.d.ts deleted file mode 100644 index d7110d08e1..0000000000 --- a/packages/components/config/environment.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -/** - * Type declarations for - * import config from 'my-app/config/environment' - */ -declare const config: { - environment: string; - modulePrefix: string; - podModulePrefix: string; - locationType: 'history' | 'hash' | 'none' | 'auto'; - rootURL: string; - APP: Record; -}; - -export default config; diff --git a/packages/components/config/environment.js b/packages/components/config/environment.js deleted file mode 100644 index 4532464b6f..0000000000 --- a/packages/components/config/environment.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -'use strict'; - -module.exports = function (/* environment, appConfig */) { - return {}; -}; diff --git a/packages/components/package.json b/packages/components/package.json index d7c8d1223d..c4936170e3 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -20,7 +20,7 @@ "build": "concurrently 'npm:build:*'", "build:js": "rollup --config", "build:types": "glint --declaration", - "prepublishOnly": "yarn workspace @hashicorp/ember-flight-icons build && rollup --config && test -f 'dist/styles/@hashicorp/design-system-components.css' || (echo 'The pre-compiled CSS file was not found' && exit 1)", + "prepublishOnly": "yarn workspace @hashicorp/ember-flight-icons build && yarn build && test -f 'dist/styles/@hashicorp/design-system-components.css' || (echo 'The pre-compiled CSS file was not found' && exit 1)", "start": "rollup --config --watch --environment development", "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", @@ -88,7 +88,8 @@ "eslint": "^8.52.0", "eslint-config-prettier": "^8.10.0", "eslint-plugin-ember": "^11.11.1", - "eslint-plugin-node": "^11.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-n": "^17.7.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-qunit": "^8.0.1", "npm-run-all": "^4.1.5", @@ -109,7 +110,7 @@ "edition": "octane" }, "ember-addon": { - "main": "addon-main.js", + "main": "addon-main.cjs", "type": "addon", "version": 2, "app-js": { @@ -292,7 +293,7 @@ "types": "./declarations/*.d.ts", "default": "./dist/*" }, - "./addon-main.js": "./addon-main.js" + "./addon-main.js": "./addon-main.cjs" }, "typesVersions": { "*": { @@ -302,7 +303,7 @@ } }, "files": [ - "addon-main.js", + "addon-main.cjs", "declarations", "dist" ], diff --git a/packages/components/src/components/hds/dropdown/list-item/checkbox.js b/packages/components/src/components/hds/dropdown/list-item/checkbox.js index 93926aa263..1653255d41 100644 --- a/packages/components/src/components/hds/dropdown/list-item/checkbox.js +++ b/packages/components/src/components/hds/dropdown/list-item/checkbox.js @@ -4,7 +4,7 @@ */ import Component from '@glimmer/component'; -import { getElementId } from '../../../../utils/hds-get-element-id'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; export default class HdsDropdownListItemCheckboxComponent extends Component { /** diff --git a/packages/components/src/components/hds/dropdown/list-item/radio.js b/packages/components/src/components/hds/dropdown/list-item/radio.js index 5e58c6d2d1..6ef9cf945a 100644 --- a/packages/components/src/components/hds/dropdown/list-item/radio.js +++ b/packages/components/src/components/hds/dropdown/list-item/radio.js @@ -4,7 +4,7 @@ */ import Component from '@glimmer/component'; -import { getElementId } from '../../../../utils/hds-get-element-id'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; export default class HdsDropdownListItemRadioComponent extends Component { /** diff --git a/packages/components/src/components/hds/flyout/index.js b/packages/components/src/components/hds/flyout/index.js index 794ee984ad..045bfe78ac 100644 --- a/packages/components/src/components/hds/flyout/index.js +++ b/packages/components/src/components/hds/flyout/index.js @@ -7,7 +7,7 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { assert } from '@ember/debug'; -import { getElementId } from '../../../utils/hds-get-element-id'; +import { getElementId } from '../../../utils/hds-get-element-id.js'; import { buildWaiter } from '@ember/test-waiters'; let waiter = buildWaiter('@hashicorp/design-system-components:flyout'); diff --git a/packages/components/src/components/hds/form/field/index.js b/packages/components/src/components/hds/form/field/index.js index 37e2db0967..c004fa7b2b 100644 --- a/packages/components/src/components/hds/form/field/index.js +++ b/packages/components/src/components/hds/form/field/index.js @@ -8,8 +8,8 @@ import { tracked } from '@glimmer/tracking'; import { assert } from '@ember/debug'; import { action } from '@ember/object'; import { schedule } from '@ember/runloop'; -import { getElementId } from '../../../../utils/hds-get-element-id'; -import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; +import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by.js'; export const LAYOUT_TYPES = ['vertical', 'flag']; diff --git a/packages/components/src/components/hds/form/fieldset/index.js b/packages/components/src/components/hds/form/fieldset/index.js index cc52e07512..a1c6ccd361 100644 --- a/packages/components/src/components/hds/form/fieldset/index.js +++ b/packages/components/src/components/hds/form/fieldset/index.js @@ -6,8 +6,8 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; -import { getElementId } from '../../../../utils/hds-get-element-id'; -import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; +import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by.js'; export default class HdsFormFieldsetIndexComponent extends Component { @tracked ariaDescribedBy = this.args.extraAriaDescribedBy; diff --git a/packages/components/src/components/hds/form/masked-input/base.js b/packages/components/src/components/hds/form/masked-input/base.js index 09ba8715a8..84c067f806 100644 --- a/packages/components/src/components/hds/form/masked-input/base.js +++ b/packages/components/src/components/hds/form/masked-input/base.js @@ -6,7 +6,7 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; -import { getElementId } from '../../../../utils/hds-get-element-id'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; export default class HdsFormMaskedInputBaseComponent extends Component { @tracked isContentMasked = this.args.isContentMasked ?? true; diff --git a/packages/components/src/components/hds/form/radio-card/index.js b/packages/components/src/components/hds/form/radio-card/index.js index 35ca166bf8..6b59943ae2 100644 --- a/packages/components/src/components/hds/form/radio-card/index.js +++ b/packages/components/src/components/hds/form/radio-card/index.js @@ -8,7 +8,7 @@ import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { assert } from '@ember/debug'; import { schedule } from '@ember/runloop'; -import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by'; +import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by.js'; export const DEFAULT_CONTROL_POSITION = 'bottom'; export const DEFAULT_ALIGNMENT = 'left'; diff --git a/packages/components/src/components/hds/form/super-select/multiple/base.js b/packages/components/src/components/hds/form/super-select/multiple/base.js index 873f6a00b0..422db227bd 100644 --- a/packages/components/src/components/hds/form/super-select/multiple/base.js +++ b/packages/components/src/components/hds/form/super-select/multiple/base.js @@ -4,7 +4,7 @@ */ import PowerSelectComponent from 'ember-power-select/components/power-select'; -import anchoredPositionModifier from '../../../../../modifiers/hds-anchored-position'; +import anchoredPositionModifier from '../../../../../modifiers/hds-anchored-position.js'; import { action } from '@ember/object'; import { tracked } from '@glimmer/tracking'; diff --git a/packages/components/src/components/hds/form/super-select/multiple/field.js b/packages/components/src/components/hds/form/super-select/multiple/field.js index 1023fc8b72..3a13a5bb74 100644 --- a/packages/components/src/components/hds/form/super-select/multiple/field.js +++ b/packages/components/src/components/hds/form/super-select/multiple/field.js @@ -4,7 +4,7 @@ */ import PowerSelectComponent from 'ember-power-select/components/power-select'; -import { ID_PREFIX } from '../../label/index'; +import { ID_PREFIX } from '../../label/index.js'; export default class HdsSuperSelectMultipleFieldComponent extends PowerSelectComponent { get idPrefix() { diff --git a/packages/components/src/components/hds/form/super-select/single/base.js b/packages/components/src/components/hds/form/super-select/single/base.js index 4571c9c9bf..0f916b7116 100644 --- a/packages/components/src/components/hds/form/super-select/single/base.js +++ b/packages/components/src/components/hds/form/super-select/single/base.js @@ -4,7 +4,7 @@ */ import PowerSelectComponent from 'ember-power-select/components/power-select'; -import anchoredPositionModifier from '../../../../../modifiers/hds-anchored-position'; +import anchoredPositionModifier from '../../../../../modifiers/hds-anchored-position.js'; import { action } from '@ember/object'; const DEFAULT_HORIZONTAL_POSITION = 'bottom-start'; diff --git a/packages/components/src/components/hds/form/super-select/single/field.js b/packages/components/src/components/hds/form/super-select/single/field.js index 3c2b7cbd19..24144ae09e 100644 --- a/packages/components/src/components/hds/form/super-select/single/field.js +++ b/packages/components/src/components/hds/form/super-select/single/field.js @@ -4,7 +4,7 @@ */ import PowerSelectComponent from 'ember-power-select/components/power-select'; -import { ID_PREFIX } from '../../label/index'; +import { ID_PREFIX } from '../../label/index.js'; export default class HdsSuperSelectSingleFieldComponent extends PowerSelectComponent { get idPrefix() { diff --git a/packages/components/src/components/hds/modal/index.js b/packages/components/src/components/hds/modal/index.js index 12978ff733..74feb026f4 100644 --- a/packages/components/src/components/hds/modal/index.js +++ b/packages/components/src/components/hds/modal/index.js @@ -7,7 +7,7 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { assert } from '@ember/debug'; -import { getElementId } from '../../../utils/hds-get-element-id'; +import { getElementId } from '../../../utils/hds-get-element-id.js'; import { buildWaiter } from '@ember/test-waiters'; let waiter = buildWaiter('@hashicorp/design-system-components:modal'); diff --git a/packages/components/src/components/hds/popover-primitive/index.js b/packages/components/src/components/hds/popover-primitive/index.js index 6235df58bf..81f8f28db9 100644 --- a/packages/components/src/components/hds/popover-primitive/index.js +++ b/packages/components/src/components/hds/popover-primitive/index.js @@ -11,8 +11,8 @@ import { next } from '@ember/runloop'; import { guidFor } from '@ember/object/internals'; import { modifier } from 'ember-modifier'; -import registerEvent from '../../../modifiers/hds-register-event'; -import anchoredPositionModifier from '../../../modifiers/hds-anchored-position'; +import registerEvent from '../../../modifiers/hds-register-event.js'; +import anchoredPositionModifier from '../../../modifiers/hds-anchored-position.js'; // https://github.com/oddbird/popover-polyfill?tab=readme-ov-file#with-npm // this is needed until Firefox releases the version 126 (up to 125 didn't support the Popover API) @@ -30,7 +30,7 @@ import { export { PLACEMENTS, DEFAULT_PLACEMENT, -} from '../../../modifiers/hds-anchored-position'; +} from '../../../modifiers/hds-anchored-position.js'; export default class HdsPopoverPrimitiveComponent extends Component { @tracked isOpen = this.args.isOpen ?? false; diff --git a/packages/components/src/components/hds/rich-tooltip/bubble.js b/packages/components/src/components/hds/rich-tooltip/bubble.js index ec28f71400..de866ead60 100644 --- a/packages/components/src/components/hds/rich-tooltip/bubble.js +++ b/packages/components/src/components/hds/rich-tooltip/bubble.js @@ -6,7 +6,7 @@ import Component from '@glimmer/component'; import { assert } from '@ember/debug'; -import { PLACEMENTS as PRIMITIVE_PLACEMENTS } from '../popover-primitive/index'; +import { PLACEMENTS as PRIMITIVE_PLACEMENTS } from '../popover-primitive/index.js'; export const DEFAULT_PLACEMENT = 'bottom'; export const PLACEMENTS = [...PRIMITIVE_PLACEMENTS]; diff --git a/packages/components/src/components/hds/rich-tooltip/index.js b/packages/components/src/components/hds/rich-tooltip/index.js index 16d05fcfc4..ac9e43cea3 100644 --- a/packages/components/src/components/hds/rich-tooltip/index.js +++ b/packages/components/src/components/hds/rich-tooltip/index.js @@ -4,7 +4,7 @@ */ import Component from '@glimmer/component'; -import { getElementId } from '../../../utils/hds-get-element-id'; +import { getElementId } from '../../../utils/hds-get-element-id.js'; export default class HdsRichTooltipIndexComponent extends Component { elementId = getElementId(this); diff --git a/packages/components/src/modifiers/hds-clipboard.ts b/packages/components/src/modifiers/hds-clipboard.ts index e28e4604e6..7b568ed86f 100644 --- a/packages/components/src/modifiers/hds-clipboard.ts +++ b/packages/components/src/modifiers/hds-clipboard.ts @@ -6,8 +6,8 @@ import { modifier } from 'ember-modifier'; import { assert, warn } from '@ember/debug'; -type TextToCopy = string | number | bigint | undefined; -type TargetToCopy = HTMLElement | undefined; +type TextToCopy = string | number | bigint; +type TargetToCopy = HTMLElement; export interface HdsClipboardModifierSignature { Element: HTMLElement; @@ -57,8 +57,8 @@ export const getTargetElement = (target: string | Node) => { ); return; } - } else if (target instanceof Node && target.nodeType === Node.ELEMENT_NODE) { - targetElement = target as HTMLElement; + } else if (target instanceof HTMLElement) { + targetElement = target; } else { if (target instanceof NodeList) { assert( @@ -76,10 +76,7 @@ export const getTargetElement = (target: string | Node) => { export const getTextToCopyFromTargetElement = (targetElement: TargetToCopy) => { let textToCopy: string = ''; - if ( - targetElement instanceof Node && - targetElement.nodeType === Node.ELEMENT_NODE - ) { + if (targetElement instanceof HTMLElement) { if ( targetElement instanceof HTMLInputElement || // targetElement.nodeName === 'INPUT' || targetElement instanceof HTMLTextAreaElement || // targetElement.nodeName === 'TEXTAREA' || @@ -88,7 +85,7 @@ export const getTextToCopyFromTargetElement = (targetElement: TargetToCopy) => { textToCopy = targetElement.value; } else { // simplest approach - textToCopy = (targetElement as HTMLElement).innerText; + textToCopy = targetElement.innerText; // approach based on text selection (left for backup just in case) // var selection = window.getSelection(); @@ -128,8 +125,8 @@ export const writeTextToClipboard = async (textToCopy: string) => { }; export const copyToClipboard = async ( - text: TextToCopy, - target: TargetToCopy + text?: TextToCopy, + target?: TargetToCopy ) => { let textToCopy: string = ''; diff --git a/packages/components/src/template-registry.ts b/packages/components/src/template-registry.ts index 7470116f7f..67205b484a 100644 --- a/packages/components/src/template-registry.ts +++ b/packages/components/src/template-registry.ts @@ -55,102 +55,80 @@ export default interface HdsComponentsRegistry { // Accordion 'Hds::Accordion': typeof HdsAccordionComponent; 'hds/accordion': typeof HdsAccordionComponent; - HdsAccordion: typeof HdsAccordionComponent; 'Hds::Accordion::Item': typeof HdsAccordionItemComponent; 'hds/accordion/item': typeof HdsAccordionItemComponent; - HdsAccordionItem: typeof HdsAccordionItemComponent; 'Hds::Accordion::Item::Button': typeof HdsAccordionItemButtonComponent; 'hds/accordion/item/button': typeof HdsAccordionItemButtonComponent; - HdsAccordionItemButton: typeof HdsAccordionItemButtonComponent; // Alert 'Hds::Alert': typeof HdsAlertComponent; 'hds/alert': typeof HdsAlertComponent; - HdsAlert: typeof HdsAlertComponent; 'Hds::Alert::Description': typeof HdsAlertDescriptionComponent; 'hds/alert/description': typeof HdsAlertDescriptionComponent; - HdsAlertDescription: typeof HdsAlertDescriptionComponent; 'Hds::Alert::Title': typeof HdsAlertTitleComponent; 'hds/alert/title': typeof HdsAlertTitleComponent; - HdsAlertTitle: typeof HdsAlertTitleComponent; // AppFooter 'Hds::AppFooter': typeof HdsAppFooterComponent; 'hds/app-footer': typeof HdsAppFooterComponent; - HdsAppFooter: typeof HdsAppFooterComponent; 'Hds::AppFooter::Copyright': typeof HdsAppFooterCopyrightComponent; 'hds/app-footer/copyright': typeof HdsAppFooterCopyrightComponent; - HdsAppFooterCopyright: typeof HdsAppFooterCopyrightComponent; 'Hds::AppFooter::Item': typeof HdsAppFooterItemComponent; 'hds/app-footer/item': typeof HdsAppFooterItemComponent; - HdsAppFooterItem: typeof HdsAppFooterItemComponent; 'Hds::AppFooter::LegalLinks': typeof HdsAppFooterLegalLinksComponent; 'hds/app-footer/legal-links': typeof HdsAppFooterLegalLinksComponent; - HdsAppFooterLegalLinks: typeof HdsAppFooterLegalLinksComponent; 'Hds::AppFooter::Link': typeof HdsAppFooterLinkComponent; 'hds/app-footer/link': typeof HdsAppFooterLinkComponent; - HdsAppFooterLink: typeof HdsAppFooterLinkComponent; 'Hds::AppFooter::StatusLink': typeof HdsAppFooterStatusLinkComponent; 'hds/app-footer/status-link': typeof HdsAppFooterStatusLinkComponent; - HdsAppFooterStatusLink: typeof HdsAppFooterStatusLinkComponent; + // App Frame 'Hds::AppFrame': typeof HdsAppFrameComponent; 'hds/app-frame': typeof HdsAppFrameComponent; - HdsAppFrame: typeof HdsAppFrameComponent; 'Hds::AppFrame::Footer': typeof HdsAppFrameFooterComponent; 'hds/app-frame/parts/footer': typeof HdsAppFrameFooterComponent; - HdsAppFrameFooter: typeof HdsAppFrameFooterComponent; 'Hds::AppFrame::Header': typeof HdsAppFrameHeaderComponent; 'hds/app-frame/parts/header': typeof HdsAppFrameHeaderComponent; - HdsAppFrameHeader: typeof HdsAppFrameHeaderComponent; 'Hds::AppFrame::Main': typeof HdsAppFrameMainComponent; 'hds/app-frame/parts/main': typeof HdsAppFrameMainComponent; - HdsAppFrameMain: typeof HdsAppFrameMainComponent; 'Hds::AppFrame::Modals': typeof HdsAppFrameModalsComponent; 'hds/app-frame/parts/modals': typeof HdsAppFrameModalsComponent; - HdsAppFrameModals: typeof HdsAppFrameModalsComponent; 'Hds::AppFrame::Sidebar': typeof HdsAppFrameSidebarComponent; 'hds/app-frame/parts/sidebar': typeof HdsAppFrameSidebarComponent; - HdsAppFrameSidebar: typeof HdsAppFrameSidebarComponent; // Badge 'Hds::Badge': typeof HdsBadgeComponent; 'hds/badge': typeof HdsBadgeComponent; - HdsBadge: typeof HdsBadgeComponent; // BadgeCount - 'Hds::Badge::Count': typeof HdsBadgeCountComponent; + 'Hds::BadgeCount': typeof HdsBadgeCountComponent; 'hds/badge-count': typeof HdsBadgeCountComponent; - HdsBadgeCount: typeof HdsBadgeCountComponent; // Button 'Hds::Button': typeof HdsButtonComponent; 'hds/button': typeof HdsButtonComponent; - HdsButton: typeof HdsButtonComponent; // ButtonSet 'Hds::ButtonSet': typeof HdsButtonSetComponent; 'hds/button-set': typeof HdsButtonSetComponent; - HdsButtonSet: typeof HdsButtonSetComponent; // Card 'Hds::Card': typeof HdsCardContainerComponent; 'hds/card': typeof HdsCardContainerComponent; - HdsCard: typeof HdsCardContainerComponent; // Copy Button 'Hds::Copy::Button': typeof HdsCopyButtonComponent; @@ -159,84 +137,66 @@ export default interface HdsComponentsRegistry { // Disclosure Primitive 'Hds::DisclosurePrimitive': typeof HdsDisclosurePrimitiveComponent; 'hds/disclosure-primitive': typeof HdsDisclosurePrimitiveComponent; - HdsDisclosurePrimitive: typeof HdsDisclosurePrimitiveComponent; // Dismiss button 'Hds::DismissButton': typeof HdsDismissButtonComponent; 'hds/dismiss-button': typeof HdsDismissButtonComponent; - HdsDismissButton: typeof HdsDismissButtonComponent; // IconTile 'Hds::IconTile': typeof HdsIconTileComponent; 'hds/icon-tile': typeof HdsIconTileComponent; - HdsIconTile: typeof HdsIconTileComponent; // Interactive 'Hds::Interactive': typeof HdsInteractiveComponent; 'hds/interactive': typeof HdsInteractiveComponent; - HdsInteractive: typeof HdsInteractiveComponent; // Link Inline 'Hds::Link::Inline': typeof HdsLinkInlineComponent; 'hds/link/inline': typeof HdsLinkInlineComponent; - HdsLinkInline: typeof HdsLinkInlineComponent; // Link Standalone 'Hds::Link::Standalone': typeof HdsLinkStandaloneComponent; 'hds/link/standalone': typeof HdsLinkStandaloneComponent; - HdsLinkStandalone: typeof HdsLinkStandaloneComponent; // Reveal 'Hds::Reveal': typeof HdsRevealComponent; 'hds/reveal': typeof HdsRevealComponent; - HdsReveal: typeof HdsRevealComponent; 'Hds::Reveal::Toggle::Button': typeof HdsRevealToggleButtonComponent; 'hds/reveal/toggle/button': typeof HdsRevealToggleButtonComponent; - HdsRevealToggleButtonComponent: typeof HdsRevealToggleButtonComponent; // Separator 'Hds::Separator': typeof HdsSeparatorComponent; 'hds/separator': typeof HdsSeparatorComponent; - HdsSeparator: typeof HdsSeparatorComponent; // Stepper 'Hds::Stepper::Step::Indicator': typeof HdsStepperStepIndicatorComponent; 'hds/stepper/step/indicator': typeof HdsStepperStepIndicatorComponent; - HdsStepperStepIndicator: typeof HdsStepperStepIndicatorComponent; 'Hds::Stepper::Task::Indicator': typeof HdsStepperTaskIndicatorComponent; 'hds/stepper/task/indicator': typeof HdsStepperTaskIndicatorComponent; - HdsStepperTaskIndicator: typeof HdsStepperTaskIndicatorComponent; // Text 'Hds::Text': typeof HdsTextComponent; 'hds/text': typeof HdsTextComponent; - HdsText: typeof HdsTextComponent; 'Hds::Text::Body': typeof HdsTextBodyComponent; 'hds/text/body': typeof HdsTextBodyComponent; - HdsTextBody: typeof HdsTextBodyComponent; 'Hds::Text::Display': typeof HdsTextDisplayComponent; 'hds/text/display': typeof HdsTextDisplayComponent; - HdsTextDisplay: typeof HdsTextDisplayComponent; 'Hds::Text::Code': typeof HdsTextCodeComponent; 'hds/text/code': typeof HdsTextCodeComponent; - HdsTextCode: typeof HdsTextCodeComponent; // Tag 'Hds::Tag': typeof HdsTagComponent; 'hds/tag': typeof HdsTagComponent; - HdsTag: typeof HdsTagComponent; // Toast 'Hds::Toast': typeof HdsToastComponent; 'hds/toast': typeof HdsToastComponent; - HdsToast: typeof HdsToastComponent; // Yield 'Hds::Yield': typeof HdsYieldComponent; 'hds/yield': typeof HdsYieldComponent; - HdsYield: typeof HdsYieldComponent; // Helpers 'hds-link-to-models': typeof HdsLinkToModelsHelper; diff --git a/showcase/.editorconfig b/showcase/.editorconfig new file mode 100644 index 0000000000..c35a002406 --- /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 335a1d39ad..d9ce3fd9df 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 d474a40bd5..9385391f21 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 864d4ad09f..e1005bd03c 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 59552cfc57..71ad79d02e 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 4178fd571e..9385391f21 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 09c56faf0c..457d0b302f 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 b806359ddd..a0cf71cbd1 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 a8f92b9feb..73d022a3e0 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 3cc869c8c0..d7ca22a674 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 d4caf7472f..1bce209ccd 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 4269632e55..711f6ef0c2 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 bb3f5ab5f3..231b09a023 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 73bf2c9307..156a8d35b8 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 b43cb0b654..8cc9afe3f4 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 4805726ba3..8fe0164f60 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 fff4c4d404..6b352f3d50 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 2a3d18ba3a..e1542bfeb8 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 04d6623d1a..febe47b7e1 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 c9f7115605..3834e64377 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 1a572a5022..2310ba87ae 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 37435370e8..b8c8f817c7 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 9ae8373228..a0852c8a75 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 aef87b3d26..8aed3f1b06 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 d080f7d01c..f02ccc74f8 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 afd82ad2e6..13c525d70b 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 03e5898bc8..a5ee2c0c64 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 0d3fa079f4..98b8e1b102 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 f752ca27e4..4286d53fd9 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 8766d55e6b..cf70f42376 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 c0156c853f..366676fc0e 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 4a0f8428c2..5ae961144b 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 fd8e89ed09..1b5143e733 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 afef1df28b..2b2363648d 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 6d794ba395..bc68d2f9e3 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 45c767493e..f4bc8234bd 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 b8b1258fbd..aec8dfcfa7 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 75b203fac4..dc972832b0 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 bfd1f9cdbb..9de2b190cf 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 d520d16420..fb6a2fec50 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 1def75c90f..536edd24f0 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 4f262fc19a..dc61e9776d 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 4547e56052..ff6c7af742 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 3c9d4a69d9..e57d06012e 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 7b4de495c5..4231989312 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 29e652bdd8..c26c45e7ef 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 80f1cc38b1..1a99ac8d74 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 2fdd00aaba..35fe7ba82a 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 94936281fc..a3b66f51ac 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 9d7c9df1e6..5ee5c33d5e 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 29618457d1..9b7edaf94c 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 e940442101..95ab7d6553 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 f1b15d8000..1394183213 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 26850af0d0..66c6cc66c9 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 af9f722f30..e790d1ce0c 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 ff520c1af5..0743c9b2ba 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 bc6cc28efe..094d3f2e4a 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 c73cb46974..ea15158c0d 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 aa272fa717..2be0540ce8 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 d1c00b3cf1..d1dfbee54f 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 3a5ac32a11..238075b67f 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 61b46631f3..27e50b83f0 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 ea06c205ff..0000000000 --- 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 3b83d0dbfa..7c03253288 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 d2f5fc1b01..a2e5977540 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/app/components/doc/link-with-icon/index.hbs b/website/app/components/doc/link-with-icon/index.hbs index 8668556e80..47b8d628de 100644 --- a/website/app/components/doc/link-with-icon/index.hbs +++ b/website/app/components/doc/link-with-icon/index.hbs @@ -4,13 +4,26 @@ }} {{#if @route}} - + {{@label}} {{/if}} {{#if @href}} - + {{@label}} diff --git a/website/app/components/doc/link-with-icon/index.js b/website/app/components/doc/link-with-icon/index.js index f192637b7c..2ce6724700 100644 --- a/website/app/components/doc/link-with-icon/index.js +++ b/website/app/components/doc/link-with-icon/index.js @@ -4,8 +4,11 @@ */ import Component from '@glimmer/component'; +import { inject as service } from '@ember/service'; export default class DocLinkWithIconComponent extends Component { + @service eventTracking; + get models() { // we need to use this trick to overcome the problem of `` going beserk if we pass // a `@model` argument which is undefined (while an empty `@models` array is OK) diff --git a/website/app/services/event-tracking.js b/website/app/services/event-tracking.js new file mode 100644 index 0000000000..595287184a --- /dev/null +++ b/website/app/services/event-tracking.js @@ -0,0 +1,16 @@ +import Service from '@ember/service'; +import { inject as service } from '@ember/service'; +import { action } from '@ember/object'; + +export default class EventService extends Service { + @service fastboot; + + @action + trackEvent(eventName) { + // Only attempt to do something if we are in the right environment + if (!this.fastboot.isFastBoot && window.fathom && eventName) { + // https://usefathom.com/docs/features/events + window.fathom.trackEvent(eventName); + } + } +} diff --git a/website/app/templates/index.hbs b/website/app/templates/index.hbs index 98164520c3..7669721a16 100644 --- a/website/app/templates/index.hbs +++ b/website/app/templates/index.hbs @@ -16,18 +16,21 @@ @label="Release Notes" @icon="arrow-right" @isAnimated={{true}} + @eventName="Hero - Release Notes" />
@@ -44,6 +47,7 @@ @fillParent={{true}} @isAnimated={{true}} aria-label={{concat "Explore " card.title ": " card.description}} + @eventName={{concat "Card - " card.title}} /> {{/each}} diff --git a/website/package.json b/website/package.json index 86938b46f9..21c56a17cf 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 ee7f2b226d..ef9fd1e18e 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: @@ -2975,7 +2975,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -2986,7 +2986,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.0, @eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 8c36169c815fc5d726078e8c71a5b592957ee60d08c6470f9ce0187c8046af1a00afbda0a065cc40ff18d5d83f82aed9793c6818f7304a74a7488dc9f3ecbd42 @@ -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" @@ -3673,7 +3705,8 @@ __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-import: "npm:^2.29.1" + eslint-plugin-n: "npm:^17.7.0" eslint-plugin-prettier: "npm:^4.2.1" eslint-plugin-qunit: "npm:^8.0.1" npm-run-all: "npm:^4.1.5" @@ -5481,6 +5514,13 @@ __metadata: languageName: node linkType: hard +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: 4e5aed58cabb2bbf6f725da13421aa50a49abb6bc17bfab6c31b8774b073fa7b50d557c61f961a09a85f6056151190f8ac95f13f5b48136ba5841f7d4484ec56 + languageName: node + linkType: hard + "@types/jsonfile@npm:*": version: 6.1.4 resolution: "@types/jsonfile@npm:6.1.4" @@ -5887,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: @@ -5945,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: @@ -6777,6 +6817,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.5" + is-array-buffer: "npm:^3.0.4" + checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + languageName: node + linkType: hard + "array-equal@npm:^1.0.0": version: 1.0.2 resolution: "array-equal@npm:1.0.2" @@ -6798,6 +6848,20 @@ __metadata: languageName: node linkType: hard +"array-includes@npm:^3.1.7": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + is-string: "npm:^1.0.7" + checksum: 290b206c9451f181fb2b1f79a3bf1c0b66bb259791290ffbada760c79b284eef6f5ae2aeb4bcff450ebc9690edd25732c4c73a3c2b340fcc0f4563aed83bf488 + languageName: node + linkType: hard + "array-timsort@npm:^1.0.3": version: 1.0.3 resolution: "array-timsort@npm:1.0.3" @@ -6851,7 +6915,21 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.2.3": +"array.prototype.findlastindex@npm:^1.2.3": + version: 1.2.5 + resolution: "array.prototype.findlastindex@npm:1.2.5" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 7c5c821f357cd53ab6cc305de8086430dd8d7a2485db87b13f843e868055e9582b1fd338f02338f67fc3a1603ceaf9610dd2a470b0b506f9d18934780f95b246 + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.2.3, array.prototype.flat@npm:^1.3.2": version: 1.3.2 resolution: "array.prototype.flat@npm:1.3.2" dependencies: @@ -6863,6 +6941,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.flatmap@npm:^1.3.2": + version: 1.3.2 + resolution: "array.prototype.flatmap@npm:1.3.2" + dependencies: + call-bind: "npm:^1.0.2" + define-properties: "npm:^1.2.0" + es-abstract: "npm:^1.22.1" + es-shim-unscopables: "npm:^1.0.0" + checksum: 33f20006686e0cbe844fde7fd290971e8366c6c5e3380681c2df15738b1df766dd02c7784034aeeb3b037f65c496ee54de665388288edb323a2008bb550f77ea + languageName: node + linkType: hard + "array.prototype.reduce@npm:^1.0.6": version: 1.0.6 resolution: "array.prototype.reduce@npm:1.0.6" @@ -6891,6 +6981,22 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.2.1" + get-intrinsic: "npm:^1.2.3" + is-array-buffer: "npm:^3.0.4" + is-shared-array-buffer: "npm:^1.0.2" + checksum: 0221f16c1e3ec7b67da870ee0e1f12b825b5f9189835392b59a22990f715827561a4f4cd5330dc7507de272d8df821be6cd4b0cb569babf5ea4be70e365a2f3d + languageName: node + linkType: hard + "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -7068,6 +7174,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab + languageName: node + linkType: hard + "aws-sign2@npm:~0.7.0": version: 0.7.0 resolution: "aws-sign2@npm:0.7.0" @@ -9101,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" @@ -9110,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" @@ -9212,6 +9343,19 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.1" + checksum: cd6fe658e007af80985da5185bff7b55e12ef4c2b6f41829a26ed1eef254b1f1c12e3dfd5b2b068c6ba8b86aba62390842d81752e67dcbaec4f6f76e7113b6b7 + languageName: node + linkType: hard + "call-me-maybe@npm:^1.0.1": version: 1.0.2 resolution: "call-me-maybe@npm:1.0.2" @@ -10139,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: @@ -10946,6 +11090,39 @@ __metadata: languageName: node linkType: hard +"data-view-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-buffer@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 5919a39a18ee919573336158fd162fdf8ada1bc23a139f28543fd45fac48e0ea4a3ad3bfde91de124d4106e65c4a7525f6a84c20ba0797ec890a77a96d13a82a + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: f33c65e58d8d0432ad79761f2e8a579818d724b5dc6dc4e700489b762d963ab30873c0f1c37d8f2ed12ef51c706d1195f64422856d25f067457aeec50cc40aac + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "data-view-byte-offset@npm:1.0.0" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 96f34f151bf02affb7b9f98762fb7aca1dd5f4553cb57b80bce750ca609c15d33ca659568ef1d422f7e35680736cbccb893a3d4b012760c758c1446bbdc4c6db + languageName: node + linkType: hard + "dataloader@npm:^1.4.0": version: 1.4.0 resolution: "dataloader@npm:1.4.0" @@ -11142,6 +11319,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae + languageName: node + linkType: hard + "define-lazy-prop@npm:^3.0.0": version: 3.0.0 resolution: "define-lazy-prop@npm:3.0.0" @@ -11347,6 +11535,15 @@ __metadata: languageName: node linkType: hard +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474 + languageName: node + linkType: hard + "doctrine@npm:^3.0.0": version: 3.0.0 resolution: "doctrine@npm:3.0.0" @@ -12569,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 @@ -13226,6 +13424,60 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2": + version: 1.23.3 + resolution: "es-abstract@npm:1.23.3" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + arraybuffer.prototype.slice: "npm:^1.0.3" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + data-view-buffer: "npm:^1.0.1" + data-view-byte-length: "npm:^1.0.1" + data-view-byte-offset: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-set-tostringtag: "npm:^2.0.3" + es-to-primitive: "npm:^1.2.1" + function.prototype.name: "npm:^1.1.6" + get-intrinsic: "npm:^1.2.4" + get-symbol-description: "npm:^1.0.2" + globalthis: "npm:^1.0.3" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.0.3" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.2" + internal-slot: "npm:^1.0.7" + is-array-buffer: "npm:^3.0.4" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.1" + is-negative-zero: "npm:^2.0.3" + is-regex: "npm:^1.1.4" + is-shared-array-buffer: "npm:^1.0.3" + is-string: "npm:^1.0.7" + is-typed-array: "npm:^1.1.13" + is-weakref: "npm:^1.0.2" + object-inspect: "npm:^1.13.1" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.5" + regexp.prototype.flags: "npm:^1.5.2" + safe-array-concat: "npm:^1.1.2" + safe-regex-test: "npm:^1.0.3" + string.prototype.trim: "npm:^1.2.9" + string.prototype.trimend: "npm:^1.0.8" + string.prototype.trimstart: "npm:^1.0.8" + typed-array-buffer: "npm:^1.0.2" + typed-array-byte-length: "npm:^1.0.1" + typed-array-byte-offset: "npm:^1.0.2" + typed-array-length: "npm:^1.0.6" + unbox-primitive: "npm:^1.0.2" + which-typed-array: "npm:^1.1.15" + checksum: 2da795a6a1ac5fc2c452799a409acc2e3692e06dc6440440b076908617188899caa562154d77263e3053bcd9389a07baa978ab10ac3b46acc399bd0c77be04cb + languageName: node + linkType: hard + "es-array-method-boxes-properly@npm:^1.0.0": version: 1.0.0 resolution: "es-array-method-boxes-properly@npm:1.0.0" @@ -13233,6 +13485,22 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + languageName: node + linkType: hard + +"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 + languageName: node + linkType: hard + "es-module-lexer@npm:^1.2.1": version: 1.4.1 resolution: "es-module-lexer@npm:1.4.1" @@ -13240,6 +13508,15 @@ __metadata: languageName: node linkType: hard +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + checksum: f8910cf477e53c0615f685c5c96210591841850871b81924fcf256bfbaa68c254457d994a4308c60d15b20805e7f61ce6abc669375e01a5349391a8c1767584f + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.1": version: 2.0.2 resolution: "es-set-tostringtag@npm:2.0.2" @@ -13251,7 +13528,18 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0": +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: "npm:^1.2.4" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.1" + checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: @@ -13331,6 +13619,17 @@ __metadata: languageName: node linkType: hard +"eslint-compat-utils@npm:^0.5.0": + version: 0.5.0 + resolution: "eslint-compat-utils@npm:0.5.0" + dependencies: + semver: "npm:^7.5.4" + peerDependencies: + eslint: ">=6.0.0" + checksum: 3f305ca4d9af42ff536cb9abedd4fddecb36809ee04772d5f16c5e4437b169fcfa02c5e6a1554df092dceb67864d0d4516d2db4b3a91131bb8dbbafe00d7b209 + languageName: node + linkType: hard + "eslint-config-prettier@npm:^8.10.0": version: 8.10.0 resolution: "eslint-config-prettier@npm:8.10.0" @@ -13353,6 +13652,29 @@ __metadata: languageName: node linkType: hard +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" + dependencies: + debug: "npm:^3.2.7" + is-core-module: "npm:^2.13.0" + resolve: "npm:^1.22.4" + checksum: d52e08e1d96cf630957272e4f2644dcfb531e49dcfd1edd2e07e43369eb2ec7a7d4423d417beee613201206ff2efa4eb9a582b5825ee28802fc7c71fcd53ca83 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.8.0": + version: 2.8.1 + resolution: "eslint-module-utils@npm:2.8.1" + dependencies: + debug: "npm:^3.2.7" + peerDependenciesMeta: + eslint: + optional: true + checksum: 3e7892c0a984c963632da56b30ccf8254c29b535467138f91086c2ecdb2ebd10e2be61b54e553f30e5abf1d14d47a7baa0dac890e3a658fd3cd07dca63afbe6d + languageName: node + linkType: hard + "eslint-plugin-ember@npm:^11.11.1": version: 11.11.1 resolution: "eslint-plugin-ember@npm:11.11.1" @@ -13376,6 +13698,19 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-es-x@npm:^7.5.0": + version: 7.6.0 + resolution: "eslint-plugin-es-x@npm:7.6.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.1.2" + "@eslint-community/regexpp": "npm:^4.6.0" + eslint-compat-utils: "npm:^0.5.0" + peerDependencies: + eslint: ">=8" + checksum: f1a0ea3da3a68263dd2ec8cf01c9e27583650c6acce62934a3a4f10d192f5b60773671f1f42de4bbe8b28443333074836a7e2426249d5adbfc3fc0d68c49d990 + languageName: node + linkType: hard + "eslint-plugin-es@npm:^3.0.0": version: 3.0.1 resolution: "eslint-plugin-es@npm:3.0.1" @@ -13388,6 +13723,72 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-import@npm:^2.29.1": + version: 2.29.1 + resolution: "eslint-plugin-import@npm:2.29.1" + dependencies: + array-includes: "npm:^3.1.7" + array.prototype.findlastindex: "npm:^1.2.3" + array.prototype.flat: "npm:^1.3.2" + array.prototype.flatmap: "npm:^1.3.2" + debug: "npm:^3.2.7" + doctrine: "npm:^2.1.0" + eslint-import-resolver-node: "npm:^0.3.9" + eslint-module-utils: "npm:^2.8.0" + hasown: "npm:^2.0.0" + is-core-module: "npm:^2.13.1" + is-glob: "npm:^4.0.3" + minimatch: "npm:^3.1.2" + object.fromentries: "npm:^2.0.7" + object.groupby: "npm:^1.0.1" + object.values: "npm:^1.1.7" + semver: "npm:^6.3.1" + tsconfig-paths: "npm:^3.15.0" + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + checksum: 5865f05c38552145423c535326ec9a7113ab2305c7614c8b896ff905cfabc859c8805cac21e979c9f6f742afa333e6f62f812eabf891a7e8f5f0b853a32593c1 + 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" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + enhanced-resolve: "npm:^5.15.0" + eslint-plugin-es-x: "npm:^7.5.0" + get-tsconfig: "npm:^4.7.0" + globals: "npm:^15.0.0" + ignore: "npm:^5.2.4" + minimatch: "npm:^9.0.0" + semver: "npm:^7.5.3" + peerDependencies: + eslint: ">=8.23.0" + checksum: 5fad81e4ed2e83754f2c7499756360fd1f829737c68fb384b83f82f92347e4b755014dcdbe17a88db2360c69da332a56c5b82480377cd0d562b187d97861f7e3 + languageName: node + linkType: hard + "eslint-plugin-node@npm:^11.1.0": version: 11.1.0 resolution: "eslint-plugin-node@npm:11.1.0" @@ -15027,6 +15428,19 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: 85bbf4b234c3940edf8a41f4ecbd4e25ce78e5e6ad4e24ca2f77037d983b9ef943fd72f00f3ee97a49ec622a506b67db49c36246150377efcda1c9eb03e5f06d + languageName: node + linkType: hard + "get-package-type@npm:^0.1.0": version: 0.1.0 resolution: "get-package-type@npm:0.1.0" @@ -15090,6 +15504,26 @@ __metadata: languageName: node linkType: hard +"get-symbol-description@npm:^1.0.2": + version: 1.0.2 + resolution: "get-symbol-description@npm:1.0.2" + dependencies: + call-bind: "npm:^1.0.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + languageName: node + linkType: hard + +"get-tsconfig@npm:^4.7.0": + version: 4.7.5 + resolution: "get-tsconfig@npm:4.7.5" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: de7de5e4978354e8e6d9985baf40ea32f908a13560f793bc989930c229cc8d5c3f7b6b2896d8e43eb1a9b4e9e30018ef4b506752fd2a4b4d0dfee4af6841b119 + languageName: node + linkType: hard + "get-value@npm:^2.0.3, get-value@npm:^2.0.6": version: 2.0.6 resolution: "get-value@npm:2.0.6" @@ -15277,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: @@ -15286,6 +15720,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^15.0.0": + version: 15.3.0 + resolution: "globals@npm:15.3.0" + checksum: ad4e845884e045d211fd7c4511f51a3484d6db8438d7a8ec9366919771f802596964aaa514f2561bd375ee7d0d57e83a056ef50996eee5a676400534c75e4d06 + languageName: node + linkType: hard + "globals@npm:^9.18.0": version: 9.18.0 resolution: "globals@npm:9.18.0" @@ -15594,6 +16035,15 @@ __metadata: languageName: node linkType: hard +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2 + languageName: node + linkType: hard + "has-proto@npm:^1.0.1": version: 1.0.1 resolution: "has-proto@npm:1.0.1" @@ -15601,6 +16051,13 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.0.3": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: 0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a + languageName: node + linkType: hard + "has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -15617,6 +16074,15 @@ __metadata: languageName: node linkType: hard +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe + languageName: node + linkType: hard + "has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" @@ -15686,6 +16152,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + "hast-util-from-parse5@npm:^8.0.0": version: 8.0.1 resolution: "hast-util-from-parse5@npm:8.0.1" @@ -16415,6 +16890,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.0.7": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.0" + side-channel: "npm:^1.0.4" + checksum: 3e66720508831153ecf37d13def9f6856f9f2960989ec8a0a0476c98f887fca9eff0163127466485cb825c900c2d6fc601aa9117b7783b90ffce23a71ea5d053 + languageName: node + linkType: hard + "invariant@npm:^2.2.2": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -16489,6 +16975,16 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" + dependencies: + call-bind: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.1" + checksum: 34a26213d981d58b30724ef37a1e0682f4040d580fa9ff58fdfdd3cefcb2287921718c63971c1c404951e7b747c50fdc7caf6e867e951353fa71b369c04c969b + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -16538,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" @@ -16545,7 +17050,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0": +"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: @@ -16563,6 +17068,15 @@ __metadata: languageName: node linkType: hard +"is-data-view@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-view@npm:1.0.1" + dependencies: + is-typed-array: "npm:^1.1.13" + checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 + languageName: node + linkType: hard + "is-date-object@npm:^1.0.1": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -16748,6 +17262,13 @@ __metadata: languageName: node linkType: hard +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: 8fe5cffd8d4fb2ec7b49d657e1691889778d037494c6f40f4d1a524cadd658b4b53ad7b6b73a59bcb4b143ae9a3d15829af864b2c0f9d65ac1e678c4c80f17e5 + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -16880,6 +17401,15 @@ __metadata: languageName: node linkType: hard +"is-shared-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "is-shared-array-buffer@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + checksum: bc5402900dc62b96ebb2548bf5b0a0bcfacc2db122236fe3ab3b3e3c884293a0d5eb777e73f059bcbf8dc8563bb65eae972fee0fb97e38a9ae27c8678f62bcfe + languageName: node + linkType: hard + "is-stream@npm:^1.1.0": version: 1.1.0 resolution: "is-stream@npm:1.1.0" @@ -16953,6 +17483,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" + dependencies: + which-typed-array: "npm:^1.1.14" + checksum: f850ba08286358b9a11aee6d93d371a45e3c59b5953549ee1c1a9a55ba5c1dd1bd9952488ae194ad8f32a9cf5e79c8fa5f0cc4d78c00720aa0bbcf238b38062d + languageName: node + linkType: hard + "is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -17953,6 +18492,17 @@ __metadata: languageName: node linkType: hard +"json5@npm:^1.0.2": + version: 1.0.2 + resolution: "json5@npm:1.0.2" + dependencies: + minimist: "npm:^1.2.0" + bin: + json5: lib/cli.js + checksum: a78d812dbbd5642c4f637dd130954acfd231b074965871c3e28a5bbd571f099d623ecf9161f1960c4ddf68e0cc98dee8bebfdb94a71ad4551f85a1afc94b63f6 + languageName: node + linkType: hard + "json5@npm:^2.1.1, json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" @@ -19791,6 +20341,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.0": + version: 9.0.4 + resolution: "minimatch@npm:9.0.4" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 4cdc18d112b164084513e890d6323370db14c22249d536ad1854539577a895e690a27513dc346392f61a4a50afbbd8abc88f3f25558bfbbbb862cd56508b20f5 + languageName: node + linkType: hard + "minimist-options@npm:^3.0.1": version: 3.0.2 resolution: "minimist-options@npm:3.0.2" @@ -20454,7 +21013,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4": +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": version: 4.1.5 resolution: "object.assign@npm:4.1.5" dependencies: @@ -20466,6 +21025,18 @@ __metadata: languageName: node linkType: hard +"object.fromentries@npm:^2.0.7": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + checksum: 5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92 + languageName: node + linkType: hard + "object.getownpropertydescriptors@npm:^2.1.0": version: 2.1.7 resolution: "object.getownpropertydescriptors@npm:2.1.7" @@ -20479,6 +21050,17 @@ __metadata: languageName: node linkType: hard +"object.groupby@npm:^1.0.1": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + checksum: 44cb86dd2c660434be65f7585c54b62f0425b0c96b5c948d2756be253ef06737da7e68d7106e35506ce4a44d16aa85a413d11c5034eb7ce5579ec28752eb42d0 + languageName: node + linkType: hard + "object.pick@npm:^1.3.0": version: 1.3.0 resolution: "object.pick@npm:1.3.0" @@ -20499,6 +21081,17 @@ __metadata: languageName: node linkType: hard +"object.values@npm:^1.1.7": + version: 1.2.0 + resolution: "object.values@npm:1.2.0" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: db2e498019c354428c5dd30d02980d920ac365b155fce4dcf63eb9433f98ccf0f72624309e182ce7cc227c95e45d474e1d483418e60de2293dd23fa3ebe34903 + languageName: node + linkType: hard + "on-finished@npm:2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" @@ -21266,6 +21859,13 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: 8ed3e96dfeea1c5880c1f4c9cb707e5fb26e8be22f14f82ef92df20fd2004e635c62ba47fbe8f2bb63bfd80dac1474be2fb39798da8c2feba2815435d1f749af + languageName: node + linkType: hard + "postcss-html@npm:^0.36.0": version: 0.36.0 resolution: "postcss-html@npm:0.36.0" @@ -22243,6 +22843,18 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.5.2": + version: 1.5.2 + resolution: "regexp.prototype.flags@npm:1.5.2" + dependencies: + call-bind: "npm:^1.0.6" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + set-function-name: "npm:^2.0.1" + checksum: 9fffc01da9c4e12670ff95bc5204364615fcc12d86fc30642765af908675678ebb0780883c874b2dbd184505fb52fa603d80073ecf69f461ce7f56b15d10be9c + languageName: node + linkType: hard + "regexpp@npm:^3.0.0, regexpp@npm:^3.1.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -22703,6 +23315,13 @@ __metadata: languageName: node linkType: hard +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e + languageName: node + linkType: hard + "resolve-url@npm:^0.2.1": version: 0.2.1 resolution: "resolve-url@npm:0.2.1" @@ -22717,7 +23336,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.11.1, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.8, resolve@npm:^1.3.3, resolve@npm:^1.4.0, resolve@npm:^1.5.0, resolve@npm:^1.8.1": +"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.11.1, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.22.8, resolve@npm:^1.3.3, resolve@npm:^1.4.0, resolve@npm:^1.5.0, resolve@npm:^1.8.1": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -22730,7 +23349,7 @@ __metadata: languageName: node linkType: hard -? "resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.11.1#optional!builtin, resolve@patch:resolve@npm%3A^1.13.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.3.3#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin, resolve@patch:resolve@npm%3A^1.5.0#optional!builtin, resolve@patch:resolve@npm%3A^1.8.1#optional!builtin" +? "resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.11.1#optional!builtin, resolve@patch:resolve@npm%3A^1.13.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.3.3#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin, resolve@patch:resolve@npm%3A^1.5.0#optional!builtin, resolve@patch:resolve@npm%3A^1.8.1#optional!builtin" : version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" @@ -23130,6 +23749,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.1.2": + version: 1.1.2 + resolution: "safe-array-concat@npm:1.1.2" + dependencies: + call-bind: "npm:^1.0.7" + get-intrinsic: "npm:^1.2.4" + has-symbols: "npm:^1.0.3" + isarray: "npm:^2.0.5" + checksum: a54f8040d7cb696a1ee38d19cc71ab3cfb654b9b81bae00c6459618cfad8214ece7e6666592f9c925aafef43d0a20c5e6fbb3413a2b618e1ce9d516a2e6dcfc5 + languageName: node + linkType: hard + "safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" @@ -23162,6 +23793,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.0.3": + version: 1.0.3 + resolution: "safe-regex-test@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.1.4" + checksum: b04de61114b10274d92e25b6de7ccb5de07f11ea15637ff636de4b5190c0f5cd8823fe586dde718504cf78055437d70fd8804976894df502fcf5a210c970afb3 + languageName: node + linkType: hard + "safe-regex@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex@npm:1.1.0" @@ -23403,6 +24045,20 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d + languageName: node + linkType: hard + "set-function-name@npm:^2.0.0": version: 2.0.1 resolution: "set-function-name@npm:2.0.1" @@ -23414,6 +24070,18 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.1": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.2" + checksum: c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74 + languageName: node + linkType: hard + "set-value@npm:^2.0.0, set-value@npm:^2.0.1": version: 2.0.1 resolution: "set-value@npm:2.0.1" @@ -23500,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" @@ -23520,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" @@ -23539,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" @@ -23554,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" @@ -23567,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 @@ -24277,6 +24947,18 @@ __metadata: languageName: node linkType: hard +"string.prototype.trim@npm:^1.2.9": + version: 1.2.9 + resolution: "string.prototype.trim@npm:1.2.9" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.0" + es-object-atoms: "npm:^1.0.0" + checksum: b2170903de6a2fb5a49bb8850052144e04b67329d49f1343cdc6a87cb24fb4e4b8ad00d3e273a399b8a3d8c32c89775d93a8f43cb42fbff303f25382079fb58a + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimend@npm:1.0.7" @@ -24288,6 +24970,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimend@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimend@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: c2e862ae724f95771da9ea17c27559d4eeced9208b9c20f69bbfcd1b9bc92375adf8af63a103194dba17c4cc4a5cb08842d929f415ff9d89c062d44689c8761b + languageName: node + linkType: hard + "string.prototype.trimstart@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimstart@npm:1.0.7" @@ -24299,6 +24992,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674 + languageName: node + linkType: hard + "string_decoder@npm:0.10, string_decoder@npm:~0.10.x": version: 0.10.31 resolution: "string_decoder@npm:0.10.31" @@ -25328,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" @@ -25489,6 +26203,18 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" + dependencies: + "@types/json5": "npm:^0.0.29" + json5: "npm:^1.0.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14 + languageName: node + linkType: hard + "tslib@npm:^1.8.1, tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -25633,6 +26359,17 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-buffer@npm:1.0.2" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.13" + checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + languageName: node + linkType: hard + "typed-array-byte-length@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-length@npm:1.0.0" @@ -25645,6 +26382,19 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "typed-array-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + checksum: e4a38329736fe6a73b52a09222d4a9e8de14caaa4ff6ad8e55217f6705b017d9815b7284c85065b3b8a7704e226ccff1372a72b78c2a5b6b71b7bf662308c903 + languageName: node + linkType: hard + "typed-array-byte-offset@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-offset@npm:1.0.0" @@ -25658,6 +26408,20 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-offset@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-byte-offset@npm:1.0.2" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + checksum: ac26d720ebb2aacbc45e231347c359e6649f52e0cfe0e76e62005912f8030d68e4cb7b725b1754e8fdd48e433cb68df5a8620a3e420ad1457d666e8b29bf9150 + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -25669,6 +26433,20 @@ __metadata: languageName: node linkType: hard +"typed-array-length@npm:^1.0.6": + version: 1.0.6 + resolution: "typed-array-length@npm:1.0.6" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + possible-typed-array-names: "npm:^1.0.0" + checksum: 05e96cf4ff836743ebfc593d86133b8c30e83172cb5d16c56814d7bacfed57ce97e87ada9c4b2156d9aaa59f75cdef01c25bd9081c7826e0b869afbefc3e8c39 + languageName: node + linkType: hard + "typedarray-to-buffer@npm:^3.1.5": version: 3.1.5 resolution: "typedarray-to-buffer@npm:3.1.5" @@ -26665,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" @@ -26867,6 +27645,19 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + checksum: c3b6a99beadc971baa53c3ee5b749f2b9bdfa3b3b9a70650dd8511a48b61d877288b498d424712e9991d16019633086bd8b5923369460d93463c5825fa36c448 + languageName: node + linkType: hard + "which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1"