diff --git a/addons/api/README.md b/addons/api/README.md
index 3e942bc54a..91d6835fad 100644
--- a/addons/api/README.md
+++ b/addons/api/README.md
@@ -23,15 +23,45 @@ This addon contains the API data access layer for Boundary.
Add this addon to an Ember application's `devDependencies` as:
`"api": "workspace:*"`, for applications included in this monorepo.
-Since this addon also includes Mirage mocks, be sure to install
-`ember-cli-mirage` and add the following config to your UI project:
+This addon also includes Mirage mocks. To include the `miragejs` dependency and this addon's mirage handlers configure the consuming app's `config/environment.js`
```js
-'ember-cli-mirage': {
- directory: '../../addons/api/mirage'
+mirage: {
+ enabled: true
}
```
+To have mirage start and intercept requests when the application starts:
+1. Add the `@embroider/macros` dependency to your application
+2. Configure `@embroider/macros` with `startMirageWithApp` based on app's config within `ember-cli-build.js`:
+
+```js
+// ember-cli-build.js
+module.exports = async function (defaults) {
+ // load the app's config
+ const { EMBER_ENV } = process.env;
+ var config = require('./config/environment')(EMBER_ENV);
+
+ const app = new EmberApp(defaults, {
+ '@embroider/macros': {
+ setOwnConfig: {
+ startMirageWithApp: config.mirage?.enabled ?? false
+ },
+ },
+ });
+}
+```
+
+3. Finally, use the `@embroider/macros` config value for `startMirageWithApp` in `app/app.js` to conditionally start mirage:
+
+```js
+import { macroCondition, importSync, getOwnConfig, isTesting } from '@embroider/macros';
+
+if (macroCondition(getOwnConfig().startMirageWithApp && !isTesting())) {
+ const startServer = importSync('api/mirage/config').default;
+ startServer({});
+}
+```
## Installation
See monorepo README for installation instructions.
diff --git a/addons/api/addon-test-support/helpers/mirage.js b/addons/api/addon-test-support/helpers/mirage.js
new file mode 100644
index 0000000000..96c2ad8c4f
--- /dev/null
+++ b/addons/api/addon-test-support/helpers/mirage.js
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) HashiCorp, Inc.
+ * SPDX-License-Identifier: BUSL-1.1
+ */
+
+import { settled } from '@ember/test-helpers';
+import startMirage from 'api/mirage/config';
+
+export function setupMirage(hooks) {
+ hooks.beforeEach(function () {
+ if (!this.owner) {
+ throw new Error(
+ 'Must call one of the ember-qunit setupTest() / setupRenderingTest() / setupApplicationTest() first',
+ );
+ }
+
+ // the environment property here is configuration to the mirage server:
+ // https://github.com/miragejs/miragejs/blob/7ff4f3f6fe56bf0cb1648f5af3f5210fcb07e20b/types/index.d.ts#L383
+ // It is not related to ember's build environment. In this case for mirage the "test" environment does
+ // not load the default scenario:
+ // https://github.com/miragejs/miragejs/blob/7ff4f3f6fe56bf0cb1648f5af3f5210fcb07e20b/lib/server.js#L302
+ this.server = startMirage({ environment: 'test' });
+ });
+
+ hooks.afterEach(function () {
+ return settled().then(() => {
+ if (this.server) {
+ this.server.shutdown();
+ delete this.server;
+ }
+ });
+ });
+}
diff --git a/addons/api/addon/abilities/role.js b/addons/api/addon/abilities/role.js
index ef0e1053cf..bc55455a5b 100644
--- a/addons/api/addon/abilities/role.js
+++ b/addons/api/addon/abilities/role.js
@@ -16,7 +16,7 @@ class InvalidRolePrincipalTypeError extends Error {
export default class RoleAbility extends ModelAbility {
// =services
- @service can;
+ @service abilities;
// =permissions
@@ -64,6 +64,6 @@ export default class RoleAbility extends ModelAbility {
`Expected a role principal of type 'user', 'group', or 'managed-group'. Got '${type}'.`,
);
}
- return this.can.can(`read ${type}`, this.model);
+ return this.abilities.can(`read ${type}`, this.model);
}
}
diff --git a/addons/api/mirage/config.js b/addons/api/addon/mirage/config.js
similarity index 78%
rename from addons/api/mirage/config.js
rename to addons/api/addon/mirage/config.js
index f608d69423..e0469fc351 100644
--- a/addons/api/mirage/config.js
+++ b/addons/api/addon/mirage/config.js
@@ -3,12 +3,7 @@
* SPDX-License-Identifier: BUSL-1.1
*/
-import {
- discoverEmberDataModels,
- applyEmberDataSerializers,
-} from 'ember-cli-mirage';
import { createServer, Response } from 'miragejs';
-import environmentConfig from '../config/environment';
import { authHandler, deauthHandler } from './route-handlers/auth';
import { targetHandler } from './route-handlers/target';
import { pickRandomStatusString } from './factories/session';
@@ -18,18 +13,176 @@ import { faker } from '@faker-js/faker';
import { asciicasts } from './data/asciicasts';
import { TYPE_WORKER_PKI } from 'api/models/worker';
-const isTesting = environmentConfig.environment === 'test';
+// mirage models (alphabetical)
+import accountModel from './models/account';
+import aliasModel from './models/alias';
+import authMethodModel from './models/auth-method';
+import baseModel from './models/base';
+import channelRecordingModel from './models/channel-recording';
+import connectionRecordingModel from './models/connection-recording';
+import credentialLibraryModel from './models/credential-library';
+import credentialStoreModel from './models/credential-store';
+import credentialModel from './models/credential';
+import groupModel from './models/group';
+import hostCatalogModel from './models/host-catalog';
+import hostSetModel from './models/host-set';
+import hostModel from './models/host';
+import managedGroupModel from './models/managed-group';
+import policyModel from './models/policy';
+import roleModel from './models/role';
+import scopeModel from './models/scope';
+import sessionRecordingModel from './models/session-recording';
+import sessionModel from './models/session';
+import storageBucketModel from './models/storage-bucket';
+import targetModel from './models/target';
+import userModel from './models/user';
+import workerModel from './models/worker';
+
+// mirage serializers (alphabetical)
+import accountSerializer from './serializers/account';
+import aliasSerializer from './serializers/alias';
+import applicationSerializer from './serializers/application';
+import authMethodSerializer from './serializers/auth-method';
+import channelRecordingSerializer from './serializers/channel-recording';
+import connectionRecordingSerializer from './serializers/connection-recording';
+import credentialLibrarySerializer from './serializers/credential-library';
+import credentialStoreSerializer from './serializers/credential-store';
+import credentialSerializer from './serializers/credential';
+import groupSerializer from './serializers/group';
+import hostCatalogSerializer from './serializers/host-catalog';
+import hostSetSerializer from './serializers/host-set';
+import hostSerializer from './serializers/host';
+import managedGroupSerializer from './serializers/managed-group';
+import policySerializer from './serializers/policy';
+import roleSerializer from './serializers/role';
+import scopeSerializer from './serializers/scope';
+import sessionRecordingSerializer from './serializers/session-recording';
+import sessionSerializer from './serializers/session';
+import storageBucketSerializer from './serializers/storage-bucket';
+import targetSerializer from './serializers/target';
+import userSerializer from './serializers/user';
+import workerSerializer from './serializers/worker';
+
+// mirage scenarios (alphabetical)
+import defaultScenario from './scenarios/default';
+import ipcScenario from './scenarios/ipc';
+
+// mirage factories (alphabetical)
+import accountFactory from './factories/account';
+import aliasFactory from './factories/alias';
+import authMethodFactory from './factories/auth-method';
+import channelRecordingFactory from './factories/channel-recording';
+import connectionRecordingFactory from './factories/connection-recording';
+import credentialLibraryFactory from './factories/credential-library';
+import credentialStoreFactory from './factories/credential-store';
+import credentialFactory from './factories/credential';
+import groupFactory from './factories/group';
+import hostCatalogFactory from './factories/host-catalog';
+import hostSetFactory from './factories/host-set';
+import hostFactory from './factories/host';
+import managedGroupFactory from './factories/managed-group';
+import policyFactory from './factories/policy';
+import roleFactory from './factories/role';
+import scopeFactory from './factories/scope';
+import sessionRecordingFactory from './factories/session-recording';
+import storageBucketFactory from './factories/storage-bucket';
+import sessionFactory from './factories/session';
+import targetFactory from './factories/target';
+import userFactory from './factories/user';
+import workerFactory from './factories/worker';
+
+const environmentConfig = {};
+const isTesting = false; // environmentConfig.environment === 'test';
// Main function
-// More info about server configuration https://www.ember-cli-mirage.com/docs/advanced/server-configuration
+// More info about server configuration:
+// https://github.com/miragejs/miragejs/blob/7ff4f3f6fe56bf0cb1648f5af3f5210fcb07e20b/types/index.d.ts#L375-L404
export default function (mirageConfig) {
let finalConfig = {
...mirageConfig,
+
+ scenarios: {
+ default: defaultScenario,
+ ipcScenario: ipcScenario,
+ },
+
+ factories: {
+ account: accountFactory,
+ alias: aliasFactory,
+ authMethod: authMethodFactory,
+ channelRecording: channelRecordingFactory,
+ connectionRecording: connectionRecordingFactory,
+ credentialLibrary: credentialLibraryFactory,
+ credentialStore: credentialStoreFactory,
+ credential: credentialFactory,
+ group: groupFactory,
+ hostCatalog: hostCatalogFactory,
+ hostSet: hostSetFactory,
+ host: hostFactory,
+ managedGroup: managedGroupFactory,
+ policy: policyFactory,
+ role: roleFactory,
+ scope: scopeFactory,
+ sessionRecording: sessionRecordingFactory,
+ session: sessionFactory,
+ storageBucket: storageBucketFactory,
+ target: targetFactory,
+ user: userFactory,
+ worker: workerFactory,
+ },
+
models: {
- ...discoverEmberDataModels(mirageConfig.store),
- ...mirageConfig.models,
+ account: accountModel,
+ alias: aliasModel,
+ authMethod: authMethodModel,
+ base: baseModel,
+ channelRecording: channelRecordingModel,
+ connectionRecording: connectionRecordingModel,
+ credentialLibrary: credentialLibraryModel,
+ credentialStore: credentialStoreModel,
+ credential: credentialModel,
+ group: groupModel,
+ hostCatalog: hostCatalogModel,
+ hostSet: hostSetModel,
+ host: hostModel,
+ managedGroup: managedGroupModel,
+ policy: policyModel,
+ role: roleModel,
+ scope: scopeModel,
+ sessionRecording: sessionRecordingModel,
+ session: sessionModel,
+ storageBucket: storageBucketModel,
+ target: targetModel,
+ user: userModel,
+ worker: workerModel,
+ },
+
+ serializers: {
+ account: accountSerializer,
+ alias: aliasSerializer,
+ application: applicationSerializer,
+ authMethod: authMethodSerializer,
+ channelRecording: channelRecordingSerializer,
+ connectionRecording: connectionRecordingSerializer,
+ credentialLibrary: credentialLibrarySerializer,
+ credentialStore: credentialStoreSerializer,
+ credential: credentialSerializer,
+ group: groupSerializer,
+ hostCatalog: hostCatalogSerializer,
+ hostSet: hostSetSerializer,
+ host: hostSerializer,
+ managedGroup: managedGroupSerializer,
+ policy: policySerializer,
+ role: roleSerializer,
+ scope: scopeSerializer,
+ sessionRecording: sessionRecordingSerializer,
+ session: sessionSerializer,
+ storageBucket: storageBucketSerializer,
+ target: targetSerializer,
+ user: userSerializer,
+ worker: workerSerializer,
},
- serializers: applyEmberDataSerializers(mirageConfig.serializers),
+
routes,
};
return createServer(finalConfig);
@@ -57,8 +210,9 @@ function routes() {
return metadata;
});
+ debugger;
// make this `/api`, for example, if your API is namespaced
- this.namespace = environmentConfig.api.namespace;
+ this.namespace = '/v1';
// delay for each request, automatically set to 0 during testing
this.timing = 1;
diff --git a/addons/api/mirage/data/asciicasts.js b/addons/api/addon/mirage/data/asciicasts.js
similarity index 100%
rename from addons/api/mirage/data/asciicasts.js
rename to addons/api/addon/mirage/data/asciicasts.js
diff --git a/addons/api/mirage/factories/account.js b/addons/api/addon/mirage/factories/account.js
similarity index 100%
rename from addons/api/mirage/factories/account.js
rename to addons/api/addon/mirage/factories/account.js
diff --git a/addons/api/mirage/factories/alias.js b/addons/api/addon/mirage/factories/alias.js
similarity index 100%
rename from addons/api/mirage/factories/alias.js
rename to addons/api/addon/mirage/factories/alias.js
diff --git a/addons/api/mirage/factories/auth-method.js b/addons/api/addon/mirage/factories/auth-method.js
similarity index 100%
rename from addons/api/mirage/factories/auth-method.js
rename to addons/api/addon/mirage/factories/auth-method.js
diff --git a/addons/api/mirage/factories/channel-recording.js b/addons/api/addon/mirage/factories/channel-recording.js
similarity index 100%
rename from addons/api/mirage/factories/channel-recording.js
rename to addons/api/addon/mirage/factories/channel-recording.js
diff --git a/addons/api/mirage/factories/connection-recording.js b/addons/api/addon/mirage/factories/connection-recording.js
similarity index 100%
rename from addons/api/mirage/factories/connection-recording.js
rename to addons/api/addon/mirage/factories/connection-recording.js
diff --git a/addons/api/mirage/factories/credential-library.js b/addons/api/addon/mirage/factories/credential-library.js
similarity index 100%
rename from addons/api/mirage/factories/credential-library.js
rename to addons/api/addon/mirage/factories/credential-library.js
diff --git a/addons/api/mirage/factories/credential-store.js b/addons/api/addon/mirage/factories/credential-store.js
similarity index 100%
rename from addons/api/mirage/factories/credential-store.js
rename to addons/api/addon/mirage/factories/credential-store.js
diff --git a/addons/api/mirage/factories/credential.js b/addons/api/addon/mirage/factories/credential.js
similarity index 100%
rename from addons/api/mirage/factories/credential.js
rename to addons/api/addon/mirage/factories/credential.js
diff --git a/addons/api/mirage/factories/group.js b/addons/api/addon/mirage/factories/group.js
similarity index 100%
rename from addons/api/mirage/factories/group.js
rename to addons/api/addon/mirage/factories/group.js
diff --git a/addons/api/mirage/factories/host-catalog.js b/addons/api/addon/mirage/factories/host-catalog.js
similarity index 100%
rename from addons/api/mirage/factories/host-catalog.js
rename to addons/api/addon/mirage/factories/host-catalog.js
diff --git a/addons/api/mirage/factories/host-set.js b/addons/api/addon/mirage/factories/host-set.js
similarity index 100%
rename from addons/api/mirage/factories/host-set.js
rename to addons/api/addon/mirage/factories/host-set.js
diff --git a/addons/api/mirage/factories/host.js b/addons/api/addon/mirage/factories/host.js
similarity index 100%
rename from addons/api/mirage/factories/host.js
rename to addons/api/addon/mirage/factories/host.js
diff --git a/addons/api/mirage/factories/managed-group.js b/addons/api/addon/mirage/factories/managed-group.js
similarity index 100%
rename from addons/api/mirage/factories/managed-group.js
rename to addons/api/addon/mirage/factories/managed-group.js
diff --git a/addons/api/mirage/factories/policy.js b/addons/api/addon/mirage/factories/policy.js
similarity index 100%
rename from addons/api/mirage/factories/policy.js
rename to addons/api/addon/mirage/factories/policy.js
diff --git a/addons/api/mirage/factories/role.js b/addons/api/addon/mirage/factories/role.js
similarity index 100%
rename from addons/api/mirage/factories/role.js
rename to addons/api/addon/mirage/factories/role.js
diff --git a/addons/api/mirage/factories/scope.js b/addons/api/addon/mirage/factories/scope.js
similarity index 100%
rename from addons/api/mirage/factories/scope.js
rename to addons/api/addon/mirage/factories/scope.js
diff --git a/addons/api/mirage/factories/session-recording.js b/addons/api/addon/mirage/factories/session-recording.js
similarity index 100%
rename from addons/api/mirage/factories/session-recording.js
rename to addons/api/addon/mirage/factories/session-recording.js
diff --git a/addons/api/mirage/factories/session.js b/addons/api/addon/mirage/factories/session.js
similarity index 100%
rename from addons/api/mirage/factories/session.js
rename to addons/api/addon/mirage/factories/session.js
diff --git a/addons/api/mirage/factories/storage-bucket.js b/addons/api/addon/mirage/factories/storage-bucket.js
similarity index 100%
rename from addons/api/mirage/factories/storage-bucket.js
rename to addons/api/addon/mirage/factories/storage-bucket.js
diff --git a/addons/api/mirage/factories/target.js b/addons/api/addon/mirage/factories/target.js
similarity index 100%
rename from addons/api/mirage/factories/target.js
rename to addons/api/addon/mirage/factories/target.js
diff --git a/addons/api/mirage/factories/user.js b/addons/api/addon/mirage/factories/user.js
similarity index 100%
rename from addons/api/mirage/factories/user.js
rename to addons/api/addon/mirage/factories/user.js
diff --git a/addons/api/mirage/factories/worker.js b/addons/api/addon/mirage/factories/worker.js
similarity index 100%
rename from addons/api/mirage/factories/worker.js
rename to addons/api/addon/mirage/factories/worker.js
diff --git a/addons/api/mirage/generated/factories/account.js b/addons/api/addon/mirage/generated/factories/account.js
similarity index 100%
rename from addons/api/mirage/generated/factories/account.js
rename to addons/api/addon/mirage/generated/factories/account.js
diff --git a/addons/api/mirage/generated/factories/alias.js b/addons/api/addon/mirage/generated/factories/alias.js
similarity index 100%
rename from addons/api/mirage/generated/factories/alias.js
rename to addons/api/addon/mirage/generated/factories/alias.js
diff --git a/addons/api/mirage/generated/factories/auth-method.js b/addons/api/addon/mirage/generated/factories/auth-method.js
similarity index 100%
rename from addons/api/mirage/generated/factories/auth-method.js
rename to addons/api/addon/mirage/generated/factories/auth-method.js
diff --git a/addons/api/mirage/generated/factories/channel-recording.js b/addons/api/addon/mirage/generated/factories/channel-recording.js
similarity index 100%
rename from addons/api/mirage/generated/factories/channel-recording.js
rename to addons/api/addon/mirage/generated/factories/channel-recording.js
diff --git a/addons/api/mirage/generated/factories/connection-recording.js b/addons/api/addon/mirage/generated/factories/connection-recording.js
similarity index 100%
rename from addons/api/mirage/generated/factories/connection-recording.js
rename to addons/api/addon/mirage/generated/factories/connection-recording.js
diff --git a/addons/api/mirage/generated/factories/credential-library.js b/addons/api/addon/mirage/generated/factories/credential-library.js
similarity index 100%
rename from addons/api/mirage/generated/factories/credential-library.js
rename to addons/api/addon/mirage/generated/factories/credential-library.js
diff --git a/addons/api/mirage/generated/factories/credential-store.js b/addons/api/addon/mirage/generated/factories/credential-store.js
similarity index 100%
rename from addons/api/mirage/generated/factories/credential-store.js
rename to addons/api/addon/mirage/generated/factories/credential-store.js
diff --git a/addons/api/mirage/generated/factories/credential.js b/addons/api/addon/mirage/generated/factories/credential.js
similarity index 100%
rename from addons/api/mirage/generated/factories/credential.js
rename to addons/api/addon/mirage/generated/factories/credential.js
diff --git a/addons/api/mirage/generated/factories/group.js b/addons/api/addon/mirage/generated/factories/group.js
similarity index 100%
rename from addons/api/mirage/generated/factories/group.js
rename to addons/api/addon/mirage/generated/factories/group.js
diff --git a/addons/api/mirage/generated/factories/host-catalog.js b/addons/api/addon/mirage/generated/factories/host-catalog.js
similarity index 100%
rename from addons/api/mirage/generated/factories/host-catalog.js
rename to addons/api/addon/mirage/generated/factories/host-catalog.js
diff --git a/addons/api/mirage/generated/factories/host-set.js b/addons/api/addon/mirage/generated/factories/host-set.js
similarity index 100%
rename from addons/api/mirage/generated/factories/host-set.js
rename to addons/api/addon/mirage/generated/factories/host-set.js
diff --git a/addons/api/mirage/generated/factories/host.js b/addons/api/addon/mirage/generated/factories/host.js
similarity index 100%
rename from addons/api/mirage/generated/factories/host.js
rename to addons/api/addon/mirage/generated/factories/host.js
diff --git a/addons/api/mirage/generated/factories/managed-group.js b/addons/api/addon/mirage/generated/factories/managed-group.js
similarity index 100%
rename from addons/api/mirage/generated/factories/managed-group.js
rename to addons/api/addon/mirage/generated/factories/managed-group.js
diff --git a/addons/api/mirage/generated/factories/org.js b/addons/api/addon/mirage/generated/factories/org.js
similarity index 100%
rename from addons/api/mirage/generated/factories/org.js
rename to addons/api/addon/mirage/generated/factories/org.js
diff --git a/addons/api/mirage/generated/factories/policy.js b/addons/api/addon/mirage/generated/factories/policy.js
similarity index 100%
rename from addons/api/mirage/generated/factories/policy.js
rename to addons/api/addon/mirage/generated/factories/policy.js
diff --git a/addons/api/mirage/generated/factories/project.js b/addons/api/addon/mirage/generated/factories/project.js
similarity index 100%
rename from addons/api/mirage/generated/factories/project.js
rename to addons/api/addon/mirage/generated/factories/project.js
diff --git a/addons/api/mirage/generated/factories/role.js b/addons/api/addon/mirage/generated/factories/role.js
similarity index 100%
rename from addons/api/mirage/generated/factories/role.js
rename to addons/api/addon/mirage/generated/factories/role.js
diff --git a/addons/api/mirage/generated/factories/scope.js b/addons/api/addon/mirage/generated/factories/scope.js
similarity index 100%
rename from addons/api/mirage/generated/factories/scope.js
rename to addons/api/addon/mirage/generated/factories/scope.js
diff --git a/addons/api/mirage/generated/factories/session-recording.js b/addons/api/addon/mirage/generated/factories/session-recording.js
similarity index 100%
rename from addons/api/mirage/generated/factories/session-recording.js
rename to addons/api/addon/mirage/generated/factories/session-recording.js
diff --git a/addons/api/mirage/generated/factories/session.js b/addons/api/addon/mirage/generated/factories/session.js
similarity index 100%
rename from addons/api/mirage/generated/factories/session.js
rename to addons/api/addon/mirage/generated/factories/session.js
diff --git a/addons/api/mirage/generated/factories/storage-bucket.js b/addons/api/addon/mirage/generated/factories/storage-bucket.js
similarity index 100%
rename from addons/api/mirage/generated/factories/storage-bucket.js
rename to addons/api/addon/mirage/generated/factories/storage-bucket.js
diff --git a/addons/api/mirage/generated/factories/target.js b/addons/api/addon/mirage/generated/factories/target.js
similarity index 100%
rename from addons/api/mirage/generated/factories/target.js
rename to addons/api/addon/mirage/generated/factories/target.js
diff --git a/addons/api/mirage/generated/factories/user.js b/addons/api/addon/mirage/generated/factories/user.js
similarity index 100%
rename from addons/api/mirage/generated/factories/user.js
rename to addons/api/addon/mirage/generated/factories/user.js
diff --git a/addons/api/mirage/generated/factories/worker.js b/addons/api/addon/mirage/generated/factories/worker.js
similarity index 100%
rename from addons/api/mirage/generated/factories/worker.js
rename to addons/api/addon/mirage/generated/factories/worker.js
diff --git a/addons/api/mirage/helpers/bexpr-filter.js b/addons/api/addon/mirage/helpers/bexpr-filter.js
similarity index 100%
rename from addons/api/mirage/helpers/bexpr-filter.js
rename to addons/api/addon/mirage/helpers/bexpr-filter.js
diff --git a/addons/api/mirage/helpers/id.js b/addons/api/addon/mirage/helpers/id.js
similarity index 100%
rename from addons/api/mirage/helpers/id.js
rename to addons/api/addon/mirage/helpers/id.js
diff --git a/addons/api/mirage/helpers/permissions.js b/addons/api/addon/mirage/helpers/permissions.js
similarity index 100%
rename from addons/api/mirage/helpers/permissions.js
rename to addons/api/addon/mirage/helpers/permissions.js
diff --git a/addons/api/mirage/models/account.js b/addons/api/addon/mirage/models/account.js
similarity index 100%
rename from addons/api/mirage/models/account.js
rename to addons/api/addon/mirage/models/account.js
diff --git a/addons/api/mirage/models/alias.js b/addons/api/addon/mirage/models/alias.js
similarity index 100%
rename from addons/api/mirage/models/alias.js
rename to addons/api/addon/mirage/models/alias.js
diff --git a/addons/api/mirage/models/auth-method.js b/addons/api/addon/mirage/models/auth-method.js
similarity index 100%
rename from addons/api/mirage/models/auth-method.js
rename to addons/api/addon/mirage/models/auth-method.js
diff --git a/addons/api/mirage/models/base.js b/addons/api/addon/mirage/models/base.js
similarity index 100%
rename from addons/api/mirage/models/base.js
rename to addons/api/addon/mirage/models/base.js
diff --git a/addons/api/mirage/models/channel-recording.js b/addons/api/addon/mirage/models/channel-recording.js
similarity index 100%
rename from addons/api/mirage/models/channel-recording.js
rename to addons/api/addon/mirage/models/channel-recording.js
diff --git a/addons/api/mirage/models/connection-recording.js b/addons/api/addon/mirage/models/connection-recording.js
similarity index 100%
rename from addons/api/mirage/models/connection-recording.js
rename to addons/api/addon/mirage/models/connection-recording.js
diff --git a/addons/api/mirage/models/credential-library.js b/addons/api/addon/mirage/models/credential-library.js
similarity index 100%
rename from addons/api/mirage/models/credential-library.js
rename to addons/api/addon/mirage/models/credential-library.js
diff --git a/addons/api/mirage/models/credential-store.js b/addons/api/addon/mirage/models/credential-store.js
similarity index 100%
rename from addons/api/mirage/models/credential-store.js
rename to addons/api/addon/mirage/models/credential-store.js
diff --git a/addons/api/mirage/models/credential.js b/addons/api/addon/mirage/models/credential.js
similarity index 100%
rename from addons/api/mirage/models/credential.js
rename to addons/api/addon/mirage/models/credential.js
diff --git a/addons/api/mirage/models/group.js b/addons/api/addon/mirage/models/group.js
similarity index 100%
rename from addons/api/mirage/models/group.js
rename to addons/api/addon/mirage/models/group.js
diff --git a/addons/api/mirage/models/host-catalog.js b/addons/api/addon/mirage/models/host-catalog.js
similarity index 100%
rename from addons/api/mirage/models/host-catalog.js
rename to addons/api/addon/mirage/models/host-catalog.js
diff --git a/addons/api/mirage/models/host-set.js b/addons/api/addon/mirage/models/host-set.js
similarity index 100%
rename from addons/api/mirage/models/host-set.js
rename to addons/api/addon/mirage/models/host-set.js
diff --git a/addons/api/mirage/models/host.js b/addons/api/addon/mirage/models/host.js
similarity index 100%
rename from addons/api/mirage/models/host.js
rename to addons/api/addon/mirage/models/host.js
diff --git a/addons/api/mirage/models/managed-group.js b/addons/api/addon/mirage/models/managed-group.js
similarity index 100%
rename from addons/api/mirage/models/managed-group.js
rename to addons/api/addon/mirage/models/managed-group.js
diff --git a/addons/api/mirage/models/policy.js b/addons/api/addon/mirage/models/policy.js
similarity index 100%
rename from addons/api/mirage/models/policy.js
rename to addons/api/addon/mirage/models/policy.js
diff --git a/addons/api/mirage/models/role.js b/addons/api/addon/mirage/models/role.js
similarity index 100%
rename from addons/api/mirage/models/role.js
rename to addons/api/addon/mirage/models/role.js
diff --git a/addons/api/mirage/models/scope.js b/addons/api/addon/mirage/models/scope.js
similarity index 100%
rename from addons/api/mirage/models/scope.js
rename to addons/api/addon/mirage/models/scope.js
diff --git a/addons/api/mirage/models/session-recording.js b/addons/api/addon/mirage/models/session-recording.js
similarity index 100%
rename from addons/api/mirage/models/session-recording.js
rename to addons/api/addon/mirage/models/session-recording.js
diff --git a/addons/api/mirage/models/session.js b/addons/api/addon/mirage/models/session.js
similarity index 100%
rename from addons/api/mirage/models/session.js
rename to addons/api/addon/mirage/models/session.js
diff --git a/addons/api/mirage/models/storage-bucket.js b/addons/api/addon/mirage/models/storage-bucket.js
similarity index 100%
rename from addons/api/mirage/models/storage-bucket.js
rename to addons/api/addon/mirage/models/storage-bucket.js
diff --git a/addons/api/mirage/models/target.js b/addons/api/addon/mirage/models/target.js
similarity index 100%
rename from addons/api/mirage/models/target.js
rename to addons/api/addon/mirage/models/target.js
diff --git a/addons/api/mirage/models/user.js b/addons/api/addon/mirage/models/user.js
similarity index 100%
rename from addons/api/mirage/models/user.js
rename to addons/api/addon/mirage/models/user.js
diff --git a/addons/api/mirage/models/worker.js b/addons/api/addon/mirage/models/worker.js
similarity index 100%
rename from addons/api/mirage/models/worker.js
rename to addons/api/addon/mirage/models/worker.js
diff --git a/addons/api/mirage/route-handlers/auth.js b/addons/api/addon/mirage/route-handlers/auth.js
similarity index 100%
rename from addons/api/mirage/route-handlers/auth.js
rename to addons/api/addon/mirage/route-handlers/auth.js
diff --git a/addons/api/mirage/route-handlers/target.js b/addons/api/addon/mirage/route-handlers/target.js
similarity index 100%
rename from addons/api/mirage/route-handlers/target.js
rename to addons/api/addon/mirage/route-handlers/target.js
diff --git a/addons/api/mirage/scenarios/default.js b/addons/api/addon/mirage/scenarios/default.js
similarity index 100%
rename from addons/api/mirage/scenarios/default.js
rename to addons/api/addon/mirage/scenarios/default.js
diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/addon/mirage/scenarios/ipc.js
similarity index 98%
rename from addons/api/mirage/scenarios/ipc.js
rename to addons/api/addon/mirage/scenarios/ipc.js
index 0339764c85..423a88e732 100644
--- a/addons/api/mirage/scenarios/ipc.js
+++ b/addons/api/addon/mirage/scenarios/ipc.js
@@ -22,6 +22,14 @@ export default function initializeMockIPC(server, config) {
clusterUrl = null;
+ checkOS() {
+ return {
+ isLinux: false,
+ isMac: true,
+ isWindows: false,
+ };
+ }
+
getClusterUrl() {
return this.clusterUrl;
}
@@ -273,7 +281,7 @@ export default function initializeMockIPC(server, config) {
* We mock certain functions even in electron (e.g. hasMacOSChrome) when running
* locally which will force a certain appearance regardless of platform
*/
- if (config['ember-cli-mirage'].enabled && !isTesting) {
+ if (config.mirage?.enabled && !isTesting) {
const mockIPC = new MockIPC();
window.addEventListener('message', async function (event) {
diff --git a/addons/api/mirage/serializers/account.js b/addons/api/addon/mirage/serializers/account.js
similarity index 100%
rename from addons/api/mirage/serializers/account.js
rename to addons/api/addon/mirage/serializers/account.js
diff --git a/addons/api/mirage/serializers/alias.js b/addons/api/addon/mirage/serializers/alias.js
similarity index 100%
rename from addons/api/mirage/serializers/alias.js
rename to addons/api/addon/mirage/serializers/alias.js
diff --git a/addons/api/mirage/serializers/application.js b/addons/api/addon/mirage/serializers/application.js
similarity index 100%
rename from addons/api/mirage/serializers/application.js
rename to addons/api/addon/mirage/serializers/application.js
diff --git a/addons/api/mirage/serializers/auth-method.js b/addons/api/addon/mirage/serializers/auth-method.js
similarity index 100%
rename from addons/api/mirage/serializers/auth-method.js
rename to addons/api/addon/mirage/serializers/auth-method.js
diff --git a/addons/api/mirage/serializers/channel-recording.js b/addons/api/addon/mirage/serializers/channel-recording.js
similarity index 100%
rename from addons/api/mirage/serializers/channel-recording.js
rename to addons/api/addon/mirage/serializers/channel-recording.js
diff --git a/addons/api/mirage/serializers/connection-recording.js b/addons/api/addon/mirage/serializers/connection-recording.js
similarity index 100%
rename from addons/api/mirage/serializers/connection-recording.js
rename to addons/api/addon/mirage/serializers/connection-recording.js
diff --git a/addons/api/mirage/serializers/credential-library.js b/addons/api/addon/mirage/serializers/credential-library.js
similarity index 100%
rename from addons/api/mirage/serializers/credential-library.js
rename to addons/api/addon/mirage/serializers/credential-library.js
diff --git a/addons/api/mirage/serializers/credential-store.js b/addons/api/addon/mirage/serializers/credential-store.js
similarity index 100%
rename from addons/api/mirage/serializers/credential-store.js
rename to addons/api/addon/mirage/serializers/credential-store.js
diff --git a/addons/api/mirage/serializers/credential.js b/addons/api/addon/mirage/serializers/credential.js
similarity index 100%
rename from addons/api/mirage/serializers/credential.js
rename to addons/api/addon/mirage/serializers/credential.js
diff --git a/addons/api/mirage/serializers/group.js b/addons/api/addon/mirage/serializers/group.js
similarity index 100%
rename from addons/api/mirage/serializers/group.js
rename to addons/api/addon/mirage/serializers/group.js
diff --git a/addons/api/mirage/serializers/host-catalog.js b/addons/api/addon/mirage/serializers/host-catalog.js
similarity index 100%
rename from addons/api/mirage/serializers/host-catalog.js
rename to addons/api/addon/mirage/serializers/host-catalog.js
diff --git a/addons/api/mirage/serializers/host-set.js b/addons/api/addon/mirage/serializers/host-set.js
similarity index 100%
rename from addons/api/mirage/serializers/host-set.js
rename to addons/api/addon/mirage/serializers/host-set.js
diff --git a/addons/api/mirage/serializers/host.js b/addons/api/addon/mirage/serializers/host.js
similarity index 100%
rename from addons/api/mirage/serializers/host.js
rename to addons/api/addon/mirage/serializers/host.js
diff --git a/addons/api/mirage/serializers/managed-group.js b/addons/api/addon/mirage/serializers/managed-group.js
similarity index 100%
rename from addons/api/mirage/serializers/managed-group.js
rename to addons/api/addon/mirage/serializers/managed-group.js
diff --git a/addons/api/mirage/serializers/policy.js b/addons/api/addon/mirage/serializers/policy.js
similarity index 100%
rename from addons/api/mirage/serializers/policy.js
rename to addons/api/addon/mirage/serializers/policy.js
diff --git a/addons/api/mirage/serializers/role.js b/addons/api/addon/mirage/serializers/role.js
similarity index 100%
rename from addons/api/mirage/serializers/role.js
rename to addons/api/addon/mirage/serializers/role.js
diff --git a/addons/api/mirage/serializers/scope.js b/addons/api/addon/mirage/serializers/scope.js
similarity index 100%
rename from addons/api/mirage/serializers/scope.js
rename to addons/api/addon/mirage/serializers/scope.js
diff --git a/addons/api/mirage/serializers/session-recording.js b/addons/api/addon/mirage/serializers/session-recording.js
similarity index 100%
rename from addons/api/mirage/serializers/session-recording.js
rename to addons/api/addon/mirage/serializers/session-recording.js
diff --git a/addons/api/mirage/serializers/session.js b/addons/api/addon/mirage/serializers/session.js
similarity index 100%
rename from addons/api/mirage/serializers/session.js
rename to addons/api/addon/mirage/serializers/session.js
diff --git a/addons/api/mirage/serializers/storage-bucket.js b/addons/api/addon/mirage/serializers/storage-bucket.js
similarity index 100%
rename from addons/api/mirage/serializers/storage-bucket.js
rename to addons/api/addon/mirage/serializers/storage-bucket.js
diff --git a/addons/api/mirage/serializers/target.js b/addons/api/addon/mirage/serializers/target.js
similarity index 100%
rename from addons/api/mirage/serializers/target.js
rename to addons/api/addon/mirage/serializers/target.js
diff --git a/addons/api/mirage/serializers/user.js b/addons/api/addon/mirage/serializers/user.js
similarity index 100%
rename from addons/api/mirage/serializers/user.js
rename to addons/api/addon/mirage/serializers/user.js
diff --git a/addons/api/mirage/serializers/worker.js b/addons/api/addon/mirage/serializers/worker.js
similarity index 100%
rename from addons/api/mirage/serializers/worker.js
rename to addons/api/addon/mirage/serializers/worker.js
diff --git a/addons/api/index.js b/addons/api/index.js
index 9b305a68d5..677b633bf9 100644
--- a/addons/api/index.js
+++ b/addons/api/index.js
@@ -24,12 +24,36 @@ module.exports = {
},
},
+ included() {
+ this._super.included.apply(this, arguments);
+ const includeMirage = this._includeMirageInBuild();
+
+ // these are dependencies used our mirage code within the
+ // api addon and should not be included in production builds,
+ // after this addon has been migrated to a v2 addon this can
+ // be removed as the addon's dependencies will be statically
+ // analyzable
+ if (!includeMirage) {
+ // exclude mirage and dependencies from this addon that are used by mirage
+ this.options.autoImport.exclude.push(
+ 'miragejs',
+ 'sinon',
+ '@faker-js/faker',
+ 'js-bexpr',
+ );
+ }
+ },
+
treeForAddon() {
+ const includeMirage = this._includeMirageInBuild();
+
// Exclude anything in the workers folder from being bundled in the final
// build as we're manually bundling the files ourselves below.
const tree = this._super.treeForAddon.apply(this, arguments);
return funnel(tree, {
- exclude: ['api/workers/**/*'],
+ exclude: ['api/workers/**/*', !includeMirage && 'api/mirage/**/*'].filter(
+ Boolean,
+ ),
});
},
@@ -70,4 +94,10 @@ module.exports = {
return merge(trees);
},
+
+ _includeMirageInBuild() {
+ const env = this.parent.app?.env ?? 'production';
+ const config = this.project.config(env);
+ return Boolean(config.mirage?.enabled);
+ },
};
diff --git a/addons/api/package.json b/addons/api/package.json
index 76dcb6904e..7ebe9d1b37 100644
--- a/addons/api/package.json
+++ b/addons/api/package.json
@@ -33,13 +33,13 @@
"broccoli-plugin": "^4.0.7",
"broccoli-source": "^3.0.1",
"ember-auto-import": "^2.10.0",
- "ember-can": "^4.2.0",
+ "ember-can": "^8.0.0",
"ember-cli-babel": "^8.2.0",
"ember-cli-htmlbars": "^6.3.0",
- "ember-cli-mirage": "^3.0.3",
"ember-data": "~5.3.12",
+ "ember-inflector": "^6.0.0",
"esbuild": "^0.25.4",
- "miragejs": "^0.1.48",
+ "js-bexpr": "hashicorp/js-bexpr#9b4a4b54d85eba67fdfc0990133d1518d890b1e1",
"promise-worker-bi": "^5.0.1",
"tracked-built-ins": "^4.0.0",
"uuid": "^11.0.3"
@@ -51,7 +51,6 @@
"@ember/test-helpers": "^5.2.1",
"@ember/test-waiters": "^4.1.0",
"@embroider/test-setup": "^4.0.0",
- "@faker-js/faker": "^8.0.2",
"@glimmer/component": "^2.0.0",
"@glimmer/tracking": "^1.1.2",
"broccoli-asset-rev": "^3.0.0",
@@ -67,7 +66,7 @@
"ember-load-initializers": "^2.1.2",
"ember-page-title": "^8.2.3",
"ember-qunit": "^8.1.0",
- "ember-resolver": "^12.0.1",
+ "ember-resolver": "^13.1.1",
"ember-source": "~5.12.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^6.0.0",
@@ -77,16 +76,16 @@
"eslint-plugin-ember": "^12.2.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-qunit": "^8.1.2",
- "js-bexpr": "hashicorp/js-bexpr#9b4a4b54d85eba67fdfc0990133d1518d890b1e1",
"loader.js": "^4.7.0",
"prettier": "^3.3.3",
"qunit": "^2.22.0",
"qunit-dom": "^3.2.1",
- "sinon": "^19.0.2",
"webpack": "^5.95.0"
},
"peerDependencies": {
+ "@faker-js/faker": "^8.0.2",
"ember-source": ">= 4.0.0",
+ "miragejs": "^0.1.48",
"sinon": "^19.0.2"
},
"engines": {
diff --git a/addons/api/tests/dummy/config/environment.js b/addons/api/tests/dummy/config/environment.js
index 565340d1e8..d4d3a031fa 100644
--- a/addons/api/tests/dummy/config/environment.js
+++ b/addons/api/tests/dummy/config/environment.js
@@ -29,8 +29,8 @@ module.exports = function (environment) {
namespace: 'v1',
},
- 'ember-cli-mirage': {
- directory: './mirage',
+ mirage: {
+ enabled: true
},
};
diff --git a/addons/api/tests/helpers/index.js b/addons/api/tests/helpers/index.js
index b4c7ee08da..45e41214e9 100644
--- a/addons/api/tests/helpers/index.js
+++ b/addons/api/tests/helpers/index.js
@@ -29,7 +29,6 @@ function setupApplicationTest(hooks, options) {
// from other addons:
//
// setupIntl(hooks, 'en-us'); // ember-intl
- // setupMirage(hooks); // ember-cli-mirage
}
function setupRenderingTest(hooks, options) {
diff --git a/addons/api/tests/unit/abilities/account-test.js b/addons/api/tests/unit/abilities/account-test.js
index 812e33a6af..a817dfad13 100644
--- a/addons/api/tests/unit/abilities/account-test.js
+++ b/addons/api/tests/unit/abilities/account-test.js
@@ -14,11 +14,11 @@ import {
module('Unit | Abilities | Account', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
let store;
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
store = this.owner.lookup('service:store');
});
@@ -26,9 +26,9 @@ module('Unit | Abilities | Account', function (hooks) {
const account = store.createRecord('auth-method', {
authorized_actions: ['set-password'],
});
- assert.true(canService.can('setPassword account', account));
+ assert.true(abilitiesService.can('setPassword account', account));
account.authorized_actions = [];
- assert.false(canService.can('setPassword account', account));
+ assert.false(abilitiesService.can('setPassword account', account));
});
test('can read known account types when authorized', function (assert) {
@@ -36,13 +36,13 @@ module('Unit | Abilities | Account', function (hooks) {
authorized_actions: ['read'],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.true(canService.can('read account', account));
+ assert.true(abilitiesService.can('read account', account));
account.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.true(canService.can('read account', account));
+ assert.true(abilitiesService.can('read account', account));
account.type = TYPE_AUTH_METHOD_LDAP;
- assert.true(canService.can('read account', account));
+ assert.true(abilitiesService.can('read account', account));
account.type = 'no-such-type';
- assert.false(canService.can('read account', account));
+ assert.false(abilitiesService.can('read account', account));
});
test('cannot read accounts when unauthorized', function (assert) {
@@ -50,13 +50,13 @@ module('Unit | Abilities | Account', function (hooks) {
authorized_actions: [],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.false(canService.can('read account', account));
+ assert.false(abilitiesService.can('read account', account));
account.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.false(canService.can('read account', account));
+ assert.false(abilitiesService.can('read account', account));
account.type = TYPE_AUTH_METHOD_LDAP;
- assert.false(canService.can('read account', account));
+ assert.false(abilitiesService.can('read account', account));
account.type = 'no-such-type';
- assert.false(canService.can('read account', account));
+ assert.false(abilitiesService.can('read account', account));
});
test('can delete known account types when authorized', function (assert) {
@@ -64,13 +64,13 @@ module('Unit | Abilities | Account', function (hooks) {
authorized_actions: ['delete'],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.true(canService.can('delete account', account));
+ assert.true(abilitiesService.can('delete account', account));
account.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.true(canService.can('delete account', account));
+ assert.true(abilitiesService.can('delete account', account));
account.type = TYPE_AUTH_METHOD_LDAP;
- assert.true(canService.can('delete account', account));
+ assert.true(abilitiesService.can('delete account', account));
account.type = 'no-such-type';
- assert.false(canService.can('delete account', account));
+ assert.false(abilitiesService.can('delete account', account));
});
test('cannot delete accounts when unauthorized', function (assert) {
@@ -78,13 +78,13 @@ module('Unit | Abilities | Account', function (hooks) {
authorized_actions: ['delete'],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.true(canService.can('delete account', account));
+ assert.true(abilitiesService.can('delete account', account));
account.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.true(canService.can('delete account', account));
+ assert.true(abilitiesService.can('delete account', account));
account.type = TYPE_AUTH_METHOD_LDAP;
- assert.true(canService.can('delete account', account));
+ assert.true(abilitiesService.can('delete account', account));
account.type = 'no-such-type';
- assert.false(canService.can('delete account', account));
+ assert.false(abilitiesService.can('delete account', account));
});
test('can update known account types when authorized', function (assert) {
@@ -92,13 +92,13 @@ module('Unit | Abilities | Account', function (hooks) {
authorized_actions: ['update'],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.true(canService.can('update account', account));
+ assert.true(abilitiesService.can('update account', account));
account.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.true(canService.can('update account', account));
+ assert.true(abilitiesService.can('update account', account));
account.type = TYPE_AUTH_METHOD_LDAP;
- assert.true(canService.can('update account', account));
+ assert.true(abilitiesService.can('update account', account));
account.type = 'no-such-type';
- assert.false(canService.can('update account', account));
+ assert.false(abilitiesService.can('update account', account));
});
test('cannot update accounts when unauthorized', function (assert) {
@@ -106,12 +106,12 @@ module('Unit | Abilities | Account', function (hooks) {
authorized_actions: [],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.false(canService.can('update account', account));
+ assert.false(abilitiesService.can('update account', account));
account.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.false(canService.can('update account', account));
+ assert.false(abilitiesService.can('update account', account));
account.type = TYPE_AUTH_METHOD_LDAP;
- assert.false(canService.can('update account', account));
+ assert.false(abilitiesService.can('update account', account));
account.type = 'no-such-type';
- assert.false(canService.can('update account', account));
+ assert.false(abilitiesService.can('update account', account));
});
});
diff --git a/addons/api/tests/unit/abilities/auth-method-test.js b/addons/api/tests/unit/abilities/auth-method-test.js
index 5d820e83b7..cad21a4503 100644
--- a/addons/api/tests/unit/abilities/auth-method-test.js
+++ b/addons/api/tests/unit/abilities/auth-method-test.js
@@ -14,11 +14,11 @@ import {
module('Unit | Abilities | Auth Method', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
let store;
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
store = this.owner.lookup('service:store');
});
@@ -27,13 +27,13 @@ module('Unit | Abilities | Auth Method', function (hooks) {
authorized_actions: ['read'],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.true(canService.can('read auth-method', authMethod));
+ assert.true(abilitiesService.can('read auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.true(canService.can('read auth-method', authMethod));
+ assert.true(abilitiesService.can('read auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_LDAP;
- assert.true(canService.can('read auth-method', authMethod));
+ assert.true(abilitiesService.can('read auth-method', authMethod));
authMethod.type = 'no-such-type';
- assert.false(canService.can('read auth-method', authMethod));
+ assert.false(abilitiesService.can('read auth-method', authMethod));
});
test('cannot read auth methods when unauthorized', function (assert) {
@@ -41,13 +41,13 @@ module('Unit | Abilities | Auth Method', function (hooks) {
authorized_actions: [],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.false(canService.can('read auth-method', authMethod));
+ assert.false(abilitiesService.can('read auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.false(canService.can('read auth-method', authMethod));
+ assert.false(abilitiesService.can('read auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_LDAP;
- assert.false(canService.can('read auth-method', authMethod));
+ assert.false(abilitiesService.can('read auth-method', authMethod));
authMethod.type = 'no-such-type';
- assert.false(canService.can('read auth-method', authMethod));
+ assert.false(abilitiesService.can('read auth-method', authMethod));
});
test('can delete known auth method types when authorized', function (assert) {
@@ -55,13 +55,13 @@ module('Unit | Abilities | Auth Method', function (hooks) {
authorized_actions: ['delete'],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.true(canService.can('delete auth-method', authMethod));
+ assert.true(abilitiesService.can('delete auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.true(canService.can('delete auth-method', authMethod));
+ assert.true(abilitiesService.can('delete auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_LDAP;
- assert.true(canService.can('delete auth-method', authMethod));
+ assert.true(abilitiesService.can('delete auth-method', authMethod));
authMethod.type = 'no-such-type';
- assert.false(canService.can('delete auth-method', authMethod));
+ assert.false(abilitiesService.can('delete auth-method', authMethod));
});
test('cannot delete auth methods when unauthorized', function (assert) {
@@ -69,13 +69,13 @@ module('Unit | Abilities | Auth Method', function (hooks) {
authorized_actions: ['delete'],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.true(canService.can('delete auth-method', authMethod));
+ assert.true(abilitiesService.can('delete auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.true(canService.can('delete auth-method', authMethod));
+ assert.true(abilitiesService.can('delete auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_LDAP;
- assert.true(canService.can('delete auth-method', authMethod));
+ assert.true(abilitiesService.can('delete auth-method', authMethod));
authMethod.type = 'no-such-type';
- assert.false(canService.can('delete auth-method', authMethod));
+ assert.false(abilitiesService.can('delete auth-method', authMethod));
});
test('can update known auth method types when authorized', function (assert) {
@@ -83,13 +83,13 @@ module('Unit | Abilities | Auth Method', function (hooks) {
authorized_actions: ['update'],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.true(canService.can('update auth-method', authMethod));
+ assert.true(abilitiesService.can('update auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.true(canService.can('update auth-method', authMethod));
+ assert.true(abilitiesService.can('update auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_LDAP;
- assert.true(canService.can('update auth-method', authMethod));
+ assert.true(abilitiesService.can('update auth-method', authMethod));
authMethod.type = 'no-such-type';
- assert.false(canService.can('update auth-method', authMethod));
+ assert.false(abilitiesService.can('update auth-method', authMethod));
});
test('cannot update auth methods when unauthorized', function (assert) {
@@ -97,12 +97,12 @@ module('Unit | Abilities | Auth Method', function (hooks) {
authorized_actions: [],
type: TYPE_AUTH_METHOD_OIDC,
});
- assert.false(canService.can('update auth-method', authMethod));
+ assert.false(abilitiesService.can('update auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_PASSWORD;
- assert.false(canService.can('update auth-method', authMethod));
+ assert.false(abilitiesService.can('update auth-method', authMethod));
authMethod.type = TYPE_AUTH_METHOD_LDAP;
- assert.false(canService.can('update auth-method', authMethod));
+ assert.false(abilitiesService.can('update auth-method', authMethod));
authMethod.type = 'no-such-type';
- assert.false(canService.can('update auth-method', authMethod));
+ assert.false(abilitiesService.can('update auth-method', authMethod));
});
});
diff --git a/addons/api/tests/unit/abilities/channel-recording-test.js b/addons/api/tests/unit/abilities/channel-recording-test.js
index 13d58ce80d..decf665e45 100644
--- a/addons/api/tests/unit/abilities/channel-recording-test.js
+++ b/addons/api/tests/unit/abilities/channel-recording-test.js
@@ -11,11 +11,11 @@ import { TYPE_SESSION_RECORDING_SSH } from 'api/models/session-recording';
module('Unit | Ability | channel-recording', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
let store;
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
store = this.owner.lookup('service:store');
});
@@ -41,7 +41,10 @@ module('Unit | Ability | channel-recording', function (hooks) {
});
assert.true(
- canService.can('getAsciicast channel-recording', channelRecordingModel),
+ abilitiesService.can(
+ 'getAsciicast channel-recording',
+ channelRecordingModel,
+ ),
);
});
@@ -62,7 +65,10 @@ module('Unit | Ability | channel-recording', function (hooks) {
});
assert.false(
- canService.can('getAsciicast channel-recording', channelRecordingModel),
+ abilitiesService.can(
+ 'getAsciicast channel-recording',
+ channelRecordingModel,
+ ),
);
});
});
diff --git a/addons/api/tests/unit/abilities/group-test.js b/addons/api/tests/unit/abilities/group-test.js
index 8913f86b24..3683255cbc 100644
--- a/addons/api/tests/unit/abilities/group-test.js
+++ b/addons/api/tests/unit/abilities/group-test.js
@@ -10,7 +10,7 @@ module('Unit | Abilities | Group', function (hooks) {
setupTest(hooks);
test('it reflects when a given group resource may add members based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['add-members'],
};
@@ -20,7 +20,7 @@ module('Unit | Abilities | Group', function (hooks) {
});
test('it reflects when a given group resource may remove members based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['remove-members'],
};
diff --git a/addons/api/tests/unit/abilities/host-set-test.js b/addons/api/tests/unit/abilities/host-set-test.js
index 108ba62797..bf2a51f4ff 100644
--- a/addons/api/tests/unit/abilities/host-set-test.js
+++ b/addons/api/tests/unit/abilities/host-set-test.js
@@ -10,7 +10,7 @@ module('Unit | Abilities | Host Set', function (hooks) {
setupTest(hooks);
test('it reflects when a given host set resource may add hosts based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['add-hosts'],
};
@@ -20,7 +20,7 @@ module('Unit | Abilities | Host Set', function (hooks) {
});
test('it reflects when a given hostSet resource may remove hosts based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['remove-hosts'],
};
diff --git a/addons/api/tests/unit/abilities/model-test.js b/addons/api/tests/unit/abilities/model-test.js
index 3930742317..79ff1a4c1a 100644
--- a/addons/api/tests/unit/abilities/model-test.js
+++ b/addons/api/tests/unit/abilities/model-test.js
@@ -10,7 +10,7 @@ module('Unit | Abilities | Model', function (hooks) {
setupTest(hooks);
test('it reflects when a given model may be read based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['read'],
};
@@ -20,7 +20,7 @@ module('Unit | Abilities | Model', function (hooks) {
});
test('it reflects when a given model may be updated based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['update'],
};
@@ -30,7 +30,7 @@ module('Unit | Abilities | Model', function (hooks) {
});
test('it reflects when a given model may be saved based on isNew and authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
let model = {
isNew: false,
authorized_actions: ['update'],
@@ -58,7 +58,7 @@ module('Unit | Abilities | Model', function (hooks) {
});
test('it reflects when a given model may be deleted based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['delete'],
};
@@ -70,7 +70,7 @@ module('Unit | Abilities | Model', function (hooks) {
// =collections
test('it reflects when a resource may be listed based on authorized_collection_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_collection_actions: {
foobars: ['list'],
@@ -82,7 +82,7 @@ module('Unit | Abilities | Model', function (hooks) {
});
test('it reflects when a resource may be created based on authorized_collection_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_collection_actions: {
foobars: ['create'],
diff --git a/addons/api/tests/unit/abilities/role-test.js b/addons/api/tests/unit/abilities/role-test.js
index e601bcc1bc..a85df2afd0 100644
--- a/addons/api/tests/unit/abilities/role-test.js
+++ b/addons/api/tests/unit/abilities/role-test.js
@@ -10,7 +10,7 @@ module('Unit | Abilities | Role', function (hooks) {
setupTest(hooks);
test('it reflects when a given role may set grants based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['set-grants'],
};
@@ -20,7 +20,7 @@ module('Unit | Abilities | Role', function (hooks) {
});
test('it reflects when a given role may add principals based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['add-principals'],
};
@@ -30,7 +30,7 @@ module('Unit | Abilities | Role', function (hooks) {
});
test('it reflects when a given role may remove principals based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['remove-principals'],
};
@@ -40,7 +40,7 @@ module('Unit | Abilities | Role', function (hooks) {
});
test('it proxies role principal read ability to the appropriate ability type', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const user = {
constructor: { modelName: 'user' },
authorized_actions: [],
@@ -65,7 +65,7 @@ module('Unit | Abilities | Role', function (hooks) {
});
test('it throws an error for unknown principal types on principal read check', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const account = {
constructor: { modelName: 'account' },
authorized_actions: ['read'],
@@ -77,7 +77,7 @@ module('Unit | Abilities | Role', function (hooks) {
});
test('can set grant scopes based on authorized_actions', function (assert) {
- const service = this.owner.lookup('service:can');
+ const service = this.owner.lookup('service:abilities');
const model = {
authorized_actions: ['set-grant-scopes'],
};
diff --git a/addons/api/tests/unit/abilities/scope-test.js b/addons/api/tests/unit/abilities/scope-test.js
index a9d48614b6..12d9c062f9 100644
--- a/addons/api/tests/unit/abilities/scope-test.js
+++ b/addons/api/tests/unit/abilities/scope-test.js
@@ -9,10 +9,10 @@ import { setupTest } from 'ember-qunit';
module('Unit | Abilities | Scope', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
});
test('it exists', function (assert) {
const ability = this.owner.lookup('ability:scope');
@@ -23,9 +23,9 @@ module('Unit | Abilities | Scope', function (hooks) {
const model = {
authorized_actions: ['attach-storage-policy'],
};
- assert.true(canService.can('attachStoragePolicy scope', model));
+ assert.true(abilitiesService.can('attachStoragePolicy scope', model));
model.authorized_actions = [];
- assert.false(canService.can('attachStoragePolicy scope', model));
+ assert.false(abilitiesService.can('attachStoragePolicy scope', model));
});
test('it reflects when a given scope may remove a policy in org scope', function (assert) {
@@ -33,8 +33,8 @@ module('Unit | Abilities | Scope', function (hooks) {
authorized_actions: ['detach-storage-policy'],
};
- assert.true(canService.can('detachStoragePolicy scope', model));
+ assert.true(abilitiesService.can('detachStoragePolicy scope', model));
model.authorized_actions = [];
- assert.false(canService.can('detachStoragePolicy scope', model));
+ assert.false(abilitiesService.can('detachStoragePolicy scope', model));
});
});
diff --git a/addons/api/tests/unit/abilities/session-recording-test.js b/addons/api/tests/unit/abilities/session-recording-test.js
index 816578ea84..e46500f5d7 100644
--- a/addons/api/tests/unit/abilities/session-recording-test.js
+++ b/addons/api/tests/unit/abilities/session-recording-test.js
@@ -14,11 +14,11 @@ import {
module('Unit | Ability | session-recording', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
let store;
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
store = this.owner.lookup('service:store');
});
@@ -42,13 +42,13 @@ module('Unit | Ability | session-recording', function (hooks) {
);
assert.true(
- canService.can(
+ abilitiesService.can(
'download session-recording',
recordingWithAuthorizedAction,
),
);
assert.false(
- canService.can(
+ abilitiesService.can(
'download session-recording',
recordingWithoutAuthorizedAction,
),
@@ -70,10 +70,16 @@ module('Unit | Ability | session-recording', function (hooks) {
state: STATE_SESSION_RECORDING_AVAILABLE,
});
assert.false(
- canService.can('delete session-recording', recordingNotinAvaialableState),
+ abilitiesService.can(
+ 'delete session-recording',
+ recordingNotinAvaialableState,
+ ),
);
assert.true(
- canService.can('delete session-recording', recordingInAvailableState),
+ abilitiesService.can(
+ 'delete session-recording',
+ recordingInAvailableState,
+ ),
);
});
@@ -83,7 +89,7 @@ module('Unit | Ability | session-recording', function (hooks) {
});
assert.true(
- canService.can('reapplyStoragePolicy session-recording', recording),
+ abilitiesService.can('reapplyStoragePolicy session-recording', recording),
);
});
});
diff --git a/addons/api/tests/unit/abilities/session-test.js b/addons/api/tests/unit/abilities/session-test.js
index d454c9d83e..a53c0ea629 100644
--- a/addons/api/tests/unit/abilities/session-test.js
+++ b/addons/api/tests/unit/abilities/session-test.js
@@ -15,11 +15,11 @@ import {
module('Unit | Ability | session', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
let store;
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
store = this.owner.lookup('service:store');
});
@@ -34,7 +34,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_ACTIVE,
});
- assert.true(canService.can('read session', session));
+ assert.true(abilitiesService.can('read session', session));
});
test('can read a session that is pending', function (assert) {
@@ -43,7 +43,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_PENDING,
});
- assert.true(canService.can('read session', session));
+ assert.true(abilitiesService.can('read session', session));
});
test('cannot read a session that is not authorized', function (assert) {
@@ -64,10 +64,10 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_TERMINATED,
});
- assert.false(canService.can('read session', activeSession));
- assert.false(canService.can('read session', pendingSession));
- assert.false(canService.can('read session', cancelingSession));
- assert.false(canService.can('read session', terminatedSession));
+ assert.false(abilitiesService.can('read session', activeSession));
+ assert.false(abilitiesService.can('read session', pendingSession));
+ assert.false(abilitiesService.can('read session', cancelingSession));
+ assert.false(abilitiesService.can('read session', terminatedSession));
});
test('cannot read a session that is canceling', function (assert) {
@@ -76,7 +76,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_CANCELING,
});
- assert.false(canService.can('read session', session));
+ assert.false(abilitiesService.can('read session', session));
});
test('cannot read a session that is terminated', function (assert) {
@@ -85,7 +85,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_TERMINATED,
});
- assert.false(canService.can('read session', session));
+ assert.false(abilitiesService.can('read session', session));
});
test('can read a session that has read:self', function (assert) {
@@ -94,7 +94,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_ACTIVE,
});
- assert.true(canService.can('read session', session));
+ assert.true(abilitiesService.can('read session', session));
});
test('can cancel a session that is active', function (assert) {
@@ -103,7 +103,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_ACTIVE,
});
- assert.true(canService.can('cancel session', session));
+ assert.true(abilitiesService.can('cancel session', session));
});
test('can cancel a session that has cancel:self', function (assert) {
@@ -112,7 +112,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_ACTIVE,
});
- assert.true(canService.can('cancel session', session));
+ assert.true(abilitiesService.can('cancel session', session));
});
test('can cancel a session that is pending', function (assert) {
@@ -121,7 +121,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_PENDING,
});
- assert.true(canService.can('cancel session', session));
+ assert.true(abilitiesService.can('cancel session', session));
});
test('cannot cancel a session that is canceling', function (assert) {
@@ -130,7 +130,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_CANCELING,
});
- assert.false(canService.can('cancel session', session));
+ assert.false(abilitiesService.can('cancel session', session));
});
test('cannot cancel a session that is terminated', function (assert) {
@@ -139,7 +139,7 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_TERMINATED,
});
- assert.false(canService.can('cancel session', session));
+ assert.false(abilitiesService.can('cancel session', session));
});
test('cannot cancel a session that is not authorized', function (assert) {
@@ -160,9 +160,9 @@ module('Unit | Ability | session', function (hooks) {
status: STATUS_SESSION_TERMINATED,
});
- assert.false(canService.can('cancel session', activeSession));
- assert.false(canService.can('cancel session', pendingSession));
- assert.false(canService.can('cancel session', cancelingSession));
- assert.false(canService.can('cancel session', terminatedSession));
+ assert.false(abilitiesService.can('cancel session', activeSession));
+ assert.false(abilitiesService.can('cancel session', pendingSession));
+ assert.false(abilitiesService.can('cancel session', cancelingSession));
+ assert.false(abilitiesService.can('cancel session', terminatedSession));
});
});
diff --git a/addons/api/tests/unit/abilities/target-test.js b/addons/api/tests/unit/abilities/target-test.js
index 1f4386da00..96d9b5f1da 100644
--- a/addons/api/tests/unit/abilities/target-test.js
+++ b/addons/api/tests/unit/abilities/target-test.js
@@ -9,55 +9,59 @@ import { setupTest } from 'ember-qunit';
module('Unit | Abilities | Target', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
});
test('it reflects when a given target may connect based on authorized_actions', function (assert) {
const model = {
authorized_actions: ['authorize-session'],
};
- assert.true(canService.can('connect target', model));
+ assert.true(abilitiesService.can('connect target', model));
model.authorized_actions = [];
- assert.false(canService.can('connect target', model));
+ assert.false(abilitiesService.can('connect target', model));
});
test('it reflects when a given target may add host sources', function (assert) {
const model = {
authorized_actions: ['add-host-sources'],
};
- assert.true(canService.can('addHostSources target', model));
+ assert.true(abilitiesService.can('addHostSources target', model));
model.authorized_actions = [];
- assert.false(canService.can('addHostSources target', model));
+ assert.false(abilitiesService.can('addHostSources target', model));
});
test('it reflects when a given target may remove host sources', function (assert) {
const model = {
authorized_actions: ['remove-host-sources'],
};
- assert.true(canService.can('removeHostSources target', model));
+ assert.true(abilitiesService.can('removeHostSources target', model));
model.authorized_actions = [];
- assert.false(canService.can('removeHostSources target', model));
+ assert.false(abilitiesService.can('removeHostSources target', model));
});
test('it reflects when a given target may add brokered credential sources', function (assert) {
const model = {
authorized_actions: ['add-credential-sources'],
};
- assert.true(canService.can('addBrokeredCredentialSources target', model));
+ assert.true(
+ abilitiesService.can('addBrokeredCredentialSources target', model),
+ );
model.authorized_actions = [];
- assert.false(canService.can('addBrokeredCredentialSources target', model));
+ assert.false(
+ abilitiesService.can('addBrokeredCredentialSources target', model),
+ );
});
test('it reflects when a given target may remove credential sources', function (assert) {
const model = {
authorized_actions: ['remove-credential-sources'],
};
- assert.true(canService.can('removeCredentialSources target', model));
+ assert.true(abilitiesService.can('removeCredentialSources target', model));
model.authorized_actions = [];
- assert.false(canService.can('removeCredentialSources target', model));
+ assert.false(abilitiesService.can('removeCredentialSources target', model));
});
test('it reflects when a given ssh target may add injected application credential sources', function (assert) {
@@ -74,16 +78,19 @@ module('Unit | Abilities | Target', function (hooks) {
};
assert.true(
- canService.can('addInjectedApplicationCredentialSources target', model),
+ abilitiesService.can(
+ 'addInjectedApplicationCredentialSources target',
+ model,
+ ),
);
assert.false(
- canService.can(
+ abilitiesService.can(
'addInjectedApplicationCredentialSources target',
modelWithoutAuthorizedActions,
),
);
assert.false(
- canService.can(
+ abilitiesService.can(
'addInjectedApplicationCredentialSources target',
modelWithoutSSHType,
),
diff --git a/addons/api/tests/unit/abilities/user-test.js b/addons/api/tests/unit/abilities/user-test.js
index 814f368c61..9e6eba83db 100644
--- a/addons/api/tests/unit/abilities/user-test.js
+++ b/addons/api/tests/unit/abilities/user-test.js
@@ -14,7 +14,7 @@ import {
module('Unit | Abilities | User', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
let store;
const instances = {
@@ -23,7 +23,7 @@ module('Unit | Abilities | User', function (hooks) {
};
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
store = this.owner.lookup('service:store');
instances.user = store.createRecord('user');
instances.account = store.createRecord('account');
@@ -31,28 +31,28 @@ module('Unit | Abilities | User', function (hooks) {
test('can add accounts to user when authorized and given a known account type', function (assert) {
instances.user.authorized_actions = ['add-accounts'];
- assert.true(canService.can('addAccounts user', instances.user));
+ assert.true(abilitiesService.can('addAccounts user', instances.user));
instances.account.type = TYPE_AUTH_METHOD_OIDC;
assert.true(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = TYPE_AUTH_METHOD_PASSWORD;
assert.true(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = TYPE_AUTH_METHOD_LDAP;
assert.true(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = 'no-such-type';
assert.false(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
@@ -60,28 +60,28 @@ module('Unit | Abilities | User', function (hooks) {
test('cannot add accounts to user when unauthorized', function (assert) {
instances.user.authorized_actions = [];
- assert.false(canService.can('addAccounts user', instances.user));
+ assert.false(abilitiesService.can('addAccounts user', instances.user));
instances.account.type = TYPE_AUTH_METHOD_OIDC;
assert.false(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = TYPE_AUTH_METHOD_PASSWORD;
assert.false(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = TYPE_AUTH_METHOD_LDAP;
assert.false(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = 'no-such-type';
assert.false(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
@@ -89,28 +89,28 @@ module('Unit | Abilities | User', function (hooks) {
test('can remove accounts from user when authorized and given a known account type', function (assert) {
instances.user.authorized_actions = ['remove-accounts'];
- assert.true(canService.can('removeAccounts user', instances.user));
+ assert.true(abilitiesService.can('removeAccounts user', instances.user));
instances.account.type = TYPE_AUTH_METHOD_OIDC;
assert.true(
- canService.can('removeAccount user', instances.user, {
+ abilitiesService.can('removeAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = TYPE_AUTH_METHOD_PASSWORD;
assert.true(
- canService.can('removeAccount user', instances.user, {
+ abilitiesService.can('removeAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = TYPE_AUTH_METHOD_LDAP;
assert.true(
- canService.can('removeAccount user', instances.user, {
+ abilitiesService.can('removeAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = 'no-such-type';
assert.false(
- canService.can('removeAccount user', instances.user, {
+ abilitiesService.can('removeAccount user', instances.user, {
account: instances.account,
}),
);
@@ -118,28 +118,28 @@ module('Unit | Abilities | User', function (hooks) {
test('cannot remove accounts from user when unauthorized', function (assert) {
instances.user.authorized_actions = [];
- assert.false(canService.can('removeAccounts user', instances.user));
+ assert.false(abilitiesService.can('removeAccounts user', instances.user));
instances.account.type = TYPE_AUTH_METHOD_OIDC;
assert.false(
- canService.can('addAccount user', instances.user, {
+ abilitiesService.can('addAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = TYPE_AUTH_METHOD_PASSWORD;
assert.false(
- canService.can('removeAccount user', instances.user, {
+ abilitiesService.can('removeAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = TYPE_AUTH_METHOD_LDAP;
assert.false(
- canService.can('removeAccount user', instances.user, {
+ abilitiesService.can('removeAccount user', instances.user, {
account: instances.account,
}),
);
instances.account.type = 'no-such-type';
assert.false(
- canService.can('removeAccount user', instances.user, {
+ abilitiesService.can('removeAccount user', instances.user, {
account: instances.account,
}),
);
diff --git a/addons/api/tests/unit/abilities/worker-test.js b/addons/api/tests/unit/abilities/worker-test.js
index 7a8fe37ed2..52071cd687 100644
--- a/addons/api/tests/unit/abilities/worker-test.js
+++ b/addons/api/tests/unit/abilities/worker-test.js
@@ -9,7 +9,7 @@ import { setupTest } from 'ember-qunit';
module('Unit | Abilities | Worker', function (hooks) {
setupTest(hooks);
- let canService;
+ let abilitiesService;
let store;
const instances = {
@@ -17,7 +17,7 @@ module('Unit | Abilities | Worker', function (hooks) {
};
hooks.beforeEach(function () {
- canService = this.owner.lookup('service:can');
+ abilitiesService = this.owner.lookup('service:abilities');
store = this.owner.lookup('service:store');
instances.worker = store.createRecord('worker');
});
@@ -27,7 +27,7 @@ module('Unit | Abilities | Worker', function (hooks) {
authorized_collection_actions: { workers: ['create:worker-led'] },
};
assert.true(
- canService.can('createWorkerLed worker', model, {
+ abilitiesService.can('createWorkerLed worker', model, {
collection: 'workers',
}),
);
@@ -38,7 +38,7 @@ module('Unit | Abilities | Worker', function (hooks) {
authorized_collection_actions: { workers: [] },
};
assert.true(
- canService.cannot('createWorkerLed worker', model, {
+ abilitiesService.cannot('createWorkerLed worker', model, {
collection: 'workers',
}),
);
@@ -46,11 +46,13 @@ module('Unit | Abilities | Worker', function (hooks) {
test('can set worker tags', function (assert) {
instances.worker.authorized_actions = ['set-worker-tags'];
- assert.true(canService.can('setWorkerTags worker', instances.worker));
+ assert.true(abilitiesService.can('setWorkerTags worker', instances.worker));
});
test('cannot set worker tags', function (assert) {
instances.worker.authorized_actions = [];
- assert.true(canService.cannot('setWorkerTags worker', instances.worker));
+ assert.true(
+ abilitiesService.cannot('setWorkerTags worker', instances.worker),
+ );
});
});
diff --git a/addons/api/tests/unit/adapters/application-test.js b/addons/api/tests/unit/adapters/application-test.js
index f6cfec180f..adda813bab 100644
--- a/addons/api/tests/unit/adapters/application-test.js
+++ b/addons/api/tests/unit/adapters/application-test.js
@@ -7,7 +7,7 @@ import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import RESTAdapter from '@ember-data/adapter/rest';
import { InvalidError } from '@ember-data/adapter/error';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
import { Response } from 'miragejs';
module('Unit | Adapter | application', function (hooks) {
diff --git a/addons/api/tests/unit/handlers/sqlite-handler-test.js b/addons/api/tests/unit/handlers/sqlite-handler-test.js
index 456daccc3d..a0e9537b98 100644
--- a/addons/api/tests/unit/handlers/sqlite-handler-test.js
+++ b/addons/api/tests/unit/handlers/sqlite-handler-test.js
@@ -7,7 +7,7 @@ import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import SqliteHandler from 'api/handlers/sqlite-handler';
import RequestManager from '@ember-data/request';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
import { faker } from '@faker-js/faker';
import sinon from 'sinon';
import { assert } from '@ember/debug';
diff --git a/addons/api/tests/unit/models/auth-method-test.js b/addons/api/tests/unit/models/auth-method-test.js
index 11c19af704..651452c59f 100644
--- a/addons/api/tests/unit/models/auth-method-test.js
+++ b/addons/api/tests/unit/models/auth-method-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
import {
TYPE_AUTH_METHOD_PASSWORD,
TYPE_AUTH_METHOD_OIDC,
diff --git a/addons/api/tests/unit/models/base-test.js b/addons/api/tests/unit/models/base-test.js
index 8b628e44f7..40c962697e 100644
--- a/addons/api/tests/unit/models/base-test.js
+++ b/addons/api/tests/unit/models/base-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
module('Unit | Model | base', function (hooks) {
setupTest(hooks);
diff --git a/addons/api/tests/unit/models/group-test.js b/addons/api/tests/unit/models/group-test.js
index 12261009f0..daf4427345 100644
--- a/addons/api/tests/unit/models/group-test.js
+++ b/addons/api/tests/unit/models/group-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
module('Unit | Model | group', function (hooks) {
setupTest(hooks);
diff --git a/addons/api/tests/unit/models/host-set-test.js b/addons/api/tests/unit/models/host-set-test.js
index 4f473bbdb2..04a0e621f9 100644
--- a/addons/api/tests/unit/models/host-set-test.js
+++ b/addons/api/tests/unit/models/host-set-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
module('Unit | Model | host set', function (hooks) {
setupTest(hooks);
diff --git a/addons/api/tests/unit/models/role-test.js b/addons/api/tests/unit/models/role-test.js
index 6636753027..6a8095fdef 100644
--- a/addons/api/tests/unit/models/role-test.js
+++ b/addons/api/tests/unit/models/role-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
import {
GRANT_SCOPE_THIS,
GRANT_SCOPE_CHILDREN,
diff --git a/addons/api/tests/unit/models/scope-test.js b/addons/api/tests/unit/models/scope-test.js
index 809e77c677..abf9263fbe 100644
--- a/addons/api/tests/unit/models/scope-test.js
+++ b/addons/api/tests/unit/models/scope-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
module('Unit | Model | scope', function (hooks) {
setupTest(hooks);
diff --git a/addons/api/tests/unit/models/session-recording-test.js b/addons/api/tests/unit/models/session-recording-test.js
index 266e495413..351b48f09b 100644
--- a/addons/api/tests/unit/models/session-recording-test.js
+++ b/addons/api/tests/unit/models/session-recording-test.js
@@ -6,7 +6,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import { TYPE_SESSION_RECORDING_SSH } from 'api/models/session-recording';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
import {
STATE_SESSION_RECORDING_AVAILABLE,
STATE_SESSION_RECORDING_STARTED,
diff --git a/addons/api/tests/unit/models/target-test.js b/addons/api/tests/unit/models/target-test.js
index f625f4c721..06bccfa3d3 100644
--- a/addons/api/tests/unit/models/target-test.js
+++ b/addons/api/tests/unit/models/target-test.js
@@ -5,12 +5,12 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
import {
TYPE_TARGET_TCP,
TYPE_TARGET_SSH,
TYPE_TARGET_RDP,
} from 'api/models/target';
+import { setupMirage } from 'api/test-support/helpers/mirage';
module('Unit | Model | target', function (hooks) {
setupTest(hooks);
diff --git a/addons/api/tests/unit/models/user-test.js b/addons/api/tests/unit/models/user-test.js
index 8c33530ca2..460d8cd84c 100644
--- a/addons/api/tests/unit/models/user-test.js
+++ b/addons/api/tests/unit/models/user-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
module('Unit | Model | user', function (hooks) {
setupTest(hooks);
diff --git a/addons/api/tests/unit/models/worker-test.js b/addons/api/tests/unit/models/worker-test.js
index dc22a60dfd..b54d57e367 100644
--- a/addons/api/tests/unit/models/worker-test.js
+++ b/addons/api/tests/unit/models/worker-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
import { TYPE_WORKER_PKI } from 'api/models/worker';
module('Unit | Model | worker', function (hooks) {
diff --git a/addons/api/tests/unit/serializers/auth-method-test.js b/addons/api/tests/unit/serializers/auth-method-test.js
index 99578e7a35..677b2a3382 100644
--- a/addons/api/tests/unit/serializers/auth-method-test.js
+++ b/addons/api/tests/unit/serializers/auth-method-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
import {
TYPE_AUTH_METHOD_PASSWORD,
diff --git a/addons/auth/package.json b/addons/auth/package.json
index e334117336..71dd4d1d3a 100644
--- a/addons/auth/package.json
+++ b/addons/auth/package.json
@@ -53,7 +53,7 @@
"ember-load-initializers": "^2.1.2",
"ember-page-title": "^8.2.3",
"ember-qunit": "^8.1.0",
- "ember-resolver": "^12.0.1",
+ "ember-resolver": "^13.1.1",
"ember-source": "~5.12.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^6.0.0",
diff --git a/addons/auth/tests/helpers/index.js b/addons/auth/tests/helpers/index.js
index b4c7ee08da..45e41214e9 100644
--- a/addons/auth/tests/helpers/index.js
+++ b/addons/auth/tests/helpers/index.js
@@ -29,7 +29,6 @@ function setupApplicationTest(hooks, options) {
// from other addons:
//
// setupIntl(hooks, 'en-us'); // ember-intl
- // setupMirage(hooks); // ember-cli-mirage
}
function setupRenderingTest(hooks, options) {
diff --git a/addons/core/addon/decorators/confirm.js b/addons/core/addon/decorators/confirm.js
index d4c2e32e1e..b2e7094736 100644
--- a/addons/core/addon/decorators/confirm.js
+++ b/addons/core/addon/decorators/confirm.js
@@ -29,3 +29,4 @@ export function confirm(confirmationTextKey, options) {
};
};
}
+
diff --git a/addons/core/addon/decorators/debounce.js b/addons/core/addon/decorators/debounce.js
index a64d3f21df..8313693afa 100644
--- a/addons/core/addon/decorators/debounce.js
+++ b/addons/core/addon/decorators/debounce.js
@@ -24,3 +24,5 @@ export function debounce(timeToWait, options) {
);
};
}
+
+export default debounce;
diff --git a/addons/core/addon/decorators/notify.js b/addons/core/addon/decorators/notify.js
index ee6454b95b..87a787ab0a 100644
--- a/addons/core/addon/decorators/notify.js
+++ b/addons/core/addon/decorators/notify.js
@@ -116,3 +116,5 @@ export function notifyError(
};
};
}
+
+export default notifySuccess;
diff --git a/addons/core/addon/decorators/resource-filter.js b/addons/core/addon/decorators/resource-filter.js
index e31437a30e..6353d9446b 100644
--- a/addons/core/addon/decorators/resource-filter.js
+++ b/addons/core/addon/decorators/resource-filter.js
@@ -272,3 +272,5 @@ export function resourceFilter({
};
};
}
+
+export default resourceFilter;
diff --git a/addons/core/app/decorators/confirm.js b/addons/core/app/decorators/confirm.js
index 70def98309..059bbe9d48 100644
--- a/addons/core/app/decorators/confirm.js
+++ b/addons/core/app/decorators/confirm.js
@@ -3,4 +3,4 @@
* SPDX-License-Identifier: BUSL-1.1
*/
-export { default } from 'core/decorators/confirm';
+export { confirm, confirm as default } from 'core/decorators/confirm';
diff --git a/addons/core/app/decorators/debounce.js b/addons/core/app/decorators/debounce.js
index aef2d2aa24..7520a18132 100644
--- a/addons/core/app/decorators/debounce.js
+++ b/addons/core/app/decorators/debounce.js
@@ -4,3 +4,4 @@
*/
export { default } from 'core/decorators/debounce';
+export { default as debounce } from 'core/decorators/debounce';
diff --git a/addons/core/app/decorators/notify.js b/addons/core/app/decorators/notify.js
index d8533a1d79..e34afef52e 100644
--- a/addons/core/app/decorators/notify.js
+++ b/addons/core/app/decorators/notify.js
@@ -4,3 +4,4 @@
*/
export { default } from 'core/decorators/notify';
+export { notifySuccess, notifyError } from 'core/decorators/notify';
diff --git a/addons/core/app/utils/seconds-to-duration.js b/addons/core/app/utils/seconds-to-duration.js
index e9862f594f..64dd69b1ae 100644
--- a/addons/core/app/utils/seconds-to-duration.js
+++ b/addons/core/app/utils/seconds-to-duration.js
@@ -3,4 +3,4 @@
* SPDX-License-Identifier: BUSL-1.1
*/
-export { default } from 'core/utils/seconds-to-duration';
+export { secondsToDuration as default } from 'core/utils/seconds-to-duration';
diff --git a/addons/core/index.js b/addons/core/index.js
index 684173c848..7446f57ecf 100644
--- a/addons/core/index.js
+++ b/addons/core/index.js
@@ -38,7 +38,7 @@ module.exports = {
if (this.isDevelopingAddon()) app.options.svg.paths.push(dummyPublicPath);
this.addons.forEach((addon) => {
- if (addon.name === 'ember-inline-svg') addon.included(app);
+ // if (addon.name === 'ember-inline-svg') addon.included(app);
});
},
diff --git a/addons/core/package.json b/addons/core/package.json
index 0f42275a92..951e62f002 100644
--- a/addons/core/package.json
+++ b/addons/core/package.json
@@ -71,7 +71,7 @@
"ember-load-initializers": "^2.1.2",
"ember-page-title": "^8.2.3",
"ember-qunit": "^8.1.0",
- "ember-resolver": "^12.0.1",
+ "ember-resolver": "^13.1.1",
"ember-source": "~5.12.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^6.0.0",
@@ -108,4 +108,4 @@
"*.hbs": "ember-template-lint --fix",
"*.{scss,yaml}": "prettier --write"
}
-}
\ No newline at end of file
+}
diff --git a/addons/core/tests/dummy/config/environment.js b/addons/core/tests/dummy/config/environment.js
index f9bc418c30..edd6b848f4 100644
--- a/addons/core/tests/dummy/config/environment.js
+++ b/addons/core/tests/dummy/config/environment.js
@@ -41,8 +41,8 @@ module.exports = function (environment) {
namespace: 'v1',
},
- 'ember-cli-mirage': {
- directory: '../api/mirage',
+ mirage: {
+ enabled: true,
},
enableConfirmService: false,
diff --git a/addons/core/tests/helpers/index.js b/addons/core/tests/helpers/index.js
index b4c7ee08da..45e41214e9 100644
--- a/addons/core/tests/helpers/index.js
+++ b/addons/core/tests/helpers/index.js
@@ -29,7 +29,6 @@ function setupApplicationTest(hooks, options) {
// from other addons:
//
// setupIntl(hooks, 'en-us'); // ember-intl
- // setupMirage(hooks); // ember-cli-mirage
}
function setupRenderingTest(hooks, options) {
diff --git a/addons/core/tests/unit/authenticators/password-test.js b/addons/core/tests/unit/authenticators/password-test.js
index a0fda881a0..15dda3eec0 100644
--- a/addons/core/tests/unit/authenticators/password-test.js
+++ b/addons/core/tests/unit/authenticators/password-test.js
@@ -5,7 +5,7 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
import { Response } from 'miragejs';
module('Unit | Authenticator | password', function (hooks) {
diff --git a/addons/rose/addon/components/rose/code-editor/toolbar/index.hbs b/addons/rose/addon/components/rose/code-editor/toolbar/index.hbs
index 04e94a7d5b..a8066f92a8 100644
--- a/addons/rose/addon/components/rose/code-editor/toolbar/index.hbs
+++ b/addons/rose/addon/components/rose/code-editor/toolbar/index.hbs
@@ -21,14 +21,12 @@
data-test-code-editor-toolbar-menu-divider
>
{{/if}}
-
Copy code
-
+
\ No newline at end of file
diff --git a/addons/rose/addon/components/rose/form/index.hbs b/addons/rose/addon/components/rose/form/index.hbs
index b4f40b6e3f..8bcf31fdb3 100644
--- a/addons/rose/addon/components/rose/form/index.hbs
+++ b/addons/rose/addon/components/rose/form/index.hbs
@@ -26,16 +26,22 @@
'rose/form/checkbox/group' disabled=this.disabled
)
fieldset=(component 'rose/form/fieldset')
- actions=(component
- (if
- this.showEditToggleButton
+ actions=(if
+ this.showEditToggleButton
+ (component
'rose/form/actions/edit-toggle'
+ submitDisabled=this.disabled
+ cancelDisabled=(if @showEditToggle @disabled this.disabled)
+ cancel=this.handleCancel
+ enableEdit=this.enableEdit
+ )
+ (component
'rose/form/actions'
+ submitDisabled=this.disabled
+ cancelDisabled=(if @showEditToggle @disabled this.disabled)
+ cancel=this.handleCancel
+ enableEdit=this.enableEdit
)
- submitDisabled=this.disabled
- cancelDisabled=(if @showEditToggle @disabled this.disabled)
- cancel=this.handleCancel
- enableEdit=this.enableEdit
)
isEditable=this.isEditable
disabled=this.disabled
diff --git a/addons/rose/package.json b/addons/rose/package.json
index 56e010139b..830e68548f 100644
--- a/addons/rose/package.json
+++ b/addons/rose/package.json
@@ -30,7 +30,7 @@
},
"dependencies": {
"@babel/core": "^7.26.10",
- "@hashicorp/design-system-components": "^4.24.1",
+ "@hashicorp/design-system-components": "^5",
"@hashicorp/design-system-tokens": "^2.3.0",
"@hashicorp/flight-icons": "^3.10.0",
"@nullvoxpopuli/ember-composable-helpers": "^5.2.10",
@@ -68,10 +68,10 @@
"ember-inline-svg": "^1.0.1",
"ember-load-initializers": "^2.1.2",
"ember-maybe-import-regenerator": "^1.0.0",
- "ember-modifier": "^3.2.7",
+ "ember-modifier": "^4.2.0",
"ember-page-title": "^8.2.3",
"ember-qunit": "^8.1.0",
- "ember-resolver": "^12.0.1",
+ "ember-resolver": "^13.1.1",
"ember-source": "~5.12.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^6.0.0",
diff --git a/addons/rose/tests/helpers/index.js b/addons/rose/tests/helpers/index.js
index b4c7ee08da..45e41214e9 100644
--- a/addons/rose/tests/helpers/index.js
+++ b/addons/rose/tests/helpers/index.js
@@ -29,7 +29,6 @@ function setupApplicationTest(hooks, options) {
// from other addons:
//
// setupIntl(hooks, 'en-us'); // ember-intl
- // setupMirage(hooks); // ember-cli-mirage
}
function setupRenderingTest(hooks, options) {
diff --git a/package.json b/package.json
index 46328e6b85..f71d05a0e6 100755
--- a/package.json
+++ b/package.json
@@ -56,7 +56,8 @@
"ember-try-config>package-json": "^10.0.1",
"ember-stargate@^0.6.0>@glimmer/component": "^2.0.0",
"ember-loading>ember-concurrency": "^4.0.0",
- "tmp": "^0.2.5"
+ "tmp": "^0.2.5",
+ "ember-resolver": "^13.1.1"
},
"ignoredBuiltDependencies": [
"@parcel/watcher",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 80067e7616..07fa950a8f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -18,6 +18,7 @@ overrides:
ember-stargate@^0.6.0>@glimmer/component: ^2.0.0
ember-loading>ember-concurrency: ^4.0.0
tmp: ^0.2.5
+ ember-resolver: ^13.1.1
patchedDependencies:
ember-loading:
@@ -58,6 +59,9 @@ importers:
'@ember/string':
specifier: ^4.0.0
version: 4.0.1
+ '@faker-js/faker':
+ specifier: ^8.0.2
+ version: 8.4.1
'@sqlite.org/sqlite-wasm':
specifier: ^3.49.1-build4
version: 3.49.1-build4
@@ -77,29 +81,35 @@ importers:
specifier: ^2.10.0
version: 2.10.0(@glint/template@1.5.2)(webpack@5.99.8(esbuild@0.25.9))
ember-can:
- specifier: ^4.2.0
- version: 4.2.0(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ specifier: ^8.0.0
+ version: 8.0.0(@babel/core@7.27.1)(@ember/string@4.0.1)(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-resolver@13.1.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
ember-cli-babel:
specifier: ^8.2.0
version: 8.2.0(@babel/core@7.27.1)
ember-cli-htmlbars:
specifier: ^6.3.0
version: 6.3.0
- ember-cli-mirage:
- specifier: ^3.0.3
- version: 3.0.4(4aae64382352ae0e9635b2848df9b5e9)
ember-data:
specifier: ~5.3.12
- version: 5.3.13(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))(qunit@2.24.1)
+ version: 5.3.13(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))(qunit@2.24.1)
+ ember-inflector:
+ specifier: ^6.0.0
+ version: 6.0.0(@babel/core@7.27.1)
esbuild:
specifier: ^0.25.4
version: 0.25.9
+ js-bexpr:
+ specifier: hashicorp/js-bexpr#9b4a4b54d85eba67fdfc0990133d1518d890b1e1
+ version: https://codeload.github.com/hashicorp/js-bexpr/tar.gz/9b4a4b54d85eba67fdfc0990133d1518d890b1e1
miragejs:
specifier: ^0.1.48
version: 0.1.48
promise-worker-bi:
specifier: ^5.0.1
version: 5.0.1
+ sinon:
+ specifier: ^19.0.2
+ version: 19.0.5
tracked-built-ins:
specifier: ^4.0.0
version: 4.0.0(@babel/core@7.27.1)
@@ -125,9 +135,6 @@ importers:
'@embroider/test-setup':
specifier: ^4.0.0
version: 4.0.0
- '@faker-js/faker':
- specifier: ^8.0.2
- version: 8.4.1
'@glimmer/component':
specifier: ^2.0.0
version: 2.0.0
@@ -174,8 +181,8 @@ importers:
specifier: ^8.1.0
version: 8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1)
ember-resolver:
- specifier: ^12.0.1
- version: 12.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ specifier: ^13.1.1
+ version: 13.1.1
ember-source:
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.8(esbuild@0.25.9))
@@ -203,9 +210,6 @@ importers:
eslint-plugin-qunit:
specifier: ^8.1.2
version: 8.1.2(eslint@8.57.1)
- js-bexpr:
- specifier: hashicorp/js-bexpr#9b4a4b54d85eba67fdfc0990133d1518d890b1e1
- version: https://codeload.github.com/hashicorp/js-bexpr/tar.gz/9b4a4b54d85eba67fdfc0990133d1518d890b1e1
loader.js:
specifier: ^4.7.0
version: 4.7.0
@@ -218,9 +222,6 @@ importers:
qunit-dom:
specifier: ^3.2.1
version: 3.4.0
- sinon:
- specifier: ^19.0.2
- version: 19.0.5
webpack:
specifier: ^5.95.0
version: 5.99.8(esbuild@0.25.9)
@@ -307,8 +308,8 @@ importers:
specifier: ^8.1.0
version: 8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1)
ember-resolver:
- specifier: ^12.0.1
- version: 12.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ specifier: ^13.1.1
+ version: 13.1.1
ember-source:
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.8(esbuild@0.25.9))
@@ -482,8 +483,8 @@ importers:
specifier: ^8.1.0
version: 8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1)
ember-resolver:
- specifier: ^12.0.1
- version: 12.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ specifier: ^13.1.1
+ version: 13.1.1
ember-source:
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.8(esbuild@0.25.9))
@@ -545,8 +546,8 @@ importers:
specifier: ^7.26.10
version: 7.27.1
'@hashicorp/design-system-components':
- specifier: ^4.24.1
- version: 4.24.1(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-basic-dropdown@8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ specifier: ^5
+ version: 5.0.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-basic-dropdown@8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9))))(ember-engines@0.12.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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
'@hashicorp/design-system-tokens':
specifier: ^2.3.0
version: 2.3.0
@@ -654,8 +655,8 @@ importers:
specifier: ^1.0.0
version: 1.0.0
ember-modifier:
- specifier: ^3.2.7
- version: 3.2.7(@babel/core@7.27.1)
+ specifier: ^4.2.0
+ version: 4.2.2(@babel/core@7.27.1)
ember-page-title:
specifier: ^8.2.3
version: 8.2.4(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
@@ -663,8 +664,8 @@ importers:
specifier: ^8.1.0
version: 8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1)
ember-resolver:
- specifier: ^12.0.1
- version: 12.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ specifier: ^13.1.1
+ version: 13.1.1
ember-source:
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.8(esbuild@0.25.9))
@@ -770,12 +771,24 @@ importers:
'@babel/runtime':
specifier: 7.27.6
version: 7.27.6
+ api:
+ specifier: workspace:*
+ version: link:../../addons/api
+ core:
+ specifier: workspace:*
+ version: link:../../addons/core
+ ember-engines:
+ specifier: ^0.12.0
+ version: 0.12.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.8(esbuild@0.25.9)))
ember-named-blocks-polyfill:
specifier: ^0.2.5
version: 0.2.5
lodash:
specifier: ^4.17.21
version: 4.17.21
+ miragejs:
+ specifier: ^0.1.48
+ version: 0.1.48
uuid:
specifier: ^11.0.3
version: 11.1.0
@@ -789,6 +802,9 @@ importers:
'@babel/plugin-proposal-decorators':
specifier: ^7.24.7
version: 7.27.1(@babel/core@7.27.1)
+ '@babel/plugin-transform-runtime':
+ specifier: ^7.26.9
+ version: 7.27.1(@babel/core@7.27.1)
'@ember/optional-features':
specifier: ^2.1.0
version: 2.2.0
@@ -801,9 +817,21 @@ importers:
'@ember/test-helpers':
specifier: ^5.2.1
version: 5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2)
+ '@embroider/compat':
+ specifier: ^4.0.3
+ version: 4.1.10(@embroider/core@4.2.8(@glint/template@1.5.2))(@glint/template@1.5.2)
+ '@embroider/config-meta-loader':
+ specifier: ^1.0.0
+ version: 1.0.0
+ '@embroider/core':
+ specifier: ^4.0.3
+ version: 4.2.8(@glint/template@1.5.2)
'@embroider/macros':
specifier: ^1.18.0
version: 1.18.0(@glint/template@1.5.2)
+ '@embroider/vite':
+ specifier: ^1.1.1
+ version: 1.4.2(@embroider/core@4.2.8(@glint/template@1.5.2))(@glint/template@1.5.2)(rollup@4.53.3)(vite@6.4.1(@types/node@22.15.17)(jiti@2.4.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.5.1))
'@faker-js/faker':
specifier: ^8.0.2
version: 8.4.1
@@ -816,18 +844,21 @@ importers:
'@hashicorp/ember-asciinema-player':
specifier: https://github.com/hashicorp/ember-asciinema-player.git#e047a096039cff70234c232efe75dcad74c6358a
version: https://codeload.github.com/hashicorp/ember-asciinema-player/tar.gz/e047a096039cff70234c232efe75dcad74c6358a(@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.8(esbuild@0.25.9)))(webpack@5.99.8(esbuild@0.25.9))
+ '@rollup/plugin-babel':
+ specifier: ^6.0.4
+ version: 6.1.0(@babel/core@7.27.1)(rollup@4.53.3)
'@warp-drive/build-config':
specifier: ^0.0.2
version: 0.0.2(@glint/template@1.5.2)
- broccoli-asset-rev:
- specifier: ^3.0.0
- version: 3.0.0
+ babel-plugin-ember-template-compilation:
+ specifier: ^2.3.0
+ version: 2.4.1
concurrently:
specifier: ^9.1.0
version: 9.1.0
- core:
- specifier: workspace:*
- version: link:../../addons/core
+ decorator-transforms:
+ specifier: ^2.3.0
+ version: 2.3.0(@babel/core@7.27.1)
doctoc:
specifier: ^2.2.0
version: 2.2.0
@@ -843,54 +874,51 @@ importers:
ember-basic-dropdown:
specifier: ^8.8.0
version: 8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9)))
+ ember-browser-services:
+ specifier: ^4.0.3
+ version: 4.0.4
+ ember-can:
+ specifier: ^8.0.0
+ version: 8.0.0(@babel/core@7.27.1)(@ember/string@4.0.1)(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-resolver@13.1.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
ember-cli:
specifier: ~5.12.0
version: 5.12.0(handlebars@4.7.8)(underscore@1.13.7)
ember-cli-babel:
specifier: ^8.2.0
version: 8.2.0(@babel/core@7.27.1)
- ember-cli-clean-css:
- specifier: ^3.0.0
- version: 3.0.0
ember-cli-code-coverage:
specifier: ^1.0.3
version: 1.0.3
ember-cli-content-security-policy:
specifier: ^2.0.3
version: 2.0.3
- ember-cli-dependency-checker:
- specifier: ^3.3.2
- version: 3.3.3(ember-cli@5.12.0(handlebars@4.7.8)(underscore@1.13.7))
ember-cli-flash:
specifier: ^6.0.0
version: 6.0.0(@ember/string@4.0.1)(@embroider/macros@1.18.0(@glint/template@1.5.2))(ember-modifier@4.2.2(@babel/core@7.27.1))
ember-cli-htmlbars:
specifier: ^6.3.0
version: 6.3.0
- ember-cli-inject-live-reload:
- specifier: ^2.1.0
- version: 2.1.0
ember-cli-sass:
specifier: ^11.0.1
version: 11.0.1
- ember-cli-sri:
- specifier: ^2.1.1
- version: 2.1.1
- ember-cli-terser:
- specifier: ^4.0.2
- version: 4.0.2
ember-concurrency:
specifier: ^4.0.3
version: 4.0.4(@babel/core@7.27.1)(@glint/template@1.5.2)
ember-exam:
specifier: ^8.0.0
- version: 8.0.0(@glint/template@1.5.2)(ember-qunit@8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1))(qunit@2.24.1)(webpack@5.99.8(esbuild@0.25.9))
+ version: 8.0.0(@glint/template@1.5.2)(ember-qunit@9.0.4(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1))(qunit@2.24.1)(webpack@5.99.8(esbuild@0.25.9))
ember-inline-svg:
specifier: ^1.0.1
version: 1.0.1
+ ember-intl:
+ specifier: ^7.1.8
+ version: 7.1.8(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glint/template@1.5.2)(typescript@5.8.3)(webpack@5.99.8(esbuild@0.25.9))
ember-load-initializers:
- specifier: ^2.1.2
- version: 2.1.2(@babel/core@7.27.1)
+ specifier: ^3.0.0
+ 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.8(esbuild@0.25.9)))
+ ember-loading:
+ specifier: ^2.0.0
+ version: 2.0.0(patch_hash=7d97519ce1955a5130edf885afb18c05d7253e2055b1b60cdcf6efc64cbdbff3)(@babel/core@7.27.1)(@glint/template@1.5.2)
ember-modifier:
specifier: ^4.2.0
version: 4.2.2(@babel/core@7.27.1)
@@ -901,11 +929,14 @@ importers:
specifier: ^8.11.0
version: 8.12.0(@babel/core@7.27.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-basic-dropdown@8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9))))(ember-concurrency@4.0.4(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))
ember-qunit:
- specifier: ^8.1.0
- version: 8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1)
+ specifier: ^9.0.0
+ version: 9.0.4(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1)
ember-resolver:
- specifier: ^12.0.1
- version: 12.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ specifier: ^13.1.1
+ version: 13.1.1
+ ember-simple-auth:
+ specifier: ^6.1.0
+ version: 6.1.0(@babel/core@7.27.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(eslint@8.57.1)
ember-source:
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.8(esbuild@0.25.9))
@@ -933,9 +964,6 @@ importers:
js-bexpr:
specifier: hashicorp/js-bexpr#9b4a4b54d85eba67fdfc0990133d1518d890b1e1
version: https://codeload.github.com/hashicorp/js-bexpr/tar.gz/9b4a4b54d85eba67fdfc0990133d1518d890b1e1
- loader.js:
- specifier: ^4.7.0
- version: 4.7.0
postcss:
specifier: ^8.4.31
version: 8.5.3
@@ -966,9 +994,9 @@ importers:
tracked-built-ins:
specifier: ^4.0.0
version: 4.0.0(@babel/core@7.27.1)
- webpack:
- specifier: ^5.95.0
- version: 5.99.8(esbuild@0.25.9)
+ vite:
+ specifier: ^6.0.0
+ version: 6.4.1(@types/node@22.15.17)(jiti@2.4.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.5.1)
ui/desktop:
dependencies:
@@ -1109,8 +1137,8 @@ importers:
specifier: ^8.1.0
version: 8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1)
ember-resolver:
- specifier: ^12.0.1
- version: 12.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ specifier: ^13.1.1
+ version: 13.1.1
ember-source:
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.8(esbuild@0.25.9))
@@ -1193,6 +1221,9 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
+ '@asamuzakjp/css-color@3.2.0':
+ resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==}
+
'@babel/code-frame@7.27.1':
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
@@ -1373,6 +1404,11 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
+ '@babel/plugin-syntax-dynamic-import@7.8.3':
+ resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
'@babel/plugin-syntax-import-assertions@7.27.1':
resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==}
engines: {node: '>=6.9.0'}
@@ -1739,6 +1775,10 @@ packages:
resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==}
engines: {node: '>=6.9.0'}
+ '@babel/runtime@7.28.4':
+ resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/template@7.27.2':
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
engines: {node: '>=6.9.0'}
@@ -1805,16 +1845,44 @@ packages:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
+ '@csstools/color-helpers@5.1.0':
+ resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==}
+ engines: {node: '>=18'}
+
+ '@csstools/css-calc@2.1.4':
+ resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^3.0.5
+ '@csstools/css-tokenizer': ^3.0.4
+
+ '@csstools/css-color-parser@3.1.0':
+ resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@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}
@@ -2060,6 +2128,16 @@ packages:
'@glint/template':
optional: true
+ '@ember/render-modifiers@3.0.0':
+ resolution: {integrity: sha512-gJztS8dI7Jt8ohFQptEDJAgpl9DG84IpqwQoR1JDpVIBy2uLbf8KFD6S3h3LfyMsgJce6G38cOvyQv6BDgcnsA==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@glint/template': ^1.0.2
+ ember-source: '>= 4.0.0'
+ peerDependenciesMeta:
+ '@glint/template':
+ optional: true
+
'@ember/string@4.0.1':
resolution: {integrity: sha512-VWeng8BSWrIsdPfffOQt/bKwNKJL7+37gPFh/6iZZ9bke+S83kKqkS30poo4bTGfRcMnvAE0ie7txom+iDu81Q==}
@@ -2077,6 +2155,20 @@ packages:
resolution: {integrity: sha512-gcJuHiXgnrzaU8NyU+2bMbtS6PNOr5v5B8OXBqaBvTCsMpXLvKo8OBOQFCoUN0rPX2J6VaFqrbi/371sMvzZug==}
engines: {node: 12.* || 14.* || >= 16}
+ '@embroider/compat@4.1.10':
+ resolution: {integrity: sha512-GtANRyjHuU8FQoBukPBqATWHb8Ck92FLqWc8uWGNyVHX86aInvXJyh947/rpVGi0vzrFJv5u3AEsp5a6/JPg1g==}
+ engines: {node: 12.* || 14.* || >= 16}
+ peerDependencies:
+ '@embroider/core': ^4.2.7
+
+ '@embroider/config-meta-loader@1.0.0':
+ resolution: {integrity: sha512-qznkdjgEGPe6NM94hZNXvOm/WhrJwBh8FtSQZ+nGjh9TOjY42tOiTEevFuM0onNXUn6bpdGzmjwKo2xY2jxQxQ==}
+ engines: {node: 12.* || 14.* || >= 16}
+
+ '@embroider/core@4.2.8':
+ resolution: {integrity: sha512-sz7FQLhqeMK1KOx7F+MobMYD6VXURfMZsDDqVxDkeGefdtCiJF+JklMKQLJJH91kxnOkTS+y3MuFTeiOr/ZQuw==}
+ engines: {node: 12.* || 14.* || >= 16}
+
'@embroider/macros@1.18.0':
resolution: {integrity: sha512-KanP80XxNK4bmQ1HKTcUjy/cdCt9n7knPMLK1vzHdOFymACHo+GbhgUjXjYdOCuBTv+ZwcjL2P2XDmBcYS9r8g==}
engines: {node: 12.* || 14.* || >= 16}
@@ -2095,6 +2187,19 @@ packages:
'@glint/template':
optional: true
+ '@embroider/macros@1.19.4':
+ resolution: {integrity: sha512-x4wrnkE6fPN6mOyJeJv2I+lpKE2pHPq25S8bCiRJJb3H3RyiTm2LjSeB4AOVTi8YUjiWToI4PBgZOtx44hM4LA==}
+ engines: {node: 12.* || 14.* || >= 16}
+ peerDependencies:
+ '@glint/template': ^1.0.0
+ peerDependenciesMeta:
+ '@glint/template':
+ optional: true
+
+ '@embroider/reverse-exports@0.2.0':
+ resolution: {integrity: sha512-WFsw8nQpHZiWGEDYpa/A79KEFfTisqteXbY+jg9eZiww1r1G+LZvsmdszDp86TkotUSCqrMbK/ewn0jR1CJmqg==}
+ engines: {node: 12.* || 14.* || >= 16}
+
'@embroider/shared-internals@2.9.0':
resolution: {integrity: sha512-8untWEvGy6av/oYibqZWMz/yB+LHsKxEOoUZiLvcpFwWj2Sipc0DcXeTJQZQZ++otNkLCWyDrDhOLrOkgjOPSg==}
engines: {node: 12.* || 14.* || >= 16}
@@ -2135,6 +2240,12 @@ packages:
'@glint/template':
optional: true
+ '@embroider/vite@1.4.2':
+ resolution: {integrity: sha512-tYxaQKmi9cA+Jwy5nwtVe6KUEhkIWrd/0WUVORfLDTWna2DjYOMezmUEvAJA0raINCYrRu+yotdri3Bj+p/veA==}
+ peerDependencies:
+ '@embroider/core': ^4.2.8
+ vite: '>= 5.2.0'
+
'@esbuild/aix-ppc64@0.25.9':
resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
engines: {node: '>=18'}
@@ -2465,11 +2576,12 @@ packages:
'@handlebars/parser@2.0.0':
resolution: {integrity: sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==}
- '@hashicorp/design-system-components@4.24.1':
- resolution: {integrity: sha512-rcRbBKc9MWngtVTRKr1i0ixbQypj4tEF8ZnsFrUVZLm7CMS8R5/+cfSu3pgbPriOOqZDCx7qAhNqAeTim4AYag==}
+ '@hashicorp/design-system-components@5.0.0':
+ resolution: {integrity: sha512-e9EJo62qgHFYsm1b7pWMZFXnLoTM+nosLbxAlg8K0My34Ns1x5f29rPov5nyXF8NR+aGU6UmKOOPOjksstFmVg==}
engines: {node: '>= 18'}
peerDependencies:
'@ember/string': ^3.1.1 || ^4.0.0
+ ember-basic-dropdown: ^7.3.0 || ^8.6.1
ember-engines: '>= 0.11.0'
ember-intl: ^7.3.0
peerDependenciesMeta:
@@ -2494,8 +2606,8 @@ packages:
'@hashicorp/flight-icons@3.10.0':
resolution: {integrity: sha512-wtufYZ5Ntihmy+vbR0dM+Q7X56xPX/dtpcfVs4nCRgvYZZic5ayqE8tefs2FGtxauH6zuzzVk48s5S6psv9g+g==}
- '@hashicorp/flight-icons@3.14.0':
- resolution: {integrity: sha512-nyLDApaZsAHpAf2sRNwYX1MnJQU9UI3euiwE6wHPl2l/+Yt8wba1oXkmWL/Ptc4QgJxxnRUUhf66jGcB/AIOyQ==}
+ '@hashicorp/flight-icons@4.0.0':
+ resolution: {integrity: sha512-N7AqnArvNZtMEzKTcrne2rfjspq8DdUGSye4b12cUgplMH+2trQd/XErHEu+ycY3Dt6ssS/sQFpP8m7WNn/nSg==}
'@humanwhocodes/config-array@0.13.0':
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
@@ -2810,6 +2922,138 @@ packages:
peerDependencies:
prettier: ^3.0.0
+ '@rollup/plugin-babel@6.1.0':
+ resolution: {integrity: sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA==}
+ 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:
+ '@types/babel__core':
+ optional: true
+ rollup:
+ optional: true
+
+ '@rollup/pluginutils@5.3.0':
+ resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/rollup-android-arm-eabi@4.53.3':
+ resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.53.3':
+ resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.53.3':
+ resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.53.3':
+ resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.53.3':
+ resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.53.3':
+ resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.53.3':
+ resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.53.3':
+ resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-gnu@4.53.3':
+ resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-musl@4.53.3':
+ resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-loong64-gnu@4.53.3':
+ resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==}
+ cpu: [loong64]
+ os: [linux]
+
+ '@rollup/rollup-linux-ppc64-gnu@4.53.3':
+ resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.53.3':
+ resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-musl@4.53.3':
+ resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.53.3':
+ resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-gnu@4.53.3':
+ resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-musl@4.53.3':
+ resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-openharmony-arm64@4.53.3':
+ resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rollup/rollup-win32-arm64-msvc@4.53.3':
+ resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.53.3':
+ resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-gnu@4.53.3':
+ resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==}
+ cpu: [x64]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.53.3':
+ resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==}
+ cpu: [x64]
+ os: [win32]
+
'@scalvert/ember-setup-middleware-reporter@0.1.1':
resolution: {integrity: sha512-C5DHU6YlKaISB5utGQ+jpsMB57ZtY0uZ8UkD29j855BjqG6eJ98lhA2h/BoJbyPw89RKLP1EEXroy9+5JPoyVw==}
engines: {node: 12.* || >= 14}
@@ -2871,6 +3115,9 @@ packages:
'@tootallnate/quickjs-emscripten@0.23.0':
resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
+ '@types/babel__code-frame@7.0.6':
+ resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==}
+
'@types/body-parser@1.19.5':
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
@@ -2901,6 +3148,9 @@ packages:
'@types/estree@1.0.7':
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+
'@types/express-serve-static-core@4.19.6':
resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
@@ -3120,6 +3370,11 @@ packages:
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ acorn@5.7.4:
+ resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
acorn@8.14.1:
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
engines: {node: '>=0.4.0'}
@@ -3170,6 +3425,9 @@ packages:
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+ amd-name-resolver@0.0.6:
+ resolution: {integrity: sha512-W2trar3LgeKV/yB6ZRD3Iw7MlhrKjLMVSNAatWNNYsn4w+iSfbmA66VB+jQjVIfvzHPZicnHObAvflMkoVtjAQ==}
+
amd-name-resolver@1.3.1:
resolution: {integrity: sha512-26qTEWqZQ+cxSYygZ4Cf8tsjDBLceJahhtewxtKZA3SRa4PluuqYCuheemDQD+7Mf5B7sr+zhTDWAHDh02a1Dw==}
engines: {node: 6.* || 8.* || >= 10.*}
@@ -3379,6 +3637,9 @@ packages:
'@babel/core': ^7.0.0
webpack: '>=2'
+ babel-plugin-compact-reexports@1.1.0:
+ resolution: {integrity: sha512-+KgjNJ5yMeZzJxYZdLEy9m82m92aL7FLvNJcK6dYJbW06t+UTpFJ2FVSs35zMfURcPnrQELYhLG4VC+kt/4gvw==}
+
babel-plugin-debug-macros@0.2.0:
resolution: {integrity: sha512-Wpmw4TbhR3Eq2t3W51eBAQSdKlr+uAyF0GI4GtPfMCD12Y4cIdpKC9l0RjNTH/P9isFypSqqewMPm7//fnZlNA==}
engines: {node: '>=4'}
@@ -3391,6 +3652,12 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
+ babel-plugin-debug-macros@2.0.0:
+ resolution: {integrity: sha512-7ZaLtXIY01PAPhLyjV3OACePnl+X5iQO7F4O/sOJHTfMf/36zyu14uVUxNiZmOUntYBsyT/VVplf1LrH6NcwvQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
babel-plugin-ember-data-packages-polyfill@0.1.2:
resolution: {integrity: sha512-kTHnOwoOXfPXi00Z8yAgyD64+jdSXk3pknnS7NlqnCKAU6YDkXZ4Y7irl66kaZjZn0FBBt0P4YOZFZk85jYOww==}
engines: {node: 6.* || 8.* || 10.* || >= 12.*}
@@ -3403,6 +3670,10 @@ packages:
resolution: {integrity: sha512-n+ktQ3JeyWrpRutSyPn2PsHeH+A94SVm+iUoogzf9VUqpP47FfWem24gpQXhn+p6+x5/BpuFJXMLXWt7ZoYAKA==}
engines: {node: '>= 12.*'}
+ babel-plugin-ember-template-compilation@3.0.1:
+ resolution: {integrity: sha512-3fUgnv+azabsl2PMd+SpkV8E7vvp7oRLaXv+OJIe36G3niSVYDKJ+7n6WaPyh+z7gqeAKSBj7Bdc5dYbhEMsgQ==}
+ engines: {node: '>= 18.*'}
+
babel-plugin-htmlbars-inline-precompile@3.2.0:
resolution: {integrity: sha512-IUeZmgs9tMUGXYu1vfke5I18yYJFldFGdNFQOWslXTnDWXzpwPih7QFduUqvT+awDpDuNtXpdt5JAf43Q1Hhzg==}
engines: {node: 8.* || 10.* || >= 12.*}
@@ -3440,6 +3711,10 @@ packages:
babel-plugin-syntax-dynamic-import@6.18.0:
resolution: {integrity: sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==}
+ babylon@6.18.0:
+ resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==}
+ hasBin: true
+
backbone@1.6.1:
resolution: {integrity: sha512-YQzWxOrIgL6BoFnZjThVN99smKYhyEXXFyJJ2lsF1wJLyo4t+QjmkLrH8/fN22FZ4ykF70Xq7PgTugJVR4zS9Q==}
@@ -3481,6 +3756,9 @@ packages:
resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==}
engines: {node: '>=0.8'}
+ bind-decorator@1.0.11:
+ resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==}
+
bl@4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
@@ -3556,6 +3834,10 @@ packages:
broccoli-debug@0.6.5:
resolution: {integrity: sha512-RIVjHvNar9EMCLDW/FggxFRXqpjhncM/3qq87bn/y+/zR9tqEkHvTqbyOc4QnB97NO2m6342w4wGkemkaeOuWg==}
+ broccoli-dependency-funnel@2.1.2:
+ resolution: {integrity: sha512-k6b0OnNuRcUnJ9TXA0o6RvqXOkTQ6APKoLsZeMJHAe/YjLjE1uTlfw4Z88GfGmi8gwtLHdnkrhBoJ7YdIkcVZA==}
+ engines: {node: '>= 6.0.0'}
+
broccoli-file-creator@2.1.1:
resolution: {integrity: sha512-YpjOExWr92C5vhnK0kmD81kM7U09kdIRZk9w4ZDCDHuHXW+VE/x6AGEOQQW3loBQQ6Jk+k+TSm8dESy4uZsnjw==}
engines: {node: ^4.5 || 6.* || >= 7.*}
@@ -3672,6 +3954,13 @@ packages:
resolution: {integrity: sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg==}
engines: {node: 8.* || >= 10.*}
+ browserslist-to-esbuild@2.1.1:
+ resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==}
+ engines: {node: '>=18'}
+ hasBin: true
+ peerDependencies:
+ browserslist: '*'
+
browserslist@4.24.5:
resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
@@ -3781,6 +4070,10 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
character-entities-legacy@1.1.4:
resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
@@ -4345,6 +4638,10 @@ packages:
resolution: {integrity: sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==}
engines: {node: '>=0.10.0'}
+ cssstyle@4.6.0:
+ resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==}
+ engines: {node: '>=18'}
+
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@@ -4355,6 +4652,10 @@ packages:
resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==}
engines: {node: '>= 14'}
+ data-urls@5.0.0:
+ resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
+ engines: {node: '>=18'}
+
data-view-buffer@1.0.2:
resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
engines: {node: '>= 0.4'}
@@ -4600,15 +4901,16 @@ packages:
electron-to-chromium@1.5.152:
resolution: {integrity: sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==}
- ember-a11y-refocus@4.1.4:
- resolution: {integrity: sha512-51tGk30bskObL1LsGZRxzqIxgZhIE8ZvvDYcT1OWphxZlq00+Arz57aMLS4Vz4qhSE40BfeN2qFYP/gXtp9qDA==}
- engines: {node: 16.* || >= 18.*}
-
ember-a11y-refocus@5.0.0:
resolution: {integrity: sha512-0PH/iZNeTkuhZjvE5Y3CllEGnh8Ej8KYrTcatdyDWzV8pQOZO/Meo/JppKNUsISAyfuENMJafREHWdNBvS6g5w==}
peerDependencies:
ember-source: '>= 4.12.0'
+ ember-a11y-refocus@5.1.0:
+ resolution: {integrity: sha512-Z6wl3bAMvDuFxQQnppbsT4RY5tUAlKRQo1PVqsFYRYE8gyRWDlLqR2Stspp4rdkXaaFn2JpNA3zzbIy1aTG5GA==}
+ peerDependencies:
+ ember-source: '>= 4.12.0'
+
ember-a11y-testing@7.1.2:
resolution: {integrity: sha512-V30dZgfj3itq+4/H78livBN1X4wvYeCJnsPTnQFqZfgrQyEfCYLL6d96W0T4UoahQao+PFzJcR2P/CpMU9j5nw==}
engines: {node: 16.* || >= 18}
@@ -4623,6 +4925,10 @@ packages:
resolution: {integrity: sha512-hWpUz0eiNkWzi3FgHW5QU6LyCDyUlTWwuIROHluEKZoa9m6LJVXbb/EVFgIG3FkAib6a5Ie00WvkXEZFXxh3+A==}
engines: {node: 14.* || >= 16}
+ ember-asset-loader@1.0.0:
+ resolution: {integrity: sha512-JXr9bEkkzXiamW2kMk36U2VugLzo4MeoTQGRxvpNFqU1oldUMzm/yFPVvtjsVOjishH4pVwQuOK9Sjrx9E2xZg==}
+ engines: {node: 14.* || 16.* || >= 17}
+
ember-assign-helper@0.5.1:
resolution: {integrity: sha512-dXHbwlBTJWVjG7k4dhVrT3Gh4nQt6rC2LjyltuPztIhQ+YcPYHMqAPJRJYLGZu16aPSJbaGF8K+u51i7CLzqlQ==}
@@ -4639,9 +4945,13 @@ packages:
ember-browser-services@4.0.4:
resolution: {integrity: sha512-ZjQPD7wlqMhHIq+uuesW+SWYCN+TsQtyY2Fy7QpluxEQff/j2JHiQAk3K0GUtEwef1gJ8/dRsBqSnaG2/Fxhmg==}
- ember-can@4.2.0:
- resolution: {integrity: sha512-hiaWZspmI4zWeWmmFWgyw1+yEStSo6edGRHHUXCUPR+vBoqlT/hEfmndlfDGso2GFP8IV59DORMVY0KReMcO+w==}
- engines: {node: 12.* || 14.* || >= 16}
+ ember-can@8.0.0:
+ resolution: {integrity: sha512-JsS7tJ7sg52p8jPY2ND9uqHdEpAB+RpJLN8+lo7t5j65JgBX5gWXCCJ8seJ28AE278Im2ok0OoQBv5VXWqkvOw==}
+ peerDependencies:
+ '@ember/string': '>= 3.0.1'
+ ember-inflector: '>= 5.0.1'
+ ember-resolver: ^13.1.1
+ ember-source: '>= 4.12.0'
ember-cli-babel-plugin-helpers@1.1.1:
resolution: {integrity: sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==}
@@ -4714,26 +5024,6 @@ packages:
resolution: {integrity: sha512-QkLGcYv1WRK35g4MWu/uIeJ5Suk2eJXKtZ+8s+qE7C9INmpCPyPxzaqZABquYzcWNzIdw6kYwz3NWAFdKYFxwg==}
engines: {node: ^4.5 || 6.* || >= 7.*}
- ember-cli-mirage@3.0.4:
- resolution: {integrity: sha512-JpfZJIrvUAcwOVQ44aAzlYSbGiO4/nqnVAbzAKU4kztqgYvYGBa27FX5WxfpIGZMBdnt6OKh78rsimChWo6f/Q==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- '@ember-data/model': '*'
- '@ember/test-helpers': '*'
- ember-data: '*'
- ember-qunit: '*'
- ember-source: '>= 3.28.0'
- miragejs: ^0.1.43
- peerDependenciesMeta:
- '@ember-data/model':
- optional: true
- '@ember/test-helpers':
- optional: true
- ember-data:
- optional: true
- ember-qunit:
- optional: true
-
ember-cli-normalize-entity-name@1.0.0:
resolution: {integrity: sha512-rF4P1rW2P1gVX1ynZYPmuIf7TnAFDiJmIUFI1Xz16VYykUAyiOCme0Y22LeZq8rTzwBMiwBwoE3RO4GYWehXZA==}
@@ -4861,6 +5151,16 @@ packages:
resolution: {integrity: sha512-3slTltQV5ke53t3YVP2GYoswsQ6y+lhuVzKmt09tbEx91DapG8I/xa8W5OA0StvcQlavL3/vHrz/vCQEFs8bBA==}
engines: {node: 14.* || 16.* || >= 18}
+ ember-engines@0.12.0:
+ resolution: {integrity: sha512-AsABgJpkrCoC2y/F1cNmcQI5Ia2VhlW2jyw5pAU1g3/XpeIJGV/4xRMbqNGwvs1KRxu78tW/ll20zVNl58N2jg==}
+ engines: {node: 16.* || 18.* || >= 20}
+ peerDependencies:
+ ember-engines-router-service: '>=0.5.0'
+ ember-source: ^3.28 || >= 4.0.0
+ peerDependenciesMeta:
+ ember-engines-router-service:
+ optional: true
+
ember-eslint-parser@0.5.9:
resolution: {integrity: sha512-IW4/3cEiFp49M2LiKyzi7VcT1egogOe8UxQ9eUKTooenC7Q4qNhzTD6rOZ8j51m8iJC+8hCzjbNCa3K4CN0Hhg==}
engines: {node: '>=16.0.0'}
@@ -4908,11 +5208,8 @@ packages:
resolution: {integrity: sha512-uNmv1cPG/4qsac8oIf5txJ2FZ8p88LEpG4P3dNcjsJS98Y8hd0GPMFwVqpnzI78Lz7VYRGQWY4jnE4qm5R3j4g==}
engines: {node: 12.* || 14.* || >= 16}
- ember-inflector@4.0.3:
- resolution: {integrity: sha512-E+NnmzybMRWn1JyEfDxY7arjOTJLIcGjcXnUxizgjD4TlvO1s3O65blZt+Xq2C2AFSPeqHLC6PXd6XHYM8BxdQ==}
- engines: {node: 14.* || 16.* || >= 18}
- peerDependencies:
- ember-source: ^3.16.0 || ^4.0.0 || ^5.0.0
+ ember-inflector@6.0.0:
+ resolution: {integrity: sha512-g6trqBhQHRwlq9bBmoyxhAl0tD0/CaTKK0xWPUgi3BfxFOgGG1bbiwAx+tjyiAkLzDqU+ihyjtT+sd41y6K1hA==}
ember-inline-svg@1.0.1:
resolution: {integrity: sha512-dRf6zRpFunXms8ba095vT4pppTItwYZGy9fjpd9zq5Eqx+97bukv+NffM+shtah1WHrMLj/j8XnxEalENAOiag==}
@@ -4930,19 +5227,16 @@ packages:
typescript:
optional: true
- ember-lifeline@7.0.0:
- resolution: {integrity: sha512-2l51NzgH5vjN972zgbs+32rnXnnEFKB7qsSpJF+lBI4V5TG6DMy4SfowC72ZEuAtS58OVfwITbOO+RnM21EdpA==}
- engines: {node: 16.* || >= 18}
- peerDependencies:
- '@ember/test-helpers': '>= 1.0.0'
- peerDependenciesMeta:
- '@ember/test-helpers':
- optional: true
-
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-loading@2.0.0:
resolution: {integrity: sha512-aGFZszIwmrIZ5XINv9TXQGWrfpKIiPwYiakEmRXx0Jvr5ZnUyKtCO84+FaKMyezrbDWsq0UjYqmdiqSAXhIkIA==}
engines: {node: 12.* || 14.* || >= 16}
@@ -4955,10 +5249,6 @@ packages:
resolution: {integrity: sha512-bnaKF1LLKMkBNeDoetvIJ4vhwRPKIIumWr6dbVuW6W6p4QV8ZiO+GdF8J7mxDNlog9CeL9Z/7wam4YS86G8BYA==}
engines: {node: 6.* || 8.* || >= 10.*}
- ember-modifier@3.2.7:
- resolution: {integrity: sha512-ezcPQhH8jUfcJQbbHji4/ZG/h0yyj1jRDknfYue/ypQS8fM8LrGcCMo0rjDZLzL1Vd11InjNs3BD7BdxFlzGoA==}
- engines: {node: 12.* || >= 14}
-
ember-modifier@4.2.2:
resolution: {integrity: sha512-pPYBAGyczX0hedGWQFQOEiL9s45KS9efKxJxUQkMLjQyh+1Uef1mcmAGsdw2KmvNupITkE/nXxmVO1kZ9tt3ag==}
@@ -4980,14 +5270,6 @@ packages:
ember-basic-dropdown: ^8.7.0
ember-concurrency: ^4.0.4 || ^5.1.0
- ember-power-select@8.7.1:
- resolution: {integrity: sha512-TbTv+P3QnSZc2Diq74qSO732R0dCo9wtlNUILMpGu6KWvbuTCyIB5CqfL7BpRtf7Iy6gXijYCWvraDBr5xs1aQ==}
- peerDependencies:
- '@ember/test-helpers': ^2.9.4 || ^3.2.1 || ^4.0.2 || ^5.0.0
- '@glimmer/component': ^1.1.2 || ^2.0.0
- ember-basic-dropdown: ^8.5.1
- ember-concurrency: ^4.0.4
-
ember-qunit@8.1.1:
resolution: {integrity: sha512-nT+6s74j3BKNn+QQY/hINC3Xw3kn0NF0cU9zlgVQmCBWoyis1J24xWrY2LFOMThPmF6lHqcrUb5JwvBD4BXEXg==}
peerDependencies:
@@ -4995,14 +5277,15 @@ packages:
ember-source: '>=4.0.0'
qunit: ^2.13.0
- ember-resolver@12.0.1:
- resolution: {integrity: sha512-U+ZBdbEHMhmvcZly1xhZKwqeH5/igjT93p9bbD6x+mQVg7hm4jrsQA4jsxHu3BqgL5MmqOVx0gtAuYEWV1x2MQ==}
- engines: {node: 14.* || 16.* || >= 18}
+ ember-qunit@9.0.4:
+ resolution: {integrity: sha512-rv6gKvrdXdPBTdSZC5co82eIcDWWVR7RjafU/c+5TTz290oXhIHPoVuZbcO2F5RiAqkTW0jKzwkCP8y+2tCjFw==}
peerDependencies:
- ember-source: ^4.12.0 || >= 5.0.0
- peerDependenciesMeta:
- ember-source:
- optional: true
+ '@ember/test-helpers': '>=3.0.3'
+ qunit: ^2.13.0
+
+ ember-resolver@13.1.1:
+ resolution: {integrity: sha512-rA4RDuTm/F9AzYX2+g7EY3QWU48kyF9+Ck8IE8VQipnlwv2Q42kdRWiw7hfeQbRxx6XoSZCak6nzAG9ePd/+Ug==}
+ engines: {node: 14.* || 16.* || >= 18}
ember-resources@7.0.4:
resolution: {integrity: sha512-x/KJrfQCq8hrnOHDzdpSteUXdeqP4iAjeS4xWTxxtWDeP2KqOZYpAz4CvigzzBktWGZByPp+Y1Ysvlvl99SnFA==}
@@ -5042,12 +5325,6 @@ packages:
ember-stargate@0.6.0:
resolution: {integrity: sha512-oNMZj+eS6a82aQ8rbxlCjQwg+mK0lAIOQEylSGqBXhivi9smXPYVVnpN0vrC5SALa9C0S1EOvA2qc/59a+0w9w==}
- ember-style-modifier@4.4.0:
- resolution: {integrity: sha512-gT1ckbhl1KSj5sWTo/8UChj98eZeE+mUmYoXw8VjwJgWP0wiTCibGZjVbC0WlIUd7umxuG61OQ/ivfF+sAiOEQ==}
- peerDependencies:
- '@ember/string': ^3.1.1 || ^4.0.0
- ember-source: ^3.28.0 || ^4.0.0 || >=5.0.0
-
ember-style-modifier@4.5.1:
resolution: {integrity: sha512-ReVGW9fZmDIsCWsuJGH4joiiHOv9aF9Yv4lUZUjXjQyR9SEAae7RWjZcjPgmEJwpN7yDSyy4PIwdJa0smT2A3g==}
engines: {node: 18.* || >= 20, pnpm: '>= 10.*'}
@@ -5156,6 +5433,10 @@ packages:
resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
engines: {node: '>=0.12'}
+ entities@6.0.1:
+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
+ engines: {node: '>=0.12'}
+
env-paths@2.2.1:
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
engines: {node: '>=6'}
@@ -5352,6 +5633,9 @@ 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==}
+
esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
@@ -5475,6 +5759,15 @@ packages:
fd-slicer@1.1.0:
resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
fflate@0.8.2:
resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
@@ -5642,6 +5935,9 @@ packages:
resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==}
engines: {node: '>=14.14'}
+ fs-extra@3.0.1:
+ resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==}
+
fs-extra@4.0.3:
resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==}
@@ -5689,6 +5985,11 @@ packages:
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
@@ -5979,6 +6280,10 @@ packages:
resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ html-encoding-sniffer@4.0.0:
+ resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
+ engines: {node: '>=18'}
+
html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
@@ -6093,6 +6398,9 @@ packages:
resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
engines: {node: '>=8'}
+ import-meta-resolve@4.2.0:
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
+
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
@@ -6323,6 +6631,9 @@ packages:
resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
engines: {node: '>=0.10.0'}
+ is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+
is-regex@1.2.1:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
@@ -6478,6 +6789,24 @@ packages:
jsbn@1.1.0:
resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+ jsdom@25.0.1:
+ resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ canvas: ^2.11.2
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
+ jsdom@26.1.0:
+ resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ canvas: ^3.0.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'}
@@ -6529,6 +6858,9 @@ packages:
jsonfile@2.4.0:
resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==}
+ jsonfile@3.0.1:
+ resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==}
+
jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
@@ -6873,6 +7205,10 @@ packages:
resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==}
engines: {node: '>=8'}
+ mem@8.1.1:
+ resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
+ engines: {node: '>=10'}
+
memory-streams@0.1.3:
resolution: {integrity: sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA==}
@@ -6880,6 +7216,10 @@ packages:
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==}
@@ -6956,6 +7296,10 @@ packages:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
+ mimic-fn@3.1.0:
+ resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
+ engines: {node: '>=8'}
+
mimic-fn@4.0.0:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
@@ -7081,6 +7425,9 @@ packages:
resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==}
engines: {node: '>= 0.8.0'}
+ mr-dep-walk@1.4.0:
+ resolution: {integrity: sha512-UaDUqkLsd0ep3jAx2+A7BIpfw8wKxhthDj3yPNLBnevipK1CUFJJiz24jRVLw18q7R2aEiRq13WwUBlnwfbQqQ==}
+
ms@2.0.0:
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
@@ -7241,6 +7588,9 @@ packages:
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+ nwsapi@2.2.22:
+ resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
+
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -7445,6 +7795,9 @@ packages:
parse5@6.0.1:
resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
+ parse5@7.3.0:
+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+
parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
@@ -7535,6 +7888,10 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
+ picomatch@4.0.3:
+ resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
+ engines: {node: '>=12'}
+
pidtree@0.6.0:
resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
engines: {node: '>=0.10'}
@@ -8048,6 +8405,11 @@ packages:
resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
engines: {node: '>=8.0'}
+ rollup@4.53.3:
+ resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
route-recognizer@0.3.4:
resolution: {integrity: sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==}
@@ -8058,6 +8420,12 @@ packages:
route-recognizer: ^0.3.4
rsvp: ^4.8.5
+ rrweb-cssom@0.7.1:
+ resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==}
+
+ rrweb-cssom@0.8.0:
+ resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
+
rsvp@3.2.1:
resolution: {integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==}
@@ -8137,6 +8505,10 @@ packages:
sax@1.2.4:
resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
+ saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+
schema-utils@2.7.1:
resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==}
engines: {node: '>= 8.9.0'}
@@ -8168,6 +8540,10 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ send@0.18.0:
+ resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
+ engines: {node: '>= 0.8.0'}
+
send@0.19.0:
resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
engines: {node: '>= 0.8.0'}
@@ -8356,6 +8732,10 @@ packages:
resolution: {integrity: sha512-QU4fa0D6aSOmrT+7OHpUXw+jS84T0MLaQNtFs8xzLNe6Arj44Magd7WEbyVW5LNYoAPVV35aKs4azxIfVJrToQ==}
deprecated: See https://github.com/lydell/source-map-url#deprecated
+ source-map-url@0.4.1:
+ resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+
source-map@0.4.4:
resolution: {integrity: sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==}
engines: {node: '>=0.8.0'}
@@ -8645,6 +9025,9 @@ packages:
deprecated: This SVGO version is no longer supported. Upgrade to v2.x.x.
hasBin: true
+ symbol-tree@3.2.4:
+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
+
symlink-or-copy@1.3.1:
resolution: {integrity: sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==}
@@ -8739,9 +9122,20 @@ packages:
tiny-lr@2.0.0:
resolution: {integrity: sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q==}
+ tinyglobby@0.2.15:
+ resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
+ engines: {node: '>=12.0.0'}
+
tippy.js@6.3.7:
resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
+ tldts-core@6.1.86:
+ resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
+
+ tldts@6.1.86:
+ resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
+ hasBin: true
+
tmp@0.2.5:
resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==}
engines: {node: '>=14.14'}
@@ -8761,9 +9155,17 @@ packages:
resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==}
engines: {node: '>=14.16'}
+ tough-cookie@5.1.2:
+ resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==}
+ engines: {node: '>=16'}
+
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ tr46@5.1.1:
+ resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
+ engines: {node: '>=18'}
+
tracked-built-ins@4.0.0:
resolution: {integrity: sha512-0Jl43A1SDZd+yYCJvXfgDSn4Wk/zcawkyFTBPqOETU5UJRngnVEnQ8oOjawqPRg6qja3sKjIQ8z6X9xJzcUTUA==}
@@ -9042,9 +9444,53 @@ packages:
vfile@4.2.1:
resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==}
+ vite@6.4.1:
+ resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ jiti: '>=1.21.0'
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
w3c-keyname@2.2.8:
resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
+ w3c-xmlserializer@5.0.0:
+ resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
+ engines: {node: '>=18'}
+
walk-sync@0.2.7:
resolution: {integrity: sha512-OH8GdRMowEFr0XSHQeX5fGweO6zSVHo7bG/0yJQx6LAj9Oukz0C8heI3/FYectT66gY0IPGe89kOvU410/UNpg==}
@@ -9086,6 +9532,10 @@ packages:
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ webidl-conversions@7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
+
webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
@@ -9108,6 +9558,18 @@ packages:
resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
engines: {node: '>=0.8.0'}
+ whatwg-encoding@3.1.1:
+ resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
+ engines: {node: '>=18'}
+
+ whatwg-mimetype@4.0.0:
+ resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
+ engines: {node: '>=18'}
+
+ whatwg-url@14.2.0:
+ resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
+ engines: {node: '>=18'}
+
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
@@ -9190,14 +9652,33 @@ packages:
utf-8-validate:
optional: true
+ ws@8.18.3:
+ resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
xdg-basedir@4.0.0:
resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
engines: {node: '>=8'}
+ xml-name-validator@5.0.0:
+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
+ engines: {node: '>=18'}
+
xmlbuilder@15.1.1:
resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==}
engines: {node: '>=8.0'}
+ xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+
y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
@@ -9257,6 +9738,14 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
+ '@asamuzakjp/css-color@3.2.0':
+ dependencies:
+ '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-tokenizer': 3.0.4
+ lru-cache: 10.4.3
+
'@babel/code-frame@7.27.1':
dependencies:
'@babel/helper-validator-identifier': 7.27.1
@@ -9500,6 +9989,11 @@ snapshots:
'@babel/core': 7.27.1
'@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.27.1)':
+ dependencies:
+ '@babel/core': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+
'@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.1)':
dependencies:
'@babel/core': 7.27.1
@@ -9963,6 +10457,8 @@ snapshots:
'@babel/runtime@7.27.6': {}
+ '@babel/runtime@7.28.4': {}
+
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
@@ -10109,12 +10605,32 @@ snapshots:
'@colors/colors@1.5.0':
optional: true
+ '@csstools/color-helpers@5.1.0': {}
+
+ '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-tokenizer': 3.0.4
+
+ '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
+ dependencies:
+ '@csstools/color-helpers': 5.1.0
+ '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
+ '@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)':
dependencies:
'@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1)
@@ -10331,7 +10847,7 @@ snapshots:
debug: 4.4.1
extract-zip: 2.0.1
filenamify: 4.3.0
- fs-extra: 11.3.0
+ fs-extra: 11.3.2
galactus: 1.0.0
get-package-info: 1.0.0
junk: 3.1.0
@@ -10386,13 +10902,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@ember-data/adapter@5.3.13(f79584e2a43e7fa7f2fa6f50769f3d4f)':
+ '@ember-data/adapter@5.3.13(7a51331a0920f630676c8e22d85ff6c7)':
dependencies:
- '@ember-data/legacy-compat': 5.3.13(d093e34993e2152be38be09e6e7bf597)
- '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
- '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
+ '@ember-data/legacy-compat': 5.3.13(31b5488ac9d0025d272f8d4f509f52f4)
+ '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
'@ember/edition-utils': 1.2.0
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.3(@glint/template@1.5.2)
ember-cli-path-utils: 1.0.0
@@ -10403,13 +10919,13 @@ snapshots:
- '@glint/template'
- supports-color
- '@ember-data/debug@5.3.13(3df0b72a55d456c6198ca2b3255a76b8)':
+ '@ember-data/debug@5.3.13(c42cc26afc7ceb0b48b7a2cf91fefa61)':
dependencies:
- '@ember-data/model': 5.3.13(7234f3c6c8908f8ca3320dc27c62478e)
- '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
- '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
+ '@ember-data/model': 5.3.13(56d2d2dd12edb428a55c9aaf90fbf94c)
+ '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
'@ember/edition-utils': 1.2.0
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.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.8(esbuild@0.25.9))
@@ -10417,10 +10933,10 @@ snapshots:
- '@glint/template'
- supports-color
- '@ember-data/graph@5.3.13(62aa5be71c8e28cbbe1a1ab9964e415b)':
+ '@ember-data/graph@5.3.13(0710080a6a021c5f2f3a73f31e0b5dd8)':
dependencies:
- '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.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.8(esbuild@0.25.9))
@@ -10428,12 +10944,12 @@ snapshots:
- '@glint/template'
- supports-color
- '@ember-data/json-api@5.3.13(52e030c892a5d4807e397bddac9ddd14)':
+ '@ember-data/json-api@5.3.13(07524c7a1b7d83e7e8d38d70ef605af9)':
dependencies:
- '@ember-data/graph': 5.3.13(62aa5be71c8e28cbbe1a1ab9964e415b)
- '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
- '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@ember-data/graph': 5.3.13(0710080a6a021c5f2f3a73f31e0b5dd8)
+ '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.3(@glint/template@1.5.2)
fuse.js: 7.1.0
@@ -10442,31 +10958,31 @@ snapshots:
- '@glint/template'
- supports-color
- '@ember-data/legacy-compat@5.3.13(d093e34993e2152be38be09e6e7bf597)':
+ '@ember-data/legacy-compat@5.3.13(31b5488ac9d0025d272f8d4f509f52f4)':
dependencies:
'@ember-data/request': 5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))
- '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
- '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
+ '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
'@ember/test-waiters': 4.1.0(@glint/template@1.5.2)
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.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.8(esbuild@0.25.9))
optionalDependencies:
- '@ember-data/graph': 5.3.13(62aa5be71c8e28cbbe1a1ab9964e415b)
- '@ember-data/json-api': 5.3.13(52e030c892a5d4807e397bddac9ddd14)
+ '@ember-data/graph': 5.3.13(0710080a6a021c5f2f3a73f31e0b5dd8)
+ '@ember-data/json-api': 5.3.13(07524c7a1b7d83e7e8d38d70ef605af9)
transitivePeerDependencies:
- '@glint/template'
- supports-color
- '@ember-data/model@5.3.13(7234f3c6c8908f8ca3320dc27c62478e)':
+ '@ember-data/model@5.3.13(56d2d2dd12edb428a55c9aaf90fbf94c)':
dependencies:
- '@ember-data/legacy-compat': 5.3.13(d093e34993e2152be38be09e6e7bf597)
- '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
- '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
+ '@ember-data/legacy-compat': 5.3.13(31b5488ac9d0025d272f8d4f509f52f4)
+ '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
'@ember-data/tracking': 5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
'@ember/edition-utils': 1.2.0
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.3(@glint/template@1.5.2)
ember-cli-string-utils: 1.1.0
@@ -10474,21 +10990,21 @@ snapshots:
ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
inflection: 3.0.2
optionalDependencies:
- '@ember-data/graph': 5.3.13(62aa5be71c8e28cbbe1a1ab9964e415b)
- '@ember-data/json-api': 5.3.13(52e030c892a5d4807e397bddac9ddd14)
+ '@ember-data/graph': 5.3.13(0710080a6a021c5f2f3a73f31e0b5dd8)
+ '@ember-data/json-api': 5.3.13(07524c7a1b7d83e7e8d38d70ef605af9)
transitivePeerDependencies:
- '@glint/template'
- supports-color
- '@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))':
+ '@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))':
dependencies:
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.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.8(esbuild@0.25.9))
optionalDependencies:
'@ember/string': 4.0.1
- 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.8(esbuild@0.25.9)))
+ ember-inflector: 6.0.0(@babel/core@7.27.1)
transitivePeerDependencies:
- '@glint/template'
- supports-color
@@ -10496,7 +11012,7 @@ snapshots:
'@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))':
dependencies:
'@ember/test-waiters': 4.1.0(@glint/template@1.5.2)
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.3(@glint/template@1.5.2)
transitivePeerDependencies:
@@ -10505,13 +11021,13 @@ snapshots:
'@ember-data/rfc395-data@0.0.4': {}
- '@ember-data/serializer@5.3.13(f79584e2a43e7fa7f2fa6f50769f3d4f)':
+ '@ember-data/serializer@5.3.13(7a51331a0920f630676c8e22d85ff6c7)':
dependencies:
- '@ember-data/legacy-compat': 5.3.13(d093e34993e2152be38be09e6e7bf597)
- '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
- '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
+ '@ember-data/legacy-compat': 5.3.13(31b5488ac9d0025d272f8d4f509f52f4)
+ '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
'@ember/edition-utils': 1.2.0
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.3(@glint/template@1.5.2)
ember-cli-path-utils: 1.0.0
@@ -10522,12 +11038,12 @@ snapshots:
- '@glint/template'
- supports-color
- '@ember-data/store@5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))':
+ '@ember-data/store@5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))':
dependencies:
'@ember-data/request': 5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))
- '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
'@ember-data/tracking': 5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.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.8(esbuild@0.25.9))
@@ -10537,7 +11053,7 @@ snapshots:
'@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))':
dependencies:
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
'@warp-drive/core-types': 0.0.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.8(esbuild@0.25.9))
@@ -10570,6 +11086,18 @@ snapshots:
- '@babel/core'
- supports-color
+ '@ember/render-modifiers@3.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.8(esbuild@0.25.9)))':
+ dependencies:
+ '@babel/core': 7.27.1
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
+ ember-cli-babel: 8.2.0(@babel/core@7.27.1)
+ ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.27.1)
+ ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
+ optionalDependencies:
+ '@glint/template': 1.5.2
+ transitivePeerDependencies:
+ - supports-color
+
'@ember/string@4.0.1': {}
'@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2)':
@@ -10611,6 +11139,97 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@embroider/compat@4.1.10(@embroider/core@4.2.8(@glint/template@1.5.2))(@glint/template@1.5.2)':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/core': 7.27.1
+ '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.27.1)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
+ '@babel/plugin-transform-runtime': 7.27.1(@babel/core@7.27.1)
+ '@babel/preset-env': 7.27.2(@babel/core@7.27.1)
+ '@babel/runtime': 7.28.4
+ '@babel/traverse': 7.27.1
+ '@embroider/core': 4.2.8(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
+ '@types/babel__code-frame': 7.0.6
+ assert-never: 1.4.0
+ babel-import-util: 3.0.1
+ babel-plugin-debug-macros: 2.0.0(@babel/core@7.27.1)
+ babel-plugin-ember-template-compilation: 3.0.1
+ babel-plugin-ember-template-compilation-2: babel-plugin-ember-template-compilation@2.4.1
+ babel-plugin-syntax-dynamic-import: 6.18.0
+ babylon: 6.18.0
+ bind-decorator: 1.0.11
+ broccoli: 3.5.2
+ broccoli-concat: 4.2.5
+ broccoli-file-creator: 2.1.1
+ broccoli-funnel: 3.0.8
+ broccoli-merge-trees: 4.2.0
+ broccoli-persistent-filter: 3.1.3
+ broccoli-plugin: 4.0.7
+ broccoli-source: 3.0.1
+ chalk: 4.1.2
+ debug: 4.4.1
+ fast-sourcemap-concat: 2.1.1
+ fs-extra: 9.1.0
+ fs-tree-diff: 2.0.1
+ jsdom: 26.1.0
+ lodash: 4.17.21
+ pkg-up: 3.1.0
+ resolve: 1.22.10
+ resolve-package-path: 4.0.3
+ resolve.exports: 2.0.3
+ semver: 7.7.2
+ symlink-or-copy: 1.3.1
+ tree-sync: 2.1.0
+ typescript-memoize: 1.1.1
+ walk-sync: 3.0.0
+ transitivePeerDependencies:
+ - '@glint/template'
+ - bufferutil
+ - canvas
+ - supports-color
+ - utf-8-validate
+
+ '@embroider/config-meta-loader@1.0.0': {}
+
+ '@embroider/core@4.2.8(@glint/template@1.5.2)':
+ dependencies:
+ '@babel/core': 7.27.1
+ '@babel/parser': 7.27.2
+ '@babel/traverse': 7.27.1
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
+ '@embroider/reverse-exports': 0.2.0
+ '@embroider/shared-internals': 3.0.1
+ assert-never: 1.4.0
+ babel-plugin-ember-template-compilation: 3.0.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.4.1
+ escape-string-regexp: 4.0.0
+ fast-sourcemap-concat: 2.1.1
+ fs-extra: 9.1.0
+ fs-tree-diff: 2.0.1
+ handlebars: 4.7.8
+ js-string-escape: 1.0.1
+ jsdom: 25.0.1
+ lodash: 4.17.21
+ resolve: 1.22.10
+ resolve-package-path: 4.0.3
+ resolve.exports: 2.0.3
+ semver: 7.7.2
+ typescript-memoize: 1.1.1
+ walk-sync: 3.0.0
+ transitivePeerDependencies:
+ - '@glint/template'
+ - bufferutil
+ - canvas
+ - supports-color
+ - utf-8-validate
+
'@embroider/macros@1.18.0(@glint/template@1.5.2)':
dependencies:
'@embroider/shared-internals': 3.0.0
@@ -10641,6 +11260,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@embroider/macros@1.19.4(@glint/template@1.5.2)':
+ dependencies:
+ '@embroider/shared-internals': 3.0.1
+ assert-never: 1.4.0
+ babel-import-util: 3.0.1
+ ember-cli-babel: 7.26.11
+ find-up: 5.0.0
+ lodash: 4.17.21
+ resolve: 1.22.10
+ semver: 7.7.2
+ optionalDependencies:
+ '@glint/template': 1.5.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@embroider/reverse-exports@0.2.0':
+ dependencies:
+ mem: 8.1.1
+ resolve.exports: 2.0.3
+
'@embroider/shared-internals@2.9.0':
dependencies:
babel-import-util: 2.1.1
@@ -10710,6 +11349,34 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@embroider/vite@1.4.2(@embroider/core@4.2.8(@glint/template@1.5.2))(@glint/template@1.5.2)(rollup@4.53.3)(vite@6.4.1(@types/node@22.15.17)(jiti@2.4.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.5.1))':
+ dependencies:
+ '@babel/core': 7.27.1
+ '@embroider/core': 4.2.8(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
+ '@embroider/reverse-exports': 0.2.0
+ '@rollup/pluginutils': 5.3.0(rollup@4.53.3)
+ assert-never: 1.4.0
+ browserslist: 4.24.5
+ browserslist-to-esbuild: 2.1.1(browserslist@4.24.5)
+ chalk: 5.6.2
+ content-tag: 3.1.3
+ debug: 4.4.1
+ fast-glob: 3.3.3
+ fs-extra: 10.1.0
+ jsdom: 25.0.1
+ send: 0.18.0
+ source-map-url: 0.4.1
+ terser: 5.39.1
+ vite: 6.4.1(@types/node@22.15.17)(jiti@2.4.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.5.1)
+ transitivePeerDependencies:
+ - '@glint/template'
+ - bufferutil
+ - canvas
+ - rollup
+ - supports-color
+ - utf-8-validate
+
'@esbuild/aix-ppc64@0.25.9':
optional: true
@@ -11090,7 +11757,7 @@ snapshots:
'@handlebars/parser@2.0.0': {}
- '@hashicorp/design-system-components@4.24.1(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-basic-dropdown@8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))':
+ '@hashicorp/design-system-components@5.0.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-basic-dropdown@8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9))))(ember-engines@0.12.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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))':
dependencies:
'@codemirror/commands': 6.8.1
'@codemirror/lang-go': 6.0.1
@@ -11104,44 +11771,43 @@ snapshots:
'@codemirror/lint': 6.8.5
'@codemirror/state': 6.5.2
'@codemirror/view': 6.36.8
- '@ember/render-modifiers': 2.1.0(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))
+ '@ember/render-modifiers': 3.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.8(esbuild@0.25.9)))
'@ember/string': 4.0.1
'@ember/test-waiters': 3.1.0
'@embroider/addon-shim': 1.10.0
- '@embroider/macros': 1.19.3(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@embroider/util': 1.13.4(@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.8(esbuild@0.25.9)))
'@floating-ui/dom': 1.7.0
'@hashicorp/design-system-tokens': 3.0.0
- '@hashicorp/flight-icons': 3.14.0
+ '@hashicorp/flight-icons': 4.0.0
'@lezer/highlight': 1.2.1
'@nullvoxpopuli/ember-composable-helpers': 5.3.0(@babel/core@7.27.1)
clipboard-polyfill: 4.1.1
codemirror-lang-hcl: 0.0.0-beta.2
decorator-transforms: 2.3.0(@babel/core@7.27.1)
- ember-a11y-refocus: 4.1.4
- ember-cli-sass: 11.0.1
+ ember-a11y-refocus: 5.1.0(@babel/core@7.27.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ ember-basic-dropdown: 8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9)))
ember-concurrency: 4.0.4(@babel/core@7.27.1)(@glint/template@1.5.2)
ember-element-helper: 0.8.8
ember-focus-trap: 1.1.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
- ember-get-config: 2.1.1(@glint/template@1.5.2)
ember-modifier: 4.2.2(@babel/core@7.27.1)
- ember-power-select: 8.7.1(@babel/core@7.27.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-basic-dropdown@8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9))))(ember-concurrency@4.0.4(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))
+ ember-power-select: 8.12.0(@babel/core@7.27.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-basic-dropdown@8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9))))(ember-concurrency@4.0.4(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))
ember-stargate: 0.6.0(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))
- ember-style-modifier: 4.4.0(@babel/core@7.27.1)(@ember/string@4.0.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ ember-style-modifier: 4.5.1(@babel/core@7.27.1)(@ember/string@4.0.1)
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.8(esbuild@0.25.9)))
luxon: 3.6.1
prismjs: 1.30.0
- sass: 1.88.0
tabbable: 6.2.0
tippy.js: 6.3.7
tracked-built-ins: 4.0.0(@babel/core@7.27.1)
+ optionalDependencies:
+ ember-engines: 0.12.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.8(esbuild@0.25.9)))
transitivePeerDependencies:
- '@babel/core'
- '@ember/test-helpers'
- '@glimmer/component'
- '@glint/environment-ember-loose'
- '@glint/template'
- - ember-basic-dropdown
- ember-source
- supports-color
@@ -11163,7 +11829,7 @@ snapshots:
'@hashicorp/flight-icons@3.10.0': {}
- '@hashicorp/flight-icons@3.14.0': {}
+ '@hashicorp/flight-icons@4.0.0': {}
'@humanwhocodes/config-array@0.13.0':
dependencies:
@@ -11505,6 +12171,90 @@ snapshots:
dependencies:
prettier: 3.6.2
+ '@rollup/plugin-babel@6.1.0(@babel/core@7.27.1)(rollup@4.53.3)':
+ dependencies:
+ '@babel/core': 7.27.1
+ '@babel/helper-module-imports': 7.27.1
+ '@rollup/pluginutils': 5.3.0(rollup@4.53.3)
+ optionalDependencies:
+ rollup: 4.53.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@rollup/pluginutils@5.3.0(rollup@4.53.3)':
+ dependencies:
+ '@types/estree': 1.0.7
+ estree-walker: 2.0.2
+ picomatch: 4.0.3
+ optionalDependencies:
+ rollup: 4.53.3
+
+ '@rollup/rollup-android-arm-eabi@4.53.3':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.53.3':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.53.3':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.53.3':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.53.3':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-loong64-gnu@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-ppc64-gnu@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-musl@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.53.3':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.53.3':
+ optional: true
+
+ '@rollup/rollup-openharmony-arm64@4.53.3':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.53.3':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.53.3':
+ optional: true
+
+ '@rollup/rollup-win32-x64-gnu@4.53.3':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.53.3':
+ optional: true
+
'@scalvert/ember-setup-middleware-reporter@0.1.1':
dependencies:
'@types/fs-extra': 9.0.13
@@ -11577,6 +12327,8 @@ snapshots:
'@tootallnate/quickjs-emscripten@0.23.0': {}
+ '@types/babel__code-frame@7.0.6': {}
+
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
@@ -11620,6 +12372,8 @@ snapshots:
'@types/estree@1.0.7': {}
+ '@types/estree@1.0.8': {}
+
'@types/express-serve-static-core@4.19.6':
dependencies:
'@types/node': 22.15.17
@@ -11795,7 +12549,7 @@ snapshots:
'@warp-drive/build-config@0.0.3(@glint/template@1.5.2)':
dependencies:
'@embroider/addon-shim': 1.10.0
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
babel-import-util: 2.1.1
semver: 7.7.2
transitivePeerDependencies:
@@ -11804,7 +12558,7 @@ snapshots:
'@warp-drive/core-types@0.0.3(@glint/template@1.5.2)':
dependencies:
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@warp-drive/build-config': 0.0.3(@glint/template@1.5.2)
transitivePeerDependencies:
- '@glint/template'
@@ -11915,6 +12669,8 @@ snapshots:
dependencies:
acorn: 8.15.0
+ acorn@5.7.4: {}
+
acorn@8.14.1: {}
acorn@8.15.0: {}
@@ -11963,6 +12719,10 @@ snapshots:
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
+ amd-name-resolver@0.0.6:
+ dependencies:
+ ensure-posix-path: 1.1.1
+
amd-name-resolver@1.3.1:
dependencies:
ensure-posix-path: 1.1.1
@@ -12168,6 +12928,8 @@ snapshots:
schema-utils: 2.7.1
webpack: 5.99.8(esbuild@0.25.9)
+ babel-plugin-compact-reexports@1.1.0: {}
+
babel-plugin-debug-macros@0.2.0(@babel/core@7.27.1):
dependencies:
'@babel/core': 7.27.1
@@ -12178,6 +12940,12 @@ snapshots:
'@babel/core': 7.27.1
semver: 5.7.2
+ babel-plugin-debug-macros@2.0.0(@babel/core@7.27.1):
+ dependencies:
+ '@babel/core': 7.27.1
+ babel-import-util: 2.1.1
+ semver: 7.7.2
+
babel-plugin-ember-data-packages-polyfill@0.1.2:
dependencies:
'@ember-data/rfc395-data': 0.0.4
@@ -12191,6 +12959,12 @@ snapshots:
'@glimmer/syntax': 0.94.9
babel-import-util: 3.0.1
+ babel-plugin-ember-template-compilation@3.0.1:
+ dependencies:
+ '@glimmer/syntax': 0.94.9
+ babel-import-util: 3.0.1
+ import-meta-resolve: 4.2.0
+
babel-plugin-htmlbars-inline-precompile@3.2.0: {}
babel-plugin-htmlbars-inline-precompile@5.3.1:
@@ -12253,6 +13027,8 @@ snapshots:
babel-plugin-syntax-dynamic-import@6.18.0: {}
+ babylon@6.18.0: {}
+
backbone@1.6.1:
dependencies:
underscore: 1.13.7
@@ -12283,6 +13059,8 @@ snapshots:
binaryextensions@2.3.0: {}
+ bind-decorator@1.0.11: {}
+
bl@4.1.0:
dependencies:
buffer: 5.7.1
@@ -12461,6 +13239,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ broccoli-dependency-funnel@2.1.2:
+ dependencies:
+ broccoli-plugin: 1.3.1
+ fs-tree-diff: 0.5.9
+ heimdalljs: 0.2.6
+ heimdalljs-logger: 0.1.10
+ mkdirp: 0.5.6
+ mr-dep-walk: 1.4.0
+ path-posix: 1.0.0
+ rimraf: 2.7.1
+ symlink-or-copy: 1.3.1
+ transitivePeerDependencies:
+ - supports-color
+
broccoli-file-creator@2.1.1:
dependencies:
broccoli-plugin: 1.3.1
@@ -12757,6 +13549,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ browserslist-to-esbuild@2.1.1(browserslist@4.24.5):
+ dependencies:
+ browserslist: 4.24.5
+ meow: 13.2.0
+
browserslist@4.24.5:
dependencies:
caniuse-lite: 1.0.30001718
@@ -12892,6 +13689,8 @@ snapshots:
chalk@5.3.0: {}
+ chalk@5.6.2: {}
+
character-entities-legacy@1.1.4: {}
character-entities@1.2.4: {}
@@ -13276,12 +14075,22 @@ snapshots:
dependencies:
css-tree: 1.0.0-alpha.29
+ cssstyle@4.6.0:
+ dependencies:
+ '@asamuzakjp/css-color': 3.2.0
+ rrweb-cssom: 0.8.0
+
csstype@3.1.3: {}
dag-map@2.0.2: {}
data-uri-to-buffer@6.0.2: {}
+ data-urls@5.0.0:
+ dependencies:
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.2.0
+
data-view-buffer@1.0.2:
dependencies:
call-bound: 1.0.4
@@ -13506,14 +14315,18 @@ snapshots:
electron-to-chromium@1.5.152: {}
- ember-a11y-refocus@4.1.4:
+ ember-a11y-refocus@5.0.0(@babel/core@7.27.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))):
dependencies:
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 6.3.0
+ '@embroider/addon-shim': 1.10.0
+ '@glimmer/component': 2.0.0
+ '@glimmer/tracking': 1.1.2
+ decorator-transforms: 2.3.0(@babel/core@7.27.1)
+ ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
transitivePeerDependencies:
+ - '@babel/core'
- supports-color
- ember-a11y-refocus@5.0.0(@babel/core@7.27.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))):
+ ember-a11y-refocus@5.1.0(@babel/core@7.27.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))):
dependencies:
'@embroider/addon-shim': 1.10.0
'@glimmer/component': 2.0.0
@@ -13548,7 +14361,7 @@ snapshots:
ember-arg-types@1.1.0(@glint/template@1.5.2)(webpack@5.99.8(esbuild@0.25.9)):
dependencies:
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.8(esbuild@0.25.9))
ember-cli-babel: 7.26.11
ember-cli-typescript: 5.3.0
@@ -13559,6 +14372,17 @@ snapshots:
- supports-color
- webpack
+ ember-asset-loader@1.0.0:
+ dependencies:
+ broccoli-caching-writer: 3.0.3
+ broccoli-funnel: 3.0.8
+ broccoli-merge-trees: 4.2.0
+ ember-cli-babel: 7.26.11
+ fs-extra: 10.1.0
+ walk-sync: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
ember-assign-helper@0.5.1:
dependencies:
'@embroider/addon-shim': 1.10.0
@@ -13635,13 +14459,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
- ember-can@4.2.0(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))):
+ ember-can@8.0.0(@babel/core@7.27.1)(@ember/string@4.0.1)(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-resolver@13.1.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))):
dependencies:
- ember-cli-babel: 7.26.11
- ember-cli-htmlbars: 6.3.0
- 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.8(esbuild@0.25.9)))
+ '@ember/string': 4.0.1
+ '@embroider/addon-shim': 1.10.0
+ decorator-transforms: 2.3.0(@babel/core@7.27.1)
+ ember-inflector: 6.0.0(@babel/core@7.27.1)
+ ember-resolver: 13.1.1
+ ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
transitivePeerDependencies:
- - ember-source
+ - '@babel/core'
- supports-color
ember-cli-babel-plugin-helpers@1.1.1: {}
@@ -13851,29 +14678,6 @@ snapshots:
ember-cli-lodash-subset@2.0.1: {}
- ember-cli-mirage@3.0.4(4aae64382352ae0e9635b2848df9b5e9):
- dependencies:
- '@babel/core': 7.27.1
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
- broccoli-file-creator: 2.1.1
- broccoli-funnel: 3.0.8
- broccoli-merge-trees: 4.2.0
- ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.8(esbuild@0.25.9))
- ember-cli-babel: 8.2.0(@babel/core@7.27.1)
- ember-get-config: 2.1.1(@glint/template@1.5.2)
- 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.8(esbuild@0.25.9)))
- ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
- miragejs: 0.1.48
- optionalDependencies:
- '@ember-data/model': 5.3.13(7234f3c6c8908f8ca3320dc27c62478e)
- '@ember/test-helpers': 5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2)
- ember-data: 5.3.13(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))(qunit@2.24.1)
- ember-qunit: 8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1)
- transitivePeerDependencies:
- - '@glint/template'
- - supports-color
- - webpack
-
ember-cli-normalize-entity-name@1.0.0:
dependencies:
silent-error: 1.1.1
@@ -13885,7 +14689,7 @@ snapshots:
ember-cli-preprocess-registry@5.0.1:
dependencies:
broccoli-funnel: 3.0.8
- debug: 4.4.0
+ debug: 4.4.1
transitivePeerDependencies:
- supports-color
@@ -13951,7 +14755,7 @@ snapshots:
dependencies:
ansi-to-html: 0.6.15
broccoli-stew: 3.0.0
- debug: 4.4.0
+ debug: 4.4.1
execa: 4.1.0
fs-extra: 9.1.0
resolve: 1.22.10
@@ -14196,18 +15000,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
- ember-data@5.3.13(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))(qunit@2.24.1):
+ ember-data@5.3.13(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))(qunit@2.24.1):
dependencies:
- '@ember-data/adapter': 5.3.13(f79584e2a43e7fa7f2fa6f50769f3d4f)
- '@ember-data/debug': 5.3.13(3df0b72a55d456c6198ca2b3255a76b8)
- '@ember-data/graph': 5.3.13(62aa5be71c8e28cbbe1a1ab9964e415b)
- '@ember-data/json-api': 5.3.13(52e030c892a5d4807e397bddac9ddd14)
- '@ember-data/legacy-compat': 5.3.13(d093e34993e2152be38be09e6e7bf597)
- '@ember-data/model': 5.3.13(7234f3c6c8908f8ca3320dc27c62478e)
+ '@ember-data/adapter': 5.3.13(7a51331a0920f630676c8e22d85ff6c7)
+ '@ember-data/debug': 5.3.13(c42cc26afc7ceb0b48b7a2cf91fefa61)
+ '@ember-data/graph': 5.3.13(0710080a6a021c5f2f3a73f31e0b5dd8)
+ '@ember-data/json-api': 5.3.13(07524c7a1b7d83e7e8d38d70ef605af9)
+ '@ember-data/legacy-compat': 5.3.13(31b5488ac9d0025d272f8d4f509f52f4)
+ '@ember-data/model': 5.3.13(56d2d2dd12edb428a55c9aaf90fbf94c)
'@ember-data/request': 5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))
- '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
- '@ember-data/serializer': 5.3.13(f79584e2a43e7fa7f2fa6f50769f3d4f)
- '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(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.8(esbuild@0.25.9))))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
+ '@ember-data/request-utils': 5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9)))
+ '@ember-data/serializer': 5.3.13(7a51331a0920f630676c8e22d85ff6c7)
+ '@ember-data/store': 5.3.13(@ember-data/request-utils@5.3.13(@ember/string@4.0.1)(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2))(ember-inflector@6.0.0(@babel/core@7.27.1))(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))))(@ember-data/request@5.3.13(@ember/test-waiters@4.1.0(@glint/template@1.5.2))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.3(@glint/template@1.5.2)))(@ember-data/tracking@5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9))))(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
'@ember-data/tracking': 5.3.13(@glint/template@1.5.2)(@warp-drive/core-types@0.0.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.8(esbuild@0.25.9)))
'@ember/edition-utils': 1.2.0
'@embroider/macros': 1.18.0(@glint/template@1.5.2)
@@ -14252,6 +15056,32 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ ember-engines@0.12.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.8(esbuild@0.25.9))):
+ dependencies:
+ '@babel/core': 7.27.1
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
+ amd-name-resolver: 1.3.1
+ babel-plugin-compact-reexports: 1.1.0
+ broccoli-babel-transpiler: 7.8.1
+ broccoli-concat: 4.2.5
+ broccoli-debug: 0.6.5
+ broccoli-dependency-funnel: 2.1.2
+ broccoli-file-creator: 2.1.1
+ broccoli-funnel: 3.0.8
+ broccoli-merge-trees: 4.2.0
+ calculate-cache-key-for-tree: 2.0.0
+ ember-asset-loader: 1.0.0
+ ember-cli-babel: 7.26.11
+ ember-cli-htmlbars: 6.3.0
+ ember-cli-preprocess-registry: 5.0.1
+ ember-cli-string-utils: 1.1.0
+ ember-cli-version-checker: 5.1.2
+ ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
+ lodash: 4.17.21
+ transitivePeerDependencies:
+ - '@glint/template'
+ - supports-color
+
ember-eslint-parser@0.5.9(@babel/core@7.27.1)(@typescript-eslint/parser@8.34.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1):
dependencies:
'@babel/core': 7.27.1
@@ -14291,6 +15121,30 @@ snapshots:
- supports-color
- webpack
+ ember-exam@8.0.0(@glint/template@1.5.2)(ember-qunit@9.0.4(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1))(qunit@2.24.1)(webpack@5.99.8(esbuild@0.25.9)):
+ dependencies:
+ '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ chalk: 4.1.2
+ cli-table3: 0.6.5
+ debug: 4.4.0
+ ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.99.8(esbuild@0.25.9))
+ ember-cli-babel: 7.26.11
+ ember-cli-version-checker: 5.1.2
+ execa: 4.1.0
+ fs-extra: 10.1.0
+ js-yaml: 4.1.0
+ npmlog: 6.0.2
+ rimraf: 3.0.2
+ semver: 7.7.2
+ silent-error: 1.1.1
+ optionalDependencies:
+ ember-qunit: 9.0.4(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1)
+ qunit: 2.24.1
+ transitivePeerDependencies:
+ - '@glint/template'
+ - supports-color
+ - webpack
+
ember-feature-flags@7.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.8(esbuild@0.25.9)))(webpack@5.99.8(esbuild@0.25.9)):
dependencies:
'@babel/core': 7.27.1
@@ -14324,17 +15178,18 @@ snapshots:
ember-get-config@2.1.1(@glint/template@1.5.2):
dependencies:
- '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
ember-cli-babel: 7.26.11
transitivePeerDependencies:
- '@glint/template'
- supports-color
- 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.8(esbuild@0.25.9))):
+ ember-inflector@6.0.0(@babel/core@7.27.1):
dependencies:
- ember-cli-babel: 7.26.11
- ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
+ '@embroider/addon-shim': 1.10.0
+ decorator-transforms: 2.3.0(@babel/core@7.27.1)
transitivePeerDependencies:
+ - '@babel/core'
- supports-color
ember-inline-svg@1.0.1:
@@ -14379,14 +15234,6 @@ snapshots:
- supports-color
- webpack
- ember-lifeline@7.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2)):
- dependencies:
- '@embroider/addon-shim': 1.10.0
- optionalDependencies:
- '@ember/test-helpers': 5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2)
- transitivePeerDependencies:
- - supports-color
-
ember-load-initializers@2.1.2(@babel/core@7.27.1):
dependencies:
ember-cli-babel: 7.26.11
@@ -14395,6 +15242,10 @@ snapshots:
- '@babel/core'
- supports-color
+ 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.8(esbuild@0.25.9))):
+ dependencies:
+ ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
+
ember-loading@2.0.0(patch_hash=7d97519ce1955a5130edf885afb18c05d7253e2055b1b60cdcf6efc64cbdbff3)(@babel/core@7.27.1)(@glint/template@1.5.2):
dependencies:
ember-cli-babel: 7.26.11
@@ -14426,17 +15277,6 @@ snapshots:
- '@babel/core'
- supports-color
- ember-modifier@3.2.7(@babel/core@7.27.1):
- dependencies:
- ember-cli-babel: 7.26.11
- ember-cli-normalize-entity-name: 1.0.0
- ember-cli-string-utils: 1.1.0
- ember-cli-typescript: 5.3.0
- ember-compatibility-helpers: 1.2.7(@babel/core@7.27.1)
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
-
ember-modifier@4.2.2(@babel/core@7.27.1):
dependencies:
'@embroider/addon-shim': 1.10.0
@@ -14482,51 +15322,40 @@ snapshots:
- ember-source
- supports-color
- ember-power-select@8.7.1(@babel/core@7.27.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-basic-dropdown@8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9))))(ember-concurrency@4.0.4(@babel/core@7.27.1)(@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.8(esbuild@0.25.9))):
+ ember-qunit@8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1):
dependencies:
'@ember/test-helpers': 5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2)
'@embroider/addon-shim': 1.10.0
- '@embroider/util': 1.13.4(@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.8(esbuild@0.25.9)))
- '@glimmer/component': 2.0.0
- decorator-transforms: 2.3.0(@babel/core@7.27.1)
- ember-assign-helper: 0.5.1
- ember-basic-dropdown: 8.8.0(@babel/core@7.27.1)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glimmer/component@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.8(esbuild@0.25.9)))
- ember-concurrency: 4.0.4(@babel/core@7.27.1)(@glint/template@1.5.2)
- ember-lifeline: 7.0.0(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))
- ember-modifier: 4.2.2(@babel/core@7.27.1)
- 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.8(esbuild@0.25.9)))
+ '@embroider/macros': 1.18.0(@glint/template@1.5.2)
+ ember-cli-test-loader: 3.1.0
+ ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
+ qunit: 2.24.1
+ qunit-theme-ember: 1.0.0
transitivePeerDependencies:
- - '@babel/core'
- - '@glint/environment-ember-loose'
- '@glint/template'
- - ember-source
- supports-color
- ember-qunit@8.1.1(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@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.8(esbuild@0.25.9)))(qunit@2.24.1):
+ ember-qunit@9.0.4(@ember/test-helpers@5.2.2(@babel/core@7.27.1)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1):
dependencies:
'@ember/test-helpers': 5.2.2(@babel/core@7.27.1)(@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@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
+ '@embroider/macros': 1.19.3(@glint/template@1.5.2)
qunit: 2.24.1
qunit-theme-ember: 1.0.0
transitivePeerDependencies:
- '@glint/template'
- supports-color
- ember-resolver@12.0.1(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))):
+ ember-resolver@13.1.1:
dependencies:
ember-cli-babel: 7.26.11
- optionalDependencies:
- ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
transitivePeerDependencies:
- supports-color
ember-resources@7.0.4(@glimmer/component@2.0.0)(@glint/template@1.5.2):
dependencies:
'@embroider/addon-shim': 1.10.0
- '@embroider/macros': 1.19.3(@glint/template@1.5.2)
+ '@embroider/macros': 1.19.4(@glint/template@1.5.2)
'@glint/template': 1.5.2
optionalDependencies:
'@glimmer/component': 2.0.0
@@ -14630,18 +15459,6 @@ snapshots:
- ember-source
- supports-color
- ember-style-modifier@4.4.0(@babel/core@7.27.1)(@ember/string@4.0.1)(ember-source@5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))):
- dependencies:
- '@ember/string': 4.0.1
- '@embroider/addon-shim': 1.10.0
- csstype: 3.1.3
- decorator-transforms: 2.3.0(@babel/core@7.27.1)
- ember-modifier: 4.2.2(@babel/core@7.27.1)
- ember-source: 5.12.0(@glimmer/component@2.0.0)(@glint/template@1.5.2)(rsvp@4.8.5)(webpack@5.99.8(esbuild@0.25.9))
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
-
ember-style-modifier@4.5.1(@babel/core@7.27.1)(@ember/string@4.0.1):
dependencies:
'@ember/string': 4.0.1
@@ -14829,6 +15646,8 @@ snapshots:
entities@3.0.1: {}
+ entities@6.0.1: {}
+
env-paths@2.2.1: {}
environment@1.1.0: {}
@@ -15129,6 +15948,8 @@ snapshots:
estraverse@5.3.0: {}
+ estree-walker@2.0.2: {}
+
esutils@2.0.3: {}
etag@1.8.1: {}
@@ -15313,6 +16134,10 @@ snapshots:
dependencies:
pend: 1.2.0
+ fdir@6.5.0(picomatch@4.0.3):
+ optionalDependencies:
+ picomatch: 4.0.3
+
fflate@0.8.2: {}
figures@2.0.0:
@@ -15532,6 +16357,12 @@ snapshots:
jsonfile: 6.1.0
universalify: 2.0.1
+ fs-extra@3.0.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 3.0.1
+ universalify: 0.1.2
+
fs-extra@4.0.3:
dependencies:
graceful-fs: 4.2.11
@@ -15617,6 +16448,9 @@ snapshots:
fsevents@2.3.2:
optional: true
+ fsevents@2.3.3:
+ optional: true
+
function-bind@1.1.2: {}
function.prototype.name@1.1.8:
@@ -15977,6 +16811,10 @@ snapshots:
dependencies:
lru-cache: 7.18.3
+ html-encoding-sniffer@4.0.0:
+ dependencies:
+ whatwg-encoding: 3.1.1
+
html-escaper@2.0.2: {}
html-tags@3.3.1: {}
@@ -16070,7 +16908,6 @@ snapshots:
iconv-lite@0.6.3:
dependencies:
safer-buffer: 2.1.2
- optional: true
iconv-lite@0.7.0:
dependencies:
@@ -16097,6 +16934,8 @@ snapshots:
import-lazy@4.0.0: {}
+ import-meta-resolve@4.2.0: {}
+
imurmurhash@0.1.4: {}
include-path-searcher@0.1.0: {}
@@ -16338,6 +17177,8 @@ snapshots:
is-plain-object@5.0.0: {}
+ is-potential-custom-element-name@1.0.1: {}
+
is-regex@1.2.1:
dependencies:
call-bound: 1.0.4
@@ -16483,6 +17324,61 @@ snapshots:
jsbn@1.1.0: {}
+ jsdom@25.0.1:
+ dependencies:
+ cssstyle: 4.6.0
+ data-urls: 5.0.0
+ decimal.js: 10.5.0
+ form-data: 4.0.4
+ html-encoding-sniffer: 4.0.0
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.22
+ parse5: 7.3.0
+ rrweb-cssom: 0.7.1
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 5.1.2
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 3.1.1
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.2.0
+ ws: 8.18.3
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ jsdom@26.1.0:
+ dependencies:
+ cssstyle: 4.6.0
+ data-urls: 5.0.0
+ decimal.js: 10.5.0
+ html-encoding-sniffer: 4.0.0
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.22
+ parse5: 7.3.0
+ rrweb-cssom: 0.8.0
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 5.1.2
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 3.1.1
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.2.0
+ ws: 8.18.3
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
jsesc@3.0.2: {}
jsesc@3.1.0: {}
@@ -16527,6 +17423,10 @@ snapshots:
optionalDependencies:
graceful-fs: 4.2.11
+ jsonfile@3.0.1:
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
jsonfile@4.0.0:
optionalDependencies:
graceful-fs: 4.2.11
@@ -16947,6 +17847,11 @@ snapshots:
mimic-fn: 2.1.0
p-is-promise: 2.1.0
+ mem@8.1.1:
+ dependencies:
+ map-age-cleaner: 0.1.3
+ mimic-fn: 3.1.0
+
memory-streams@0.1.3:
dependencies:
readable-stream: 1.0.34
@@ -16966,6 +17871,8 @@ snapshots:
type-fest: 1.4.0
yargs-parser: 20.2.9
+ meow@13.2.0: {}
+
merge-descriptors@1.0.3: {}
merge-stream@2.0.0: {}
@@ -17056,6 +17963,8 @@ snapshots:
mimic-fn@2.1.0: {}
+ mimic-fn@3.1.0: {}
+
mimic-fn@4.0.0: {}
mimic-function@5.0.1: {}
@@ -17175,6 +18084,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ mr-dep-walk@1.4.0:
+ dependencies:
+ acorn: 5.7.4
+ amd-name-resolver: 0.0.6
+ fs-extra: 3.0.1
+
ms@2.0.0: {}
ms@2.1.3: {}
@@ -17326,6 +18241,8 @@ snapshots:
dependencies:
boolbase: 1.0.0
+ nwsapi@2.2.22: {}
+
object-assign@4.1.1: {}
object-hash@1.3.1: {}
@@ -17556,6 +18473,10 @@ snapshots:
parse5@6.0.1: {}
+ parse5@7.3.0:
+ dependencies:
+ entities: 6.0.1
+
parseurl@1.3.3: {}
path-exists@3.0.0: {}
@@ -17614,6 +18535,8 @@ snapshots:
picomatch@2.3.1: {}
+ picomatch@4.0.3: {}
+
pidtree@0.6.0: {}
pify@2.3.0: {}
@@ -18154,6 +19077,34 @@ snapshots:
sprintf-js: 1.1.3
optional: true
+ rollup@4.53.3:
+ dependencies:
+ '@types/estree': 1.0.8
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.53.3
+ '@rollup/rollup-android-arm64': 4.53.3
+ '@rollup/rollup-darwin-arm64': 4.53.3
+ '@rollup/rollup-darwin-x64': 4.53.3
+ '@rollup/rollup-freebsd-arm64': 4.53.3
+ '@rollup/rollup-freebsd-x64': 4.53.3
+ '@rollup/rollup-linux-arm-gnueabihf': 4.53.3
+ '@rollup/rollup-linux-arm-musleabihf': 4.53.3
+ '@rollup/rollup-linux-arm64-gnu': 4.53.3
+ '@rollup/rollup-linux-arm64-musl': 4.53.3
+ '@rollup/rollup-linux-loong64-gnu': 4.53.3
+ '@rollup/rollup-linux-ppc64-gnu': 4.53.3
+ '@rollup/rollup-linux-riscv64-gnu': 4.53.3
+ '@rollup/rollup-linux-riscv64-musl': 4.53.3
+ '@rollup/rollup-linux-s390x-gnu': 4.53.3
+ '@rollup/rollup-linux-x64-gnu': 4.53.3
+ '@rollup/rollup-linux-x64-musl': 4.53.3
+ '@rollup/rollup-openharmony-arm64': 4.53.3
+ '@rollup/rollup-win32-arm64-msvc': 4.53.3
+ '@rollup/rollup-win32-ia32-msvc': 4.53.3
+ '@rollup/rollup-win32-x64-gnu': 4.53.3
+ '@rollup/rollup-win32-x64-msvc': 4.53.3
+ fsevents: 2.3.3
+
route-recognizer@0.3.4: {}
router_js@8.0.6(route-recognizer@0.3.4)(rsvp@4.8.5):
@@ -18162,6 +19113,10 @@ snapshots:
route-recognizer: 0.3.4
rsvp: 4.8.5
+ rrweb-cssom@0.7.1: {}
+
+ rrweb-cssom@0.8.0: {}
+
rsvp@3.2.1: {}
rsvp@3.6.2: {}
@@ -18251,6 +19206,10 @@ snapshots:
sax@1.2.4: {}
+ saxes@6.0.0:
+ dependencies:
+ xmlchars: 2.2.0
+
schema-utils@2.7.1:
dependencies:
'@types/json-schema': 7.0.15
@@ -18281,6 +19240,24 @@ snapshots:
semver@7.7.2: {}
+ send@0.18.0:
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
send@0.19.0:
dependencies:
debug: 2.6.9
@@ -18535,6 +19512,8 @@ snapshots:
source-map-url@0.3.0: {}
+ source-map-url@0.4.1: {}
+
source-map@0.4.4:
dependencies:
amdefine: 1.0.1
@@ -18867,6 +19846,8 @@ snapshots:
unquote: 1.1.1
util.promisify: 1.0.1
+ symbol-tree@3.2.4: {}
+
symlink-or-copy@1.3.1: {}
sync-disk-cache@1.3.4:
@@ -19077,10 +20058,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ tinyglobby@0.2.15:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+
tippy.js@6.3.7:
dependencies:
'@popperjs/core': 2.11.8
+ tldts-core@6.1.86: {}
+
+ tldts@6.1.86:
+ dependencies:
+ tldts-core: 6.1.86
+
tmp@0.2.5: {}
tmpl@1.0.5: {}
@@ -19096,8 +20088,16 @@ snapshots:
'@tokenizer/token': 0.3.0
ieee754: 1.2.1
+ tough-cookie@5.1.2:
+ dependencies:
+ tldts: 6.1.86
+
tr46@0.0.3: {}
+ tr46@5.1.1:
+ dependencies:
+ punycode: 2.3.1
+
tracked-built-ins@4.0.0(@babel/core@7.27.1):
dependencies:
'@embroider/addon-shim': 1.10.0
@@ -19381,8 +20381,28 @@ snapshots:
unist-util-stringify-position: 2.0.3
vfile-message: 2.0.4
+ vite@6.4.1(@types/node@22.15.17)(jiti@2.4.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.5.1):
+ dependencies:
+ esbuild: 0.25.9
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+ postcss: 8.5.3
+ rollup: 4.53.3
+ tinyglobby: 0.2.15
+ optionalDependencies:
+ '@types/node': 22.15.17
+ fsevents: 2.3.3
+ jiti: 2.4.2
+ sass: 1.88.0
+ terser: 5.39.1
+ yaml: 2.5.1
+
w3c-keyname@2.2.8: {}
+ w3c-xmlserializer@5.0.0:
+ dependencies:
+ xml-name-validator: 5.0.0
+
walk-sync@0.2.7:
dependencies:
ensure-posix-path: 1.1.1
@@ -19444,6 +20464,8 @@ snapshots:
webidl-conversions@3.0.1: {}
+ webidl-conversions@7.0.0: {}
+
webpack-sources@3.2.3: {}
webpack@5.99.8(esbuild@0.25.9):
@@ -19485,6 +20507,17 @@ snapshots:
websocket-extensions@0.1.4: {}
+ whatwg-encoding@3.1.1:
+ dependencies:
+ iconv-lite: 0.6.3
+
+ whatwg-mimetype@4.0.0: {}
+
+ whatwg-url@14.2.0:
+ dependencies:
+ tr46: 5.1.1
+ webidl-conversions: 7.0.0
+
whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
@@ -19597,10 +20630,16 @@ snapshots:
ws@8.17.1: {}
+ ws@8.18.3: {}
+
xdg-basedir@4.0.0: {}
+ xml-name-validator@5.0.0: {}
+
xmlbuilder@15.1.1: {}
+ xmlchars@2.2.0: {}
+
y18n@5.0.8: {}
yallist@3.1.1: {}
diff --git a/ui/admin/.gitignore b/ui/admin/.gitignore
index 6aee20f802..ece7d0fb9e 100644
--- a/ui/admin/.gitignore
+++ b/ui/admin/.gitignore
@@ -1,3 +1,5 @@
+/tmp/
+
# compiled output
/dist/
/declarations/
diff --git a/ui/admin/app/app.js b/ui/admin/app/app.js
index e9a333fa75..085a900f26 100644
--- a/ui/admin/app/app.js
+++ b/ui/admin/app/app.js
@@ -6,12 +6,25 @@
import Application from '@ember/application';
import Resolver from 'ember-resolver';
import loadInitializers from 'ember-load-initializers';
-import config from 'admin/config/environment';
+import config from "./config/environment";
+import {
+ macroCondition,
+ importSync,
+ getOwnConfig,
+ isTesting,
+} from '@embroider/macros';
+
+import compatModules from "@embroider/virtual/compat-modules";
export default class App extends Application {
modulePrefix = config.modulePrefix;
podModulePrefix = config.podModulePrefix;
- Resolver = Resolver;
+ Resolver = Resolver.withModules(compatModules);
}
-loadInitializers(App, config.modulePrefix);
+loadInitializers(App, config.modulePrefix, compatModules);
+
+if (macroCondition(getOwnConfig().startMirageWithApp && !isTesting())) {
+ const startServer = importSync('api/mirage/config').default;
+ startServer({});
+}
diff --git a/ui/admin/app/components/form/credential/index.js b/ui/admin/app/components/form/credential/index.js
index 2b9153d119..a016e24211 100644
--- a/ui/admin/app/components/form/credential/index.js
+++ b/ui/admin/app/components/form/credential/index.js
@@ -10,21 +10,18 @@ import {
TYPE_CREDENTIAL_USERNAME_PASSWORD,
TYPE_CREDENTIAL_SSH_PRIVATE_KEY,
TYPE_CREDENTIAL_JSON,
- TYPE_CREDENTIAL_USERNAME_PASSWORD_DOMAIN,
TYPE_CREDENTIAL_PASSWORD,
} from 'api/models/credential';
import usernamePasswordFormComponent from './username_password';
import sshPrivateKeyFormComponent from './ssh_private_key';
import jsonFormComponent from './json';
-import usernamePasswordDomainFormComponent from './username_password_domain';
+// import usernamePasswordDomainFormComponent from './username_password_domain';
import passwordFormComponent from './password';
const modelTypeToComponent = {
[TYPE_CREDENTIAL_USERNAME_PASSWORD]: usernamePasswordFormComponent,
[TYPE_CREDENTIAL_SSH_PRIVATE_KEY]: sshPrivateKeyFormComponent,
[TYPE_CREDENTIAL_JSON]: jsonFormComponent,
- [TYPE_CREDENTIAL_USERNAME_PASSWORD_DOMAIN]:
- usernamePasswordDomainFormComponent,
[TYPE_CREDENTIAL_PASSWORD]: passwordFormComponent,
};
diff --git a/ui/admin/app/components/form/host-set/index.hbs b/ui/admin/app/components/form/host-set/index.hbs
index 9e36eb9e9d..696ba7b018 100644
--- a/ui/admin/app/components/form/host-set/index.hbs
+++ b/ui/admin/app/components/form/host-set/index.hbs
@@ -3,10 +3,9 @@
SPDX-License-Identifier: BUSL-1.1
}}
-{{component
- (concat 'form/host-set/' @model.compositeType)
- model=@model
- edit=@edit
- submit=@submit
- cancel=@cancel
-}}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/ui/admin/app/components/form/host-set/index.js b/ui/admin/app/components/form/host-set/index.js
new file mode 100644
index 0000000000..b7704cecce
--- /dev/null
+++ b/ui/admin/app/components/form/host-set/index.js
@@ -0,0 +1,28 @@
+import Component from '@glimmer/component';
+import { assert } from '@ember/debug';
+import awsFormComponent from './aws';
+import azureFormComponent from './azure';
+import gcpFormComponent from './gcp';
+import staticFormComponent from './static';
+
+const modelCompositeTypeToComponent = {
+ aws: awsFormComponent,
+ azure: azureFormComponent,
+ gcp: gcpFormComponent,
+ static: staticFormComponent,
+};
+
+export default class FormHostSetIndex extends Component {
+ /**
+ * returns the associated host set form component for the model's composite type
+ */
+ get hostSetForm() {
+ const component =
+ modelCompositeTypeToComponent[this.args.model.compositeType];
+ assert(
+ `Mapped component must exist for host set composite type: ${this.args.model.compositeType}`,
+ component,
+ );
+ return component;
+ }
+}
diff --git a/ui/admin/app/components/form/managed-group/index.hbs b/ui/admin/app/components/form/managed-group/index.hbs
index a48d5068f0..9a2b2e894a 100644
--- a/ui/admin/app/components/form/managed-group/index.hbs
+++ b/ui/admin/app/components/form/managed-group/index.hbs
@@ -4,13 +4,12 @@
}}
{{#if @model.type}}
- {{component
- (concat 'form/managed-group/' @model.type)
- model=@model
- edit=@edit
- submit=@submit
- cancel=@cancel
- removeItemByIndex=@removeItemByIndex
- addStringItem=@addStringItem
- }}
+
{{/if}}
\ No newline at end of file
diff --git a/ui/admin/app/components/form/managed-group/index.js b/ui/admin/app/components/form/managed-group/index.js
new file mode 100644
index 0000000000..6b2a88e52d
--- /dev/null
+++ b/ui/admin/app/components/form/managed-group/index.js
@@ -0,0 +1,23 @@
+import Component from '@glimmer/component';
+import { assert } from '@ember/debug';
+import ldapFormComponent from './ldap';
+import oidcFormComponent from './oidc';
+
+const modelTypeToComponent = {
+ ldap: ldapFormComponent,
+ oidc: oidcFormComponent,
+};
+
+export default class FormManagedGroupIndex extends Component {
+ /**
+ * returns the associated managed group form component for the model's type
+ */
+ get managedGroupForm() {
+ const component = modelTypeToComponent[this.args.model.type];
+ assert(
+ `Mapped component must exist for account type: ${this.args.model.type}`,
+ component,
+ );
+ return component;
+ }
+}
diff --git a/ui/admin/app/components/form/storage-bucket/index.hbs b/ui/admin/app/components/form/storage-bucket/index.hbs
index c0c814d3a4..aef78d9b6d 100644
--- a/ui/admin/app/components/form/storage-bucket/index.hbs
+++ b/ui/admin/app/components/form/storage-bucket/index.hbs
@@ -3,17 +3,16 @@
SPDX-License-Identifier: BUSL-1.1
}}
{{#if @model.type}}
- {{component
- (concat 'form/storage-bucket/' @model.compositeType)
- model=@model
- submit=@submit
- cancel=@cancel
- updateScope=this.updateScope
- scopes=@scopes
- pluginTypes=this.pluginTypes
- changePluginType=@changePluginType
- changeCredentialType=@changeCredentialType
- rollbackSecretAttrs=this.rollbackSecretAttrs
- toggleDisableCredentialRotation=this.toggleDisableCredentialRotation
- }}
+
{{/if}}
\ No newline at end of file
diff --git a/ui/admin/app/components/form/storage-bucket/index.js b/ui/admin/app/components/form/storage-bucket/index.js
index ba174e2078..288d09278a 100644
--- a/ui/admin/app/components/form/storage-bucket/index.js
+++ b/ui/admin/app/components/form/storage-bucket/index.js
@@ -7,11 +7,18 @@ import Component from '@glimmer/component';
import { action } from '@ember/object';
import { service } from '@ember/service';
import { set } from '@ember/object';
-
+import { assert } from '@ember/debug';
import {
TYPE_CREDENTIAL_DYNAMIC,
TYPES_STORAGE_BUCKET_PLUGIN,
} from 'api/models/storage-bucket';
+import awsFormComponent from './aws';
+import minioFormComponent from './minio';
+
+const modelCompositeTypeToComponent = {
+ aws: awsFormComponent,
+ minio: minioFormComponent,
+};
export default class FormStorageBucketComponent extends Component {
// =attributes
@@ -24,6 +31,19 @@ export default class FormStorageBucketComponent extends Component {
return TYPES_STORAGE_BUCKET_PLUGIN;
}
+ /**
+ * returns the associated storage bucket form component for the model's composite type
+ */
+ get storageBucketFormComponent() {
+ const component =
+ modelCompositeTypeToComponent[this.args.model.compositeType];
+ assert(
+ `Mapped component must exist for storage bucket composite type: ${this.args.model.compositeType}`,
+ component,
+ );
+ return component;
+ }
+
// =actions
@action
updateScope(event) {
diff --git a/ui/admin/app/components/form/target/index.hbs b/ui/admin/app/components/form/target/index.hbs
index 167fdf6605..b325cdd8f9 100644
--- a/ui/admin/app/components/form/target/index.hbs
+++ b/ui/admin/app/components/form/target/index.hbs
@@ -4,12 +4,11 @@
}}
{{#if @model.type}}
- {{component
- (concat 'form/target/' @model.type)
- model=@model
- submit=@submit
- cancel=@cancel
- globalScope=@globalScope
- changeType=@changeType
- }}
+
{{/if}}
\ No newline at end of file
diff --git a/ui/admin/app/components/form/target/index.js b/ui/admin/app/components/form/target/index.js
new file mode 100644
index 0000000000..e66c50cd94
--- /dev/null
+++ b/ui/admin/app/components/form/target/index.js
@@ -0,0 +1,22 @@
+import Component from '@glimmer/component';
+import { assert } from '@ember/debug';
+import rdpTargetForm from './rdp';
+import sshTargetForm from './ssh';
+import tcpTargetForm from './tcp';
+
+const modelTypeToComponent = {
+ rdp: rdpTargetForm,
+ ssh: sshTargetForm,
+ tcp: tcpTargetForm,
+};
+
+export default class FormTargetIndex extends Component {
+ get targetFormComponent() {
+ const component = modelTypeToComponent[this.args.model.type];
+ assert(
+ `Mapped component must exist for target type: ${this.args.model.type}`,
+ component,
+ );
+ return component;
+ }
+}
diff --git a/ui/admin/app/components/form/user/add-accounts/index.js b/ui/admin/app/components/form/user/add-accounts/index.js
index 8ed6da9845..3242ef7c59 100644
--- a/ui/admin/app/components/form/user/add-accounts/index.js
+++ b/ui/admin/app/components/form/user/add-accounts/index.js
@@ -10,7 +10,7 @@ import { service } from '@ember/service';
export default class FormUserAddAccountsComponent extends Component {
// =properties
- @service can;
+ @service abilities;
/**
* Array of selected account IDs.
* @type {EmberArray}
@@ -36,7 +36,7 @@ export default class FormUserAddAccountsComponent extends Component {
const notAddedAccounts = this.args.accounts.filter(
(account) =>
!alreadyAddedAccountIDs.includes(account.id) &&
- this.can.can('addAccount user', this.args.model, { account }),
+ this.abilities.can('addAccount user', this.args.model, { account }),
);
return notAddedAccounts;
}
diff --git a/ui/admin/app/config/environment.js b/ui/admin/app/config/environment.js
new file mode 100644
index 0000000000..7b34c2017b
--- /dev/null
+++ b/ui/admin/app/config/environment.js
@@ -0,0 +1,27 @@
+import loadConfigFromMeta from '@embroider/config-meta-loader';
+import { assert } from '@ember/debug';
+
+const config = loadConfigFromMeta('admin');
+
+assert(
+ 'config is not an object',
+ typeof config === 'object' && config !== null
+);
+assert(
+ 'modulePrefix was not detected on your config',
+ 'modulePrefix' in config && typeof config.modulePrefix === 'string'
+);
+assert(
+ 'locationType was not detected on your config',
+ 'locationType' in config && typeof config.locationType === 'string'
+);
+assert(
+ 'rootURL was not detected on your config',
+ 'rootURL' in config && typeof config.rootURL === 'string'
+);
+assert(
+ 'APP was not detected on your config',
+ 'APP' in config && typeof config.APP === 'object'
+);
+
+export default config;
diff --git a/ui/admin/app/controllers/account/change-password.js b/ui/admin/app/controllers/account/change-password.js
index e3b68ad599..e531973145 100644
--- a/ui/admin/app/controllers/account/change-password.js
+++ b/ui/admin/app/controllers/account/change-password.js
@@ -6,7 +6,7 @@
import Controller from '@ember/controller';
import { service } from '@ember/service';
import { action } from '@ember/object';
-import { notifySuccess, notifyError } from 'core/decorators/notify';
+import { notifyError } from 'core/decorators/notify';
export default class AccountChangePasswordController extends Controller {
// =services
@@ -24,7 +24,6 @@ export default class AccountChangePasswordController extends Controller {
*/
@action
@notifyError(({ message }) => message, { catch: true })
- @notifySuccess('notifications.save-success')
async changePassword(account, currentPassword, newPassword) {
await account.changePassword(currentPassword, newPassword);
// Transition to index after success. We ignore errors in the transition,
diff --git a/ui/admin/app/controllers/scopes/scope/aliases/index.js b/ui/admin/app/controllers/scopes/scope/aliases/index.js
index 5a1a72640f..1684f08b55 100644
--- a/ui/admin/app/controllers/scopes/scope/aliases/index.js
+++ b/ui/admin/app/controllers/scopes/scope/aliases/index.js
@@ -14,7 +14,7 @@ import { confirm } from 'core/decorators/confirm';
export default class ScopesScopeAliasesIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -41,10 +41,10 @@ export default class ScopesScopeAliasesIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scope, {
+ const canList = this.abilities.can('list model', this.scope, {
collection: 'aliases',
});
- const canCreate = this.can.can('create model', this.scope, {
+ const canCreate = this.abilities.can('create model', this.scope, {
collection: 'aliases',
});
const resource = this.intl.t('resources.alias.title_plural');
@@ -84,7 +84,7 @@ export default class ScopesScopeAliasesIndexController extends Controller {
)
async save(alias) {
await alias.save();
- if (this.can.can('read model', alias)) {
+ if (this.abilities.can('read model', alias)) {
await this.router.transitionTo('scopes.scope.aliases.alias', alias);
} else {
this.router.transitionTo('scopes.scope.aliases');
diff --git a/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method/accounts/index.js b/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method/accounts/index.js
index fbde5892cf..c2e74d0b5e 100644
--- a/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method/accounts/index.js
+++ b/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method/accounts/index.js
@@ -15,7 +15,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsIndexController ext
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -28,10 +28,10 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsIndexController ext
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.authMethod, {
+ const canList = this.abilities.can('list model', this.authMethod, {
collection: 'accounts',
});
- const canCreate = this.can.can('create model', this.authMethod, {
+ const canCreate = this.abilities.can('create model', this.authMethod, {
collection: 'accounts',
});
const resource = this.intl.t('resources.account.title_plural');
@@ -80,7 +80,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsIndexController ext
adapterOptions.password = password;
}
await account.save({ adapterOptions });
- if (this.can.can('read model', account)) {
+ if (this.abilities.can('read model', account)) {
await this.router.transitionTo(
'scopes.scope.auth-methods.auth-method.accounts.account',
account,
diff --git a/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method/managed-groups/index.js b/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method/managed-groups/index.js
index 3087ad48b5..c60ef18e64 100644
--- a/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method/managed-groups/index.js
+++ b/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method/managed-groups/index.js
@@ -15,7 +15,7 @@ export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsIndexControlle
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -28,10 +28,10 @@ export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsIndexControlle
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.authMethod, {
+ const canList = this.abilities.can('list model', this.authMethod, {
collection: 'managed-groups',
});
- const canCreate = this.can.can('create model', this.authMethod, {
+ const canCreate = this.abilities.can('create model', this.authMethod, {
collection: 'managed-groups',
});
const resource = this.intl.t('resources.managed-group.title_plural');
@@ -75,7 +75,7 @@ export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsIndexControlle
)
async save(managedGroup) {
await managedGroup.save();
- if (this.can.can('read model', managedGroup)) {
+ if (this.abilities.can('read model', managedGroup)) {
await this.router.transitionTo(
'scopes.scope.auth-methods.auth-method.managed-groups.managed-group',
managedGroup,
diff --git a/ui/admin/app/controllers/scopes/scope/auth-methods/index.js b/ui/admin/app/controllers/scopes/scope/auth-methods/index.js
index fb00a0fd71..0eb6d46867 100644
--- a/ui/admin/app/controllers/scopes/scope/auth-methods/index.js
+++ b/ui/admin/app/controllers/scopes/scope/auth-methods/index.js
@@ -16,7 +16,7 @@ export default class ScopesScopeAuthMethodsIndexController extends Controller {
// =services
@service router;
- @service can;
+ @service abilities;
@service intl;
@service store;
@@ -82,10 +82,10 @@ export default class ScopesScopeAuthMethodsIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scopeModel, {
+ const canList = this.abilities.can('list model', this.scopeModel, {
collection: 'auth-methods',
});
- const canCreate = this.can.can('create model', this.scopeModel, {
+ const canCreate = this.abilities.can('create model', this.scopeModel, {
collection: 'auth-methods',
});
const resource = this.intl.t('resources.auth-method.title_plural');
@@ -148,7 +148,7 @@ export default class ScopesScopeAuthMethodsIndexController extends Controller {
)
async save(authMethod) {
await authMethod.save();
- if (this.can.can('read model', authMethod)) {
+ if (this.abilities.can('read model', authMethod)) {
await this.router.transitionTo(
'scopes.scope.auth-methods.auth-method',
authMethod,
diff --git a/ui/admin/app/controllers/scopes/scope/credential-stores/credential-store/credential-libraries/index.js b/ui/admin/app/controllers/scopes/scope/credential-stores/credential-store/credential-libraries/index.js
index 34e554bcbb..37c76c5bd1 100644
--- a/ui/admin/app/controllers/scopes/scope/credential-stores/credential-store/credential-libraries/index.js
+++ b/ui/admin/app/controllers/scopes/scope/credential-stores/credential-store/credential-libraries/index.js
@@ -15,7 +15,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrari
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -28,10 +28,10 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrari
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.credentialStore, {
+ const canList = this.abilities.can('list model', this.credentialStore, {
collection: 'credential-libraries',
});
- const canCreate = this.can.can('create model', this.credentialStore, {
+ const canCreate = this.abilities.can('create model', this.credentialStore, {
collection: 'credential-libraries',
});
const resource = this.intl.t('resources.credential-library.title_plural');
@@ -75,7 +75,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrari
)
async save(credentialLibrary) {
await credentialLibrary.save();
- if (this.can.can('read model', credentialLibrary)) {
+ if (this.abilities.can('read model', credentialLibrary)) {
await this.router.transitionTo(
'scopes.scope.credential-stores.credential-store.credential-libraries.credential-library',
credentialLibrary,
diff --git a/ui/admin/app/controllers/scopes/scope/credential-stores/credential-store/credentials/index.js b/ui/admin/app/controllers/scopes/scope/credential-stores/credential-store/credentials/index.js
index dad3d9a101..201644f323 100644
--- a/ui/admin/app/controllers/scopes/scope/credential-stores/credential-store/credentials/index.js
+++ b/ui/admin/app/controllers/scopes/scope/credential-stores/credential-store/credentials/index.js
@@ -15,7 +15,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsIndexC
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -28,10 +28,10 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsIndexC
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.credentialStore, {
+ const canList = this.abilities.can('list model', this.credentialStore, {
collection: 'credentials',
});
- const canCreate = this.can.can('create model', this.credentialStore, {
+ const canCreate = this.abilities.can('create model', this.credentialStore, {
collection: 'credentials',
});
const resource = this.intl.t('resources.credential.title_plural');
@@ -75,7 +75,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsIndexC
)
async save(credential) {
await credential.save();
- if (this.can.can('read credential', credential)) {
+ if (this.abilities.can('read credential', credential)) {
await this.router.transitionTo(
'scopes.scope.credential-stores.credential-store.credentials.credential',
credential,
diff --git a/ui/admin/app/controllers/scopes/scope/credential-stores/index.js b/ui/admin/app/controllers/scopes/scope/credential-stores/index.js
index f2ddbe3b3d..1b9c9c362b 100644
--- a/ui/admin/app/controllers/scopes/scope/credential-stores/index.js
+++ b/ui/admin/app/controllers/scopes/scope/credential-stores/index.js
@@ -15,7 +15,7 @@ import { TYPES_CREDENTIAL_STORE } from 'api/models/credential-store';
export default class ScopesScopeCredentialStoresIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service router;
@service intl;
@@ -58,10 +58,10 @@ export default class ScopesScopeCredentialStoresIndexController extends Controll
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scope, {
+ const canList = this.abilities.can('list model', this.scope, {
collection: 'credential-stores',
});
- const canCreate = this.can.can('create model', this.scope, {
+ const canCreate = this.abilities.can('create model', this.scope, {
collection: 'credential-stores',
});
const resource = this.intl.t('resources.credential-store.title_plural');
@@ -88,7 +88,7 @@ export default class ScopesScopeCredentialStoresIndexController extends Controll
@notifySuccess('notifications.save-success')
async save(credentialStore) {
await credentialStore.save();
- if (this.can.can('read model', credentialStore)) {
+ if (this.abilities.can('read model', credentialStore)) {
await this.router.transitionTo(
'scopes.scope.credential-stores.credential-store',
credentialStore,
diff --git a/ui/admin/app/controllers/scopes/scope/groups/index.js b/ui/admin/app/controllers/scopes/scope/groups/index.js
index 110e994a2f..eb76be6994 100644
--- a/ui/admin/app/controllers/scopes/scope/groups/index.js
+++ b/ui/admin/app/controllers/scopes/scope/groups/index.js
@@ -14,7 +14,7 @@ import { notifySuccess, notifyError } from 'core/decorators/notify';
export default class ScopesScopeGroupsIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -41,10 +41,10 @@ export default class ScopesScopeGroupsIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scope, {
+ const canList = this.abilities.can('list model', this.scope, {
collection: 'groups',
});
- const canCreate = this.can.can('create model', this.scope, {
+ const canCreate = this.abilities.can('create model', this.scope, {
collection: 'groups',
});
const resource = this.intl.t('resources.group.title_plural');
@@ -84,7 +84,7 @@ export default class ScopesScopeGroupsIndexController extends Controller {
)
async save(group) {
await group.save();
- if (this.can.can('read model', group)) {
+ if (this.abilities.can('read model', group)) {
await this.router.transitionTo('scopes.scope.groups.group', group);
} else {
this.router.transitionTo('scopes.scope.groups');
diff --git a/ui/admin/app/controllers/scopes/scope/host-catalogs/host-catalog/host-sets/index.js b/ui/admin/app/controllers/scopes/scope/host-catalogs/host-catalog/host-sets/index.js
index 1dca4d144b..68538cfa7b 100644
--- a/ui/admin/app/controllers/scopes/scope/host-catalogs/host-catalog/host-sets/index.js
+++ b/ui/admin/app/controllers/scopes/scope/host-catalogs/host-catalog/host-sets/index.js
@@ -15,7 +15,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsIndexController e
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@service store;
@@ -29,10 +29,10 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsIndexController e
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.hostCatalog, {
+ const canList = this.abilities.can('list model', this.hostCatalog, {
collection: 'host-sets',
});
- const canCreate = this.can.can('create model', this.hostCatalog, {
+ const canCreate = this.abilities.can('create model', this.hostCatalog, {
collection: 'host-sets',
});
const resource = this.intl.t('resources.host-set.title_plural');
@@ -79,7 +79,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsIndexController e
// Fetch newest host set as updates to host set attributes cause an async db update which
// updates the version again and can cause a version mismatch if the host set is updated
// again and we haven't fetched the newest version.
- if (this.can.can('read host-set', hostSet)) {
+ if (this.abilities.can('read host-set', hostSet)) {
const newestHostSet = await this.store.findRecord(
'host-set',
hostSet.id,
@@ -93,7 +93,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsIndexController e
await hostSet.save();
- if (this.can.can('read host-set', hostSet)) {
+ if (this.abilities.can('read host-set', hostSet)) {
await this.router.transitionTo(
'scopes.scope.host-catalogs.host-catalog.host-sets.host-set',
hostSet,
diff --git a/ui/admin/app/controllers/scopes/scope/host-catalogs/host-catalog/hosts/index.js b/ui/admin/app/controllers/scopes/scope/host-catalogs/host-catalog/hosts/index.js
index 2b78ba840c..547a78e2c7 100644
--- a/ui/admin/app/controllers/scopes/scope/host-catalogs/host-catalog/hosts/index.js
+++ b/ui/admin/app/controllers/scopes/scope/host-catalogs/host-catalog/hosts/index.js
@@ -15,7 +15,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostsIndexController exte
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -28,10 +28,10 @@ export default class ScopesScopeHostCatalogsHostCatalogHostsIndexController exte
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.hostCatalog, {
+ const canList = this.abilities.can('list model', this.hostCatalog, {
collection: 'hosts',
});
- const canCreate = this.can.can('create model', this.hostCatalog, {
+ const canCreate = this.abilities.can('create model', this.hostCatalog, {
collection: 'hosts',
});
const resource = this.intl.t('resources.host.title_plural');
@@ -74,7 +74,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostsIndexController exte
)
async save(host) {
await host.save();
- if (this.can.can('read model', host)) {
+ if (this.abilities.can('read model', host)) {
await this.router.transitionTo(
'scopes.scope.host-catalogs.host-catalog.hosts.host',
host,
diff --git a/ui/admin/app/controllers/scopes/scope/host-catalogs/index.js b/ui/admin/app/controllers/scopes/scope/host-catalogs/index.js
index 6ec122c8ea..9920317f49 100644
--- a/ui/admin/app/controllers/scopes/scope/host-catalogs/index.js
+++ b/ui/admin/app/controllers/scopes/scope/host-catalogs/index.js
@@ -15,7 +15,7 @@ import { TYPE_CREDENTIAL_STATIC } from 'api/models/host-catalog';
export default class ScopesScopeHostCatalogsIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -42,10 +42,10 @@ export default class ScopesScopeHostCatalogsIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scope, {
+ const canList = this.abilities.can('list model', this.scope, {
collection: 'host-catalogs',
});
- const canCreate = this.can.can('create model', this.scope, {
+ const canCreate = this.abilities.can('create model', this.scope, {
collection: 'host-catalogs',
});
const resource = this.intl.t('resources.host-catalog.title_plural');
@@ -101,7 +101,7 @@ export default class ScopesScopeHostCatalogsIndexController extends Controller {
hostCatalog.credentialType = TYPE_CREDENTIAL_STATIC;
}
await hostCatalog.save();
- if (this.can.can('read host-catalog', hostCatalog)) {
+ if (this.abilities.can('read host-catalog', hostCatalog)) {
await this.router.transitionTo(
'scopes.scope.host-catalogs.host-catalog',
hostCatalog,
diff --git a/ui/admin/app/controllers/scopes/scope/policies/index.js b/ui/admin/app/controllers/scopes/scope/policies/index.js
index bfac3659f4..e75e5d1ac4 100644
--- a/ui/admin/app/controllers/scopes/scope/policies/index.js
+++ b/ui/admin/app/controllers/scopes/scope/policies/index.js
@@ -13,7 +13,7 @@ import { notifySuccess, notifyError } from 'core/decorators/notify';
export default class ScopesScopePoliciesIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -26,10 +26,10 @@ export default class ScopesScopePoliciesIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scope, {
+ const canList = this.abilities.can('list model', this.scope, {
collection: 'policies',
});
- const canCreate = this.can.can('create model', this.scope, {
+ const canCreate = this.abilities.can('create model', this.scope, {
collection: 'policies',
});
const resource = this.intl.t('resources.policy.title_plural');
@@ -67,7 +67,7 @@ export default class ScopesScopePoliciesIndexController extends Controller {
@notifySuccess('notifications.save-success')
async save(policy) {
await policy.save();
- if (this.can.can('read model', policy)) {
+ if (this.abilities.can('read model', policy)) {
await this.router.transitionTo('scopes.scope.policies.policy', policy);
} else {
await this.router.transitionTo('scopes.scope.policies');
diff --git a/ui/admin/app/controllers/scopes/scope/roles/index.js b/ui/admin/app/controllers/scopes/scope/roles/index.js
index 8a621c14f6..bf1da4c4a3 100644
--- a/ui/admin/app/controllers/scopes/scope/roles/index.js
+++ b/ui/admin/app/controllers/scopes/scope/roles/index.js
@@ -15,7 +15,7 @@ import { GRANT_SCOPE_THIS } from 'api/models/role';
export default class ScopesScopeRolesIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -44,10 +44,10 @@ export default class ScopesScopeRolesIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scope, {
+ const canList = this.abilities.can('list model', this.scope, {
collection: 'roles',
});
- const canCreate = this.can.can('create model', this.scope, {
+ const canCreate = this.abilities.can('create model', this.scope, {
collection: 'roles',
});
const resource = this.intl.t('resources.role.title_plural');
@@ -98,7 +98,7 @@ export default class ScopesScopeRolesIndexController extends Controller {
)
async save(role) {
await role.save();
- if (this.can.can('read model', role)) {
+ if (this.abilities.can('read model', role)) {
await this.router.transitionTo('scopes.scope.roles.role', role);
} else {
this.router.transitionTo('scopes.scope.roles');
diff --git a/ui/admin/app/controllers/scopes/scope/storage-buckets/index.js b/ui/admin/app/controllers/scopes/scope/storage-buckets/index.js
index 1566e63805..7c13dd960c 100644
--- a/ui/admin/app/controllers/scopes/scope/storage-buckets/index.js
+++ b/ui/admin/app/controllers/scopes/scope/storage-buckets/index.js
@@ -14,7 +14,7 @@ import { TYPE_CREDENTIAL_STATIC } from 'api/models/storage-bucket';
export default class ScopesScopeStorageBucketsIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -27,10 +27,10 @@ export default class ScopesScopeStorageBucketsIndexController extends Controller
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list scope', this.scope, {
+ const canList = this.abilities.can('list scope', this.scope, {
collection: 'storage-buckets',
});
- const canCreate = this.can.can('create scope', this.scope, {
+ const canCreate = this.abilities.can('create scope', this.scope, {
collection: 'storage-buckets',
});
const resource = this.intl.t('resources.storage-bucket.title_plural');
diff --git a/ui/admin/app/controllers/scopes/scope/targets/index.js b/ui/admin/app/controllers/scopes/scope/targets/index.js
index 1ef0d70e4a..7ec3d299f2 100644
--- a/ui/admin/app/controllers/scopes/scope/targets/index.js
+++ b/ui/admin/app/controllers/scopes/scope/targets/index.js
@@ -20,7 +20,7 @@ export default class ScopesScopeTargetsIndexController extends Controller {
// =services
@service intl;
- @service can;
+ @service abilities;
@service router;
@service confirm;
@service features;
@@ -80,10 +80,10 @@ export default class ScopesScopeTargetsIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scope, {
+ const canList = this.abilities.can('list model', this.scope, {
collection: 'targets',
});
- const canCreate = this.can.can('create model', this.scope, {
+ const canCreate = this.abilities.can('create model', this.scope, {
collection: 'targets',
});
const resource = this.intl.t('resources.target.title_plural');
@@ -187,7 +187,7 @@ export default class ScopesScopeTargetsIndexController extends Controller {
)
async save(target) {
await target.save();
- if (this.can.can('read model', target)) {
+ if (this.abilities.can('read model', target)) {
await this.router.transitionTo('scopes.scope.targets.target', target);
} else {
this.router.transitionTo('scopes.scope.targets');
diff --git a/ui/admin/app/controllers/scopes/scope/targets/target/index.js b/ui/admin/app/controllers/scopes/scope/targets/target/index.js
index a43cc396d0..7697755fe4 100644
--- a/ui/admin/app/controllers/scopes/scope/targets/target/index.js
+++ b/ui/admin/app/controllers/scopes/scope/targets/target/index.js
@@ -13,7 +13,7 @@ export default class ScopesScopeTargetsTargetIndexController extends Controller
// =services
- @service can;
+ @service abilities;
@service router;
// =attributes
diff --git a/ui/admin/app/controllers/scopes/scope/users/index.js b/ui/admin/app/controllers/scopes/scope/users/index.js
index 32d72f34a2..9283158eab 100644
--- a/ui/admin/app/controllers/scopes/scope/users/index.js
+++ b/ui/admin/app/controllers/scopes/scope/users/index.js
@@ -14,7 +14,7 @@ import { notifySuccess, notifyError } from 'core/decorators/notify';
export default class ScopesScopeUsersIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@tracked sortAttribute;
@@ -41,10 +41,10 @@ export default class ScopesScopeUsersIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list model', this.scope, {
+ const canList = this.abilities.can('list model', this.scope, {
collection: 'users',
});
- const canCreate = this.can.can('create model', this.scope, {
+ const canCreate = this.abilities.can('create model', this.scope, {
collection: 'users',
});
const resource = this.intl.t('resources.user.title_plural');
@@ -98,7 +98,7 @@ export default class ScopesScopeUsersIndexController extends Controller {
)
async save(user) {
await user.save();
- if (this.can.can('read model', user)) {
+ if (this.abilities.can('read model', user)) {
await this.router.transitionTo('scopes.scope.users.user', user);
} else {
this.router.transitionTo('scopes.scope.users');
diff --git a/ui/admin/app/controllers/scopes/scope/workers/index.js b/ui/admin/app/controllers/scopes/scope/workers/index.js
index b72442ba75..3ef925965d 100644
--- a/ui/admin/app/controllers/scopes/scope/workers/index.js
+++ b/ui/admin/app/controllers/scopes/scope/workers/index.js
@@ -14,7 +14,7 @@ import { notifySuccess, notifyError } from 'core/decorators/notify';
export default class ScopesScopeWorkersIndexController extends Controller {
// =services
- @service can;
+ @service abilities;
@service intl;
@service router;
@@ -79,12 +79,16 @@ export default class ScopesScopeWorkersIndexController extends Controller {
* @type {string}
*/
get messageDescription() {
- const canList = this.can.can('list worker', this.scope, {
- collection: 'workers',
- });
- const canCreate = this.can.can('create worker led worker', this.scope, {
+ const canList = this.abilities.can('list worker', this.scope, {
collection: 'workers',
});
+ const canCreate = this.abilities.can(
+ 'create worker led worker',
+ this.scope,
+ {
+ collection: 'workers',
+ },
+ );
const resource = this.intl.t('titles.workers');
let description = 'descriptions.neither-list-nor-create';
@@ -159,7 +163,7 @@ export default class ScopesScopeWorkersIndexController extends Controller {
)
async save(worker) {
await worker.save();
- if (this.can.can('read model', worker)) {
+ if (this.abilities.can('read model', worker)) {
await this.router.transitionTo('scopes.scope.workers.worker', worker);
} else {
this.router.transitionTo('scopes.scope.workers');
diff --git a/ui/admin/app/routes/scopes/scope/aliases/index.js b/ui/admin/app/routes/scopes/scope/aliases/index.js
index d4231eaa65..ed6caa7104 100644
--- a/ui/admin/app/routes/scopes/scope/aliases/index.js
+++ b/ui/admin/app/routes/scopes/scope/aliases/index.js
@@ -11,7 +11,7 @@ export default class ScopesScopeAliasesIndexRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
// =attributes
@@ -69,7 +69,7 @@ export default class ScopesScopeAliasesIndexRoute extends Route {
let totalItems = 0;
if (
- this.can.can('list model', scope, {
+ this.abilities.can('list model', scope, {
collection: 'aliases',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/aliases/new.js b/ui/admin/app/routes/scopes/scope/aliases/new.js
index af8925b4de..eb4867e3c5 100644
--- a/ui/admin/app/routes/scopes/scope/aliases/new.js
+++ b/ui/admin/app/routes/scopes/scope/aliases/new.js
@@ -11,7 +11,7 @@ export default class ScopesScopeAliasesNewRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -22,7 +22,9 @@ export default class ScopesScopeAliasesNewRoute extends Route {
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (
- this.can.cannot('create model', scopeModel, { collection: 'aliases' })
+ this.abilities.cannot('create model', scopeModel, {
+ collection: 'aliases',
+ })
) {
this.router.replaceWith('scopes.scope.aliases');
}
diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method.js b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method.js
index 68d3eb6345..e22ee7f25e 100644
--- a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method.js
+++ b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method.js
@@ -11,7 +11,7 @@ export default class ScopesScopeAuthMethodsAuthMethodRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts.js b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts.js
index 70f4b89169..dd8b011c3f 100644
--- a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts.js
+++ b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts.js
@@ -10,7 +10,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route
// =services
@service store;
- @service can;
+ @service abilities;
// =methods
@@ -24,7 +24,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route
let accounts;
if (
- this.can.can('list model', authMethod, {
+ this.abilities.can('list model', authMethod, {
collection: 'accounts',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts/account.js b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts/account.js
index da60edc07f..6280a615ee 100644
--- a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts/account.js
+++ b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts/account.js
@@ -10,7 +10,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsAccountRoute extend
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts/new.js b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts/new.js
index df0ddadadb..d22ee658f4 100644
--- a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts/new.js
+++ b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/accounts/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsNewRoute extends Ro
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -21,7 +21,9 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsNewRoute extends Ro
beforeModel() {
const authMethod = this.modelFor('scopes.scope.auth-methods.auth-method');
if (
- this.can.cannot('create model', authMethod, { collection: 'accounts' })
+ this.abilities.cannot('create model', authMethod, {
+ collection: 'accounts',
+ })
) {
this.router.replaceWith('scopes.scope.auth-methods.auth-method.accounts');
}
diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/managed-groups.js b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/managed-groups.js
index 34999d3425..146da87339 100644
--- a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/managed-groups.js
+++ b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/managed-groups.js
@@ -10,7 +10,7 @@ export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsRoute extends
// =services
@service store;
- @service can;
+ @service abilities;
//=methods
@@ -21,7 +21,7 @@ export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsRoute extends
async model() {
const authMethod = this.modelFor('scopes.scope.auth-methods.auth-method');
const { id: auth_method_id } = authMethod;
- const canListManagedGroups = this.can.can('list model', authMethod, {
+ const canListManagedGroups = this.abilities.can('list model', authMethod, {
collection: 'managed-groups',
});
let managedGroups;
diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/managed-groups/new.js b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/managed-groups/new.js
index 2d810f3789..44119b1cef 100644
--- a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/managed-groups/new.js
+++ b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method/managed-groups/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsNewRoute exten
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -21,7 +21,7 @@ export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsNewRoute exten
beforeModel() {
const authMethod = this.modelFor('scopes.scope.auth-methods.auth-method');
if (
- this.can.cannot('create model', authMethod, {
+ this.abilities.cannot('create model', authMethod, {
collection: 'managed-groups',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/index.js b/ui/admin/app/routes/scopes/scope/auth-methods/index.js
index dd52715ee7..9a85ad07be 100644
--- a/ui/admin/app/routes/scopes/scope/auth-methods/index.js
+++ b/ui/admin/app/routes/scopes/scope/auth-methods/index.js
@@ -11,7 +11,7 @@ export default class ScopesScopeAuthMethodsIndexRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =attributes
@@ -101,7 +101,9 @@ export default class ScopesScopeAuthMethodsIndexRoute extends Route {
let authMethods;
let totalItems = 0;
let doAuthMethodsExist = false;
- if (this.can.can('list model', scope, { collection: 'auth-methods' })) {
+ if (
+ this.abilities.can('list model', scope, { collection: 'auth-methods' })
+ ) {
// TODO: Remove storeToken option as this is a temporary fix for auth-methods.
const options = { storeToken: false };
authMethods = await this.store.query(
diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/new.js b/ui/admin/app/routes/scopes/scope/auth-methods/new.js
index d29b43ddae..d8e6f23426 100644
--- a/ui/admin/app/routes/scopes/scope/auth-methods/new.js
+++ b/ui/admin/app/routes/scopes/scope/auth-methods/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopeAuthMethodsNewRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =attributes
@@ -29,7 +29,7 @@ export default class ScopesScopeAuthMethodsNewRoute extends Route {
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (
- this.can.cannot('create model', scopeModel, {
+ this.abilities.cannot('create model', scopeModel, {
collection: 'auth-methods',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store.js b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store.js
index 97d06f026b..0011e7f0f0 100644
--- a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store.js
+++ b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store.js
@@ -11,7 +11,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreRoute extends Rou
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
/**
diff --git a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credential-libraries.js b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credential-libraries.js
index 3aa356fac3..570147686c 100644
--- a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credential-libraries.js
+++ b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credential-libraries.js
@@ -10,7 +10,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrari
// =services
@service store;
- @service can;
+ @service abilities;
// =methods
@@ -24,7 +24,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrari
);
const { id: credential_store_id } = credentialStore;
if (
- this.can.can('list model', credentialStore, {
+ this.abilities.can('list model', credentialStore, {
collection: 'credential-libraries',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credential-libraries/new.js b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credential-libraries/new.js
index fe59b0e313..030e9e7436 100644
--- a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credential-libraries/new.js
+++ b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credential-libraries/new.js
@@ -16,7 +16,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrari
@service store;
@service router;
@service features;
- @service can;
+ @service abilities;
// =attributes
@@ -36,7 +36,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrari
'scopes.scope.credential-stores.credential-store',
);
if (
- this.can.cannot('create model', credentialStore, {
+ this.abilities.cannot('create model', credentialStore, {
collection: 'credential-libraries',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials.js b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials.js
index efbeec581b..5eafbcc127 100644
--- a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials.js
+++ b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials.js
@@ -10,7 +10,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsRoute
// =services
@service store;
- @service can;
+ @service abilities;
// =methods
@@ -24,7 +24,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsRoute
);
const { id: credential_store_id } = credentialStore;
if (
- this.can.can('list model', credentialStore, {
+ this.abilities.can('list model', credentialStore, {
collection: 'credentials',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials/credential.js b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials/credential.js
index 4afe795885..d26ba83c3e 100644
--- a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials/credential.js
+++ b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials/credential.js
@@ -10,7 +10,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsCreden
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials/new.js b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials/new.js
index 21a4a971a7..45cdc4127d 100644
--- a/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials/new.js
+++ b/ui/admin/app/routes/scopes/scope/credential-stores/credential-store/credentials/new.js
@@ -11,7 +11,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsNewRou
@service store;
@service router;
- @service can;
+ @service abilities;
// =attributes
@@ -31,7 +31,7 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsNewRou
'scopes.scope.credential-stores.credential-store',
);
if (
- this.can.cannot('create model', credentialStore, {
+ this.abilities.cannot('create model', credentialStore, {
collection: 'credentials',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/credential-stores/index.js b/ui/admin/app/routes/scopes/scope/credential-stores/index.js
index 65607b6740..6143947dbc 100644
--- a/ui/admin/app/routes/scopes/scope/credential-stores/index.js
+++ b/ui/admin/app/routes/scopes/scope/credential-stores/index.js
@@ -11,7 +11,7 @@ export default class ScopesScopeCredentialStoresIndexRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
// =attributes
@@ -90,7 +90,7 @@ export default class ScopesScopeCredentialStoresIndexRoute extends Route {
let totalItems = 0;
let doCredentialStoresExist = false;
if (
- this.can.can('list model', scope, {
+ this.abilities.can('list model', scope, {
collection: 'credential-stores',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/credential-stores/new.js b/ui/admin/app/routes/scopes/scope/credential-stores/new.js
index 7e29c1681f..ca54c7bce2 100644
--- a/ui/admin/app/routes/scopes/scope/credential-stores/new.js
+++ b/ui/admin/app/routes/scopes/scope/credential-stores/new.js
@@ -12,7 +12,7 @@ export default class ScopesScopeCredentialStoresNewRoute extends Route {
@service store;
@service router;
@service features;
- @service can;
+ @service abilities;
// =attributes
@@ -30,7 +30,7 @@ export default class ScopesScopeCredentialStoresNewRoute extends Route {
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (
- this.can.cannot('create model', scopeModel, {
+ this.abilities.cannot('create model', scopeModel, {
collection: 'credential-stores',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/groups/group.js b/ui/admin/app/routes/scopes/scope/groups/group.js
index bf5ee37066..a6efe22672 100644
--- a/ui/admin/app/routes/scopes/scope/groups/group.js
+++ b/ui/admin/app/routes/scopes/scope/groups/group.js
@@ -10,7 +10,7 @@ export default class ScopesScopeGroupsGroupRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/groups/index.js b/ui/admin/app/routes/scopes/scope/groups/index.js
index b120e8a0e2..0137abfcc0 100644
--- a/ui/admin/app/routes/scopes/scope/groups/index.js
+++ b/ui/admin/app/routes/scopes/scope/groups/index.js
@@ -11,7 +11,7 @@ export default class ScopesScopeGroupsIndexRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
// =attributes
@@ -77,7 +77,7 @@ export default class ScopesScopeGroupsIndexRoute extends Route {
let groups = [];
let totalItems = 0;
let doGroupsExist = false;
- if (this.can.can('list model', scope, { collection: 'groups' })) {
+ if (this.abilities.can('list model', scope, { collection: 'groups' })) {
groups = await this.store.query('group', {
scope_id,
query: { filters, search, sort },
diff --git a/ui/admin/app/routes/scopes/scope/groups/new.js b/ui/admin/app/routes/scopes/scope/groups/new.js
index d635845200..04ab4fc3a6 100644
--- a/ui/admin/app/routes/scopes/scope/groups/new.js
+++ b/ui/admin/app/routes/scopes/scope/groups/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopeGroupsNewRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -20,7 +20,11 @@ export default class ScopesScopeGroupsNewRoute extends Route {
*/
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
- if (this.can.cannot('create model', scopeModel, { collection: 'groups' })) {
+ if (
+ this.abilities.cannot('create model', scopeModel, {
+ collection: 'groups',
+ })
+ ) {
this.router.replaceWith('scopes.scope.groups');
}
}
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog.js
index 89d6d2f877..d92d7f5e6c 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog.js
@@ -11,7 +11,7 @@ export default class ScopesScopeHostCatalogsHostCatalogRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets.js
index 82a2e00a34..4829715854 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets.js
@@ -10,7 +10,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsRoute extends Rou
// =services
@service store;
- @service can;
+ @service abilities;
// =methods
@@ -26,7 +26,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsRoute extends Rou
let hostSets;
if (
- this.can.can('list model', hostCatalog, {
+ this.abilities.can('list model', hostCatalog, {
collection: 'host-sets',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set.js
index 2b432cb4db..1131c9ecb7 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set.js
@@ -11,7 +11,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetRoute exte
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set/create-and-add-host.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set/create-and-add-host.js
index cdc7ecc289..d010bf4b7e 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set/create-and-add-host.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set/create-and-add-host.js
@@ -11,7 +11,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetCreateAndA
@service store;
@service router;
- @service can;
+ @service abilities;
// =methods
@@ -22,7 +22,11 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetCreateAndA
const hostCatalog = this.modelFor(
'scopes.scope.host-catalogs.host-catalog',
);
- if (this.can.cannot('create model', hostCatalog, { collection: 'hosts' })) {
+ if (
+ this.abilities.cannot('create model', hostCatalog, {
+ collection: 'hosts',
+ })
+ ) {
this.router.replaceWith(
'scopes.scope.host-catalogs.host-catalog.host-sets.host-set.hosts',
);
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host.js
index 3f33524ce5..9dca689aec 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host.js
@@ -10,7 +10,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetHostsHostR
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/new.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/new.js
index e841be0088..4c2ff6dad1 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/new.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/host-sets/new.js
@@ -11,7 +11,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsNewRoute extends
@service store;
@service router;
- @service can;
+ @service abilities;
// =methods
@@ -23,7 +23,9 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsNewRoute extends
'scopes.scope.host-catalogs.host-catalog',
);
if (
- this.can.cannot('create model', hostCatalog, { collection: 'host-sets' })
+ this.abilities.cannot('create model', hostCatalog, {
+ collection: 'host-sets',
+ })
) {
this.router.replaceWith(
'scopes.scope.host-catalogs.host-catalog.host-sets',
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts.js
index 87add73439..adf93e2789 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts.js
@@ -10,7 +10,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostsRoute extends Route
// =services
@service store;
- @service can;
+ @service abilities;
// =methods
@@ -26,7 +26,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostsRoute extends Route
let hosts;
if (
- this.can.can('list model', hostCatalog, {
+ this.abilities.can('list model', hostCatalog, {
collection: 'hosts',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts/host.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts/host.js
index 67b71f521f..eb25645b41 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts/host.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts/host.js
@@ -10,7 +10,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostsHostRoute extends Ro
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts/new.js b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts/new.js
index 87c0ac7d94..b648735b8e 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts/new.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/host-catalog/hosts/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopeHostCatalogsHostCatalogHostsNewRoute extends Rou
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -22,7 +22,11 @@ export default class ScopesScopeHostCatalogsHostCatalogHostsNewRoute extends Rou
const hostCatalog = this.modelFor(
'scopes.scope.host-catalogs.host-catalog',
);
- if (this.can.cannot('create model', hostCatalog, { collection: 'hosts' })) {
+ if (
+ this.abilities.cannot('create model', hostCatalog, {
+ collection: 'hosts',
+ })
+ ) {
this.router.replaceWith('scopes.scope.host-catalogs.host-catalog.hosts');
}
}
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/index.js b/ui/admin/app/routes/scopes/scope/host-catalogs/index.js
index e666bcd8ae..28f2d1e350 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/index.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/index.js
@@ -11,7 +11,7 @@ export default class ScopesScopeHostCatalogsIndexRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
// =attributes
@@ -82,7 +82,9 @@ export default class ScopesScopeHostCatalogsIndexRoute extends Route {
let hostCatalogs;
let totalItems = 0;
let doHostCatalogsExist = false;
- if (this.can.can('list model', scope, { collection: 'host-catalogs' })) {
+ if (
+ this.abilities.can('list model', scope, { collection: 'host-catalogs' })
+ ) {
hostCatalogs = await this.store.query('host-catalog', {
scope_id,
query: { search, filters, sort },
diff --git a/ui/admin/app/routes/scopes/scope/host-catalogs/new.js b/ui/admin/app/routes/scopes/scope/host-catalogs/new.js
index 0c8b21d979..bac62638cb 100644
--- a/ui/admin/app/routes/scopes/scope/host-catalogs/new.js
+++ b/ui/admin/app/routes/scopes/scope/host-catalogs/new.js
@@ -11,7 +11,7 @@ export default class ScopesScopeHostCatalogsNewRoute extends Route {
@service store;
@service router;
- @service can;
+ @service abilities;
// =attributes
@@ -29,7 +29,7 @@ export default class ScopesScopeHostCatalogsNewRoute extends Route {
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (
- this.can.cannot('create model', scopeModel, {
+ this.abilities.cannot('create model', scopeModel, {
collection: 'host-catalogs',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/policies.js b/ui/admin/app/routes/scopes/scope/policies.js
index 58adb8b4d8..37ea12e4b3 100644
--- a/ui/admin/app/routes/scopes/scope/policies.js
+++ b/ui/admin/app/routes/scopes/scope/policies.js
@@ -11,7 +11,7 @@ export default class ScopesScopePoliciesRoute extends Route {
@service store;
@service session;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -32,7 +32,7 @@ export default class ScopesScopePoliciesRoute extends Route {
const { id: scope_id } = scope;
if (
- this.can.can('list model', scope, {
+ this.abilities.can('list model', scope, {
collection: 'policies',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/policies/new.js b/ui/admin/app/routes/scopes/scope/policies/new.js
index 75e3e3f216..8668310306 100644
--- a/ui/admin/app/routes/scopes/scope/policies/new.js
+++ b/ui/admin/app/routes/scopes/scope/policies/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopePoliciesNewRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -21,7 +21,9 @@ export default class ScopesScopePoliciesNewRoute extends Route {
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (
- this.can.cannot('create model', scopeModel, { collection: 'policies' })
+ this.abilities.cannot('create model', scopeModel, {
+ collection: 'policies',
+ })
) {
this.router.replaceWith('scopes.scope.policies');
}
diff --git a/ui/admin/app/routes/scopes/scope/policies/policy.js b/ui/admin/app/routes/scopes/scope/policies/policy.js
index 5a18b265ac..f1fc074b7f 100644
--- a/ui/admin/app/routes/scopes/scope/policies/policy.js
+++ b/ui/admin/app/routes/scopes/scope/policies/policy.js
@@ -8,7 +8,7 @@ import { service } from '@ember/service';
export default class ScopesScopePoliciesPolicyRoute extends Route {
@service store;
- @service can;
+ @service abilities;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/roles/index.js b/ui/admin/app/routes/scopes/scope/roles/index.js
index c08c5dcf50..ebf2b39587 100644
--- a/ui/admin/app/routes/scopes/scope/roles/index.js
+++ b/ui/admin/app/routes/scopes/scope/roles/index.js
@@ -33,7 +33,7 @@ export default class ScopesScopeRolesIndexRoute extends Route {
// =services
- @service can;
+ @service abilities;
@service store;
// =methods
@@ -79,7 +79,7 @@ export default class ScopesScopeRolesIndexRoute extends Route {
let roles;
let totalItems = 0;
let doRolesExist = false;
- if (this.can.can('list model', scope, { collection: 'roles' })) {
+ if (this.abilities.can('list model', scope, { collection: 'roles' })) {
roles = await this.store.query('role', {
scope_id,
query: { search, filters, sort },
diff --git a/ui/admin/app/routes/scopes/scope/roles/new.js b/ui/admin/app/routes/scopes/scope/roles/new.js
index e3ff8f9ed6..6026514172 100644
--- a/ui/admin/app/routes/scopes/scope/roles/new.js
+++ b/ui/admin/app/routes/scopes/scope/roles/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopeRolesNewRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -20,7 +20,9 @@ export default class ScopesScopeRolesNewRoute extends Route {
*/
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
- if (this.can.cannot('create model', scopeModel, { collection: 'roles' })) {
+ if (
+ this.abilities.cannot('create model', scopeModel, { collection: 'roles' })
+ ) {
this.router.replaceWith('scopes.scope.roles');
}
}
diff --git a/ui/admin/app/routes/scopes/scope/roles/role.js b/ui/admin/app/routes/scopes/scope/roles/role.js
index bc772c8576..22b36f5caa 100644
--- a/ui/admin/app/routes/scopes/scope/roles/role.js
+++ b/ui/admin/app/routes/scopes/scope/roles/role.js
@@ -11,7 +11,7 @@ export default class ScopesScopeRolesRoleRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/scopes/index.js b/ui/admin/app/routes/scopes/scope/scopes/index.js
index bcbcc5b2ff..af98308213 100644
--- a/ui/admin/app/routes/scopes/scope/scopes/index.js
+++ b/ui/admin/app/routes/scopes/scope/scopes/index.js
@@ -33,7 +33,7 @@ export default class ScopesScopeScopesIndexRoute extends Route {
// =services
- @service can;
+ @service abilities;
@service store;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/session-recordings/index.js b/ui/admin/app/routes/scopes/scope/session-recordings/index.js
index 74ae99c0da..990744027c 100644
--- a/ui/admin/app/routes/scopes/scope/session-recordings/index.js
+++ b/ui/admin/app/routes/scopes/scope/session-recordings/index.js
@@ -16,7 +16,7 @@ export default class ScopesScopeSessionRecordingsIndexRoute extends Route {
// =services
@service store;
@service router;
- @service can;
+ @service abilities;
@service intl;
// =attributes
@@ -124,7 +124,7 @@ export default class ScopesScopeSessionRecordingsIndexRoute extends Route {
: { attributes: [sortAttribute], direction: sortDirection };
if (
- this.can.can('list scope', scope, {
+ this.abilities.can('list scope', scope, {
collection: 'session-recordings',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording.js b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording.js
index d6db610424..63659e54b4 100644
--- a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording.js
+++ b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording.js
@@ -12,7 +12,7 @@ export default class ScopesScopeSessionRecordingsSessionRecordingRoute extends R
@service store;
@service session;
@service router;
- @service can;
+ @service abilities;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.js b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.js
index 1f21cd03f1..356808ed5f 100644
--- a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.js
+++ b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.js
@@ -9,7 +9,7 @@ import { service } from '@ember/service';
export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConnectionChannelRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
@service flashMessages;
@service intl;
diff --git a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel/index.js b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel/index.js
index e0e6d7297a..dd2e7e1857 100644
--- a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel/index.js
+++ b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel/index.js
@@ -8,7 +8,7 @@ import { service } from '@ember/service';
export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConnectionChannelIndexRoute extends Route {
// =services
- @service can;
+ @service abilities;
@service flashMessages;
@service intl;
@@ -22,7 +22,9 @@ export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConne
'scopes.scope.session-recordings.session-recording.channels-by-connection.channel',
);
- if (this.can.can('getAsciicast channel-recording', channelRecording)) {
+ if (
+ this.abilities.can('getAsciicast channel-recording', channelRecording)
+ ) {
try {
asciicast = await channelRecording.getAsciicast();
} catch (e) {
diff --git a/ui/admin/app/routes/scopes/scope/sessions/index.js b/ui/admin/app/routes/scopes/scope/sessions/index.js
index 159bce03ac..0e24b402f7 100644
--- a/ui/admin/app/routes/scopes/scope/sessions/index.js
+++ b/ui/admin/app/routes/scopes/scope/sessions/index.js
@@ -10,7 +10,7 @@ import { restartableTask, timeout } from 'ember-concurrency';
export default class ScopesScopeSessionsIndexRoute extends Route {
// =services
- @service can;
+ @service abilities;
@service store;
// =attributes
@@ -134,7 +134,7 @@ export default class ScopesScopeSessionsIndexRoute extends Route {
// Preload the associated targets and users into the cache
let refreshUsersPromise, refreshTargetsPromise;
- const canListTargets = this.can.can('list model', scope, {
+ const canListTargets = this.abilities.can('list model', scope, {
collection: 'targets',
});
if (canListTargets) {
@@ -152,8 +152,10 @@ export default class ScopesScopeSessionsIndexRoute extends Route {
const orgScope = await this.store.findRecord('scope', scope.scope.id);
const globalScope = await this.store.findRecord('scope', 'global');
const canListUsers =
- this.can.can('list model', globalScope, { collection: 'users' }) ||
- this.can.can('list model', orgScope, { collection: 'users' });
+ this.abilities.can('list model', globalScope, {
+ collection: 'users',
+ }) ||
+ this.abilities.can('list model', orgScope, { collection: 'users' });
if (canListUsers) {
refreshUsersPromise = this.store.query(
diff --git a/ui/admin/app/routes/scopes/scope/storage-buckets.js b/ui/admin/app/routes/scopes/scope/storage-buckets.js
index a0246b369c..139eec25d5 100644
--- a/ui/admin/app/routes/scopes/scope/storage-buckets.js
+++ b/ui/admin/app/routes/scopes/scope/storage-buckets.js
@@ -11,7 +11,7 @@ export default class ScopesScopeStorageBucketsRoute extends Route {
@service store;
@service session;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -31,7 +31,7 @@ export default class ScopesScopeStorageBucketsRoute extends Route {
const scope = this.modelFor('scopes.scope');
const { id: scope_id } = scope;
if (
- this.can.can('list scope', scope, {
+ this.abilities.can('list scope', scope, {
collection: 'storage-buckets',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/storage-buckets/new.js b/ui/admin/app/routes/scopes/scope/storage-buckets/new.js
index 272fb1faef..1ac768bcbf 100644
--- a/ui/admin/app/routes/scopes/scope/storage-buckets/new.js
+++ b/ui/admin/app/routes/scopes/scope/storage-buckets/new.js
@@ -14,7 +14,7 @@ export default class ScopesScopeStorageBucketsNewRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =attributes
@@ -32,7 +32,7 @@ export default class ScopesScopeStorageBucketsNewRoute extends Route {
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (
- this.can.cannot('create scope', scopeModel, {
+ this.abilities.cannot('create scope', scopeModel, {
collection: 'storage-buckets',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/storage-buckets/storage-bucket.js b/ui/admin/app/routes/scopes/scope/storage-buckets/storage-bucket.js
index 07735b0009..a0878817f8 100644
--- a/ui/admin/app/routes/scopes/scope/storage-buckets/storage-bucket.js
+++ b/ui/admin/app/routes/scopes/scope/storage-buckets/storage-bucket.js
@@ -10,7 +10,7 @@ export default class ScopesScopeStorageBucketsStorageBucketRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/targets/index.js b/ui/admin/app/routes/scopes/scope/targets/index.js
index 2139df29a2..41f97edec2 100644
--- a/ui/admin/app/routes/scopes/scope/targets/index.js
+++ b/ui/admin/app/routes/scopes/scope/targets/index.js
@@ -17,7 +17,7 @@ import { TYPE_TARGET_SSH, TYPE_TARGET_TCP } from 'api/models/target';
export default class ScopesScopeTargetsIndexRoute extends Route {
// =services
- @service can;
+ @service abilities;
@service store;
@service session;
@service intl;
@@ -93,7 +93,7 @@ export default class ScopesScopeTargetsIndexRoute extends Route {
filters.type.push({ equals: type });
});
- if (this.can.can('list model', scope, { collection: 'sessions' })) {
+ if (this.abilities.can('list model', scope, { collection: 'sessions' })) {
await this.store.query(
'session',
{
@@ -133,7 +133,7 @@ export default class ScopesScopeTargetsIndexRoute extends Route {
let targets;
let totalItems = 0;
let doTargetsExist = false;
- if (this.can.can('list model', scope, { collection: 'targets' })) {
+ if (this.abilities.can('list model', scope, { collection: 'targets' })) {
targets = await this.store.query('target', {
scope_id,
query: { search, filters, sort },
diff --git a/ui/admin/app/routes/scopes/scope/targets/new.js b/ui/admin/app/routes/scopes/scope/targets/new.js
index 4cce182161..63661de5e3 100644
--- a/ui/admin/app/routes/scopes/scope/targets/new.js
+++ b/ui/admin/app/routes/scopes/scope/targets/new.js
@@ -13,7 +13,7 @@ export default class ScopesScopeTargetsNewRoute extends Route {
@service store;
@service router;
@service features;
- @service can;
+ @service abilities;
// =attributes
queryParams = {
@@ -30,7 +30,9 @@ export default class ScopesScopeTargetsNewRoute extends Route {
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (
- this.can.cannot('create model', scopeModel, { collection: 'targets' })
+ this.abilities.cannot('create model', scopeModel, {
+ collection: 'targets',
+ })
) {
this.router.replaceWith('scopes.scope.targets');
}
diff --git a/ui/admin/app/routes/scopes/scope/targets/target.js b/ui/admin/app/routes/scopes/scope/targets/target.js
index f27afac519..5fcb83acbb 100644
--- a/ui/admin/app/routes/scopes/scope/targets/target.js
+++ b/ui/admin/app/routes/scopes/scope/targets/target.js
@@ -10,7 +10,7 @@ export default class ScopesScopeTargetsTargetRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/users/index.js b/ui/admin/app/routes/scopes/scope/users/index.js
index 95d70a3b92..17ac75c9d8 100644
--- a/ui/admin/app/routes/scopes/scope/users/index.js
+++ b/ui/admin/app/routes/scopes/scope/users/index.js
@@ -34,7 +34,7 @@ export default class ScopesScopeUsersIndexRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
// =methods
@@ -80,7 +80,7 @@ export default class ScopesScopeUsersIndexRoute extends Route {
let users;
let totalItems = 0;
let doUsersExist = false;
- if (this.can.can('list model', scope, { collection: 'users' })) {
+ if (this.abilities.can('list model', scope, { collection: 'users' })) {
users = await this.store.query('user', {
scope_id,
query: { search, filters, sort },
diff --git a/ui/admin/app/routes/scopes/scope/users/new.js b/ui/admin/app/routes/scopes/scope/users/new.js
index 53dc1a3245..67878aaa5d 100644
--- a/ui/admin/app/routes/scopes/scope/users/new.js
+++ b/ui/admin/app/routes/scopes/scope/users/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopeUsersNewRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -20,7 +20,9 @@ export default class ScopesScopeUsersNewRoute extends Route {
*/
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
- if (this.can.cannot('create model', scopeModel, { collection: 'users' })) {
+ if (
+ this.abilities.cannot('create model', scopeModel, { collection: 'users' })
+ ) {
this.router.replaceWith('scopes.scope.users');
}
}
diff --git a/ui/admin/app/routes/scopes/scope/users/user.js b/ui/admin/app/routes/scopes/scope/users/user.js
index 36465052bf..932c402ebe 100644
--- a/ui/admin/app/routes/scopes/scope/users/user.js
+++ b/ui/admin/app/routes/scopes/scope/users/user.js
@@ -10,7 +10,7 @@ export default class ScopesScopeUsersUserRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/routes/scopes/scope/workers.js b/ui/admin/app/routes/scopes/scope/workers.js
index 1a5ac72859..9df43f7ac9 100644
--- a/ui/admin/app/routes/scopes/scope/workers.js
+++ b/ui/admin/app/routes/scopes/scope/workers.js
@@ -10,7 +10,7 @@ export default class ScopesScopeWorkersRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service session;
@service router;
@@ -30,7 +30,7 @@ export default class ScopesScopeWorkersRoute extends Route {
model() {
const scope = this.modelFor('scopes.scope');
const { id: scope_id } = scope;
- if (this.can.can('list worker', scope, { collection: 'workers' })) {
+ if (this.abilities.can('list worker', scope, { collection: 'workers' })) {
return this.store.query('worker', { scope_id });
}
}
diff --git a/ui/admin/app/routes/scopes/scope/workers/new.js b/ui/admin/app/routes/scopes/scope/workers/new.js
index 611a559f2a..11eaebe035 100644
--- a/ui/admin/app/routes/scopes/scope/workers/new.js
+++ b/ui/admin/app/routes/scopes/scope/workers/new.js
@@ -10,7 +10,7 @@ export default class ScopesScopeWorkersNewRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
@@ -21,7 +21,7 @@ export default class ScopesScopeWorkersNewRoute extends Route {
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (
- this.can.cannot('create worker led worker', scopeModel, {
+ this.abilities.cannot('create worker led worker', scopeModel, {
collection: 'workers',
})
) {
diff --git a/ui/admin/app/routes/scopes/scope/workers/worker.js b/ui/admin/app/routes/scopes/scope/workers/worker.js
index 529a4b6577..3ec15d1d9e 100644
--- a/ui/admin/app/routes/scopes/scope/workers/worker.js
+++ b/ui/admin/app/routes/scopes/scope/workers/worker.js
@@ -10,7 +10,7 @@ export default class ScopesScopeWorkersWorkerRoute extends Route {
// =services
@service store;
- @service can;
+ @service abilities;
@service router;
// =methods
diff --git a/ui/admin/app/svgs.json b/ui/admin/app/svgs.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/ui/admin/app/svgs.json
@@ -0,0 +1 @@
+{}
diff --git a/ui/admin/babel.config.cjs b/ui/admin/babel.config.cjs
new file mode 100644
index 0000000000..419088afff
--- /dev/null
+++ b/ui/admin/babel.config.cjs
@@ -0,0 +1,42 @@
+const {
+ babelCompatSupport,
+ templateCompatSupport,
+} = require('@embroider/compat/babel');
+
+module.exports = {
+ plugins: [
+ [
+ 'babel-plugin-ember-template-compilation',
+ {
+ compilerPath: 'ember-source/dist/ember-template-compiler.js',
+ enableLegacyModules: [
+ 'ember-cli-htmlbars',
+ 'ember-cli-htmlbars-inline-precompile',
+ 'htmlbars-inline-precompile',
+ ],
+ transforms: [...templateCompatSupport()],
+ },
+ ],
+ [
+ 'module:decorator-transforms',
+ {
+ runtime: {
+ import: require.resolve('decorator-transforms/runtime-esm'),
+ },
+ },
+ ],
+ [
+ '@babel/plugin-transform-runtime',
+ {
+ absoluteRuntime: __dirname,
+ useESModules: true,
+ regenerator: false,
+ },
+ ],
+ ...babelCompatSupport(),
+ ],
+
+ generatorOpts: {
+ compact: false,
+ },
+};
diff --git a/ui/admin/config/environment.js b/ui/admin/config/environment.js
index cb3a04d750..1beb157751 100644
--- a/ui/admin/config/environment.js
+++ b/ui/admin/config/environment.js
@@ -139,10 +139,6 @@ module.exports = function (environment) {
},
},
- 'ember-cli-mirage': {
- directory: '../../addons/api/mirage',
- },
-
flashMessageDefaults: {
timeout: 4000,
},
@@ -157,9 +153,11 @@ module.exports = function (environment) {
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
// ENV.APP.LOG_VIEW_LOOKUPS = true;
- ENV['ember-cli-mirage'].enabled = process.env.ENABLE_MIRAGE
- ? JSON.parse(process.env.ENABLE_MIRAGE)
- : true;
+ ENV.mirage = {
+ enabled: process.env.ENABLE_MIRAGE
+ ? JSON.parse(process.env.ENABLE_MIRAGE)
+ : true,
+ };
// Default edition in development
ENV.features.defaultEdition = 'enterprise';
@@ -197,6 +195,12 @@ module.exports = function (environment) {
ENV.ENABLE_A11Y_AUDIT = ENABLE_A11Y_AUDIT;
ENV.COLOR_THEME = COLOR_THEME;
+
+ ENV.mirage = {
+ enabled: process.env.ENABLE_MIRAGE
+ ? JSON.parse(process.env.ENABLE_MIRAGE)
+ : true,
+ };
}
if (environment === 'production') {
diff --git a/ui/admin/ember-cli-build.js b/ui/admin/ember-cli-build.js
index 7a98767e1c..3e1ae101b6 100644
--- a/ui/admin/ember-cli-build.js
+++ b/ui/admin/ember-cli-build.js
@@ -3,12 +3,21 @@
* SPDX-License-Identifier: BUSL-1.1
*/
-'use strict';
-
+'use strict';;
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
+const {
+ compatBuild
+} = require("@embroider/compat");
+
module.exports = async function (defaults) {
+ const {
+ buildOnce
+ } = await import("@embroider/vite");
+
const { setConfig } = await import('@warp-drive/build-config');
+ const { EMBER_ENV } = process.env;
+ var config = require('./config/environment')(EMBER_ENV);
const app = new EmberApp(defaults, {
hinting: false,
@@ -31,6 +40,11 @@ module.exports = async function (defaults) {
api: {
enableSqlite: true,
},
+ '@embroider/macros': {
+ setOwnConfig: {
+ startMirageWithApp: config.mirage?.enabled ?? false,
+ },
+ },
});
// TODO: The deprecations object can be removed in ember-data 6.0.
@@ -57,5 +71,5 @@ module.exports = async function (defaults) {
// please specify an object with the list of modules as keys
// along with the exports of each module as its value.
- return app.toTree();
+ return compatBuild(app, buildOnce);
};
diff --git a/ui/admin/app/index.html b/ui/admin/index.html
similarity index 60%
rename from ui/admin/app/index.html
rename to ui/admin/index.html
index f5cc44780c..7f359d6e89 100644
--- a/ui/admin/app/index.html
+++ b/ui/admin/index.html
@@ -14,8 +14,8 @@
{{content-for "head"}}
-
-
+
+
@@ -24,8 +24,13 @@
{{content-for "body"}}
-
-
+
+
{{content-for "body-footer"}}
diff --git a/ui/admin/package.json b/ui/admin/package.json
index 12cf34b858..c4cd482d7b 100644
--- a/ui/admin/package.json
+++ b/ui/admin/package.json
@@ -12,7 +12,7 @@
"scripts": {
"doc:toc": "doctoc README.md",
"build:development": "ember build",
- "build": "ember build --environment=production",
+ "build": "vite build",
"build:oss": "EDITION=oss ember build --environment=production",
"build:enterprise": "EDITION=enterprise ember build --environment=production",
"build:hcp": "EDITION=hcp ember build --environment=production",
@@ -28,64 +28,74 @@
"format:hbs": "prettier --write 'app/**/*.hbs'",
"format:js": "prettier --write '{app,config,stories,tests}/**/*.js' *.js",
"format:sass": "prettier --write app/**/*.scss",
- "start": "ember serve",
+ "start": "vite",
"clean:coverage": "rm -rf coverage_* || true",
"test": "pnpm clean:coverage && pnpm test:ember && pnpm test:finalize",
"test-a11y": "concurrently \"pnpm:test-a11y:*\" --names \"test-a11y:\"",
"test-a11y:light": "ENABLE_A11Y_AUDIT=true ember test --test-port 0 --filter='acceptance'",
"test-a11y:dark": "COLOR_THEME=dark pnpm test-a11y:light",
- "test:ember": "COVERAGE=true ember exam --test-port 0 --split=4 --parallel=1 --random",
+ "test:ember": "vite build --mode development && ember test --path dist",
"test:finalize": "ember coverage-merge && pnpm clean:coverage"
},
"dependencies": {
"@babel/runtime": "7.27.6",
+ "api": "workspace:*",
+ "core": "workspace:*",
+ "ember-engines": "^0.12.0",
"ember-named-blocks-polyfill": "^0.2.5",
"lodash": "^4.17.21",
+ "miragejs": "^0.1.48",
"uuid": "^11.0.3"
},
"devDependencies": {
"@babel/core": "^7.26.10",
"@babel/eslint-parser": "^7.25.1",
"@babel/plugin-proposal-decorators": "^7.24.7",
+ "@babel/plugin-transform-runtime": "^7.26.9",
"@ember/optional-features": "^2.1.0",
"@ember/render-modifiers": "^2.0.4",
"@ember/string": "^4.0.0",
"@ember/test-helpers": "^5.2.1",
+ "@embroider/compat": "^4.0.3",
+ "@embroider/config-meta-loader": "^1.0.0",
+ "@embroider/core": "^4.0.3",
"@embroider/macros": "^1.18.0",
+ "@embroider/vite": "^1.1.1",
"@faker-js/faker": "^8.0.2",
"@glimmer/component": "^2.0.0",
"@glimmer/tracking": "^1.1.2",
"@hashicorp/ember-asciinema-player": "https://github.com/hashicorp/ember-asciinema-player.git#e047a096039cff70234c232efe75dcad74c6358a",
+ "@rollup/plugin-babel": "^6.0.4",
"@warp-drive/build-config": "^0.0.2",
- "broccoli-asset-rev": "^3.0.0",
+ "babel-plugin-ember-template-compilation": "^2.3.0",
"concurrently": "^9.1.0",
- "core": "workspace:*",
+ "decorator-transforms": "^2.3.0",
"doctoc": "^2.2.0",
"ember-a11y-refocus": "^5.0.0",
"ember-a11y-testing": "^7.1.2",
"ember-auto-import": "^2.10.0",
"ember-basic-dropdown": "^8.8.0",
+ "ember-browser-services": "^4.0.3",
+ "ember-can": "^8.0.0",
"ember-cli": "~5.12.0",
"ember-cli-babel": "^8.2.0",
- "ember-cli-clean-css": "^3.0.0",
"ember-cli-code-coverage": "^1.0.3",
"ember-cli-content-security-policy": "^2.0.3",
- "ember-cli-dependency-checker": "^3.3.2",
"ember-cli-flash": "^6.0.0",
"ember-cli-htmlbars": "^6.3.0",
- "ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sass": "^11.0.1",
- "ember-cli-sri": "^2.1.1",
- "ember-cli-terser": "^4.0.2",
"ember-concurrency": "^4.0.3",
"ember-exam": "^8.0.0",
"ember-inline-svg": "^1.0.1",
- "ember-load-initializers": "^2.1.2",
+ "ember-intl": "^7.1.8",
+ "ember-load-initializers": "^3.0.0",
+ "ember-loading": "^2.0.0",
"ember-modifier": "^4.2.0",
"ember-page-title": "^8.2.3",
"ember-power-select": "^8.11.0",
- "ember-qunit": "^8.1.0",
- "ember-resolver": "^12.0.1",
+ "ember-qunit": "^9.0.0",
+ "ember-resolver": "^13.1.1",
+ "ember-simple-auth": "^6.1.0",
"ember-source": "~5.12.0",
"ember-template-lint": "^6.0.0",
"ember-template-lint-plugin-prettier": "^5.0.0",
@@ -95,7 +105,6 @@
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-qunit": "^8.1.2",
"js-bexpr": "hashicorp/js-bexpr#9b4a4b54d85eba67fdfc0990133d1518d890b1e1",
- "loader.js": "^4.7.0",
"postcss": "^8.4.31",
"prettier": "^3.3.3",
"qunit": "^2.22.0",
@@ -106,7 +115,7 @@
"stylelint-config-prettier-scss": "^0.0.1",
"stylelint-config-standard-scss": "^11.0.0",
"tracked-built-ins": "^4.0.0",
- "webpack": "^5.95.0"
+ "vite": "^6.0.0"
},
"engines": {
"node": "20.* || 22.*"
@@ -121,5 +130,13 @@
],
"*.hbs": "ember-template-lint --fix",
"*.{scss,yaml}": "prettier --write"
+ },
+ "ember-addon": {
+ "type": "app",
+ "version": 2
+ },
+ "exports": {
+ "./tests/*": "./tests/*",
+ "./*": "./app/*"
}
}
diff --git a/ui/admin/testem.js b/ui/admin/testem.js
index 552b07b13c..d1ec11fac2 100644
--- a/ui/admin/testem.js
+++ b/ui/admin/testem.js
@@ -11,39 +11,41 @@ if (!['dark', 'light'].includes(COLOR_THEME)) {
);
}
-module.exports = {
- test_page: 'tests/index.html?hidepassed',
- disable_watching: true,
- launch_in_ci: ['Chrome'],
- launch_in_dev: ['Chrome', 'Firefox'],
- browser_start_timeout: 120,
- browser_args: {
- Chrome: {
- all: [
- COLOR_THEME === 'dark'
- ? '--enable-features=WebContentsForceDark'
- : null,
- COLOR_THEME === 'dark' ? '--force-dark-mode' : '--force-light-mode',
- ].filter(Boolean),
- ci: [
- // --no-sandbox is needed when running Chrome inside a container
- process.env.CI ? '--no-sandbox' : null,
- '--headless',
- // Disable backgrounding renders for occluded windows
- '--disable-backgrounding-occluded-windows',
- // Disable renderer process backgrounding
- '--disable-renderer-backgrounding',
- // Disable task throttling of timer tasks from background pages
- '--disable-background-timer-throttling',
- '--disable-dev-shm-usage',
- '--disable-gpu',
- //'--disable-software-rasterizer',
- '--mute-audio',
- '--remote-debugging-port=0',
- '--window-size=1440,900',
- ].filter(Boolean),
+if (typeof module !== "undefined") {
+ module.exports = {
+ test_page: 'tests/index.html?hidepassed',
+ disable_watching: true,
+ launch_in_ci: ['Chrome'],
+ launch_in_dev: ['Chrome', 'Firefox'],
+ browser_start_timeout: 120,
+ browser_args: {
+ Chrome: {
+ all: [
+ COLOR_THEME === 'dark'
+ ? '--enable-features=WebContentsForceDark'
+ : null,
+ COLOR_THEME === 'dark' ? '--force-dark-mode' : '--force-light-mode',
+ ].filter(Boolean),
+ ci: [
+ // --no-sandbox is needed when running Chrome inside a container
+ process.env.CI ? '--no-sandbox' : null,
+ '--headless',
+ // Disable backgrounding renders for occluded windows
+ '--disable-backgrounding-occluded-windows',
+ // Disable renderer process backgrounding
+ '--disable-renderer-backgrounding',
+ // Disable task throttling of timer tasks from background pages
+ '--disable-background-timer-throttling',
+ '--disable-dev-shm-usage',
+ '--disable-gpu',
+ //'--disable-software-rasterizer',
+ '--mute-audio',
+ '--remote-debugging-port=0',
+ '--window-size=1440,900',
+ ].filter(Boolean),
+ },
+ Firefox: ['-headless', '--window-size=1440,900'],
},
- Firefox: ['-headless', '--window-size=1440,900'],
- },
- parallel: process.env.EMBER_EXAM_SPLIT_COUNT || 1,
-};
+ parallel: process.env.EMBER_EXAM_SPLIT_COUNT || 1,
+ };
+}
diff --git a/ui/admin/tests/helpers/index.js b/ui/admin/tests/helpers/index.js
index 31e6d0d349..94c0a1a6cc 100644
--- a/ui/admin/tests/helpers/index.js
+++ b/ui/admin/tests/helpers/index.js
@@ -9,7 +9,7 @@ import {
setupTest as upstreamSetupTest,
} from 'ember-qunit';
import { authenticateSession } from 'ember-simple-auth/test-support';
-import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
+import { setupMirage } from 'api/test-support/helpers/mirage';
// This file exists to provide wrappers around ember-qunit's
// test setup functions. This way, you can easily extend the setup that is
diff --git a/ui/admin/tests/index.html b/ui/admin/tests/index.html
index 29683588b6..7684b9a59f 100644
--- a/ui/admin/tests/index.html
+++ b/ui/admin/tests/index.html
@@ -14,9 +14,9 @@
{{content-for "head"}}
{{content-for "test-head"}}
-
-
-
+
+
+
{{content-for "head-footer"}}
{{content-for "test-head-footer"}}
@@ -33,12 +33,17 @@
-
-
-
-
+
+
+
+
+
{{content-for "body-footer"}}
- {{content-for "test-body-footer"}}
+