Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 36 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install pnpm
uses: wyvox/action-setup-pnpm@v3
with:
node-version: 18.x
node-version: 22.x
args: "--frozen-lockfile"
- name: Lint
run: pnpm lint
Expand All @@ -36,11 +36,11 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install pnpm
uses: wyvox/action-setup-pnpm@v3
with:
node-version: 18.x
node-version: 22.x
args: "--no-lockfile"
- name: Run tests
run: pnpm test:ember
Expand All @@ -57,24 +57,46 @@ jobs:
fail-fast: false
matrix:
ember-try-scenario:
- ember-lts-3.28
- ember-lts-4.4
- ember-lts-4.8
- ember-lts-4.12
- ember-lts-5.12
- ember-lts-6.8
- ember-lts-6.12
- ember-release
- ember-beta
- ember-canary
- ember-classic
- embroider-safe
- embroider-optimized
# Known, currently unfixed upstream limitations (not masked with allow-failure,
# intentionally left red so they stay visible):
#
# embroider-safe/embroider-optimized: @embroider/compat v4's compatBuild() now calls
# its packager as a plain function (the @embroider/vite contract), but
# @embroider/webpack's `Webpack` export is still the old class-based packager from
# Embroider's legacy stage1/stage2 pipeline. No @embroider/webpack release implements
# the new contract, so there is no version combination that works. A real fix requires
# migrating this addon's test-app to @embroider/vite — attempted, but the addon's
# component fails to render under Vite's test runner in a way that needs a real
# component-level fix, not just build tooling. See
# https://github.com/embroider-build/embroider/issues/2699 for upstream tracking.
#
# ember-beta/ember-canary/ember-release: ember-try's PnpmAdapter resolves these
# channels to prerelease-tagged tarballs and tries to force a single `ember-source`
# instance via `pnpm.overrides`, but it only ever writes that override into
# `test-app/package.json` — pnpm only honors `pnpm.overrides` declared at the
# workspace ROOT package.json, so the override silently no-ops. pnpm then installs a
# second, separate `ember-source` to satisfy the addon's peerDependency, splitting the
# Ember/Glimmer runtime into two divergent instances, which breaks component
# registration/rendering entirely. Not fixable from this repo without an upstream
# ember-try fix or restructuring test-app out of the pnpm workspace. The stable LTS
# scenarios (5.12/6.8/6.12) use plain semver ranges the addon's peerDependency
# satisfies directly, so they're unaffected.

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install pnpm
uses: wyvox/action-setup-pnpm@v3
with:
node-version: 18.x
node-version: 22.x
args: "--frozen-lockfile"
- name: Run tests
run: pnpm ember try:one ${{ matrix.ember-try-scenario }} --skip-cleanup
Expand All @@ -90,18 +112,16 @@ jobs:
fail-fast: false
matrix:
typescript-scenario:
- typescript@5.0
- typescript@5.1
- typescript@5.2
- typescript@6.0
- typescript@next

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install pnpm
uses: wyvox/action-setup-pnpm@v3
with:
node-version: 18.x
node-version: 22.x
args: "--frozen-lockfile"
- name: Update TS version on addon package
run: pnpm add -D ${{ matrix.typescript-scenario }}
Expand Down
9 changes: 0 additions & 9 deletions ember-amount-input/.eslintignore

This file was deleted.

51 changes: 0 additions & 51 deletions ember-amount-input/.eslintrc.cjs

This file was deleted.

110 changes: 110 additions & 0 deletions ember-amount-input/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
import tseslint from 'typescript-eslint';
import emberRecommended from 'eslint-plugin-ember/configs/recommended';
import prettierRecommended from 'eslint-plugin-prettier/recommended';
import globals from 'globals';

export default tseslint.config(
{
ignores: ['dist/**', 'declarations/**', 'node_modules/**'],
},

...tseslint.configs.recommended,
...emberRecommended,
prettierRecommended,

// Browser globals for addon source
{
files: ['src/**/*.{js,ts}'],
languageOptions: {
globals: {
...globals.browser,
},
},
},

// Node-context files
{
files: [
'addon-main.cjs',
'rollup.config.mjs',
'eslint.config.mjs',
'**/*.cjs',
'.prettierrc.cjs',
'.template-lintrc.cjs',
],
languageOptions: {
sourceType: 'script',
globals: {
...globals.node,
},
},
rules: {
// CommonJS node files legitimately use require().
'@typescript-eslint/no-require-imports': 'off',
},
},

// Inline TypeScript rule overrides
{
files: ['**/*.ts'],
rules: {
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-non-null-assertion': 'error',
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/array-type': [
'error',
{ default: 'array', readonly: 'array' },
],
'@typescript-eslint/ban-tslint-comment': 'error',
'@typescript-eslint/class-literal-property-style': 'error',
'@typescript-eslint/consistent-generic-constructors': 'error',
'@typescript-eslint/consistent-indexed-object-style': 'error',
'@typescript-eslint/consistent-type-assertions': 'error',
'@typescript-eslint/consistent-type-definitions': 'error',
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/explicit-function-return-type': 'error',
'@typescript-eslint/explicit-member-accessibility': [
'error',
{ accessibility: 'no-public' },
],
'@typescript-eslint/explicit-module-boundary-types': 'error',
// `member-delimiter-style` was removed from typescript-eslint (moved to @stylistic/eslint-plugin) — dropped, not present in v8.62.1.
'@typescript-eslint/member-ordering': 'error',
'@typescript-eslint/method-signature-style': 'error',
'@typescript-eslint/no-confusing-non-null-assertion': 'error',
'@typescript-eslint/no-duplicate-enum-values': 'error',
'@typescript-eslint/no-dynamic-delete': 'error',
'@typescript-eslint/no-extraneous-class': 'error',
'@typescript-eslint/no-import-type-side-effects': 'error',
'@typescript-eslint/no-invalid-void-type': 'error',
'@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',
'@typescript-eslint/no-require-imports': 'error',
// `no-type-alias` still exists in v8.62.1 but has been deprecated since v6.0.0 (superseded by `consistent-type-definitions` etc.); kept, but expect removal in a future major.
'@typescript-eslint/no-type-alias': 'error',
'@typescript-eslint/no-unsafe-declaration-merging': 'error',
'@typescript-eslint/parameter-properties': 'error',
'@typescript-eslint/prefer-enum-initializers': 'error',
'@typescript-eslint/prefer-for-of': 'error',
'@typescript-eslint/prefer-function-type': 'error',
'@typescript-eslint/prefer-literal-enum-member': 'error',
'@typescript-eslint/prefer-ts-expect-error': 'error',
'@typescript-eslint/sort-type-constituents': 'error',
// `type-annotation-spacing` was removed from typescript-eslint (moved to @stylistic/eslint-plugin) — dropped, not present in v8.62.1.
// `typedef` still exists in v8.62.1 but has been deprecated since v8.33.0 ("no longer recommended for use"); kept per task list, but expect removal in a future major.
'@typescript-eslint/typedef': 'error',
'@typescript-eslint/unified-signatures': 'error',
},
},

// Glint's registry augmentation pattern intentionally uses an empty
// interface for addons to declare/extend via module augmentation.
{
files: ['src/unpublished-development-types/index.d.ts'],
rules: {
'@typescript-eslint/no-empty-object-type': [
'error',
{ allowInterfaces: 'always' },
],
},
},
);
44 changes: 21 additions & 23 deletions ember-amount-input/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,35 +36,33 @@
"prepare": "rollup --config"
},
"dependencies": {
"@embroider/addon-shim": "^1.8.7"
"@embroider/addon-shim": "^1.10.3"
},
"devDependencies": {
"@babel/core": "^7.24.0",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-decorators": "^7.23.9",
"@babel/plugin-proposal-decorators": "^7.29.7",
"@babel/plugin-syntax-decorators": "^7.23.3",
"@babel/preset-typescript": "^7.26.0",
"@embroider/addon-dev": "^5.0.0",
"@glimmer/component": "^1.1.2",
"@glint/core": "^1.5.0",
"@glint/environment-ember-loose": "^1.4.0",
"@glint/template": "^1.3.0",
"@qonto/eslint-config-typescript": "1.0.0-rc.0",
"@rollup/plugin-babel": "^6.0.4",
"@tsconfig/ember": "^3.0.3",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^8.6.0",
"concurrently": "^8.2.2",
"ember-template-lint": "^5.13.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-ember": "^12.2.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^5.1.3",
"prettier": "^3.2.5",
"rollup": "^4.29.0",
"@embroider/addon-dev": "^8.3.1",
"@glimmer/component": "^2.1.1",
"@glint/core": "^1.5.2",
"@glint/environment-ember-loose": "^1.5.2",
"@glint/template": "^1.7.8",
"@rollup/plugin-babel": "^7.1.0",
"@tsconfig/ember": "^3.0.12",
"concurrently": "^10.0.3",
"ember-template-lint": "^7.9.3",
"eslint": "^10.6.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-ember": "^13.4.1",
"eslint-plugin-prettier": "^5.5.6",
"globals": "^17.7.0",
"prettier": "^3.9.4",
"rollup": "^4.62.2",
"rollup-plugin-copy": "^3.5.0",
"typescript": "^5.6.2"
"typescript": "^6.0.3",
"typescript-eslint": "^8.62.1"
},
"publishConfig": {
"registry": "https://registry.npmjs.org"
Expand Down Expand Up @@ -99,6 +97,6 @@
}
},
"peerDependencies": {
"ember-source": "^3.28.0 || ^4.0.0 || ^5.0.0"
"ember-source": "^5.12.0 || ^6.8.0 || ^6.12.0 || ^7.0.0"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
declare module '*.css';
1 change: 1 addition & 0 deletions ember-amount-input/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
},
"compilerOptions": {
"allowJs": false,
"rootDir": "src",
"declarationDir": "declarations",
"skipLibCheck": true,
}
Expand Down
22 changes: 11 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,22 @@
"test": "pnpm --filter '*' test"
},
"devDependencies": {
"@commitlint/cli": "^18.6.0",
"@commitlint/config-conventional": "^19.5.0",
"@release-it-plugins/workspaces": "^4.2.0",
"@release-it/conventional-changelog": "^9.0.3",
"concurrently": "^8.2.2",
"lefthook": "^1.5.5",
"prettier": "^3.2.5",
"release-it": "^17.6.0"
"@commitlint/cli": "^21.2.0",
"@commitlint/config-conventional": "^21.2.0",
"@release-it-plugins/workspaces": "^6.0.0",
"@release-it/conventional-changelog": "^11.0.1",
"concurrently": "^10.0.3",
"lefthook": "^2.1.9",
"prettier": "^3.9.4",
"release-it": "^19.2.4"
},
"engines": {
"node": ">= 18"
"node": ">= 22"
},
"volta": {
"node": "18.15.0"
"node": "22.14.0"
},
"packageManager": "pnpm@8.6.5",
"packageManager": "pnpm@8.15.9",
"publishConfig": {
"registry": "https://registry.npmjs.org"
}
Expand Down
Loading
Loading