From d8fe054f2ec2ceffdd9659f5db20c4f86f3a0ee5 Mon Sep 17 00:00:00 2001 From: Marine Dunstetter Date: Wed, 24 Jan 2024 12:25:16 +0100 Subject: [PATCH 1/2] step 5: convert the addon to v2 --- .github/workflows/ci.yml | 7 + .github/workflows/release.yml | 7 +- config/ember-cli-update.json | 22 + package.json | 2 + packages/ember-promise-modals/.eslintrc.js | 2 +- packages/ember-promise-modals/LICENSE.md | 9 + packages/ember-promise-modals/README.md | 298 +++++ packages/ember-promise-modals/addon-main.cjs | 4 + packages/ember-promise-modals/app/.gitkeep | 0 .../app/components/epm-modal-container.js | 1 - .../app/components/epm-modal.js | 1 - .../app/helpers/open-modal.js | 1 - .../app/services/modals.js | 1 - .../ember-promise-modals/babel.config.json | 10 + packages/ember-promise-modals/index.js | 5 - packages/ember-promise-modals/package.json | 45 +- .../ember-promise-modals/rollup.config.mjs | 71 ++ .../{addon => src}/.gitkeep | 0 .../components/epm-modal-container.css} | 0 .../components/epm-modal-container.hbs | 0 .../components/epm-modal-container.js | 2 + .../{addon => src}/components/epm-modal.hbs | 0 .../{addon => src}/components/epm-modal.js | 0 .../{addon => src}/helpers/open-modal.js | 0 .../{addon => src}/modal.js | 0 .../{addon => src}/services/modals.js | 0 .../test-support}/index.js | 0 packages/test-app/config/ember-try.js | 8 + packages/test-app/package.json | 2 +- pnpm-lock.yaml | 1056 ++++++++++++++++- 30 files changed, 1510 insertions(+), 44 deletions(-) create mode 100644 config/ember-cli-update.json create mode 100644 packages/ember-promise-modals/LICENSE.md create mode 100644 packages/ember-promise-modals/README.md create mode 100644 packages/ember-promise-modals/addon-main.cjs delete mode 100644 packages/ember-promise-modals/app/.gitkeep delete mode 100644 packages/ember-promise-modals/app/components/epm-modal-container.js delete mode 100644 packages/ember-promise-modals/app/components/epm-modal.js delete mode 100644 packages/ember-promise-modals/app/helpers/open-modal.js delete mode 100644 packages/ember-promise-modals/app/services/modals.js create mode 100644 packages/ember-promise-modals/babel.config.json delete mode 100644 packages/ember-promise-modals/index.js create mode 100644 packages/ember-promise-modals/rollup.config.mjs rename packages/ember-promise-modals/{addon => src}/.gitkeep (100%) rename packages/ember-promise-modals/{addon/styles/ember-promise-modals.css => src/components/epm-modal-container.css} (100%) rename packages/ember-promise-modals/{addon => src}/components/epm-modal-container.hbs (100%) rename packages/ember-promise-modals/{addon => src}/components/epm-modal-container.js (82%) rename packages/ember-promise-modals/{addon => src}/components/epm-modal.hbs (100%) rename packages/ember-promise-modals/{addon => src}/components/epm-modal.js (100%) rename packages/ember-promise-modals/{addon => src}/helpers/open-modal.js (100%) rename packages/ember-promise-modals/{addon => src}/modal.js (100%) rename packages/ember-promise-modals/{addon => src}/services/modals.js (100%) rename packages/ember-promise-modals/{addon-test-support => src/test-support}/index.js (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e3a2dd28..32969406 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,8 @@ jobs: run: pnpm install - name: Lint run: pnpm run lint + - name: Build addon + run: pnpm run build:addon - name: Run Tests run: pnpm run test working-directory: packages/test-app @@ -53,6 +55,8 @@ jobs: cache: pnpm - name: Install Dependencies run: pnpm install + - name: Build addon + run: pnpm run build:addon - name: Run Tests run: pnpm run test working-directory: packages/test-app @@ -69,6 +73,7 @@ jobs: - ember-lts-3.28 - ember-lts-4.4 - ember-lts-4.8 + - ember-lts-4.12 - ember-release - ember-beta - ember-canary @@ -89,6 +94,8 @@ jobs: cache: pnpm - name: Install Dependencies run: pnpm install + - name: Build addon + run: pnpm run build:addon - name: Run Tests run: pnpm exec ember try:one ${{ matrix.try-scenario }} working-directory: packages/test-app diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a095dee1..f9e3d71d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,12 @@ jobs: node-version: 16 registry-url: 'https://registry.npmjs.org' - - run: npm publish + - name: prepack + run: pnpm run prepack + working-directory: packages/ember-promise-modals + + - name: publish to npm + run: pnpm run release working-directory: packages/ember-promise-modals env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/config/ember-cli-update.json b/config/ember-cli-update.json new file mode 100644 index 00000000..5530aaa5 --- /dev/null +++ b/config/ember-cli-update.json @@ -0,0 +1,22 @@ +{ + "schemaVersion": "1.0.0", + "projectName": "ember-promise-modals", + "packages": [ + { + "name": "@embroider/addon-blueprint", + "version": "2.11.0", + "blueprints": [ + { + "name": "@embroider/addon-blueprint", + "isBaseBlueprint": true, + "options": [ + "--addon-location=packages/ember-promise-modals", + "--ci-provider=github", + "--pnpm", + "--test-app-location=packages/test-app" + ] + } + ] + } + ] +} diff --git a/package.json b/package.json index 534f3955..6b16b693 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ "packages/*" ], "scripts": { + "build:addon": "pnpm --filter ember-promise-modals build", "build:test-app": "pnpm --filter test-app build", + "start:test-app": "pnpm --filter test-app start", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", "lint:md": "prettier --check '**/*.md'", "lint:md:fix": "prettier --write '**/*.md'", diff --git a/packages/ember-promise-modals/.eslintrc.js b/packages/ember-promise-modals/.eslintrc.js index 15867c30..8ac1c7c7 100644 --- a/packages/ember-promise-modals/.eslintrc.js +++ b/packages/ember-promise-modals/.eslintrc.js @@ -99,7 +99,7 @@ module.exports = { overrides: [ // node files { - files: ['./.eslintrc.js', './.prettierrc.js', './.template-lintrc.js', './config/**/*.js', './index.js'], + files: ['./.eslintrc.js', './.prettierrc.js', './.template-lintrc.js', './config/**/*.js', './addon-main.cjs'], parserOptions: { sourceType: 'script', }, diff --git a/packages/ember-promise-modals/LICENSE.md b/packages/ember-promise-modals/LICENSE.md new file mode 100644 index 00000000..f8d1edb3 --- /dev/null +++ b/packages/ember-promise-modals/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2019 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/ember-promise-modals/README.md b/packages/ember-promise-modals/README.md new file mode 100644 index 00000000..1a0750b2 --- /dev/null +++ b/packages/ember-promise-modals/README.md @@ -0,0 +1,298 @@ +

+ +# ember-promise-modals + +The better way to handle modals in your Ember.js apps. + +> [!NOTE] +> ember-promise-modals was written and is maintained by [Mainmatter](https://mainmatter.com) and contributors. +> We offer consulting, training, and team augmentation for Ember.js – check out our [website](https://mainmatter.com/ember-consulting/) to learn more! + +## Compatibility + +- Ember.js v3.28 or above +- Ember CLI v3.28 or above +- Node.js v16 or above + +## Installation + +``` +ember install ember-promise-modals +``` + +## Usage + +To use EPM in your project, add the target for the modals to your `application.hbs`: + +```hbs + +``` + +Then you can inject the `modals` [service](https://guides.emberjs.com/release/services/#toc_accessing-services) wherever you need and call its `open` method with a component class to render it as a modal. + +```js +import { inject as service } from '@ember/service'; +import ConfirmationModal from 'my-app/components/confirmation-modal'; + +export default class extends Component { + @service modals; + + @action + async handleOpenModal() { + let modal = this.modals.open(ConfirmationModal); + + // the instance acts as a promise that resolves with anything passed to the @close function + modal.then(results => { + // do something with the data + }); + + // so does `await`ing it! + let results = await modal; + + // you can also close the modal from outside + modal.close(); + } +} +``` + +```hbs + +``` + +### Passing data to the rendered component + +You can pass custom data into your rendered template like so: + +```js +this.modals.open(FilePreviewModal, { + fileUrl: this.fileUrl, +}); +``` + +All passed attributes can be accessed from the passed-in `data` object: + +```hbs + + +``` + +```js +// components/file-preview.js +this.args.data.fileUrl; // or this.data.fileUrl in classic components +``` + +**NOTE:** By default, a `close` method is passed in your rendered component, in +order to trigger the "close modal" action. It can be called like so: + +```hbs + + +``` + +```js +// components/file-preview.js +this.args.close(results); // or this.close() in classic components +``` + +### Routable modals using the template helper + +This addon comes with a `{{open-modal}}` template helper which can be used to trigger modals from any templates. It accepts the similar arguments as the `open` method. It can be used to open a modal in a route, closing it automatically when navigating elsewhere. + +```hbs +{{open-modal this.ConfirmationModalComponent (hash fileUrl=this.fileUrl) close=(fn this.save results)}} +``` + +Positional arguments mimick the `open()` method on the service: + +- `componentClass`: An imported component class of the modal to render +- `data`: Pass additional context to the modal, +- `options`: Pass additional options to the modal + +Named arguments: + +- `close` is called asynchronously with the data returned by the modals `@close` action when it is closed + +## Animation + +This addon uses CSS animations. You can either replace the +[styles of this addon](./addon/styles/ember-promise-modals.css) with your own +or adjust the defaults using CSS custom properties in your `:root{}` +declaration or in the CSS of any parent container of ``. + +Available properties and their defaults can be found in the `:root {}` block inside the addons css. + +By default, the animations are dropped when `prefers-reduced-motion` is +detected. + +### Custom animations + +To override the animation for a specific modal, an `options` object containing +a custom `className` can be handed to the `.open()` method. + +```js +this.modals.open( + FilePreviwModal, + { + fileUrl: this.fileUrl, + }, + { + // custom class, see below for example + className: 'custom-modal', + // optional: name the animation triggered by the custom css class + // animations ending in "-out" are detected by default! + // You most likely do not have to do this unless you absolutely + // can't have an animation ending in '-out' + animationKeyframesOutName: 'custom-animation-name-out', + // optional: a hook that is called when the closing animation of + // the modal (so not the backdrop) has finished. + onAnimationModalOutEnd: () => {}, + }, +); +``` + +```css +.custom-modal { + animation: custom-animation-in 0.5s; + opacity: 1; + transform: translate(0, 0); +} + +/* + The `.epm-out` class is added to the parent of the modal when the modal + should be closed, which triggers the animation +*/ +.custom-modal.epm-out { + animation: custom-animation-name-out 0.2s; /* default out animation is 2s */ + opacity: 0; + transform: translate(0, 100%); +} + +/* + animation name has to end in "-out" to be detected by the custom animationend + event handler +*/ +@keyframes custom-animation-name-out { + 0% { + opacity: 1; + transform: translate(0, 0); + } + 100% { + opacity: 0; + transform: translate(0, 100%); + } +} +``` + +The CSS animations which are applied by the custom CSS class _must_ end in +`-out` to make the animations trigger the modal removal. + +#### Examples + +Examples for custom animations and how to apply them can be found in the addon's +dummy application. + +See [the application.js controller](./packages/test-app/app/controllers/application.js) +for how the modals are opened in your JavaScript actions and look at +[app.css](./packages/test-app/app/styles/app.css) for the style definition of these +custom animations. + +## Accessibility + +User can press the Esc key to close the modal. + +EPM uses [focus-trap](https://github.com/davidtheclark/focus-trap) internally +in order to handle user focus. + +EPM will ensure to [focus the first "tabbable element" by default](https://www.w3.org/TR/wai-aria-practices-1.1/#dialog_modal). +If no focusable element is present, focus will be applied on the currently +visible auto-generated container for the current modal. + +Focus Trap can be configured both on the `modals` service, and the individual +modal level when calling `this.modals.open()`. Global and local options are used +in that order, which means that local config take precedence. + +To set global Focus Trap config that all modals inherit, override the default +`Modals` service by extending it, place it to `app/services/modals.js`, then +use the `focusTrapOptions` property: + +```js +import BaseModalsService from 'ember-promise-modals/services/modals'; + +export default class ModalsService extends BaseModalsService { + focusTrapOptions = { + clickOutsideDeactivates: false, + }; +} +``` + +Example for local Focus Trap option, when opening a specific modal: + +```js +this.modals.open( + FilePreviewModal, + { fileUrl: this.fileUrl }, + { + focusTrapOptions: { + clickOutsideDeactivates: false, + }, + }, +); +``` + +To disable Focus Trap completely, set `focusTrapOptions` to `null` on the +`modals` service: + +```js +import BaseModalsService from 'ember-promise-modals/services/modals'; + +export default class ModalsService extends BaseModalsService { + focusTrapOptions = null; +} +``` + +Or when opening a modal: + +```js +this.modals.open( + FilePreviewModal, + { fileUrl: this.fileUrl }, + { + focusTrapOptions: null, + }, +); +``` + +⚠️ _We strongly advise against doing this. This will in most cases worsen the +accessibility of modals for your users. Be very careful._ + +## Testing + +This addon provides a test helper function that reduces the timing for the CSS transitions to near zero to speed up your tests. + +```js +import { setupPromiseModals } from 'ember-promise-modals/test-support'; + +module('Application | ...', function (hooks) { + // ... + setupPromiseModals(hooks); + // ... +}); +``` + +## Migration guide + +See the [Migration](MIGRATION.md) guide for details: + +- From 0.x.x to 1.x.x about the replacement of ember-animated powered animations with CSS-based animations. +- From v4.x.x to v5.x.x about the removal of the PostCSS process. + +## Contributing + +See the [Contributing](CONTRIBUTING.md) guide for details. + +## License + +ember-promise-modals is developed by and © Mainmatter GmbH and contributors. It +is released under the [MIT License](LICENSE.md). diff --git a/packages/ember-promise-modals/addon-main.cjs b/packages/ember-promise-modals/addon-main.cjs new file mode 100644 index 00000000..f868d6b9 --- /dev/null +++ b/packages/ember-promise-modals/addon-main.cjs @@ -0,0 +1,4 @@ +'use strict'; + +const { addonV1Shim } = require('@embroider/addon-shim'); +module.exports = addonV1Shim(__dirname); diff --git a/packages/ember-promise-modals/app/.gitkeep b/packages/ember-promise-modals/app/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/ember-promise-modals/app/components/epm-modal-container.js b/packages/ember-promise-modals/app/components/epm-modal-container.js deleted file mode 100644 index d25a5f86..00000000 --- a/packages/ember-promise-modals/app/components/epm-modal-container.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from 'ember-promise-modals/components/epm-modal-container'; diff --git a/packages/ember-promise-modals/app/components/epm-modal.js b/packages/ember-promise-modals/app/components/epm-modal.js deleted file mode 100644 index 9105cfe5..00000000 --- a/packages/ember-promise-modals/app/components/epm-modal.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from 'ember-promise-modals/components/epm-modal'; diff --git a/packages/ember-promise-modals/app/helpers/open-modal.js b/packages/ember-promise-modals/app/helpers/open-modal.js deleted file mode 100644 index d4b058bf..00000000 --- a/packages/ember-promise-modals/app/helpers/open-modal.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from 'ember-promise-modals/helpers/open-modal'; diff --git a/packages/ember-promise-modals/app/services/modals.js b/packages/ember-promise-modals/app/services/modals.js deleted file mode 100644 index f9978043..00000000 --- a/packages/ember-promise-modals/app/services/modals.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from 'ember-promise-modals/services/modals'; diff --git a/packages/ember-promise-modals/babel.config.json b/packages/ember-promise-modals/babel.config.json new file mode 100644 index 00000000..98e70c1c --- /dev/null +++ b/packages/ember-promise-modals/babel.config.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "@embroider/addon-dev/template-colocation-plugin", + ["babel-plugin-ember-template-compilation", { + "targetFormat": "hbs", + "transforms": [] + }], + ["module:decorator-transforms", { "runtime": { "import": "decorator-transforms/runtime" } }], + ] +} diff --git a/packages/ember-promise-modals/index.js b/packages/ember-promise-modals/index.js deleted file mode 100644 index 0ca063d4..00000000 --- a/packages/ember-promise-modals/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = { - name: require('./package').name, -}; diff --git a/packages/ember-promise-modals/package.json b/packages/ember-promise-modals/package.json index ecfa5fbf..d2595b11 100644 --- a/packages/ember-promise-modals/package.json +++ b/packages/ember-promise-modals/package.json @@ -12,24 +12,53 @@ "doc": "doc", "test": "tests" }, + "exports": { + ".": "./dist/index.js", + "./*": "./dist/*", + "./test-support": "./dist/test-support/index.js", + "./addon-main.cjs": "./addon-main.cjs" + }, + "files": [ + "addon-main.cjs", + "dist" + ], "scripts": { + "build": "rollup --config", + "prepack": "rollup --config", + "start": "rollup --config --watch", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:*:fix\"", "lint:hbs": "ember-template-lint .", "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", - "lint:js:fix": "eslint . --fix" + "lint:js:fix": "eslint . --fix", + "release": "npm publish" + }, + "ember-addon": { + "main": "addon-main.cjs", + "type": "addon", + "version": 2, + "app-js": { + "./components/epm-modal-container.js": "./dist/_app_/components/epm-modal-container.js", + "./components/epm-modal.js": "./dist/_app_/components/epm-modal.js", + "./helpers/open-modal.js": "./dist/_app_/helpers/open-modal.js", + "./services/modals.js": "./dist/_app_/services/modals.js" + } }, "dependencies": { "@ember/test-waiters": "^3.0.2", + "@embroider/addon-shim": "^1.8.7", "@embroider/util": "^1.7.1", - "ember-auto-import": "^2.7.2", - "ember-cli-babel": "^7.26.11", - "ember-cli-htmlbars": "^6.0.1", + "decorator-transforms": "^1.0.1", "focus-trap": "^6.9.3" }, "devDependencies": { + "@babel/core": "^7.23.7", "@babel/eslint-parser": "7.23.10", + "@babel/plugin-proposal-decorators": "^7.23.7", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@embroider/addon-dev": "^4.1.3", + "@rollup/plugin-babel": "^6.0.4", "ember-template-lint": "5.13.0", "eslint": "8.56.0", "eslint-config-prettier": "8.10.0", @@ -40,7 +69,13 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-qunit": "7.3.4", "npm-run-all": "4.1.5", - "prettier": "2.8.8" + "prettier": "2.8.8", + "rollup": "^4.9.6", + "rollup-plugin-copy": "^3.5.0", + "webpack": "5.89.0" + }, + "peerDependencies": { + "@ember/test-helpers": "^3.0.0" }, "engines": { "node": ">= 16.*" diff --git a/packages/ember-promise-modals/rollup.config.mjs b/packages/ember-promise-modals/rollup.config.mjs new file mode 100644 index 00000000..db611e07 --- /dev/null +++ b/packages/ember-promise-modals/rollup.config.mjs @@ -0,0 +1,71 @@ +import { babel } from '@rollup/plugin-babel'; +import copy from 'rollup-plugin-copy'; +import { Addon } from '@embroider/addon-dev/rollup'; + +const addon = new Addon({ + srcDir: 'src', + destDir: 'dist', +}); + +export default { + // This provides defaults that work well alongside `publicEntrypoints` below. + // You can augment this if you need to. + output: addon.output(), + + plugins: [ + // These are the modules that users should be able to import from your + // addon. Anything not listed here may get optimized away. + // By default all your JavaScript modules (**/*.js) will be importable. + // But you are encouraged to tweak this to only cover the modules that make + // up your addon's public API. Also make sure your package.json#exports + // is aligned to the config here. + // See https://github.com/embroider-build/embroider/blob/main/docs/v2-faq.md#how-can-i-define-the-public-exports-of-my-addon + addon.publicEntrypoints(['**/*.js', 'index.js']), + + // These are the modules that should get reexported into the traditional + // "app" tree. Things in here should also be in publicEntrypoints above, but + // not everything in publicEntrypoints necessarily needs to go here. + addon.appReexports([ + 'components/**/*.js', + 'helpers/**/*.js', + 'services/**/*.js', + ]), + + // Follow the V2 Addon rules about dependencies. Your code can import from + // `dependencies` and `peerDependencies` as well as standard Ember-provided + // package names. + addon.dependencies(), + + // This babel config should *not* apply presets or compile away ES modules. + // It exists only to provide development niceties for you, like automatic + // template colocation. + // + // By default, this will load the actual babel config from the file + // babel.config.json. + babel({ + extensions: ['.js', '.gjs'], + babelHelpers: 'bundled', + }), + + // Ensure that standalone .hbs files are properly integrated as Javascript. + addon.hbs(), + + // Ensure that .gjs files are properly integrated as Javascript + addon.gjs(), + + // addons are allowed to contain imports of .css files, which we want rollup + // to leave alone and keep in the published output. + addon.keepAssets(['**/*.css']), + + // Remove leftover build artifacts when starting a new build. + addon.clean(), + + // Copy Readme and License into published package + copy({ + targets: [ + { src: '../../README.md', dest: '.' }, + { src: '../../LICENSE.md', dest: '.' }, + ], + }), + ], +}; diff --git a/packages/ember-promise-modals/addon/.gitkeep b/packages/ember-promise-modals/src/.gitkeep similarity index 100% rename from packages/ember-promise-modals/addon/.gitkeep rename to packages/ember-promise-modals/src/.gitkeep diff --git a/packages/ember-promise-modals/addon/styles/ember-promise-modals.css b/packages/ember-promise-modals/src/components/epm-modal-container.css similarity index 100% rename from packages/ember-promise-modals/addon/styles/ember-promise-modals.css rename to packages/ember-promise-modals/src/components/epm-modal-container.css diff --git a/packages/ember-promise-modals/addon/components/epm-modal-container.hbs b/packages/ember-promise-modals/src/components/epm-modal-container.hbs similarity index 100% rename from packages/ember-promise-modals/addon/components/epm-modal-container.hbs rename to packages/ember-promise-modals/src/components/epm-modal-container.hbs diff --git a/packages/ember-promise-modals/addon/components/epm-modal-container.js b/packages/ember-promise-modals/src/components/epm-modal-container.js similarity index 82% rename from packages/ember-promise-modals/addon/components/epm-modal-container.js rename to packages/ember-promise-modals/src/components/epm-modal-container.js index fcf282d8..c5d9e5d0 100644 --- a/packages/ember-promise-modals/addon/components/epm-modal-container.js +++ b/packages/ember-promise-modals/src/components/epm-modal-container.js @@ -1,6 +1,8 @@ import Component from '@ember/component'; import { inject as service } from '@ember/service'; +import './epm-modal-container.css'; + export default Component.extend({ tagName: '', diff --git a/packages/ember-promise-modals/addon/components/epm-modal.hbs b/packages/ember-promise-modals/src/components/epm-modal.hbs similarity index 100% rename from packages/ember-promise-modals/addon/components/epm-modal.hbs rename to packages/ember-promise-modals/src/components/epm-modal.hbs diff --git a/packages/ember-promise-modals/addon/components/epm-modal.js b/packages/ember-promise-modals/src/components/epm-modal.js similarity index 100% rename from packages/ember-promise-modals/addon/components/epm-modal.js rename to packages/ember-promise-modals/src/components/epm-modal.js diff --git a/packages/ember-promise-modals/addon/helpers/open-modal.js b/packages/ember-promise-modals/src/helpers/open-modal.js similarity index 100% rename from packages/ember-promise-modals/addon/helpers/open-modal.js rename to packages/ember-promise-modals/src/helpers/open-modal.js diff --git a/packages/ember-promise-modals/addon/modal.js b/packages/ember-promise-modals/src/modal.js similarity index 100% rename from packages/ember-promise-modals/addon/modal.js rename to packages/ember-promise-modals/src/modal.js diff --git a/packages/ember-promise-modals/addon/services/modals.js b/packages/ember-promise-modals/src/services/modals.js similarity index 100% rename from packages/ember-promise-modals/addon/services/modals.js rename to packages/ember-promise-modals/src/services/modals.js diff --git a/packages/ember-promise-modals/addon-test-support/index.js b/packages/ember-promise-modals/src/test-support/index.js similarity index 100% rename from packages/ember-promise-modals/addon-test-support/index.js rename to packages/ember-promise-modals/src/test-support/index.js diff --git a/packages/test-app/config/ember-try.js b/packages/test-app/config/ember-try.js index 5f2378ae..4161353b 100644 --- a/packages/test-app/config/ember-try.js +++ b/packages/test-app/config/ember-try.js @@ -30,6 +30,14 @@ module.exports = async function () { }, }, }, + { + name: 'ember-lts-4.12', + npm: { + devDependencies: { + 'ember-source': '~4.12.0', + }, + }, + }, { name: 'ember-release', npm: { diff --git a/packages/test-app/package.json b/packages/test-app/package.json index 054c3fbe..8923a2f2 100644 --- a/packages/test-app/package.json +++ b/packages/test-app/package.json @@ -33,7 +33,7 @@ "broccoli-asset-rev": "3.0.0", "ember-auto-import": "^2.7.2", "ember-cli": "4.12.2", - "ember-cli-babel": "^7.26.11", + "ember-cli-babel": "^8.2.0", "ember-cli-dependency-checker": "3.3.2", "ember-cli-htmlbars": "^6.0.1", "ember-cli-inject-live-reload": "2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7115edf..13564441 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,28 +23,43 @@ importers: packages/ember-promise-modals: dependencies: + '@ember/test-helpers': + specifier: ^3.0.0 + version: 3.2.1(ember-source@4.12.4)(webpack@5.89.0) '@ember/test-waiters': specifier: ^3.0.2 version: 3.0.2 + '@embroider/addon-shim': + specifier: ^1.8.7 + version: 1.8.7 '@embroider/util': specifier: ^1.7.1 version: 1.7.1(ember-source@4.12.4) - ember-auto-import: - specifier: ^2.7.2 - version: 2.7.2(webpack@5.90.1) - ember-cli-babel: - specifier: ^7.26.11 - version: 7.26.11 - ember-cli-htmlbars: - specifier: ^6.0.1 - version: 6.3.0 + decorator-transforms: + specifier: ^1.0.1 + version: 1.1.0(@babel/core@7.23.7) focus-trap: specifier: ^6.9.3 version: 6.9.3 devDependencies: + '@babel/core': + specifier: ^7.23.7 + version: 7.23.7 '@babel/eslint-parser': specifier: 7.23.10 - version: 7.23.10(eslint@8.56.0) + version: 7.23.10(@babel/core@7.23.7)(eslint@8.56.0) + '@babel/plugin-proposal-decorators': + specifier: ^7.23.7 + version: 7.23.7(@babel/core@7.23.7) + '@babel/plugin-transform-class-properties': + specifier: ^7.23.3 + version: 7.23.3(@babel/core@7.23.7) + '@embroider/addon-dev': + specifier: ^4.1.3 + version: 4.2.1(rollup@4.11.0) + '@rollup/plugin-babel': + specifier: ^6.0.4 + version: 6.0.4(@babel/core@7.23.7)(rollup@4.11.0) ember-template-lint: specifier: 5.13.0 version: 5.13.0 @@ -78,12 +93,21 @@ importers: prettier: specifier: 2.8.8 version: 2.8.8 + rollup: + specifier: ^4.9.6 + version: 4.11.0 + rollup-plugin-copy: + specifier: ^3.5.0 + version: 3.5.0 + webpack: + specifier: 5.89.0 + version: 5.89.0 packages/test-app: devDependencies: '@babel/eslint-parser': specifier: 7.23.10 - version: 7.23.10(eslint@8.56.0) + version: 7.23.10(@babel/core@7.23.7)(eslint@8.56.0) '@ember/optional-features': specifier: 2.0.0 version: 2.0.0 @@ -109,8 +133,8 @@ importers: specifier: 4.12.2 version: 4.12.2 ember-cli-babel: - specifier: ^7.26.11 - version: 7.26.11 + specifier: ^8.2.0 + version: 8.2.0 ember-cli-dependency-checker: specifier: 3.3.2 version: 3.3.2(ember-cli@4.12.2) @@ -255,7 +279,7 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.23.10(eslint@8.56.0): + /@babel/eslint-parser@7.23.10(@babel/core@7.23.7)(eslint@8.56.0): resolution: {integrity: sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -265,6 +289,7 @@ packages: '@babel/core': optional: true dependencies: + '@babel/core': 7.23.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 @@ -1459,7 +1484,7 @@ packages: '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-typescript@7.5.5: + /@babel/plugin-transform-typescript@7.5.5(@babel/core@7.23.7): resolution: {integrity: sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1467,6 +1492,7 @@ packages: '@babel/core': optional: true dependencies: + '@babel/core': 7.23.7 '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) @@ -1727,6 +1753,27 @@ packages: - supports-color dev: true + /@ember/test-helpers@3.2.1(ember-source@4.12.4)(webpack@5.89.0): + resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==} + engines: {node: 16.* || >= 18} + peerDependencies: + ember-source: ^4.0.0 || ^5.0.0 + dependencies: + '@ember/test-waiters': 3.0.2 + '@embroider/macros': 1.13.5 + '@simple-dom/interface': 1.4.0 + broccoli-debug: 0.6.5 + broccoli-funnel: 3.0.8 + ember-auto-import: 2.7.2(webpack@5.89.0) + ember-cli-babel: 7.26.11 + ember-cli-htmlbars: 6.3.0 + ember-source: 4.12.4(@babel/core@7.23.7)(@glimmer/component@1.1.2)(webpack@5.89.0) + transitivePeerDependencies: + - '@glint/template' + - supports-color + - webpack + dev: false + /@ember/test-helpers@3.2.1(ember-source@4.12.4)(webpack@5.90.1): resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==} engines: {node: 16.* || >= 18} @@ -1759,6 +1806,29 @@ packages: transitivePeerDependencies: - supports-color + /@embroider/addon-dev@4.2.1(rollup@4.11.0): + resolution: {integrity: sha512-oMNlVqsqNjtNu7sFGGgo4igOy+Xa7g1I1aXMf7XRbYKWBCiYKX7C7lDKZ65qgsEpRKV3LtbC+XIYiGfHiqhFAg==} + engines: {node: 12.* || 14.* || >= 16} + hasBin: true + dependencies: + '@embroider/core': 3.4.4 + '@rollup/pluginutils': 4.2.1 + content-tag: 2.0.1 + fs-extra: 10.1.0 + minimatch: 3.1.2 + rollup-plugin-copy-assets: 2.0.3(rollup@4.11.0) + rollup-plugin-delete: 2.0.0 + walk-sync: 3.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@glint/template' + - bufferutil + - canvas + - rollup + - supports-color + - utf-8-validate + dev: true + /@embroider/addon-shim@1.8.7: resolution: {integrity: sha512-JGOQNRj3UR0NdWEg8MsM2eqPLncEwSB1IX+rwntIj22TEKj8biqx7GDgSbeH+ZedijmCh354Hf2c5rthrdzUAw==} engines: {node: 12.* || 14.* || >= 16} @@ -1768,6 +1838,41 @@ packages: semver: 7.5.4 transitivePeerDependencies: - supports-color + + /@embroider/core@3.4.4: + resolution: {integrity: sha512-JVWCy+l6sX58tPYb8Q8BSK0i8rQzrVI0RFoilSZ9MP4MO/rk90XAXZHN8Ourr9lwJhSLBbc7KSMDh54FNGxnsg==} + engines: {node: 12.* || 14.* || >= 16} + dependencies: + '@babel/core': 7.23.7 + '@babel/parser': 7.23.6 + '@babel/traverse': 7.23.7 + '@embroider/macros': 1.13.5 + '@embroider/shared-internals': 2.5.2 + assert-never: 1.2.1 + babel-plugin-ember-template-compilation: 2.2.1 + broccoli-node-api: 1.7.0 + broccoli-persistent-filter: 3.1.3 + broccoli-plugin: 4.0.7 + broccoli-source: 3.0.1 + debug: 4.3.4 + fast-sourcemap-concat: 1.4.0 + filesize: 10.1.0 + fs-extra: 9.1.0 + fs-tree-diff: 2.0.1 + handlebars: 4.7.8 + js-string-escape: 1.0.1 + jsdom: 16.7.0 + lodash: 4.17.21 + resolve: 1.22.8 + resolve-package-path: 4.0.3 + typescript-memoize: 1.1.1 + walk-sync: 3.0.0 + transitivePeerDependencies: + - '@glint/template' + - bufferutil + - canvas + - supports-color + - utf-8-validate dev: true /@embroider/macros@1.13.5: @@ -1864,7 +1969,7 @@ packages: '@embroider/macros': 1.7.1 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 - ember-source: 4.12.4(@glimmer/component@1.1.2)(webpack@5.90.1) + ember-source: 4.12.4(@babel/core@7.23.7)(@glimmer/component@1.1.2)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: false @@ -1910,7 +2015,7 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@glimmer/component@1.1.2: + /@glimmer/component@1.1.2(@babel/core@7.23.7): resolution: {integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: @@ -1925,9 +2030,9 @@ packages: ember-cli-normalize-entity-name: 1.0.0 ember-cli-path-utils: 1.0.0 ember-cli-string-utils: 1.1.0 - ember-cli-typescript: 3.0.0 + ember-cli-typescript: 3.0.0(@babel/core@7.23.7) ember-cli-version-checker: 3.1.3 - ember-compatibility-helpers: 1.2.7 + ember-compatibility-helpers: 1.2.7(@babel/core@7.23.7) transitivePeerDependencies: - '@babel/core' - supports-color @@ -1984,7 +2089,7 @@ packages: '@glimmer/global-context': 0.84.3 dev: true - /@glimmer/vm-babel-plugins@0.84.2: + /@glimmer/vm-babel-plugins@0.84.2(@babel/core@7.23.7): resolution: {integrity: sha512-HS2dEbJ3CgXn56wk/5QdudM7rE3vtNMvPIoG7Rrg+GhkGMNxBCIRxOeEF2g520j9rwlA2LAZFpc7MCDMFbTjNA==} dependencies: babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.7) @@ -2269,6 +2374,154 @@ packages: - supports-color dev: true + /@rollup/plugin-babel@6.0.4(@babel/core@7.23.7)(rollup@4.11.0): + resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/babel__core': + optional: true + rollup: + optional: true + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-imports': 7.22.15 + '@rollup/pluginutils': 5.1.0(rollup@4.11.0) + rollup: 4.11.0 + dev: true + + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/pluginutils@5.1.0(rollup@4.11.0): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 4.11.0 + dev: true + + /@rollup/rollup-android-arm-eabi@4.11.0: + resolution: {integrity: sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.11.0: + resolution: {integrity: sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.11.0: + resolution: {integrity: sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.11.0: + resolution: {integrity: sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.11.0: + resolution: {integrity: sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.11.0: + resolution: {integrity: sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.11.0: + resolution: {integrity: sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.11.0: + resolution: {integrity: sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.11.0: + resolution: {integrity: sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.11.0: + resolution: {integrity: sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.11.0: + resolution: {integrity: sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.11.0: + resolution: {integrity: sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.11.0: + resolution: {integrity: sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@simple-dom/interface@1.4.0: resolution: {integrity: sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA==} @@ -2631,6 +2884,11 @@ packages: /@xtuc/long@4.2.2: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + dev: true + /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true @@ -2643,6 +2901,13 @@ packages: negotiator: 0.6.3 dev: true + /acorn-globals@6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + dev: true + /acorn-import-assertions@1.9.0(acorn@8.11.3): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: @@ -2658,11 +2923,22 @@ packages: acorn: 8.11.3 dev: true + /acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} dev: true + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} @@ -3024,6 +3300,10 @@ packages: dependencies: lodash: 4.17.21 + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + /at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} @@ -3051,6 +3331,26 @@ packages: resolution: {integrity: sha512-N1ZfNprtf/37x0R05J0QCW/9pCAcuI+bjZIK9tlu0JEkwEST7ssdD++gxHRbD58AiG5QE5OuNYhRoEFsc1wESw==} engines: {node: '>= 12.*'} + /babel-loader@8.3.0(@babel/core@7.23.7)(webpack@5.89.0): + resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} + engines: {node: '>= 8.9'} + peerDependencies: + '@babel/core': ^7.0.0 + webpack: '>=2' + peerDependenciesMeta: + '@babel/core': + optional: true + webpack: + optional: true + dependencies: + '@babel/core': 7.23.7 + find-cache-dir: 3.3.2 + loader-utils: 2.0.4 + make-dir: 3.1.0 + schema-utils: 2.7.1 + webpack: 5.89.0 + dev: false + /babel-loader@8.3.0(@babel/core@7.23.7)(webpack@5.90.1): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} @@ -3069,8 +3369,9 @@ packages: make-dir: 3.1.0 schema-utils: 2.7.1 webpack: 5.90.1 + dev: true - /babel-plugin-debug-macros@0.2.0: + /babel-plugin-debug-macros@0.2.0(@babel/core@7.23.7): resolution: {integrity: sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA==} engines: {node: '>=4'} peerDependencies: @@ -3079,6 +3380,7 @@ packages: '@babel/core': optional: true dependencies: + '@babel/core': 7.23.7 semver: 5.7.2 /babel-plugin-debug-macros@0.3.4(@babel/core@7.23.7): @@ -3160,6 +3462,17 @@ packages: resolve: 1.22.8 dev: true + /babel-plugin-module-resolver@5.0.0: + resolution: {integrity: sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==} + engines: {node: '>= 16'} + dependencies: + find-babel-config: 2.0.0 + glob: 8.1.0 + pkg-up: 3.1.0 + reselect: 4.1.8 + resolve: 1.22.8 + dev: true + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} peerDependencies: @@ -3439,6 +3752,27 @@ packages: transitivePeerDependencies: - supports-color + /broccoli-babel-transpiler@8.0.0: + resolution: {integrity: sha512-3HEp3flvasUKJGWERcrPgM1SWvHJ0O/fmbEtY9L4kDyMSnqjY6hTYvNvgWCIgbwXAYAUlZP0vjAQsmyLNGLwFw==} + engines: {node: 16.* || >= 18} + peerDependencies: + '@babel/core': ^7.17.9 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + broccoli-persistent-filter: 3.1.3 + clone: 2.1.2 + hash-for-dep: 1.5.1 + heimdalljs: 0.2.6 + heimdalljs-logger: 0.1.10 + json-stable-stringify: 1.1.0 + rsvp: 4.8.5 + workerpool: 6.5.1 + transitivePeerDependencies: + - supports-color + dev: true + /broccoli-builder@0.18.14: resolution: {integrity: sha512-YoUHeKnPi4xIGZ2XDVN9oHNA9k3xF5f5vlA+1wvrxIIDXqQU97gp2FxVAF503Zxdtt0C5CRB5n+47k2hlkaBzA==} engines: {node: '>= 0.10.0'} @@ -3864,6 +4198,10 @@ packages: - supports-color dev: true + /browser-process-hrtime@1.0.0: + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + dev: true + /browserslist@4.22.2: resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -4287,6 +4625,10 @@ packages: hasBin: true dev: true + /colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + dev: true + /colors@1.0.3: resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} engines: {node: '>=0.1.90'} @@ -4297,6 +4639,13 @@ packages: engines: {node: '>=0.1.90'} dev: true + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -4588,6 +4937,10 @@ packages: safe-buffer: 5.2.1 dev: true + /content-tag@2.0.1: + resolution: {integrity: sha512-jxsETSDs5NbNwyiDuIp672fUMhUyu8Qxc5MOBOJOcgW/fQESI6o5K1LBDrnEE7Bh810a685lWEZHTF4jQYGEEw==} + dev: true + /content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -4692,6 +5045,28 @@ packages: type-fest: 1.4.0 dev: true + /css-loader@5.2.7(webpack@5.89.0): + resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.27.0 || ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + dependencies: + icss-utils: 5.1.0(postcss@8.4.33) + loader-utils: 2.0.4 + postcss: 8.4.33 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.33) + postcss-modules-scope: 3.1.0(postcss@8.4.33) + postcss-modules-values: 4.0.0(postcss@8.4.33) + postcss-value-parser: 4.2.0 + schema-utils: 3.3.0 + semver: 7.5.4 + webpack: 5.89.0 + dev: false + /css-loader@5.2.7(webpack@5.90.1): resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} engines: {node: '>= 10.13.0'} @@ -4712,6 +5087,7 @@ packages: schema-utils: 3.3.0 semver: 7.5.4 webpack: 5.90.1 + dev: true /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} @@ -4726,6 +5102,21 @@ packages: engines: {node: '>=4'} hasBin: true + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom@0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} + dev: true + + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + /dag-map@2.0.2: resolution: {integrity: sha512-xnsprIzYuDeiyu5zSKwilV/ajRHxnoMlAhEREfyfTgTSViMVY2fGP1ZcHJbtwup26oCkofySU/m6oKJ3HrkW7w==} dev: true @@ -4740,6 +5131,15 @@ packages: engines: {node: '>= 14'} dev: true + /data-urls@2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} + engines: {node: '>=10'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + dev: true + /date-fns@2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} @@ -4779,6 +5179,10 @@ packages: dependencies: ms: 2.1.2 + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + /decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: @@ -4804,6 +5208,15 @@ packages: mimic-response: 3.1.0 dev: true + /decorator-transforms@1.1.0(@babel/core@7.23.7): + resolution: {integrity: sha512-n3WCgc3PB2t9mLV4SJd87IjTbKeFUGw2sU5eEBYczSmcvj3guX4eMW4XOowlQqGk7I/da6+bwv1ydw1ZtNqWaw==} + dependencies: + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.7) + babel-import-util: 2.0.1 + transitivePeerDependencies: + - '@babel/core' + dev: false + /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -4899,6 +5312,25 @@ packages: vm2: 3.9.19 dev: true + /del@5.1.0: + resolution: {integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==} + engines: {node: '>=8'} + dependencies: + globby: 10.0.2 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 3.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true @@ -4961,6 +5393,14 @@ packages: esutils: 2.0.3 dev: true + /domexception@2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} + engines: {node: '>=8'} + deprecated: Use your platform's native DOMException instead + dependencies: + webidl-conversions: 5.0.0 + dev: true + /dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: @@ -5008,6 +5448,50 @@ packages: /electron-to-chromium@1.4.632: resolution: {integrity: sha512-JGmudTwg7yxMYvR/gWbalqqQiyu7WTFv2Xu3vw4cJHXPFxNgAk0oy8UHaer8nLF4lZJa+rNoj6GsrKIVJTV6Tw==} + /ember-auto-import@2.7.2(webpack@5.89.0): + resolution: {integrity: sha512-pkWIljmJClYL17YBk8FjO7NrZPQoY9v0b+FooJvaHf/xlDQIBYVP7OaDHbNuNbpj7+wAwSDAnnwxjCoLsmm4cw==} + engines: {node: 12.* || 14.* || >= 16} + dependencies: + '@babel/core': 7.23.7 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-decorators': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) + '@babel/preset-env': 7.23.8(@babel/core@7.23.7) + '@embroider/macros': 1.13.5 + '@embroider/shared-internals': 2.5.2 + babel-loader: 8.3.0(@babel/core@7.23.7)(webpack@5.89.0) + babel-plugin-ember-modules-api-polyfill: 3.5.0 + babel-plugin-ember-template-compilation: 2.2.1 + babel-plugin-htmlbars-inline-precompile: 5.3.1 + babel-plugin-syntax-dynamic-import: 6.18.0 + broccoli-debug: 0.6.5 + broccoli-funnel: 3.0.8 + broccoli-merge-trees: 4.2.0 + broccoli-plugin: 4.0.7 + broccoli-source: 3.0.1 + css-loader: 5.2.7(webpack@5.89.0) + debug: 4.3.4 + fs-extra: 10.1.0 + fs-tree-diff: 2.0.1 + handlebars: 4.7.8 + js-string-escape: 1.0.1 + lodash: 4.17.21 + mini-css-extract-plugin: 2.7.7(webpack@5.89.0) + minimatch: 3.1.2 + parse5: 6.0.1 + resolve: 1.22.8 + resolve-package-path: 4.0.3 + semver: 7.5.4 + style-loader: 2.0.0(webpack@5.89.0) + typescript-memoize: 1.1.1 + walk-sync: 3.0.0 + transitivePeerDependencies: + - '@glint/template' + - supports-color + - webpack + dev: false + /ember-auto-import@2.7.2(webpack@5.90.1): resolution: {integrity: sha512-pkWIljmJClYL17YBk8FjO7NrZPQoY9v0b+FooJvaHf/xlDQIBYVP7OaDHbNuNbpj7+wAwSDAnnwxjCoLsmm4cw==} engines: {node: 12.* || 14.* || >= 16} @@ -5050,6 +5534,7 @@ packages: - '@glint/template' - supports-color - webpack + dev: true /ember-cli-babel-plugin-helpers@1.1.1: resolution: {integrity: sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==} @@ -5092,6 +5577,46 @@ packages: transitivePeerDependencies: - supports-color + /ember-cli-babel@8.2.0: + resolution: {integrity: sha512-8H4+jQElCDo6tA7CamksE66NqBXWs7VNpS3a738L9pZCjg2kXIX4zoyHzkORUqCtr0Au7YsCnrlAMi1v2ALo7A==} + engines: {node: 16.* || 18.* || >= 20} + peerDependencies: + '@babel/core': ^7.12.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-compilation-targets': 7.23.6 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-decorators': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.23.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-runtime': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) + '@babel/preset-env': 7.23.8(@babel/core@7.23.7) + '@babel/runtime': 7.12.18 + amd-name-resolver: 1.3.1 + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.7) + babel-plugin-ember-data-packages-polyfill: 0.1.2 + babel-plugin-ember-modules-api-polyfill: 3.5.0 + babel-plugin-module-resolver: 5.0.0 + broccoli-babel-transpiler: 8.0.0 + broccoli-debug: 0.6.5 + broccoli-funnel: 3.0.8 + broccoli-source: 3.0.1 + calculate-cache-key-for-tree: 2.0.0 + clone: 2.1.2 + ember-cli-babel-plugin-helpers: 1.1.1 + ember-cli-version-checker: 5.1.2 + ensure-posix-path: 1.1.1 + resolve-package-path: 4.0.3 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /ember-cli-dependency-checker@3.3.2(ember-cli@4.12.2): resolution: {integrity: sha512-PwkrW5oYsdPWwt+0Tojufmv/hxVETTjkrEdK7ANQB2VSnqpA5UcYubwpQM9ONuR2J8wyNDMwEHlqIrk/FYtBsQ==} engines: {node: '>= 6'} @@ -5251,11 +5776,11 @@ packages: - supports-color dev: true - /ember-cli-typescript@3.0.0: + /ember-cli-typescript@3.0.0(@babel/core@7.23.7): resolution: {integrity: sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA==} engines: {node: 8.* || >= 10.*} dependencies: - '@babel/plugin-transform-typescript': 7.5.5 + '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.23.7) ansi-to-html: 0.6.15 debug: 4.3.4 ember-cli-babel-plugin-helpers: 1.1.1 @@ -5454,11 +5979,11 @@ packages: - whiskers dev: true - /ember-compatibility-helpers@1.2.7: + /ember-compatibility-helpers@1.2.7(@babel/core@7.23.7): resolution: {integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA==} engines: {node: 10.* || >= 12.*} dependencies: - babel-plugin-debug-macros: 0.2.0 + babel-plugin-debug-macros: 0.2.0(@babel/core@7.23.7) ember-cli-version-checker: 5.1.2 find-up: 5.0.0 fs-extra: 9.1.0 @@ -5551,6 +6076,47 @@ packages: - encoding dev: true + /ember-source@4.12.4(@babel/core@7.23.7)(@glimmer/component@1.1.2)(webpack@5.89.0): + resolution: {integrity: sha512-HUlNAY+qr/Jm4c/5E11n5w6IvLY7Rr4DxmFv/0LZ3R5LqDSubM1jEmny5zDjOfadMa4pawoCmFFWXVeJEXwppg==} + engines: {node: '>= 14.*'} + peerDependencies: + '@glimmer/component': ^1.1.2 + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@ember/edition-utils': 1.2.0 + '@glimmer/component': 1.1.2(@babel/core@7.23.7) + '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.7) + '@simple-dom/interface': 1.4.0 + babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.7) + babel-plugin-filter-imports: 4.0.0 + broccoli-concat: 4.2.5 + broccoli-debug: 0.6.5 + 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.7.2(webpack@5.89.0) + ember-cli-babel: 7.26.11 + ember-cli-get-component-path-option: 1.0.0 + ember-cli-is-package-missing: 1.0.0 + ember-cli-normalize-entity-name: 1.0.0 + ember-cli-path-utils: 1.0.0 + ember-cli-string-utils: 1.1.0 + ember-cli-typescript-blueprint-polyfill: 0.1.0 + ember-cli-version-checker: 5.1.2 + ember-router-generator: 2.0.0 + inflection: 1.13.4 + resolve: 1.22.8 + semver: 7.5.4 + silent-error: 1.1.1 + transitivePeerDependencies: + - '@babel/core' + - '@glint/template' + - supports-color + - webpack + dev: false + /ember-source@4.12.4(@glimmer/component@1.1.2)(webpack@5.90.1): resolution: {integrity: sha512-HUlNAY+qr/Jm4c/5E11n5w6IvLY7Rr4DxmFv/0LZ3R5LqDSubM1jEmny5zDjOfadMa4pawoCmFFWXVeJEXwppg==} engines: {node: '>= 14.*'} @@ -5560,8 +6126,8 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) '@ember/edition-utils': 1.2.0 - '@glimmer/component': 1.1.2 - '@glimmer/vm-babel-plugins': 0.84.2 + '@glimmer/component': 1.1.2(@babel/core@7.23.7) + '@glimmer/vm-babel-plugins': 0.84.2(@babel/core@7.23.7) '@simple-dom/interface': 1.4.0 babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.7) babel-plugin-filter-imports: 4.0.0 @@ -5590,6 +6156,7 @@ packages: - '@glint/template' - supports-color - webpack + dev: true /ember-template-imports@3.4.2: resolution: {integrity: sha512-OS8TUVG2kQYYwP3netunLVfeijPoOKIs1SvPQRTNOQX4Pu8xGGBEZmrv0U1YTnQn12Eg+p6w/0UdGbUnITjyzw==} @@ -5901,6 +6468,18 @@ packages: source-map: 0.6.1 dev: true + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} @@ -6151,6 +6730,10 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -6389,6 +6972,22 @@ packages: dependencies: blank-object: 1.0.2 + /fast-sourcemap-concat@1.4.0: + resolution: {integrity: sha512-x90Wlx/2C83lfyg7h4oguTZN4MyaVfaiUSJQNpU+YEA0Odf9u659Opo44b0LfoVg9G/bOE++GdID/dkyja+XcA==} + engines: {node: '>= 4'} + dependencies: + chalk: 2.4.2 + fs-extra: 5.0.0 + heimdalljs-logger: 0.1.10 + memory-streams: 0.1.3 + mkdirp: 0.5.6 + source-map: 0.4.4 + source-map-url: 0.3.0 + sourcemap-validator: 1.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /fast-sourcemap-concat@2.1.1: resolution: {integrity: sha512-7h9/x25c6AQwdU3mA8MZDUMR3UCy50f237egBrBkuwjnUZSmfu4ptCf91PZSKzON2Uh5VvIHozYKWcPPgcjxIw==} engines: {node: 10.* || >= 12.*} @@ -6518,6 +7117,14 @@ packages: json5: 0.5.1 path-exists: 3.0.0 + /find-babel-config@2.0.0: + resolution: {integrity: sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==} + engines: {node: '>=16.0.0'} + dependencies: + json5: 2.2.3 + path-exists: 4.0.0 + dev: true + /find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} @@ -6680,6 +7287,15 @@ packages: engines: {node: '>= 14.17'} dev: true + /form-data@3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -6825,6 +7441,14 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -7065,6 +7689,34 @@ packages: slash: 3.0.0 dev: true + /globby@10.0.1: + resolution: {integrity: sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==} + engines: {node: '>=8'} + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + glob: 7.2.3 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@10.0.2: + resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} + engines: {node: '>=8'} + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + glob: 7.2.3 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -7336,6 +7988,13 @@ packages: lru-cache: 7.18.3 dev: true + /html-encoding-sniffer@2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} + engines: {node: '>=10'} + dependencies: + whatwg-encoding: 1.0.5 + dev: true + /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true @@ -7883,6 +8542,11 @@ packages: engines: {node: '>=8'} dev: true + /is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: true + /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} @@ -7900,11 +8564,20 @@ packages: isobject: 3.0.1 dev: true + /is-plain-object@3.0.1: + resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==} + engines: {node: '>=0.10.0'} + dev: true + /is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} dev: true + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -8097,6 +8770,53 @@ packages: argparse: 2.0.1 dev: true + /jsdom@16.7.0: + resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} + engines: {node: '>=10'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.11.3 + acorn-globals: 6.0.0 + cssom: 0.4.4 + cssstyle: 2.3.0 + data-urls: 2.0.0 + decimal.js: 10.4.3 + domexception: 2.0.1 + escodegen: 2.1.0 + form-data: 3.0.1 + html-encoding-sniffer: 2.0.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 2.0.0 + webidl-conversions: 6.1.0 + whatwg-encoding: 1.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + ws: 7.5.9 + xml-name-validator: 3.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc@0.3.0: + resolution: {integrity: sha512-UHQmAeTXV+iwEk0aHheJRqo6Or90eDxI6KIYpHSjKLXKuKlPt1CQ7tGBerFcFA8uKU5mYxiPMlckmFptd5XZzA==} + hasBin: true + dev: true + /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -8457,6 +9177,10 @@ packages: lodash._isiterateecall: 3.0.9 dev: true + /lodash.foreach@4.5.0: + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} + dev: true + /lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true @@ -9028,6 +9752,19 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /mini-css-extract-plugin@2.7.7(webpack@5.89.0): + resolution: {integrity: sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + dependencies: + schema-utils: 4.2.0 + webpack: 5.89.0 + dev: false + /mini-css-extract-plugin@2.7.7(webpack@5.90.1): resolution: {integrity: sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw==} engines: {node: '>= 12.13.0'} @@ -9039,6 +9776,7 @@ packages: dependencies: schema-utils: 4.2.0 webpack: 5.90.1 + dev: true /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -9443,6 +10181,10 @@ packages: set-blocking: 2.0.0 dev: true + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -10207,6 +10949,10 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -10238,6 +10984,10 @@ packages: side-channel: 1.0.4 dev: true + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -10687,6 +11437,56 @@ packages: dependencies: glob: 7.2.3 + /rollup-plugin-copy-assets@2.0.3(rollup@4.11.0): + resolution: {integrity: sha512-ETShhQGb9SoiwcNrvb3BhUNSGR89Jao0+XxxfzzLW1YsUzx8+rMO4z9oqWWmo6OHUmfNQRvqRj0cAyPkS9lN9w==} + peerDependencies: + rollup: '>=1.1.2' + dependencies: + fs-extra: 7.0.1 + rollup: 4.11.0 + dev: true + + /rollup-plugin-copy@3.5.0: + resolution: {integrity: sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==} + engines: {node: '>=8.3'} + dependencies: + '@types/fs-extra': 8.1.5 + colorette: 1.4.0 + fs-extra: 8.1.0 + globby: 10.0.1 + is-plain-object: 3.0.1 + dev: true + + /rollup-plugin-delete@2.0.0: + resolution: {integrity: sha512-/VpLMtDy+8wwRlDANuYmDa9ss/knGsAgrDhM+tEwB1npHwNu4DYNmDfUL55csse/GHs9Q+SMT/rw9uiaZ3pnzA==} + engines: {node: '>=10'} + dependencies: + del: 5.1.0 + dev: true + + /rollup@4.11.0: + resolution: {integrity: sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.11.0 + '@rollup/rollup-android-arm64': 4.11.0 + '@rollup/rollup-darwin-arm64': 4.11.0 + '@rollup/rollup-darwin-x64': 4.11.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.11.0 + '@rollup/rollup-linux-arm64-gnu': 4.11.0 + '@rollup/rollup-linux-arm64-musl': 4.11.0 + '@rollup/rollup-linux-riscv64-gnu': 4.11.0 + '@rollup/rollup-linux-x64-gnu': 4.11.0 + '@rollup/rollup-linux-x64-musl': 4.11.0 + '@rollup/rollup-win32-arm64-msvc': 4.11.0 + '@rollup/rollup-win32-ia32-msvc': 4.11.0 + '@rollup/rollup-win32-x64-msvc': 4.11.0 + fsevents: 2.3.3 + dev: true + /rsvp@3.2.1: resolution: {integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==} @@ -10819,6 +11619,13 @@ packages: walker: 1.0.8 dev: true + /saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + dependencies: + xmlchars: 2.2.0 + dev: true + /schema-utils@2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} engines: {node: '>= 8.9.0'} @@ -11190,6 +11997,13 @@ packages: deprecated: See https://github.com/lydell/source-map-url#deprecated dev: true + /source-map@0.1.43: + resolution: {integrity: sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==} + engines: {node: '>=0.8.0'} + dependencies: + amdefine: 1.0.1 + dev: true + /source-map@0.4.4: resolution: {integrity: sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==} engines: {node: '>=0.8.0'} @@ -11209,6 +12023,16 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead + /sourcemap-validator@1.1.1: + resolution: {integrity: sha512-pq6y03Vs6HUaKo9bE0aLoksAcpeOo9HZd7I8pI6O480W/zxNZ9U32GfzgtPP0Pgc/K1JHna569nAbOk3X8/Qtw==} + engines: {node: ^0.10 || ^4.5 || 6.* || >= 7.*} + dependencies: + jsesc: 0.3.0 + lodash.foreach: 4.5.0 + lodash.template: 4.5.0 + source-map: 0.1.43 + dev: true + /spawn-args@0.2.0: resolution: {integrity: sha512-73BoniQDcRWgnLAf/suKH6V5H54gd1KLzwYN9FB6J/evqTV33htH9xwV/4BHek+++jzxpVlZQKKZkqstPQPmQg==} dev: true @@ -11453,6 +12277,20 @@ packages: engines: {node: '>=8'} dev: true + /style-loader@2.0.0(webpack@5.89.0): + resolution: {integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + dependencies: + loader-utils: 2.0.4 + schema-utils: 3.3.0 + webpack: 5.89.0 + dev: false + /style-loader@2.0.0(webpack@5.90.1): resolution: {integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==} engines: {node: '>= 10.13.0'} @@ -11465,6 +12303,7 @@ packages: loader-utils: 2.0.4 schema-utils: 3.3.0 webpack: 5.90.1 + dev: true /styled_string@0.0.1: resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} @@ -11503,6 +12342,10 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + /symlink-or-copy@1.3.1: resolution: {integrity: sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==} @@ -11566,6 +12409,31 @@ packages: rimraf: 2.6.3 dev: true + /terser-webpack-plugin@5.3.10(webpack@5.89.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + webpack: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.21 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.26.0 + webpack: 5.89.0 + /terser-webpack-plugin@5.3.10(webpack@5.90.1): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -11590,6 +12458,7 @@ packages: serialize-javascript: 6.0.2 terser: 5.26.0 webpack: 5.90.1 + dev: true /terser@5.26.0: resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} @@ -11827,10 +12696,27 @@ packages: engines: {node: '>=0.6'} dev: true + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true + /tr46@2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} + engines: {node: '>=8'} + dependencies: + punycode: 2.3.1 + dev: true + /tree-sync@1.4.0: resolution: {integrity: sha512-YvYllqh3qrR5TAYZZTXdspnIhlKAYezPYw11ntmweoceu4VK+keN356phHRIIo1d+RDmLpHZrUlmxga2gc9kSQ==} dependencies: @@ -12059,6 +12945,11 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -12145,6 +13036,13 @@ packages: prepend-http: 2.0.0 dev: true + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} @@ -12230,6 +13128,20 @@ packages: acorn-walk: 8.3.2 dev: true + /w3c-hr-time@1.0.2: + resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + deprecated: Use your platform's native performance.now() and performance.timeOrigin. + dependencies: + browser-process-hrtime: 1.0.0 + dev: true + + /w3c-xmlserializer@2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} + engines: {node: '>=10'} + dependencies: + xml-name-validator: 3.0.0 + dev: true + /walk-sync@0.2.7: resolution: {integrity: sha512-OH8GdRMowEFr0XSHQeX5fGweO6zSVHo7bG/0yJQx6LAj9Oukz0C8heI3/FYectT66gY0IPGe89kOvU410/UNpg==} dependencies: @@ -12307,10 +13219,59 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true + /webidl-conversions@5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + dev: true + + /webidl-conversions@6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} + engines: {node: '>=10.4'} + dev: true + /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} + /webpack@5.89.0: + resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.22.2 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.4.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(webpack@5.89.0) + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + /webpack@5.90.1: resolution: {integrity: sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==} engines: {node: '>=10.13.0'} @@ -12349,6 +13310,7 @@ packages: - '@swc/core' - esbuild - uglify-js + dev: true /websocket-driver@0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} @@ -12364,6 +13326,16 @@ packages: engines: {node: '>=0.8.0'} dev: true + /whatwg-encoding@1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + dependencies: + iconv-lite: 0.4.24 + dev: true + + /whatwg-mimetype@2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} + dev: true + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -12371,6 +13343,15 @@ packages: webidl-conversions: 3.0.1 dev: true + /whatwg-url@8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} + engines: {node: '>=10'} + dependencies: + lodash: 4.17.21 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + dev: true + /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -12493,6 +13474,19 @@ packages: typedarray-to-buffer: 3.1.5 dev: true + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + /ws@8.11.0: resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} engines: {node: '>=10.0.0'} @@ -12516,6 +13510,14 @@ packages: engines: {node: '>=12'} dev: true + /xml-name-validator@3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} From 65e02a30abb1e57c87d767cbe670e84972d07462 Mon Sep 17 00:00:00 2001 From: Marine Dunstetter Date: Fri, 1 Mar 2024 10:09:29 +0100 Subject: [PATCH 2/2] step 5: add a CSS layer around :root variable so they can be easily overridden --- .../src/components/epm-modal-container.css | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/ember-promise-modals/src/components/epm-modal-container.css b/packages/ember-promise-modals/src/components/epm-modal-container.css index 517ebe49..b2e5af84 100644 --- a/packages/ember-promise-modals/src/components/epm-modal-container.css +++ b/packages/ember-promise-modals/src/components/epm-modal-container.css @@ -1,18 +1,20 @@ -:root { - /* The named -duration and -delay variables will be lowered to near zero when using the setupPromiseModals test helper */ - --epm-animation-backdrop-in-duration: 0.3s; - --epm-animation-backdrop-out-duration: 0.18s; - --epm-animation-modal-in-duration: 0.3s; - --epm-animation-modal-out-duration: 0.18s; - --epm-animation-backdrop-in-delay: 0s; - --epm-animation-backdrop-out-delay: 0s; - --epm-animation-modal-in-delay: 0s; - --epm-animation-modal-out-delay: 0s; - --epm-animation-backdrop-in: var(--epm-animation-backdrop-in-duration) ease var(--epm-animation-backdrop-in-delay) forwards epm-backdrop-in; - --epm-animation-backdrop-out: var(--epm-animation-backdrop-out-duration) ease var(--epm-animation-backdrop-out-delay) forwards epm-backdrop-out; - --epm-animation-modal-in: var(--epm-animation-modal-in-duration) ease-out var(--epm-animation-modal-in-delay) forwards epm-modal-in; - --epm-animation-modal-out: var(--epm-animation-modal-out-duration) ease-out var(--epm-animation-modal-out-delay) forwards epm-modal-out; - --epm-backdrop-background: #2d3748CD; +@layer ember-promise-modals { + :root { + /* The named -duration and -delay variables will be lowered to near zero when using the setupPromiseModals test helper */ + --epm-animation-backdrop-in-duration: 0.3s; + --epm-animation-backdrop-out-duration: 0.18s; + --epm-animation-modal-in-duration: 0.3s; + --epm-animation-modal-out-duration: 0.18s; + --epm-animation-backdrop-in-delay: 0s; + --epm-animation-backdrop-out-delay: 0s; + --epm-animation-modal-in-delay: 0s; + --epm-animation-modal-out-delay: 0s; + --epm-animation-backdrop-in: var(--epm-animation-backdrop-in-duration) ease var(--epm-animation-backdrop-in-delay) forwards epm-backdrop-in; + --epm-animation-backdrop-out: var(--epm-animation-backdrop-out-duration) ease var(--epm-animation-backdrop-out-delay) forwards epm-backdrop-out; + --epm-animation-modal-in: var(--epm-animation-modal-in-duration) ease-out var(--epm-animation-modal-in-delay) forwards epm-modal-in; + --epm-animation-modal-out: var(--epm-animation-modal-out-duration) ease-out var(--epm-animation-modal-out-delay) forwards epm-modal-out; + --epm-backdrop-background: #2d3748CD; + } } @media (prefers-reduced-motion: reduce) {