From 97c1a13cb7de7cffb6ac18aa2ead827b7409e8a2 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Wed, 28 May 2025 21:35:24 -0400 Subject: [PATCH 01/23] Update to Ember 6.4 --- .eslintignore | 27 - .eslintrc.js | 101 -- .gitignore | 7 - .prettierignore | 3 + .prettierrc.js | 19 +- .stylelintignore | 3 - app/app.js | 5 + app/deprecation-workflow.js | 24 + config/ember-cli-update.json | 2 +- eslint.config.mjs | 116 +++ package.json | 62 +- pnpm-lock.yaml | 1853 ++++++++++++++++------------------ tests/test-helper.ts | 9 +- 13 files changed, 1044 insertions(+), 1187 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.js create mode 100644 app/deprecation-workflow.js create mode 100644 eslint.config.mjs diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index d7a70bae7..000000000 --- a/.eslintignore +++ /dev/null @@ -1,27 +0,0 @@ -# unconventional js -/blueprints/*/files/ - -# compiled output -/declarations/ -/dist/ -/electron-out/ - -# misc -/coverage/ -!.* -.*/ - -# ember-try -/.node_modules.ember-try/ - -# ember-electron -/electron-app/node_modules/ -/electron-app/out/ -/electron-app/ember-dist/ -/electron-app/ember-test/ - -# Sentry -/electron-app/sentry-symbols.js - -# Types -/types/ diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 3a4d2783d..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; - -module.exports = { - root: true, - parser: '@babel/eslint-parser', - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - requireConfigFile: false, - babelOptions: { - plugins: [ - ['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }], - ], - }, - }, - plugins: ['ember'], - extends: [ - 'eslint:recommended', - 'plugin:ember/recommended', - 'plugin:prettier/recommended', - ], - env: { - browser: true, - }, - globals: { - requireNode: false, - }, - rules: { - 'require-yield': 'off', - 'sort-imports': [ - 'error', - { allowSeparatedGroups: true, ignoreDeclarationSort: true }, - ], - 'ember/no-array-prototype-extensions': 'off', - }, - overrides: [ - // node files - { - files: [ - './.eslintrc.js', - './.prettierrc.js', - './.stylelintrc.js', - './.template-lintrc.js', - './ember-cli-build.js', - './tailwind.config.js', - './testem.js', - './testem-electron.js', - './blueprints/*/index.js', - './config/**/*.js', - './electron-app/**/*.js', - './lib/*/index.js', - './server/**/*.js', - ], - parserOptions: { - sourceType: 'script', - }, - env: { - browser: false, - node: true, - }, - globals: { - document: false, - }, - extends: ['plugin:n/recommended'], - rules: { - '@typescript-eslint/no-var-requires': 'off', - // this can be removed once the following is fixed - // https://github.com/mysticatea/eslint-plugin-node/issues/77 - 'no-console': 'off', - 'n/no-unpublished-require': 'off', - 'n/no-extraneous-require': [ - 'error', - { - allowModules: ['ember-electron', 'electron'], - }, - ], - 'n/no-missing-require': [ - 'error', - { - allowModules: ['electron'], - }, - ], - }, - }, - // Typescript files - { - parser: '@typescript-eslint/parser', - files: ['app/**/*.{gts,ts}', 'tests/**/*.ts'], - plugins: ['@typescript-eslint'], - extends: ['plugin:@typescript-eslint/recommended'], - rules: { - 'prefer-rest-params': 'off', - }, - }, - { - // test files - files: ['tests/**/*-test.{js,ts}'], - extends: ['plugin:qunit/recommended'], - }, - ], -}; diff --git a/.gitignore b/.gitignore index 1421e0853..e09b5781b 100644 --- a/.gitignore +++ b/.gitignore @@ -19,13 +19,6 @@ /testem.log /yarn-error.log -# ember-try -/.node_modules.ember-try/ -/npm-shrinkwrap.json.ember-try -/package.json.ember-try -/package-lock.json.ember-try -/yarn.lock.ember-try - # broccoli-debug /DEBUG/ diff --git a/.prettierignore b/.prettierignore index ae3204424..d36183eaf 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,6 +8,9 @@ /coverage/ !.* .*/ +/pnpm-lock.yaml +ember-cli-update.json +*.html # ember-try /.node_modules.ember-try/ diff --git a/.prettierrc.js b/.prettierrc.js index a98259d7b..bf194ba80 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -47,22 +47,9 @@ module.exports = { importOrderSortSpecifiers, overrides: [ { - files: ['**/*.hbs'], - options: { - singleQuote: false, - }, - }, - { - files: '*.{js,ts,gjs,gts}', - options: { - singleQuote: true, - }, - }, - { - files: '*.{yaml,yml}', - options: { - singleQuote: true, - }, + files: '*.{js,gjs,ts,gts,mjs,mts,cjs,cts}', + options: { singleQuote: true, templateSingleQuote: false }, }, + { files: '*.{yaml,yml}', options: { singleQuote: true } }, ], }; diff --git a/.stylelintignore b/.stylelintignore index a0cf71cbd..fc178a0b9 100644 --- a/.stylelintignore +++ b/.stylelintignore @@ -3,6 +3,3 @@ # compiled output /dist/ - -# addons -/.node_modules.ember-try/ diff --git a/app/app.js b/app/app.js index 37777555c..0bbe0850d 100644 --- a/app/app.js +++ b/app/app.js @@ -5,6 +5,11 @@ import loadInitializers from 'ember-load-initializers'; import Resolver from 'ember-resolver'; import config from 'swach/config/environment'; +import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros'; + +if (macroCondition(isDevelopingApp())) { + importSync('./deprecation-workflow'); +} InitSentryForEmber(); diff --git a/app/deprecation-workflow.js b/app/deprecation-workflow.js new file mode 100644 index 000000000..274a689db --- /dev/null +++ b/app/deprecation-workflow.js @@ -0,0 +1,24 @@ +import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow'; + +/** + * Docs: https://github.com/ember-cli/ember-cli-deprecation-workflow + */ +setupDeprecationWorkflow({ + /** + false by default, but if a developer / team wants to be more aggressive about being proactive with + handling their deprecations, this should be set to "true" + */ + throwOnUnhandled: false, + workflow: [ + /* ... handlers ... */ + /* to generate this list, run your app for a while (or run the test suite), + * and then run in the browser console: + * + * deprecationWorkflow.flushDeprecations() + * + * And copy the handlers here + */ + /* example: */ + /* { handler: 'silence', matchId: 'template-action' }, */ + ], +}); diff --git a/config/ember-cli-update.json b/config/ember-cli-update.json index 89b929b55..3f53bafd2 100644 --- a/config/ember-cli-update.json +++ b/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.11.0", + "version": "6.4.0", "blueprints": [ { "name": "app", diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..f6c3298fd --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,116 @@ +/** + * Debugging: + * https://eslint.org/docs/latest/use/configure/debug + * ---------------------------------------------------- + * + * Print a file's calculated configuration + * + * npx eslint --print-config path/to/file.js + * + * Inspecting the config + * + * npx eslint --inspect-config + * + */ +import babelParser from "@babel/eslint-parser"; +import js from "@eslint/js"; +import eslintConfigPrettier from "eslint-config-prettier"; +import ember from "eslint-plugin-ember/recommended"; +import n from "eslint-plugin-n"; +import qunit from "eslint-plugin-qunit"; +import globals from "globals"; + +const esmParserOptions = { + ecmaFeatures: { modules: true }, + ecmaVersion: "latest", + requireConfigFile: false, + babelOptions: { + plugins: [ + ["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }], + ], + }, +}; + +export default [ + js.configs.recommended, + eslintConfigPrettier, + ember.configs.base, + ember.configs.gjs, + /** + * Ignores must be in their own object + * https://eslint.org/docs/latest/use/configure/ignore + */ + { + ignores: [ + "declarations/", + + // ember-electron + "/electron-app/node_modules/", + "/electron-app/out/", + "/electron-app/ember-dist/", + "/electron-app/ember-test/", + "electron-out/", + + // Sentry + "electron-app/sentry-symbols.js", + + "dist/", + "node_modules/", + "coverage/", + "!**/.*", + ], + }, + /** + * https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options + */ + { linterOptions: { reportUnusedDisableDirectives: "error" } }, + { files: ["**/*.js"], languageOptions: { parser: babelParser } }, + { + files: ["**/*.{js,gjs}"], + languageOptions: { + parserOptions: esmParserOptions, + globals: { ...globals.browser }, + }, + }, + { files: ["tests/**/*-test.{js,gjs}"], plugins: { qunit } }, + /** + * CJS node files + */ + { + files: [ + "**/*.cjs", + "config/**/*.js", + "electron-app/**/*.js", + "tests/dummy/config/**/*.js", + "testem.js", + "testem*.js", + "index.js", + ".prettierrc.js", + ".stylelintrc.js", + ".tailwind.config.js", + ".template-lintrc.js", + "ember-cli-build.js", + ], + plugins: { n }, + + languageOptions: { + sourceType: "script", + ecmaVersion: "latest", + globals: { ...globals.node }, + }, + }, + /** + * ESM node files + */ + { + files: ["**/*.mjs"], + plugins: { n }, + + languageOptions: { + sourceType: "module", + ecmaVersion: "latest", + parserOptions: esmParserOptions, + globals: { ...globals.node }, + }, + }, +]; diff --git a/package.json b/package.json index 61eb793ff..d9d481ead 100644 --- a/package.json +++ b/package.json @@ -16,24 +16,26 @@ }, "scripts": { "build": "ember build --environment=production", - "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"", + "format": "prettier . --cache --write", + "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto", "lint:css": "stylelint \"**/*.scss\"", "lint:css:fix": "concurrently \"pnpm:lint:css -- --fix\"", - "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"", + "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm format", + "lint:format": "prettier . --cache --check", "lint:hbs": "ember-template-lint .", "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", "make": "ember electron:make", "start": "ember serve", - "test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\"", + "test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\" --prefixColors auto", "test:electron": "ember electron:test", "test:ember": "ember test" }, "devDependencies": { - "@babel/core": "^7.26.0", - "@babel/eslint-parser": "^7.25.9", - "@babel/plugin-proposal-decorators": "^7.25.9", + "@babel/core": "^7.27.1", + "@babel/eslint-parser": "^7.27.1", + "@babel/plugin-proposal-decorators": "^7.27.1", "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-transform-typescript": "^7.26.3", "@babel/preset-env": "^7.26.0", @@ -41,13 +43,14 @@ "@ctrl/tinycolor": "^4.1.0", "@ember/optional-features": "^2.2.0", "@ember/render-modifiers": "^2.1.0", - "@ember/string": "^3.1.1", - "@ember/test-helpers": "^3.3.1", + "@ember/test-helpers": "^5.2.1", "@embroider/compat": "^3.7.0", "@embroider/core": "^3.4.19", + "@embroider/macros": "^1.17.2", "@embroider/webpack": "^3.2.3", + "@eslint/js": "^9.25.1", "@gavant/glint-template-types": "^0.4.0", - "@glimmer/component": "^1.1.2", + "@glimmer/component": "^2.0.0", "@glimmer/tracking": "^1.1.2", "@glint/core": "^1.5.0", "@glint/environment-ember-loose": "^1.5.0", @@ -75,18 +78,18 @@ "babel-preset-env": "^1.7.0", "broccoli-asset-rev": "^3.0.0", "color-name-list": "^10.28.1", - "concurrently": "^8.2.2", + "concurrently": "^9.1.2", "crypto-browserify": "^3.12.1", "ember-animated": "^2.0.1", "ember-animated-tools": "^2.0.0", "ember-auto-import": "^2.10.0", - "ember-cli": "5.11.0", - "ember-cli-app-version": "^6.0.1", + "ember-cli": "6.4.0", + "ember-cli-app-version": "^7.0.0", "ember-cli-babel": "^8.2.0", "ember-cli-clean-css": "^3.0.0", "ember-cli-content-security-policy": "^2.0.3", "ember-cli-dependency-checker": "^3.3.3", - "ember-cli-deprecation-workflow": "^2.2.0", + "ember-cli-deprecation-workflow": "^3.3.0", "ember-cli-flash": "^5.1.0", "ember-cli-htmlbars": "^6.3.0", "ember-cli-inject-live-reload": "^2.1.0", @@ -105,51 +108,50 @@ "ember-fetch": "^8.1.2", "ember-inflector": "^4.0.3", "ember-inputmask": "^2.0.0", - "ember-load-initializers": "^2.1.2", + "ember-load-initializers": "^3.0.1", "ember-local-storage": "2.0.6", "ember-math-helpers": "^4.0.0", "ember-modifier": "^4.2.0", "ember-orbit": "^0.17.3", - "ember-qunit": "^8.1.1", - "ember-resolver": "^11.0.1", + "ember-qunit": "^9.0.2", + "ember-resolver": "^13.1.0", "ember-set-body-class": "^1.0.2", "ember-set-helper": "^3.0.1", "ember-simple-auth": "^7.1.1", "ember-sinon-qunit": "^7.5.0", - "ember-source": "^5.12.0", + "ember-source": "^6.4.0", "ember-svg-jar": "^2.6.0", - "ember-template-imports": "^4.2.0", - "ember-template-lint": "^5.13.0", + "ember-template-imports": "^4.3.0", + "ember-template-lint": "^6.1.0", "ember-test-selectors": "^6.0.0", "ember-tooltips": "^3.6.0", "ember-truth-helpers": "^4.0.3", - "eslint": "^8.57.1", + "eslint": "^9.25.1", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-ember": "^11.12.0", - "eslint-plugin-n": "^17.15.0", - "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-ember": "^12.5.0", + "eslint-plugin-n": "^17.17.0", "eslint-plugin-qunit": "^8.1.2", + "globals": "^15.15.0", "indexeddb-export-import": "^2.1.5", "loader.js": "^4.7.0", "nearest-color": "^0.4.4", "postcss": "^8.4.49", "postcss-scss": "^4.0.9", - "prettier": "^3.4.2", - "prettier-plugin-ember-template-tag": "^2.0.2", - "qunit": "^2.22.0", + "prettier": "^3.5.3", + "prettier-plugin-ember-template-tag": "^2.0.5", + "qunit": "^2.24.1", "qunit-dom": "^3.4.0", "release-it": "^16.3.0", "sinon": "^17.0.1", "stream-browserify": "^3.0.0", - "stylelint": "^15.11.0", + "stylelint": "^16.19.1", "stylelint-config-standard-scss": "^11.1.0", - "stylelint-prettier": "^4.1.0", "tailwindcss": "^3.4.16", "throttle-debounce": "^5.0.2", - "tracked-built-ins": "^3.3.0", + "tracked-built-ins": "^3.4.0", "typescript": "^5.7.2", "wcag-contrast": "^3.0.0", - "webpack": "^5.97.1" + "webpack": "^5.99.7" }, "packageManager": "pnpm@10.11.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f5cc66d80..8baf420a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,13 +9,13 @@ importers: .: devDependencies: '@babel/core': - specifier: ^7.26.0 + specifier: ^7.27.1 version: 7.27.3(supports-color@8.1.1) '@babel/eslint-parser': - specifier: ^7.25.9 - version: 7.27.1(@babel/core@7.27.3)(eslint@8.57.1) + specifier: ^7.27.1 + version: 7.27.1(@babel/core@7.27.3)(eslint@9.27.0(jiti@2.4.2)) '@babel/plugin-proposal-decorators': - specifier: ^7.25.9 + specifier: ^7.27.1 version: 7.27.1(@babel/core@7.27.3) '@babel/plugin-proposal-object-rest-spread': specifier: ^7.20.7 @@ -37,28 +37,31 @@ importers: version: 2.2.0 '@ember/render-modifiers': specifier: ^2.1.0 - version: 2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) - '@ember/string': - specifier: ^3.1.1 - version: 3.1.1 + version: 2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@ember/test-helpers': - specifier: ^3.3.1 - version: 3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9) + specifier: ^5.2.1 + version: 5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2) '@embroider/compat': specifier: ^3.7.0 version: 3.9.0(@embroider/core@3.5.6(@glint/template@1.5.2))(@glint/template@1.5.2) '@embroider/core': specifier: ^3.4.19 version: 3.5.6(@glint/template@1.5.2) + '@embroider/macros': + specifier: ^1.17.2 + version: 1.18.0(@glint/template@1.5.2) '@embroider/webpack': specifier: ^3.2.3 version: 3.2.3(@embroider/core@3.5.6(@glint/template@1.5.2))(webpack@5.99.9) + '@eslint/js': + specifier: ^9.25.1 + version: 9.27.0 '@gavant/glint-template-types': specifier: ^0.4.0 - version: 0.4.0(ember-animated@2.2.0(@babel/core@7.27.3)(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.3))(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + version: 0.4.0(ember-animated@2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.3))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@glimmer/component': - specifier: ^1.1.2 - version: 1.1.2(@babel/core@7.27.3) + specifier: ^2.0.0 + version: 2.0.0 '@glimmer/tracking': specifier: ^1.1.2 version: 1.1.2 @@ -67,10 +70,10 @@ importers: version: 1.5.2(typescript@5.8.3) '@glint/environment-ember-loose': specifier: ^1.5.0 - version: 1.5.2(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)) + version: 1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)) '@glint/environment-ember-template-imports': specifier: ^1.5.0 - version: 1.5.2(@glint/environment-ember-loose@1.5.2(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)))(@glint/template@1.5.2)(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3)) + version: 1.5.2(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)))(@glint/template@1.5.2)(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3)) '@glint/template': specifier: ^1.5.0 version: 1.5.2 @@ -124,10 +127,10 @@ importers: version: 17.0.4 '@typescript-eslint/eslint-plugin': specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.8.3) + version: 6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) aws4fetch: specifier: ^1.0.20 version: 1.0.20 @@ -141,26 +144,26 @@ importers: specifier: ^10.28.1 version: 10.28.1 concurrently: - specifier: ^8.2.2 - version: 8.2.2 + specifier: ^9.1.2 + version: 9.1.2 crypto-browserify: specifier: ^3.12.1 version: 3.12.1 ember-animated: specifier: ^2.0.1 - version: 2.2.0(@babel/core@7.27.3)(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2) + version: 2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2) ember-animated-tools: specifier: ^2.0.0 - version: 2.0.0(@babel/core@7.27.3)(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2) + version: 2.0.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2) ember-auto-import: specifier: ^2.10.0 version: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli: - specifier: 5.11.0 - version: 5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) + specifier: 6.4.0 + version: 6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) ember-cli-app-version: - specifier: ^6.0.1 - version: 6.0.1(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + specifier: ^7.0.0 + version: 7.0.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-cli-babel: specifier: ^8.2.0 version: 8.2.0(@babel/core@7.27.3) @@ -172,10 +175,10 @@ importers: version: 2.0.3 ember-cli-dependency-checker: specifier: ^3.3.3 - version: 3.3.3(ember-cli@5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)) + version: 3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)) ember-cli-deprecation-workflow: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^3.3.0 + version: 3.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-cli-flash: specifier: ^5.1.0 version: 5.1.0(@ember/string@3.1.1)(@embroider/macros@1.18.0(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.3)) @@ -199,7 +202,7 @@ importers: version: 6.1.1(@babel/core@7.27.3) ember-cognito: specifier: ^2.0.0 - version: 2.0.0(@glint/template@1.5.2)(ember-simple-auth@7.1.3(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9) + version: 2.0.0(@glint/template@1.5.2)(ember-simple-auth@7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9) ember-composable-helpers: specifier: ^5.0.0 version: 5.0.0 @@ -214,7 +217,7 @@ importers: version: 3.0.1 ember-electron: specifier: ^7.0.0 - version: 7.0.0(ember-cli-dependency-checker@3.3.3(ember-cli@5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)))(ember-cli@5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7))(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(encoding@0.1.13) + version: 7.0.0(ember-cli-dependency-checker@3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)))(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(encoding@0.1.13) ember-element-helper: specifier: ^0.8.6 version: 0.8.8 @@ -226,31 +229,31 @@ importers: version: 8.1.2(encoding@0.1.13) ember-inflector: specifier: ^4.0.3 - version: 4.0.3(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + version: 4.0.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-inputmask: specifier: ^2.0.0 - version: 2.0.0(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9) + version: 2.0.0(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(webpack@5.99.9) ember-load-initializers: - specifier: ^2.1.2 - version: 2.1.2(@babel/core@7.27.3) + specifier: ^3.0.1 + version: 3.0.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-local-storage: specifier: 2.0.6 version: 2.0.6 ember-math-helpers: specifier: ^4.0.0 - version: 4.2.1(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + version: 4.2.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-modifier: specifier: ^4.2.0 version: 4.2.2(@babel/core@7.27.3) ember-orbit: specifier: ^0.17.3 - version: 0.17.3(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9) + version: 0.17.3(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(webpack@5.99.9) ember-qunit: - specifier: ^8.1.1 - version: 8.1.1(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(qunit@2.24.1) + specifier: ^9.0.2 + version: 9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1) ember-resolver: - specifier: ^11.0.1 - version: 11.0.1(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + specifier: ^13.1.0 + version: 13.1.1 ember-set-body-class: specifier: ^1.0.2 version: 1.0.2 @@ -259,22 +262,22 @@ importers: version: 3.0.1(@babel/core@7.27.3) ember-simple-auth: specifier: ^7.1.1 - version: 7.1.3(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + version: 7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-sinon-qunit: specifier: ^7.5.0 - version: 7.5.0(@babel/core@7.27.3)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(qunit@2.24.1)(sinon@17.0.2) + version: 7.5.0(@babel/core@7.27.3)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.1)(sinon@17.0.2) ember-source: - specifier: ^5.12.0 - version: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + specifier: ^6.4.0 + version: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) ember-svg-jar: specifier: ^2.6.0 version: 2.6.3(@glint/template@1.5.2) ember-template-imports: - specifier: ^4.2.0 + specifier: ^4.3.0 version: 4.3.0 ember-template-lint: - specifier: ^5.13.0 - version: 5.13.0 + specifier: ^6.1.0 + version: 6.1.0 ember-test-selectors: specifier: ^6.0.0 version: 6.0.0 @@ -283,25 +286,25 @@ importers: version: 3.6.0(@glint/template@1.5.2) ember-truth-helpers: specifier: ^4.0.3 - version: 4.0.3(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + version: 4.0.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) eslint: - specifier: ^8.57.1 - version: 8.57.1 + specifier: ^9.25.1 + version: 9.27.0(jiti@2.4.2) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.1) + version: 9.1.0(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-ember: - specifier: ^11.12.0 - version: 11.12.0(eslint@8.57.1) + specifier: ^12.5.0 + version: 12.5.0(@babel/core@7.27.3)(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-n: - specifier: ^17.15.0 - version: 17.18.0(eslint@8.57.1) - eslint-plugin-prettier: - specifier: ^5.2.1 - version: 5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.3) + specifier: ^17.17.0 + version: 17.18.0(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-qunit: specifier: ^8.1.2 - version: 8.1.2(eslint@8.57.1) + version: 8.1.2(eslint@9.27.0(jiti@2.4.2)) + globals: + specifier: ^15.15.0 + version: 15.15.0 indexeddb-export-import: specifier: ^2.1.5 version: 2.1.5 @@ -318,13 +321,13 @@ importers: specifier: ^4.0.9 version: 4.0.9(postcss@8.5.3) prettier: - specifier: ^3.4.2 + specifier: ^3.5.3 version: 3.5.3 prettier-plugin-ember-template-tag: - specifier: ^2.0.2 + specifier: ^2.0.5 version: 2.0.5(prettier@3.5.3) qunit: - specifier: ^2.22.0 + specifier: ^2.24.1 version: 2.24.1 qunit-dom: specifier: ^3.4.0 @@ -339,14 +342,11 @@ importers: specifier: ^3.0.0 version: 3.0.0 stylelint: - specifier: ^15.11.0 - version: 15.11.0(typescript@5.8.3) + specifier: ^16.19.1 + version: 16.19.1(typescript@5.8.3) stylelint-config-standard-scss: specifier: ^11.1.0 - version: 11.1.0(postcss@8.5.3)(stylelint@15.11.0(typescript@5.8.3)) - stylelint-prettier: - specifier: ^4.1.0 - version: 4.1.0(prettier@3.5.3)(stylelint@15.11.0(typescript@5.8.3)) + version: 11.1.0(postcss@8.5.3)(stylelint@16.19.1(typescript@5.8.3)) tailwindcss: specifier: ^3.4.16 version: 3.4.17 @@ -354,7 +354,7 @@ importers: specifier: ^5.0.2 version: 5.0.2 tracked-built-ins: - specifier: ^3.3.0 + specifier: ^3.4.0 version: 3.4.0(@babel/core@7.27.3) typescript: specifier: ^5.7.2 @@ -363,7 +363,7 @@ importers: specifier: ^3.0.0 version: 3.0.0 webpack: - specifier: ^5.97.1 + specifier: ^5.99.7 version: 5.99.9 electron-app: @@ -1255,11 +1255,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.4.5': - resolution: {integrity: sha512-RPB/YeGr4ZrFKNwfuQRlMf2lxoCUaU01MTw39/OFE/RiL8HDjtn68BwEPft1P7JN4akyEmjGWAMNldOV7o9V2g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.5.5': resolution: {integrity: sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w==} peerDependencies: @@ -1354,32 +1349,22 @@ packages: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-parser-algorithms@2.7.1': - resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-parser-algorithms@3.0.5': resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} peerDependencies: '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-tokenizer@2.4.1': - resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} - engines: {node: ^14 || ^16 || >=18} - '@csstools/css-tokenizer@3.0.4': resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} - '@csstools/media-query-list-parser@2.1.13': - resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==} - engines: {node: ^14 || ^16 || >=18} + '@csstools/media-query-list-parser@4.0.3': + resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} + engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.1 - '@csstools/css-tokenizer': ^2.4.1 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 '@csstools/postcss-sass@5.1.1': resolution: {integrity: sha512-La7bgTcM6YwPBLqlaXg7lMLry82iLv1a+S1RmgvHq2mH2Zd57L2anjZvJC8ACUHWc4M9fXws93dq6gaK0kZyAw==} @@ -1391,16 +1376,19 @@ packages: resolution: {integrity: sha512-pH4KCsbtBLLe7eqUrw8brcuFO8IZlN36JjdKlOublibVdAIPHCzEnpBWOVUXK5sCf+DpBi8ZtuWtjF0srybdeA==} engines: {node: '>=4.0.0'} - '@csstools/selector-specificity@3.1.1': - resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} - engines: {node: ^14 || ^16 || >=18} + '@csstools/selector-specificity@5.0.0': + resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} + engines: {node: '>=18'} peerDependencies: - postcss-selector-parser: ^6.0.13 + postcss-selector-parser: ^7.0.0 '@ctrl/tinycolor@4.1.0': resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} engines: {node: '>=14'} + '@dual-bundle/import-meta-resolve@4.1.0': + resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} + '@electron-forge/cli@7.8.1': resolution: {integrity: sha512-QI3EShutfq9Y+2TWWrPjm4JZM3eSAKzoQvRZdVhAfVpUbyJ8K23VqJShg3kGKlPf9BXHAGvE+8LyH5s2yDr1qA==} engines: {node: '>= 16.4.0'} @@ -1561,11 +1549,8 @@ packages: resolution: {integrity: sha512-UbXJ+k3QOrYN4SRPHgXCqYIJ+yWWUg1+vr0H4DhdQPTy8LJfyqwZ2tc5uqpSSnEXE+/1KopHBE5J8GDagAg5cg==} engines: {node: 12.* || 14.* || >= 16} - '@ember/test-helpers@3.3.1': - resolution: {integrity: sha512-h4uFBy4pquBtHsHI+tx9S0wtMmn1L+8dkXiDiyoqG1+3e0Awk6GBujiFM9s4ANq6wC8uIhC3wEFyts10h2OAoQ==} - engines: {node: 16.* || >= 18} - peerDependencies: - ember-source: ^4.0.0 || ^5.0.0 + '@ember/test-helpers@5.2.2': + resolution: {integrity: sha512-Cclqeh0j6RnYvoaElAVC3Nd1fsSUkc3oUTwTsLlNiC3riyPq8lNYxh96VM59/yji2ntrd/cJQ7qhhSZWd6hsEw==} '@ember/test-waiters@3.1.0': resolution: {integrity: sha512-bb9h95ktG2wKY9+ja1sdsFBdOms2lB19VWs8wmNpzgHv1NCetonBoV5jHBV4DHt0uS1tg9z66cZqhUVlYs96KQ==} @@ -1653,13 +1638,33 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-helpers@0.2.2': + resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.14.0': + resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.27.0': + resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.3.1': + resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} @@ -1694,25 +1699,26 @@ packages: ember-power-select: optional: true - '@glimmer/compiler@0.92.4': - resolution: {integrity: sha512-xoR8F6fsgFqWbPbCfSgJuJ95vaLnXw0SgDCwyl/KMeeaSxpHwJbr8+BfiUl+7ko2A+HzrY5dPXXnGr4ZM+CUXw==} - engines: {node: '>= 16.0.0'} + '@glimmer/compiler@0.94.10': + resolution: {integrity: sha512-SrWiaKM3AND2FQ732wtjAKol7XhCnRqit3tJShG4X0mT27Jb3zuhTI2dkfYVVMTJ23pjT/+0y+s/uGaBSirnBg==} + engines: {node: '>= 18.0.0'} '@glimmer/component@1.1.2': resolution: {integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==} engines: {node: 6.* || 8.* || >= 10.*} - '@glimmer/debug@0.92.4': - resolution: {integrity: sha512-waTBOdtp92MC3h/51mYbc4GRumO+Tsa5jbXLoewqALjE1S8bMu9qgkG7Cx635x3/XpjsD9xceMqagBvYhuI6tA==} + '@glimmer/component@2.0.0': + resolution: {integrity: sha512-eATSzBOUm0MZ9+YfJx7Y5p3gbwnaeMzLSSsCDn1ihDtUOIm5YYEV0ee0G7tXt/uKxowt8tXYn/EMbI9OlRF0CA==} + engines: {node: '>= 18'} - '@glimmer/destroyable@0.92.3': - resolution: {integrity: sha512-vQ+mzT9Vkf+JueY7L5XbZqK0WyEVTKv0HOLrw/zDw9F5Szn3F/8Ea/qbAClo3QK3oZeg+ulFTa/61rdjSFYHGA==} + '@glimmer/destroyable@0.94.8': + resolution: {integrity: sha512-IWNz34Q5IYnh20M/3xVv9jIdCATQyaO+8sdUSyUqiz1bAblW5vTXUNXn3uFzGF+CnP6ZSgPxHN/c1sNMAh+lAA==} '@glimmer/di@0.1.11': resolution: {integrity: sha512-moRwafNDwHTnTHzyyZC9D+mUSvYrs1Ak0tRPjjmCghdoHHIvMshVbEnwKb/1WmW5CUlKc2eL9rlAV32n3GiItg==} - '@glimmer/encoder@0.92.3': - resolution: {integrity: sha512-DJ8DB33LxODjzCWRrxozHUaRqVyZj4p8jDLG42aCNmWo3smxrsjshcaVUwDmib24DW+dzR7kMc39ObMqT5zK0w==} + '@glimmer/encoder@0.93.8': + resolution: {integrity: sha512-G7ZbC+T+rn7UliG8Y3cn7SIACh7K5HgCxgFhJxU15HtmTUObs52mVR1SyhUBsbs86JHlCqaGguKE1WqP1jt+2g==} '@glimmer/env@0.1.7': resolution: {integrity: sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw==} @@ -1720,8 +1726,8 @@ packages: '@glimmer/global-context@0.84.3': resolution: {integrity: sha512-8Oy9Wg5IZxMEeAnVmzD2NkObf89BeHoFSzJgJROE/deutd3rxg83mvlOez4zBBGYwnTb+VGU2LYRpet92egJjA==} - '@glimmer/global-context@0.92.3': - resolution: {integrity: sha512-tvlK5pt6oSe3furJ1KsO9vG/KmF9S98HLrcR48XbfwXlkuxvUeS94cdQId4GCN5naeX4OC4xm6eEjZWdc2s+jw==} + '@glimmer/global-context@0.93.4': + resolution: {integrity: sha512-Yw9xkDReAcC5oS/hY3PjGrFKRygYFA4pdO7tvuxReoVOyUtjoBOAwHJUileiElERDdMWIMfoLema8Td1mqkjhA==} '@glimmer/interfaces@0.84.3': resolution: {integrity: sha512-dk32ykoNojt0mvEaIW6Vli5MGTbQo58uy3Epj7ahCgTHmWOKuw/0G83f2UmFprRwFx689YTXG38I/vbpltEjzg==} @@ -1732,29 +1738,29 @@ packages: '@glimmer/interfaces@0.94.6': resolution: {integrity: sha512-sp/1WePvB/8O+jrcUHwjboNPTKrdGicuHKA9T/lh0vkYK2qM5Xz4i25lQMQ38tEMiw7KixrjHiTUiaXRld+IwA==} - '@glimmer/manager@0.92.4': - resolution: {integrity: sha512-YMoarZT/+Ft2YSd+Wuu5McVsdP9y6jeAdVQGYFpno3NlL3TXYbl7ELtK7OGxFLjzQE01BdiUZZRvcY+a/s9+CQ==} + '@glimmer/manager@0.94.9': + resolution: {integrity: sha512-AQT90eSRbgx6O4VnyRgR+y3SqKChPrpZs5stENa0UnqOSbt7dF6XdqAmllfznKFpLlKmJSV7JaVpCarVTR/JQQ==} - '@glimmer/node@0.92.4': - resolution: {integrity: sha512-a5GME7HQJZFJPQDdSetQI6jjKXXQi0Vdr3WuUrYwhienVTV5LG0uClbFE2yYWC7TX97YDHpRrNk1CC258rujkQ==} + '@glimmer/node@0.94.9': + resolution: {integrity: sha512-X90Xyru/TNi/ocq27ttT4zlMGK931J+pGL0eDYEkUX2fJYHd9Wm1idAB7MLJYIJarv/kuoxteiGThGIYkeNVaQ==} - '@glimmer/opcode-compiler@0.92.4': - resolution: {integrity: sha512-WnZSBwxNqW/PPD/zfxEg6BVR5tHwTm8fp76piix8BNCQ6CuzVn6HUJ5SlvBsOwyoRCmzt/pkKmBJn+I675KG4w==} + '@glimmer/opcode-compiler@0.94.9': + resolution: {integrity: sha512-LlBniSmtBoIlkxzPKHyOw4Nj946Cczelo8RAnqoG/egkHuk4hoO/7ycSgNpPvV3G14BA4Fpy5ExBffx6iuRxQQ==} - '@glimmer/owner@0.92.3': - resolution: {integrity: sha512-ZxmXIUCy6DOobhGDhA6kMpaXZS7HAucEgIl/qcjV9crlzGOO8H4j+n2x6nA/8zpuqvO0gYaBzqdNdu+7EgOEmw==} + '@glimmer/owner@0.93.4': + resolution: {integrity: sha512-xoclaVdCF4JH/yx8dHplCj6XFAa7ggwc7cyeOthRvTNGsp/J/CNKHT6NEkdERBYqy6tvg5GoONvWFdm8Wd5Uig==} - '@glimmer/program@0.92.4': - resolution: {integrity: sha512-fkquujQ11lsGCWl/+XpZW2E7bjHj/g6/Ht292A7pSoANBD8Bz/gPYiPM+XuMwes9MApEsTEMjV4EXlyk2/Cirg==} + '@glimmer/program@0.94.9': + resolution: {integrity: sha512-KA3TXYL2iDdR92pPnB/sw1tgIC7B40l2P60iD1sqkYbyxAbrUPHSToA1ycmK4DwmxDOT3Hz9dvpceoCMbh0xjA==} '@glimmer/reference@0.84.3': resolution: {integrity: sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==} - '@glimmer/reference@0.92.3': - resolution: {integrity: sha512-Ud4LE689mEXL6BJnJx0ZPt2dt/A540C+TAnBFXHpcAjROz5gT337RN+tgajwudEUqpufExhcPSMGzs1pvWYCJg==} + '@glimmer/reference@0.94.8': + resolution: {integrity: sha512-FPoXBRMXJupO9nAq/Vw3EY/FCY3xbd+VALqZupyu6ds9vjNiKAkD9+ujIjYa1f+d/ez2ONhy8QjEFoBsyW2flA==} - '@glimmer/runtime@0.92.4': - resolution: {integrity: sha512-ISqM/8hVh+fY/gnLAAPKfts4CvnJBOyCYAXgGccIlzzQrSVLaz0NoRiWTLGj5B/3xyPbqLwYPDvlTsOjYtvPoA==} + '@glimmer/runtime@0.94.10': + resolution: {integrity: sha512-eRe9TmP02ESVXJn2ZOOEm/Hm/Ro7X0kRvZsU8OVtXOqWU8JxeKMwjCEiLbJBQKbYfycRy1u8jZ2wuH0qM/d3EQ==} '@glimmer/syntax@0.84.3': resolution: {integrity: sha512-ioVbTic6ZisLxqTgRBL2PCjYZTFIwobifCustrozRU2xGDiYvVIL0vt25h2c1ioDsX59UgVlDkIK4YTAQQSd2A==} @@ -1786,15 +1792,15 @@ packages: '@glimmer/validator@0.84.3': resolution: {integrity: sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ==} - '@glimmer/validator@0.92.3': - resolution: {integrity: sha512-HKrMYeW0YhiksSeKYqX2chUR/rz82j12DcY7p2dORQlTV3qlAfiE5zRTJH1KRA1X3ZMf7DI2/GOzkXwYp0o+3Q==} + '@glimmer/validator@0.94.8': + resolution: {integrity: sha512-vTP6hAcrxE5/0dG2w+tHSteXxgWmkBwMzu5ZTxMg+EkqthWl8B5r5skLiviQ6SdKAOBJGhzf6tF4ltHo5y83hQ==} - '@glimmer/vm-babel-plugins@0.92.3': - resolution: {integrity: sha512-VpkKsHc3oiq9ruiwT7sN4RuOIc5n10PCeWX7tYSNZ85S1bETcAFn0XbyNjI+G3uFshQGEK0T8Fn3+/8VTNIQIg==} - engines: {node: '>=16'} + '@glimmer/vm-babel-plugins@0.93.4': + resolution: {integrity: sha512-+MjT+U/MsP7O32rXTYlvcmuiKtwI/PflokpVIW0M9wrkfFrsqgdhLQKvA+tNNxFW9LQ55zbhOtJweFNblHOvxg==} + engines: {node: '>=18.18.0'} - '@glimmer/vm@0.92.3': - resolution: {integrity: sha512-DNMQz7nn2zRwKO1irVZ4alg1lH+VInwR3vkWVgobUs0yh7OoHVGXKMd5uxzIksqJEUw1XOX9Qgu/GYZB1PiH3w==} + '@glimmer/vm@0.94.8': + resolution: {integrity: sha512-0E8BVNRE/1qlK9OQRUmGlQXwWmoco7vL3yIyLZpTWhbv22C1zEcM826wQT3ioaoUQSlvRsKKH6IEEUal2d3wxQ==} '@glimmer/wire-format@0.92.3': resolution: {integrity: sha512-gFz81Q9+V7Xs0X8mSq6y8qacHm0dPaGJo2/Bfcsdow1hLOKNgTCLr4XeDBhRML8f6I6Gk9ugH4QDxyIOXOpC4w==} @@ -1861,18 +1867,25 @@ packages: '@handlebars/parser@2.0.0': resolution: {integrity: sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} @@ -1948,6 +1961,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@keyv/serialize@1.0.3': + resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==} + '@lint-todo/utils@13.1.1': resolution: {integrity: sha512-F5z53uvRIF4dYfFfJP3a2Cqg+4P1dgJchJsFnsZE0eZp0LK8X7g2J0CsJHRgns+skpXOlM7n5vFGwkWCWj8qJg==} engines: {node: 12.* || >= 14} @@ -2181,25 +2197,21 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.4': - resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} - '@pnpm/constants@7.1.1': - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} + '@pnpm/constants@1001.1.0': + resolution: {integrity: sha512-xb9dfSGi1qfUKY3r4Zy9JdC9+ZeaDxwfE7HrrGIEsBVY1hvIn6ntbR7A97z3nk44yX7vwbINNf9sizTp0WEtEw==} + engines: {node: '>=18.12'} - '@pnpm/error@5.0.3': - resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} - engines: {node: '>=16.14'} + '@pnpm/error@1000.0.2': + resolution: {integrity: sha512-2SfE4FFL73rE1WVIoESbqlj4sLy5nWW4M/RVdHvCRJPjlQHa9MH7m7CVJM204lz6I+eHoB+E7rL3zmpJR5wYnQ==} + engines: {node: '>=18.12'} - '@pnpm/find-workspace-dir@6.0.3': - resolution: {integrity: sha512-0iJnNkS4T8lJE4ldOhRERgER1o59iHA1nMlvpUI5lxNC9SUruH6peRUOlP4/rNcDg+UQ9u0rt5loYOnWKCojtw==} - engines: {node: '>=16.14'} + '@pnpm/find-workspace-dir@1000.1.0': + resolution: {integrity: sha512-K5iG/z0SLV6bVW1jIYvbNBI6vWAD6ETJKyWj/wwHr7hxloxtm9xJCGbe/41pmM9nfFFUPbr1Z0YOi4q9yWkj6g==} + engines: {node: '>=18.12'} '@pnpm/network.ca-file@1.0.2': resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} @@ -2422,6 +2434,10 @@ packages: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} @@ -2599,9 +2615,6 @@ packages: '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/glob@8.1.0': resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} @@ -2641,9 +2654,6 @@ packages: '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} @@ -2656,9 +2666,6 @@ packages: '@types/node@9.6.61': resolution: {integrity: sha512-/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ==} - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/q@1.5.8': resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} @@ -2792,9 +2799,6 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3167,10 +3171,6 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -3533,6 +3533,9 @@ packages: babel-register@6.26.0: resolution: {integrity: sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==} + babel-remove-types@1.0.1: + resolution: {integrity: sha512-au+oEGwCCxqb8R0x8EwccTVtWCP4lFkNpHV5skNZnNCwvar3DBBkmGZbx2B1A3RaCHVLQrxF6qv6rR/ZDRPW+A==} + babel-runtime@6.26.0: resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} @@ -3697,10 +3700,6 @@ packages: peerDependencies: '@babel/core': ^7.17.9 - broccoli-builder@0.18.14: - resolution: {integrity: sha512-YoUHeKnPi4xIGZ2XDVN9oHNA9k3xF5f5vlA+1wvrxIIDXqQU97gp2FxVAF503Zxdtt0C5CRB5n+47k2hlkaBzA==} - engines: {node: '>= 0.10.0'} - broccoli-caching-writer@2.3.1: resolution: {integrity: sha512-lfoDx98VaU8tG4mUXCxKdKyw2Lr+iSIGUjCgV83KC2zRC07SzYTGuSsMqpXFiOQlOGuoJxG3NRoyniBa1BWOqA==} @@ -3763,10 +3762,6 @@ packages: broccoli-node-api@1.7.0: resolution: {integrity: sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==} - broccoli-node-info@1.1.0: - resolution: {integrity: sha512-DUohSZCdfXli/3iN6SmxPbck1OVG8xCkrLx47R25his06xVc1ZmmrOsrThiM8BsCWirwyocODiYJqNP5W2Hg1A==} - engines: {node: '>= 0.10.0'} - broccoli-node-info@2.2.0: resolution: {integrity: sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==} engines: {node: 8.* || >= 10.*} @@ -3950,6 +3945,9 @@ packages: resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} + cacheable@1.9.0: + resolution: {integrity: sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==} + calculate-cache-key-for-tree@2.0.0: resolution: {integrity: sha512-Quw8a6y8CPmRd6eU+mwypktYCwUcf8yVFIRbNZ6tPQEckX9yd+EBVEPC/GSZZrMWH9e7Vz4pT7XhpmyApRByLQ==} engines: {node: 6.* || 8.* || >= 10.*} @@ -3986,10 +3984,6 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} - camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -4096,6 +4090,10 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + ci-info@4.2.0: + resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + engines: {node: '>=8'} + cipher-base@1.0.6: resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} engines: {node: '>= 0.10'} @@ -4300,9 +4298,9 @@ packages: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} - concurrently@8.2.2: - resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} - engines: {node: ^14.13.0 || >=16.0.0} + concurrently@9.1.2: + resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} + engines: {node: '>=18'} hasBin: true conf@10.2.0: @@ -4586,6 +4584,15 @@ packages: typescript: optional: true + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} @@ -4656,8 +4663,8 @@ packages: resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} engines: {node: '>=8.0.0'} - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + 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: @@ -4733,9 +4740,8 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} + date-fns@3.6.0: + resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} date-time@2.1.0: resolution: {integrity: sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==} @@ -4779,18 +4785,6 @@ packages: supports-color: optional: true - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} @@ -4906,6 +4900,10 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} @@ -4919,6 +4917,10 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} + detect-newline@4.0.1: + resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -4929,6 +4931,10 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} + diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -4942,10 +4948,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-element-descriptors@0.5.1: resolution: {integrity: sha512-DLayMRQ+yJaziF4JJX1FMjwjdr7wdTr1y9XvZ+NfHELfOMcYDnCHneAYXAS4FT1gLILh4V0juMZohhH1N5FsoQ==} @@ -5106,9 +5108,9 @@ packages: resolution: {integrity: sha512-bcBFDYVTFHyqyq8BNvsj6UO3pE6Uqou/cNmee0WaqBgZ+1nQqFz0UE26usrtnFAT+YaFZSkqF2H36QW84k0/cg==} engines: {node: 12.* || 14.* || >= 16} - ember-cli-app-version@6.0.1: - resolution: {integrity: sha512-XA1FwkWA5QytmWF0jcJqEr3jcZoiCl9Fb33TZgOVfClL7Voxe+/RwzISEprBRQgbf7j8z1xf8/RJCKfclUy3rQ==} - engines: {node: 14.* || 16.* || >= 18} + ember-cli-app-version@7.0.0: + resolution: {integrity: sha512-zWIkxvlRrW7w1/vp+bGkmS27QsVum7NKp8N9DgAjhFMWuKewVqGyl/jeYaujMS/I4WSKBzSG9WHwBy2rjbUWxA==} + engines: {node: '>= 18'} peerDependencies: ember-source: ^3.28.0 || >= 4.0.0 @@ -5140,9 +5142,11 @@ packages: peerDependencies: ember-cli: ^3.2.0 || >=4.0.0 - ember-cli-deprecation-workflow@2.2.0: - resolution: {integrity: sha512-23bXZqZJBJSKBTfT0LK7qzSJX861TgafL6RVdMfn/iubpLnoZIWergYwEdgs24CNTUbuehVbHy2Q71o8jYfwfw==} - engines: {node: 12.* || 14.* || >= 16} + ember-cli-deprecation-workflow@3.3.0: + resolution: {integrity: sha512-AZTOv+xftPXNov+X7k/JZFMd5/Suzkuvg5Zc1W3MoJb+kjIwW/3sieBOXEbt7aMq9Px4ixb9FSrFPNlzggV4qA==} + engines: {node: '>= 18'} + peerDependencies: + ember-source: '>= 4.0.0' ember-cli-flash@5.1.0: resolution: {integrity: sha512-PvwPdXQ9mZdqgvNI/vh9Yij95ydedcOO8YYvWJcCqnk6ZoOO3a2mEVZmXltW1asztzp0AgFkGaOV0EPQDlDv1A==} @@ -5169,10 +5173,6 @@ packages: ember-cli-is-package-missing@1.0.0: resolution: {integrity: sha512-9hEoZj6Au5onlSDdcoBqYEPT8ehlYntZPxH8pBKV0GO7LNel88otSAQsCfXvbi2eKE+MaSeLG/gNaCI5UdWm9g==} - ember-cli-lodash-subset@2.0.1: - resolution: {integrity: sha512-QkLGcYv1WRK35g4MWu/uIeJ5Suk2eJXKtZ+8s+qE7C9INmpCPyPxzaqZABquYzcWNzIdw6kYwz3NWAFdKYFxwg==} - engines: {node: ^4.5 || 6.* || >= 7.*} - ember-cli-normalize-entity-name@1.0.0: resolution: {integrity: sha512-rF4P1rW2P1gVX1ynZYPmuIf7TnAFDiJmIUFI1Xz16VYykUAyiOCme0Y22LeZq8rTzwBMiwBwoE3RO4GYWehXZA==} @@ -5198,17 +5198,9 @@ packages: resolution: {integrity: sha512-Ej77K+YhCZImotoi/CU2cfsoZaswoPlGaM5TB3LvjvPDlVPRhxUHO2RsaUVC5lsGeRLRiHCOxVtoJ6GyqexzFA==} engines: {node: 10.* || 12.* || >= 14} - ember-cli-test-loader@3.1.0: - resolution: {integrity: sha512-0aocZV9SIoOHiU3hrH3IuLR6busWhTX6UVXgd490hmJkIymmOXNH2+jJoC7Ebkeo3PiOfAdjqhb765QDlHSJOw==} - engines: {node: 10.* || >= 12} - ember-cli-typescript-blueprint-polyfill@0.1.0: resolution: {integrity: sha512-g0weUTOnHmPGqVZzkQTl3Nbk9fzEdFkEXydCs5mT1qBjXh8eQ6VlmjjGD5/998UXKuA0pLSCVVMbSp/linLzGA==} - ember-cli-typescript@2.0.2: - resolution: {integrity: sha512-7I5azCTxOgRDN8aSSnJZIKSqr+MGnT+jLTUbBYqF8wu6ojs2DUnTePxUcQMcvNh3Q3B1ySv7Q/uZFSjdU9gSjA==} - engines: {node: 6.* || 8.* || >= 10.*} - ember-cli-typescript@3.0.0: resolution: {integrity: sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA==} engines: {node: 8.* || >= 10.*} @@ -5237,8 +5229,8 @@ packages: resolution: {integrity: sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q==} engines: {node: 10.* || >= 12.*} - ember-cli@5.11.0: - resolution: {integrity: sha512-G+Fp194KLZy6NHC9c2i1ZlCB2SurxAMd5Hg61o9kRH4rogjDeoVUC3uiQ/mmrdn5DWRSnS0bfXV+i7+W4wu1Ug==} + ember-cli@6.4.0: + resolution: {integrity: sha512-adcz01uGDrqBPniZrrYx6+tHe58ikc6j+cbX4+3aTG2OVJvQSL+LeisI6ixxtEZeklHRFB6FE6U1etTS6nRVfQ==} engines: {node: '>= 18'} hasBin: true @@ -5292,6 +5284,16 @@ packages: resolution: {integrity: sha512-3slTltQV5ke53t3YVP2GYoswsQ6y+lhuVzKmt09tbEx91DapG8I/xa8W5OA0StvcQlavL3/vHrz/vCQEFs8bBA==} engines: {node: 14.* || 16.* || >= 18} + ember-eslint-parser@0.5.9: + resolution: {integrity: sha512-IW4/3cEiFp49M2LiKyzi7VcT1egogOe8UxQ9eUKTooenC7Q4qNhzTD6rOZ8j51m8iJC+8hCzjbNCa3K4CN0Hhg==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@babel/core': ^7.23.6 + '@typescript-eslint/parser': '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + ember-event-helpers@0.1.1: resolution: {integrity: sha512-fWcbWd4W4nRv8bbato8JB6oGRpATkR+oGYxMIqnfgTgPWaCS0ww7CuUVNpwg1TulojKMCuTXi8Fem2b1NSF1ZQ==} engines: {node: 8.* || >= 10.*} @@ -5322,9 +5324,11 @@ packages: peerDependencies: ember-source: ^4.0.0 || ^5.0.0 - ember-load-initializers@2.1.2: - resolution: {integrity: sha512-CYR+U/wRxLbrfYN3dh+0Tb6mFaxJKfdyz+wNql6cqTrA0BBi9k6J3AaKXj273TqvEpyyXegQFFkZEiuZdYtgJw==} - engines: {node: 6.* || 8.* || >= 10.*} + ember-load-initializers@3.0.1: + resolution: {integrity: sha512-qV3vxJKw5+7TVDdtdLPy8PhVsh58MlK8jwzqh5xeOwJPNP7o0+BlhvwoIlLYTPzGaHdfjEIFCgVSyMRGd74E1g==} + engines: {node: '>= 18.*'} + peerDependencies: + ember-source: '>= 5' ember-local-storage@2.0.6: resolution: {integrity: sha512-SrC147cA726m1ho00PVtYqEz7xib4+0JJQbN6A2E3Dvrv2JnmwBK7Oexslu3GkHLvTGwry2bzQ0ySFSz2RObBw==} @@ -5349,21 +5353,15 @@ packages: peerDependencies: ember-source: '>= 3.24.0' - ember-qunit@8.1.1: - resolution: {integrity: sha512-nT+6s74j3BKNn+QQY/hINC3Xw3kn0NF0cU9zlgVQmCBWoyis1J24xWrY2LFOMThPmF6lHqcrUb5JwvBD4BXEXg==} + ember-qunit@9.0.3: + resolution: {integrity: sha512-t+FD5/EWAR3WvGVj1etblFJJ6CaJqddDxusNcYYFZmW7zrQpCnQ9ziwpXM5/sw1sWabkhJZgYPXCn8bDRRhOfg==} peerDependencies: '@ember/test-helpers': '>=3.0.3' - ember-source: '>=4.0.0' qunit: ^2.13.0 - ember-resolver@11.0.1: - resolution: {integrity: sha512-ucBk3oM+PR+AfYoSUXeQh8cDQS1sSiEKp4Pcgbew5cFMSqPxJfqd1zyZsfQKNTuyubeGmWxBOyMVSTvX2LeCyg==} + ember-resolver@13.1.1: + resolution: {integrity: sha512-rA4RDuTm/F9AzYX2+g7EY3QWU48kyF9+Ck8IE8VQipnlwv2Q42kdRWiw7hfeQbRxx6XoSZCak6nzAG9ePd/+Ug==} engines: {node: 14.* || 16.* || >= 18} - peerDependencies: - ember-source: ^4.8.3 || >= 5.0.0 - peerDependenciesMeta: - ember-source: - optional: true ember-rfc176-data@0.3.18: resolution: {integrity: sha512-JtuLoYGSjay1W3MQAxt3eINWXNYYQliK90tLwtb8aeCuQK8zKGCRbBodVIrkcTqshULMnRuTOS6t1P7oQk3g6Q==} @@ -5395,11 +5393,11 @@ packages: qunit: ^2.0.0 sinon: '>=15.0.3' - ember-source@5.12.0: - resolution: {integrity: sha512-2MWlJmQEeeiIk9p5CDMuvD470YPi7/4wXgU41ftbWc9svwF+0usoe4PLoLC0T/jV6YX+3SY5tumQfxLSLoFhmQ==} + ember-source@6.4.0: + resolution: {integrity: sha512-lUzSbCsOQa3vRTv1HL7dj3gLApXXrq91QeAlnOLmwETQFoa6aX8+Z+78vNHIgg0jXCpzX1pWWL/NKpe4KDuCuw==} engines: {node: '>= 18.*'} peerDependencies: - '@glimmer/component': ^1.1.2 + '@glimmer/component': '>= 1.1.2' ember-svg-jar@2.6.3: resolution: {integrity: sha512-+hgqDIVmtyHcBWOKfRlvxWvTWGJ8Ly4t9NjGsRGSu8qfP/w/TP6IgYJNUgN9MU9ZkU24Sg02RzIkfuXvIhoYJg==} @@ -5413,9 +5411,9 @@ packages: resolution: {integrity: sha512-jZ5D6KLKU8up/AynZltmKh4lkXBPgTGSPgomprI/55XvIVqn42UNUpEz7ra/mO3QiGODDZOUesbggPe49i38sQ==} engines: {node: 16.* || >= 18} - ember-template-lint@5.13.0: - resolution: {integrity: sha512-AYxz9S9fVZfHPmTsymc7NwsD7FVmDUZyfC+KYpxDlK0wic7JSQx2FNQNqQSBFRLOuzn7VQ0/+1pX6DGqKDGswg==} - engines: {node: ^14.18.0 || ^16.0.0 || >= 18.0.0} + ember-template-lint@6.1.0: + resolution: {integrity: sha512-UyzLPcyneG3mnbBfewyYIlV7fy6JKHQVAJy5a9+URdJKkZKN+3vQkQzIIlsz6dP/GpoXVB+datns5HlfMfliSA==} + engines: {node: ^18.18.0 || >= 20.9.0} hasBin: true ember-template-recast@6.1.5: @@ -5495,10 +5493,6 @@ packages: entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - entities@3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -5622,11 +5616,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.5.0: + resolution: {integrity: sha512-DBUzsaKWDVXsujAZPpRir0O7owdlCoVzZmtaJm7g7iQeSrNtcRWI7AItsTqKSsws1XeAySH0sPsQItMdDCb9Fg==} + engines: {node: 18.* || 20.* || >= 21} peerDependencies: - eslint: '>= 7' + '@typescript-eslint/parser': '*' + eslint: '>= 8' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true eslint-plugin-es-x@7.8.0: resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} @@ -5640,20 +5638,6 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-prettier@5.4.0: - resolution: {integrity: sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - eslint-plugin-qunit@8.1.2: resolution: {integrity: sha512-2gDQdHlQW8GVXD7YYkO8vbm9Ldc60JeGMuQN5QlD48OeZ8znBvvoHWZZMeXjvoDPReGaLEvyuWrDtrI8bDbcqw==} engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} @@ -5670,6 +5654,10 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-utils@3.0.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} @@ -5684,19 +5672,27 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.27.0: + resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true esm@3.2.25: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@3.0.0: resolution: {integrity: sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw==} @@ -5843,9 +5839,6 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -5883,6 +5876,14 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.4.5: + resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -5903,13 +5904,12 @@ packages: resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} engines: {node: '>=14'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@10.1.0: + resolution: {integrity: sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==} - file-entry-cache@7.0.2: - resolution: {integrity: sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==} - engines: {node: '>=12.0.0'} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -5984,6 +5984,10 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + find-yarn-workspace-root@2.0.0: resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} @@ -6009,9 +6013,12 @@ packages: resolution: {integrity: sha512-SRgwIMXlxkb6AUgaVjIX+jCEqdhyXu9hah7mcK+lWynjKtX73Ux1TDv71B7XyaQ+LJxkYRHl5yCL8IycAvQRUw==} engines: {node: 10.* || >= 12.*} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat-cache@6.1.9: + resolution: {integrity: sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==} flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -6174,8 +6181,8 @@ 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==} + fuse.js@7.1.0: + resolution: {integrity: sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==} engines: {node: '>=10'} galactus@1.0.0: @@ -6259,8 +6266,8 @@ packages: getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - git-hooks-list@1.0.3: - resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} + git-hooks-list@3.2.0: + resolution: {integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==} git-repo-info@2.1.1: resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} @@ -6335,9 +6342,9 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} globals@15.15.0: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} @@ -6354,10 +6361,6 @@ packages: globalyzer@0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - globby@10.0.0: - resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} - engines: {node: '>=8'} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -6366,6 +6369,10 @@ packages: 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'} + globjoin@0.1.4: resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} @@ -6414,10 +6421,6 @@ packages: engines: {node: '>=6'} deprecated: this library is no longer supported - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - has-ansi@2.0.0: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} @@ -6529,6 +6532,9 @@ packages: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} + hookified@1.9.0: + resolution: {integrity: sha512-2yEEGqphImtKIe1NXWEhu6yD3hlFR4Mxk4Mtp3XEyScpSt4pQ4ymmXA1zzxZpj99QkFK+nN0nzjeb2+RUi/6CQ==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -6536,9 +6542,9 @@ packages: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} - hosted-git-info@6.1.3: - resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hosted-git-info@8.1.0: + resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} + engines: {node: ^18.17.0 || >=20.5.0} html-encoding-sniffer@2.0.1: resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} @@ -6650,6 +6656,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.4: + resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} + engines: {node: '>= 4'} + image-size@0.7.5: resolution: {integrity: sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==} engines: {node: '>=6.9.0'} @@ -6693,10 +6703,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - indexeddb-export-import@2.1.5: resolution: {integrity: sha512-gS6gVzFTDuT+r7KyZ3yrzflC8HfktezxAGyImCpICGX5WemMhBLnGaZMkZ0KYj+9hwVAM3dmXMTYy/NvtKAFlQ==} engines: {node: '>=12'} @@ -6968,9 +6974,9 @@ packages: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} @@ -7339,6 +7345,9 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@5.3.3: + resolution: {integrity: sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==} + kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -7358,6 +7367,9 @@ packages: known-css-properties@0.29.0: resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} + known-css-properties@0.36.0: + resolution: {integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==} + language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -7402,8 +7414,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkify-it@4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} listr2@7.0.2: resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} @@ -7604,9 +7616,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@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -7634,14 +7643,6 @@ packages: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - map-visit@1.0.0: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} @@ -7651,8 +7652,8 @@ packages: peerDependencies: markdown-it: '>= 13.0.0' - markdown-it@13.0.2: - resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==} + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true marky@1.3.0: @@ -7691,14 +7692,14 @@ packages: mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - mdn-data@2.0.4: resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} - mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} @@ -7730,9 +7731,9 @@ packages: peerDependencies: electron: '>=9.0.0 <33.0.0' - meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -7932,10 +7933,6 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - mini-css-extract-plugin@2.9.2: resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==} engines: {node: '>= 12.13.0'} @@ -7975,10 +7972,6 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -8206,10 +8199,6 @@ packages: normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} @@ -8226,9 +8215,9 @@ packages: resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} engines: {node: '>=14.16'} - npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-package-arg@12.0.2: + resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} + engines: {node: ^18.17.0 || >=20.5.0} npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} @@ -8636,6 +8625,10 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} + pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} engines: {node: '>=0.12'} @@ -8657,6 +8650,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -8772,11 +8769,11 @@ packages: postcss-resolve-nested-selector@0.1.6: resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} + postcss-safe-parser@7.0.1: + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} peerDependencies: - postcss: ^8.3.3 + postcss: ^8.4.31 postcss-scss@4.0.9: resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} @@ -8811,10 +8808,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - prettier-plugin-ember-template-tag@2.0.5: resolution: {integrity: sha512-G9lbK3wmryIBSzqBKKoy254v7hIjqzqYpqWxi9NvOxcxNtwLyrC1u9NLJJFm+x9blzqHQOzKGOseVnbLtEwEbg==} engines: {node: 18.* || >= 20} @@ -8855,9 +8848,9 @@ packages: resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + proc-log@5.0.0: + resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} + engines: {node: ^18.17.0 || >=20.5.0} process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -8941,6 +8934,10 @@ packages: pumpify@1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -9073,18 +9070,10 @@ packages: resolution: {integrity: sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==} engines: {node: '>=4'} - read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} - read-pkg@2.0.0: resolution: {integrity: sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==} engines: {node: '>=4'} - read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} - readable-stream@1.0.34: resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} @@ -9122,10 +9111,6 @@ packages: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} - redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} - redeyed@1.0.1: resolution: {integrity: sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ==} @@ -9654,6 +9639,10 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -9719,8 +9708,8 @@ packages: sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - sort-package-json@1.57.0: - resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} + sort-package-json@2.15.1: + resolution: {integrity: sha512-9x9+o8krTT2saA9liI4BljNjwAbvUnWf11Wq+i/iZt8nl2UGYnf3TH5uBydE7VALmP7AGwlfszuEeL8BDyb0YA==} hasBin: true source-list-map@2.0.1: @@ -9771,9 +9760,6 @@ packages: spawn-args@0.2.0: resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==} - spawn-command@0.0.2: - resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} - spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -9965,10 +9951,6 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} - strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -9987,9 +9969,6 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - style-search@0.1.0: - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} - styled_string@0.0.1: resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} @@ -10023,21 +10002,14 @@ packages: peerDependencies: stylelint: ^15.10.0 - stylelint-prettier@4.1.0: - resolution: {integrity: sha512-dd653q/d1IfvsSQshz1uAMe+XDm6hfM/7XiFH0htYY8Lse/s5ERTg7SURQehZPwVvm/rs7AsFhda9EQ2E9TS0g==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - prettier: '>=3.0.0' - stylelint: '>=15.8.0' - stylelint-scss@5.3.2: resolution: {integrity: sha512-4LzLaayFhFyneJwLo0IUa8knuIvj+zF0vBFueQs4e3tEaAMIQX8q5th8ziKkgOavr6y/y9yoBe+RXN/edwLzsQ==} peerDependencies: stylelint: ^14.5.1 || ^15.0.0 - stylelint@15.11.0: - resolution: {integrity: sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==} - engines: {node: ^14.13.1 || >=16.0.0} + stylelint@16.19.1: + resolution: {integrity: sha512-C1SlPZNMKl+d/C867ZdCRthrS+6KuZ3AoGW113RZCOL0M8xOGpgx7G70wq7lFvqvm4dcfdGFVLB/mNaLFChRKw==} + engines: {node: '>=18.12.0'} hasBin: true sucrase@3.35.0: @@ -10103,10 +10075,6 @@ packages: resolution: {integrity: sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA==} engines: {node: 8.* || >= 10.*} - synckit@0.11.6: - resolution: {integrity: sha512-2pR2ubZSV64f/vqm9eLPz/KOvR9Dm+Co/5ChLgeHl0yEDRc6h5hXHoxEQH8Y5Ljycozd3p1k5TTSVdzYGkPvLw==} - engines: {node: ^14.18.0 || >=16.0.0} - table@6.9.0: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} @@ -10177,9 +10145,6 @@ packages: engines: {node: '>= 7.*'} hasBin: true - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - textextensions@2.6.0: resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==} engines: {node: '>=0.8'} @@ -10236,6 +10201,10 @@ packages: tiny-lr@2.0.0: resolution: {integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q==} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} @@ -10348,10 +10317,6 @@ packages: resolution: {integrity: sha512-OLWW+Nd99NOM53aZ8ilT/YpEiOo6mXD3F4/wLbARqybSZ3Jb8IxHK5UGVbZaae0wtXAyQshVV+SeqVBik+Fbmw==} engines: {node: '>=8'} - trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - trim-repeated@1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} engines: {node: '>=0.10.0'} @@ -10404,10 +10369,6 @@ packages: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -10462,8 +10423,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - uc.micro@1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} @@ -10509,6 +10470,14 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + union-value@1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -10665,9 +10634,9 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + validate-npm-package-name@6.0.0: + resolution: {integrity: sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==} + engines: {node: ^18.17.0 || >=20.5.0} validate-peer-dependencies@1.2.0: resolution: {integrity: sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA==} @@ -10902,6 +10871,9 @@ packages: workerpool@6.5.1: resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + workerpool@9.3.0: + resolution: {integrity: sha512-cJcVvZ2uapylT5Jl5upsQMENIb7zBG8dj6evxuoLOy2A8bm0//lIeG3w1SUsgbjaSXAnhFZwKbmQcR4+VQ3d1w==} + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -11509,17 +11481,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.27.1(@babel/core@7.27.3)(eslint@8.57.1)': + '@babel/eslint-parser@7.27.1(@babel/core@7.27.3)(eslint@9.27.0(jiti@2.4.2))': dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.1 + eslint: 9.27.0(jiti@2.4.2) eslint-visitor-keys: 2.1.0 semver: 6.3.1 '@babel/generator@7.17.7': dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.27.3 jsesc: 2.5.2 source-map: 0.5.7 @@ -12171,12 +12143,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.4.5(@babel/core@7.27.3)': - dependencies: - '@babel/core': 7.27.3(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-typescript@7.5.5(@babel/core@7.27.3)': dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) @@ -12364,22 +12330,16 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': - dependencies: - '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-tokenizer@2.4.1': {} - '@csstools/css-tokenizer@3.0.4': {} - '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': + '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 '@csstools/postcss-sass@5.1.1(postcss@8.5.3)': dependencies: @@ -12390,12 +12350,14 @@ snapshots: '@csstools/sass-import-resolve@1.0.0': {} - '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.2)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': dependencies: - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.1.0 '@ctrl/tinycolor@4.1.0': {} + '@dual-bundle/import-meta-resolve@4.1.0': {} + '@electron-forge/cli@7.8.1(encoding@0.1.13)': dependencies: '@electron-forge/core': 7.8.1(encoding@0.1.13) @@ -12788,12 +12750,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@ember/render-modifiers@2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))': + '@ember/render-modifiers@2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': dependencies: '@embroider/macros': 1.18.0(@glint/template@1.5.2) ember-cli-babel: 7.26.11 ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.27.3) - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) optionalDependencies: '@glint/template': 1.5.2 transitivePeerDependencies: @@ -12806,23 +12768,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9)': + '@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2)': dependencies: - '@ember/test-waiters': 3.1.0 + '@ember/test-waiters': 4.1.0(@glint/template@1.5.2) + '@embroider/addon-shim': 1.10.0 '@embroider/macros': 1.18.0(@glint/template@1.5.2) '@simple-dom/interface': 1.4.0 - broccoli-debug: 0.6.5 - broccoli-funnel: 3.0.8 + decorator-transforms: 2.3.0(@babel/core@7.27.3) dom-element-descriptors: 0.5.1 - ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) - ember-cli-babel: 8.2.0(@babel/core@7.27.3) - ember-cli-htmlbars: 6.3.0 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - '@babel/core' - '@glint/template' - supports-color - - webpack '@ember/test-waiters@3.1.0': dependencies: @@ -13073,20 +13030,34 @@ snapshots: - canvas - utf-8-validate - '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': dependencies: - eslint: 8.57.1 + eslint: 9.27.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.20.0': dependencies: - ajv: 6.12.6 + '@eslint/object-schema': 2.1.6 debug: 4.4.1(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.2.2': {} + + '@eslint/core@0.14.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.1(supports-color@8.1.1) + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -13094,24 +13065,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.27.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.3.1': + dependencies: + '@eslint/core': 0.14.0 + levn: 0.4.1 '@gar/promisify@1.1.3': {} - '@gavant/glint-template-types@0.4.0(ember-animated@2.2.0(@babel/core@7.27.3)(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.3))(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))': + '@gavant/glint-template-types@0.4.0(ember-animated@2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.3))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': dependencies: - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) optionalDependencies: - ember-animated: 2.2.0(@babel/core@7.27.3)(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2) + ember-animated: 2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2) ember-modifier: 4.2.2(@babel/core@7.27.3) - '@glimmer/compiler@0.92.4': + '@glimmer/compiler@0.94.10': dependencies: - '@glimmer/interfaces': 0.92.3 - '@glimmer/syntax': 0.92.3 - '@glimmer/util': 0.92.3 - '@glimmer/vm': 0.92.3 - '@glimmer/wire-format': 0.92.3 + '@glimmer/interfaces': 0.94.6 + '@glimmer/syntax': 0.94.9 + '@glimmer/util': 0.94.8 + '@glimmer/wire-format': 0.94.8 '@glimmer/component@1.1.2(@babel/core@7.27.3)': dependencies: @@ -13133,25 +13110,24 @@ snapshots: - '@babel/core' - supports-color - '@glimmer/debug@0.92.4': + '@glimmer/component@2.0.0': dependencies: - '@glimmer/interfaces': 0.92.3 - '@glimmer/util': 0.92.3 - '@glimmer/vm': 0.92.3 + '@embroider/addon-shim': 1.10.0 + '@glimmer/env': 0.1.7 + transitivePeerDependencies: + - supports-color - '@glimmer/destroyable@0.92.3': + '@glimmer/destroyable@0.94.8': dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.92.3 - '@glimmer/interfaces': 0.92.3 - '@glimmer/util': 0.92.3 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 '@glimmer/di@0.1.11': {} - '@glimmer/encoder@0.92.3': + '@glimmer/encoder@0.93.8': dependencies: - '@glimmer/interfaces': 0.92.3 - '@glimmer/vm': 0.92.3 + '@glimmer/interfaces': 0.94.6 + '@glimmer/vm': 0.94.8 '@glimmer/env@0.1.7': {} @@ -13159,7 +13135,7 @@ snapshots: dependencies: '@glimmer/env': 0.1.7 - '@glimmer/global-context@0.92.3': {} + '@glimmer/global-context@0.93.4': {} '@glimmer/interfaces@0.84.3': dependencies: @@ -13174,52 +13150,42 @@ snapshots: '@simple-dom/interface': 1.4.0 type-fest: 4.41.0 - '@glimmer/manager@0.92.4': + '@glimmer/manager@0.94.9': dependencies: - '@glimmer/debug': 0.92.4 - '@glimmer/destroyable': 0.92.3 - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.92.3 - '@glimmer/interfaces': 0.92.3 - '@glimmer/reference': 0.92.3 - '@glimmer/util': 0.92.3 - '@glimmer/validator': 0.92.3 - '@glimmer/vm': 0.92.3 + '@glimmer/destroyable': 0.94.8 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + '@glimmer/reference': 0.94.8 + '@glimmer/util': 0.94.8 + '@glimmer/validator': 0.94.8 + '@glimmer/vm': 0.94.8 - '@glimmer/node@0.92.4': + '@glimmer/node@0.94.9': dependencies: - '@glimmer/interfaces': 0.92.3 - '@glimmer/runtime': 0.92.4 - '@glimmer/util': 0.92.3 + '@glimmer/interfaces': 0.94.6 + '@glimmer/runtime': 0.94.10 + '@glimmer/util': 0.94.8 '@simple-dom/document': 1.4.0 - '@glimmer/opcode-compiler@0.92.4': + '@glimmer/opcode-compiler@0.94.9': dependencies: - '@glimmer/debug': 0.92.4 - '@glimmer/encoder': 0.92.3 - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.92.3 - '@glimmer/interfaces': 0.92.3 - '@glimmer/manager': 0.92.4 - '@glimmer/reference': 0.92.3 - '@glimmer/util': 0.92.3 - '@glimmer/vm': 0.92.3 - '@glimmer/wire-format': 0.92.3 + '@glimmer/encoder': 0.93.8 + '@glimmer/interfaces': 0.94.6 + '@glimmer/manager': 0.94.9 + '@glimmer/util': 0.94.8 + '@glimmer/vm': 0.94.8 + '@glimmer/wire-format': 0.94.8 - '@glimmer/owner@0.92.3': - dependencies: - '@glimmer/util': 0.92.3 + '@glimmer/owner@0.93.4': {} - '@glimmer/program@0.92.4': + '@glimmer/program@0.94.9': dependencies: - '@glimmer/encoder': 0.92.3 - '@glimmer/env': 0.1.7 - '@glimmer/interfaces': 0.92.3 - '@glimmer/manager': 0.92.4 - '@glimmer/opcode-compiler': 0.92.4 - '@glimmer/util': 0.92.3 - '@glimmer/vm': 0.92.3 - '@glimmer/wire-format': 0.92.3 + '@glimmer/interfaces': 0.94.6 + '@glimmer/manager': 0.94.9 + '@glimmer/opcode-compiler': 0.94.9 + '@glimmer/util': 0.94.8 + '@glimmer/vm': 0.94.8 + '@glimmer/wire-format': 0.94.8 '@glimmer/reference@0.84.3': dependencies: @@ -13229,28 +13195,25 @@ snapshots: '@glimmer/util': 0.84.3 '@glimmer/validator': 0.84.3 - '@glimmer/reference@0.92.3': + '@glimmer/reference@0.94.8': dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.92.3 - '@glimmer/interfaces': 0.92.3 - '@glimmer/util': 0.92.3 - '@glimmer/validator': 0.92.3 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + '@glimmer/util': 0.94.8 + '@glimmer/validator': 0.94.8 - '@glimmer/runtime@0.92.4': + '@glimmer/runtime@0.94.10': dependencies: - '@glimmer/destroyable': 0.92.3 - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.92.3 - '@glimmer/interfaces': 0.92.3 - '@glimmer/manager': 0.92.4 - '@glimmer/owner': 0.92.3 - '@glimmer/program': 0.92.4 - '@glimmer/reference': 0.92.3 - '@glimmer/util': 0.92.3 - '@glimmer/validator': 0.92.3 - '@glimmer/vm': 0.92.3 - '@glimmer/wire-format': 0.92.3 + '@glimmer/destroyable': 0.94.8 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + '@glimmer/manager': 0.94.9 + '@glimmer/owner': 0.93.4 + '@glimmer/program': 0.94.9 + '@glimmer/reference': 0.94.8 + '@glimmer/util': 0.94.8 + '@glimmer/validator': 0.94.8 + '@glimmer/vm': 0.94.8 '@glimmer/syntax@0.84.3': dependencies: @@ -13304,23 +13267,20 @@ snapshots: '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.84.3 - '@glimmer/validator@0.92.3': + '@glimmer/validator@0.94.8': dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.92.3 - '@glimmer/interfaces': 0.92.3 - '@glimmer/util': 0.92.3 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 - '@glimmer/vm-babel-plugins@0.92.3(@babel/core@7.27.3)': + '@glimmer/vm-babel-plugins@0.93.4(@babel/core@7.27.3)': dependencies: babel-plugin-debug-macros: 0.3.4(@babel/core@7.27.3) transitivePeerDependencies: - '@babel/core' - '@glimmer/vm@0.92.3': + '@glimmer/vm@0.94.8': dependencies: - '@glimmer/interfaces': 0.92.3 - '@glimmer/util': 0.92.3 + '@glimmer/interfaces': 0.94.6 '@glimmer/wire-format@0.92.3': dependencies: @@ -13346,9 +13306,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@glint/environment-ember-loose@1.5.2(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3))': + '@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3))': dependencies: - '@glimmer/component': 1.1.2(@babel/core@7.27.3) + '@glimmer/component': 2.0.0 '@glint/template': 1.5.2 optionalDependencies: '@types/ember__array': 4.0.10(@babel/core@7.27.3) @@ -13359,9 +13319,9 @@ snapshots: ember-cli-htmlbars: 6.3.0 ember-modifier: 4.2.2(@babel/core@7.27.3) - '@glint/environment-ember-template-imports@1.5.2(@glint/environment-ember-loose@1.5.2(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)))(@glint/template@1.5.2)(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))': + '@glint/environment-ember-template-imports@1.5.2(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)))(@glint/template@1.5.2)(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))': dependencies: - '@glint/environment-ember-loose': 1.5.2(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)) + '@glint/environment-ember-loose': 1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)) '@glint/template': 1.5.2 content-tag: 2.0.3 optionalDependencies: @@ -13372,17 +13332,18 @@ snapshots: '@handlebars/parser@2.0.0': {} - '@humanwhocodes/config-array@0.13.0': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.1(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.3': {} '@iarna/toml@2.2.5': {} @@ -13491,6 +13452,10 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@keyv/serialize@1.0.3': + dependencies: + buffer: 6.0.3 + '@lint-todo/utils@13.1.1': dependencies: '@types/eslint': 8.56.12 @@ -13767,19 +13732,17 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.2.4': {} - '@pnpm/config.env-replace@1.1.0': {} - '@pnpm/constants@7.1.1': {} + '@pnpm/constants@1001.1.0': {} - '@pnpm/error@5.0.3': + '@pnpm/error@1000.0.2': dependencies: - '@pnpm/constants': 7.1.1 + '@pnpm/constants': 1001.1.0 - '@pnpm/find-workspace-dir@6.0.3': + '@pnpm/find-workspace-dir@1000.1.0': dependencies: - '@pnpm/error': 5.0.3 + '@pnpm/error': 1000.0.2 find-up: 5.0.0 '@pnpm/network.ca-file@1.0.2': @@ -14076,6 +14039,8 @@ snapshots: '@sindresorhus/is@5.6.0': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 @@ -14199,14 +14164,14 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8(@babel/core@7.27.3) - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__debug': 4.0.8 + '@types/ember__engine': 4.0.11 '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10 - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14219,14 +14184,14 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8(@babel/core@7.27.3) - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__debug': 4.0.8 + '@types/ember__engine': 4.0.11 '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10(@babel/core@7.27.3) - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14240,7 +14205,7 @@ snapshots: dependencies: '@glimmer/component': 1.1.2(@babel/core@7.27.3) '@types/ember': 4.0.11 - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__engine': 4.0.11 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) @@ -14271,21 +14236,15 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__debug@4.0.8(@babel/core@7.27.3)': + '@types/ember__debug@4.0.8': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 - transitivePeerDependencies: - - '@babel/core' - - supports-color - '@types/ember__engine@4.0.11(@babel/core@7.27.3)': + '@types/ember__engine@4.0.11': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 - transitivePeerDependencies: - - '@babel/core' - - supports-color '@types/ember__error@4.0.6': {} @@ -14306,7 +14265,7 @@ snapshots: '@types/ember': 4.0.11(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) '@types/ember__object': 4.0.12(@babel/core@7.27.3) - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 transitivePeerDependencies: - '@babel/core' - supports-color @@ -14322,12 +14281,9 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__service@4.0.9(@babel/core@7.27.3)': + '@types/ember__service@4.0.9': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) - transitivePeerDependencies: - - '@babel/core' - - supports-color '@types/ember__string@3.0.15': {} @@ -14395,11 +14351,6 @@ snapshots: '@types/node': 22.15.23 optional: true - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 22.15.23 - '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 @@ -14439,8 +14390,6 @@ snapshots: '@types/minimatch@5.1.2': {} - '@types/minimist@1.2.5': {} - '@types/ms@2.1.0': {} '@types/node@20.17.51': @@ -14453,8 +14402,6 @@ snapshots: '@types/node@9.6.61': {} - '@types/normalize-package-data@2.4.4': {} - '@types/q@1.5.8': {} '@types/qs@6.14.0': {} @@ -14510,15 +14457,15 @@ snapshots: '@types/node': 20.17.51 optional: true - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.1 + eslint: 9.27.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -14528,14 +14475,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.4.1(supports-color@8.1.1) - eslint: 8.57.1 + eslint: 9.27.0(jiti@2.4.2) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -14551,12 +14498,12 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1(supports-color@8.1.1) - eslint: 8.57.1 + eslint: 9.27.0(jiti@2.4.2) ts-api-utils: 1.4.3(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 @@ -14597,13 +14544,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - eslint: 8.57.1 + eslint: 9.27.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript @@ -14618,8 +14565,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.3.0': {} - '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -15042,8 +14987,6 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 - arrify@1.0.1: {} - asap@2.0.6: {} asn1.js@4.10.1: @@ -15682,6 +15625,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-remove-types@1.0.1: + dependencies: + '@babel/core': 7.27.3(supports-color@8.1.1) + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.27.3) + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.3) + prettier: 2.8.8 + transitivePeerDependencies: + - supports-color + babel-runtime@6.26.0: dependencies: core-js: 2.6.12 @@ -15932,18 +15884,6 @@ snapshots: transitivePeerDependencies: - supports-color - broccoli-builder@0.18.14: - dependencies: - broccoli-node-info: 1.1.0 - heimdalljs: 0.2.6 - promise-map-series: 0.2.3 - quick-temp: 0.1.8 - rimraf: 2.7.1 - rsvp: 3.6.2 - silent-error: 1.1.1 - transitivePeerDependencies: - - supports-color - broccoli-caching-writer@2.3.1: dependencies: broccoli-kitchen-sink-helpers: 0.2.9 @@ -16110,8 +16050,6 @@ snapshots: broccoli-node-api@1.7.0: {} - broccoli-node-info@1.1.0: {} - broccoli-node-info@2.2.0: {} broccoli-output-wrapper@3.2.5: @@ -16550,6 +16488,11 @@ snapshots: normalize-url: 6.1.0 responselike: 2.0.1 + cacheable@1.9.0: + dependencies: + hookified: 1.9.0 + keyv: 5.3.3 + calculate-cache-key-for-tree@2.0.0: dependencies: json-stable-stringify: 1.3.0 @@ -16585,13 +16528,6 @@ snapshots: camelcase-css@2.0.1: {} - camelcase-keys@7.0.2: - dependencies: - camelcase: 6.3.0 - map-obj: 4.3.0 - quick-lru: 5.1.1 - type-fest: 1.4.0 - camelcase@5.3.1: {} camelcase@6.3.0: {} @@ -16741,6 +16677,8 @@ snapshots: ci-info@3.9.0: {} + ci-info@4.2.0: {} + cipher-base@1.0.6: dependencies: inherits: 2.0.4 @@ -16920,14 +16858,12 @@ snapshots: readable-stream: 2.3.8 typedarray: 0.0.6 - concurrently@8.2.2: + concurrently@9.1.2: dependencies: chalk: 4.1.2 - date-fns: 2.30.0 lodash: 4.17.21 rxjs: 7.8.2 shell-quote: 1.8.2 - spawn-command: 0.0.2 supports-color: 8.1.1 tree-kill: 1.2.2 yargs: 17.7.2 @@ -17073,6 +17009,15 @@ snapshots: optionalDependencies: typescript: 5.8.3 + cosmiconfig@9.0.0(typescript@5.8.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.8.3 + create-ecdh@4.0.4: dependencies: bn.js: 4.12.2 @@ -17184,9 +17129,9 @@ snapshots: mdn-data: 2.0.14 source-map: 0.6.1 - css-tree@2.3.1: + css-tree@3.1.0: dependencies: - mdn-data: 2.0.30 + mdn-data: 2.12.2 source-map-js: 1.2.1 css-what@3.4.2: {} @@ -17257,9 +17202,7 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - date-fns@2.30.0: - dependencies: - '@babel/runtime': 7.27.3 + date-fns@3.6.0: {} date-time@2.1.0: dependencies: @@ -17289,15 +17232,6 @@ snapshots: optionalDependencies: supports-color: 8.1.1 - decamelize-keys@1.1.1: - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - - decamelize@1.2.0: {} - - decamelize@5.0.1: {} - decimal.js@10.5.0: {} decode-named-character-reference@1.1.0: @@ -17408,6 +17342,8 @@ snapshots: detect-indent@6.1.0: {} + detect-indent@7.0.1: {} + detect-libc@1.0.3: optional: true @@ -17415,6 +17351,8 @@ snapshots: detect-newline@3.1.0: {} + detect-newline@4.0.1: {} + detect-node@2.1.0: optional: true @@ -17422,6 +17360,8 @@ snapshots: diff@5.2.0: {} + diff@7.0.0: {} + diffie-hellman@5.0.3: dependencies: bn.js: 4.12.2 @@ -17439,10 +17379,6 @@ snapshots: dlv@1.1.3: {} - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-element-descriptors@0.5.1: {} dom-serializer@0.2.2: @@ -17676,18 +17612,18 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - ember-animated-tools@2.0.0(@babel/core@7.27.3)(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2): + ember-animated-tools@2.0.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2): dependencies: '@embroider/addon-shim': 1.10.0 decorator-transforms: 1.2.1(@babel/core@7.27.3) - ember-animated: 2.2.0(@babel/core@7.27.3)(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2) + ember-animated: 2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2) transitivePeerDependencies: - '@babel/core' - '@ember/test-helpers' - '@glint/template' - supports-color - ember-animated@2.2.0(@babel/core@7.27.3)(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2): + ember-animated@2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2): dependencies: '@embroider/addon-shim': 1.10.0 '@embroider/macros': 1.18.0(@glint/template@1.5.2) @@ -17695,7 +17631,7 @@ snapshots: decorator-transforms: 2.3.0(@babel/core@7.27.3) ember-element-helper: 0.8.8 optionalDependencies: - '@ember/test-helpers': 3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9) + '@ember/test-helpers': 5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -17780,10 +17716,10 @@ snapshots: - supports-color - webpack - ember-cli-app-version@6.0.1(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): + ember-cli-app-version@7.0.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: ember-cli-babel: 7.26.11 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) git-repo-info: 2.1.1 transitivePeerDependencies: - supports-color @@ -17876,21 +17812,20 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-dependency-checker@3.3.3(ember-cli@5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)): + ember-cli-dependency-checker@3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)): dependencies: chalk: 2.4.2 - ember-cli: 5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) + ember-cli: 6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) find-yarn-workspace-root: 2.0.0 is-git-url: 1.0.0 resolve: 1.22.10 semver: 5.7.2 - ember-cli-deprecation-workflow@2.2.0: + ember-cli-deprecation-workflow@3.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: - '@ember/string': 3.1.1 - broccoli-funnel: 3.0.8 - broccoli-merge-trees: 4.2.0 - broccoli-plugin: 4.0.7 + '@babel/core': 7.27.3(supports-color@8.1.1) + ember-cli-babel: 8.2.0(@babel/core@7.27.3) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) transitivePeerDependencies: - supports-color @@ -17952,8 +17887,6 @@ snapshots: ember-cli-is-package-missing@1.0.0: {} - ember-cli-lodash-subset@2.0.1: {} - ember-cli-normalize-entity-name@1.0.0: dependencies: silent-error: 1.1.1 @@ -17993,12 +17926,6 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-test-loader@3.1.0: - dependencies: - ember-cli-babel: 7.26.11 - transitivePeerDependencies: - - supports-color - ember-cli-typescript-blueprint-polyfill@0.1.0: dependencies: chalk: 4.1.2 @@ -18006,24 +17933,6 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-typescript@2.0.2(@babel/core@7.27.3): - dependencies: - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.3) - '@babel/plugin-transform-typescript': 7.4.5(@babel/core@7.27.3) - ansi-to-html: 0.6.15 - debug: 4.4.1(supports-color@8.1.1) - ember-cli-babel-plugin-helpers: 1.1.1 - execa: 1.0.0 - fs-extra: 7.0.1 - resolve: 1.22.10 - rsvp: 4.8.5 - semver: 6.3.1 - stagehand: 1.0.1 - walk-sync: 1.1.4 - transitivePeerDependencies: - - '@babel/core' - - supports-color - ember-cli-typescript@3.0.0(@babel/core@7.27.3): dependencies: '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.27.3) @@ -18097,11 +18006,11 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli@5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7): + ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7): dependencies: - '@pnpm/find-workspace-dir': 6.0.3 + '@pnpm/find-workspace-dir': 1000.1.0 + babel-remove-types: 1.0.1 broccoli: 3.5.2 - broccoli-builder: 0.18.14 broccoli-concat: 4.2.5 broccoli-config-loader: 1.0.1 broccoli-config-replace: 1.1.2 @@ -18116,17 +18025,16 @@ snapshots: calculate-cache-key-for-tree: 2.0.0 capture-exit: 2.0.0 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.2.0 clean-base-url: 1.0.0 compression: 1.8.0 configstore: 5.0.1 console-ui: 3.1.2 - content-tag: 2.0.3 + content-tag: 3.1.3 core-object: 3.1.5 dag-map: 2.0.2 - diff: 5.2.0 + diff: 7.0.0 ember-cli-is-package-missing: 1.0.0 - ember-cli-lodash-subset: 2.0.1 ember-cli-normalize-entity-name: 1.0.0 ember-cli-preprocess-registry: 5.0.1 ember-cli-string-utils: 1.1.0 @@ -18154,26 +18062,25 @@ snapshots: is-language-code: 3.1.0 isbinaryfile: 5.0.4 lodash: 4.17.21 - markdown-it: 13.0.2 - markdown-it-terminal: 0.4.0(markdown-it@13.0.2) + markdown-it: 14.1.0 + markdown-it-terminal: 0.4.0(markdown-it@14.1.0) minimatch: 7.4.6 morgan: 1.10.0 nopt: 3.0.6 - npm-package-arg: 10.1.0 + npm-package-arg: 12.0.2 os-locale: 5.0.0 p-defer: 3.0.0 portfinder: 1.0.37 promise-map-series: 0.3.0 promise.hash.helper: 1.0.8 quick-temp: 0.1.8 - remove-types: 1.0.0 resolve: 1.22.10 resolve-package-path: 4.0.3 safe-stable-stringify: 2.5.0 sane: 5.0.1 semver: 7.7.2 silent-error: 1.1.1 - sort-package-json: 1.57.0 + sort-package-json: 2.15.1 symlink-or-copy: 1.3.1 temp: 0.9.4 testem: 3.16.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) @@ -18181,7 +18088,7 @@ snapshots: tree-sync: 2.1.0 walk-sync: 3.0.0 watch-detector: 1.0.2 - workerpool: 6.5.1 + workerpool: 9.3.0 yam: 1.0.0 transitivePeerDependencies: - arc-templates @@ -18248,7 +18155,7 @@ snapshots: - '@babel/core' - supports-color - ember-cognito@2.0.0(@glint/template@1.5.2)(ember-simple-auth@7.1.3(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9): + ember-cognito@2.0.0(@glint/template@1.5.2)(ember-simple-auth@7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9): dependencies: '@aws-amplify/auth': 4.6.17(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0)) '@aws-amplify/core': 4.7.15(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0)) @@ -18257,7 +18164,7 @@ snapshots: ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-simple-auth: 7.1.3(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + ember-simple-auth: 7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) transitivePeerDependencies: - '@glint/template' - encoding @@ -18285,10 +18192,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cookies@1.3.0(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): + ember-cookies@1.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: '@embroider/addon-shim': 1.10.0 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) transitivePeerDependencies: - supports-color @@ -18324,16 +18231,16 @@ snapshots: transitivePeerDependencies: - supports-color - ember-electron@7.0.0(ember-cli-dependency-checker@3.3.3(ember-cli@5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)))(ember-cli@5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7))(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(encoding@0.1.13): + ember-electron@7.0.0(ember-cli-dependency-checker@3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)))(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(encoding@0.1.13): dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) '@electron-forge/core': 7.8.1(encoding@0.1.13) chalk: 4.1.2 debug: 4.4.1(supports-color@8.1.1) - ember-cli: 5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) + ember-cli: 6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) ember-cli-babel: 8.2.0(@babel/core@7.27.3) - ember-cli-dependency-checker: 3.3.3(ember-cli@5.11.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)) - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-cli-dependency-checker: 3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) execa: 5.1.1 find-yarn-workspace-root: 2.0.0 ncp: 2.0.0 @@ -18352,6 +18259,21 @@ snapshots: transitivePeerDependencies: - supports-color + ember-eslint-parser@0.5.9(@babel/core@7.27.3)(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): + dependencies: + '@babel/core': 7.27.3(supports-color@8.1.1) + '@babel/eslint-parser': 7.27.1(@babel/core@7.27.3)(eslint@9.27.0(jiti@2.4.2)) + '@glimmer/syntax': 0.92.3 + 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 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + transitivePeerDependencies: + - eslint + ember-event-helpers@0.1.1: dependencies: ember-cli-babel: 7.26.11 @@ -18378,12 +18300,12 @@ snapshots: - encoding - supports-color - ember-functions-as-helper-polyfill@2.1.3(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): + ember-functions-as-helper-polyfill@2.1.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: ember-cli-babel: 7.26.11 ember-cli-typescript: 5.3.0 ember-cli-version-checker: 5.1.2 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) transitivePeerDependencies: - supports-color @@ -18396,32 +18318,28 @@ snapshots: transitivePeerDependencies: - supports-color - ember-inflector@4.0.3(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): + ember-inflector@4.0.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: ember-cli-babel: 7.26.11 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) transitivePeerDependencies: - supports-color - ember-inputmask@2.0.0(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9): + ember-inputmask@2.0.0(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(webpack@5.99.9): dependencies: ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) inputmask: 5.0.9 transitivePeerDependencies: - '@glint/template' - supports-color - webpack - ember-load-initializers@2.1.2(@babel/core@7.27.3): + ember-load-initializers@3.0.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: - ember-cli-babel: 7.26.11 - ember-cli-typescript: 2.0.2(@babel/core@7.27.3) - transitivePeerDependencies: - - '@babel/core' - - supports-color + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) ember-local-storage@2.0.6: dependencies: @@ -18436,10 +18354,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-math-helpers@4.2.1(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): + ember-math-helpers@4.2.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: '@embroider/addon-shim': 1.10.0 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) transitivePeerDependencies: - supports-color @@ -18462,7 +18380,7 @@ snapshots: - '@babel/core' - supports-color - ember-orbit@0.17.3(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9): + ember-orbit@0.17.3(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(webpack@5.99.9): dependencies: '@orbit/coordinator': 0.17.0 '@orbit/core': 0.17.0 @@ -18477,30 +18395,26 @@ snapshots: ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-cli-typescript: 4.2.1 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) transitivePeerDependencies: - '@glint/template' - supports-color - webpack - ember-qunit@8.1.1(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(qunit@2.24.1): + ember-qunit@9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1): dependencies: - '@ember/test-helpers': 3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9) + '@ember/test-helpers': 5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2) '@embroider/addon-shim': 1.10.0 '@embroider/macros': 1.18.0(@glint/template@1.5.2) - ember-cli-test-loader: 3.1.0 - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) qunit: 2.24.1 qunit-theme-ember: 1.0.0 transitivePeerDependencies: - '@glint/template' - supports-color - ember-resolver@11.0.1(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): + ember-resolver@13.1.1: dependencies: ember-cli-babel: 7.26.11 - optionalDependencies: - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - supports-color @@ -18528,62 +18442,61 @@ snapshots: - '@babel/core' - supports-color - ember-simple-auth@7.1.3(@ember/test-helpers@3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): + ember-simple-auth@7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: '@ember/test-waiters': 3.1.0 '@embroider/addon-shim': 1.10.0 '@embroider/macros': 1.18.0(@glint/template@1.5.2) ember-cli-is-package-missing: 1.0.0 - ember-cookies: 1.3.0(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-cookies: 1.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) silent-error: 1.1.1 optionalDependencies: - '@ember/test-helpers': 3.3.1(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9) + '@ember/test-helpers': 5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2) transitivePeerDependencies: - '@glint/template' - supports-color - ember-sinon-qunit@7.5.0(@babel/core@7.27.3)(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(qunit@2.24.1)(sinon@17.0.2): + ember-sinon-qunit@7.5.0(@babel/core@7.27.3)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.1)(sinon@17.0.2): dependencies: '@embroider/addon-shim': 1.10.0 '@types/sinon': 17.0.4 decorator-transforms: 2.3.0(@babel/core@7.27.3) - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) qunit: 2.24.1 sinon: 17.0.2 transitivePeerDependencies: - '@babel/core' - supports-color - ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9): + ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5): dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) '@ember/edition-utils': 1.2.0 - '@glimmer/compiler': 0.92.4 - '@glimmer/component': 1.1.2(@babel/core@7.27.3) - '@glimmer/destroyable': 0.92.3 - '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.92.3 - '@glimmer/interfaces': 0.92.3 - '@glimmer/manager': 0.92.4 - '@glimmer/node': 0.92.4 - '@glimmer/opcode-compiler': 0.92.4 - '@glimmer/owner': 0.92.3 - '@glimmer/program': 0.92.4 - '@glimmer/reference': 0.92.3 - '@glimmer/runtime': 0.92.4 - '@glimmer/syntax': 0.92.3 - '@glimmer/util': 0.92.3 - '@glimmer/validator': 0.92.3 - '@glimmer/vm': 0.92.3 - '@glimmer/vm-babel-plugins': 0.92.3(@babel/core@7.27.3) + '@embroider/addon-shim': 1.10.0 + '@glimmer/compiler': 0.94.10 + '@glimmer/component': 2.0.0 + '@glimmer/destroyable': 0.94.8 + '@glimmer/global-context': 0.93.4 + '@glimmer/interfaces': 0.94.6 + '@glimmer/manager': 0.94.9 + '@glimmer/node': 0.94.9 + '@glimmer/opcode-compiler': 0.94.9 + '@glimmer/owner': 0.93.4 + '@glimmer/program': 0.94.9 + '@glimmer/reference': 0.94.8 + '@glimmer/runtime': 0.94.10 + '@glimmer/syntax': 0.94.9 + '@glimmer/util': 0.94.8 + '@glimmer/validator': 0.94.8 + '@glimmer/vm': 0.94.8 + '@glimmer/vm-babel-plugins': 0.93.4(@babel/core@7.27.3) '@simple-dom/interface': 1.4.0 backburner.js: 2.8.0 broccoli-file-creator: 2.1.1 broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli-babel: 8.2.0(@babel/core@7.27.3) ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -18600,10 +18513,8 @@ snapshots: silent-error: 1.1.1 simple-html-tokenizer: 0.5.11 transitivePeerDependencies: - - '@glint/template' - rsvp - supports-color - - webpack ember-svg-jar@2.6.3(@glint/template@1.5.2): dependencies: @@ -18648,20 +18559,20 @@ snapshots: transitivePeerDependencies: - supports-color - ember-template-lint@5.13.0: + ember-template-lint@6.1.0: dependencies: '@lint-todo/utils': 13.1.1 aria-query: 5.3.2 chalk: 5.4.1 - ci-info: 3.9.0 - date-fns: 2.30.0 + ci-info: 4.2.0 + date-fns: 3.6.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 + find-up: 7.0.0 + fuse.js: 7.1.0 get-stdin: 9.0.0 - globby: 13.2.2 + globby: 14.1.0 is-glob: 4.0.3 language-tags: 1.0.9 micromatch: 4.0.8 @@ -18720,11 +18631,11 @@ snapshots: transitivePeerDependencies: - supports-color - ember-truth-helpers@4.0.3(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): + ember-truth-helpers@4.0.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: '@embroider/addon-shim': 1.10.0 - ember-functions-as-helper-polyfill: 2.1.3(ember-source@5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) - ember-source: 5.12.0(@glimmer/component@1.1.2(@babel/core@7.27.3))(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) + ember-functions-as-helper-polyfill: 2.1.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) transitivePeerDependencies: - supports-color @@ -18790,8 +18701,6 @@ snapshots: entities@2.2.0: {} - entities@3.0.1: {} - entities@4.5.0: {} entities@6.0.0: {} @@ -18938,68 +18847,57 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@8.57.1): + eslint-compat-utils@0.5.1(eslint@9.27.0(jiti@2.4.2)): dependencies: - eslint: 8.57.1 + eslint: 9.27.0(jiti@2.4.2) semver: 7.7.2 - eslint-config-prettier@9.1.0(eslint@8.57.1): + eslint-config-prettier@9.1.0(eslint@9.27.0(jiti@2.4.2)): dependencies: - eslint: 8.57.1 + eslint: 9.27.0(jiti@2.4.2) eslint-formatter-kakoune@1.0.0: {} - eslint-plugin-ember@11.12.0(eslint@8.57.1): + eslint-plugin-ember@12.5.0(@babel/core@7.27.3)(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): 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.9(@babel/core@7.27.3)(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) 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) + eslint: 9.27.0(jiti@2.4.2) + eslint-utils: 3.0.0(eslint@9.27.0(jiti@2.4.2)) 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 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - - supports-color + - '@babel/core' - eslint-plugin-es-x@7.8.0(eslint@8.57.1): + eslint-plugin-es-x@7.8.0(eslint@9.27.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 8.57.1 - eslint-compat-utils: 0.5.1(eslint@8.57.1) + eslint: 9.27.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-n@17.18.0(eslint@8.57.1): + eslint-plugin-n@17.18.0(eslint@9.27.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) enhanced-resolve: 5.18.1 - eslint: 8.57.1 - eslint-plugin-es-x: 7.8.0(eslint@8.57.1) + eslint: 9.27.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.27.0(jiti@2.4.2)) get-tsconfig: 4.10.1 globals: 15.15.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.7.2 - eslint-plugin-prettier@5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.3): - dependencies: - eslint: 8.57.1 - prettier: 3.5.3 - prettier-linter-helpers: 1.0.0 - synckit: 0.11.6 - optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@8.57.1) - - eslint-plugin-qunit@8.1.2(eslint@8.57.1): + eslint-plugin-qunit@8.1.2(eslint@9.27.0(jiti@2.4.2)): dependencies: - eslint-utils: 3.0.0(eslint@8.57.1) + eslint-utils: 3.0.0(eslint@9.27.0(jiti@2.4.2)) requireindex: 1.2.0 transitivePeerDependencies: - eslint @@ -19019,65 +18917,71 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@8.57.1): + eslint-scope@8.3.0: dependencies: - eslint: 8.57.1 + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-utils@3.0.0(eslint@9.27.0(jiti@2.4.2)): + dependencies: + eslint: 9.27.0(jiti@2.4.2) eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} eslint-visitor-keys@3.4.3: {} - eslint@8.57.1: + eslint-visitor-keys@4.2.0: {} + + eslint@9.27.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/config-array': 0.20.0 + '@eslint/config-helpers': 0.2.2 + '@eslint/core': 0.14.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.27.0 + '@eslint/plugin-kit': 0.3.1 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.1(supports-color@8.1.1) - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 + optionalDependencies: + jiti: 2.4.2 transitivePeerDependencies: - supports-color esm@3.2.25: {} - espree@9.6.1: + espree@10.3.0: dependencies: acorn: 8.14.1 acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.2.0 esprima@3.0.0: {} @@ -19289,8 +19193,6 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-diff@1.3.0: {} - fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -19339,6 +19241,10 @@ snapshots: dependencies: pend: 1.2.0 + fdir@6.4.5(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -19359,13 +19265,13 @@ snapshots: escape-string-regexp: 5.0.0 is-unicode-supported: 1.3.0 - file-entry-cache@6.0.1: + file-entry-cache@10.1.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 6.1.9 - file-entry-cache@7.0.2: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-uri-to-path@1.0.0: optional: true @@ -19466,6 +19372,12 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 + find-up@7.0.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + find-yarn-workspace-root@2.0.0: dependencies: micromatch: 4.0.8 @@ -19513,11 +19425,16 @@ snapshots: matcher-collection: 2.0.1 walk-sync: 2.2.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.3 keyv: 4.5.4 - rimraf: 3.0.2 + + flat-cache@6.1.9: + dependencies: + cacheable: 1.9.0 + flatted: 3.3.3 + hookified: 1.9.0 flatted@3.3.3: {} @@ -19732,7 +19649,7 @@ snapshots: functions-have-names@1.2.3: {} - fuse.js@6.6.2: {} + fuse.js@7.1.0: {} galactus@1.0.0: dependencies: @@ -19841,7 +19758,7 @@ snapshots: dependencies: assert-plus: 1.0.0 - git-hooks-list@1.0.3: {} + git-hooks-list@3.2.0: {} git-repo-info@2.1.1: {} @@ -19951,9 +19868,7 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} globals@15.15.0: {} @@ -19966,17 +19881,6 @@ snapshots: globalyzer@0.1.0: {} - globby@10.0.0: - dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - glob: 7.2.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - globby@11.1.0: dependencies: array-union: 2.1.0 @@ -19994,6 +19898,15 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 + globby@14.1.0: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.4 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 + globjoin@0.1.4: {} globrex@0.1.2: {} @@ -20066,8 +19979,6 @@ snapshots: ajv: 6.12.6 har-schema: 2.0.0 - hard-rejection@2.1.0: {} - has-ansi@2.0.0: dependencies: ansi-regex: 2.1.1 @@ -20196,15 +20107,17 @@ snapshots: dependencies: parse-passwd: 1.0.0 + hookified@1.9.0: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 - hosted-git-info@6.1.3: + hosted-git-info@8.1.0: dependencies: - lru-cache: 7.18.3 + lru-cache: 10.4.3 html-encoding-sniffer@2.0.1: dependencies: @@ -20335,6 +20248,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.4: {} + image-size@0.7.5: optional: true @@ -20367,8 +20282,6 @@ snapshots: indent-string@4.0.0: {} - indent-string@5.0.0: {} - indexeddb-export-import@2.1.5: {} infer-owner@1.0.4: {} @@ -20658,7 +20571,7 @@ snapshots: is-plain-obj@1.1.0: {} - is-plain-obj@2.1.0: {} + is-plain-obj@4.1.0: {} is-plain-object@2.0.4: dependencies: @@ -21071,6 +20984,10 @@ snapshots: dependencies: json-buffer: 3.0.1 + keyv@5.3.3: + dependencies: + '@keyv/serialize': 1.0.3 + kind-of@3.2.2: dependencies: is-buffer: 1.1.6 @@ -21085,6 +21002,8 @@ snapshots: known-css-properties@0.29.0: {} + known-css-properties@0.36.0: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -21140,9 +21059,9 @@ snapshots: lines-and-columns@1.2.4: {} - linkify-it@4.0.1: + linkify-it@5.0.0: dependencies: - uc.micro: 1.0.6 + uc.micro: 2.1.0 listr2@7.0.2: dependencies: @@ -21336,10 +21255,6 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -21403,29 +21318,26 @@ snapshots: map-cache@0.2.2: {} - map-obj@1.0.1: {} - - map-obj@4.3.0: {} - map-visit@1.0.0: dependencies: object-visit: 1.0.1 - markdown-it-terminal@0.4.0(markdown-it@13.0.2): + markdown-it-terminal@0.4.0(markdown-it@14.1.0): dependencies: ansi-styles: 3.2.1 cardinal: 1.0.0 cli-table: 0.3.11 lodash.merge: 4.6.2 - markdown-it: 13.0.2 + markdown-it: 14.1.0 - markdown-it@13.0.2: + markdown-it@14.1.0: dependencies: argparse: 2.0.1 - entities: 3.0.1 - linkify-it: 4.0.1 - mdurl: 1.0.1 - uc.micro: 1.0.6 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 marky@1.3.0: {} @@ -21478,11 +21390,11 @@ snapshots: mdn-data@2.0.14: {} - mdn-data@2.0.30: {} - mdn-data@2.0.4: {} - mdurl@1.0.1: {} + mdn-data@2.12.2: {} + + mdurl@2.0.0: {} media-typer@0.3.0: {} @@ -21519,20 +21431,7 @@ snapshots: electron: 33.4.11 electron-positioner: 4.1.0 - meow@10.1.5: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 7.0.2 - decamelize: 5.0.1 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 8.0.0 - redent: 4.0.0 - trim-newlines: 4.1.1 - type-fest: 1.4.0 - yargs-parser: 20.2.9 + meow@13.2.0: {} merge-descriptors@1.0.3: {} @@ -21911,8 +21810,6 @@ snapshots: mimic-response@4.0.0: {} - min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.2(webpack@5.99.9): dependencies: schema-utils: 4.3.2 @@ -21949,12 +21846,6 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimist-options@4.1.0: - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - minimist@1.2.8: {} minipass-collect@1.0.2: @@ -22222,13 +22113,6 @@ snapshots: semver: 5.7.2 validate-npm-package-license: 3.0.4 - normalize-package-data@3.0.3: - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.16.1 - semver: 7.7.2 - validate-npm-package-license: 3.0.4 - normalize-path@2.1.1: dependencies: remove-trailing-separator: 1.1.0 @@ -22239,12 +22123,12 @@ snapshots: normalize-url@8.0.1: {} - npm-package-arg@10.1.0: + npm-package-arg@12.0.2: dependencies: - hosted-git-info: 6.1.3 - proc-log: 3.0.0 + hosted-git-info: 8.1.0 + proc-log: 5.0.0 semver: 7.7.2 - validate-npm-package-name: 5.0.1 + validate-npm-package-name: 6.0.0 npm-run-path@2.0.2: dependencies: @@ -22674,6 +22558,8 @@ snapshots: path-type@4.0.0: {} + path-type@6.0.0: {} + pbkdf2@3.1.2: dependencies: create-hash: 1.2.0 @@ -22692,6 +22578,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pify@4.0.1: {} @@ -22788,7 +22676,7 @@ snapshots: postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@6.0.0(postcss@8.5.3): + postcss-safe-parser@7.0.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -22822,10 +22710,6 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: - dependencies: - fast-diff: 1.3.0 - prettier-plugin-ember-template-tag@2.0.5(prettier@3.5.3): dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) @@ -22856,7 +22740,7 @@ snapshots: proc-log@2.0.1: {} - proc-log@3.0.0: {} + proc-log@5.0.0: {} process-nextick-args@2.0.1: {} @@ -22960,6 +22844,8 @@ snapshots: inherits: 2.0.4 pump: 2.0.1 + punycode.js@2.3.1: {} + punycode@1.4.1: {} punycode@2.3.1: {} @@ -23130,25 +23016,12 @@ snapshots: find-up: 2.1.0 read-pkg: 2.0.0 - read-pkg-up@8.0.0: - dependencies: - find-up: 5.0.0 - read-pkg: 6.0.0 - type-fest: 1.4.0 - read-pkg@2.0.0: dependencies: load-json-file: 2.0.0 normalize-package-data: 2.5.0 path-type: 2.0.0 - read-pkg@6.0.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 1.4.0 - readable-stream@1.0.34: dependencies: core-util-is: 1.0.3 @@ -23209,11 +23082,6 @@ snapshots: dependencies: resolve: 1.22.10 - redent@4.0.0: - dependencies: - indent-string: 5.0.0 - strip-indent: 4.0.0 - redeyed@1.0.1: dependencies: esprima: 3.0.0 @@ -23851,6 +23719,8 @@ snapshots: slash@4.0.0: {} + slash@5.1.0: {} + slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -23961,14 +23831,16 @@ snapshots: sort-object-keys@1.1.3: {} - sort-package-json@1.57.0: + sort-package-json@2.15.1: dependencies: - detect-indent: 6.1.0 - detect-newline: 3.1.0 - git-hooks-list: 1.0.3 - globby: 10.0.0 - is-plain-obj: 2.1.0 + detect-indent: 7.0.1 + detect-newline: 4.0.1 + get-stdin: 9.0.0 + git-hooks-list: 3.2.0 + is-plain-obj: 4.1.0 + semver: 7.7.2 sort-object-keys: 1.1.3 + tinyglobby: 0.2.14 source-list-map@2.0.1: {} @@ -24009,8 +23881,6 @@ snapshots: spawn-args@0.2.0: {} - spawn-command@0.0.2: {} - spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -24235,10 +24105,6 @@ snapshots: strip-final-newline@3.0.0: {} - strip-indent@4.0.0: - dependencies: - min-indent: 1.0.1 - strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -24253,89 +24119,79 @@ snapshots: schema-utils: 3.3.0 webpack: 5.99.9 - style-search@0.1.0: {} - styled_string@0.0.1: {} - stylelint-config-recommended-scss@13.1.0(postcss@8.5.3)(stylelint@15.11.0(typescript@5.8.3)): + stylelint-config-recommended-scss@13.1.0(postcss@8.5.3)(stylelint@16.19.1(typescript@5.8.3)): dependencies: postcss-scss: 4.0.9(postcss@8.5.3) - stylelint: 15.11.0(typescript@5.8.3) - stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@5.8.3)) - stylelint-scss: 5.3.2(stylelint@15.11.0(typescript@5.8.3)) + stylelint: 16.19.1(typescript@5.8.3) + stylelint-config-recommended: 13.0.0(stylelint@16.19.1(typescript@5.8.3)) + stylelint-scss: 5.3.2(stylelint@16.19.1(typescript@5.8.3)) optionalDependencies: postcss: 8.5.3 - stylelint-config-recommended@13.0.0(stylelint@15.11.0(typescript@5.8.3)): + stylelint-config-recommended@13.0.0(stylelint@16.19.1(typescript@5.8.3)): dependencies: - stylelint: 15.11.0(typescript@5.8.3) + stylelint: 16.19.1(typescript@5.8.3) - stylelint-config-standard-scss@11.1.0(postcss@8.5.3)(stylelint@15.11.0(typescript@5.8.3)): + stylelint-config-standard-scss@11.1.0(postcss@8.5.3)(stylelint@16.19.1(typescript@5.8.3)): dependencies: - stylelint: 15.11.0(typescript@5.8.3) - stylelint-config-recommended-scss: 13.1.0(postcss@8.5.3)(stylelint@15.11.0(typescript@5.8.3)) - stylelint-config-standard: 34.0.0(stylelint@15.11.0(typescript@5.8.3)) + stylelint: 16.19.1(typescript@5.8.3) + stylelint-config-recommended-scss: 13.1.0(postcss@8.5.3)(stylelint@16.19.1(typescript@5.8.3)) + stylelint-config-standard: 34.0.0(stylelint@16.19.1(typescript@5.8.3)) optionalDependencies: postcss: 8.5.3 - stylelint-config-standard@34.0.0(stylelint@15.11.0(typescript@5.8.3)): + stylelint-config-standard@34.0.0(stylelint@16.19.1(typescript@5.8.3)): dependencies: - stylelint: 15.11.0(typescript@5.8.3) - stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@5.8.3)) + stylelint: 16.19.1(typescript@5.8.3) + stylelint-config-recommended: 13.0.0(stylelint@16.19.1(typescript@5.8.3)) - stylelint-prettier@4.1.0(prettier@3.5.3)(stylelint@15.11.0(typescript@5.8.3)): - dependencies: - prettier: 3.5.3 - prettier-linter-helpers: 1.0.0 - stylelint: 15.11.0(typescript@5.8.3) - - stylelint-scss@5.3.2(stylelint@15.11.0(typescript@5.8.3)): + stylelint-scss@5.3.2(stylelint@16.19.1(typescript@5.8.3)): dependencies: known-css-properties: 0.29.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - stylelint: 15.11.0(typescript@5.8.3) + stylelint: 16.19.1(typescript@5.8.3) - stylelint@15.11.0(typescript@5.8.3): + stylelint@16.19.1(typescript@5.8.3): dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 8.3.6(typescript@5.8.3) + cosmiconfig: 9.0.0(typescript@5.8.3) css-functions-list: 3.2.3 - css-tree: 2.3.1 + css-tree: 3.1.0 debug: 4.4.1(supports-color@8.1.1) fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 7.0.2 + file-entry-cache: 10.1.0 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 5.3.2 - import-lazy: 4.0.0 + ignore: 7.0.4 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.29.0 + known-css-properties: 0.36.0 mathml-tag-names: 2.1.3 - meow: 10.1.5 + meow: 13.2.0 micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 postcss: 8.5.3 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 6.0.0(postcss@8.5.3) - postcss-selector-parser: 6.1.2 + postcss-safe-parser: 7.0.1(postcss@8.5.3) + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 - strip-ansi: 6.0.1 - style-search: 0.1.0 supports-hyperlinks: 3.2.0 svg-tags: 1.0.0 table: 6.9.0 @@ -24431,10 +24287,6 @@ snapshots: transitivePeerDependencies: - supports-color - synckit@0.11.6: - dependencies: - '@pkgr/core': 0.2.4 - table@6.9.0: dependencies: ajv: 8.17.1 @@ -24620,8 +24472,6 @@ snapshots: - walrus - whiskers - text-table@0.2.0: {} - textextensions@2.6.0: {} thenify-all@1.6.0: @@ -24689,6 +24539,11 @@ snapshots: transitivePeerDependencies: - supports-color + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.5(picomatch@4.0.2) + picomatch: 4.0.2 + titleize@3.0.0: {} tldts-core@6.1.86: {} @@ -24815,8 +24670,6 @@ snapshots: transitivePeerDependencies: - supports-color - trim-newlines@4.1.1: {} - trim-repeated@1.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -24854,8 +24707,6 @@ snapshots: type-fest@0.13.1: optional: true - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@0.7.1: {} @@ -24914,7 +24765,7 @@ snapshots: typescript@5.8.3: {} - uc.micro@1.0.6: {} + uc.micro@2.1.0: {} uglify-js@3.19.3: optional: true @@ -24952,6 +24803,10 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.1.0: {} + + unicorn-magic@0.3.0: {} + union-value@1.0.1: dependencies: arr-union: 3.1.0 @@ -25113,7 +24968,7 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validate-npm-package-name@5.0.1: {} + validate-npm-package-name@6.0.0: {} validate-peer-dependencies@1.2.0: dependencies: @@ -25433,6 +25288,8 @@ snapshots: workerpool@6.5.1: {} + workerpool@9.3.0: {} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 diff --git a/tests/test-helper.ts b/tests/test-helper.ts index 532bf944e..775e1cf75 100644 --- a/tests/test-helper.ts +++ b/tests/test-helper.ts @@ -1,5 +1,6 @@ import { setApplication } from '@ember/test-helpers'; -import { start } from 'ember-qunit'; +import { setupEmberOnerrorValidation, start } from 'ember-qunit'; +import { loadTests } from 'ember-qunit/test-loader'; import setupSinon from 'ember-sinon-qunit'; import * as QUnit from 'qunit'; import { setup } from 'qunit-dom'; @@ -8,10 +9,10 @@ import './helpers/flash-message'; import Application from 'swach/app'; import config from 'swach/config/environment'; -setup(QUnit.assert); - setApplication(Application.create(config.APP)); +setup(QUnit.assert); setupSinon(); - +setupEmberOnerrorValidation(); +loadTests(); start(); From 88d0c0c2c5f4c363914ee9c441add3062c765501 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Wed, 28 May 2025 22:16:07 -0400 Subject: [PATCH 02/23] Update some TS things --- .github/workflows/ci.yml | 53 ++++ .stylelintrc.js | 11 +- .template-lintrc.js | 2 + app/config/environment.d.ts | 8 +- ...on-workflow.js => deprecation-workflow.ts} | 0 app/index.html | 12 +- app/routes/colors.ts | 2 +- app/routes/contrast.ts | 2 +- app/routes/kuler.ts | 2 +- app/routes/palettes.ts | 2 +- app/routes/settings/cloud/index.ts | 2 +- app/routes/settings/data.ts | 2 +- app/routes/settings/index.ts | 2 +- config/ember-cli-update.json | 3 +- electron-app/sentry-symbols.js | 2 +- electron-app/src/handle-file-urls.js | 2 +- eslint.config.mjs | 61 ++-- package.json | 21 +- pnpm-lock.yaml | 300 +++++++++--------- tests/ember-electron/.eslintrc.js | 5 - tests/helpers/index.ts | 43 +++ tests/index.html | 26 +- tsconfig.json | 40 +-- 23 files changed, 341 insertions(+), 262 deletions(-) create mode 100644 .github/workflows/ci.yml rename app/{deprecation-workflow.js => deprecation-workflow.ts} (100%) delete mode 100644 tests/ember-electron/.eslintrc.js create mode 100644 tests/helpers/index.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..5494bdcf5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,53 @@ +name: CI + +on: + push: + branches: + - main + - master + pull_request: {} + +concurrency: + group: ci-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: "Lint" + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - name: Install Node + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: pnpm + - name: Install Dependencies + run: pnpm install --frozen-lockfile + - name: Lint + run: pnpm lint + + test: + name: "Test" + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - name: Install Node + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: pnpm + - name: Install Dependencies + run: pnpm install --frozen-lockfile + - name: Run Tests + run: pnpm test diff --git a/.stylelintrc.js b/.stylelintrc.js index 95b3217e9..72ea31828 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -1,13 +1,6 @@ 'use strict'; module.exports = { - extends: ['stylelint-config-standard-scss', 'stylelint-prettier/recommended'], - rules: { - 'scss/at-rule-no-unknown': [ - true, - { - ignoreAtRules: ['tailwind'], - }, - ], - }, + extends: ['stylelint-config-standard-scss'], + rules: { 'scss/at-rule-no-unknown': [true, { ignoreAtRules: ['tailwind'] }] }, }; diff --git a/.template-lintrc.js b/.template-lintrc.js index 8921c1a1a..450080d2c 100644 --- a/.template-lintrc.js +++ b/.template-lintrc.js @@ -3,6 +3,8 @@ module.exports = { extends: ['recommended'], rules: { + 'no-at-ember-render-modifiers': false, + 'no-builtin-form-components': false, 'no-curly-component-invocation': { allow: ['svg-jar', '-with-dynamic-vars'], }, diff --git a/app/config/environment.d.ts b/app/config/environment.d.ts index 79c4b9fda..533c3c549 100644 --- a/app/config/environment.d.ts +++ b/app/config/environment.d.ts @@ -1,15 +1,15 @@ -export default config; - /** * Type declarations for - * import config from 'my-app/config/environment' + * import config from 'swach/config/environment' */ declare const config: { environment: string; modulePrefix: string; podModulePrefix: string; - locationType: string; + locationType: 'history' | 'hash' | 'none'; rootURL: string; APP: Record; SCHEMA_VERSION: number; }; + +export default config; diff --git a/app/deprecation-workflow.js b/app/deprecation-workflow.ts similarity index 100% rename from app/deprecation-workflow.js rename to app/deprecation-workflow.ts diff --git a/app/index.html b/app/index.html index 9ecc7670c..7749b32af 100644 --- a/app/index.html +++ b/app/index.html @@ -1,15 +1,15 @@ - + - + Swach - - + + {{content-for "head"}} - - + + {{content-for "head-footer"}} diff --git a/app/routes/colors.ts b/app/routes/colors.ts index 706005915..52e1791ce 100644 --- a/app/routes/colors.ts +++ b/app/routes/colors.ts @@ -1,4 +1,4 @@ -import type Transition from '@ember/routing/-private/transition'; +import type Transition from '@ember/routing/transition';; import Route from '@ember/routing/route'; import { service } from '@ember/service'; diff --git a/app/routes/contrast.ts b/app/routes/contrast.ts index 88e70795e..16998463d 100644 --- a/app/routes/contrast.ts +++ b/app/routes/contrast.ts @@ -1,4 +1,4 @@ -import type Transition from '@ember/routing/-private/transition'; +import type Transition from '@ember/routing/transition';; import Route from '@ember/routing/route'; import { service } from '@ember/service'; diff --git a/app/routes/kuler.ts b/app/routes/kuler.ts index 81c671d2a..5878b8d85 100644 --- a/app/routes/kuler.ts +++ b/app/routes/kuler.ts @@ -1,4 +1,4 @@ -import type Transition from '@ember/routing/-private/transition'; +import type Transition from '@ember/routing/transition';; import Route from '@ember/routing/route'; import { service } from '@ember/service'; diff --git a/app/routes/palettes.ts b/app/routes/palettes.ts index bfe02be2d..9aa1ba98d 100644 --- a/app/routes/palettes.ts +++ b/app/routes/palettes.ts @@ -1,4 +1,4 @@ -import type Transition from '@ember/routing/-private/transition'; +import type Transition from '@ember/routing/transition';; import Route from '@ember/routing/route'; import { service } from '@ember/service'; diff --git a/app/routes/settings/cloud/index.ts b/app/routes/settings/cloud/index.ts index e89bea467..d711ef075 100644 --- a/app/routes/settings/cloud/index.ts +++ b/app/routes/settings/cloud/index.ts @@ -1,4 +1,4 @@ -import type Transition from '@ember/routing/-private/transition'; +import type Transition from '@ember/routing/transition'; import Route from '@ember/routing/route'; import type Router from '@ember/routing/router-service'; import { service } from '@ember/service'; diff --git a/app/routes/settings/data.ts b/app/routes/settings/data.ts index a4d10686d..50a3e0b5b 100644 --- a/app/routes/settings/data.ts +++ b/app/routes/settings/data.ts @@ -1,4 +1,4 @@ -import type Transition from '@ember/routing/-private/transition'; +import type Transition from '@ember/routing/transition';; import Route from '@ember/routing/route'; import { service } from '@ember/service'; diff --git a/app/routes/settings/index.ts b/app/routes/settings/index.ts index d1b29d111..244bac7ac 100644 --- a/app/routes/settings/index.ts +++ b/app/routes/settings/index.ts @@ -1,4 +1,4 @@ -import type Transition from '@ember/routing/-private/transition'; +import type Transition from '@ember/routing/transition';; import Route from '@ember/routing/route'; import { service } from '@ember/service'; diff --git a/config/ember-cli-update.json b/config/ember-cli-update.json index 3f53bafd2..d56936bed 100644 --- a/config/ember-cli-update.json +++ b/config/ember-cli-update.json @@ -12,7 +12,8 @@ "isBaseBlueprint": true, "options": [ "--pnpm", - "--ci-provider=github" + "--ci-provider=github", + "--typescript" ] } ] diff --git a/electron-app/sentry-symbols.js b/electron-app/sentry-symbols.js index 478d9caaa..4e794b64f 100644 --- a/electron-app/sentry-symbols.js +++ b/electron-app/sentry-symbols.js @@ -6,7 +6,7 @@ let download; try { SentryCli = require('@sentry/cli'); download = require('electron-download'); -} catch (e) { +} catch { console.error('ERROR: Missing required packages, please run:'); console.error('npm install --save-dev @sentry/cli electron-download'); process.exit(1); diff --git a/electron-app/src/handle-file-urls.js b/electron-app/src/handle-file-urls.js index 52e5d8ca3..96f6b4857 100644 --- a/electron-app/src/handle-file-urls.js +++ b/electron-app/src/handle-file-urls.js @@ -26,7 +26,7 @@ async function getAssetPath(emberAppDir, url) { try { await access(appPath); return appPath; - } catch (e) { + } catch { return urlPath; } } diff --git a/eslint.config.mjs b/eslint.config.mjs index f6c3298fd..9d0a65d38 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -19,23 +19,33 @@ import ember from "eslint-plugin-ember/recommended"; import n from "eslint-plugin-n"; import qunit from "eslint-plugin-qunit"; import globals from "globals"; +import ts from "typescript-eslint"; -const esmParserOptions = { - ecmaFeatures: { modules: true }, - ecmaVersion: "latest", - requireConfigFile: false, - babelOptions: { - plugins: [ - ["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }], - ], +const parserOptions = { + esm: { + js: { + ecmaFeatures: { modules: true }, + ecmaVersion: "latest", + requireConfigFile: false, + babelOptions: { + plugins: [ + [ + "@babel/plugin-proposal-decorators", + { decoratorsBeforeExport: true }, + ], + ], + }, + }, + ts: { projectService: true, tsconfigRootDir: import.meta.dirname }, }, }; -export default [ +export default ts.config( js.configs.recommended, - eslintConfigPrettier, ember.configs.base, ember.configs.gjs, + ember.configs.gts, + eslintConfigPrettier, /** * Ignores must be in their own object * https://eslint.org/docs/latest/use/configure/ignore @@ -45,10 +55,10 @@ export default [ "declarations/", // ember-electron - "/electron-app/node_modules/", - "/electron-app/out/", - "/electron-app/ember-dist/", - "/electron-app/ember-test/", + "electron-app/node_modules/", + "electron-app/out/", + "electron-app/ember-dist/", + "electron-app/ember-test/", "electron-out/", // Sentry @@ -57,6 +67,7 @@ export default [ "dist/", "node_modules/", "coverage/", + "types/", "!**/.*", ], }, @@ -68,11 +79,23 @@ export default [ { files: ["**/*.{js,gjs}"], languageOptions: { - parserOptions: esmParserOptions, + parserOptions: parserOptions.esm.js, globals: { ...globals.browser }, }, }, - { files: ["tests/**/*-test.{js,gjs}"], plugins: { qunit } }, + { + files: ["**/*.{ts,gts}"], + languageOptions: { + parser: ember.parser, + parserOptions: parserOptions.esm.ts, + }, + extends: [...ts.configs.recommendedTypeChecked, ember.configs.gts], + rules: { + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-call": "off", + }, + }, + { files: ["tests/**/*-test.{js,gjs,ts,gts}"], plugins: { qunit } }, /** * CJS node files */ @@ -87,9 +110,9 @@ export default [ "index.js", ".prettierrc.js", ".stylelintrc.js", - ".tailwind.config.js", ".template-lintrc.js", "ember-cli-build.js", + "tailwind.config.js", ], plugins: { n }, @@ -109,8 +132,8 @@ export default [ languageOptions: { sourceType: "module", ecmaVersion: "latest", - parserOptions: esmParserOptions, + parserOptions: parserOptions.esm.js, globals: { ...globals.node }, }, }, -]; +); diff --git a/package.json b/package.json index d9d481ead..6ddf9b8ca 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,9 @@ "repository": "https://github.com/shipshapecode/swach", "license": "MIT", "author": { - "name": "Robert Wagner", + "name": "Robbie Wagner", "email": "rwwagner90@gmail.com", - "url": "https://github.com/rwwagner90" + "url": "https://github.com/RobbieTheWagner" }, "directories": { "doc": "doc", @@ -52,10 +52,10 @@ "@gavant/glint-template-types": "^0.4.0", "@glimmer/component": "^2.0.0", "@glimmer/tracking": "^1.1.2", - "@glint/core": "^1.5.0", - "@glint/environment-ember-loose": "^1.5.0", - "@glint/environment-ember-template-imports": "^1.5.0", - "@glint/template": "^1.5.0", + "@glint/core": "^1.5.2", + "@glint/environment-ember-loose": "^1.5.2", + "@glint/environment-ember-template-imports": "^1.5.2", + "@glint/template": "^1.5.2", "@jaames/iro": "^5.5.2", "@orbit/coordinator": "^0.17.0", "@orbit/indexeddb": "^0.17.2", @@ -68,12 +68,12 @@ "@release-it-plugins/workspaces": "^4.2.0", "@sentry/ember": "^7.120.1", "@tailwindcss/forms": "^0.5.9", + "@tsconfig/ember": "^3.0.10", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/ember": "^4.0.11", + "@types/eslint__js": "^8.42.3", "@types/qunit": "^2.19.12", "@types/sinon": "^17.0.3", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^6.21.0", "aws4fetch": "^1.0.20", "babel-preset-env": "^1.7.0", "broccoli-asset-rev": "^3.0.0", @@ -83,7 +83,7 @@ "ember-animated": "^2.0.1", "ember-animated-tools": "^2.0.0", "ember-auto-import": "^2.10.0", - "ember-cli": "6.4.0", + "ember-cli": "~6.4.0", "ember-cli-app-version": "^7.0.0", "ember-cli-babel": "^8.2.0", "ember-cli-clean-css": "^3.0.0", @@ -149,7 +149,8 @@ "tailwindcss": "^3.4.16", "throttle-debounce": "^5.0.2", "tracked-built-ins": "^3.4.0", - "typescript": "^5.7.2", + "typescript": "^5.8.3", + "typescript-eslint": "^8.31.1", "wcag-contrast": "^3.0.0", "webpack": "^5.99.7" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8baf420a5..47ab7e109 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,16 +66,16 @@ importers: specifier: ^1.1.2 version: 1.1.2 '@glint/core': - specifier: ^1.5.0 + specifier: ^1.5.2 version: 1.5.2(typescript@5.8.3) '@glint/environment-ember-loose': - specifier: ^1.5.0 + specifier: ^1.5.2 version: 1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)) '@glint/environment-ember-template-imports': - specifier: ^1.5.0 + specifier: ^1.5.2 version: 1.5.2(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(@types/ember__array@4.0.10(@babel/core@7.27.3))(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__controller@4.0.12(@babel/core@7.27.3))(@types/ember__object@4.0.12(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3))(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.27.3)))(@glint/template@1.5.2)(@types/ember__component@4.0.22(@babel/core@7.27.3))(@types/ember__routing@4.0.22(@babel/core@7.27.3)) '@glint/template': - specifier: ^1.5.0 + specifier: ^1.5.2 version: 1.5.2 '@jaames/iro': specifier: ^5.5.2 @@ -116,21 +116,21 @@ importers: '@trivago/prettier-plugin-sort-imports': specifier: ^4.3.0 version: 4.3.0(prettier@3.5.3) + '@tsconfig/ember': + specifier: ^3.0.10 + version: 3.0.10 '@types/ember': specifier: ^4.0.11 version: 4.0.11(@babel/core@7.27.3) + '@types/eslint__js': + specifier: ^8.42.3 + version: 8.42.3 '@types/qunit': specifier: ^2.19.12 version: 2.19.12 '@types/sinon': specifier: ^17.0.3 version: 17.0.4 - '@typescript-eslint/eslint-plugin': - specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) aws4fetch: specifier: ^1.0.20 version: 1.0.20 @@ -159,7 +159,7 @@ importers: specifier: ^2.10.0 version: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli: - specifier: 6.4.0 + specifier: ~6.4.0 version: 6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) ember-cli-app-version: specifier: ^7.0.0 @@ -295,7 +295,7 @@ importers: version: 9.1.0(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-ember: specifier: ^12.5.0 - version: 12.5.0(@babel/core@7.27.3)(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) + version: 12.5.0(@babel/core@7.27.3)(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-n: specifier: ^17.17.0 version: 17.18.0(eslint@9.27.0(jiti@2.4.2)) @@ -357,8 +357,11 @@ importers: specifier: ^3.4.0 version: 3.4.0(@babel/core@7.27.3) typescript: - specifier: ^5.7.2 + specifier: ^5.8.3 version: 5.8.3 + typescript-eslint: + specifier: ^8.31.1 + version: 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) wcag-contrast: specifier: ^3.0.0 version: 3.0.0 @@ -2489,6 +2492,9 @@ packages: '@vue/compiler-sfc': optional: true + '@tsconfig/ember@3.0.10': + resolution: {integrity: sha512-qFIlJIMsn25frlp2WOtX/OxNxfsYeqM7OdSXB88vgvRqU9ElV3KpQc2EhmchoKpHoKB3oiLPIJNRuf5xcxjamw==} + '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -2597,6 +2603,9 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/eslint__js@8.42.3': + resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} + '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} @@ -2720,84 +2729,62 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.33.0': + resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser': ^8.33.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/parser@8.33.0': + resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/project-service@8.33.0': + resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.33.0': + resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/tsconfig-utils@8.33.0': + resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/type-utils@8.33.0': + resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@8.33.0': + resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.33.0': + resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/utils@8.33.0': + resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.33.0': + resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -7964,10 +7951,6 @@ packages: resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -10325,11 +10308,11 @@ packages: resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==} engines: {node: '>=0.10.0'} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} peerDependencies: - typescript: '>=4.2.0' + typescript: '>=4.8.4' ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -10415,6 +10398,13 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typescript-eslint@8.33.0: + resolution: {integrity: sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + typescript-memoize@1.1.1: resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} @@ -14094,6 +14084,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@tsconfig/ember@3.0.10': {} + '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.7 @@ -14322,6 +14314,10 @@ snapshots: '@types/estree': 1.0.7 '@types/json-schema': 7.0.15 + '@types/eslint__js@8.42.3': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree@1.0.7': {} '@types/express-serve-static-core@4.19.6': @@ -14457,113 +14453,97 @@ snapshots: '@types/node': 20.17.51 optional: true - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/type-utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 eslint: 9.27.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.4 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: + ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 debug: 4.4.1(supports-color@8.1.1) eslint: 9.27.0(jiti@2.4.2) - optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': + '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - - '@typescript-eslint/type-utils@7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 debug: 4.4.1(supports-color@8.1.1) - eslint: 9.27.0(jiti@2.4.2) - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 transitivePeerDependencies: - supports-color + - typescript - '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/scope-manager@8.33.0': + dependencies: + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 - '@typescript-eslint/types@7.18.0': {} + '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: + eslint: 9.27.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.8.3)': + '@typescript-eslint/types@8.33.0': {} + + '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 debug: 4.4.1(supports-color@8.1.1) - globby: 11.1.0 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: + ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) eslint: 9.27.0(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/visitor-keys@6.21.0': + '@typescript-eslint/visitor-keys@8.33.0': dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.33.0 + eslint-visitor-keys: 4.2.0 '@webassemblyjs/ast@1.14.1': dependencies: @@ -18259,7 +18239,7 @@ snapshots: transitivePeerDependencies: - supports-color - ember-eslint-parser@0.5.9(@babel/core@7.27.3)(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): + ember-eslint-parser@0.5.9(@babel/core@7.27.3)(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) '@babel/eslint-parser': 7.27.1(@babel/core@7.27.3)(eslint@9.27.0(jiti@2.4.2)) @@ -18270,7 +18250,7 @@ snapshots: mathml-tag-names: 2.1.3 svg-tags: 1.0.0 optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - eslint @@ -18858,11 +18838,11 @@ snapshots: eslint-formatter-kakoune@1.0.0: {} - eslint-plugin-ember@12.5.0(@babel/core@7.27.3)(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-ember@12.5.0(@babel/core@7.27.3)(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): dependencies: '@ember-data/rfc395-data': 0.0.4 css-tree: 3.1.0 - ember-eslint-parser: 0.5.9(@babel/core@7.27.3)(@typescript-eslint/parser@6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) + ember-eslint-parser: 0.5.9(@babel/core@7.27.3)(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) ember-rfc176-data: 0.3.18 eslint: 9.27.0(jiti@2.4.2) eslint-utils: 3.0.0(eslint@9.27.0(jiti@2.4.2)) @@ -18872,7 +18852,7 @@ snapshots: requireindex: 1.2.0 snake-case: 3.0.4 optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - '@babel/core' @@ -21838,10 +21818,6 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -24676,7 +24652,7 @@ snapshots: trim-right@1.0.1: {} - ts-api-utils@1.4.3(typescript@5.8.3): + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: typescript: 5.8.3 @@ -24761,6 +24737,16 @@ snapshots: typedarray@0.0.6: {} + typescript-eslint@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.27.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + typescript-memoize@1.1.1: {} typescript@5.8.3: {} diff --git a/tests/ember-electron/.eslintrc.js b/tests/ember-electron/.eslintrc.js deleted file mode 100644 index 1a4431d85..000000000 --- a/tests/ember-electron/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - env: { - node: true, - }, -}; diff --git a/tests/helpers/index.ts b/tests/helpers/index.ts new file mode 100644 index 000000000..e190f567e --- /dev/null +++ b/tests/helpers/index.ts @@ -0,0 +1,43 @@ +import { + setupApplicationTest as upstreamSetupApplicationTest, + setupRenderingTest as upstreamSetupRenderingTest, + setupTest as upstreamSetupTest, + 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: NestedHooks, options?: SetupTestOptions) { + upstreamSetupApplicationTest(hooks, options); + + // Additional setup for application tests can be done here. + // + // For example, if you need an authenticated session for each + // application test, you could do: + // + // hooks.beforeEach(async function () { + // await authenticateSession(); // ember-simple-auth + // }); + // + // This is also a good place to call test setup functions coming + // from other addons: + // + // setupIntl(hooks, 'en-us'); // ember-intl + // setupMirage(hooks); // ember-cli-mirage +} + +function setupRenderingTest(hooks: NestedHooks, options?: SetupTestOptions) { + upstreamSetupRenderingTest(hooks, options); + + // Additional setup for rendering tests can be done here. +} + +function setupTest(hooks: NestedHooks, options?: SetupTestOptions) { + upstreamSetupTest(hooks, options); + + // Additional setup for unit tests can be done here. +} + +export { setupApplicationTest, setupRenderingTest, setupTest }; diff --git a/tests/index.html b/tests/index.html index 746fc88b4..4fb89a183 100644 --- a/tests/index.html +++ b/tests/index.html @@ -1,21 +1,24 @@ - + - + Swach Tests - - + + - {{content-for "head"}} {{content-for "test-head"}} + {{content-for "head"}} + {{content-for "test-head"}} - - - + + + - {{content-for "head-footer"}} {{content-for "test-head-footer"}} + {{content-for "head-footer"}} + {{content-for "test-head-footer"}} - {{content-for "body"}} {{content-for "test-body"}} + {{content-for "body"}} + {{content-for "test-body"}}
@@ -30,6 +33,7 @@ - {{content-for "body-footer"}} {{content-for "test-body-footer"}} + {{content-for "body-footer"}} + {{content-for "test-body-footer"}} diff --git a/tsconfig.json b/tsconfig.json index 12f89a78d..f59d0f0a6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,38 +1,16 @@ { + "extends": "@tsconfig/ember", + "glint": { "environment": ["ember-loose", "ember-template-imports"] }, "compilerOptions": { - "target": "ES2022", + // 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": ".", - "module": "es6", - "allowJs": true, - "allowSyntheticDefaultImports": true, - "alwaysStrict": true, - "experimentalDecorators": true, - "inlineSourceMap": true, - "inlineSources": true, - "moduleResolution": "node", - "noEmit": true, - "noEmitOnError": false, - "noFallthroughCasesInSwitch": true, - "noImplicitAny": true, - "noImplicitReturns": false, - "noImplicitThis": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "skipLibCheck": true, - "strictNullChecks": true, - "strictPropertyInitialization": true, "paths": { "swach/tests/*": ["tests/*"], "swach/*": ["app/*"], - "*": ["types/*"], - "@ember/destroyable": ["node_modules/ember-destroyable-polyfill"], - "@glimmer/tracking/primitives/cache": [ - "node_modules/ember-cache-primitive-polyfill" - ] - } - }, - "glint": { - "environment": ["ember-loose", "ember-template-imports"] - }, - "include": ["app/**/*", "tests/**/*", "types/**/*"] + "*": ["types/*"] + }, + "types": ["ember-source/types"] + } } From 4a479a7926c7e24b7743ddd0fd8d4117cb2bd63e Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Wed, 28 May 2025 22:19:55 -0400 Subject: [PATCH 03/23] Update deprecation workflow --- app/deprecation-workflow.ts | 13 +++---------- config/deprecation-workflow.js | 9 --------- 2 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 config/deprecation-workflow.js diff --git a/app/deprecation-workflow.ts b/app/deprecation-workflow.ts index 274a689db..282f8df3a 100644 --- a/app/deprecation-workflow.ts +++ b/app/deprecation-workflow.ts @@ -10,15 +10,8 @@ setupDeprecationWorkflow({ */ throwOnUnhandled: false, workflow: [ - /* ... handlers ... */ - /* to generate this list, run your app for a while (or run the test suite), - * and then run in the browser console: - * - * deprecationWorkflow.flushDeprecations() - * - * And copy the handlers here - */ - /* example: */ - /* { handler: 'silence', matchId: 'template-action' }, */ + { handler: 'silence', matchId: 'ember-simple-auth.events.session-service' }, + { handler: 'silence', matchId: 'ember-polyfills.deprecate-assign' }, + { handler: 'silence', matchId: 'ember-string.htmlsafe-ishtmlsafe' }, ], }); diff --git a/config/deprecation-workflow.js b/config/deprecation-workflow.js deleted file mode 100644 index c5b39f1bd..000000000 --- a/config/deprecation-workflow.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -self.deprecationWorkflow = self.deprecationWorkflow || {}; -self.deprecationWorkflow.config = { - workflow: [ - { handler: 'silence', matchId: 'ember-simple-auth.events.session-service' }, - { handler: 'silence', matchId: 'ember-polyfills.deprecate-assign' }, - { handler: 'silence', matchId: 'ember-string.htmlsafe-ishtmlsafe' }, - ], -}; From cdd186920395186f6a2237d2c1242ffc1c9d8c51 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Fri, 30 May 2025 10:06:04 -0400 Subject: [PATCH 04/23] Tweak some TS things --- .github/workflows/ci.yml | 53 -------------------------------- app/{app.js => app.ts} | 0 package.json | 1 + tests/{helpers.js => helpers.ts} | 0 tests/helpers/index.js | 42 ------------------------- tests/unit/services/data-test.ts | 4 +-- 6 files changed, 3 insertions(+), 97 deletions(-) delete mode 100644 .github/workflows/ci.yml rename app/{app.js => app.ts} (100%) rename tests/{helpers.js => helpers.ts} (100%) delete mode 100644 tests/helpers/index.js diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 5494bdcf5..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: CI - -on: - push: - branches: - - main - - master - pull_request: {} - -concurrency: - group: ci-${{ github.head_ref || github.ref }} - cancel-in-progress: true - -jobs: - lint: - name: "Lint" - runs-on: ubuntu-latest - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Install Node - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: pnpm - - name: Install Dependencies - run: pnpm install --frozen-lockfile - - name: Lint - run: pnpm lint - - test: - name: "Test" - runs-on: ubuntu-latest - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Install Node - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: pnpm - - name: Install Dependencies - run: pnpm install --frozen-lockfile - - name: Run Tests - run: pnpm test diff --git a/app/app.js b/app/app.ts similarity index 100% rename from app/app.js rename to app/app.ts diff --git a/package.json b/package.json index 6ddf9b8ca..c5586c6de 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", + "lint:types": "tsc --noEmit", "make": "ember electron:make", "start": "ember serve", "test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\" --prefixColors auto", diff --git a/tests/helpers.js b/tests/helpers.ts similarity index 100% rename from tests/helpers.js rename to tests/helpers.ts diff --git a/tests/helpers/index.js b/tests/helpers/index.js deleted file mode 100644 index ab04c162d..000000000 --- a/tests/helpers/index.js +++ /dev/null @@ -1,42 +0,0 @@ -import { - setupApplicationTest as upstreamSetupApplicationTest, - setupRenderingTest as upstreamSetupRenderingTest, - setupTest as upstreamSetupTest, -} 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) { - upstreamSetupApplicationTest(hooks, options); - - // Additional setup for application tests can be done here. - // - // For example, if you need an authenticated session for each - // application test, you could do: - // - // hooks.beforeEach(async function () { - // await authenticateSession(); // ember-simple-auth - // }); - // - // This is also a good place to call test setup functions coming - // from other addons: - // - // setupIntl(hooks, 'en-us'); // ember-intl - // setupMirage(hooks); // ember-cli-mirage -} - -function setupRenderingTest(hooks, options) { - upstreamSetupRenderingTest(hooks, options); - - // Additional setup for rendering tests can be done here. -} - -function setupTest(hooks, options) { - upstreamSetupTest(hooks, options); - - // Additional setup for unit tests can be done here. -} - -export { setupApplicationTest, setupRenderingTest, setupTest }; diff --git a/tests/unit/services/data-test.ts b/tests/unit/services/data-test.ts index 86903932c..9b206dbf2 100644 --- a/tests/unit/services/data-test.ts +++ b/tests/unit/services/data-test.ts @@ -95,7 +95,7 @@ module('Unit | Service | data', function (hooks) { 'store has one palette after synchronize', ); - assert.ok(palettes[0].isColorHistory, 'palette isColorHistory'); + assert.ok(palettes[0]?.isColorHistory, 'palette isColorHistory'); assert.strictEqual( dataService.colorHistory, @@ -140,7 +140,7 @@ module('Unit | Service | data', function (hooks) { 'store has one palette after synchronize', ); - assert.ok(palettes[0].isColorHistory, 'palette isColorHistory'); + assert.ok(palettes[0]?.isColorHistory, 'palette isColorHistory'); assert.strictEqual( dataService.colorHistory, From c792fb81768d4d1e5fcf298a221712ada2cf147f Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Fri, 30 May 2025 10:35:36 -0400 Subject: [PATCH 05/23] More TS fixes --- app/controllers/palettes.ts | 4 ++-- app/data-sources/backup.ts | 18 ++++++++--------- tests/acceptance/settings/cloud-test.ts | 1 + tests/helpers.ts | 27 ++++++++++++++++++++----- tests/unit/services/data-test.ts | 5 +++-- 5 files changed, 37 insertions(+), 18 deletions(-) diff --git a/app/controllers/palettes.ts b/app/controllers/palettes.ts index 436474c91..75ba9a615 100644 --- a/app/controllers/palettes.ts +++ b/app/controllers/palettes.ts @@ -168,10 +168,10 @@ export default class PalettesController extends Controller { }; const colorsList = targetList.map((c) => c.$identity); - const existingColor = targetList.findBy('hex', sourceColor.hex); + const existingColor = targetList.find((c) => c.hex === sourceColor.hex); if (existingColor) { - const colorToRemove = colorsList.findBy('id', existingColor.id); + const colorToRemove = colorsList.find((c) => c.id === existingColor.id); if (colorToRemove) { colorsList.removeObject(colorToRemove); diff --git a/app/data-sources/backup.ts b/app/data-sources/backup.ts index 64ccf125e..93f8cb5ee 100644 --- a/app/data-sources/backup.ts +++ b/app/data-sources/backup.ts @@ -44,11 +44,11 @@ export default { const newColors: InitializedRecord[] = []; for (const color of oldColors) { - if (color.relationships?.palettes) { - const paletteIdentities = color.relationships.palettes + if (color.relationships?.['palettes']) { + const paletteIdentities = color.relationships['palettes'] .data as RecordIdentity[]; - delete color.relationships.palettes; + delete color.relationships['palettes']; if (paletteIdentities?.length) { color.relationships.palette = { data: paletteIdentities[0] }; @@ -74,18 +74,18 @@ export default { : { type: 'color', id: colorCopy.id }; }; - if (palette.relationships?.colors.data) { + if (palette.relationships?.['colors']?.data) { // Replace color in palette with color copy - palette.relationships.colors.data = - palette.relationships.colors.data.map( + palette.relationships['colors'].data = + palette.relationships['colors'].data.map( replaceColorIdWithCopy, ); } - if (palette.attributes?.colorOrder) { + if (palette.attributes?.['colorOrder']) { // Replace color id in colorOrder - palette.attributes.colorOrder = - palette.attributes.colorOrder.map(replaceColorIdWithCopy); + palette.attributes['colorOrder'] = + palette.attributes['colorOrder'].map(replaceColorIdWithCopy); } } } diff --git a/tests/acceptance/settings/cloud-test.ts b/tests/acceptance/settings/cloud-test.ts index 90ee7bdcb..20e491ec2 100644 --- a/tests/acceptance/settings/cloud-test.ts +++ b/tests/acceptance/settings/cloud-test.ts @@ -28,6 +28,7 @@ module('Acceptance | settings/cloud', function (hooks) { assert.ok(true, 'signUp has been called'); return MockUser.create({ + // @ts-expect-error TODO: maybe fix this? username: 'testuser@gmail.com', attributes: { sub: 'aaaabbbb-cccc-dddd-eeee-ffffgggghhhh', diff --git a/tests/helpers.ts b/tests/helpers.ts index 5d4b6527b..0f07be6bf 100644 --- a/tests/helpers.ts +++ b/tests/helpers.ts @@ -2,12 +2,22 @@ import { getContext, settled } from '@ember/test-helpers'; import { animationsSettled } from 'ember-animated/test-support'; import { waitForSource } from 'ember-orbit/test-support'; +import type Owner from '@ember/owner'; + +import type Coordinator from '@orbit/coordinator'; +import type { IndexedDBSource } from '@orbit/indexeddb'; +import type BucketClass from '@orbit/indexeddb-bucket'; + +// @ts-expect-error TODO: not yet typed import seedOrbit from './orbit/seed'; export async function waitForAll() { - const { owner } = getContext(); + const { owner } = getContext() as { owner: Owner }; + // @ts-expect-error Not sure why it says this does not exist const { services } = owner.resolveRegistration('ember-orbit:config'); - const coordinator = owner.lookup(`service:${services.coordinator}`); + const coordinator = owner.lookup( + `service:${services.coordinator}`, + ) as unknown as Coordinator; for (let source of coordinator.sources) { await waitForSource(source); @@ -17,7 +27,10 @@ export async function waitForAll() { await animationsSettled(); } -export function resetStorage(hooks, options = {}) { +export function resetStorage( + hooks: NestedHooks, + options: { seed?: { source?: string; scenario?: string } } = {}, +) { hooks.beforeEach(async function () { if (options.seed) { const sourceName = options.seed.source ?? 'backup'; @@ -28,11 +41,15 @@ export function resetStorage(hooks, options = {}) { }); hooks.afterEach(async function () { - const backup = this.owner.lookup('data-source:backup'); + const backup = this.owner.lookup( + 'data-source:backup', + ) as unknown as IndexedDBSource; await backup.cache.deleteDB(); - const bucket = this.owner.lookup('data-bucket:main'); + const bucket = this.owner.lookup('data-bucket:main') as unknown as + | BucketClass + | undefined; await bucket?.clear(); diff --git a/tests/unit/services/data-test.ts b/tests/unit/services/data-test.ts index 9b206dbf2..953851057 100644 --- a/tests/unit/services/data-test.ts +++ b/tests/unit/services/data-test.ts @@ -9,6 +9,7 @@ import type IndexedDBSource from '@orbit/indexeddb'; import type Palette from 'swach/data-models/palette'; import type DataService from 'swach/services/data'; import { resetStorage } from 'swach/tests/helpers'; +// @ts-expect-error TODO: not yet typed import seedOrbit from 'swach/tests/orbit/seed'; module('Unit | Service | data', function (hooks) { @@ -61,9 +62,9 @@ module('Unit | Service | data', function (hooks) { try { await dataService.synchronize(); - } catch (e) { + } catch (e: unknown) { assert.strictEqual( - e.message, + (e as Error).message, 'Data service: synchronize cannot be called prior to activate', ); } From 03e3bbdbcf75d0f986b2e8487a9cd138f87fb46b Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Fri, 30 May 2025 10:40:34 -0400 Subject: [PATCH 06/23] Update owners --- app/components/about.ts | 3 ++- app/components/contrast-checker.ts | 3 ++- app/components/kuler.ts | 3 ++- app/components/options-menu.ts | 3 ++- app/components/palette-row.ts | 3 ++- app/components/settings-data.ts | 3 ++- app/components/settings-menu.ts | 3 ++- app/services/nearest-color.ts | 1 - app/utils/view-transitions.ts | 14 -------------- 9 files changed, 14 insertions(+), 22 deletions(-) diff --git a/app/components/about.ts b/app/components/about.ts index 23f644f87..1a127beac 100644 --- a/app/components/about.ts +++ b/app/components/about.ts @@ -1,4 +1,5 @@ import { action } from '@ember/object'; +import type Owner from '@ember/owner'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; @@ -14,7 +15,7 @@ export default class AboutComponent extends Component { copyrightYear = new Date().getFullYear(); @tracked version = 'Version not available'; - constructor(owner: unknown, args: Record) { + constructor(owner: Owner, args: Record) { super(owner, args); if (typeof requireNode !== 'undefined') { diff --git a/app/components/contrast-checker.ts b/app/components/contrast-checker.ts index 384e13bd1..a8d137b6e 100644 --- a/app/components/contrast-checker.ts +++ b/app/components/contrast-checker.ts @@ -1,4 +1,5 @@ import { action } from '@ember/object'; +import type Owner from '@ember/owner'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; @@ -28,7 +29,7 @@ export default class ContrastChecker extends Component return score(this.wcagScore); } - constructor(owner: unknown, args: object) { + constructor(owner: Owner, args: object) { super(owner, args); if (typeof requireNode !== 'undefined') { diff --git a/app/components/kuler.ts b/app/components/kuler.ts index 562e80220..825be987f 100644 --- a/app/components/kuler.ts +++ b/app/components/kuler.ts @@ -1,4 +1,5 @@ import { action } from '@ember/object'; +import type Owner from '@ember/owner'; import { service } from '@ember/service'; import { capitalize } from '@ember/string'; import Component from '@glimmer/component'; @@ -60,7 +61,7 @@ export default class KulerComponent extends Component { @tracked palettes: Palette[] = []; @tracked selectedPalette!: Palette; - constructor(owner: unknown, args: KulerSignature['Args']) { + constructor(owner: Owner, args: KulerSignature['Args']) { super(owner, args); this._debouncedColorChange = debounce(10, this._onColorChange); diff --git a/app/components/options-menu.ts b/app/components/options-menu.ts index 032c18122..506eb6a96 100644 --- a/app/components/options-menu.ts +++ b/app/components/options-menu.ts @@ -1,3 +1,4 @@ +import type Owner from '@ember/owner'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; @@ -16,7 +17,7 @@ export default class OptionsMenu extends Component { @tracked position: 'left' | 'right' = 'right'; @tracked isShown = false; - constructor(owner: unknown, args: OptionsMenuSignature['Args']) { + constructor(owner: Owner, args: OptionsMenuSignature['Args']) { super(owner, args); this.position = this.args.position ?? 'right'; diff --git a/app/components/palette-row.ts b/app/components/palette-row.ts index f044699e0..c18e3d297 100644 --- a/app/components/palette-row.ts +++ b/app/components/palette-row.ts @@ -1,4 +1,5 @@ import { action } from '@ember/object'; +import type Owner from '@ember/owner'; import type Router from '@ember/routing/router-service'; import { service } from '@ember/service'; import Component from '@glimmer/component'; @@ -124,7 +125,7 @@ export default class PaletteRowComponent extends Component nameInput!: HTMLElement; @tracked isEditing = false; - constructor(owner: unknown, args: PaletteRowSignature['Args']) { + constructor(owner: Owner, args: PaletteRowSignature['Args']) { super(owner, args); this.menuItems = [ diff --git a/app/components/settings-data.ts b/app/components/settings-data.ts index 70e9464e6..6804a1e6b 100644 --- a/app/components/settings-data.ts +++ b/app/components/settings-data.ts @@ -1,4 +1,5 @@ import { action } from '@ember/object'; +import type Owner from '@ember/owner'; import { service } from '@ember/service'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; @@ -29,7 +30,7 @@ export default class SettingsData extends Component { @tracked isExporting = false; @tracked isImporting = false; - constructor(owner: unknown, args: Record) { + constructor(owner: Owner, args: Record) { super(owner, args); if (typeof requireNode !== 'undefined') { diff --git a/app/components/settings-menu.ts b/app/components/settings-menu.ts index 186bf60f3..2b5a67e4e 100644 --- a/app/components/settings-menu.ts +++ b/app/components/settings-menu.ts @@ -1,4 +1,5 @@ import { action } from '@ember/object'; +import type Owner from '@ember/owner'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; @@ -25,7 +26,7 @@ export default class SettingsMenu extends Component { @tracked platform?: string; - constructor(owner: unknown, args: SettingsMenuSignature['Args']) { + constructor(owner: Owner, args: SettingsMenuSignature['Args']) { super(owner, args); if (typeof requireNode !== 'undefined') { diff --git a/app/services/nearest-color.ts b/app/services/nearest-color.ts index 94341f4a6..928c1a9be 100644 --- a/app/services/nearest-color.ts +++ b/app/services/nearest-color.ts @@ -1,6 +1,5 @@ import Service from '@ember/service'; -// @ts-expect-error We do not need types for the colors list or nearest color import colorNameList from 'color-name-list'; import nearestColor from 'nearest-color'; diff --git a/app/utils/view-transitions.ts b/app/utils/view-transitions.ts index de68c1c81..38bdcebd7 100644 --- a/app/utils/view-transitions.ts +++ b/app/utils/view-transitions.ts @@ -1,23 +1,9 @@ -// Here are the types for the view transition API, but I don't know how to add them to the global scope -// interface ViewTransition { -// updateCallbackDone: Promise; -// ready: Promise; -// finished: Promise; -// skipTransition: () => void; -// } - -// interface Document { -// startViewTransition(updateCallback: () => Promise): ViewTransition; -// } - export default function viewTransitions() { - // @ts-expect-error view transition types are not available if (!document.startViewTransition) { return; } return new Promise((resolve) => { - // @ts-expect-error view transition types are not available document.startViewTransition(async () => { resolve(); }); From 89d72fbb067ef1e7f1ded8676be3d2defaad569f Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Fri, 30 May 2025 16:13:58 -0400 Subject: [PATCH 07/23] Fix more types --- app/components/color-picker.ts | 2 +- app/components/kuler.ts | 32 ++++++++-------- app/controllers/application.ts | 18 ++++----- app/controllers/kuler.ts | 3 ++ app/data-sources/backup.ts | 37 ++++++++++++++----- package.json | 3 +- pnpm-lock.yaml | 67 ++++++++++++++++++++++------------ tsconfig.json | 2 +- 8 files changed, 102 insertions(+), 62 deletions(-) diff --git a/app/components/color-picker.ts b/app/components/color-picker.ts index 2ee000b65..243759460 100644 --- a/app/components/color-picker.ts +++ b/app/components/color-picker.ts @@ -133,7 +133,7 @@ export default class ColorPickerComponent extends Component c.hex)); } /** diff --git a/app/components/kuler.ts b/app/components/kuler.ts index 825be987f..dfc8d2b52 100644 --- a/app/components/kuler.ts +++ b/app/components/kuler.ts @@ -13,13 +13,14 @@ import type { IpcRenderer } from 'electron'; import { debounce } from 'throttle-debounce'; import 'swach/components/kuler-palette-row'; +import type ColorModel from 'swach/data-models/color'; import type { ColorPOJO } from 'swach/services/color-utils'; import type ColorUtils from 'swach/services/color-utils'; type harmonyTypes = 'analogous' | 'monochromatic' | 'tetrad' | 'triad'; class Palette { - @tracked colors = []; + @tracked colors: ColorModel[] = []; @tracked selectedColorIndex = 0; createdAt: Date; @@ -39,9 +40,7 @@ class Palette { interface KulerSignature { Element: HTMLDivElement; Args: { - // TODO: correctly type this instead of using `any` - // eslint-disable-next-line @typescript-eslint/no-explicit-any - baseColor: any; + baseColor: ColorModel; }; } @@ -53,10 +52,10 @@ export default class KulerComponent extends Component { // eslint-disable-next-line @typescript-eslint/no-explicit-any _debouncedColorChange!: any; colorPicker!: iro.ColorPicker; - harmonies = ['analogous', 'monochromatic', 'tetrad', 'triad']; + harmonies = ['analogous', 'monochromatic', 'tetrad', 'triad'] as const; declare ipcRenderer: IpcRenderer; - @tracked baseColor; + @tracked baseColor!: ColorModel; @tracked colors = []; @tracked palettes: Palette[] = []; @tracked selectedPalette!: Palette; @@ -118,21 +117,22 @@ export default class KulerComponent extends Component { for (const harmony of this.harmonies) { const palette = new Palette(harmony as harmonyTypes); - //@ts-expect-error TODO fix this error later - let colors = new TinyColor(this.baseColor.hex)[harmony](5); + const tinyColors = new TinyColor(this.baseColor.hex)[harmony](5); - colors = colors.map((color: TinyColor) => { + const colorPOJOs = tinyColors.map((color: TinyColor) => { return this.colorUtils.createColorPOJO(color.toHexString()); }); - colors = colors.map((color: ColorPOJO) => color.attributes); + const colors = colorPOJOs.map( + (color: ColorPOJO) => color.attributes, + ) as unknown as ColorModel[]; palette.colors = colors; - palettes.pushObject(palette); + palettes.push(palette); } this.palettes = palettes; - this.selectedPalette = this.palettes[selectedPaletteTypeIndex]; + this.selectedPalette = this.palettes[selectedPaletteTypeIndex] as Palette; } @action @@ -144,7 +144,7 @@ export default class KulerComponent extends Component { this.palettes.indexOf(this.selectedPalette), ).then(() => { this.colorPicker.setColors( - this.selectedPalette.colors.mapBy('hex'), + this.selectedPalette.colors.map((color: ColorModel) => color.hex), this.selectedPalette.selectedColorIndex, ); }); @@ -170,7 +170,7 @@ export default class KulerComponent extends Component { if (palette) { this.selectedPalette = palette; this.colorPicker.setColors( - this.selectedPalette.colors.mapBy('hex'), + this.selectedPalette.colors.map((color: ColorModel) => color.hex), palette.selectedColorIndex, ); } @@ -200,7 +200,7 @@ export default class KulerComponent extends Component { } this.colorPicker.setColors( - this.selectedPalette.colors.mapBy('hex'), + this.selectedPalette.colors.map((color: ColorModel) => color.hex), this.selectedPalette.selectedColorIndex, ); } @@ -219,7 +219,7 @@ export default class KulerComponent extends Component { this.colorPicker = (iro.ColorPicker as any)( '#kuler-color-picker-container', { - colors: this.selectedPalette.colors.mapBy('hex'), + colors: this.selectedPalette.colors.map((color: ColorModel) => color.hex), layoutDirection: 'horizontal', layout: [ { diff --git a/app/controllers/application.ts b/app/controllers/application.ts index 6c2accbb7..e13aa8c6a 100644 --- a/app/controllers/application.ts +++ b/app/controllers/application.ts @@ -35,7 +35,7 @@ export default class ApplicationController extends Controller { @tracked colorPickerColor?: ColorModel; @tracked colorPickerIsShown = false; - get hasLoggedInBeforeAndIsAuthenticated(): boolean { + get hasLoggedInBeforeAndIsAuthenticated() { // eslint-disable-next-line ember/no-get const userHasLoggedInBefore = get(this.settings, 'userHasLoggedInBefore'); @@ -45,27 +45,27 @@ export default class ApplicationController extends Controller { ); } - get isContrastRoute(): boolean { + get isContrastRoute() { return this.router.currentRouteName === 'contrast'; } - get isKulerRoute(): boolean { + get isKulerRoute() { return this.router.currentRouteName === 'kuler'; } - get isPalettesRoute(): boolean { + get isPalettesRoute() { return this.router.currentRouteName === 'palettes'; } - get isSettingsRoute(): boolean { + get isSettingsRoute() { return this.router.currentRouteName === 'settings'; } - get isWelcomeRoute(): boolean { - return this.router.currentRouteName.includes('welcome'); + get isWelcomeRoute() { + return this.router.currentRouteName?.includes('welcome'); } - get showColorWheel(): boolean { + get showColorWheel() { return ( this.hasLoggedInBeforeAndIsAuthenticated && !this.isContrastRoute && @@ -74,7 +74,7 @@ export default class ApplicationController extends Controller { ); } - get showEyedropperIcon(): boolean { + get showEyedropperIcon() { return ( this.hasLoggedInBeforeAndIsAuthenticated && !this.isContrastRoute && diff --git a/app/controllers/kuler.ts b/app/controllers/kuler.ts index d94f33214..b82ef0d21 100644 --- a/app/controllers/kuler.ts +++ b/app/controllers/kuler.ts @@ -1,10 +1,13 @@ import Controller from '@ember/controller'; import { action } from '@ember/object'; +import type ColorModel from 'swach/data-models/color'; + export default class KulerController extends Controller { queryParams = ['colorId']; colorId = null; + declare model: ColorModel; @action goBack(): void { diff --git a/app/data-sources/backup.ts b/app/data-sources/backup.ts index 93f8cb5ee..5178b660a 100644 --- a/app/data-sources/backup.ts +++ b/app/data-sources/backup.ts @@ -4,10 +4,26 @@ import { IndexedDBSource } from '@orbit/indexeddb'; import type { InitializedRecord, RecordIdentity, + Record, RecordSchema, } from '@orbit/records'; import { clone } from '@orbit/utils'; +import type ColorModel from 'swach/data-models/color'; +import type PaletteModel from 'swach/data-models/palette'; + +type PalettePOJO = Omit & { + type: 'palette'; + relationships: { + colors: { + data: RecordIdentity[]; + }; + }; + attributes: { + colorOrder: RecordIdentity[]; + }; +}; + import ENV from 'swach/config/environment'; import type { ColorPOJO } from 'swach/services/color-utils'; @@ -51,7 +67,7 @@ export default { delete color.relationships['palettes']; if (paletteIdentities?.length) { - color.relationships.palette = { data: paletteIdentities[0] }; + color.relationships['palette'] = { data: paletteIdentities[0] }; newColors.push(color); // We start at i = 1 because we can keep the original color in a single palette. @@ -64,28 +80,29 @@ export default { newColors.push(colorCopy); const palette = palettes.find( - (record) => record.id === paletteIdentity.id, + (record): record is PalettePOJO => + record.id === paletteIdentity?.id && record.type === 'palette', ); if (palette) { - const replaceColorIdWithCopy = (c: ColorPOJO) => { + const replaceColorIdWithCopy = (c: RecordIdentity) => { return c.id !== color.id ? c : { type: 'color', id: colorCopy.id }; }; - if (palette.relationships?.['colors']?.data) { + if (palette.relationships?.colors?.data) { // Replace color in palette with color copy - palette.relationships['colors'].data = - palette.relationships['colors'].data.map( - replaceColorIdWithCopy, - ); + palette.relationships.colors.data = palette.relationships.colors.data.map( + replaceColorIdWithCopy, + ); } if (palette.attributes?.['colorOrder']) { // Replace color id in colorOrder - palette.attributes['colorOrder'] = - palette.attributes['colorOrder'].map(replaceColorIdWithCopy); + palette.attributes['colorOrder'] = palette.attributes[ + 'colorOrder' + ].map(replaceColorIdWithCopy); } } } diff --git a/package.json b/package.json index c5586c6de..427f1255e 100644 --- a/package.json +++ b/package.json @@ -69,10 +69,11 @@ "@release-it-plugins/workspaces": "^4.2.0", "@sentry/ember": "^7.120.1", "@tailwindcss/forms": "^0.5.9", - "@tsconfig/ember": "^3.0.10", "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "@tsconfig/ember": "^3.0.10", "@types/ember": "^4.0.11", "@types/eslint__js": "^8.42.3", + "@types/node": "^22.15.28", "@types/qunit": "^2.19.12", "@types/sinon": "^17.0.3", "aws4fetch": "^1.0.20", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 47ab7e109..49267e5d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -125,6 +125,9 @@ importers: '@types/eslint__js': specifier: ^8.42.3 version: 8.42.3 + '@types/node': + specifier: ^22.15.28 + version: 22.15.28 '@types/qunit': specifier: ^2.19.12 version: 2.19.12 @@ -2672,6 +2675,9 @@ packages: '@types/node@22.15.23': resolution: {integrity: sha512-7Ec1zaFPF4RJ0eXu1YT/xgiebqwqoJz8rYPDi/O2BcZ++Wpt0Kq9cl0eg6NN6bYbPnR67ZLo7St5Q3UK0SnARw==} + '@types/node@22.15.28': + resolution: {integrity: sha512-I0okKVDmyKR281I0UIFV7EWAWRnR0gkuSKob5wVcByyyhr7Px/slhkQapcYX4u00ekzNWaS1gznKZnuzxwo4pw==} + '@types/node@9.6.61': resolution: {integrity: sha512-/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ==} @@ -14121,7 +14127,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/cacheable-request@6.0.3': dependencies: @@ -14138,13 +14144,13 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/cookie@0.3.3': {} '@types/cors@2.8.18': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/debug@4.1.12': dependencies: @@ -14156,14 +14162,14 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8 - '@types/ember__engine': 4.0.11 + '@types/ember__debug': 4.0.8(@babel/core@7.27.3) + '@types/ember__engine': 4.0.11(@babel/core@7.27.3) '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10 - '@types/ember__service': 4.0.9 + '@types/ember__service': 4.0.9(@babel/core@7.27.3) '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14176,14 +14182,14 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8 - '@types/ember__engine': 4.0.11 + '@types/ember__debug': 4.0.8(@babel/core@7.27.3) + '@types/ember__engine': 4.0.11(@babel/core@7.27.3) '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10(@babel/core@7.27.3) - '@types/ember__service': 4.0.9 + '@types/ember__service': 4.0.9(@babel/core@7.27.3) '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14197,7 +14203,7 @@ snapshots: dependencies: '@glimmer/component': 1.1.2(@babel/core@7.27.3) '@types/ember': 4.0.11 - '@types/ember__engine': 4.0.11 + '@types/ember__engine': 4.0.11(@babel/core@7.27.3) '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) @@ -14228,15 +14234,21 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__debug@4.0.8': + '@types/ember__debug@4.0.8(@babel/core@7.27.3)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 + transitivePeerDependencies: + - '@babel/core' + - supports-color - '@types/ember__engine@4.0.11': + '@types/ember__engine@4.0.11(@babel/core@7.27.3)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 + transitivePeerDependencies: + - '@babel/core' + - supports-color '@types/ember__error@4.0.6': {} @@ -14257,7 +14269,7 @@ snapshots: '@types/ember': 4.0.11(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) '@types/ember__object': 4.0.12(@babel/core@7.27.3) - '@types/ember__service': 4.0.9 + '@types/ember__service': 4.0.9(@babel/core@7.27.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -14273,9 +14285,12 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__service@4.0.9': + '@types/ember__service@4.0.9(@babel/core@7.27.3)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) + transitivePeerDependencies: + - '@babel/core' + - supports-color '@types/ember__string@3.0.15': {} @@ -14322,7 +14337,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -14336,11 +14351,11 @@ snapshots: '@types/fs-extra@5.1.0': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/fs-extra@8.1.5': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/fs-extra@9.0.13': dependencies: @@ -14350,7 +14365,7 @@ snapshots: '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/graceful-fs@4.1.9': dependencies: @@ -14396,6 +14411,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@22.15.28': + dependencies: + undici-types: 6.21.0 + '@types/node@9.6.61': {} '@types/q@1.5.8': {} @@ -14413,19 +14432,19 @@ snapshots: '@types/rimraf@2.0.5': dependencies: '@types/glob': 8.1.0 - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/rsvp@4.0.9': {} '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/send': 0.17.4 '@types/sinon@17.0.4': @@ -14450,7 +14469,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.17.51 + '@types/node': 22.15.23 optional: true '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': @@ -18653,7 +18672,7 @@ snapshots: engine.io@6.6.4: dependencies: '@types/cors': 2.8.18 - '@types/node': 22.15.23 + '@types/node': 22.15.28 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -20782,7 +20801,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 merge-stream: 2.0.0 supports-color: 8.1.1 diff --git a/tsconfig.json b/tsconfig.json index f59d0f0a6..0bd64040f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,6 @@ "swach/*": ["app/*"], "*": ["types/*"] }, - "types": ["ember-source/types"] + "types": ["ember-source/types", "node"] } } From e2b28a2f808fda6baf1592991954d0fac47ff11f Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Fri, 30 May 2025 16:21:58 -0400 Subject: [PATCH 08/23] Fix more types --- app/components/login.ts | 4 ++-- app/components/register-confirm.ts | 4 ++-- app/services/data.ts | 12 ++++++------ tests/acceptance/settings/cloud-test.ts | 7 +++++-- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/components/login.ts b/app/components/login.ts index 30cda1e92..199c0533f 100644 --- a/app/components/login.ts +++ b/app/components/login.ts @@ -37,8 +37,8 @@ export default class LoginComponent extends Component { } this.router.transitionTo('settings.cloud'); - } catch (error) { - this.errorMessage = error.message || error; + } catch (error: unknown) { + this.errorMessage = (error as Error).message || error as string; } finally { this.loading = false; } diff --git a/app/components/register-confirm.ts b/app/components/register-confirm.ts index 4b4cbc9aa..c856e1742 100644 --- a/app/components/register-confirm.ts +++ b/app/components/register-confirm.ts @@ -23,8 +23,8 @@ export default class RegisterConfirm extends Component { await this.cognito.confirmSignUp(username, code); this.router.transitionTo('settings.cloud'); - } catch (err) { - this.errorMessage = err?.message; + } catch (err: unknown) { + this.errorMessage = (err as Error)?.message; } } } diff --git a/app/services/data.ts b/app/services/data.ts index 548e81c9d..867deb655 100644 --- a/app/services/data.ts +++ b/app/services/data.ts @@ -27,8 +27,8 @@ export default class DataService extends Service { if (records.length > 0) { await this.store.sync((t) => records.map((r) => { - if (r?.attributes?.hex) { - delete r.attributes.hex; + if (r?.attributes?.['hex']) { + delete r.attributes['hex']; } return t.addRecord(r); @@ -72,11 +72,11 @@ export default class DataService extends Service { }); } else if (colorHistoryPalettes.length > 1) { const remoteColorHistoryPalette = remotePaletteRecords.find( - (p) => p.attributes?.isColorHistory, + (p) => p.attributes?.['isColorHistory'], ); const preferredColorHistoryPaletteId = - remoteColorHistoryPalette?.id ?? colorHistoryPalettes[0].id; + remoteColorHistoryPalette?.id ?? colorHistoryPalettes[0]?.id; const duplicateColorHistoryPalettes: Palette[] = []; @@ -160,10 +160,10 @@ export default class DataService extends Service { palettes = palettes.map((p) => { const { id, type, attributes, relationships } = p; - if (relationships?.colors?.data) { + if (relationships?.['colors']?.data) { paletteColors.push({ palette: p, - colors: relationships.colors.data as RecordIdentity[], + colors: relationships['colors'].data as RecordIdentity[], }); } diff --git a/tests/acceptance/settings/cloud-test.ts b/tests/acceptance/settings/cloud-test.ts index 20e491ec2..070122afa 100644 --- a/tests/acceptance/settings/cloud-test.ts +++ b/tests/acceptance/settings/cloud-test.ts @@ -8,6 +8,7 @@ import { import { module, test } from 'qunit'; import sinon from 'sinon'; +import type DataService from 'swach/services/data'; import { resetStorage, waitForAll } from 'swach/tests/helpers'; import { setupApplicationTest } from 'swach/tests/helpers/index'; @@ -90,12 +91,14 @@ module('Acceptance | settings/cloud', function (hooks) { }, }); - const authenticator = this.owner.lookup('authenticator:cognito'); + const authenticator = this.owner.lookup('authenticator:cognito') as any; const authenticateStub = sinon .stub(authenticator, 'authenticate') .resolves(); - const dataService = this.owner.lookup('service:data'); + const dataService = this.owner.lookup( + 'service:data', + ) as unknown as DataService; const synchronizeStub = sinon.stub(dataService, 'synchronize').resolves(); const resetStub = sinon.stub(dataService, 'reset').resolves(); From 62cef427c1df7ab906d54cc7e8d31232701bcbe2 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Fri, 30 May 2025 21:30:42 -0400 Subject: [PATCH 09/23] More TS fixes --- app/components/edit-selected-color.ts | 2 +- app/components/forgot-password.ts | 8 +-- app/components/register.ts | 4 +- app/controllers/palettes.ts | 31 +++++---- package.json | 3 +- pnpm-lock.yaml | 95 +++++++-------------------- types/global.d.ts | 10 +-- 7 files changed, 52 insertions(+), 101 deletions(-) diff --git a/app/components/edit-selected-color.ts b/app/components/edit-selected-color.ts index 01aa7de80..8884f3bb7 100644 --- a/app/components/edit-selected-color.ts +++ b/app/components/edit-selected-color.ts @@ -83,7 +83,7 @@ export default class EditSelectedColorComponent extends Component c.hex), this.args.palette.selectedColorIndex, ); } diff --git a/app/components/forgot-password.ts b/app/components/forgot-password.ts index 26d4d67e9..51643438d 100644 --- a/app/components/forgot-password.ts +++ b/app/components/forgot-password.ts @@ -30,8 +30,8 @@ export default class ForgotPasswordComponent extends Component { await this.cognito.forgotPassword(this.username); this.isConfirming = true; - } catch (err) { - this.errorMessage = err.message; + } catch (err: unknown) { + this.errorMessage = (err as Error)?.message; } finally { this.loading = false; } @@ -49,8 +49,8 @@ export default class ForgotPasswordComponent extends Component { await this.cognito.forgotPasswordSubmit(username, code, password); this.router.transitionTo('settings.cloud'); - } catch (err) { - this.errorMessage = err.message; + } catch (err: unknown) { + this.errorMessage = (err as Error)?.message; } finally { this.loading = false; } diff --git a/app/components/register.ts b/app/components/register.ts index 8cd924361..4dc3b9b74 100644 --- a/app/components/register.ts +++ b/app/components/register.ts @@ -27,8 +27,8 @@ export default class RegisterComponent extends Component { await this.cognito.signUp(username, password, attributes); this.router.transitionTo('settings.cloud.register.confirm'); - } catch (err) { - this.errorMessage = err?.message; + } catch (err: unknown) { + this.errorMessage = (err as Error)?.message; } } } diff --git a/app/controllers/palettes.ts b/app/controllers/palettes.ts index 75ba9a615..0fddbbcf0 100644 --- a/app/controllers/palettes.ts +++ b/app/controllers/palettes.ts @@ -7,6 +7,7 @@ import { tracked } from '@glimmer/tracking'; import type { LiveQuery, Store } from 'ember-orbit'; import type { RecordOperationTerm } from '@orbit/records'; +import { TrackedArray } from 'tracked-built-ins'; import type ApplicationController from 'swach/controllers/application'; import type ColorModel from 'swach/data-models/color'; @@ -166,7 +167,7 @@ export default class PalettesController extends Controller { ...attributes, createdAt: new Date(), }; - const colorsList = targetList.map((c) => c.$identity); + const colorsList = new TrackedArray(targetList.map((c) => c.$identity)); const existingColor = targetList.find((c) => c.hex === sourceColor.hex); @@ -178,7 +179,7 @@ export default class PalettesController extends Controller { } } - colorsList.insertAt(targetIndex, { + colorsList.splice(targetIndex, 0, { type: 'color', id: colorCopy.id, }); @@ -208,12 +209,14 @@ export default class PalettesController extends Controller { sourcePalette: PaletteModel, targetIndex: number, ): Promise { - const sourceColorList = sourceList.map((c) => c.$identity); - const colorToMove = sourceColorList.findBy('id', sourceColor.id); + const sourceColorList = new TrackedArray( + sourceList.map((c) => c.$identity), + ); + const colorToMove = sourceColorList.find((c) => c.id === sourceColor.id); if (colorToMove) { sourceColorList.removeObject(colorToMove); - sourceColorList.insertAt(targetIndex, colorToMove); + sourceColorList.splice(targetIndex, 0, colorToMove); await this.store.update((t) => t.replaceAttribute(sourcePalette, 'colorOrder', sourceColorList), @@ -233,7 +236,7 @@ export default class PalettesController extends Controller { targetPalette: PaletteModel, ): Promise { const sourceColorOrder = sourceList.map((c) => c.$identity); - const colorToRemove = sourceColorOrder.findBy('id', sourceColor.id); + const colorToRemove = sourceColorOrder.find((c) => c.id === sourceColor.id); if (colorToRemove) { sourceColorOrder.removeObject(colorToRemove); @@ -246,13 +249,16 @@ export default class PalettesController extends Controller { if (!targetPalette.isColorHistory) { let insertIndex = targetIndex; - const targetColorOrder = targetList.map((c) => c.$identity); - const existingColor = targetList.findBy('hex', sourceColor.hex); + const targetColorOrder = new TrackedArray( + targetList.map((c) => c.$identity), + ); + const existingColor = targetList.find( + (c) => c.hex === sourceColor.hex, + ); if (existingColor) { - const colorToRemove = targetColorOrder.findBy( - 'id', - existingColor.id, + const colorToRemove = targetColorOrder.find( + (c) => c.id === existingColor.id, ); if (colorToRemove) { @@ -270,8 +276,7 @@ export default class PalettesController extends Controller { t.removeFromRelatedRecords(targetPalette, 'colors', existingColor); } - - targetColorOrder.insertAt(insertIndex, sourceColor.$identity); + targetColorOrder.splice(insertIndex, 0, sourceColor.$identity); operations.push( t.addToRelatedRecords(targetPalette, 'colors', sourceColor), diff --git a/package.json b/package.json index 427f1255e..16015c22c 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,6 @@ "@embroider/macros": "^1.17.2", "@embroider/webpack": "^3.2.3", "@eslint/js": "^9.25.1", - "@gavant/glint-template-types": "^0.4.0", "@glimmer/component": "^2.0.0", "@glimmer/tracking": "^1.1.2", "@glint/core": "^1.5.2", @@ -82,7 +81,7 @@ "color-name-list": "^10.28.1", "concurrently": "^9.1.2", "crypto-browserify": "^3.12.1", - "ember-animated": "^2.0.1", + "ember-animated": "^2.2.0", "ember-animated-tools": "^2.0.0", "ember-auto-import": "^2.10.0", "ember-cli": "~6.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49267e5d6..6afac64a8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,9 +56,6 @@ importers: '@eslint/js': specifier: ^9.25.1 version: 9.27.0 - '@gavant/glint-template-types': - specifier: ^0.4.0 - version: 0.4.0(ember-animated@2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.3))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@glimmer/component': specifier: ^2.0.0 version: 2.0.0 @@ -153,7 +150,7 @@ importers: specifier: ^3.12.1 version: 3.12.1 ember-animated: - specifier: ^2.0.1 + specifier: ^2.2.0 version: 2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2) ember-animated-tools: specifier: ^2.0.0 @@ -1675,36 +1672,6 @@ packages: '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@gavant/glint-template-types@0.4.0': - resolution: {integrity: sha512-XwZG608Rb4QDotdWeN9o9awQN9Ny8SoPMMS3RL3umRMSnRgOZBE8x50qIaCIzp8y0WFWUpJZ1/eUfbgT/UgLow==} - peerDependencies: - ember-animated: ^1.0.0 - ember-basic-dropdown: ^6.0.1 - ember-concurrency: ^2.0.3 - ember-concurrency-async: ^1.0.0 - ember-concurrency-ts: ^0.3.0 - ember-intl: ^5.7.2 - ember-modifier: ^3.2.7 - ember-power-select: ^5.0.0 - ember-source: ^3.28.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - ember-animated: - optional: true - ember-basic-dropdown: - optional: true - ember-concurrency: - optional: true - ember-concurrency-async: - optional: true - ember-concurrency-ts: - optional: true - ember-intl: - optional: true - ember-modifier: - optional: true - ember-power-select: - optional: true - '@glimmer/compiler@0.94.10': resolution: {integrity: sha512-SrWiaKM3AND2FQ732wtjAKol7XhCnRqit3tJShG4X0mT27Jb3zuhTI2dkfYVVMTJ23pjT/+0y+s/uGaBSirnBg==} engines: {node: '>= 18.0.0'} @@ -13072,13 +13039,6 @@ snapshots: '@gar/promisify@1.1.3': {} - '@gavant/glint-template-types@0.4.0(ember-animated@2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.3))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': - dependencies: - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) - optionalDependencies: - ember-animated: 2.2.0(@babel/core@7.27.3)(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2) - ember-modifier: 4.2.2(@babel/core@7.27.3) - '@glimmer/compiler@0.94.10': dependencies: '@glimmer/interfaces': 0.94.6 @@ -13381,14 +13341,14 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.15.28 jest-mock: 29.7.0 '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.23 + '@types/node': 22.15.28 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -13422,7 +13382,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -14162,14 +14122,14 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8(@babel/core@7.27.3) - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__debug': 4.0.8 + '@types/ember__engine': 4.0.11 '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10 - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14182,14 +14142,14 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8(@babel/core@7.27.3) - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__debug': 4.0.8 + '@types/ember__engine': 4.0.11 '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10(@babel/core@7.27.3) - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14203,7 +14163,7 @@ snapshots: dependencies: '@glimmer/component': 1.1.2(@babel/core@7.27.3) '@types/ember': 4.0.11 - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__engine': 4.0.11 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) @@ -14234,21 +14194,15 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__debug@4.0.8(@babel/core@7.27.3)': + '@types/ember__debug@4.0.8': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 - transitivePeerDependencies: - - '@babel/core' - - supports-color - '@types/ember__engine@4.0.11(@babel/core@7.27.3)': + '@types/ember__engine@4.0.11': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 - transitivePeerDependencies: - - '@babel/core' - - supports-color '@types/ember__error@4.0.6': {} @@ -14269,7 +14223,7 @@ snapshots: '@types/ember': 4.0.11(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) '@types/ember__object': 4.0.12(@babel/core@7.27.3) - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 transitivePeerDependencies: - '@babel/core' - supports-color @@ -14285,12 +14239,9 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__service@4.0.9(@babel/core@7.27.3)': + '@types/ember__service@4.0.9': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) - transitivePeerDependencies: - - '@babel/core' - - supports-color '@types/ember__string@3.0.15': {} @@ -14369,7 +14320,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 '@types/http-cache-semantics@4.0.4': {} @@ -16652,7 +16603,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -16663,7 +16614,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -20739,7 +20690,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.15.28 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -20749,7 +20700,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.23 + '@types/node': 22.15.28 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -20776,7 +20727,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.15.28 jest-util: 29.7.0 jest-regex-util@29.6.3: {} @@ -20784,7 +20735,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.15.28 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -20807,7 +20758,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.28 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 diff --git a/types/global.d.ts b/types/global.d.ts index af03b7627..6c85242d1 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -1,8 +1,6 @@ import 'ember-cli-flash'; +import '@glint/environment-ember-loose' import { ComponentLike, HelperLike, ModifierLike } from '@glint/template'; -import AnimatedContainer from '@gavant/glint-template-types/types/ember-animated/animated-container'; -import AnimatedEach from '@gavant/glint-template-types/types/ember-animated/animated-each'; -import AnimatedValue from '@gavant/glint-template-types/types/ember-animated/animated-value'; import OnClickOutsideModifier from 'ember-click-outside/modifiers/on-click-outside'; @@ -12,6 +10,7 @@ import WillDestroyModifier from 'ember-render-modifiers/modifiers/will-destroy'; import SvgJarHelper from 'ember-svg-jar/helpers/svg-jar'; +import type EmberAnimatedRegistry from 'ember-animated/template-registry'; import type EmberMathRegistry from 'ember-math-helpers/template-registry'; import type EmberTruthRegistry from 'ember-truth-helpers/template-registry'; @@ -24,11 +23,8 @@ declare module 'swach/templates/*' { declare module '@glint/environment-ember-loose/registry' { export default interface Registry - extends EmberMathRegistry, + extends EmberAnimatedRegistry, EmberMathRegistry, EmberTruthRegistry { - AnimatedContainer: typeof AnimatedContainer; - 'animated-each': typeof AnimatedEach; - AnimatedValue: typeof AnimatedValue; capitalize: HelperLike<{ Args: { Positional: [input: string]; From 80934094b0d6700de1e21179e8d554b80e092cd7 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Fri, 30 May 2025 21:37:07 -0400 Subject: [PATCH 10/23] Another one --- app/components/colors-list.ts | 4 ++-- app/components/palette-row.ts | 3 ++- app/components/palettes-list.ts | 2 +- app/components/settings-data.ts | 10 +++++----- app/controllers/palettes.ts | 2 +- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/components/colors-list.ts b/app/components/colors-list.ts index 02544ec45..d99622d52 100644 --- a/app/components/colors-list.ts +++ b/app/components/colors-list.ts @@ -34,7 +34,7 @@ export default class ColorsListComponent extends Component return palette.colors.sortBy('createdAt').reverse(); } else { return palette.colorOrder.map((color: ColorModel) => { - return palette.colors.findBy('id', color.id); + return palette.colors.find((c) => c.id === color.id); }); } } @@ -77,7 +77,7 @@ export default class ColorsListComponent extends Component return { type: 'color', id: color.id }; }); - const colorToRemove = colorsList.findBy('id', color.id); + const colorToRemove = colorsList.find((c) => c.id === color.id); if (colorToRemove) { colorsList.removeObject(colorToRemove); diff --git a/app/components/palette-row.ts b/app/components/palette-row.ts index c18e3d297..5e7d5927e 100644 --- a/app/components/palette-row.ts +++ b/app/components/palette-row.ts @@ -157,6 +157,7 @@ export default class PaletteRowComponent extends Component ), ]; + // @ts-expect-error dragSort.on does not seem to exist in TS this.dragSort.on( 'start', (event: { draggedItem: { hex: string | null } }) => { @@ -175,7 +176,7 @@ export default class PaletteRowComponent extends Component get sortedColors(): (ColorModel | undefined)[] { return this.args?.palette?.colorOrder?.map( (color: { type: string; id: string }) => { - return this.args.palette.colors.findBy('id', color.id); + return this.args.palette.colors.find((c) => c.id === color.id); }, ); } diff --git a/app/components/palettes-list.ts b/app/components/palettes-list.ts index e72808db8..85c62a6d1 100644 --- a/app/components/palettes-list.ts +++ b/app/components/palettes-list.ts @@ -61,7 +61,7 @@ export default class PalettesListComponent extends Component { if (sourceList === targetList && sourceIndex === targetIndex) return; - const movedItem = sourceList.objectAt(sourceIndex) as PaletteModel; + const movedItem = sourceList[sourceIndex] as PaletteModel; sourceList.removeAt(sourceIndex); targetList.insertAt(targetIndex, movedItem); diff --git a/app/components/settings-data.ts b/app/components/settings-data.ts index 6804a1e6b..a4c924284 100644 --- a/app/components/settings-data.ts +++ b/app/components/settings-data.ts @@ -52,7 +52,7 @@ export default class SettingsData extends Component { IDBExportImport.exportToJsonString( idbDatabase, - (err: Event, jsonString: string) => { + (err: Event | null, jsonString: string) => { if (err) { this.flashMessages.danger('An error occurred.'); // eslint-disable-next-line no-console @@ -83,13 +83,13 @@ export default class SettingsData extends Component { DBOpenRequest.onsuccess = () => { const idbDatabase = DBOpenRequest.result; - IDBExportImport.clearDatabase(idbDatabase, (err: Event) => { + IDBExportImport.clearDatabase(idbDatabase, (err: Event | null) => { if (!err) { // cleared data successfully IDBExportImport.importFromJsonString( idbDatabase, jsonString, - async (err: Event) => { + async (err: Event | null) => { if (!err) { idbDatabase.close(); @@ -106,8 +106,8 @@ export default class SettingsData extends Component { await this.store.sync((t) => records.map((r) => { - if (r?.attributes?.hex) { - delete r.attributes.hex; + if (r?.attributes?.['hex']) { + delete r.attributes['hex']; } return t.addRecord(r); diff --git a/app/controllers/palettes.ts b/app/controllers/palettes.ts index 0fddbbcf0..937022a1b 100644 --- a/app/controllers/palettes.ts +++ b/app/controllers/palettes.ts @@ -107,7 +107,7 @@ export default class PalettesController extends Controller { // If the palette is locked, we should not allow dragging colors into or out of it if (sourcePalette?.isLocked || targetPalette?.isLocked) return; - const sourceColor = sourceList.objectAt(sourceIndex); + const sourceColor = sourceList[sourceIndex]; if (sourceColor) { if (sourceArgs.isColorHistory) { From 14b4f1ac3814ca10a1b50cdd4de1f10ece483484 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sat, 31 May 2025 06:34:39 -0400 Subject: [PATCH 11/23] Finish fixing types --- app/components/colors-list.ts | 18 ++++++++++++------ app/components/kuler.ts | 23 ++++++++++++++--------- app/components/palettes-list.ts | 4 ++-- app/controllers/palettes.ts | 21 ++++++++++++++------- 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/app/components/colors-list.ts b/app/components/colors-list.ts index d99622d52..eac151d18 100644 --- a/app/components/colors-list.ts +++ b/app/components/colors-list.ts @@ -9,6 +9,7 @@ import { fadeOut } from 'ember-animated/motions/opacity'; import type { Store } from 'ember-orbit'; import type { RecordOperationTerm } from '@orbit/records'; +import { TrackedArray } from 'tracked-built-ins'; import 'swach/components/color-row'; import type ColorModel from 'swach/data-models/color'; @@ -31,9 +32,12 @@ export default class ColorsListComponent extends Component if (!palette.$isDisconnected) { if (palette.isColorHistory) { - return palette.colors.sortBy('createdAt').reverse(); + return palette.colors.sort( + (a, b) => + new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(), + ); } else { - return palette.colorOrder.map((color: ColorModel) => { + return palette.colorOrder.map((color: { type: string; id: string }) => { return palette.colors.find((c) => c.id === color.id); }); } @@ -73,14 +77,16 @@ export default class ColorsListComponent extends Component const { palette } = this.args; if (color && palette && !palette.isLocked) { - const colorsList = palette.colors.map((color) => { - return { type: 'color', id: color.id }; - }); + const colorsList = new TrackedArray<{ type: string; id: string }>( + palette.colors.map((color) => { + return { type: 'color', id: color.id }; + }), + ); const colorToRemove = colorsList.find((c) => c.id === color.id); if (colorToRemove) { - colorsList.removeObject(colorToRemove); + colorsList.splice(colorsList.indexOf(colorToRemove), 1); await this.store.update((t) => { const operations: RecordOperationTerm[] = [ diff --git a/app/components/kuler.ts b/app/components/kuler.ts index dfc8d2b52..755218c40 100644 --- a/app/components/kuler.ts +++ b/app/components/kuler.ts @@ -86,7 +86,7 @@ export default class KulerComponent extends Component { async (_event: unknown, color) => { await this._onColorChange(color); this.colorPicker.setColors( - this.selectedPalette.colors.mapBy('hex'), + this.selectedPalette.colors.map((color: ColorModel) => color.hex), this.selectedPalette.selectedColorIndex, ); }, @@ -137,8 +137,9 @@ export default class KulerComponent extends Component { @action setColorAsBase(): Promise { - this.baseColor = - this.selectedPalette.colors[this.selectedPalette.selectedColorIndex]; + this.baseColor = this.selectedPalette.colors[ + this.selectedPalette.selectedColorIndex + ] as ColorModel; return this.baseColorChanged( this.palettes.indexOf(this.selectedPalette), @@ -165,7 +166,7 @@ export default class KulerComponent extends Component { @action setSelectedPalette(event: InputEvent): void { const paletteName = (event.target).value; - const palette = this.palettes.findBy('name', paletteName); + const palette = this.palettes.find((p: Palette) => p.name === paletteName); if (palette) { this.selectedPalette = palette; @@ -189,13 +190,15 @@ export default class KulerComponent extends Component { color instanceof iro.Color ? color.rgba : color, ); - this.selectedPalette.colors.replace(selectedColorIndex, 1, [ - newColor.attributes, - ]); + this.selectedPalette.colors.splice( + selectedColorIndex, + 1, + ...[newColor.attributes as unknown as ColorModel], + ); if (selectedColorIndex === 0) { this.baseColor = - this.selectedPalette.colors[this.selectedPalette.selectedColorIndex]; + this.selectedPalette.colors[this.selectedPalette.selectedColorIndex] as ColorModel; await this.setColorAsBase(); } @@ -219,7 +222,9 @@ export default class KulerComponent extends Component { this.colorPicker = (iro.ColorPicker as any)( '#kuler-color-picker-container', { - colors: this.selectedPalette.colors.map((color: ColorModel) => color.hex), + colors: this.selectedPalette.colors.map( + (color: ColorModel) => color.hex, + ), layoutDirection: 'horizontal', layout: [ { diff --git a/app/components/palettes-list.ts b/app/components/palettes-list.ts index 85c62a6d1..53e61ed43 100644 --- a/app/components/palettes-list.ts +++ b/app/components/palettes-list.ts @@ -63,8 +63,8 @@ export default class PalettesListComponent extends Component { const operations: RecordOperationTerm[] = []; diff --git a/app/controllers/palettes.ts b/app/controllers/palettes.ts index 937022a1b..5efbcbd58 100644 --- a/app/controllers/palettes.ts +++ b/app/controllers/palettes.ts @@ -34,8 +34,10 @@ export default class PalettesController extends Controller { if (colorHistory) { return colorHistory.colors .slice() - .sortBy('createdAt') - .reverse() + .sort( + (a, b) => + new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(), + ) .slice(0, 16); } else { return []; @@ -175,7 +177,7 @@ export default class PalettesController extends Controller { const colorToRemove = colorsList.find((c) => c.id === existingColor.id); if (colorToRemove) { - colorsList.removeObject(colorToRemove); + colorsList.splice(colorsList.indexOf(colorToRemove), 1); } } @@ -215,7 +217,7 @@ export default class PalettesController extends Controller { const colorToMove = sourceColorList.find((c) => c.id === sourceColor.id); if (colorToMove) { - sourceColorList.removeObject(colorToMove); + sourceColorList.splice(sourceColorList.indexOf(colorToMove), 1); sourceColorList.splice(targetIndex, 0, colorToMove); await this.store.update((t) => @@ -235,11 +237,13 @@ export default class PalettesController extends Controller { targetIndex: number, targetPalette: PaletteModel, ): Promise { - const sourceColorOrder = sourceList.map((c) => c.$identity); + const sourceColorOrder = new TrackedArray( + sourceList.map((c) => c.$identity), + ); const colorToRemove = sourceColorOrder.find((c) => c.id === sourceColor.id); if (colorToRemove) { - sourceColorOrder.removeObject(colorToRemove); + sourceColorOrder.splice(sourceColorOrder.indexOf(colorToRemove), 1); await this.store.update((t) => { const operations: RecordOperationTerm[] = [ @@ -271,7 +275,10 @@ export default class PalettesController extends Controller { insertIndex--; } - targetColorOrder.removeObject(colorToRemove); + targetColorOrder.splice( + targetColorOrder.indexOf(colorToRemove), + 1, + ); } t.removeFromRelatedRecords(targetPalette, 'colors', existingColor); From 2d23959ffd591c7c487252231b2e49ed3e3c61c6 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sat, 31 May 2025 06:50:46 -0400 Subject: [PATCH 12/23] Fix some lint --- app/components/settings-data.ts | 2 +- app/data-sources/backup.ts | 2 +- .../store-beforequery-remote-query.js | 2 +- app/routes/settings/cloud/profile.ts | 2 +- app/services/cognito.js | 2 +- app/services/data.ts | 2 +- app/services/session.ts | 6 +++--- package.json | 1 + pnpm-lock.yaml | 14 ++++++++++---- tests/acceptance/colors-test.js | 2 +- tests/acceptance/settings-test.js | 4 ++-- tests/acceptance/settings/cloud-test.ts | 4 ++-- tests/acceptance/settings/data-test.ts | 10 +++++++--- tests/helpers.ts | 6 +++--- 14 files changed, 35 insertions(+), 24 deletions(-) diff --git a/app/components/settings-data.ts b/app/components/settings-data.ts index a4c924284..21f52cd53 100644 --- a/app/components/settings-data.ts +++ b/app/components/settings-data.ts @@ -55,7 +55,7 @@ export default class SettingsData extends Component { (err: Event | null, jsonString: string) => { if (err) { this.flashMessages.danger('An error occurred.'); - // eslint-disable-next-line no-console + console.error(err); } else { this.ipcRenderer.send('exportData', jsonString); diff --git a/app/data-sources/backup.ts b/app/data-sources/backup.ts index 5178b660a..85e1737e6 100644 --- a/app/data-sources/backup.ts +++ b/app/data-sources/backup.ts @@ -48,7 +48,7 @@ export default { const request = currentTarget as IDBRequest; const transaction = request.transaction as IDBTransaction; - // eslint-disable-next-line no-console + console.log( `migrating indexeddb from version ${oldVersion} to ${newVersion}`, ); diff --git a/app/data-strategies/store-beforequery-remote-query.js b/app/data-strategies/store-beforequery-remote-query.js index d855bdb62..84a3d2603 100644 --- a/app/data-strategies/store-beforequery-remote-query.js +++ b/app/data-strategies/store-beforequery-remote-query.js @@ -52,7 +52,7 @@ export default { }, catch(e, transform) { - // eslint-disable-next-line no-console + console.log('Error performing remote.update()', transform, e); this.source.requestQueue.skip(e); this.target.requestQueue.skip(e); diff --git a/app/routes/settings/cloud/profile.ts b/app/routes/settings/cloud/profile.ts index 9f6e6694f..a51c15a03 100644 --- a/app/routes/settings/cloud/profile.ts +++ b/app/routes/settings/cloud/profile.ts @@ -11,7 +11,7 @@ export default class SettingsAccountRoute extends Route { @service declare session: Session; model(): CognitoService['user']['attributes'] { - // eslint-disable-next-line no-console + console.log(this.cognito); return this.cognito.user?.attributes; diff --git a/app/services/cognito.js b/app/services/cognito.js index bf789c09e..6aa282cba 100644 --- a/app/services/cognito.js +++ b/app/services/cognito.js @@ -1,4 +1,4 @@ -import { inject as service } from '@ember/service'; +import { service } from '@ember/service'; import CognitoService from 'ember-cognito/services/cognito'; diff --git a/app/services/data.ts b/app/services/data.ts index 867deb655..df8c2a552 100644 --- a/app/services/data.ts +++ b/app/services/data.ts @@ -1,4 +1,4 @@ -import Service, { inject as service } from '@ember/service'; +import Service, { service } from '@ember/service'; import { tracked } from '@glimmer/tracking'; import type { Store } from 'ember-orbit'; diff --git a/app/services/session.ts b/app/services/session.ts index 8a94f36cd..a8c283ab3 100644 --- a/app/services/session.ts +++ b/app/services/session.ts @@ -1,4 +1,4 @@ -import { inject as service } from '@ember/service'; +import { service } from '@ember/service'; import BaseSessionService from 'ember-simple-auth/services/session'; @@ -16,12 +16,12 @@ export default class SessionService extends BaseSessionService { async handleAuthentication(routeAfterAuthentication: string) { super.handleAuthentication(routeAfterAuthentication); - this.swachData.synchronize(); + await this.swachData.synchronize(); } async handleInvalidation(routeAfterInvalidation: string) { super.handleInvalidation(routeAfterInvalidation); - this.swachData.reset(); + await this.swachData.reset(); } } diff --git a/package.json b/package.json index 16015c22c..cdb75e3f1 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "@ctrl/tinycolor": "^4.1.0", "@ember/optional-features": "^2.2.0", "@ember/render-modifiers": "^2.1.0", + "@ember/string": "^3.1.1", "@ember/test-helpers": "^5.2.1", "@embroider/compat": "^3.7.0", "@embroider/core": "^3.4.19", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6afac64a8..da27bc09b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,6 +38,9 @@ importers: '@ember/render-modifiers': specifier: ^2.1.0 version: 2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + '@ember/string': + specifier: ^3.1.1 + version: 3.1.1 '@ember/test-helpers': specifier: ^5.2.1 version: 5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2) @@ -14129,7 +14132,7 @@ snapshots: '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10 - '@types/ember__service': 4.0.9 + '@types/ember__service': 4.0.9(@babel/core@7.27.3) '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14149,7 +14152,7 @@ snapshots: '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10(@babel/core@7.27.3) - '@types/ember__service': 4.0.9 + '@types/ember__service': 4.0.9(@babel/core@7.27.3) '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14223,7 +14226,7 @@ snapshots: '@types/ember': 4.0.11(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) '@types/ember__object': 4.0.12(@babel/core@7.27.3) - '@types/ember__service': 4.0.9 + '@types/ember__service': 4.0.9(@babel/core@7.27.3) transitivePeerDependencies: - '@babel/core' - supports-color @@ -14239,9 +14242,12 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__service@4.0.9': + '@types/ember__service@4.0.9(@babel/core@7.27.3)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) + transitivePeerDependencies: + - '@babel/core' + - supports-color '@types/ember__string@3.0.15': {} diff --git a/tests/acceptance/colors-test.js b/tests/acceptance/colors-test.js index 3e212c331..eca2cbd2f 100644 --- a/tests/acceptance/colors-test.js +++ b/tests/acceptance/colors-test.js @@ -167,7 +167,7 @@ module('Acceptance | colors', function (hooks) { if (typeof requireNode !== 'undefined') { // TODO: We need a way to manually trigger undo and redo in Electron // const { ipcRenderer } = requireNode('electron'); - // eslint-disable-next-line qunit/no-commented-tests + // test('electron - deleting colors', async function (assert) { // await visit('/colors?paletteId=color-history-123'); // assert.dom('[data-test-color]').exists({ count: 4 }); diff --git a/tests/acceptance/settings-test.js b/tests/acceptance/settings-test.js index 5865b1816..4e52ca1b5 100644 --- a/tests/acceptance/settings-test.js +++ b/tests/acceptance/settings-test.js @@ -44,11 +44,11 @@ module('Acceptance | settings', function (hooks) { // Electron specific tests if (typeof requireNode !== 'undefined') { // TODO: these are different for Mac/Windows vs Linux, so we need specific platform tests - // eslint-disable-next-line qunit/no-commented-tests + // test('has seven inputs', function (assert) { // assert.dom('[data-test-settings-menu] input').exists({ count: 7 }); // }); - // eslint-disable-next-line qunit/no-commented-tests + // test('start on startup is not checked by default', async function (assert) { // assert.dom('[data-test-settings-startup]').isNotChecked(); // }); diff --git a/tests/acceptance/settings/cloud-test.ts b/tests/acceptance/settings/cloud-test.ts index 070122afa..833f36434 100644 --- a/tests/acceptance/settings/cloud-test.ts +++ b/tests/acceptance/settings/cloud-test.ts @@ -25,7 +25,7 @@ module('Acceptance | settings/cloud', function (hooks) { test('user can sign up', async function (assert) { await mockAuth( MockAuth.extend({ - async signUp() { + signUp() { assert.ok(true, 'signUp has been called'); return MockUser.create({ @@ -38,7 +38,7 @@ module('Acceptance | settings/cloud', function (hooks) { }, }); }, - async confirmSignUp(username: string, confirmationCode: string) { + confirmSignUp(username: string, confirmationCode: string) { assert.strictEqual( username, 'testuser@gmail.com', diff --git a/tests/acceptance/settings/data-test.ts b/tests/acceptance/settings/data-test.ts index c47e93cdb..f3502fb5b 100644 --- a/tests/acceptance/settings/data-test.ts +++ b/tests/acceptance/settings/data-test.ts @@ -11,15 +11,15 @@ module('Acceptance | settings/data', function (hooks) { setupApplicationTest(hooks); resetStorage(hooks, { seed: { source: 'backup', scenario: 'basic' } }); - hooks.beforeEach(async function () { + test('visiting /settings/data', async function (assert) { await visit('/settings/data'); - }); - test('visiting /settings/data', async function (assert) { assert.strictEqual(currentURL(), '/settings/data'); }); test('changing formats', async function (assert) { + await visit('/settings/data'); + assert .dom('[data-test-settings-format-dropdown] [data-test-options-trigger]') .hasText('hex'); @@ -41,12 +41,16 @@ module('Acceptance | settings/data', function (hooks) { // Electron specific tests if (typeof requireNode !== 'undefined') { test('export triggers success message', async function (assert) { + await visit('/settings/data'); + sinon.stub(IDBExportImport, 'exportToJsonString').callsArg(1); await click('[data-test-export-swatches-button]'); await waitForAll(); assert.dom('.alert.alert-success').exists({ count: 1 }); }); test('export triggers error message', async function (assert) { + await visit('/settings/data'); + sinon .stub(IDBExportImport, 'exportToJsonString') .callsArgWith(1, 'error'); diff --git a/tests/helpers.ts b/tests/helpers.ts index 0f07be6bf..23b9552e7 100644 --- a/tests/helpers.ts +++ b/tests/helpers.ts @@ -19,7 +19,7 @@ export async function waitForAll() { `service:${services.coordinator}`, ) as unknown as Coordinator; - for (let source of coordinator.sources) { + for (const source of coordinator.sources) { await waitForSource(source); } @@ -43,11 +43,11 @@ export function resetStorage( hooks.afterEach(async function () { const backup = this.owner.lookup( 'data-source:backup', - ) as unknown as IndexedDBSource; + ) as IndexedDBSource; await backup.cache.deleteDB(); - const bucket = this.owner.lookup('data-bucket:main') as unknown as + const bucket = this.owner.lookup('data-bucket:main') as | BucketClass | undefined; From 829cbf92b1039df637de5ccb575a60195f3ab579 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sat, 31 May 2025 07:17:45 -0400 Subject: [PATCH 13/23] Fix some lint --- app/controllers/settings/cloud/profile.ts | 4 +- app/data-sources/backup.ts | 16 ++-- app/services/session.ts | 8 +- app/services/undo-manager.ts | 21 ++--- eslint.config.mjs | 93 ++++++++++++----------- package.json | 2 +- pnpm-lock.yaml | 53 ++++++------- 7 files changed, 93 insertions(+), 104 deletions(-) diff --git a/app/controllers/settings/cloud/profile.ts b/app/controllers/settings/cloud/profile.ts index dc397feb4..200aa1602 100644 --- a/app/controllers/settings/cloud/profile.ts +++ b/app/controllers/settings/cloud/profile.ts @@ -11,9 +11,9 @@ export default class SettingsAccountController extends Controller { @tracked loading = false; @action - async logOut(): Promise { + logOut() { this.loading = true; - await this.session.invalidate(); + this.session.invalidate(); this.loading = false; } } diff --git a/app/data-sources/backup.ts b/app/data-sources/backup.ts index 85e1737e6..097026e2f 100644 --- a/app/data-sources/backup.ts +++ b/app/data-sources/backup.ts @@ -9,9 +9,6 @@ import type { } from '@orbit/records'; import { clone } from '@orbit/utils'; -import type ColorModel from 'swach/data-models/color'; -import type PaletteModel from 'swach/data-models/palette'; - type PalettePOJO = Omit & { type: 'palette'; relationships: { @@ -25,7 +22,6 @@ type PalettePOJO = Omit & { }; import ENV from 'swach/config/environment'; -import type { ColorPOJO } from 'swach/services/color-utils'; const { SCHEMA_VERSION } = ENV; @@ -40,6 +36,7 @@ export default { ...injections, }); + // eslint-disable-next-line @typescript-eslint/no-misused-promises backup.cache.migrateDB = async ( _db: IDBDatabase, event: IDBVersionChangeEvent, @@ -73,9 +70,10 @@ export default { // We start at i = 1 because we can keep the original color in a single palette. for (let i = 1; i < paletteIdentities.length; i++) { const paletteIdentity = paletteIdentities[i]; - const colorCopy = clone(color); + const colorCopy = clone(color) as InitializedRecord; colorCopy.id = schema.generateId('color'); + // @ts-expect-error relationships do actually exist colorCopy.relationships.palette.data = paletteIdentity; newColors.push(colorCopy); @@ -137,7 +135,7 @@ export default { }; // Upgrade the schema to the latest version, and thereby, migrate the IDB - schema.upgrade({ version: SCHEMA_VERSION }); + void schema.upgrade({ version: SCHEMA_VERSION }); return backup; }, @@ -156,10 +154,8 @@ function getRecordsFromIDB( const request = objectStore.openCursor(); const records: InitializedRecord[] = []; - // TODO: correctly type this instead of using `any` - // eslint-disable-next-line @typescript-eslint/no-explicit-any - request.onsuccess = (event: any) => { - const cursor = event.target.result; + request.onsuccess = (event: Event) => { + const cursor = (event.target as IDBRequest | null)?.result; if (cursor) { const record = cursor.value as InitializedRecord; diff --git a/app/services/session.ts b/app/services/session.ts index a8c283ab3..1e2306101 100644 --- a/app/services/session.ts +++ b/app/services/session.ts @@ -13,15 +13,15 @@ interface Data { export default class SessionService extends BaseSessionService { @service('data') declare swachData: DataService; - async handleAuthentication(routeAfterAuthentication: string) { + handleAuthentication(routeAfterAuthentication: string) { super.handleAuthentication(routeAfterAuthentication); - await this.swachData.synchronize(); + void this.swachData.synchronize(); } - async handleInvalidation(routeAfterInvalidation: string) { + handleInvalidation(routeAfterInvalidation: string) { super.handleInvalidation(routeAfterInvalidation); - await this.swachData.reset(); + void this.swachData.reset(); } } diff --git a/app/services/undo-manager.ts b/app/services/undo-manager.ts index 063b74d38..f2529248b 100644 --- a/app/services/undo-manager.ts +++ b/app/services/undo-manager.ts @@ -30,6 +30,7 @@ export default class UndoManager extends Service { this.ipcRenderer = ipcRenderer; + // eslint-disable-next-line @typescript-eslint/no-misused-promises this.ipcRenderer.on('undoRedo', async (_event: unknown, type: string) => { const isRedo = type === 'redo'; const isUndo = type === 'undo'; @@ -87,7 +88,7 @@ export default class UndoManager extends Service { async execute( command: { undo: () => Promise; redo: () => Promise }, action: 'undo' | 'redo', - ): Promise { + ) { if (!command || typeof command[action] !== 'function') { return this; } @@ -143,7 +144,7 @@ export default class UndoManager extends Service { /** * Perform undo: call the undo function at the current index and decrease the index by 1. */ - async undo(): Promise { + async undo() { const command = this.commands[this.index]; if (!command) { @@ -164,7 +165,7 @@ export default class UndoManager extends Service { /** * Perform redo: call the redo function at the next index and increase the index by 1. */ - async redo(): Promise { + async redo() { const command = this.commands[this.index + 1]; if (!command) { @@ -185,7 +186,7 @@ export default class UndoManager extends Service { /** * Clears the memory, losing all stored states. Reset the index. */ - clear(): void { + clear() { const prev_size = this.commands.length; this.commands = []; @@ -196,11 +197,11 @@ export default class UndoManager extends Service { } } - hasUndo(): boolean { + hasUndo() { return this.index !== -1; } - hasRedo(): boolean { + hasRedo() { return this.index < this.commands.length - 1; } @@ -208,15 +209,15 @@ export default class UndoManager extends Service { return this.commands; } - getIndex(): number { + getIndex() { return this.index; } - setLimit(l: number): void { + setLimit(l: number) { this.limit = l; } - setupUndoRedo(): void { + setupUndoRedo() { const transformId = this.store.transformLog.head; const redoTransform = this.store.getTransform(transformId).operations; const undoTransform = this.store.getInverseOperations(transformId); @@ -229,6 +230,6 @@ export default class UndoManager extends Service { await this.store.update(redoTransform); }; - this.add({ undo, redo }); + void this.add({ undo, redo }); } } diff --git a/eslint.config.mjs b/eslint.config.mjs index 9d0a65d38..5e16d7540 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -12,25 +12,25 @@ * npx eslint --inspect-config * */ -import babelParser from "@babel/eslint-parser"; -import js from "@eslint/js"; -import eslintConfigPrettier from "eslint-config-prettier"; -import ember from "eslint-plugin-ember/recommended"; -import n from "eslint-plugin-n"; -import qunit from "eslint-plugin-qunit"; -import globals from "globals"; -import ts from "typescript-eslint"; +import babelParser from '@babel/eslint-parser'; +import js from '@eslint/js'; +import eslintConfigPrettier from 'eslint-config-prettier'; +import ember from 'eslint-plugin-ember/recommended'; +import n from 'eslint-plugin-n'; +import qunit from 'eslint-plugin-qunit'; +import globals from 'globals'; +import ts from 'typescript-eslint'; const parserOptions = { esm: { js: { ecmaFeatures: { modules: true }, - ecmaVersion: "latest", + ecmaVersion: 'latest', requireConfigFile: false, babelOptions: { plugins: [ [ - "@babel/plugin-proposal-decorators", + '@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }, ], ], @@ -52,73 +52,74 @@ export default ts.config( */ { ignores: [ - "declarations/", + 'declarations/', // ember-electron - "electron-app/node_modules/", - "electron-app/out/", - "electron-app/ember-dist/", - "electron-app/ember-test/", - "electron-out/", + 'electron-app/node_modules/', + 'electron-app/out/', + 'electron-app/ember-dist/', + 'electron-app/ember-test/', + 'electron-out/', // Sentry - "electron-app/sentry-symbols.js", + 'electron-app/sentry-symbols.js', - "dist/", - "node_modules/", - "coverage/", - "types/", - "!**/.*", + 'dist/', + 'node_modules/', + 'coverage/', + 'types/', + '!**/.*', ], }, /** * https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options */ - { linterOptions: { reportUnusedDisableDirectives: "error" } }, - { files: ["**/*.js"], languageOptions: { parser: babelParser } }, + { linterOptions: { reportUnusedDisableDirectives: 'error' } }, + { files: ['**/*.js'], languageOptions: { parser: babelParser } }, { - files: ["**/*.{js,gjs}"], + files: ['**/*.{js,gjs}'], languageOptions: { parserOptions: parserOptions.esm.js, globals: { ...globals.browser }, }, }, { - files: ["**/*.{ts,gts}"], + files: ['**/*.{ts,gts}'], languageOptions: { parser: ember.parser, parserOptions: parserOptions.esm.ts, }, extends: [...ts.configs.recommendedTypeChecked, ember.configs.gts], rules: { - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-call": "off", + 'prefer-rest-params': 'off', + '@typescript-eslint/no-unsafe-assignment': 'off', + '@typescript-eslint/no-unsafe-call': 'off', }, }, - { files: ["tests/**/*-test.{js,gjs,ts,gts}"], plugins: { qunit } }, + { files: ['tests/**/*-test.{js,gjs,ts,gts}'], plugins: { qunit } }, /** * CJS node files */ { files: [ - "**/*.cjs", - "config/**/*.js", - "electron-app/**/*.js", - "tests/dummy/config/**/*.js", - "testem.js", - "testem*.js", - "index.js", - ".prettierrc.js", - ".stylelintrc.js", - ".template-lintrc.js", - "ember-cli-build.js", - "tailwind.config.js", + '**/*.cjs', + 'config/**/*.js', + 'electron-app/**/*.js', + 'tests/dummy/config/**/*.js', + 'testem.js', + 'testem*.js', + 'index.js', + '.prettierrc.js', + '.stylelintrc.js', + '.template-lintrc.js', + 'ember-cli-build.js', + 'tailwind.config.js', ], plugins: { n }, languageOptions: { - sourceType: "script", - ecmaVersion: "latest", + sourceType: 'script', + ecmaVersion: 'latest', globals: { ...globals.node }, }, }, @@ -126,12 +127,12 @@ export default ts.config( * ESM node files */ { - files: ["**/*.mjs"], + files: ['**/*.mjs'], plugins: { n }, languageOptions: { - sourceType: "module", - ecmaVersion: "latest", + sourceType: 'module', + ecmaVersion: 'latest', parserOptions: parserOptions.esm.js, globals: { ...globals.node }, }, diff --git a/package.json b/package.json index cdb75e3f1..868005823 100644 --- a/package.json +++ b/package.json @@ -119,7 +119,7 @@ "ember-resolver": "^13.1.0", "ember-set-body-class": "^1.0.2", "ember-set-helper": "^3.0.1", - "ember-simple-auth": "^7.1.1", + "ember-simple-auth": "^8.0.0", "ember-sinon-qunit": "^7.5.0", "ember-source": "^6.4.0", "ember-svg-jar": "^2.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da27bc09b..c88eaac5f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -205,7 +205,7 @@ importers: version: 6.1.1(@babel/core@7.27.3) ember-cognito: specifier: ^2.0.0 - version: 2.0.0(@glint/template@1.5.2)(ember-simple-auth@7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9) + version: 2.0.0(@glint/template@1.5.2)(ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9) ember-composable-helpers: specifier: ^5.0.0 version: 5.0.0 @@ -264,8 +264,8 @@ importers: specifier: ^3.0.1 version: 3.0.1(@babel/core@7.27.3) ember-simple-auth: - specifier: ^7.1.1 - version: 7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + specifier: ^8.0.0 + version: 8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-sinon-qunit: specifier: ^7.5.0 version: 7.5.0(@babel/core@7.27.3)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.1)(sinon@17.0.2) @@ -1558,10 +1558,6 @@ packages: '@ember/test-helpers@5.2.2': resolution: {integrity: sha512-Cclqeh0j6RnYvoaElAVC3Nd1fsSUkc3oUTwTsLlNiC3riyPq8lNYxh96VM59/yji2ntrd/cJQ7qhhSZWd6hsEw==} - '@ember/test-waiters@3.1.0': - resolution: {integrity: sha512-bb9h95ktG2wKY9+ja1sdsFBdOms2lB19VWs8wmNpzgHv1NCetonBoV5jHBV4DHt0uS1tg9z66cZqhUVlYs96KQ==} - engines: {node: 10.* || 12.* || >= 14.*} - '@ember/test-waiters@4.1.0': resolution: {integrity: sha512-qRFA0OumYv7/C3hmx4ETC2dlPzyD549D+naPhcrnV2xCnc3AZlKouWyoFnNF+Cje918kRp9aEefVgV3vmGL5Bg==} @@ -5340,8 +5336,8 @@ packages: ember-set-helper@3.0.1: resolution: {integrity: sha512-Ord3CuttDiF88wiNpHNDjf4aFKPnHSkpeK7zFfH9nV7YdDFSJissDCZEg42A0ReWY1WuqWbc2hMl5XkgupdyZQ==} - ember-simple-auth@7.1.3: - resolution: {integrity: sha512-QMDc82evtQceEQFJ9C3RYptqAfGUY0Z5TenpVVsbmwdo5sC0mxlLolhkpj142JknvRLjTrtCWRtoML6V5pj1Dw==} + ember-simple-auth@8.0.0: + resolution: {integrity: sha512-ylFiMivRQgoBBOrTanml8AFiWivRy5LnHacmTMXdq8DEkWDqaswAE2xGzEejDnUbRKQXM9/T9Qym3dhnWmXUMw==} peerDependencies: '@ember/test-helpers': '>= 3 || > 2.7' ember-source: '>=4.0' @@ -12747,15 +12743,6 @@ snapshots: - '@glint/template' - supports-color - '@ember/test-waiters@3.1.0': - dependencies: - calculate-cache-key-for-tree: 2.0.0 - ember-cli-babel: 7.26.11 - ember-cli-version-checker: 5.1.2 - semver: 7.7.2 - transitivePeerDependencies: - - supports-color - '@ember/test-waiters@4.1.0(@glint/template@1.5.2)': dependencies: '@embroider/addon-shim': 1.10.0 @@ -14125,8 +14112,8 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8 - '@types/ember__engine': 4.0.11 + '@types/ember__debug': 4.0.8(@babel/core@7.27.3) + '@types/ember__engine': 4.0.11(@babel/core@7.27.3) '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 @@ -14145,8 +14132,8 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8 - '@types/ember__engine': 4.0.11 + '@types/ember__debug': 4.0.8(@babel/core@7.27.3) + '@types/ember__engine': 4.0.11(@babel/core@7.27.3) '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 @@ -14166,7 +14153,7 @@ snapshots: dependencies: '@glimmer/component': 1.1.2(@babel/core@7.27.3) '@types/ember': 4.0.11 - '@types/ember__engine': 4.0.11 + '@types/ember__engine': 4.0.11(@babel/core@7.27.3) '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) @@ -14197,15 +14184,21 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__debug@4.0.8': + '@types/ember__debug@4.0.8(@babel/core@7.27.3)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 + transitivePeerDependencies: + - '@babel/core' + - supports-color - '@types/ember__engine@4.0.11': + '@types/ember__engine@4.0.11(@babel/core@7.27.3)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 + transitivePeerDependencies: + - '@babel/core' + - supports-color '@types/ember__error@4.0.6': {} @@ -18111,7 +18104,7 @@ snapshots: - '@babel/core' - supports-color - ember-cognito@2.0.0(@glint/template@1.5.2)(ember-simple-auth@7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9): + ember-cognito@2.0.0(@glint/template@1.5.2)(ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9): dependencies: '@aws-amplify/auth': 4.6.17(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0)) '@aws-amplify/core': 4.7.15(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0)) @@ -18120,7 +18113,7 @@ snapshots: ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-simple-auth: 7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-simple-auth: 8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) transitivePeerDependencies: - '@glint/template' - encoding @@ -18398,15 +18391,13 @@ snapshots: - '@babel/core' - supports-color - ember-simple-auth@7.1.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: - '@ember/test-waiters': 3.1.0 + '@ember/test-waiters': 4.1.0(@glint/template@1.5.2) '@embroider/addon-shim': 1.10.0 '@embroider/macros': 1.18.0(@glint/template@1.5.2) - ember-cli-is-package-missing: 1.0.0 ember-cookies: 1.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) - silent-error: 1.1.1 optionalDependencies: '@ember/test-helpers': 5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2) transitivePeerDependencies: From 613d5b391d376ea77fbdd6db5e00f8bdc3807b2d Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sat, 31 May 2025 10:24:51 -0400 Subject: [PATCH 14/23] Fix more lint --- app/components/color-row.ts | 2 +- app/components/palette-row.ts | 77 ++++--- app/components/settings-menu.ts | 6 +- app/controllers/application.ts | 6 +- app/controllers/palettes.ts | 2 +- config/environment.js | 1 + package.json | 2 +- pnpm-lock.yaml | 349 +++++++++++++++++--------------- 8 files changed, 239 insertions(+), 206 deletions(-) diff --git a/app/components/color-row.ts b/app/components/color-row.ts index 142cc2cb9..7b57a759f 100644 --- a/app/components/color-row.ts +++ b/app/components/color-row.ts @@ -23,7 +23,7 @@ export default class ColorRowComponent extends Component { @service declare colorUtils: ColorUtils; @service declare router: Router; - get showActions(): boolean { + get showActions() { if (isEmpty(this.args.showActions)) { return true; } diff --git a/app/components/palette-row.ts b/app/components/palette-row.ts index 5e7d5927e..f104f71bd 100644 --- a/app/components/palette-row.ts +++ b/app/components/palette-row.ts @@ -1,4 +1,3 @@ -import { action } from '@ember/object'; import type Owner from '@ember/owner'; import type Router from '@ember/routing/router-service'; import { service } from '@ember/service'; @@ -10,6 +9,7 @@ import type DragSortService from 'ember-drag-sort/services/drag-sort'; import type { Store } from 'ember-orbit'; import type { RecordSchema } from '@orbit/records'; +import type { IpcRenderer } from 'electron'; import type ColorModel from 'swach/data-models/color'; import type PaletteModel from 'swach/data-models/palette'; @@ -120,6 +120,8 @@ export default class PaletteRowComponent extends Component @service declare store: Store; @service declare undoManager: UndoManager; + declare ipcRenderer: IpcRenderer; + menuItems: (MenuOption | FavoriteOption | LockOption)[] | null = null; fade = fade; nameInput!: HTMLElement; @@ -128,6 +130,12 @@ export default class PaletteRowComponent extends Component constructor(owner: Owner, args: PaletteRowSignature['Args']) { super(owner, args); + if (typeof requireNode !== 'undefined') { + const { ipcRenderer } = requireNode('electron'); + + this.ipcRenderer = ipcRenderer; + } + this.menuItems = [ new MenuOption( this.toggleIsEditing, @@ -136,6 +144,7 @@ export default class PaletteRowComponent extends Component this.args.palette, ), new MenuOption( + // eslint-disable-next-line @typescript-eslint/no-misused-promises this.duplicatePalette, 'duplicate', 'Duplicate Palette', @@ -150,6 +159,7 @@ export default class PaletteRowComponent extends Component this.args.palette, ), new MenuOption( + // eslint-disable-next-line @typescript-eslint/no-misused-promises this.deletePalette, 'trash', 'Delete Palette', @@ -169,7 +179,7 @@ export default class PaletteRowComponent extends Component ); } - get isLocked(): boolean { + get isLocked() { return this.args.palette.isLocked; } @@ -181,16 +191,14 @@ export default class PaletteRowComponent extends Component ); } - @action - async deletePalette(): Promise { + deletePalette = async () => { if (!this.isLocked) { await this.store.update((t) => t.removeRecord(this.args.palette)); this.undoManager.setupUndoRedo(); } - } + }; - @action - async duplicatePalette(): Promise { + duplicatePalette = async () => { let colorOrder = this.args.palette.colorOrder; const newColors = this.args.palette.colors.map((color) => { const colorData = color.$getData(); @@ -227,19 +235,17 @@ export default class PaletteRowComponent extends Component ]); this.undoManager.setupUndoRedo(); - } + }; - @action - enterPress(event: KeyboardEvent): void { + enterPress = (event: KeyboardEvent) => { if (event.keyCode === 13) { this.nameInput.blur(); } - } + }; - @action - favoritePalette(): void { + favoritePalette = () => { if (!this.isLocked) { - this.store.update((t) => + void this.store.update((t) => t.replaceAttribute( this.args.palette, 'isFavorite', @@ -247,27 +253,24 @@ export default class PaletteRowComponent extends Component ), ); } - } + }; - @action - insertedNameInput(element: HTMLElement): void { + insertedNameInput = (element: HTMLElement): void => { this.nameInput = element; this.nameInput.focus(); - } + }; - @action - lockPalette(): void { - this.store.update((t) => + lockPalette = () => { + void this.store.update((t) => t.replaceAttribute( this.args.palette, 'isLocked', !this.args.palette.isLocked, ), ); - } + }; - @action - sharePalette(): void { + sharePalette = () => { const { colors, name } = this.args.palette; if (colors.length) { @@ -280,39 +283,35 @@ export default class PaletteRowComponent extends Component )}`; if (typeof requireNode !== 'undefined') { - requireNode('electron').shell.openExternal(url); + void this.ipcRenderer.invoke('open-external', url); } } - } + }; - @action - toggleIsEditing(): void { + toggleIsEditing = () => { this.isEditing = !this.isEditing; - } + }; - @action - transitionToColors(event: Event): void { + transitionToColors = (event: Event) => { event.stopPropagation(); this.router.transitionTo('colors', { queryParams: { paletteId: this.args.palette.id }, }); - } + }; - @action - stopEditing(): void { + stopEditing = () => { this.isEditing = false; - } + }; - @action - updatePaletteName(e: InputEvent): void { - this.store.update((t) => + updatePaletteName = (e: InputEvent) => { + void this.store.update((t) => t.replaceAttribute( this.args.palette, 'name', (e.target).value, ), ); - } + }; } declare module '@glint/environment-ember-loose/registry' { diff --git a/app/components/settings-menu.ts b/app/components/settings-menu.ts index 2b5a67e4e..959e14588 100644 --- a/app/components/settings-menu.ts +++ b/app/components/settings-menu.ts @@ -34,17 +34,17 @@ export default class SettingsMenu extends Component { this.ipcRenderer = ipcRenderer; - this.ipcRenderer.invoke('getPlatform').then((platform: string) => { + void this.ipcRenderer.invoke('getPlatform').then((platform: string) => { this.platform = platform; }); } } - get isMacOS(): boolean { + get isMacOS() { return this.platform === 'darwin'; } - get isMacOSOrWindows(): boolean { + get isMacOSOrWindows() { return this.platform === 'darwin' || this.platform === 'win32'; } diff --git a/app/controllers/application.ts b/app/controllers/application.ts index e13aa8c6a..289249071 100644 --- a/app/controllers/application.ts +++ b/app/controllers/application.ts @@ -104,6 +104,7 @@ export default class ApplicationController extends Controller { this.ipcRenderer.on( 'changeColor', + // eslint-disable-next-line @typescript-eslint/no-misused-promises async (_event: unknown, color: string) => { const addedColor = await this.addColor(color); @@ -119,6 +120,7 @@ export default class ApplicationController extends Controller { this.ipcRenderer.on( 'openSharedPalette', + // eslint-disable-next-line @typescript-eslint/no-misused-promises async (_event: unknown, query: string) => { const data = JSON.parse(decodeURIComponent(query)); const colors = data?.colors ?? []; @@ -137,13 +139,13 @@ export default class ApplicationController extends Controller { this.ipcRenderer.send('enableDisableAutoStart', shouldEnableAutoStart); - this.ipcRenderer + void this.ipcRenderer .invoke('getStoreValue', 'showDockIcon') .then((showDockIcon: boolean) => { this.settings.set('showDockIcon', showDockIcon); }); - this.ipcRenderer + void this.ipcRenderer .invoke('getShouldUseDarkColors') .then((theme: string) => { this.settings.set('osTheme', theme); diff --git a/app/controllers/palettes.ts b/app/controllers/palettes.ts index 5efbcbd58..c3800fdb4 100644 --- a/app/controllers/palettes.ts +++ b/app/controllers/palettes.ts @@ -133,7 +133,7 @@ export default class PalettesController extends Controller { } } else { // Move color between palettes - this._moveColorBetweenPalettes( + await this._moveColorBetweenPalettes( sourceColor, sourceList, sourcePalette, diff --git a/config/environment.js b/config/environment.js index 5396f6cfb..d4c5ed7ea 100644 --- a/config/environment.js +++ b/config/environment.js @@ -10,6 +10,7 @@ module.exports = function (environment) { locationType: process.env.EMBER_CLI_ELECTRON ? 'hash' : 'history', EmberENV: { // TODO: we should set this to false and fix things + // We cannot remove prototype extensions until ember-drag-sort is updated // EXTEND_PROTOTYPES: false, FEATURES: { // Here you can enable experimental features on an ember canary build diff --git a/package.json b/package.json index 868005823..e012d5440 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "ember-set-helper": "^3.0.1", "ember-simple-auth": "^8.0.0", "ember-sinon-qunit": "^7.5.0", - "ember-source": "^6.4.0", + "ember-source": "^5.12.0", "ember-svg-jar": "^2.6.0", "ember-template-imports": "^4.3.0", "ember-template-lint": "^6.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c88eaac5f..425105fd6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,7 +37,7 @@ importers: version: 2.2.0 '@ember/render-modifiers': specifier: ^2.1.0 - version: 2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + version: 2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) '@ember/string': specifier: ^3.1.1 version: 3.1.1 @@ -166,7 +166,7 @@ importers: version: 6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) ember-cli-app-version: specifier: ^7.0.0 - version: 7.0.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + version: 7.0.0(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) ember-cli-babel: specifier: ^8.2.0 version: 8.2.0(@babel/core@7.27.3) @@ -181,7 +181,7 @@ importers: version: 3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)) ember-cli-deprecation-workflow: specifier: ^3.3.0 - version: 3.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + version: 3.3.0(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) ember-cli-flash: specifier: ^5.1.0 version: 5.1.0(@ember/string@3.1.1)(@embroider/macros@1.18.0(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.3)) @@ -205,7 +205,7 @@ importers: version: 6.1.1(@babel/core@7.27.3) ember-cognito: specifier: ^2.0.0 - version: 2.0.0(@glint/template@1.5.2)(ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9) + version: 2.0.0(@glint/template@1.5.2)(ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9) ember-composable-helpers: specifier: ^5.0.0 version: 5.0.0 @@ -220,7 +220,7 @@ importers: version: 3.0.1 ember-electron: specifier: ^7.0.0 - version: 7.0.0(ember-cli-dependency-checker@3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)))(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(encoding@0.1.13) + version: 7.0.0(ember-cli-dependency-checker@3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)))(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(encoding@0.1.13) ember-element-helper: specifier: ^0.8.6 version: 0.8.8 @@ -232,25 +232,25 @@ importers: version: 8.1.2(encoding@0.1.13) ember-inflector: specifier: ^4.0.3 - version: 4.0.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + version: 4.0.3(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) ember-inputmask: specifier: ^2.0.0 - version: 2.0.0(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(webpack@5.99.9) + version: 2.0.0(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9) ember-load-initializers: specifier: ^3.0.1 - version: 3.0.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + version: 3.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) ember-local-storage: specifier: 2.0.6 version: 2.0.6 ember-math-helpers: specifier: ^4.0.0 - version: 4.2.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + version: 4.2.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) ember-modifier: specifier: ^4.2.0 version: 4.2.2(@babel/core@7.27.3) ember-orbit: specifier: ^0.17.3 - version: 0.17.3(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(webpack@5.99.9) + version: 0.17.3(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9) ember-qunit: specifier: ^9.0.2 version: 9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1) @@ -265,13 +265,13 @@ importers: version: 3.0.1(@babel/core@7.27.3) ember-simple-auth: specifier: ^8.0.0 - version: 8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + version: 8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) ember-sinon-qunit: specifier: ^7.5.0 - version: 7.5.0(@babel/core@7.27.3)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.1)(sinon@17.0.2) + version: 7.5.0(@babel/core@7.27.3)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(qunit@2.24.1)(sinon@17.0.2) ember-source: - specifier: ^6.4.0 - version: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + specifier: ^5.12.0 + version: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) ember-svg-jar: specifier: ^2.6.0 version: 2.6.3(@glint/template@1.5.2) @@ -289,7 +289,7 @@ importers: version: 3.6.0(@glint/template@1.5.2) ember-truth-helpers: specifier: ^4.0.3 - version: 4.0.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + version: 4.0.3(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) eslint: specifier: ^9.25.1 version: 9.27.0(jiti@2.4.2) @@ -1671,9 +1671,9 @@ packages: '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@glimmer/compiler@0.94.10': - resolution: {integrity: sha512-SrWiaKM3AND2FQ732wtjAKol7XhCnRqit3tJShG4X0mT27Jb3zuhTI2dkfYVVMTJ23pjT/+0y+s/uGaBSirnBg==} - engines: {node: '>= 18.0.0'} + '@glimmer/compiler@0.92.4': + resolution: {integrity: sha512-xoR8F6fsgFqWbPbCfSgJuJ95vaLnXw0SgDCwyl/KMeeaSxpHwJbr8+BfiUl+7ko2A+HzrY5dPXXnGr4ZM+CUXw==} + engines: {node: '>= 16.0.0'} '@glimmer/component@1.1.2': resolution: {integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==} @@ -1683,14 +1683,17 @@ packages: resolution: {integrity: sha512-eATSzBOUm0MZ9+YfJx7Y5p3gbwnaeMzLSSsCDn1ihDtUOIm5YYEV0ee0G7tXt/uKxowt8tXYn/EMbI9OlRF0CA==} engines: {node: '>= 18'} - '@glimmer/destroyable@0.94.8': - resolution: {integrity: sha512-IWNz34Q5IYnh20M/3xVv9jIdCATQyaO+8sdUSyUqiz1bAblW5vTXUNXn3uFzGF+CnP6ZSgPxHN/c1sNMAh+lAA==} + '@glimmer/debug@0.92.4': + resolution: {integrity: sha512-waTBOdtp92MC3h/51mYbc4GRumO+Tsa5jbXLoewqALjE1S8bMu9qgkG7Cx635x3/XpjsD9xceMqagBvYhuI6tA==} + + '@glimmer/destroyable@0.92.3': + resolution: {integrity: sha512-vQ+mzT9Vkf+JueY7L5XbZqK0WyEVTKv0HOLrw/zDw9F5Szn3F/8Ea/qbAClo3QK3oZeg+ulFTa/61rdjSFYHGA==} '@glimmer/di@0.1.11': resolution: {integrity: sha512-moRwafNDwHTnTHzyyZC9D+mUSvYrs1Ak0tRPjjmCghdoHHIvMshVbEnwKb/1WmW5CUlKc2eL9rlAV32n3GiItg==} - '@glimmer/encoder@0.93.8': - resolution: {integrity: sha512-G7ZbC+T+rn7UliG8Y3cn7SIACh7K5HgCxgFhJxU15HtmTUObs52mVR1SyhUBsbs86JHlCqaGguKE1WqP1jt+2g==} + '@glimmer/encoder@0.92.3': + resolution: {integrity: sha512-DJ8DB33LxODjzCWRrxozHUaRqVyZj4p8jDLG42aCNmWo3smxrsjshcaVUwDmib24DW+dzR7kMc39ObMqT5zK0w==} '@glimmer/env@0.1.7': resolution: {integrity: sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw==} @@ -1698,8 +1701,8 @@ packages: '@glimmer/global-context@0.84.3': resolution: {integrity: sha512-8Oy9Wg5IZxMEeAnVmzD2NkObf89BeHoFSzJgJROE/deutd3rxg83mvlOez4zBBGYwnTb+VGU2LYRpet92egJjA==} - '@glimmer/global-context@0.93.4': - resolution: {integrity: sha512-Yw9xkDReAcC5oS/hY3PjGrFKRygYFA4pdO7tvuxReoVOyUtjoBOAwHJUileiElERDdMWIMfoLema8Td1mqkjhA==} + '@glimmer/global-context@0.92.3': + resolution: {integrity: sha512-tvlK5pt6oSe3furJ1KsO9vG/KmF9S98HLrcR48XbfwXlkuxvUeS94cdQId4GCN5naeX4OC4xm6eEjZWdc2s+jw==} '@glimmer/interfaces@0.84.3': resolution: {integrity: sha512-dk32ykoNojt0mvEaIW6Vli5MGTbQo58uy3Epj7ahCgTHmWOKuw/0G83f2UmFprRwFx689YTXG38I/vbpltEjzg==} @@ -1710,29 +1713,29 @@ packages: '@glimmer/interfaces@0.94.6': resolution: {integrity: sha512-sp/1WePvB/8O+jrcUHwjboNPTKrdGicuHKA9T/lh0vkYK2qM5Xz4i25lQMQ38tEMiw7KixrjHiTUiaXRld+IwA==} - '@glimmer/manager@0.94.9': - resolution: {integrity: sha512-AQT90eSRbgx6O4VnyRgR+y3SqKChPrpZs5stENa0UnqOSbt7dF6XdqAmllfznKFpLlKmJSV7JaVpCarVTR/JQQ==} + '@glimmer/manager@0.92.4': + resolution: {integrity: sha512-YMoarZT/+Ft2YSd+Wuu5McVsdP9y6jeAdVQGYFpno3NlL3TXYbl7ELtK7OGxFLjzQE01BdiUZZRvcY+a/s9+CQ==} - '@glimmer/node@0.94.9': - resolution: {integrity: sha512-X90Xyru/TNi/ocq27ttT4zlMGK931J+pGL0eDYEkUX2fJYHd9Wm1idAB7MLJYIJarv/kuoxteiGThGIYkeNVaQ==} + '@glimmer/node@0.92.4': + resolution: {integrity: sha512-a5GME7HQJZFJPQDdSetQI6jjKXXQi0Vdr3WuUrYwhienVTV5LG0uClbFE2yYWC7TX97YDHpRrNk1CC258rujkQ==} - '@glimmer/opcode-compiler@0.94.9': - resolution: {integrity: sha512-LlBniSmtBoIlkxzPKHyOw4Nj946Cczelo8RAnqoG/egkHuk4hoO/7ycSgNpPvV3G14BA4Fpy5ExBffx6iuRxQQ==} + '@glimmer/opcode-compiler@0.92.4': + resolution: {integrity: sha512-WnZSBwxNqW/PPD/zfxEg6BVR5tHwTm8fp76piix8BNCQ6CuzVn6HUJ5SlvBsOwyoRCmzt/pkKmBJn+I675KG4w==} - '@glimmer/owner@0.93.4': - resolution: {integrity: sha512-xoclaVdCF4JH/yx8dHplCj6XFAa7ggwc7cyeOthRvTNGsp/J/CNKHT6NEkdERBYqy6tvg5GoONvWFdm8Wd5Uig==} + '@glimmer/owner@0.92.3': + resolution: {integrity: sha512-ZxmXIUCy6DOobhGDhA6kMpaXZS7HAucEgIl/qcjV9crlzGOO8H4j+n2x6nA/8zpuqvO0gYaBzqdNdu+7EgOEmw==} - '@glimmer/program@0.94.9': - resolution: {integrity: sha512-KA3TXYL2iDdR92pPnB/sw1tgIC7B40l2P60iD1sqkYbyxAbrUPHSToA1ycmK4DwmxDOT3Hz9dvpceoCMbh0xjA==} + '@glimmer/program@0.92.4': + resolution: {integrity: sha512-fkquujQ11lsGCWl/+XpZW2E7bjHj/g6/Ht292A7pSoANBD8Bz/gPYiPM+XuMwes9MApEsTEMjV4EXlyk2/Cirg==} '@glimmer/reference@0.84.3': resolution: {integrity: sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==} - '@glimmer/reference@0.94.8': - resolution: {integrity: sha512-FPoXBRMXJupO9nAq/Vw3EY/FCY3xbd+VALqZupyu6ds9vjNiKAkD9+ujIjYa1f+d/ez2ONhy8QjEFoBsyW2flA==} + '@glimmer/reference@0.92.3': + resolution: {integrity: sha512-Ud4LE689mEXL6BJnJx0ZPt2dt/A540C+TAnBFXHpcAjROz5gT337RN+tgajwudEUqpufExhcPSMGzs1pvWYCJg==} - '@glimmer/runtime@0.94.10': - resolution: {integrity: sha512-eRe9TmP02ESVXJn2ZOOEm/Hm/Ro7X0kRvZsU8OVtXOqWU8JxeKMwjCEiLbJBQKbYfycRy1u8jZ2wuH0qM/d3EQ==} + '@glimmer/runtime@0.92.4': + resolution: {integrity: sha512-ISqM/8hVh+fY/gnLAAPKfts4CvnJBOyCYAXgGccIlzzQrSVLaz0NoRiWTLGj5B/3xyPbqLwYPDvlTsOjYtvPoA==} '@glimmer/syntax@0.84.3': resolution: {integrity: sha512-ioVbTic6ZisLxqTgRBL2PCjYZTFIwobifCustrozRU2xGDiYvVIL0vt25h2c1ioDsX59UgVlDkIK4YTAQQSd2A==} @@ -1764,15 +1767,15 @@ packages: '@glimmer/validator@0.84.3': resolution: {integrity: sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ==} - '@glimmer/validator@0.94.8': - resolution: {integrity: sha512-vTP6hAcrxE5/0dG2w+tHSteXxgWmkBwMzu5ZTxMg+EkqthWl8B5r5skLiviQ6SdKAOBJGhzf6tF4ltHo5y83hQ==} + '@glimmer/validator@0.92.3': + resolution: {integrity: sha512-HKrMYeW0YhiksSeKYqX2chUR/rz82j12DcY7p2dORQlTV3qlAfiE5zRTJH1KRA1X3ZMf7DI2/GOzkXwYp0o+3Q==} - '@glimmer/vm-babel-plugins@0.93.4': - resolution: {integrity: sha512-+MjT+U/MsP7O32rXTYlvcmuiKtwI/PflokpVIW0M9wrkfFrsqgdhLQKvA+tNNxFW9LQ55zbhOtJweFNblHOvxg==} - engines: {node: '>=18.18.0'} + '@glimmer/vm-babel-plugins@0.92.3': + resolution: {integrity: sha512-VpkKsHc3oiq9ruiwT7sN4RuOIc5n10PCeWX7tYSNZ85S1bETcAFn0XbyNjI+G3uFshQGEK0T8Fn3+/8VTNIQIg==} + engines: {node: '>=16'} - '@glimmer/vm@0.94.8': - resolution: {integrity: sha512-0E8BVNRE/1qlK9OQRUmGlQXwWmoco7vL3yIyLZpTWhbv22C1zEcM826wQT3ioaoUQSlvRsKKH6IEEUal2d3wxQ==} + '@glimmer/vm@0.92.3': + resolution: {integrity: sha512-DNMQz7nn2zRwKO1irVZ4alg1lH+VInwR3vkWVgobUs0yh7OoHVGXKMd5uxzIksqJEUw1XOX9Qgu/GYZB1PiH3w==} '@glimmer/wire-format@0.92.3': resolution: {integrity: sha512-gFz81Q9+V7Xs0X8mSq6y8qacHm0dPaGJo2/Bfcsdow1hLOKNgTCLr4XeDBhRML8f6I6Gk9ugH4QDxyIOXOpC4w==} @@ -5352,11 +5355,11 @@ packages: qunit: ^2.0.0 sinon: '>=15.0.3' - ember-source@6.4.0: - resolution: {integrity: sha512-lUzSbCsOQa3vRTv1HL7dj3gLApXXrq91QeAlnOLmwETQFoa6aX8+Z+78vNHIgg0jXCpzX1pWWL/NKpe4KDuCuw==} + ember-source@5.12.0: + resolution: {integrity: sha512-2MWlJmQEeeiIk9p5CDMuvD470YPi7/4wXgU41ftbWc9svwF+0usoe4PLoLC0T/jV6YX+3SY5tumQfxLSLoFhmQ==} engines: {node: '>= 18.*'} peerDependencies: - '@glimmer/component': '>= 1.1.2' + '@glimmer/component': ^1.1.2 ember-svg-jar@2.6.3: resolution: {integrity: sha512-+hgqDIVmtyHcBWOKfRlvxWvTWGJ8Ly4t9NjGsRGSu8qfP/w/TP6IgYJNUgN9MU9ZkU24Sg02RzIkfuXvIhoYJg==} @@ -12712,12 +12715,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@ember/render-modifiers@2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': + '@ember/render-modifiers@2.1.0(@babel/core@7.27.3)(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))': dependencies: '@embroider/macros': 1.18.0(@glint/template@1.5.2) ember-cli-babel: 7.26.11 ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.27.3) - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) optionalDependencies: '@glint/template': 1.5.2 transitivePeerDependencies: @@ -13029,12 +13032,13 @@ snapshots: '@gar/promisify@1.1.3': {} - '@glimmer/compiler@0.94.10': + '@glimmer/compiler@0.92.4': dependencies: - '@glimmer/interfaces': 0.94.6 - '@glimmer/syntax': 0.94.9 - '@glimmer/util': 0.94.8 - '@glimmer/wire-format': 0.94.8 + '@glimmer/interfaces': 0.92.3 + '@glimmer/syntax': 0.92.3 + '@glimmer/util': 0.92.3 + '@glimmer/vm': 0.92.3 + '@glimmer/wire-format': 0.92.3 '@glimmer/component@1.1.2(@babel/core@7.27.3)': dependencies: @@ -13063,17 +13067,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@glimmer/destroyable@0.94.8': + '@glimmer/debug@0.92.4': dependencies: - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 + '@glimmer/interfaces': 0.92.3 + '@glimmer/util': 0.92.3 + '@glimmer/vm': 0.92.3 + + '@glimmer/destroyable@0.92.3': + dependencies: + '@glimmer/env': 0.1.7 + '@glimmer/global-context': 0.92.3 + '@glimmer/interfaces': 0.92.3 + '@glimmer/util': 0.92.3 '@glimmer/di@0.1.11': {} - '@glimmer/encoder@0.93.8': + '@glimmer/encoder@0.92.3': dependencies: - '@glimmer/interfaces': 0.94.6 - '@glimmer/vm': 0.94.8 + '@glimmer/interfaces': 0.92.3 + '@glimmer/vm': 0.92.3 '@glimmer/env@0.1.7': {} @@ -13081,7 +13093,7 @@ snapshots: dependencies: '@glimmer/env': 0.1.7 - '@glimmer/global-context@0.93.4': {} + '@glimmer/global-context@0.92.3': {} '@glimmer/interfaces@0.84.3': dependencies: @@ -13096,42 +13108,52 @@ snapshots: '@simple-dom/interface': 1.4.0 type-fest: 4.41.0 - '@glimmer/manager@0.94.9': + '@glimmer/manager@0.92.4': dependencies: - '@glimmer/destroyable': 0.94.8 - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 - '@glimmer/reference': 0.94.8 - '@glimmer/util': 0.94.8 - '@glimmer/validator': 0.94.8 - '@glimmer/vm': 0.94.8 + '@glimmer/debug': 0.92.4 + '@glimmer/destroyable': 0.92.3 + '@glimmer/env': 0.1.7 + '@glimmer/global-context': 0.92.3 + '@glimmer/interfaces': 0.92.3 + '@glimmer/reference': 0.92.3 + '@glimmer/util': 0.92.3 + '@glimmer/validator': 0.92.3 + '@glimmer/vm': 0.92.3 - '@glimmer/node@0.94.9': + '@glimmer/node@0.92.4': dependencies: - '@glimmer/interfaces': 0.94.6 - '@glimmer/runtime': 0.94.10 - '@glimmer/util': 0.94.8 + '@glimmer/interfaces': 0.92.3 + '@glimmer/runtime': 0.92.4 + '@glimmer/util': 0.92.3 '@simple-dom/document': 1.4.0 - '@glimmer/opcode-compiler@0.94.9': + '@glimmer/opcode-compiler@0.92.4': dependencies: - '@glimmer/encoder': 0.93.8 - '@glimmer/interfaces': 0.94.6 - '@glimmer/manager': 0.94.9 - '@glimmer/util': 0.94.8 - '@glimmer/vm': 0.94.8 - '@glimmer/wire-format': 0.94.8 + '@glimmer/debug': 0.92.4 + '@glimmer/encoder': 0.92.3 + '@glimmer/env': 0.1.7 + '@glimmer/global-context': 0.92.3 + '@glimmer/interfaces': 0.92.3 + '@glimmer/manager': 0.92.4 + '@glimmer/reference': 0.92.3 + '@glimmer/util': 0.92.3 + '@glimmer/vm': 0.92.3 + '@glimmer/wire-format': 0.92.3 - '@glimmer/owner@0.93.4': {} + '@glimmer/owner@0.92.3': + dependencies: + '@glimmer/util': 0.92.3 - '@glimmer/program@0.94.9': + '@glimmer/program@0.92.4': dependencies: - '@glimmer/interfaces': 0.94.6 - '@glimmer/manager': 0.94.9 - '@glimmer/opcode-compiler': 0.94.9 - '@glimmer/util': 0.94.8 - '@glimmer/vm': 0.94.8 - '@glimmer/wire-format': 0.94.8 + '@glimmer/encoder': 0.92.3 + '@glimmer/env': 0.1.7 + '@glimmer/interfaces': 0.92.3 + '@glimmer/manager': 0.92.4 + '@glimmer/opcode-compiler': 0.92.4 + '@glimmer/util': 0.92.3 + '@glimmer/vm': 0.92.3 + '@glimmer/wire-format': 0.92.3 '@glimmer/reference@0.84.3': dependencies: @@ -13141,25 +13163,28 @@ snapshots: '@glimmer/util': 0.84.3 '@glimmer/validator': 0.84.3 - '@glimmer/reference@0.94.8': + '@glimmer/reference@0.92.3': dependencies: - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 - '@glimmer/util': 0.94.8 - '@glimmer/validator': 0.94.8 + '@glimmer/env': 0.1.7 + '@glimmer/global-context': 0.92.3 + '@glimmer/interfaces': 0.92.3 + '@glimmer/util': 0.92.3 + '@glimmer/validator': 0.92.3 - '@glimmer/runtime@0.94.10': + '@glimmer/runtime@0.92.4': dependencies: - '@glimmer/destroyable': 0.94.8 - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 - '@glimmer/manager': 0.94.9 - '@glimmer/owner': 0.93.4 - '@glimmer/program': 0.94.9 - '@glimmer/reference': 0.94.8 - '@glimmer/util': 0.94.8 - '@glimmer/validator': 0.94.8 - '@glimmer/vm': 0.94.8 + '@glimmer/destroyable': 0.92.3 + '@glimmer/env': 0.1.7 + '@glimmer/global-context': 0.92.3 + '@glimmer/interfaces': 0.92.3 + '@glimmer/manager': 0.92.4 + '@glimmer/owner': 0.92.3 + '@glimmer/program': 0.92.4 + '@glimmer/reference': 0.92.3 + '@glimmer/util': 0.92.3 + '@glimmer/validator': 0.92.3 + '@glimmer/vm': 0.92.3 + '@glimmer/wire-format': 0.92.3 '@glimmer/syntax@0.84.3': dependencies: @@ -13213,20 +13238,23 @@ snapshots: '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.84.3 - '@glimmer/validator@0.94.8': + '@glimmer/validator@0.92.3': dependencies: - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 + '@glimmer/env': 0.1.7 + '@glimmer/global-context': 0.92.3 + '@glimmer/interfaces': 0.92.3 + '@glimmer/util': 0.92.3 - '@glimmer/vm-babel-plugins@0.93.4(@babel/core@7.27.3)': + '@glimmer/vm-babel-plugins@0.92.3(@babel/core@7.27.3)': dependencies: babel-plugin-debug-macros: 0.3.4(@babel/core@7.27.3) transitivePeerDependencies: - '@babel/core' - '@glimmer/vm@0.94.8': + '@glimmer/vm@0.92.3': dependencies: - '@glimmer/interfaces': 0.94.6 + '@glimmer/interfaces': 0.92.3 + '@glimmer/util': 0.92.3 '@glimmer/wire-format@0.92.3': dependencies: @@ -17665,10 +17693,10 @@ snapshots: - supports-color - webpack - ember-cli-app-version@7.0.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-cli-app-version@7.0.0(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: ember-cli-babel: 7.26.11 - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) git-repo-info: 2.1.1 transitivePeerDependencies: - supports-color @@ -17770,11 +17798,11 @@ snapshots: resolve: 1.22.10 semver: 5.7.2 - ember-cli-deprecation-workflow@3.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-cli-deprecation-workflow@3.3.0(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) ember-cli-babel: 8.2.0(@babel/core@7.27.3) - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - supports-color @@ -18104,7 +18132,7 @@ snapshots: - '@babel/core' - supports-color - ember-cognito@2.0.0(@glint/template@1.5.2)(ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9): + ember-cognito@2.0.0(@glint/template@1.5.2)(ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)))(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0))(webpack@5.99.9): dependencies: '@aws-amplify/auth': 4.6.17(encoding@0.1.13)(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0)) '@aws-amplify/core': 4.7.15(react-native@0.79.2(@babel/core@7.27.3)(react@19.1.0)) @@ -18113,7 +18141,7 @@ snapshots: ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-simple-auth: 8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-simple-auth: 8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) transitivePeerDependencies: - '@glint/template' - encoding @@ -18141,10 +18169,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cookies@1.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-cookies@1.3.0(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: '@embroider/addon-shim': 1.10.0 - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - supports-color @@ -18180,7 +18208,7 @@ snapshots: transitivePeerDependencies: - supports-color - ember-electron@7.0.0(ember-cli-dependency-checker@3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)))(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(encoding@0.1.13): + ember-electron@7.0.0(ember-cli-dependency-checker@3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)))(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(encoding@0.1.13): dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) '@electron-forge/core': 7.8.1(encoding@0.1.13) @@ -18189,7 +18217,7 @@ snapshots: ember-cli: 6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7) ember-cli-babel: 8.2.0(@babel/core@7.27.3) ember-cli-dependency-checker: 3.3.3(ember-cli@6.4.0(babel-core@6.26.3)(handlebars@4.7.8)(react@19.1.0)(underscore@1.13.7)) - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) execa: 5.1.1 find-yarn-workspace-root: 2.0.0 ncp: 2.0.0 @@ -18249,12 +18277,12 @@ snapshots: - encoding - supports-color - ember-functions-as-helper-polyfill@2.1.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-functions-as-helper-polyfill@2.1.3(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: ember-cli-babel: 7.26.11 ember-cli-typescript: 5.3.0 ember-cli-version-checker: 5.1.2 - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - supports-color @@ -18267,28 +18295,28 @@ snapshots: transitivePeerDependencies: - supports-color - ember-inflector@4.0.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-inflector@4.0.3(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: ember-cli-babel: 7.26.11 - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - supports-color - ember-inputmask@2.0.0(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(webpack@5.99.9): + ember-inputmask@2.0.0(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9): dependencies: ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) inputmask: 5.0.9 transitivePeerDependencies: - '@glint/template' - supports-color - webpack - ember-load-initializers@3.0.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-load-initializers@3.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) ember-local-storage@2.0.6: dependencies: @@ -18303,10 +18331,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-math-helpers@4.2.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-math-helpers@4.2.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: '@embroider/addon-shim': 1.10.0 - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - supports-color @@ -18329,7 +18357,7 @@ snapshots: - '@babel/core' - supports-color - ember-orbit@0.17.3(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(webpack@5.99.9): + ember-orbit@0.17.3(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(webpack@5.99.9): dependencies: '@orbit/coordinator': 0.17.0 '@orbit/core': 0.17.0 @@ -18344,7 +18372,7 @@ snapshots: ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-cli-typescript: 4.2.1 - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - '@glint/template' - supports-color @@ -18391,59 +18419,60 @@ snapshots: - '@babel/core' - supports-color - ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-simple-auth@8.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: '@ember/test-waiters': 4.1.0(@glint/template@1.5.2) '@embroider/addon-shim': 1.10.0 '@embroider/macros': 1.18.0(@glint/template@1.5.2) - ember-cookies: 1.3.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-cookies: 1.3.0(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) optionalDependencies: '@ember/test-helpers': 5.2.2(@babel/core@7.27.3)(@glint/template@1.5.2) transitivePeerDependencies: - '@glint/template' - supports-color - ember-sinon-qunit@7.5.0(@babel/core@7.27.3)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))(qunit@2.24.1)(sinon@17.0.2): + ember-sinon-qunit@7.5.0(@babel/core@7.27.3)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9))(qunit@2.24.1)(sinon@17.0.2): dependencies: '@embroider/addon-shim': 1.10.0 '@types/sinon': 17.0.4 decorator-transforms: 2.3.0(@babel/core@7.27.3) - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) qunit: 2.24.1 sinon: 17.0.2 transitivePeerDependencies: - '@babel/core' - supports-color - ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5): + ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9): dependencies: '@babel/core': 7.27.3(supports-color@8.1.1) '@ember/edition-utils': 1.2.0 - '@embroider/addon-shim': 1.10.0 - '@glimmer/compiler': 0.94.10 + '@glimmer/compiler': 0.92.4 '@glimmer/component': 2.0.0 - '@glimmer/destroyable': 0.94.8 - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 - '@glimmer/manager': 0.94.9 - '@glimmer/node': 0.94.9 - '@glimmer/opcode-compiler': 0.94.9 - '@glimmer/owner': 0.93.4 - '@glimmer/program': 0.94.9 - '@glimmer/reference': 0.94.8 - '@glimmer/runtime': 0.94.10 - '@glimmer/syntax': 0.94.9 - '@glimmer/util': 0.94.8 - '@glimmer/validator': 0.94.8 - '@glimmer/vm': 0.94.8 - '@glimmer/vm-babel-plugins': 0.93.4(@babel/core@7.27.3) + '@glimmer/destroyable': 0.92.3 + '@glimmer/env': 0.1.7 + '@glimmer/global-context': 0.92.3 + '@glimmer/interfaces': 0.92.3 + '@glimmer/manager': 0.92.4 + '@glimmer/node': 0.92.4 + '@glimmer/opcode-compiler': 0.92.4 + '@glimmer/owner': 0.92.3 + '@glimmer/program': 0.92.4 + '@glimmer/reference': 0.92.3 + '@glimmer/runtime': 0.92.4 + '@glimmer/syntax': 0.92.3 + '@glimmer/util': 0.92.3 + '@glimmer/validator': 0.92.3 + '@glimmer/vm': 0.92.3 + '@glimmer/vm-babel-plugins': 0.92.3(@babel/core@7.27.3) '@simple-dom/interface': 1.4.0 backburner.js: 2.8.0 broccoli-file-creator: 2.1.1 broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 + ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.9) ember-cli-babel: 8.2.0(@babel/core@7.27.3) ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -18460,8 +18489,10 @@ snapshots: silent-error: 1.1.1 simple-html-tokenizer: 0.5.11 transitivePeerDependencies: + - '@glint/template' - rsvp - supports-color + - webpack ember-svg-jar@2.6.3(@glint/template@1.5.2): dependencies: @@ -18578,11 +18609,11 @@ snapshots: transitivePeerDependencies: - supports-color - ember-truth-helpers@4.0.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-truth-helpers@4.0.3(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)): dependencies: '@embroider/addon-shim': 1.10.0 - ember-functions-as-helper-polyfill: 2.1.3(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-functions-as-helper-polyfill: 2.1.3(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9)) + ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.9) transitivePeerDependencies: - supports-color From 9cf07f1bfe9a9673ad6317365cdd4e2494b2da74 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sat, 31 May 2025 13:43:06 -0400 Subject: [PATCH 15/23] Fix some types --- app/components/kuler-palette-row.ts | 5 ++--- app/components/settings-data.ts | 10 ++++------ app/utils/remove-from-to.ts | 1 + 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/app/components/kuler-palette-row.ts b/app/components/kuler-palette-row.ts index 0900d9ad7..53f5974d8 100644 --- a/app/components/kuler-palette-row.ts +++ b/app/components/kuler-palette-row.ts @@ -3,6 +3,7 @@ import type Router from '@ember/routing/router-service'; import { service } from '@ember/service'; import Component from '@glimmer/component'; +import type MotionService from 'ember-animated/services/-ea-motion'; import fade from 'ember-animated/transitions/fade'; import type { Store } from 'ember-orbit'; @@ -20,9 +21,7 @@ interface KulerPaletteRowSignature { export default class KulerPaletteRowComponent extends Component { @service declare colorUtils: ColorUtils; - // TODO: correctly type this instead of using `any` - // eslint-disable-next-line @typescript-eslint/no-explicit-any - @service('-ea-motion') declare eaMotion: any; + @service('-ea-motion') declare eaMotion: MotionService; @service declare router: Router; @service declare store: Store; @service declare undoManager: UndoManager; diff --git a/app/components/settings-data.ts b/app/components/settings-data.ts index 21f52cd53..9cf6dc07c 100644 --- a/app/components/settings-data.ts +++ b/app/components/settings-data.ts @@ -1,4 +1,3 @@ -import { action } from '@ember/object'; import type Owner from '@ember/owner'; import { service } from '@ember/service'; import Component from '@glimmer/component'; @@ -40,8 +39,7 @@ export default class SettingsData extends Component { } } - @action - exportIndexedDB(): void { + exportIndexedDB = () => { if (this.ipcRenderer) { this.isExporting = true; @@ -72,11 +70,10 @@ export default class SettingsData extends Component { } } - @action - importIndexedDB(): void { + importIndexedDB = async () => { if (this.ipcRenderer) { this.isImporting = true; - this.ipcRenderer.invoke('importData').then((jsonString: string) => { + await this.ipcRenderer.invoke('importData').then((jsonString: string) => { if (jsonString) { const DBOpenRequest = getDBOpenRequest(); @@ -89,6 +86,7 @@ export default class SettingsData extends Component { IDBExportImport.importFromJsonString( idbDatabase, jsonString, + // eslint-disable-next-line @typescript-eslint/no-misused-promises async (err: Event | null) => { if (!err) { idbDatabase.close(); diff --git a/app/utils/remove-from-to.ts b/app/utils/remove-from-to.ts index 651a8d7bc..b65c8a21b 100644 --- a/app/utils/remove-from-to.ts +++ b/app/utils/remove-from-to.ts @@ -5,6 +5,7 @@ export default function removeFromTo( ): number { array.splice( from, + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument !to || // @ts-expect-error: We need to refactor this function 1 + From 97bbf81a58226500e494da95dd86cdec97f07933 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sat, 31 May 2025 14:00:55 -0400 Subject: [PATCH 16/23] TS fixes --- app/components/kuler.ts | 107 ++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 59 deletions(-) diff --git a/app/components/kuler.ts b/app/components/kuler.ts index 755218c40..dd3233bec 100644 --- a/app/components/kuler.ts +++ b/app/components/kuler.ts @@ -48,9 +48,7 @@ export default class KulerComponent extends Component { @service declare colorUtils: ColorUtils; @service declare store: Store; - // TODO: correctly type this instead of using `any` - // eslint-disable-next-line @typescript-eslint/no-explicit-any - _debouncedColorChange!: any; + _debouncedColorChange!: (color: iro.Color | string) => void; colorPicker!: iro.ColorPicker; harmonies = ['analogous', 'monochromatic', 'tetrad', 'triad'] as const; declare ipcRenderer: IpcRenderer; @@ -66,33 +64,32 @@ export default class KulerComponent extends Component { this._debouncedColorChange = debounce(10, this._onColorChange); this.baseColor = this.args.baseColor; - this.baseColorChanged().then(() => { - this._setupColorWheel(); + this.baseColorChanged(); + this._setupColorWheel(); - if (typeof requireNode !== 'undefined') { - const { ipcRenderer } = requireNode('electron'); + if (typeof requireNode !== 'undefined') { + const { ipcRenderer } = requireNode('electron'); - this.ipcRenderer = ipcRenderer; + this.ipcRenderer = ipcRenderer; - this.ipcRenderer.on( - 'selectKulerColor', - async (_event: unknown, colorIndex: number) => { - this.setSelectedIroColor(colorIndex); - }, - ); - - this.ipcRenderer.on( - 'updateKulerColor', - async (_event: unknown, color) => { - await this._onColorChange(color); - this.colorPicker.setColors( - this.selectedPalette.colors.map((color: ColorModel) => color.hex), - this.selectedPalette.selectedColorIndex, - ); - }, - ); - } - }); + this.ipcRenderer.on( + 'selectKulerColor', + (_event: unknown, colorIndex: number) => { + this.setSelectedIroColor(colorIndex); + }, + ); + + this.ipcRenderer.on( + 'updateKulerColor', + (_event: unknown, color: string | iro.Color) => { + this._onColorChange(color); + this.colorPicker.setColors( + this.selectedPalette.colors.map((color: ColorModel) => color.hex), + this.selectedPalette.selectedColorIndex, + ); + }, + ); + } } willDestroy(): void { @@ -108,8 +105,7 @@ export default class KulerComponent extends Component { } } - @action - async baseColorChanged(selectedPaletteTypeIndex = 0): Promise { + baseColorChanged = (selectedPaletteTypeIndex = 0) => { this._destroyLeftoverPalettes(); const palettes: Palette[] = []; @@ -133,23 +129,20 @@ export default class KulerComponent extends Component { this.palettes = palettes; this.selectedPalette = this.palettes[selectedPaletteTypeIndex] as Palette; - } + }; - @action - setColorAsBase(): Promise { + setColorAsBase = () => { this.baseColor = this.selectedPalette.colors[ this.selectedPalette.selectedColorIndex ] as ColorModel; - return this.baseColorChanged( - this.palettes.indexOf(this.selectedPalette), - ).then(() => { - this.colorPicker.setColors( - this.selectedPalette.colors.map((color: ColorModel) => color.hex), - this.selectedPalette.selectedColorIndex, - ); - }); - } + this.baseColorChanged(this.palettes.indexOf(this.selectedPalette)); + + this.colorPicker.setColors( + this.selectedPalette.colors.map((color: ColorModel) => color.hex), + this.selectedPalette.selectedColorIndex, + ); + }; /** * Sets the selected color in the iro.js color wheel @@ -163,8 +156,7 @@ export default class KulerComponent extends Component { /** * Sets the selected palette and the colors for the color picker */ - @action - setSelectedPalette(event: InputEvent): void { + setSelectedPalette = (event: InputEvent) => { const paletteName = (event.target).value; const palette = this.palettes.find((p: Palette) => p.name === paletteName); @@ -175,15 +167,13 @@ export default class KulerComponent extends Component { palette.selectedColorIndex, ); } - } + }; - @action - _destroyLeftoverPalettes(): void { + _destroyLeftoverPalettes = () => { this.palettes = []; - } + }; - @action - async _onColorChange(color: iro.Color | string): Promise { + _onColorChange = (color: iro.Color | string) => { const { selectedColorIndex } = this.selectedPalette; // if changing the selected baseColor, we should update all the colors const newColor = this.colorUtils.createColorPOJO( @@ -197,26 +187,25 @@ export default class KulerComponent extends Component { ); if (selectedColorIndex === 0) { - this.baseColor = - this.selectedPalette.colors[this.selectedPalette.selectedColorIndex] as ColorModel; - await this.setColorAsBase(); + this.baseColor = this.selectedPalette.colors[ + this.selectedPalette.selectedColorIndex + ] as ColorModel; + this.setColorAsBase(); } this.colorPicker.setColors( this.selectedPalette.colors.map((color: ColorModel) => color.hex), this.selectedPalette.selectedColorIndex, ); - } + }; - @action - _onColorSetActive(color: iro.Color): void { + _onColorSetActive = (color: iro.Color) => { if (color) { this.selectedPalette.selectedColorIndex = color.index; } - } + }; - @action - _setupColorWheel(): void { + _setupColorWheel = () => { // TODO: correctly type this instead of using `any` // eslint-disable-next-line @typescript-eslint/no-explicit-any this.colorPicker = (iro.ColorPicker as any)( @@ -264,7 +253,7 @@ export default class KulerComponent extends Component { this.colorPicker.on('color:change', this._debouncedColorChange); this.colorPicker.on('color:setActive', this._onColorSetActive); - } + }; } declare module '@glint/environment-ember-loose/registry' { From 30ccae1f815e82e9558e59e4634fd6f2e3e2b954 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sat, 31 May 2025 15:27:47 -0400 Subject: [PATCH 17/23] Finish fixing JS lint --- app/components/about.ts | 4 +-- app/components/animated-drag-sort-list.ts | 2 ++ app/components/color-picker.ts | 2 +- app/components/colors-list.ts | 3 +- app/components/contrast-checker.ts | 33 ++++++++++++---------- app/components/loading-button.ts | 1 + app/controllers/application.ts | 7 +++-- app/utils/view-transitions.ts | 1 + electron-app/src/index.js | 1 + electron-app/src/ipc-events.js | 6 +++- package.json | 1 + pnpm-lock.yaml | 34 ++++++++++------------- tests/acceptance/settings/cloud-test.ts | 1 + tests/helpers.ts | 6 +++- 14 files changed, 59 insertions(+), 43 deletions(-) diff --git a/app/components/about.ts b/app/components/about.ts index 1a127beac..687119c12 100644 --- a/app/components/about.ts +++ b/app/components/about.ts @@ -23,7 +23,7 @@ export default class AboutComponent extends Component { this.ipcRenderer = ipcRenderer; - this.ipcRenderer.invoke('getAppVersion').then((version: string) => { + void this.ipcRenderer.invoke('getAppVersion').then((version: string) => { this.version = version; }); } @@ -34,7 +34,7 @@ export default class AboutComponent extends Component { event.preventDefault(); if (typeof requireNode !== 'undefined') { - requireNode('electron').shell.openExternal('https://swach.io/'); + void this.ipcRenderer.invoke('open-external', 'https://swach.io/'); } } } diff --git a/app/components/animated-drag-sort-list.ts b/app/components/animated-drag-sort-list.ts index 1adf420b6..d9b47182b 100644 --- a/app/components/animated-drag-sort-list.ts +++ b/app/components/animated-drag-sort-list.ts @@ -17,6 +17,7 @@ export default class AnimatedDragSortList extends DragSortList { @action rules(): unknown { if (!this.didDrag) { + // eslint-disable-next-line @typescript-eslint/unbound-method return this.transition; } @@ -25,6 +26,7 @@ export default class AnimatedDragSortList extends DragSortList { return null; } + // eslint-disable-next-line require-yield *transition({ keptSprites, insertedSprites, diff --git a/app/components/color-picker.ts b/app/components/color-picker.ts index 243759460..49f20b1ec 100644 --- a/app/components/color-picker.ts +++ b/app/components/color-picker.ts @@ -93,7 +93,7 @@ export default class ColorPickerComponent extends Component return undefined; } + // eslint-disable-next-line require-yield *transition({ keptSprites, insertedSprites, @@ -73,7 +74,7 @@ export default class ColorsListComponent extends Component } @action - async deleteColor(color: ColorModel): Promise { + async deleteColor(color: ColorModel){ const { palette } = this.args; if (color && palette && !palette.isLocked) { diff --git a/app/components/contrast-checker.ts b/app/components/contrast-checker.ts index a8d137b6e..b56eb1a6c 100644 --- a/app/components/contrast-checker.ts +++ b/app/components/contrast-checker.ts @@ -3,6 +3,7 @@ import type Owner from '@ember/owner'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; +import { type IroColorValue } from '@irojs/iro-core'; import iro from '@jaames/iro'; import type { IpcRenderer } from 'electron'; import { hex, score } from 'wcag-contrast'; @@ -37,13 +38,19 @@ export default class ContrastChecker extends Component this.ipcRenderer = ipcRenderer; - this.ipcRenderer.on('pickContrastBgColor', async (_event, color) => { - this.setBgColor(color); - }); + this.ipcRenderer.on( + 'pickContrastBgColor', + (_event, color: IroColorValue) => { + this.setBgColor(color); + }, + ); - this.ipcRenderer.on('pickContrastFgColor', async (_event, color) => { - this.setFgColor(color); - }); + this.ipcRenderer.on( + 'pickContrastFgColor', + (_event, color: IroColorValue) => { + this.setFgColor(color); + }, + ); } } @@ -139,16 +146,14 @@ export default class ContrastChecker extends Component @action onBlurBg(ev: Event) { - this.setBgColor((ev.target as HTMLInputElement).value); + this.setBgColor((ev.target as HTMLInputElement).value as IroColorValue); } - // TODO: correctly type this instead of using `any` - // eslint-disable-next-line @typescript-eslint/no-explicit-any - setBgColor(color: any) { + setBgColor(color: IroColorValue) { try { this.bgPickr.setColors([color]); this.backgroundColor = this.bgPickr.color.hexString; - } catch (err) { + } catch { // TODO: maybe mention the color is invalid here? } } @@ -158,13 +163,11 @@ export default class ContrastChecker extends Component this.setFgColor((ev.target as HTMLInputElement).value); } - // TODO: correctly type this instead of using `any` - // eslint-disable-next-line @typescript-eslint/no-explicit-any - setFgColor(color: any) { + setFgColor(color: IroColorValue) { try { this.fgPickr.setColors([color]); this.foregroundColor = this.fgPickr.color.hexString; - } catch (err) { + } catch { // TODO: maybe mention the color is invalid here? } } diff --git a/app/components/loading-button.ts b/app/components/loading-button.ts index ccd84fa2c..2c1b70775 100644 --- a/app/components/loading-button.ts +++ b/app/components/loading-button.ts @@ -8,6 +8,7 @@ interface LoadingButtonSignature { }; } +// eslint-disable-next-line ember/no-empty-glimmer-component-classes export default class LoadingButton extends Component {} declare module '@glint/environment-ember-loose/registry' { diff --git a/app/controllers/application.ts b/app/controllers/application.ts index 289249071..43785e298 100644 --- a/app/controllers/application.ts +++ b/app/controllers/application.ts @@ -109,7 +109,7 @@ export default class ApplicationController extends Controller { const addedColor = await this.addColor(color); if (addedColor) { - this.colorUtils.copyColorToClipboard(addedColor); + await this.colorUtils.copyColorToClipboard(addedColor); } }, ); @@ -122,7 +122,10 @@ export default class ApplicationController extends Controller { 'openSharedPalette', // eslint-disable-next-line @typescript-eslint/no-misused-promises async (_event: unknown, query: string) => { - const data = JSON.parse(decodeURIComponent(query)); + const data = JSON.parse(decodeURIComponent(query)) as { + colors?: { name: string; hex: string }[]; + name?: string; + }; const colors = data?.colors ?? []; const name = data?.name ?? 'Palette'; diff --git a/app/utils/view-transitions.ts b/app/utils/view-transitions.ts index 38bdcebd7..e9e88adeb 100644 --- a/app/utils/view-transitions.ts +++ b/app/utils/view-transitions.ts @@ -4,6 +4,7 @@ export default function viewTransitions() { } return new Promise((resolve) => { + // eslint-disable-next-line @typescript-eslint/require-await document.startViewTransition(async () => { resolve(); }); diff --git a/electron-app/src/index.js b/electron-app/src/index.js index dbe0cf6c1..e8316a53e 100644 --- a/electron-app/src/index.js +++ b/electron-app/src/index.js @@ -2,6 +2,7 @@ const Sentry = require('@sentry/electron'); const { ipcMain, nativeTheme } = require('electron'); const isDev = require('electron-is-dev'); const Store = require('electron-store'); +// eslint-disable-next-line no-redeclare const { menubar } = require('menubar'); const { basename, dirname, join, resolve } = require('path'); const { pathToFileURL } = require('url'); diff --git a/electron-app/src/ipc-events.js b/electron-app/src/ipc-events.js index 772f13b5a..a3c17cb4c 100644 --- a/electron-app/src/ipc-events.js +++ b/electron-app/src/ipc-events.js @@ -1,4 +1,4 @@ -const { app, clipboard, dialog, ipcMain, nativeTheme } = require('electron'); +const { app, clipboard, dialog, ipcMain, nativeTheme, shell } = require('electron'); const { download } = require('electron-dl'); const fs = require('fs'); @@ -65,6 +65,10 @@ function setupEventHandlers(mb, store) { await launchPicker(mb); }); + ipcMain.handle('open-external', async (_event, url) => { + await shell.openExternal(url); + }); + ipcMain.on('setShowDockIcon', async (channel, showDockIcon) => { store.set('showDockIcon', showDockIcon); await restartDialog(); diff --git a/package.json b/package.json index e012d5440..2a1894bb6 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "@glint/environment-ember-loose": "^1.5.2", "@glint/environment-ember-template-imports": "^1.5.2", "@glint/template": "^1.5.2", + "@irojs/iro-core": "^1.2.1", "@jaames/iro": "^5.5.2", "@orbit/coordinator": "^0.17.0", "@orbit/indexeddb": "^0.17.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 425105fd6..9359a502e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ importers: '@glint/template': specifier: ^1.5.2 version: 1.5.2 + '@irojs/iro-core': + specifier: ^1.2.1 + version: 1.2.1 '@jaames/iro': specifier: ^5.5.2 version: 5.5.2 @@ -14140,14 +14143,14 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8(@babel/core@7.27.3) - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__debug': 4.0.8 + '@types/ember__engine': 4.0.11 '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10 - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14160,14 +14163,14 @@ snapshots: '@types/ember__array': 4.0.10(@babel/core@7.27.3) '@types/ember__component': 4.0.22(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) - '@types/ember__debug': 4.0.8(@babel/core@7.27.3) - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__debug': 4.0.8 + '@types/ember__engine': 4.0.11 '@types/ember__error': 4.0.6 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__polyfills': 4.0.6 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) '@types/ember__runloop': 4.0.10(@babel/core@7.27.3) - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 '@types/ember__string': 3.0.15 '@types/ember__template': 4.0.7 '@types/ember__test': 4.0.6(@babel/core@7.27.3) @@ -14181,7 +14184,7 @@ snapshots: dependencies: '@glimmer/component': 1.1.2(@babel/core@7.27.3) '@types/ember': 4.0.11 - '@types/ember__engine': 4.0.11(@babel/core@7.27.3) + '@types/ember__engine': 4.0.11 '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 '@types/ember__routing': 4.0.22(@babel/core@7.27.3) @@ -14212,21 +14215,15 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__debug@4.0.8(@babel/core@7.27.3)': + '@types/ember__debug@4.0.8': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 - transitivePeerDependencies: - - '@babel/core' - - supports-color - '@types/ember__engine@4.0.11(@babel/core@7.27.3)': + '@types/ember__engine@4.0.11': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) '@types/ember__owner': 4.0.9 - transitivePeerDependencies: - - '@babel/core' - - supports-color '@types/ember__error@4.0.6': {} @@ -14247,7 +14244,7 @@ snapshots: '@types/ember': 4.0.11(@babel/core@7.27.3) '@types/ember__controller': 4.0.12(@babel/core@7.27.3) '@types/ember__object': 4.0.12(@babel/core@7.27.3) - '@types/ember__service': 4.0.9(@babel/core@7.27.3) + '@types/ember__service': 4.0.9 transitivePeerDependencies: - '@babel/core' - supports-color @@ -14263,12 +14260,9 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__service@4.0.9(@babel/core@7.27.3)': + '@types/ember__service@4.0.9': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.27.3) - transitivePeerDependencies: - - '@babel/core' - - supports-color '@types/ember__string@3.0.15': {} diff --git a/tests/acceptance/settings/cloud-test.ts b/tests/acceptance/settings/cloud-test.ts index 833f36434..367de3013 100644 --- a/tests/acceptance/settings/cloud-test.ts +++ b/tests/acceptance/settings/cloud-test.ts @@ -91,6 +91,7 @@ module('Acceptance | settings/cloud', function (hooks) { }, }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any const authenticator = this.owner.lookup('authenticator:cognito') as any; const authenticateStub = sinon .stub(authenticator, 'authenticate') diff --git a/tests/helpers.ts b/tests/helpers.ts index 23b9552e7..a270fc623 100644 --- a/tests/helpers.ts +++ b/tests/helpers.ts @@ -14,7 +14,11 @@ import seedOrbit from './orbit/seed'; export async function waitForAll() { const { owner } = getContext() as { owner: Owner }; // @ts-expect-error Not sure why it says this does not exist - const { services } = owner.resolveRegistration('ember-orbit:config'); + const { services } = owner.resolveRegistration('ember-orbit:config') as { + services: { + coordinator: string; + }; + }; const coordinator = owner.lookup( `service:${services.coordinator}`, ) as unknown as Coordinator; From 7348828d51fd38a692d7bc314a8a20d4daa321da Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sat, 31 May 2025 15:28:57 -0400 Subject: [PATCH 18/23] Run prettier on everything --- CHANGELOG.md | 36 ++++++----- app/app.ts | 3 +- app/components/colors-list.ts | 2 +- app/components/contrast-checker.hbs | 5 +- app/components/login.ts | 2 +- app/components/settings-data.ts | 6 +- app/components/toggle-switch.gts | 64 +++++++++---------- app/data-sources/backup.ts | 20 +++--- .../store-beforequery-remote-query.js | 1 - app/routes/colors.ts | 2 +- app/routes/contrast.ts | 2 +- app/routes/kuler.ts | 2 +- app/routes/palettes.ts | 2 +- app/routes/settings/cloud/index.ts | 2 +- app/routes/settings/cloud/profile.ts | 1 - app/routes/settings/data.ts | 2 +- app/routes/settings/index.ts | 2 +- app/styles/color-squares.scss | 3 +- electron-app/src/ipc-events.js | 9 ++- tests/acceptance/colors-test.js | 1 - tests/acceptance/settings-test.js | 2 - tests/helpers.ts | 4 +- tests/helpers/index.ts | 2 +- 23 files changed, 92 insertions(+), 83 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc34db6c7..8917046fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,3 @@ - ## v1.2.15 (2024-01-10) ## v1.2.14 (2024-01-10) @@ -32,26 +31,29 @@ ## v1.2.0 (2024-01-07) #### :bug: Bug Fix -* [#1948](https://github.com/shipshapecode/swach/pull/1948) Update ember-animated, fix menu not working on contrast checker screen ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) + +- [#1948](https://github.com/shipshapecode/swach/pull/1948) Update ember-animated, fix menu not working on contrast checker screen ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) #### :house: Internal -* [#1949](https://github.com/shipshapecode/swach/pull/1949) Update release-it ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1946](https://github.com/shipshapecode/swach/pull/1946) Add gts support ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1918](https://github.com/shipshapecode/swach/pull/1918) ember-cli 5.2.0 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1945](https://github.com/shipshapecode/swach/pull/1945) Update linting deps, fix lint ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1944](https://github.com/shipshapecode/swach/pull/1944) Node 18 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1732](https://github.com/shipshapecode/swach/pull/1732) Ember 5 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1646](https://github.com/shipshapecode/swach/pull/1646) ember-cli 5 beta, switch from yarn to pnpm ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1644](https://github.com/shipshapecode/swach/pull/1644) Ember 4.12 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1634](https://github.com/shipshapecode/swach/pull/1634) Run on ubuntu-latest ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1540](https://github.com/shipshapecode/swach/pull/1540) More glint updates ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1536](https://github.com/shipshapecode/swach/pull/1536) ember-cli 4.10 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1504](https://github.com/shipshapecode/swach/pull/1504) Update electron deps ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1405](https://github.com/shipshapecode/swach/pull/1405) Embroider 2.x ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1360](https://github.com/shipshapecode/swach/pull/1360) Pin embroider to 1.8.3 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) -* [#1329](https://github.com/shipshapecode/swach/pull/1329) Electron 21 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) + +- [#1949](https://github.com/shipshapecode/swach/pull/1949) Update release-it ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1946](https://github.com/shipshapecode/swach/pull/1946) Add gts support ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1918](https://github.com/shipshapecode/swach/pull/1918) ember-cli 5.2.0 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1945](https://github.com/shipshapecode/swach/pull/1945) Update linting deps, fix lint ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1944](https://github.com/shipshapecode/swach/pull/1944) Node 18 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1732](https://github.com/shipshapecode/swach/pull/1732) Ember 5 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1646](https://github.com/shipshapecode/swach/pull/1646) ember-cli 5 beta, switch from yarn to pnpm ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1644](https://github.com/shipshapecode/swach/pull/1644) Ember 4.12 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1634](https://github.com/shipshapecode/swach/pull/1634) Run on ubuntu-latest ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1540](https://github.com/shipshapecode/swach/pull/1540) More glint updates ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1536](https://github.com/shipshapecode/swach/pull/1536) ember-cli 4.10 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1504](https://github.com/shipshapecode/swach/pull/1504) Update electron deps ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1405](https://github.com/shipshapecode/swach/pull/1405) Embroider 2.x ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1360](https://github.com/shipshapecode/swach/pull/1360) Pin embroider to 1.8.3 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) +- [#1329](https://github.com/shipshapecode/swach/pull/1329) Electron 21 ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) #### Committers: 1 + - Robbie Wagner ([@RobbieTheWagner](https://github.com/RobbieTheWagner)) ## v1.1.13 (2022-08-02) diff --git a/app/app.ts b/app/app.ts index 0bbe0850d..4a31de78c 100644 --- a/app/app.ts +++ b/app/app.ts @@ -4,9 +4,10 @@ import { InitSentryForEmber } from '@sentry/ember'; import loadInitializers from 'ember-load-initializers'; import Resolver from 'ember-resolver'; -import config from 'swach/config/environment'; import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros'; +import config from 'swach/config/environment'; + if (macroCondition(isDevelopingApp())) { importSync('./deprecation-workflow'); } diff --git a/app/components/colors-list.ts b/app/components/colors-list.ts index 94e0009c8..6c1bb6fb2 100644 --- a/app/components/colors-list.ts +++ b/app/components/colors-list.ts @@ -74,7 +74,7 @@ export default class ColorsListComponent extends Component } @action - async deleteColor(color: ColorModel){ + async deleteColor(color: ColorModel) { const { palette } = this.args; if (color && palette && !palette.isLocked) { diff --git a/app/components/contrast-checker.hbs b/app/components/contrast-checker.hbs index 106a20a73..c0de863a7 100644 --- a/app/components/contrast-checker.hbs +++ b/app/components/contrast-checker.hbs @@ -12,7 +12,10 @@ ) }} > -
+

{{this.wcagString}} diff --git a/app/components/login.ts b/app/components/login.ts index 199c0533f..75af2fad0 100644 --- a/app/components/login.ts +++ b/app/components/login.ts @@ -38,7 +38,7 @@ export default class LoginComponent extends Component { this.router.transitionTo('settings.cloud'); } catch (error: unknown) { - this.errorMessage = (error as Error).message || error as string; + this.errorMessage = (error as Error).message || (error as string); } finally { this.loading = false; } diff --git a/app/components/settings-data.ts b/app/components/settings-data.ts index 9cf6dc07c..453010b90 100644 --- a/app/components/settings-data.ts +++ b/app/components/settings-data.ts @@ -53,7 +53,7 @@ export default class SettingsData extends Component { (err: Event | null, jsonString: string) => { if (err) { this.flashMessages.danger('An error occurred.'); - + console.error(err); } else { this.ipcRenderer.send('exportData', jsonString); @@ -68,7 +68,7 @@ export default class SettingsData extends Component { ); }; } - } + }; importIndexedDB = async () => { if (this.ipcRenderer) { @@ -128,7 +128,7 @@ export default class SettingsData extends Component { } }); } - } + }; } declare module '@glint/environment-ember-loose/registry' { diff --git a/app/components/toggle-switch.gts b/app/components/toggle-switch.gts index 12489a7ed..707c72361 100644 --- a/app/components/toggle-switch.gts +++ b/app/components/toggle-switch.gts @@ -7,69 +7,69 @@ interface ToggleSwitchSignature { } export const ToggleSwitch: TOC =