From f38a63dce6356f7a851ee5a00c47d3b64e3e0e36 Mon Sep 17 00:00:00 2001 From: Katie Gengler Date: Wed, 27 Aug 2025 16:03:26 -0400 Subject: [PATCH 01/12] Refactor to move the metrics tracking to the ApplicationRoute as is now best practice --- app/router.js | 27 --------------------------- app/routes/application.js | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/app/router.js b/app/router.js index 54b30dbf..dd112c97 100644 --- a/app/router.js +++ b/app/router.js @@ -1,36 +1,9 @@ import EmberRouter from '@ember/routing/router'; -import { scheduleOnce } from '@ember/runloop'; import config from 'ember-api-docs/config/environment'; -import { inject as service } from '@ember/service'; class AppRouter extends EmberRouter { location = config.locationType; rootURL = config.routerRootURL; - - @service metrics; - @service fastboot; - - constructor() { - super(...arguments); - - if (!this.fastboot.isFastBoot) { - this.on('routeDidChange', this, this._trackPage); - } - } - - _trackPage() { - scheduleOnce('afterRender', this, this.__trackPage); - } - - __trackPage() { - // this is constant for this app and is only used to identify page views in the GA dashboard - const hostname = config.APP.domain.replace(/(http|https)?:?\/\//g, ''); - - const page = this.url; - const title = - this.currentRouteName === undefined ? 'unknown' : this.currentRouteName; - this.metrics.trackPage({ page, title, hostname }); - } } AppRouter.map(function () { diff --git a/app/routes/application.js b/app/routes/application.js index 7d95c4e8..a72af054 100644 --- a/app/routes/application.js +++ b/app/routes/application.js @@ -10,6 +10,31 @@ export default class ApplicationRoute extends Route { @service legacyModuleMappings; + @service + router; + + @service + fastboot; + + @service + metrics; + + constructor() { + super(...arguments); + if (!this.fastboot.isFastBoot) { + this.router.on('routeDidChange', this.trackPage); + } + } + + trackPage = () => { + // this is constant for this app and is only used to identify page views in the GA dashboard + const hostname = ENV.APP.domain.replace(/(http|https)?:?\/\//g, ''); + + const page = this.router.currentURL; + const title = this.router.currentRouteName ?? 'unknown'; + this.metrics.trackPage({ page, title, hostname }); + }; + async afterModel() { set(this, 'headData.cdnDomain', ENV.API_HOST); await this.legacyModuleMappings.initMappings(); From c3981f95a45b2e74d27087e9b35d61e87eb2c013 Mon Sep 17 00:00:00 2001 From: Katie Gengler Date: Wed, 27 Aug 2025 16:30:25 -0400 Subject: [PATCH 02/12] Upgrade ember-eslint-plugin, upgrade ember-metrics - Remove unit test of metrics tracking but add local metrics adapter to observe metrics tracking --- app/metrics-adapters/local-adapter.js | 27 +++++ app/utils/request-idle-callback.js | 16 --- config/environment.js | 4 + package.json | 4 +- pnpm-lock.yaml | 111 +++++++++++++----- .../analytics-page-tracking-test.js | 69 ----------- 6 files changed, 117 insertions(+), 114 deletions(-) create mode 100644 app/metrics-adapters/local-adapter.js delete mode 100644 app/utils/request-idle-callback.js delete mode 100644 tests/acceptance/analytics-page-tracking-test.js diff --git a/app/metrics-adapters/local-adapter.js b/app/metrics-adapters/local-adapter.js new file mode 100644 index 00000000..8a34d32b --- /dev/null +++ b/app/metrics-adapters/local-adapter.js @@ -0,0 +1,27 @@ +import BaseAdapter from 'ember-metrics/metrics-adapters/base'; + +export default class LocalAdapter extends BaseAdapter { + toStringExtension() { + return 'local'; + } + + install() {} + + identify(options = {}) { + console.log('Metrics:', 'identify', options); + } + + trackEvent(options = {}) { + console.log('Metrics:', 'trackEvent', options); + } + + trackPage(options = {}) { + console.log('Metrics:', 'trackPage', options); + } + + alias(options = {}) { + console.log('Metrics:', 'alias', options); + } + + uninstall() {} +} diff --git a/app/utils/request-idle-callback.js b/app/utils/request-idle-callback.js deleted file mode 100644 index fef797b2..00000000 --- a/app/utils/request-idle-callback.js +++ /dev/null @@ -1,16 +0,0 @@ -import RSVP from 'rsvp'; -import { run } from '@ember/runloop'; - -function requestIdleCb(cb, opts) { - if ('requestIdleCallback' in window) { - return requestIdleCallback(cb, opts); - } else { - return run.scheduleOnce('afterRender', cb); - } -} - -export function requestIdlePromise({ timeout }) { - return new RSVP.Promise((resolve) => { - requestIdleCb(resolve, { timeout }); - }); -} diff --git a/config/environment.js b/config/environment.js index b401b1d3..6813a5ac 100644 --- a/config/environment.js +++ b/config/environment.js @@ -50,6 +50,10 @@ module.exports = function (environment) { id: 'UA-27675533-1', }, }, + { + name: 'LocalAdapter', + environments: ['development'], + }, ], }; diff --git a/package.json b/package.json index 225a2d73..03eb67b8 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "ember-decorators": "^6.1.1", "ember-inflector": "^4.0.3", "ember-load-initializers": "^2.1.2", - "ember-metrics": "^1.5.2", + "ember-metrics": "^2.0.0", "ember-modifier": "^4.1.0", "ember-page-title": "^7.0.0", "ember-power-select": "^8.7.0", @@ -111,7 +111,7 @@ "ember-web-app": "^5.0.1", "eslint": "^8.37.0", "eslint-config-prettier": "^8.8.0", - "eslint-plugin-ember": "^11.5.0", + "eslint-plugin-ember": "^12.7.3", "eslint-plugin-n": "^15.7.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-qunit": "^7.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d97c7e83..b8723a82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -198,8 +198,8 @@ importers: specifier: ^2.1.2 version: 2.1.2(@babel/core@7.28.3) ember-metrics: - specifier: ^1.5.2 - version: 1.5.2 + specifier: ^2.0.0 + version: 2.0.0(@ember/string@3.1.1)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))(webpack@5.101.2) ember-modifier: specifier: ^4.1.0 version: 4.2.2(@babel/core@7.28.3) @@ -258,8 +258,8 @@ importers: specifier: ^8.8.0 version: 8.10.2(eslint@8.57.1) eslint-plugin-ember: - specifier: ^11.5.0 - version: 11.12.0(eslint@8.57.1) + specifier: ^12.7.3 + version: 12.7.3(@babel/core@7.28.3)(eslint@8.57.1)(typescript@4.9.5) eslint-plugin-n: specifier: ^15.7.0 version: 15.7.0(eslint@8.57.1) @@ -1808,6 +1808,12 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@typescript-eslint/tsconfig-utils@8.41.0': + resolution: {integrity: sha512-TDhxYFPUYRFxFhuU5hTIJk+auzM/wKvWgoNYOPcOf6i4ReYlOoYN8q1dV5kOTjNQNJgzWN3TUUQMtlLOcUgdUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -3131,6 +3137,9 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} + content-tag@2.0.3: + resolution: {integrity: sha512-htLIdtfhhKW2fHlFLnZH7GFzHSdSpHhDLrWVswkNiiPMZ5uXq5JfrGboQKFhNQuAAFF8VNB2EYUj3MsdJrKKpg==} + content-tag@3.1.3: resolution: {integrity: sha512-4Kiv9mEroxuMXfWUNUHcljVJgxThCNk7eEswdHMXdzJnkBBaYDqDwzHkoh3F74JJhfU3taJOsgpR6oEGIDg17g==} @@ -3267,6 +3276,10 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@3.4.2: resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} engines: {node: '>= 6'} @@ -3831,6 +3844,16 @@ packages: resolution: {integrity: sha512-3slTltQV5ke53t3YVP2GYoswsQ6y+lhuVzKmt09tbEx91DapG8I/xa8W5OA0StvcQlavL3/vHrz/vCQEFs8bBA==} engines: {node: 14.* || 16.* || >= 18} + ember-eslint-parser@0.5.11: + resolution: {integrity: sha512-YuYc+bxDGHhNdz2yEZebwwzdiErHLLGud/Q2VE6J7czuMQ/vdiL8SYWBHWyYK691MCFzrxVYpSJb89+yjXv8yg==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@babel/core': ^7.23.6 + '@typescript-eslint/parser': '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + ember-functions-as-helper-polyfill@2.1.3: resolution: {integrity: sha512-Hte8jfOmSNzrz/vOchf68CGaBWXN2/5qKgFaylqr9omW2i4Wt9JmaBWRkeR0AJ53N57q3DX2TOb166Taq6QjiA==} engines: {node: '>= 14.0.0'} @@ -3864,9 +3887,12 @@ packages: resolution: {integrity: sha512-CYR+U/wRxLbrfYN3dh+0Tb6mFaxJKfdyz+wNql6cqTrA0BBi9k6J3AaKXj273TqvEpyyXegQFFkZEiuZdYtgJw==} engines: {node: 6.* || 8.* || >= 10.*} - ember-metrics@1.5.2: - resolution: {integrity: sha512-6QUg3XcGQ/wnMHxT4T+QXQs9NlojJ+ai/055sQWdmLrxep4w2fyy/spn9wxAkokdwEjj0nV5MPfTOTq5OS748w==} - engines: {node: 12.* || 14.* || >= 16} + ember-metrics@2.0.0: + resolution: {integrity: sha512-r62LSNiivGKdhV7UOC9H9lmmApO/zaCnVo9BStVDkHTgcdzoq6iENft/ZDsCihQt3loevCi/BXb+DLffOBjKxg==} + engines: {node: 18.* || 20.* || >= 22} + peerDependencies: + '@ember/string': '>= 3.0.0' + ember-source: '>= 3.28.0' ember-modifier-manager-polyfill@1.2.0: resolution: {integrity: sha512-bnaKF1LLKMkBNeDoetvIJ4vhwRPKIIumWr6dbVuW6W6p4QV8ZiO+GdF8J7mxDNlog9CeL9Z/7wam4YS86G8BYA==} @@ -4130,11 +4156,15 @@ packages: eslint-formatter-kakoune@1.0.0: resolution: {integrity: sha512-Uk/TVLt6Nf6Xoz7C1iYuZjOSdJxe5aaauGRke8JhKeJwD66Y61/pY2FjtLP04Ooq9PwV34bzrkKkU2UZ5FtDRA==} - eslint-plugin-ember@11.12.0: - resolution: {integrity: sha512-7Ow1ky5JnRR0k3cxuvgYi4AWTe9DzGjlLgOJbU5VABLgr7Q0iq3ioC+YwAP79nV48cpw2HOgMgkZ1MynuIg59g==} - engines: {node: 14.* || 16.* || >= 18} + eslint-plugin-ember@12.7.3: + resolution: {integrity: sha512-yZeq0g6XPFXPdz9eTmJ0LUj8xPLDTSYG9Ne2wT1z1aaDWtnREN1vyxGkcQ6veeH4hYIZxbm37OFth2aWFNX5lA==} + engines: {node: 18.* || 20.* || >= 21} peerDependencies: - eslint: '>= 7' + '@typescript-eslint/parser': '*' + eslint: '>= 8' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true eslint-plugin-es@4.1.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} @@ -5658,9 +5688,6 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -5733,6 +5760,9 @@ packages: mdn-data@2.0.4: resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} @@ -10502,6 +10532,10 @@ snapshots: '@types/node': 24.3.0 optional: true + '@typescript-eslint/tsconfig-utils@8.41.0(typescript@4.9.5)': + dependencies: + typescript: 4.9.5 + '@ungap/structured-clone@1.3.0': {} '@webassemblyjs/ast@1.14.1': @@ -12301,6 +12335,8 @@ snapshots: dependencies: safe-buffer: 5.2.1 + content-tag@2.0.3: {} + content-tag@3.1.3: {} content-type@1.0.5: {} @@ -12445,6 +12481,11 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.1 + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + css-what@3.4.2: {} css-what@6.2.2: {} @@ -13556,6 +13597,21 @@ snapshots: transitivePeerDependencies: - supports-color + ember-eslint-parser@0.5.11(@babel/core@7.28.3)(eslint@8.57.1)(typescript@4.9.5): + dependencies: + '@babel/core': 7.28.3 + '@babel/eslint-parser': 7.28.0(@babel/core@7.28.3)(eslint@8.57.1) + '@glimmer/syntax': 0.95.0 + '@typescript-eslint/tsconfig-utils': 8.41.0(typescript@4.9.5) + content-tag: 2.0.3 + eslint-scope: 7.2.2 + html-tags: 3.3.1 + mathml-tag-names: 2.1.3 + svg-tags: 1.0.0 + transitivePeerDependencies: + - eslint + - typescript + ember-functions-as-helper-polyfill@2.1.3(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)): dependencies: ember-cli-babel: 7.26.11 @@ -13605,13 +13661,18 @@ snapshots: - '@babel/core' - supports-color - ember-metrics@1.5.2: + ember-metrics@2.0.0(@ember/string@3.1.1)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))(webpack@5.101.2): dependencies: + '@ember/string': 3.1.1 broccoli-funnel: 3.0.8 + ember-auto-import: 2.10.0(webpack@5.101.2) ember-cli-babel: 7.26.11 - ember-cli-typescript: 4.2.1 + ember-cli-typescript: 5.3.0 + ember-source: 4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2) transitivePeerDependencies: + - '@glint/template' - supports-color + - webpack ember-modifier-manager-polyfill@1.2.0(@babel/core@7.28.3): dependencies: @@ -14127,24 +14188,22 @@ snapshots: eslint-formatter-kakoune@1.0.0: {} - eslint-plugin-ember@11.12.0(eslint@8.57.1): + eslint-plugin-ember@12.7.3(@babel/core@7.28.3)(eslint@8.57.1)(typescript@4.9.5): dependencies: '@ember-data/rfc395-data': 0.0.4 - '@glimmer/syntax': 0.84.3 - css-tree: 2.3.1 + css-tree: 3.1.0 + ember-eslint-parser: 0.5.11(@babel/core@7.28.3)(eslint@8.57.1)(typescript@4.9.5) ember-rfc176-data: 0.3.18 - ember-template-imports: 3.4.2 - ember-template-recast: 6.1.5 eslint: 8.57.1 eslint-utils: 3.0.0(eslint@8.57.1) estraverse: 5.3.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 - magic-string: 0.30.17 requireindex: 1.2.0 snake-case: 3.0.4 transitivePeerDependencies: - - supports-color + - '@babel/core' + - typescript eslint-plugin-es@4.1.0(eslint@8.57.1): dependencies: @@ -16088,10 +16147,6 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -16169,6 +16224,8 @@ snapshots: mdn-data@2.0.4: {} + mdn-data@2.12.2: {} + mdurl@1.0.1: {} media-typer@0.3.0: {} diff --git a/tests/acceptance/analytics-page-tracking-test.js b/tests/acceptance/analytics-page-tracking-test.js deleted file mode 100644 index e6cb3df7..00000000 --- a/tests/acceptance/analytics-page-tracking-test.js +++ /dev/null @@ -1,69 +0,0 @@ -import { visit } from '@ember/test-helpers'; -import config from 'ember-api-docs/config/environment'; -import { requestIdlePromise } from 'ember-api-docs/utils/request-idle-callback'; -import { module, test } from 'qunit'; -import { setupApplicationTest } from 'ember-qunit'; -import sinon from 'sinon'; - -module('Acceptance | analytics page tracking', function (hooks) { - setupApplicationTest(hooks); - - test('checking that trackPage gets called on transitions', async function (assert) { - const pages = [ - '/ember/2.11/namespaces/Ember', - '/ember/2.11/modules/ember-metal', - '/ember/2.11/classes/Ember.Application', - ]; - - const applicationRouter = this.owner.lookup('router:main'); - const metricsService = this.owner.lookup('service:metrics'); - - const routerTrackPageSpy = sinon.spy(applicationRouter, '__trackPage'); - const serviceTrackPageSpy = sinon.spy(metricsService, 'trackPage'); - - await visit(pages[0]); - await visit(pages[1]); - await visit(pages[2]); - - assert.expect(5); - - assert.ok( - routerTrackPageSpy.calledThrice, - `__trackPage() was not called 3 times it was called ${routerTrackPageSpy.callCount} times` - ); - assert.ok( - serviceTrackPageSpy.calledThrice, - `metrics.trackPage() was not called 3 times it was called ${serviceTrackPageSpy.callCount} times` - ); - - const hostname = config.APP.domain.replace(/(http|https)?:?\/\//g, ''); - - assert.ok( - serviceTrackPageSpy.calledWith({ - page: '/ember/2.11/namespaces/Ember', - title: 'project-version.namespaces.namespace', - hostname, - }), - 'service was called with expected arguments for ember namespace page' - ); - assert.ok( - serviceTrackPageSpy.calledWith({ - page: '/ember/2.11/modules/ember-metal', - title: 'project-version.modules.module', - hostname, - }), - 'service was called with expected arguments for ember metal module' - ); - assert.ok( - serviceTrackPageSpy.calledWith({ - page: '/ember/2.11/classes/Ember.Application', - title: 'project-version.classes.class', - hostname, - }), - 'service was called with expected arguments for ember application class' - ); - - // make sure the test runner waits for last idle callback - return requestIdlePromise(2000); - }); -}); From 3ea9833832e03483902603abde9943702a819fce Mon Sep 17 00:00:00 2001 From: Katie Gengler Date: Wed, 27 Aug 2025 16:35:13 -0400 Subject: [PATCH 03/12] Bump ember-template-lint --- package.json | 2 +- pnpm-lock.yaml | 200 +++---------------------------------------------- 2 files changed, 11 insertions(+), 191 deletions(-) diff --git a/package.json b/package.json index 03eb67b8..8f67eba9 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "ember-source": "~4.12.0", "ember-styleguide": "^11.0.3", "ember-svg-jar": "^2.4.2", - "ember-template-lint": "^5.7.2", + "ember-template-lint": "^7.9.3", "ember-test-selectors": "^6.0.0", "ember-tether": "3.1.0", "ember-truth-helpers": "^4.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8723a82..8e0b16a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -237,8 +237,8 @@ importers: specifier: ^2.4.2 version: 2.6.3 ember-template-lint: - specifier: ^5.7.2 - version: 5.13.0 + specifier: ^7.9.3 + version: 7.9.3 ember-test-selectors: specifier: ^6.0.0 version: 6.0.0 @@ -280,7 +280,7 @@ importers: version: 2.6.3 lint-to-the-future-ember-template: specifier: ^3.1.0 - version: 3.1.0(ember-template-lint@5.13.0) + version: 3.1.0(ember-template-lint@7.9.3) lint-to-the-future-eslint: specifier: ^3.1.0 version: 3.2.0(eslint@8.57.1) @@ -1272,18 +1272,12 @@ packages: '@glimmer/env@0.1.7': resolution: {integrity: sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw==} - '@glimmer/global-context@0.84.3': - resolution: {integrity: sha512-8Oy9Wg5IZxMEeAnVmzD2NkObf89BeHoFSzJgJROE/deutd3rxg83mvlOez4zBBGYwnTb+VGU2LYRpet92egJjA==} - '@glimmer/interfaces@0.84.3': resolution: {integrity: sha512-dk32ykoNojt0mvEaIW6Vli5MGTbQo58uy3Epj7ahCgTHmWOKuw/0G83f2UmFprRwFx689YTXG38I/vbpltEjzg==} '@glimmer/interfaces@0.94.6': resolution: {integrity: sha512-sp/1WePvB/8O+jrcUHwjboNPTKrdGicuHKA9T/lh0vkYK2qM5Xz4i25lQMQ38tEMiw7KixrjHiTUiaXRld+IwA==} - '@glimmer/reference@0.84.3': - resolution: {integrity: sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==} - '@glimmer/syntax@0.84.3': resolution: {integrity: sha512-ioVbTic6ZisLxqTgRBL2PCjYZTFIwobifCustrozRU2xGDiYvVIL0vt25h2c1ioDsX59UgVlDkIK4YTAQQSd2A==} @@ -1305,9 +1299,6 @@ packages: '@glimmer/validator@0.44.0': resolution: {integrity: sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw==} - '@glimmer/validator@0.84.3': - resolution: {integrity: sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ==} - '@glimmer/vm-babel-plugins@0.84.2': resolution: {integrity: sha512-HS2dEbJ3CgXn56wk/5QdudM7rE3vtNMvPIoG7Rrg+GhkGMNxBCIRxOeEF2g520j9rwlA2LAZFpc7MCDMFbTjNA==} @@ -2028,10 +2019,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - arr-diff@4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} engines: {node: '>=0.10.0'} @@ -2185,10 +2172,6 @@ packages: babel-helper-replace-supers@6.24.1: resolution: {integrity: sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==} - babel-import-util@0.2.0: - resolution: {integrity: sha512-CtWYYHU/MgK88rxMrLfkD356dApswtR/kWZ/c6JifG1m10e7tBBrs/366dFzWMAoqYmG5/JSh+94tUSpIwh+ag==} - engines: {node: '>= 12.*'} - babel-import-util@2.1.1: resolution: {integrity: sha512-3qBQWRjzP9NreSH/YrOEU1Lj5F60+pWSLP0kIdCWxjFHH7pX2YPHIxQ67el4gnMNfYoDxSDGcT0zpVlZ+gVtQA==} engines: {node: '>= 12.*'} @@ -2757,10 +2740,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.6.0: - resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -2886,10 +2865,6 @@ packages: resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} engines: {node: '>=0.1.90'} - colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2912,10 +2887,6 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} @@ -3975,18 +3946,9 @@ packages: resolution: {integrity: sha512-+hgqDIVmtyHcBWOKfRlvxWvTWGJ8Ly4t9NjGsRGSu8qfP/w/TP6IgYJNUgN9MU9ZkU24Sg02RzIkfuXvIhoYJg==} engines: {node: 12.* || 14.* || >= 16} - ember-template-imports@3.4.2: - resolution: {integrity: sha512-OS8TUVG2kQYYwP3netunLVfeijPoOKIs1SvPQRTNOQX4Pu8xGGBEZmrv0U1YTnQn12Eg+p6w/0UdGbUnITjyzw==} - engines: {node: 12.* || >= 14} - - ember-template-lint@5.13.0: - resolution: {integrity: sha512-AYxz9S9fVZfHPmTsymc7NwsD7FVmDUZyfC+KYpxDlK0wic7JSQx2FNQNqQSBFRLOuzn7VQ0/+1pX6DGqKDGswg==} - engines: {node: ^14.18.0 || ^16.0.0 || >= 18.0.0} - hasBin: true - - ember-template-recast@6.1.5: - resolution: {integrity: sha512-VnRN8FzEHQnw/5rCv6Wnq8MVYXbGQbFY+rEufvWV+FO/IsxMahGEud4MYWtTA2q8iG+qJFrDQefNvQ//7MI7Qw==} - engines: {node: 12.* || 14.* || >= 16.*} + ember-template-lint@7.9.3: + resolution: {integrity: sha512-iqC4rv/oVlXViGuf7hlOA/bC550ZqacZKAc8WvQV0ueeCtIYPkYYK+Tc7FwpM8qGx3jiwu/ZsTuNfPInI5pL7Q==} + engines: {node: ^18.18.0 || >= 20.9.0} hasBin: true ember-test-selectors@6.0.0: @@ -4153,9 +4115,6 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-formatter-kakoune@1.0.0: - resolution: {integrity: sha512-Uk/TVLt6Nf6Xoz7C1iYuZjOSdJxe5aaauGRke8JhKeJwD66Y61/pY2FjtLP04Ooq9PwV34bzrkKkU2UZ5FtDRA==} - eslint-plugin-ember@12.7.3: resolution: {integrity: sha512-yZeq0g6XPFXPdz9eTmJ0LUj8xPLDTSYG9Ne2wT1z1aaDWtnREN1vyxGkcQ6veeH4hYIZxbm37OFth2aWFNX5lA==} engines: {node: 18.* || 20.* || >= 21} @@ -4635,10 +4594,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - fuse.js@6.6.2: - resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==} - engines: {node: '>=10'} - gauge@4.0.4: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4664,10 +4619,6 @@ packages: resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==} engines: {node: '>=0.10.0'} - get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} - get-stream@4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} @@ -4766,10 +4717,6 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - globby@14.1.0: resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} engines: {node: '>=18'} @@ -5471,13 +5418,6 @@ packages: known-css-properties@0.29.0: resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - lcid@3.1.1: resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} engines: {node: '>=8'} @@ -7154,10 +7094,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} @@ -7580,10 +7516,6 @@ packages: resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==} engines: {node: '>=6'} - tmp@0.2.5: - resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} - engines: {node: '>=14.14'} - tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -7863,9 +7795,6 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -7873,9 +7802,6 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - validate-peer-dependencies@1.2.0: - resolution: {integrity: sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA==} - validate-peer-dependencies@2.2.0: resolution: {integrity: sha512-8X1OWlERjiUY6P6tdeU9E0EwO8RA3bahoOVG7ulOZT5MqgNDUO/BQoVjYiHPcNe+v8glsboZRIw9iToMAA2zAA==} engines: {node: '>= 12'} @@ -9692,10 +9618,6 @@ snapshots: '@glimmer/env@0.1.7': {} - '@glimmer/global-context@0.84.3': - dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/interfaces@0.84.3': dependencies: '@simple-dom/interface': 1.4.0 @@ -9705,14 +9627,6 @@ snapshots: '@simple-dom/interface': 1.4.0 type-fest: 4.41.0 - '@glimmer/reference@0.84.3': - dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.84.3 - '@glimmer/interfaces': 0.84.3 - '@glimmer/util': 0.84.3 - '@glimmer/validator': 0.84.3 - '@glimmer/syntax@0.84.3': dependencies: '@glimmer/interfaces': 0.84.3 @@ -9747,11 +9661,6 @@ snapshots: '@glimmer/validator@0.44.0': {} - '@glimmer/validator@0.84.3': - dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.84.3 - '@glimmer/vm-babel-plugins@0.84.2(@babel/core@7.28.3)': dependencies: babel-plugin-debug-macros: 0.3.4(@babel/core@7.28.3) @@ -10769,8 +10678,6 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.2: {} - arr-diff@4.0.0: {} arr-flatten@1.1.0: {} @@ -10988,8 +10895,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-import-util@0.2.0: {} - babel-import-util@2.1.1: {} babel-import-util@3.0.1: {} @@ -12098,8 +12003,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.0: {} - character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -12232,8 +12135,6 @@ snapshots: colors@1.0.3: {} - colors@1.4.0: {} - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -12250,8 +12151,6 @@ snapshots: commander@7.2.0: {} - commander@8.3.0: {} - commander@9.5.0: {} common-ancestor-path@1.0.1: {} @@ -13888,58 +13787,10 @@ snapshots: - '@glint/template' - supports-color - ember-template-imports@3.4.2: - dependencies: - babel-import-util: 0.2.0 - broccoli-stew: 3.0.0 - ember-cli-babel-plugin-helpers: 1.1.1 - ember-cli-version-checker: 5.1.2 - line-column: 1.0.2 - magic-string: 0.25.9 - parse-static-imports: 1.1.0 - string.prototype.matchall: 4.0.12 - validate-peer-dependencies: 1.2.0 - transitivePeerDependencies: - - supports-color - - ember-template-lint@5.13.0: + ember-template-lint@7.9.3: dependencies: '@lint-todo/utils': 13.1.1 - aria-query: 5.3.2 - chalk: 5.6.0 - ci-info: 3.9.0 - date-fns: 2.30.0 - ember-template-imports: 3.4.2 - ember-template-recast: 6.1.5 - eslint-formatter-kakoune: 1.0.0 - find-up: 6.3.0 - fuse.js: 6.6.2 - get-stdin: 9.0.0 - globby: 13.2.2 - is-glob: 4.0.3 - language-tags: 1.0.9 - micromatch: 4.0.8 - resolve: 1.22.10 - v8-compile-cache: 2.4.0 - yargs: 17.7.2 - transitivePeerDependencies: - - supports-color - - ember-template-recast@6.1.5: - dependencies: - '@glimmer/reference': 0.84.3 - '@glimmer/syntax': 0.84.3 - '@glimmer/validator': 0.84.3 - async-promise-queue: 1.0.5 - colors: 1.4.0 - commander: 8.3.0 - globby: 11.1.0 - ora: 5.4.1 - slash: 3.0.0 - tmp: 0.2.5 - workerpool: 6.5.1 - transitivePeerDependencies: - - supports-color + content-tag: 3.1.3 ember-test-selectors@6.0.0: dependencies: @@ -14186,8 +14037,6 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-formatter-kakoune@1.0.0: {} - eslint-plugin-ember@12.7.3(@babel/core@7.28.3)(eslint@8.57.1)(typescript@4.9.5): dependencies: '@ember-data/rfc395-data': 0.0.4 @@ -14943,8 +14792,6 @@ snapshots: functions-have-names@1.2.3: {} - fuse.js@6.6.2: {} - gauge@4.0.4: dependencies: aproba: 2.1.0 @@ -14980,8 +14827,6 @@ snapshots: get-stdin@4.0.1: {} - get-stdin@9.0.0: {} - get-stream@4.1.0: dependencies: pump: 3.0.3 @@ -15111,14 +14956,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@13.2.2: - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 4.0.0 - globby@14.1.0: dependencies: '@sindresorhus/merge-streams': 2.3.0 @@ -15921,12 +15758,6 @@ snapshots: known-css-properties@0.29.0: {} - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - lcid@3.1.1: dependencies: invert-kv: 3.0.1 @@ -15955,11 +15786,11 @@ snapshots: dependencies: uc.micro: 1.0.6 - lint-to-the-future-ember-template@3.1.0(ember-template-lint@5.13.0): + lint-to-the-future-ember-template@3.1.0(ember-template-lint@7.9.3): dependencies: content-tag: 3.1.3 debug: 4.4.1(supports-color@8.1.1) - ember-template-lint: 5.13.0 + ember-template-lint: 7.9.3 globby: 14.1.0 transitivePeerDependencies: - supports-color @@ -17783,8 +17614,6 @@ snapshots: slash@3.0.0: {} - slash@4.0.0: {} - slash@5.1.0: {} slice-ansi@4.0.0: @@ -18405,8 +18234,6 @@ snapshots: dependencies: rimraf: 2.7.1 - tmp@0.2.5: {} - tmpl@1.0.5: {} to-fast-properties@1.0.3: {} @@ -18688,8 +18515,6 @@ snapshots: uuid@9.0.1: {} - v8-compile-cache@2.4.0: {} - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -18697,11 +18522,6 @@ snapshots: validate-npm-package-name@5.0.1: {} - validate-peer-dependencies@1.2.0: - dependencies: - resolve-package-path: 3.1.0 - semver: 7.7.2 - validate-peer-dependencies@2.2.0: dependencies: resolve-package-path: 4.0.3 From f43a7334e8e479aa1fea296fb59a11af155d312b Mon Sep 17 00:00:00 2001 From: Katie Gengler Date: Wed, 27 Aug 2025 16:40:32 -0400 Subject: [PATCH 04/12] Add gjs support --- package.json | 4 +- pnpm-lock.yaml | 235 ++++++++++++++++--------------------------------- 2 files changed, 77 insertions(+), 162 deletions(-) diff --git a/package.json b/package.json index 8f67eba9..b8934cf4 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,6 @@ "@embroider/webpack": "^3.2.1", "@glimmer/component": "^1.1.2", "@glimmer/tracking": "^1.1.2", - "@glint/core": "^0.9.7", - "@glint/environment-ember-loose": "^0.9.7", "@percy/cli": "^1.28.7", "@percy/ember": "^4.2.0", "@tsconfig/ember": "^1.0.1", @@ -104,6 +102,7 @@ "ember-source": "~4.12.0", "ember-styleguide": "^11.0.3", "ember-svg-jar": "^2.4.2", + "ember-template-imports": "^4.3.0", "ember-template-lint": "^7.9.3", "ember-test-selectors": "^6.0.0", "ember-tether": "3.1.0", @@ -132,6 +131,7 @@ "normalize.css": "^8.0.1", "prember": "^2.1.0", "prettier": "^2.8.7", + "prettier-plugin-ember-template-tag": "^2.1.0", "qunit": "^2.19.4", "qunit-dom": "^2.0.0", "sanitize-html": "^2.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8e0b16a0..f6da8e13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,7 +25,7 @@ importers: version: 3.1.1 '@ember/test-helpers': specifier: ^2.9.3 - version: 2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + version: 2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@embroider/compat': specifier: ^3.4.3 version: 3.9.1(@embroider/core@3.5.7) @@ -44,12 +44,6 @@ importers: '@glimmer/tracking': specifier: ^1.1.2 version: 1.1.2 - '@glint/core': - specifier: ^0.9.7 - version: 0.9.7(typescript@4.9.5) - '@glint/environment-ember-loose': - specifier: ^0.9.7 - version: 0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)) '@percy/cli': specifier: ^1.28.7 version: 1.31.1(typescript@4.9.5) @@ -64,7 +58,7 @@ importers: version: 4.0.11(@babel/core@7.28.3) '@types/ember-qunit': specifier: ^5.0.2 - version: 5.0.2(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + version: 5.0.2(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@types/ember-resolver': specifier: ^5.0.13 version: 5.0.13(@babel/core@7.28.3) @@ -100,7 +94,7 @@ importers: version: 3.0.15 '@types/ember__test-helpers': specifier: ^2.8.2 - version: 2.9.3(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + version: 2.9.3(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@types/ember__utils': specifier: ^4.0.2 version: 4.0.7(@babel/core@7.28.3) @@ -118,13 +112,13 @@ importers: version: 8.2.2 ember-a11y-testing: specifier: ^5.2.1 - version: 5.2.1(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(qunit@2.24.1)(webpack@5.101.2) + version: 5.2.1(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(qunit@2.24.1)(webpack@5.101.2) ember-auto-import: specifier: ^2.10.0 version: 2.10.0(webpack@5.101.2) ember-basic-dropdown: specifier: ^8.6.0 - version: 8.6.2(@babel/core@7.28.3)(@ember/string@3.1.1)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + version: 8.6.2(@babel/core@7.28.3)(@ember/string@3.1.1)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) ember-cli: specifier: ~4.12.3 version: 4.12.3(@types/node@24.3.0)(handlebars@4.7.8)(underscore@1.13.7) @@ -142,7 +136,7 @@ importers: version: 1.1.0 ember-cli-clipboard: specifier: ^1.1.0 - version: 1.3.0(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(webpack@5.101.2) + version: 1.3.0(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(webpack@5.101.2) ember-cli-dependency-checker: specifier: ^3.3.1 version: 3.3.3(ember-cli@4.12.3(@types/node@24.3.0)(handlebars@4.7.8)(underscore@1.13.7)) @@ -169,7 +163,7 @@ importers: version: 2.1.0 ember-cli-meta-tags: specifier: ^7.0.0 - version: 7.0.0(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + version: 7.0.0(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) ember-cli-showdown: specifier: ^9.0.1 version: 9.0.1(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))(webpack@5.101.2) @@ -208,10 +202,10 @@ importers: version: 7.0.0 ember-power-select: specifier: ^8.7.0 - version: 8.7.3(ntmyafp5xn5yhabf7d2rhsqmqy) + version: 8.7.3(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-basic-dropdown@8.6.2(@babel/core@7.28.3)(@ember/string@3.1.1)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(ember-concurrency@4.0.6(@babel/core@7.28.3))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) ember-qunit: specifier: ^6.2.0 - version: 6.2.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))(qunit@2.24.1)(webpack@5.101.2) + version: 6.2.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))(qunit@2.24.1)(webpack@5.101.2) ember-resolver: specifier: ^10.0.0 version: 10.1.1(@ember/string@3.1.1)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) @@ -236,6 +230,9 @@ importers: ember-svg-jar: specifier: ^2.4.2 version: 2.6.3 + ember-template-imports: + specifier: ^4.3.0 + version: 4.3.0 ember-template-lint: specifier: ^7.9.3 version: 7.9.3 @@ -320,6 +317,9 @@ importers: prettier: specifier: ^2.8.7 version: 2.8.8 + prettier-plugin-ember-template-tag: + specifier: ^2.1.0 + version: 2.1.0(prettier@2.8.8) qunit: specifier: ^2.19.4 version: 2.24.1 @@ -1305,37 +1305,6 @@ packages: '@glimmer/wire-format@0.94.8': resolution: {integrity: sha512-A+Cp5m6vZMAEu0Kg/YwU2dJZXyYxVJs2zI57d3CP6NctmX7FsT8WjViiRUmt5abVmMmRH5b8BUovqY6GSMAdrw==} - '@glint/config@0.9.7': - resolution: {integrity: sha512-XkWIZ3fuOlcofUJUaJmRS57mVVNi+Af2HtrZkBXEOCh4+BNz2wclxv2WKvkhmtvLhEUOhHb5eU3gwI58SuwgXQ==} - deprecated: Now a part of @glint/core - - '@glint/core@0.9.7': - resolution: {integrity: sha512-1YLHNRnuYI1dDUKWq/ue4JqiBt6TVR8e7VQJWy37CKB0tiBhWw/FPvr7/S7XbUxCt6KHO0Kl0x/eqLunu3WiQw==} - hasBin: true - peerDependencies: - typescript: ^4.7.0 - - '@glint/environment-ember-loose@0.9.7': - resolution: {integrity: sha512-MlCGZtB1Clp4vQWIm2APSnCm7nL8wVhFMOhVy2qzpV0nfLyg3pcN9CQHNpfdJvCydBB72cA4/ahPj7VEFL6xsg==} - peerDependencies: - '@glimmer/component': ^1.1.2 - ember-cli-htmlbars: ^6.0.1 - ember-modifier: ^3.2.7 - peerDependenciesMeta: - ember-cli-htmlbars: - optional: true - ember-modifier: - optional: true - - '@glint/template@0.9.7': - resolution: {integrity: sha512-MCp8GxQDIbH8ZzfNxHhVqCSKlydBgQfBEwJLDpN81lgFRCldSDPueIbk8sz3EhpGiZJVdNQbpGeYIDsUXe1ocg==} - peerDependencies: - '@glimmer/component': ^1.1.2 - - '@glint/transform@0.9.7': - resolution: {integrity: sha512-vd0th+Zo4cirYepASpC0fE0ZCqAcI9Y6qHYE0xi4+MY05bFRxBr7Q9ggDoWk+slynTyUrVgzCCeazAYOlZsYcg==} - deprecated: Now a part of @glint/core - '@handlebars/parser@2.0.0': resolution: {integrity: sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==} @@ -3114,6 +3083,9 @@ packages: content-tag@3.1.3: resolution: {integrity: sha512-4Kiv9mEroxuMXfWUNUHcljVJgxThCNk7eEswdHMXdzJnkBBaYDqDwzHkoh3F74JJhfU3taJOsgpR6oEGIDg17g==} + content-tag@4.0.0: + resolution: {integrity: sha512-qqJiY9nueYAI396MOmfOk+w/0KL6ERKxANQcSKcR0CrNTc38yT//b73l+WHr9brZx57bFHNaW7a/6Yll0bn95w==} + content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -3946,6 +3918,10 @@ packages: resolution: {integrity: sha512-+hgqDIVmtyHcBWOKfRlvxWvTWGJ8Ly4t9NjGsRGSu8qfP/w/TP6IgYJNUgN9MU9ZkU24Sg02RzIkfuXvIhoYJg==} engines: {node: 12.* || 14.* || >= 16} + ember-template-imports@4.3.0: + resolution: {integrity: sha512-jZ5D6KLKU8up/AynZltmKh4lkXBPgTGSPgomprI/55XvIVqn42UNUpEz7ra/mO3QiGODDZOUesbggPe49i38sQ==} + engines: {node: 16.* || >= 18} + ember-template-lint@7.9.3: resolution: {integrity: sha512-iqC4rv/oVlXViGuf7hlOA/bC550ZqacZKAc8WvQV0ueeCtIYPkYYK+Tc7FwpM8qGx3jiwu/ZsTuNfPInI5pL7Q==} engines: {node: ^18.18.0 || >= 20.9.0} @@ -6524,6 +6500,12 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} + prettier-plugin-ember-template-tag@2.1.0: + resolution: {integrity: sha512-Ium+m2zHSZKzRFt1Shn+sv8j1BzfFWP3E0tZeKTKP1U7v/tMyLuQNBRyRCJ7REdKc9bWkIJG/hCSf0CKqCVU1w==} + engines: {node: 18.* || >= 20} + peerDependencies: + prettier: '>= 3.0.0' + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -6591,7 +6573,6 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qs@6.13.0: @@ -7816,26 +7797,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vscode-jsonrpc@8.1.0: - resolution: {integrity: sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==} - engines: {node: '>=14.0.0'} - - vscode-languageserver-protocol@3.17.3: - resolution: {integrity: sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==} - - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - - vscode-languageserver-types@3.17.3: - resolution: {integrity: sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==} - - vscode-languageserver@8.1.0: - resolution: {integrity: sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==} - hasBin: true - - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} deprecated: Use your platform's native performance.now() and performance.timeOrigin. @@ -9300,11 +9261,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))': + '@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))': dependencies: '@ember/test-waiters': 3.1.0 '@embroider/macros': 1.18.1 - '@embroider/util': 1.13.4(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@embroider/util': 1.13.4(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 @@ -9529,14 +9490,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@embroider/util@1.13.4(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))': + '@embroider/util@1.13.4(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))': dependencies: '@embroider/macros': 1.18.1 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 ember-source: 4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2) - optionalDependencies: - '@glint/environment-ember-loose': 0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)) transitivePeerDependencies: - supports-color @@ -9671,51 +9630,6 @@ snapshots: dependencies: '@glimmer/interfaces': 0.94.6 - '@glint/config@0.9.7': - dependencies: - escape-string-regexp: 4.0.0 - minimatch: 3.1.2 - resolve: 1.22.10 - silent-error: 1.1.1 - transitivePeerDependencies: - - supports-color - - '@glint/core@0.9.7(typescript@4.9.5)': - dependencies: - '@glint/config': 0.9.7 - '@glint/transform': 0.9.7 - resolve: 1.22.10 - typescript: 4.9.5 - uuid: 8.3.2 - vscode-languageserver: 8.1.0 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - yargs: 17.7.2 - transitivePeerDependencies: - - supports-color - - '@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3))': - dependencies: - '@glimmer/component': 1.1.2(@babel/core@7.28.3) - '@glint/config': 0.9.7 - '@glint/template': 0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3)) - optionalDependencies: - ember-cli-htmlbars: 6.3.0 - ember-modifier: 4.2.2(@babel/core@7.28.3) - transitivePeerDependencies: - - supports-color - - '@glint/template@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))': - dependencies: - '@glimmer/component': 1.1.2(@babel/core@7.28.3) - - '@glint/transform@0.9.7': - dependencies: - '@glimmer/syntax': 0.84.3 - '@glint/config': 0.9.7 - transitivePeerDependencies: - - supports-color - '@handlebars/parser@2.0.0': {} '@handlebars/parser@2.2.1': {} @@ -10070,11 +9984,11 @@ snapshots: dependencies: '@types/node': 24.3.0 - '@types/ember-qunit@5.0.2(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))': + '@types/ember-qunit@5.0.2(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))': dependencies: '@types/ember-resolver': 5.0.13(@babel/core@7.28.3) '@types/ember__test': 4.0.6(@babel/core@7.28.3) - '@types/ember__test-helpers': 2.9.3(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@types/ember__test-helpers': 2.9.3(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@types/qunit': 2.19.13 transitivePeerDependencies: - '@babel/core' @@ -10282,9 +10196,9 @@ snapshots: '@types/ember__template@4.0.7': {} - '@types/ember__test-helpers@2.9.3(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))': + '@types/ember__test-helpers@2.9.3(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))': dependencies: - '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) transitivePeerDependencies: - '@babel/core' - '@glint/environment-ember-loose' @@ -10386,7 +10300,7 @@ snapshots: '@types/minimatch@6.0.0': dependencies: - minimatch: 7.4.6 + minimatch: 8.0.4 '@types/minimist@1.2.5': {} @@ -12238,6 +12152,8 @@ snapshots: content-tag@3.1.3: {} + content-tag@4.0.0: {} + content-type@1.0.5: {} continuable-cache@0.3.1: {} @@ -12653,9 +12569,9 @@ snapshots: electron-to-chromium@1.5.203: {} - ember-a11y-testing@5.2.1(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(qunit@2.24.1)(webpack@5.101.2): + ember-a11y-testing@5.2.1(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(qunit@2.24.1)(webpack@5.101.2): dependencies: - '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@ember/test-waiters': 3.1.0 '@scalvert/ember-setup-middleware-reporter': 0.1.1 axe-core: 4.10.3 @@ -12751,16 +12667,16 @@ snapshots: - supports-color - webpack - ember-basic-dropdown@8.6.2(@babel/core@7.28.3)(@ember/string@3.1.1)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)): + ember-basic-dropdown@8.6.2(@babel/core@7.28.3)(@ember/string@3.1.1)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)): dependencies: - '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@embroider/addon-shim': 1.10.0 '@embroider/macros': 1.18.1 - '@embroider/util': 1.13.4(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@embroider/util': 1.13.4(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@glimmer/component': 1.1.2(@babel/core@7.28.3) decorator-transforms: 2.3.0(@babel/core@7.28.3) ember-element-helper: 0.8.8 - ember-lifeline: 7.0.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))) + ember-lifeline: 7.0.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))) ember-modifier: 4.2.2(@babel/core@7.28.3) ember-style-modifier: 4.4.0(@babel/core@7.28.3)(@ember/string@3.1.1)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) ember-truth-helpers: 4.0.3(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) @@ -12886,9 +12802,9 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-clipboard@1.3.0(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(webpack@5.101.2): + ember-cli-clipboard@1.3.0(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(webpack@5.101.2): dependencies: - '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@embroider/macros': 1.18.1 clipboard: 2.0.11 ember-arg-types: 1.1.0(webpack@5.101.2) @@ -13042,13 +12958,13 @@ snapshots: ember-cli-lodash-subset@2.0.1: {} - ember-cli-meta-tags@7.0.0(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)): + ember-cli-meta-tags@7.0.0(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)): dependencies: '@glimmer/component': 1.1.2(@babel/core@7.28.3) ember-cli-babel: 7.26.11 ember-cli-head: 2.0.0 ember-cli-htmlbars: 6.3.0 - ember-element-helper: 0.6.1(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + ember-element-helper: 0.6.1(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) transitivePeerDependencies: - '@babel/core' - '@glint/environment-ember-loose' @@ -13479,9 +13395,9 @@ snapshots: - '@babel/core' - supports-color - ember-element-helper@0.6.1(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)): + ember-element-helper@0.6.1(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)): dependencies: - '@embroider/util': 1.13.4(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@embroider/util': 1.13.4(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-source: 4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2) @@ -13544,11 +13460,11 @@ snapshots: transitivePeerDependencies: - supports-color - ember-lifeline@7.0.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))): + ember-lifeline@7.0.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))): dependencies: '@embroider/addon-shim': 1.10.0 optionalDependencies: - '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) transitivePeerDependencies: - supports-color @@ -13605,17 +13521,17 @@ snapshots: transitivePeerDependencies: - supports-color - ember-power-select@8.7.3(ntmyafp5xn5yhabf7d2rhsqmqy): + ember-power-select@8.7.3(@babel/core@7.28.3)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-basic-dropdown@8.6.2(@babel/core@7.28.3)(@ember/string@3.1.1)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(ember-concurrency@4.0.6(@babel/core@7.28.3))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)): dependencies: - '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@embroider/addon-shim': 1.10.0 - '@embroider/util': 1.13.4(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@embroider/util': 1.13.4(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) '@glimmer/component': 1.1.2(@babel/core@7.28.3) decorator-transforms: 2.3.0(@babel/core@7.28.3) ember-assign-helper: 0.5.1 - ember-basic-dropdown: 8.6.2(@babel/core@7.28.3)(@ember/string@3.1.1)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + ember-basic-dropdown: 8.6.2(@babel/core@7.28.3)(@ember/string@3.1.1)(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) ember-concurrency: 4.0.6(@babel/core@7.28.3) - ember-lifeline: 7.0.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))) + ember-lifeline: 7.0.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))) ember-modifier: 4.2.2(@babel/core@7.28.3) ember-truth-helpers: 4.0.3(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) transitivePeerDependencies: @@ -13625,9 +13541,9 @@ snapshots: - ember-source - supports-color - ember-qunit@6.2.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))(qunit@2.24.1)(webpack@5.101.2): + ember-qunit@6.2.0(@ember/test-helpers@2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))(qunit@2.24.1)(webpack@5.101.2): dependencies: - '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2(@babel/core@7.28.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.3)))(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) + '@ember/test-helpers': 2.9.6(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 @@ -13787,6 +13703,14 @@ snapshots: - '@glint/template' - supports-color + ember-template-imports@4.3.0: + dependencies: + broccoli-stew: 3.0.0 + content-tag: 3.1.3 + ember-cli-version-checker: 5.1.2 + transitivePeerDependencies: + - supports-color + ember-template-lint@7.9.3: dependencies: '@lint-todo/utils': 13.1.1 @@ -16963,6 +16887,14 @@ snapshots: dependencies: fast-diff: 1.3.0 + prettier-plugin-ember-template-tag@2.1.0(prettier@2.8.8): + dependencies: + '@babel/core': 7.28.3 + content-tag: 4.0.0 + prettier: 2.8.8 + transitivePeerDependencies: + - supports-color + prettier@2.8.8: {} printf@0.6.1: {} @@ -18539,23 +18471,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vscode-jsonrpc@8.1.0: {} - - vscode-languageserver-protocol@3.17.3: - dependencies: - vscode-jsonrpc: 8.1.0 - vscode-languageserver-types: 3.17.3 - - vscode-languageserver-textdocument@1.0.12: {} - - vscode-languageserver-types@3.17.3: {} - - vscode-languageserver@8.1.0: - dependencies: - vscode-languageserver-protocol: 3.17.3 - - vscode-uri@3.1.0: {} - w3c-hr-time@1.0.2: dependencies: browser-process-hrtime: 1.0.0 From 844dd8bbc9b7871aecabd7e0c694c82bac74ad2b Mon Sep 17 00:00:00 2001 From: Katie Gengler Date: Fri, 5 Sep 2025 16:51:00 -0400 Subject: [PATCH 05/12] Remove unused query params --- app/controllers/class.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/controllers/class.js b/app/controllers/class.js index 17751523..5c61e111 100644 --- a/app/controllers/class.js +++ b/app/controllers/class.js @@ -1,5 +1,3 @@ import Controller from '@ember/controller'; -export default class ClassController extends Controller { - queryParams = ['anchor', 'type']; -} +export default class ClassController extends Controller {} From 6425dabfdca724252530e3cea60fee20fc177097 Mon Sep 17 00:00:00 2001 From: Katie Gengler Date: Fri, 5 Sep 2025 16:51:11 -0400 Subject: [PATCH 06/12] Add gjs to prettier --- .prettierrc.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.prettierrc.js b/.prettierrc.js index e5f7b6d1..c7dd12b3 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,9 +1,10 @@ 'use strict'; module.exports = { + plugins: ['prettier-plugin-ember-template-tag'], overrides: [ { - files: '*.{js,ts}', + files: '*.{js,ts,gjs,gts}', options: { singleQuote: true, }, From e4241157ad470fc73f7f946b3ea4b78828e094ae Mon Sep 17 00:00:00 2001 From: Katie Gengler Date: Fri, 5 Sep 2025 16:51:40 -0400 Subject: [PATCH 07/12] Refactor search service to more modern Ember --- app/services/search.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/app/services/search.js b/app/services/search.js index 48b97446..45258a0a 100644 --- a/app/services/search.js +++ b/app/services/search.js @@ -1,23 +1,22 @@ import Service, { inject as service } from '@ember/service'; import { restartableTask } from 'ember-concurrency'; -import { set } from '@ember/object'; -import { A as emberArray } from '@ember/array'; -// eslint-disable-next-line ember/no-computed-properties-in-native-classes -import { alias } from '@ember/object/computed'; +import { tracked } from '@glimmer/tracking'; export default class SearchService extends Service { @service('algolia') _algoliaService; - @service('project') _projectService; - - @alias('_projectService.version') _projectVersion; + @service('project') projectService; /** @type {?string} */ - _lastQueriedProjectVersion = null; + #lastQueriedProjectVersion = null; + + @tracked results = []; - results = emberArray(); + get projectVersion() { + return this.projectService.version; + } search = restartableTask(async (query) => { - const projectVersion = this._projectVersion; + const projectVersion = this.projectVersion; const params = { hitsPerPage: 15, @@ -35,9 +34,10 @@ export default class SearchService extends Service { query, }; - this._lastQueriedProjectVersion = projectVersion; + this.#lastQueriedProjectVersion = projectVersion; - return set(this, 'results', await this.doSearch(searchObj, params)); + this.results = await this.doSearch(searchObj, params); + return this.results; }); doSearch(searchObj, params) { @@ -54,12 +54,12 @@ export default class SearchService extends Service { */ hasStaleResults() { return ( - this._lastQueriedProjectVersion !== null && - this._projectVersion !== this._lastQueriedProjectVersion + this.#lastQueriedProjectVersion !== null && + this.projectVersion !== this.#lastQueriedProjectVersion ); } clearResults() { - set(this, 'results', emberArray()); + this.results = []; } } From e6b2ffaba9b2dd7bd79d59d73be0249d53ac4019 Mon Sep 17 00:00:00 2001 From: Katie Gengler Date: Wed, 10 Sep 2025 21:42:42 -0400 Subject: [PATCH 08/12] Support gjs with linting, run prettier outside eslint --- .eslintrc.js | 45 +++++++++++------ .prettierignore | 12 +++++ package.json | 12 +++-- pnpm-lock.yaml | 132 ++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 178 insertions(+), 23 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 5a4e92c8..7608c97c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -13,24 +13,12 @@ module.exports = { ], }, }, - plugins: ['ember'], - extends: [ - 'eslint:recommended', - 'plugin:ember/recommended', - 'plugin:prettier/recommended', - ], + extends: ['eslint:recommended'], env: { browser: true, }, rules: { 'no-console': 'off', - 'ember/no-new-mixins': 'off', - 'ember/no-mixins': 'off', - 'ember/require-tagless-components': 'off', - 'ember/no-classic-classes': 'off', - 'ember/no-get': 'off', - 'ember/no-classic-components': 'off', - 'ember/no-private-routing-service': 'off', }, overrides: [ // node files @@ -62,8 +50,35 @@ module.exports = { extends: ['plugin:n/recommended'], }, { - // test files - files: ['tests/**/*-test.{js,ts}'], + files: ['**/*.{js,ts}'], + plugins: ['ember'], + parser: '@typescript-eslint/parser', + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', // or other configuration + ], + rules: { + 'ember/no-new-mixins': 'off', + 'ember/no-mixins': 'off', + 'ember/require-tagless-components': 'off', + 'ember/no-classic-classes': 'off', + 'ember/no-get': 'off', + 'ember/no-classic-components': 'off', + 'ember/no-private-routing-service': 'off', + }, + }, + { + files: ['**/*.gjs'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:ember/recommended-gjs', + ], + }, + { + files: ['tests/**/*.{js,ts,gjs,gts}'], extends: ['plugin:qunit/recommended'], }, ], diff --git a/.prettierignore b/.prettierignore index 4178fd57..1492509d 100644 --- a/.prettierignore +++ b/.prettierignore @@ -23,3 +23,15 @@ /package.json.ember-try /package-lock.json.ember-try /yarn.lock.ember-try + +# Misc files +*.md +pnpm-lock.yaml +jsconfig.json + +# api docs data +/ember-api-docs-data/ + + +# hbs -- no point to prettier before moving to