refactor: 💡 upgrade ui/desktop to Ember 3.24

This commit is contained in:
Randall Morey committed 2021-03-05 17:49:47 -05:00
1 parent 60675a12a6
commit ba34b6c4f9
49 files changed
+329 -662

No files matched your search

+1
View File
@@ -13,6 +13,7 @@
# misc
/coverage/
!.*
.eslintcache
# ember-try
/.node_modules.ember-try/
+21 -15
View File
@@ -7,25 +7,31 @@ module.exports = {
ecmaVersion: 2018,
sourceType: 'module',
ecmaFeatures: {
legacyDecorators: true
}
legacyDecorators: true,
},
},
plugins: [
'ember'
],
plugins: ['ember'],
extends: [
'eslint:recommended',
'plugin:ember/recommended'
'plugin:ember/recommended',
'plugin:prettier/recommended',
],
env: {
browser: true
browser: true,
},
rules: {
'ember/no-get': 'off',
'ember/no-get-with-default': 'off',
'ember/no-computed-properties-in-native-classes': 'off',
'ember/no-assignment-of-untracked-properties-used-in-tracking-contexts':
'off',
},
rules: {},
overrides: [
// node files
{
files: [
'.eslintrc.js',
'.prettierrc.js',
'.template-lintrc.js',
'ember-cli-build.js',
'testem.js',
@@ -33,22 +39,22 @@ module.exports = {
'blueprints/*/index.js',
'config/**/*.js',
'lib/*/index.js',
'server/**/*.js'
'server/**/*.js',
],
parserOptions: {
sourceType: 'script'
sourceType: 'script',
},
env: {
browser: false,
node: true
node: true,
},
plugins: ['node'],
extends: ['plugin:node/recommended'],
rules: {
// this can be removed once the following is fixed
// https://github.com/mysticatea/eslint-plugin-node/issues/77
'node/no-unpublished-require': 'off'
}
}
]
'node/no-unpublished-require': 'off',
},
},
],
};
+21
View File
@@ -0,0 +1,21 @@
# unconventional js
/blueprints/*/files/
/vendor/
# compiled output
/dist/
/tmp/
# dependencies
/bower_components/
/node_modules/
# misc
/coverage/
!.*
.eslintcache
# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
+5
View File
@@ -0,0 +1,5 @@
'use strict';
module.exports = {
singleQuote: true,
};
+2 -2
View File
@@ -5,6 +5,6 @@ module.exports = {
rules: {
'no-bare-strings': true,
'no-curly-component-invocation': { allow: ['app-name'] },
'no-implicit-this': { allow: ['app-name', 'is-loading'] }
}
'no-implicit-this': { allow: ['app-name', 'is-loading'] },
},
};
+28
View File
@@ -0,0 +1,28 @@
---
language: node_js
node_js:
- "10"
dist: xenial
addons:
chrome: stable
cache:
yarn: true
env:
global:
# See https://git.io/vdao3 for details.
- JOBS=1
branches:
only:
- master
before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH=$HOME/.yarn/bin:$PATH
script:
- yarn test
@@ -37,6 +37,7 @@ export default class CopyableComponent extends Component {
this.copied = true;
yield timeout(1000);
this.copied = false;
/* eslint-disable-next-line prettier/prettier */
}).drop() confirmCopyTimer;
/**
@@ -2,7 +2,6 @@ import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default class ScopesScopeAuthenticateController extends Controller {
// =services
@service origin;
@@ -2,7 +2,6 @@ import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default class ScopesScopeProjectsSessionsIndexController extends Controller {
// =sessions
@service session;
@@ -19,9 +18,10 @@ export default class ScopesScopeProjectsSessionsIndexController extends Controll
const sessions = this.model;
const sortedSessions = sessions
// filter sessions by current user
.filter(session => session.user_id === userId)
.filter((session) => session.user_id === userId)
// sort by created time
.sortBy('session.created_time').reverse();
.sortBy('session.created_time')
.reverse();
return [
// then move active sessions to the top
...sortedSessions.filter((session) => session.isCancelable),
@@ -29,5 +29,4 @@ export default class ScopesScopeProjectsSessionsIndexController extends Controll
...sortedSessions.filter((session) => !session.isCancelable),
];
}
}
@@ -24,11 +24,9 @@ export default class ScopesScopeProjectsTargetsTargetSessionsController extends
get cancelableUserSessions() {
const sessions = this.sessions;
const userId = this.session.data.authenticated.user_id;
const filteredSessions =
sessions.filter(session =>
session.isCancelable &&
session.user_id === userId
);
const filteredSessions = sessions.filter(
(session) => session.isCancelable && session.user_id === userId
);
// Sort sessions
const sortedSessions = A(filteredSessions).sortBy('created_time').reverse();
+2 -3
View File
@@ -1,7 +1,6 @@
import { getOwner } from '@ember/application';
export function initialize(registry) {
// Lookup the application route
const ApplicationRoute = registry.resolveRegistration
? registry.resolveRegistration('route:application')
@@ -13,7 +12,7 @@ export function initialize(registry) {
const originalBeforeModel = this.beforeModel;
// Override the beforeModel hook and initialize the origin
this.beforeModel = async function() {
this.beforeModel = async function () {
const origin = getOwner(this).lookup('service:origin');
return origin.updateOrigin().then(
() => originalBeforeModel.apply(this, arguments),
@@ -26,5 +25,5 @@ export function initialize(registry) {
export default {
after: 'ember-simple-auth',
initialize
initialize,
};
+2 -2
View File
@@ -14,12 +14,12 @@ Router.map(function () {
});
this.route('projects', function () {
this.route('targets', function () {
this.route('target', { path: ':target_id' }, function() {
this.route('target', { path: ':target_id' }, function () {
this.route('hosts');
this.route('sessions');
});
});
this.route('sessions', function() {});
this.route('sessions', function () {});
});
});
});
@@ -37,12 +37,10 @@ export default class ScopesScopeAuthenticateMethodRoute extends Route {
const authMethod = this.modelFor('scopes.scope.authenticate.method');
const authenticatorName = `authenticator:${authMethod.type}`;
const requestCookies = false;
await this.session.authenticate(
authenticatorName,
creds,
requestCookies,
{ scope, authMethod }
);
await this.session.authenticate(authenticatorName, creds, requestCookies, {
scope,
authMethod,
});
this.replaceWith('index');
}
}
@@ -38,5 +38,4 @@ export default class ScopesScopeProjectsRoute extends Route {
.query('scope', { recursive: true, scope_id: 'global' })
.filter(({ isProject }) => isProject);
}
}
@@ -30,6 +30,7 @@ export default class ScopesScopeProjectsSessionsRoute extends Route {
yield timeout(POLL_TIMEOUT_SECONDS * 1000);
yield this.refresh();
}
/* eslint-disable-next-line prettier/prettier */
}).drop() poller;
// =methods
@@ -1,4 +1,3 @@
import Route from '@ember/routing/route';
export default class ScopesScopeProjectsSessionsIndexRoute extends Route {
}
export default class ScopesScopeProjectsSessionsIndexRoute extends Route {}
@@ -34,6 +34,7 @@ export default class ScopesScopeProjectsTargetsRoute extends Route {
yield timeout(POLL_TIMEOUT_SECONDS * 1000);
yield this.refreshSessions();
}
/* eslint-disable-next-line prettier/prettier */
}).drop() poller;
// =methods
@@ -1,7 +1,6 @@
import Route from '@ember/routing/route';
export default class ScopesScopeProjectsTargetsTargetRoute extends Route {
// =methods
/**
@@ -27,11 +27,9 @@ export default class ScopesScopeProjectsTargetsTargetHostsRoute extends Route {
);
// Extract host ids from all host sets
const hostIds = hostSets.map(({host_ids}) =>
host_ids.content.map((hostId) =>
hostId.value
)
)
const hostIds = hostSets.map(({ host_ids }) =>
host_ids.content.map((hostId) => hostId.value)
);
// Load unique hosts
const uniqueHostIds = new Set(hostIds.flat());
@@ -42,7 +40,7 @@ export default class ScopesScopeProjectsTargetsTargetHostsRoute extends Route {
[...uniqueHostIds].map((hostId) =>
this.store.findRecord('host', hostId)
)
)
})
),
});
}
}
@@ -9,5 +9,4 @@ export default class ScopesScopeProjectsTargetsTargetIndexRoute extends Route {
afterModel() {
this.transitionTo('scopes.scope.projects.targets.target.sessions');
}
}
@@ -3,7 +3,6 @@ import { action } from '@ember/object';
import { notifySuccess, notifyError } from 'core/decorators/notify';
export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route {
// =actions
/**
@@ -16,5 +15,4 @@ export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route
async cancelSession(session) {
await session.cancelSession();
}
}
+5 -4
View File
@@ -4,7 +4,6 @@ import { inject as service } from '@ember/service';
import { notifyError } from 'core/decorators/notify';
export default class OriginService extends Service {
// =services
@service ipc;
@@ -59,11 +58,14 @@ export default class OriginService extends Service {
*/
async setOrigin(origin) {
const originalHost = this.adapter.host;
assert(`setOrigin expects a string, you passed ${origin}`, typeof origin === 'string');
assert(
`setOrigin expects a string, you passed ${origin}`,
typeof origin === 'string'
);
try {
this.adapter.host = origin;
this.rendererOrigin = origin;
if (origin !== await this.mainOrigin) {
if (origin !== (await this.mainOrigin)) {
await this.ipc.invoke('setOrigin', origin);
}
} catch (e) {
@@ -81,5 +83,4 @@ export default class OriginService extends Service {
this.rendererOrigin = null;
await this.ipc.invoke('resetOrigin');
}
}
+1 -1
View File
@@ -44,7 +44,7 @@
</form.radioGroup>
</Rose::Form>
</dropdown.section>
</utilities.dropdown>
</header.utilities>
{{/if}}
+1 -1
View File
@@ -3,7 +3,7 @@
"packages": [
{
"name": "ember-cli",
"version": "3.20.2",
"version": "3.24.0",
"blueprints": [
{
"name": "app",
+5 -5
View File
@@ -31,7 +31,7 @@ module.exports = function (environment) {
'ember-cli-mirage': {
//enabled: ENABLE_MIRAGE,
directory: '../../addons/api/mirage'
directory: '../../addons/api/mirage',
},
api: {
@@ -49,9 +49,9 @@ module.exports = function (environment) {
baseURL: 'https://boundaryproject.io/help/desktop',
topics: {
targets: '/targets',
sessions: '/sessions'
}
}
sessions: '/sessions',
},
},
};
if (process.env.ENABLE_MIRAGE) {
@@ -89,7 +89,7 @@ module.exports = function (environment) {
// Use in-memory storage
ENV.storage = {
memory: true
memory: true,
};
}
+6 -6
View File
@@ -25,7 +25,7 @@ module.exports = {
const addr = origin.origin;
const sanitized = {
target_id: escapeAndValidateBase62(target_id),
token: escapeAndValidateBase62(token)
token: escapeAndValidateBase62(token),
};
if (host_id) sanitized.host_id = escapeAndValidateBase62(host_id);
const command = [
@@ -34,15 +34,15 @@ module.exports = {
`-token=${sanitized.token}`,
`-addr=${addr}`,
'-format=json',
'--output-json-errors'
'--output-json-errors',
];
if (host_id) command.push(`-host-id=${sanitized.host_id}`)
if (host_id) command.push(`-host-id=${sanitized.host_id}`);
return spawnAsyncJSONPromise(command);
},
// Returns JSON-formatted version information from the CLI
version: () => {
const command = [ '-v' ];
const command = ['-v'];
const rawOutput = spawnSync(command);
let gitRevision = /Git Revision:\s*(?<rev>.*)\n/.exec(rawOutput);
let versionNumber = /Version Number:\s*(?<ver>.*)\n/.exec(rawOutput);
@@ -53,5 +53,5 @@ module.exports = {
: `CLI Commit: ${gitRevision}`;
return { gitRevision, versionNumber, formatted };
return rawOutput;
}
}
},
};
@@ -20,8 +20,8 @@ const enableDevCSP = () => {
csp['style-src'].push("'unsafe-inline'");
csp['script-src'].push("'unsafe-eval'");
csp['script-src'].push("'unsafe-inline'");
csp['script-src'].push("http://localhost:7020");
csp['connect-src'].push("ws://localhost:7020");
csp['script-src'].push('http://localhost:7020');
csp['connect-src'].push('ws://localhost:7020');
};
const generateCSPHeader = () => {
@@ -33,14 +33,13 @@ const generateCSPHeader = () => {
policy['connect-src'].push(origin.origin);
}
return Object
.keys(policy)
.map(key => `${key} ${policy[key].join(' ')};`)
return Object.keys(policy)
.map((key) => `${key} ${policy[key].join(' ')};`)
.join(' ');
}
};
if (isDev) enableDevCSP();
module.exports = {
generateCSPHeader: generateCSPHeader
generateCSPHeader: generateCSPHeader,
};
+14 -6
View File
@@ -4,7 +4,14 @@ const {
default: installExtension,
EMBER_INSPECTOR,
} = require('electron-devtools-installer');
const { session, app, protocol, BrowserWindow, ipcMain, Menu } = require('electron');
const {
session,
app,
protocol,
BrowserWindow,
ipcMain,
Menu,
} = require('electron');
require('./handlers.js');
const origin = require('./origin.js');
@@ -63,7 +70,8 @@ app.on('ready', async () => {
// Disallow all permissions requests originating outside of serve://boundary,
// per Electronegativity PERMISSION_REQUEST_HANDLER_GLOBAL_CHECK
ses.setPermissionRequestHandler((webContents, permission, callback) => {
if (webContents.getURL().startsWith('serve://boundary')) return callback(false);
if (webContents.getURL().startsWith('serve://boundary'))
return callback(false);
return callback(true);
});
@@ -72,8 +80,8 @@ app.on('ready', async () => {
callback({
responseHeaders: {
...details.responseHeaders,
'Content-Security-Policy': [generateCSPHeader()]
}
'Content-Security-Policy': [generateCSPHeader()],
},
});
});
@@ -91,7 +99,7 @@ app.on('ready', async () => {
}
// Configure menu in prod env
if(!isDev) {
if (!isDev) {
const menuTemplate = Menu.buildFromTemplate(menu.generateMenuTemplate());
Menu.setApplicationMenu(menuTemplate);
}
@@ -109,7 +117,7 @@ app.on('ready', async () => {
enableRemoteModule: false,
allowRunningInsecureContent: false,
preload: preloadPath,
disableBlinkFeatures: 'Auxclick'
disableBlinkFeatures: 'Auxclick',
},
});
+5 -6
View File
@@ -1,10 +1,9 @@
const { ipcMain } = require('electron');
const isDev = require('electron-is-dev');
const log = (method, request='', response='', type='log') => {
const requestString = typeof request === 'object'
? JSON.stringify(request)
: request;
const log = (method, request = '', response = '', type = 'log') => {
const requestString =
typeof request === 'object' ? JSON.stringify(request) : request;
// only log in dev mode
if (isDev) {
console[type](
@@ -15,7 +14,7 @@ const log = (method, request='', response='', type='log') => {
}
};
module.exports = function handle (command, handler) {
module.exports = function handle(command, handler) {
ipcMain.handle(command, async function (event, request) {
const requestPayload = request;
let result;
@@ -26,7 +25,7 @@ module.exports = function handle (command, handler) {
// If e is an Error instance, we need to extract the message and wrap
// it in a POJO before stringifying it. If not an Error, e is assumed to
// be already a POJO.
const errorMessage = (e instanceof Error) ? { message: e.message } : e;
const errorMessage = e instanceof Error ? { message: e.message } : e;
result = new Error(JSON.stringify(errorMessage));
log(command, requestPayload, e, 'error');
}
+18 -23
View File
@@ -1,4 +1,4 @@
const { shell } = require('electron')
const { shell } = require('electron');
const generateMenuTemplate = () => {
return [
@@ -14,15 +14,13 @@ const generateMenuTemplate = () => {
{ role: 'hideothers' },
{ role: 'unhide' },
{ type: 'separator' },
{ role: 'quit' }
]
{ role: 'quit' },
],
},
// { role: 'fileMenu' }
{
label: 'File',
submenu: [
{ role: 'close' }
]
submenu: [{ role: 'close' }],
},
// { role: 'editMenu' }
{
@@ -40,12 +38,9 @@ const generateMenuTemplate = () => {
{ type: 'separator' },
{
label: 'Speech',
submenu: [
{ role: 'startSpeaking' },
{ role: 'stopSpeaking' }
]
}
]
submenu: [{ role: 'startSpeaking' }, { role: 'stopSpeaking' }],
},
],
},
// { role: 'viewMenu' }
{
@@ -57,8 +52,8 @@ const generateMenuTemplate = () => {
{ role: 'zoomIn' },
{ role: 'zoomOut' },
{ type: 'separator' },
{ role: 'togglefullscreen' }
]
{ role: 'togglefullscreen' },
],
},
// { role: 'windowMenu' }
{
@@ -69,21 +64,21 @@ const generateMenuTemplate = () => {
{ type: 'separator' },
{ role: 'front' },
{ type: 'separator' },
{ role: 'window' }
]
{ role: 'window' },
],
},
{
role: 'help',
submenu: [
{
label: 'Documentation',
click: () => shell.openExternal('https://www.boundaryproject.io')
}
]
}
]
}
click: () => shell.openExternal('https://www.boundaryproject.io'),
},
],
},
];
};
module.exports = {
generateMenuTemplate: generateMenuTemplate
generateMenuTemplate: generateMenuTemplate,
};
+21 -20
View File
@@ -1,27 +1,27 @@
const { net } = require('electron')
const { net } = require('electron');
const requestTimeoutSeconds = 10;
// Simple promise wrapper around Electron's net.request feature.
// https://www.electronjs.org/docs/api/client-request
const netRequestPromise = url => new Promise((resolve, reject) => {
try {
const request = net.request(url);
// We don't worry about canceling the request timeout timer once a
// request ends because: request.abort() has no effect after a request
// ends and the promise will already have been completed, so a rejection
// has no effect either.
const requestTimeout =
setTimeout(() => {
const netRequestPromise = (url) =>
new Promise((resolve, reject) => {
try {
const request = net.request(url);
// We don't worry about canceling the request timeout timer once a
// request ends because: request.abort() has no effect after a request
// ends and the promise will already have been completed, so a rejection
// has no effect either.
const requestTimeout = setTimeout(() => {
request.abort();
reject(new Error('Request timeout'));
}, requestTimeoutSeconds * 1000);
request.on('error', reject);
request.on('response', resolve);
request.end();
} catch (e) {
reject(e);
}
});
request.on('error', reject);
request.on('response', resolve);
request.end();
} catch (e) {
reject(e);
}
});
// Provides a singleton class instance to enable a consistent view of
// runtime settings across the application.
@@ -30,7 +30,6 @@ const netRequestPromise = url => new Promise((resolve, reject) => {
// set up at runtime. For example, the Boundary origin is a runtime setting.
class RuntimeSettings {
// Internal private origin is exposed via getter/setter below.
#origin = undefined;
@@ -38,7 +37,9 @@ class RuntimeSettings {
* The user-specified Boundary origin, which should be allowed by CSP.
* @type {?string}
*/
get origin() { return this.#origin; }
get origin() {
return this.#origin;
}
set origin(origin) {
if (this.#origin !== origin) {
this.#origin = origin;
@@ -79,7 +80,7 @@ class RuntimeSettings {
}
triggerOriginChanged() {
this.#originWatchers.forEach(fn => fn(this.#origin));
this.#originWatchers.forEach((fn) => fn(this.#origin));
}
}
+3 -5
View File
@@ -5,13 +5,13 @@ const boundaryPath = path.resolve(__dirname, '..', 'cli', 'boundary');
// Convert to json
const jsonify = (data) => {
if(typeof data !== 'string') data = JSON.stringify(data);
if (typeof data !== 'string') data = JSON.stringify(data);
try {
return JSON.parse(data);
} catch (e) {
// Ignore parse errors
}
}
};
// You can throw exceptions, or allow them to occur, and this is supported.
// Exceptions thrown in this way will be returned to the UI as an
@@ -28,7 +28,6 @@ const jsonify = (data) => {
// helpful message for users, so it's recommended to craft nice
// POJO representation and throw it or promise->reject it.
module.exports = {
/**
* Spawns an asynchronous child process that is expected to output JSON
* data on either stdout or stderr. The process is allowed to continue
@@ -65,6 +64,5 @@ module.exports = {
const childProcess = spawnSync(boundaryPath, command);
const rawOutput = childProcess.output.toString();
return rawOutput;
}
},
};
+1 -1
View File
@@ -5,7 +5,7 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app');
module.exports = function (defaults) {
let app = new EmberApp(defaults, {
'ember-cli-babel': {
includeExternalHelpers: true
includeExternalHelpers: true,
},
babel: {
sourceMaps: 'inline',
+28 -20
View File
@@ -15,20 +15,23 @@
"build:development": "ember build",
"prebuild:desktop": "cp -r dist/ electron-app/ember-dist/",
"build:desktop": "cd electron-app && yarn make",
"lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*",
"lint": "npm-run-all --aggregate-output --continue-on-error --parallel 'lint:!(fix)'",
"lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix",
"lint:hbs": "ember-template-lint .",
"lint:hbs:fix": "ember-template-lint . --fix",
"lint:js": "eslint .",
"lint:sass": "stylelint '**/*.scss'",
"lint:electron": "electronegativity -r -i ./electron-app",
"format": "npm-run-all format:*",
"format:js": "prettier --write '{app,config,stories,tests,electron-app/src}/**/*.js' *.js",
"format:sass": "prettier --write app/**/*.scss",
"lint:js:fix": "eslint . --fix",
"start": "ember serve",
"prestart:desktop": "cd electron-app && yarn build:cli",
"start:desktop": "ember electron",
"clean:coverage": "rm -rf coverage_*",
"pretest": "yarn clean:coverage",
"test": "npm-run-all test:*",
"test": "npm-run-all lint test:*",
"test:ember": "COVERAGE=true ember exam --random",
"postinstall": "cd electron-app && yarn install",
"posttest": "ember coverage-merge && yarn clean:coverage"
@@ -36,50 +39,55 @@
"devDependencies": {
"@doyensec/electronegativity": "^1.7.0",
"@ember/jquery": "^1.1.0",
"@ember/optional-features": "^1.3.0",
"@ember/optional-features": "^2.0.0",
"@ember/render-modifiers": "^1.0.2",
"@glimmer/component": "^1.0.1",
"@glimmer/tracking": "^1.0.0",
"@ember/test-helpers": "^2.1.4",
"@glimmer/component": "^1.0.3",
"@glimmer/tracking": "^1.0.3",
"babel-eslint": "^10.1.0",
"babel-loader": "^8.1.0",
"broccoli-asset-rev": "^3.0.0",
"clipboard": "^2.0.6",
"core": "*",
"doctoc": "^1.4.0",
"ember-auto-import": "^1.6.0",
"ember-auto-import": "^1.10.1",
"ember-autofocus-modifier": "^1.1.0",
"ember-cli": "~3.20.2",
"ember-cli-app-version": "^3.2.0",
"ember-cli-babel": "^7.21.0",
"ember-cli": "~3.24.0",
"ember-cli-app-version": "^4.0.0",
"ember-cli-babel": "^7.23.0",
"ember-cli-code-coverage": "^1.0.2",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-htmlbars": "^5.2.0",
"ember-cli-htmlbars": "^5.3.1",
"ember-cli-inject-live-reload": "^2.0.2",
"ember-cli-sass": "^10.0.1",
"ember-cli-sri": "^2.1.1",
"ember-cli-template-lint": "^2.0.2",
"ember-cli-uglify": "^3.0.0",
"ember-cli-terser": "^4.0.1",
"ember-concurrency": "^1.3.0",
"ember-electron": "https://github.com/adopted-ember-addons/ember-electron#v3.0.0-beta.4",
"ember-exam": "^6.0.1",
"ember-export-application-global": "^2.0.1",
"ember-inline-svg": "^1.0.0",
"ember-load-initializers": "^2.1.1",
"ember-load-initializers": "^2.1.2",
"ember-maybe-import-regenerator": "^0.1.6",
"ember-modifier": "^2.1.1",
"ember-notify": "^6.0.0",
"ember-qunit": "^4.6.0",
"ember-resolver": "^8.0.0",
"ember-source": "~3.20.2",
"ember-template-lint": "^2.14.0",
"eslint": "^7.5.0",
"eslint-plugin-ember": "^8.9.1",
"ember-page-title": "^6.0.3",
"ember-qunit": "^5.1.1",
"ember-resolver": "^8.0.2",
"ember-source": "~3.24.0",
"ember-template-lint": "^2.15.0",
"eslint": "^7.17.0",
"eslint-config-prettier": "^7.1.0",
"eslint-plugin-ember": "^10.1.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
"faker": "^5.1.0",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.1.2",
"qunit-dom": "^1.2.0",
"prettier": "^2.2.1",
"qunit": "^2.13.0",
"qunit-dom": "^1.6.0",
"rose": "*",
"sass": "^1.29.0",
"sinon": "^9.2.1",
@@ -166,7 +166,7 @@ module('Acceptance | authentication', function (hooks) {
authenticateSession({
scope: {
id: instances.scopes.global.id,
type: instances.scopes.global.type
type: instances.scopes.global.type,
},
});
later(async () => {
+7
View File
@@ -21,6 +21,13 @@
{{content-for "body"}}
{{content-for "test-body"}}
<div id="qunit"></div>
<div id="qunit-fixture">
<div id="ember-testing-container">
<div id="ember-testing"></div>
</div>
</div>
<script src="/testem.js" integrity=""></script>
<script src="{{rootURL}}assets/vendor.js"></script>
<script src="{{rootURL}}assets/test-support.js"></script>
@@ -3,10 +3,10 @@ import { setupRenderingTest } from 'ember-qunit';
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
module('Integration | Component | branded-card', function(hooks) {
module('Integration | Component | branded-card', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function(assert) {
test('it renders', async function (assert) {
// Set any properties with this.set('myProperty', 'value');
// Handle any actions with this.set('myAction', function(val) { ... });
+6 -2
View File
@@ -1,8 +1,12 @@
import Application from '../app';
import config from '../config/environment';
import Application from 'desktop/app';
import config from 'desktop/config/environment';
import * as QUnit from 'qunit';
import { setApplication } from '@ember/test-helpers';
import { setup } from 'qunit-dom';
import { start } from 'ember-qunit';
setApplication(Application.create(config.APP));
setup(QUnit.assert);
start();
@@ -1,12 +1,17 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Controller | scopes/scope/projects/sessions/index', function(hooks) {
setupTest(hooks);
module(
'Unit | Controller | scopes/scope/projects/sessions/index',
function (hooks) {
setupTest(hooks);
// TODO: Replace this with your real tests.
test('it exists', function(assert) {
let controller = this.owner.lookup('controller:scopes/scope/projects/sessions/index');
assert.ok(controller);
});
});
// TODO: Replace this with your real tests.
test('it exists', function (assert) {
let controller = this.owner.lookup(
'controller:scopes/scope/projects/sessions/index'
);
assert.ok(controller);
});
}
);
@@ -1,12 +1,17 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Controller | scopes/scope/projects/targets/target/sessions', function(hooks) {
setupTest(hooks);
module(
'Unit | Controller | scopes/scope/projects/targets/target/sessions',
function (hooks) {
setupTest(hooks);
// TODO: Replace this with your real tests.
test('it exists', function(assert) {
let controller = this.owner.lookup('controller:scopes/scope/projects/targets/target/sessions');
assert.ok(controller);
});
});
// TODO: Replace this with your real tests.
test('it exists', function (assert) {
let controller = this.owner.lookup(
'controller:scopes/scope/projects/targets/target/sessions'
);
assert.ok(controller);
});
}
);
@@ -1,10 +1,10 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | scopes/scope/projects/sessions', function(hooks) {
module('Unit | Route | scopes/scope/projects/sessions', function (hooks) {
setupTest(hooks);
test('it exists', function(assert) {
test('it exists', function (assert) {
let route = this.owner.lookup('route:scopes/scope/projects/sessions');
assert.ok(route);
});
@@ -1,10 +1,10 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | scopes/scope/projects/sessions/index', function(hooks) {
module('Unit | Route | scopes/scope/projects/sessions/index', function (hooks) {
setupTest(hooks);
test('it exists', function(assert) {
test('it exists', function (assert) {
let route = this.owner.lookup('route:scopes/scope/projects/sessions/index');
assert.ok(route);
});
@@ -1,10 +1,10 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | scopes/scope/projects/targets/target', function(hooks) {
module('Unit | Route | scopes/scope/projects/targets/target', function (hooks) {
setupTest(hooks);
test('it exists', function(assert) {
test('it exists', function (assert) {
let route = this.owner.lookup('route:scopes/scope/projects/targets/target');
assert.ok(route);
});
@@ -1,11 +1,16 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | scopes/scope/projects/targets/target/hosts', function(hooks) {
setupTest(hooks);
module(
'Unit | Route | scopes/scope/projects/targets/target/hosts',
function (hooks) {
setupTest(hooks);
test('it exists', function(assert) {
let route = this.owner.lookup('route:scopes/scope/projects/targets/target/hosts');
assert.ok(route);
});
});
test('it exists', function (assert) {
let route = this.owner.lookup(
'route:scopes/scope/projects/targets/target/hosts'
);
assert.ok(route);
});
}
);
@@ -1,11 +1,16 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | scopes/scope/projects/targets/target/index', function(hooks) {
setupTest(hooks);
module(
'Unit | Route | scopes/scope/projects/targets/target/index',
function (hooks) {
setupTest(hooks);
test('it exists', function(assert) {
let route = this.owner.lookup('route:scopes/scope/projects/targets/target/index');
assert.ok(route);
});
});
test('it exists', function (assert) {
let route = this.owner.lookup(
'route:scopes/scope/projects/targets/target/index'
);
assert.ok(route);
});
}
);
@@ -1,11 +1,16 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | scopes/scope/projects/targets/target/sessions', function(hooks) {
setupTest(hooks);
module(
'Unit | Route | scopes/scope/projects/targets/target/sessions',
function (hooks) {
setupTest(hooks);
test('it exists', function(assert) {
let route = this.owner.lookup('route:scopes/scope/projects/targets/target/sessions');
assert.ok(route);
});
});
test('it exists', function (assert) {
let route = this.owner.lookup(
'route:scopes/scope/projects/targets/target/sessions'
);
assert.ok(route);
});
}
);
+2 -2
View File
@@ -58,13 +58,13 @@ module('Unit | Service | ipc', function (hooks) {
assert.expect(1);
const stringifiedPayload = JSON.stringify({
foo: 'bar',
test: 42
test: 42,
});
const myWindow = {
postMessage(request, origin, [port]) {
// Post back an error on the response port
port.postMessage(new Error(stringifiedPayload));
}
},
};
try {
await new IPCRequest('hello', 'world', myWindow);
@@ -1,11 +1,11 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Service | origin', function(hooks) {
module('Unit | Service | origin', function (hooks) {
setupTest(hooks);
// TODO: Replace this with your real tests.
test('it exists', function(assert) {
test('it exists', function (assert) {
let service = this.owner.lookup('service:origin');
assert.ok(service);
});
+26 -453
View File
@@ -783,7 +783,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-transform-modules-amd@^7.10.1", "@babel/plugin-transform-modules-amd@^7.10.4", "@babel/plugin-transform-modules-amd@^7.10.5", "@babel/plugin-transform-modules-amd@^7.12.1":
"@babel/plugin-transform-modules-amd@^7.10.1", "@babel/plugin-transform-modules-amd@^7.10.5", "@babel/plugin-transform-modules-amd@^7.12.1":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9"
integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==
@@ -1645,19 +1645,6 @@
jquery "^3.4.1"
resolve "^1.11.1"
"@ember/optional-features@^1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@ember/optional-features/-/optional-features-1.3.0.tgz#d7da860417b85a56cec88419f30da5ee1dde2756"
integrity sha512-Lrfojy4xKwTX+J4EAylmxZY2TO6bQtP4Lg5C8/z2priVqiT0X5fVB1+4WQCJbRBetctO1lMDnqjmhWCVKB8bmQ==
dependencies:
chalk "^3.0.0"
ember-cli-version-checker "^3.1.3"
glob "^7.1.6"
inquirer "^7.0.1"
mkdirp "^0.5.1"
silent-error "^1.1.1"
util.promisify "^1.0.0"
"@ember/optional-features@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@ember/optional-features/-/optional-features-2.0.0.tgz#c809abd5a27d5b0ef3c6de3941334ab6153313f0"
@@ -1693,7 +1680,7 @@
dependencies:
ember-cli-babel "^7.4.0"
"@ember/test-helpers@^1.7.0", "@ember/test-helpers@^1.7.1":
"@ember/test-helpers@^1.7.0":
version "1.7.2"
resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-1.7.2.tgz#5b128dc5f6524c3850abf52668e6bd4fda401194"
integrity sha512-FEJBpbFNIaWAsCSnataiNwYFvmcpoymL/B7fXLruuJ/46BnJjzLaRPtpUIZ91w4GNTK6knxbHWXW76aVb3Aezg==
@@ -1934,22 +1921,6 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
"@eslint/eslintrc@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318"
integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==
dependencies:
ajv "^6.12.4"
debug "^4.1.1"
espree "^7.3.0"
globals "^12.1.0"
ignore "^4.0.6"
import-fresh "^3.2.1"
js-yaml "^3.13.1"
lodash "^4.17.20"
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
"@eslint/eslintrc@^0.4.0":
version "0.4.0"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547"
@@ -1972,26 +1943,6 @@
dependencies:
tslib "^2.0.1"
"@glimmer/component@^1.0.1":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@glimmer/component/-/component-1.0.3.tgz#38c26fc4855fd7ad0e0816d18d80d32c578e5140"
integrity sha512-GD3gcN+Pr2flmxkt2lm5K86jwX+KRD9QQpNH+wiEQGjBXOzd46+XD5npH1sRByqLYml9rW4klflcrEfNb7dnQw==
dependencies:
"@glimmer/di" "^0.1.9"
"@glimmer/env" "^0.1.7"
"@glimmer/util" "^0.44.0"
broccoli-file-creator "^2.1.1"
broccoli-merge-trees "^3.0.2"
ember-cli-babel "^7.7.3"
ember-cli-get-component-path-option "^1.0.0"
ember-cli-is-package-missing "^1.0.0"
ember-cli-normalize-entity-name "^1.0.0"
ember-cli-path-utils "^1.0.0"
ember-cli-string-utils "^1.1.0"
ember-cli-typescript "3.0.0"
ember-cli-version-checker "^3.1.3"
ember-compatibility-helpers "^1.1.2"
"@glimmer/component@^1.0.3":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@glimmer/component/-/component-1.0.4.tgz#1c85a5181615a6647f6acfaaed68e28ad7e9626e"
@@ -2114,14 +2065,6 @@
"@handlebars/parser" "^1.1.0"
simple-html-tokenizer "^0.5.10"
"@glimmer/tracking@^1.0.0":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@glimmer/tracking/-/tracking-1.0.3.tgz#8b9b42aff6c206edeaaea178a95acc1eff62e61e"
integrity sha512-21WR13vPdzt1IQ6JmPPAu4szjV9yKdmLHV3nD0MLDj6/EoYv1c2PqpFBBlp++6xW8OnyDa++cQ8OFoQDP+MRpA==
dependencies:
"@glimmer/env" "^0.1.7"
"@glimmer/validator" "^0.44.0"
"@glimmer/tracking@^1.0.3":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@glimmer/tracking/-/tracking-1.0.4.tgz#f1bc1412fe5e2236d0f8d502994a8f88af1bbb21"
@@ -5505,7 +5448,7 @@ broccoli-babel-transpiler@^6.5.0:
rsvp "^4.8.2"
workerpool "^2.3.0"
broccoli-babel-transpiler@^7.5.0, broccoli-babel-transpiler@^7.6.0, broccoli-babel-transpiler@^7.8.0:
broccoli-babel-transpiler@^7.5.0, broccoli-babel-transpiler@^7.8.0:
version "7.8.0"
resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-7.8.0.tgz#7e0f01fce5739f49bbadeee7f1e625ca51cad66e"
integrity sha512-dv30Td5uL7dO3NzQUqQKQs+Iq7JGKnCNtvc6GBO76uVPqGnRlsQZcYqdBVr33JrctR+ZrpTUf7TjsFKeDRFA8Q==
@@ -6060,53 +6003,6 @@ broccoli-terser-sourcemap@^4.1.0:
walk-sync "^2.2.0"
workerpool "^6.0.0"
broccoli-uglify-sourcemap@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/broccoli-uglify-sourcemap/-/broccoli-uglify-sourcemap-3.2.0.tgz#d96f1d41f6c18e9a5d49af1a5ab9489cdcac1c6c"
integrity sha512-kkkn8v7kXdWwnZNekq+3ILuTAGkZoaoEMUYCKoER5/uokuoyTjtdYLHaE7UxHkuPEuLfjvJYv21sCCePZ74/2g==
dependencies:
async-promise-queue "^1.0.5"
broccoli-plugin "^1.2.1"
debug "^4.1.0"
lodash.defaultsdeep "^4.6.1"
matcher-collection "^2.0.0"
mkdirp "^0.5.0"
source-map-url "^0.4.0"
symlink-or-copy "^1.0.1"
terser "^4.3.9"
walk-sync "^1.1.3"
workerpool "^5.0.1"
broccoli@^3.4.2:
version "3.5.0"
resolved "https://registry.yarnpkg.com/broccoli/-/broccoli-3.5.0.tgz#bdf96dc32980d1ad9f7ef5e68aaaa19e8d47b602"
integrity sha512-qGYirIs6W5NGzDPMTRtoOnveP3UQJKWFjAWdRRZJjCoAJYN872sXuO48cnNfnc/c1nd9fCR8et4knlTPgI+9yQ==
dependencies:
"@types/chai" "^4.2.9"
"@types/chai-as-promised" "^7.1.2"
"@types/express" "^4.17.2"
ansi-html "^0.0.7"
broccoli-node-info "^2.1.0"
broccoli-slow-trees "^3.0.1"
broccoli-source "^3.0.0"
commander "^4.1.1"
connect "^3.6.6"
console-ui "^3.0.4"
esm "^3.2.4"
findup-sync "^4.0.0"
handlebars "^4.7.3"
heimdalljs "^0.2.6"
heimdalljs-logger "^0.1.9"
https "^1.0.0"
mime-types "^2.1.26"
resolve-path "^1.4.0"
rimraf "^3.0.2"
sane "^4.0.0"
tmp "^0.0.33"
tree-sync "^2.0.0"
underscore.string "^3.2.2"
watch-detector "^1.0.0"
broccoli@^3.5.0:
version "3.5.1"
resolved "https://registry.yarnpkg.com/broccoli/-/broccoli-3.5.1.tgz#371bc63cabe700bae3a2b80cac3e978f94664418"
@@ -7199,7 +7095,7 @@ commitizen@^4.0.3:
strip-bom "4.0.0"
strip-json-comments "3.0.1"
common-tags@^1.4.0, common-tags@^1.8.0:
common-tags@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
@@ -7326,7 +7222,7 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
console-ui@^3.0.4, console-ui@^3.1.1, console-ui@^3.1.2:
console-ui@^3.0.4, console-ui@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/console-ui/-/console-ui-3.1.2.tgz#51aef616ff02013c85ccee6a6d77ef7a94202e7a"
integrity sha512-+5j3R4wZJcEYZeXk30whc4ZU/+fWW9JMTNntVuMYpjZJ9n26Cxr0tUBXco1NRjVZRpRVvZ4DDKKKIHNYeUG9Dw==
@@ -8504,7 +8400,7 @@ ember-assign-polyfill@^2.6.0:
ember-cli-babel "^7.20.5"
ember-cli-version-checker "^2.0.0"
ember-auto-import@^1.10.1, ember-auto-import@^1.2.15, ember-auto-import@^1.2.19, ember-auto-import@^1.5.3, ember-auto-import@^1.6.0:
ember-auto-import@^1.10.1, ember-auto-import@^1.2.15, ember-auto-import@^1.2.19, ember-auto-import@^1.5.3:
version "1.10.1"
resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.10.1.tgz#6c93a875e494aa0a58b759867d3f20adfd514ae3"
integrity sha512-7bOWzPELlVwdWDOkB+phDIjg8BNW+/2RiLLQ+Xa/eIvCLT4ABYhHV5wqW5gs5BnXTDVLfE4ddKZdllnGuPGGDQ==
@@ -8565,14 +8461,6 @@ ember-cli-addon-docs-yuidoc@^0.2.3:
lodash "^4.17.5"
yuidocjs "^0.10.2"
ember-cli-app-version@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-3.2.0.tgz#7b9ad0e1b63ae0518648356ee24c703e922bc26e"
integrity sha512-fHWOJElSw8JL03FNCHrT0RdWhGpWEQ4VQ10unEwwhVZ+OANNcOLz8O2dA3D5iuB4bb0fMLwjEwYZGM62+TBs1Q==
dependencies:
ember-cli-babel "^6.12.0"
git-repo-version "^1.0.2"
ember-cli-app-version@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-4.0.0.tgz#033057ec5fe4d3ecdf5ac5380d442e2dc9f7526a"
@@ -8586,7 +8474,7 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em
resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879"
integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==
ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3:
ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.13.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3:
version "7.23.1"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.1.tgz#d1517228ede08a5d4b045c78a7429728e956b30b"
integrity sha512-qYggmt3hRs6QJ6cRkww3ahMpyP8IEV2KFrIRO/Z6hu9MkE/8Y28Xd5NjQl6fPV3oLoG0vwuHzhNe3Jr7Wec8zw==
@@ -8650,7 +8538,7 @@ ember-cli-babel@7.21.0:
rimraf "^3.0.1"
semver "^5.5.0"
ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.12.0, ember-cli-babel@^6.16.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2, ember-cli-babel@^6.9.2:
ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.16.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2, ember-cli-babel@^6.9.2:
version "6.18.0"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.18.0.tgz#3f6435fd275172edeff2b634ee7b29ce74318957"
integrity sha512-7ceC8joNYxY2wES16iIBlbPSxwKDBhYwC8drU3ZEvuPDMwVv1KzxCNu1fvxyFEBWhwaRNTUxSCsEVoTd9nosGA==
@@ -8910,13 +8798,6 @@ ember-cli-test-info@^1.0.0:
dependencies:
ember-cli-string-utils "^1.0.0"
ember-cli-test-loader@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/ember-cli-test-loader/-/ember-cli-test-loader-2.2.0.tgz#3fb8d5d1357e4460d3f0a092f5375e71b6f7c243"
integrity sha512-mlSXX9SciIRwGkFTX6XGyJYp4ry6oCFZRxh5jJ7VH8UXLTNx2ZACtDTwaWtNhYrWXgKyiDUvmD8enD56aePWRA==
dependencies:
ember-cli-babel "^6.8.1"
ember-cli-test-loader@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ember-cli-test-loader/-/ember-cli-test-loader-3.0.0.tgz#1c036fc48de36155355fcda3266af63f977826f1"
@@ -8995,14 +8876,6 @@ ember-cli-typescript@^4.0.0:
stagehand "^1.0.0"
walk-sync "^2.2.0"
ember-cli-uglify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ember-cli-uglify/-/ember-cli-uglify-3.0.0.tgz#8819665b2cc5fe70e3ba9fe7a94645209bc42fd6"
integrity sha512-n3QxdBfAgBdb2Cnso82Kt/nxm3ppIjnYWM8uhOEhF1aYxNXfM7AJrc+yiqTCDUR61Db8aCpHfAMvChz3kyme7g==
dependencies:
broccoli-uglify-sourcemap "^3.1.0"
lodash.defaultsdeep "^4.6.0"
ember-cli-update@^0.54.6:
version "0.54.6"
resolved "https://registry.yarnpkg.com/ember-cli-update/-/ember-cli-update-0.54.6.tgz#e9f405b4737558e53874025731568ae7c005a48c"
@@ -9070,101 +8943,6 @@ ember-cli-version-checker@^5.0.1, ember-cli-version-checker@^5.1.1, ember-cli-ve
semver "^7.3.4"
silent-error "^1.1.1"
ember-cli@~3.20.2:
version "3.20.2"
resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.20.2.tgz#4a5411afc32a91eb81e4fa1e6f4bc950e838c132"
integrity sha512-8ggRX+NXD9VkQt/9/GSMLcnswWNYTgE7Aw1uelexHdxGA1TqcjOjQ07ljVmgRwYVieknhDzhK3M0u3Xoa3x0HA==
dependencies:
"@babel/core" "^7.10.2"
"@babel/plugin-transform-modules-amd" "^7.10.4"
amd-name-resolver "^1.3.1"
babel-plugin-module-resolver "^4.0.0"
bower-config "^1.4.3"
bower-endpoint-parser "0.2.2"
broccoli "^3.4.2"
broccoli-amd-funnel "^2.0.1"
broccoli-babel-transpiler "^7.6.0"
broccoli-builder "^0.18.14"
broccoli-concat "^4.2.4"
broccoli-config-loader "^1.0.1"
broccoli-config-replace "^1.1.2"
broccoli-debug "^0.6.5"
broccoli-funnel "^2.0.2"
broccoli-funnel-reducer "^1.0.0"
broccoli-merge-trees "^3.0.2"
broccoli-middleware "^2.1.1"
broccoli-slow-trees "^3.1.0"
broccoli-source "^3.0.0"
broccoli-stew "^3.0.0"
calculate-cache-key-for-tree "^2.0.0"
capture-exit "^2.0.0"
chalk "^4.0.0"
ci-info "^2.0.0"
clean-base-url "^1.0.0"
compression "^1.7.4"
configstore "^5.0.1"
console-ui "^3.1.1"
core-object "^3.1.5"
dag-map "^2.0.2"
diff "^4.0.2"
ember-cli-is-package-missing "^1.0.0"
ember-cli-lodash-subset "^2.0.1"
ember-cli-normalize-entity-name "^1.0.0"
ember-cli-preprocess-registry "^3.3.0"
ember-cli-string-utils "^1.1.0"
ember-source-channel-url "^2.0.1"
ensure-posix-path "^1.1.1"
execa "^1.0.0"
exit "^0.1.2"
express "^4.17.1"
filesize "^6.1.0"
find-up "^4.1.0"
find-yarn-workspace-root "^1.2.1"
fixturify-project "^2.1.0"
fs-extra "^9.0.0"
fs-tree-diff "^2.0.1"
get-caller-file "^2.0.5"
git-repo-info "^2.1.1"
glob "^7.1.6"
heimdalljs "^0.2.6"
heimdalljs-fs-monitor "^0.2.3"
heimdalljs-graph "^1.0.0"
heimdalljs-logger "^0.1.10"
http-proxy "^1.18.1"
inflection "^1.12.0"
is-git-url "^1.0.0"
isbinaryfile "^4.0.6"
js-yaml "^3.13.1"
json-stable-stringify "^1.0.1"
leek "0.0.24"
lodash.template "^4.5.0"
markdown-it "^11.0.0"
markdown-it-terminal "0.2.1"
minimatch "^3.0.4"
morgan "^1.10.0"
nopt "^3.0.6"
npm-package-arg "^8.0.1"
p-defer "^3.0.0"
portfinder "^1.0.26"
promise-map-series "^0.3.0"
promise.hash.helper "^1.0.6"
quick-temp "^0.1.8"
resolve "^1.17.0"
resolve-package-path "^2.0.0"
sane "^4.1.0"
semver "^7.3.2"
silent-error "^1.1.1"
sort-package-json "^1.44.0"
symlink-or-copy "^1.3.1"
temp "0.9.1"
testem "^3.1.0"
tiny-lr "^1.1.1"
tree-sync "^2.1.0"
uuid "^8.1.0"
walk-sync "^2.2.0"
watch-detector "^1.0.0"
yam "^1.0.0"
ember-cli@~3.24.0:
version "3.24.0"
resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.24.0.tgz#dbda4938e74fdafe4da1c42b49356f9d14c10697"
@@ -9516,7 +9294,7 @@ ember-intl@^5.5.0:
mkdirp "^1.0.4"
silent-error "^1.1.1"
ember-load-initializers@^2.1.1, ember-load-initializers@^2.1.2:
ember-load-initializers@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-2.1.2.tgz#8a47a656c1f64f9b10cecdb4e22a9d52ad9c7efa"
integrity sha512-CYR+U/wRxLbrfYN3dh+0Tb6mFaxJKfdyz+wNql6cqTrA0BBi9k6J3AaKXj273TqvEpyyXegQFFkZEiuZdYtgJw==
@@ -9593,19 +9371,6 @@ ember-page-title@^6.0.3:
dependencies:
ember-cli-babel "^7.22.1"
ember-qunit@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-4.6.0.tgz#ad79fd3ff00073a8779400cc5a4b44829517590f"
integrity sha512-i5VOGn0RP8XH+5qkYDOZshbqAvO6lHgF65D0gz8vRx4DszCIvJMJO+bbftBTfYMxp6rqG85etAA6pfNxE0DqsQ==
dependencies:
"@ember/test-helpers" "^1.7.1"
broccoli-funnel "^2.0.2"
broccoli-merge-trees "^3.0.2"
common-tags "^1.4.0"
ember-cli-babel "^7.12.0"
ember-cli-test-loader "^2.2.0"
qunit "^2.9.3"
ember-qunit@^5.1.1:
version "5.1.3"
resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-5.1.3.tgz#73de924c6c698eaed4adaaab257793741f2d666f"
@@ -9629,7 +9394,7 @@ ember-radio-button@^2.0.1:
ember-cli-babel "^6.9.2"
ember-cli-htmlbars "^1.1.1"
ember-resolver@^8.0.0, ember-resolver@^8.0.2:
ember-resolver@^8.0.2:
version "8.0.2"
resolved "https://registry.yarnpkg.com/ember-resolver/-/ember-resolver-8.0.2.tgz#8a45a744aaf5391eb52b4cb393b3b06d2db1975c"
integrity sha512-BmCoPT8nf5uv0g2QkhMsrG1Gmu6MtXd6igfhCVzCTMTwZ97SxhJKqoMY62EP/av5HVSWBC/Sa1uGU5cQvX1Aog==
@@ -9684,13 +9449,6 @@ ember-source-channel-url@^1.0.1:
dependencies:
got "^8.0.1"
ember-source-channel-url@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/ember-source-channel-url/-/ember-source-channel-url-2.0.1.tgz#18b88f8a00b7746e7a456b3551abb3aea18729cc"
integrity sha512-YlLUHW9gNvxEaohIj5exykoTZb4xj9ZRTcR4J3svv9S8rjAHJUnHmqC5Fd9onCs+NGxHo7KwR/fDwsfadbDu5Q==
dependencies:
got "^8.0.1"
ember-source-channel-url@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ember-source-channel-url/-/ember-source-channel-url-3.0.0.tgz#bcd5be72c63fa0b8c390b3121783b462063e2a1b"
@@ -9698,36 +9456,6 @@ ember-source-channel-url@^3.0.0:
dependencies:
node-fetch "^2.6.0"
ember-source@~3.20.2:
version "3.20.6"
resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.20.6.tgz#c2aa4cee386436214b4b3ed84a71becfe815fa12"
integrity sha512-THimwJmimckNdumSg0M5URQTRlXAArEhe2ricCIuYesMwyX9HwZSUMS+IbXALzktGZU8qfEqyWNXxpmQ8ThJLA==
dependencies:
"@babel/helper-module-imports" "^7.8.3"
"@babel/plugin-transform-block-scoping" "^7.8.3"
"@babel/plugin-transform-object-assign" "^7.8.3"
"@ember/edition-utils" "^1.2.0"
babel-plugin-debug-macros "^0.3.3"
babel-plugin-filter-imports "^4.0.0"
broccoli-concat "^4.2.4"
broccoli-debug "^0.6.4"
broccoli-funnel "^2.0.2"
broccoli-merge-trees "^4.2.0"
chalk "^4.0.0"
ember-cli-babel "^7.19.0"
ember-cli-get-component-path-option "^1.0.0"
ember-cli-is-package-missing "^1.0.0"
ember-cli-normalize-entity-name "^1.0.0"
ember-cli-path-utils "^1.0.0"
ember-cli-string-utils "^1.1.0"
ember-cli-version-checker "^5.1.1"
ember-router-generator "^2.0.0"
inflection "^1.12.0"
jquery "^3.5.0"
resolve "^1.17.0"
semver "^6.1.1"
silent-error "^1.1.1"
ember-source@~3.24.0:
version "3.24.2"
resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.2.tgz#64c593057020eb867935cf0735e758e96bb5f4cd"
@@ -9758,7 +9486,7 @@ ember-source@~3.24.0:
semver "^6.1.1"
silent-error "^1.1.1"
ember-template-lint@^2.0.1, ember-template-lint@^2.14.0:
ember-template-lint@^2.0.1:
version "2.18.0"
resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.18.0.tgz#cba7665c2ff3c34734285768d7bf41cdd08ffb3f"
integrity sha512-4J1Dk2ZaMo/nqtP4QJF+25yYnKNOewE8xopSRNGjgQpNwaUFZmZCtzJtoSJF6+SRLcMDljnewXRezugok4ljug==
@@ -9998,11 +9726,6 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
entities@~2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==
entities@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
@@ -10277,16 +10000,6 @@ eslint-plugin-ember@^10.1.1:
lodash.kebabcase "^4.1.1"
snake-case "^3.0.3"
eslint-plugin-ember@^8.9.1:
version "8.14.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-ember/-/eslint-plugin-ember-8.14.0.tgz#fc4c5119b5a1c87604a7bf920ca397783b96b7be"
integrity sha512-PQhR58omMAZzcJOB8GLWzL6l/vjRZ2Uo1eohxOmgPUyeBkHfZAMlvK+OSeneMLIr4azLQ4GISkklwv6lxb8qnw==
dependencies:
"@ember-data/rfc395-data" "^0.0.4"
ember-rfc176-data "^0.3.15"
lodash.kebabcase "^4.1.1"
snake-case "^3.0.3"
eslint-plugin-es@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893"
@@ -10479,49 +10192,6 @@ eslint@^7.17.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
eslint@^7.5.0:
version "7.19.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.19.0.tgz#6719621b196b5fad72e43387981314e5d0dc3f41"
integrity sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==
dependencies:
"@babel/code-frame" "^7.0.0"
"@eslint/eslintrc" "^0.3.0"
ajv "^6.10.0"
chalk "^4.0.0"
cross-spawn "^7.0.2"
debug "^4.0.1"
doctrine "^3.0.0"
enquirer "^2.3.5"
eslint-scope "^5.1.1"
eslint-utils "^2.1.0"
eslint-visitor-keys "^2.0.0"
espree "^7.3.1"
esquery "^1.2.0"
esutils "^2.0.2"
file-entry-cache "^6.0.0"
functional-red-black-tree "^1.0.1"
glob-parent "^5.0.0"
globals "^12.1.0"
ignore "^4.0.6"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
is-glob "^4.0.0"
js-yaml "^3.13.1"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.4.1"
lodash "^4.17.20"
minimatch "^3.0.4"
natural-compare "^1.4.0"
optionator "^0.9.1"
progress "^2.0.0"
regexpp "^3.1.0"
semver "^7.2.1"
strip-ansi "^6.0.0"
strip-json-comments "^3.1.0"
table "^6.0.4"
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
esm@^3.2.25, esm@^3.2.4:
version "3.2.25"
resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10"
@@ -10563,7 +10233,7 @@ esprima@~3.0.0:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9"
integrity sha1-U88kes2ncxPlUcOqLnM0LT+099k=
esquery@^1.0.1, esquery@^1.2.0:
esquery@^1.0.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
@@ -11001,13 +10671,6 @@ faye-websocket@^0.11.3:
dependencies:
websocket-driver ">=0.5.1"
faye-websocket@~0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=
dependencies:
websocket-driver ">=0.5.1"
fb-watchman@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
@@ -11258,7 +10921,7 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
find-yarn-workspace-root@^1.1.0, find-yarn-workspace-root@^1.2.1:
find-yarn-workspace-root@^1.1.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db"
integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==
@@ -11415,13 +11078,6 @@ follow-redirects@^1.0.0:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147"
integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
dependencies:
is-callable "^1.1.3"
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -11936,23 +11592,11 @@ git-read-pkt-line@0.0.8:
bops "0.0.3"
through "~2.2.7"
git-repo-info@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-1.4.1.tgz#2a072823254aaf62fcf0766007d7b6651bd41943"
integrity sha1-KgcoIyVKr2L88HZgB9e2ZRvUGUM=
git-repo-info@^2.0.0, git-repo-info@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-2.1.1.tgz#220ffed8cbae74ef8a80e3052f2ccb5179aed058"
integrity sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==
git-repo-version@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/git-repo-version/-/git-repo-version-1.0.2.tgz#2c8e9bee5d970cafc0dd58480f9dc56d9afe8e4f"
integrity sha512-OPtwtHx9E8/rTMcWT+BU6GNj6Kq/O40bHJZaZAGy+pN2RXGmeKcfr0ix4M+SQuFY8vl5L/wfPSGOAtvUT/e3Qg==
dependencies:
git-repo-info "^1.4.1"
git-transport-protocol@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/git-transport-protocol/-/git-transport-protocol-0.1.0.tgz#99f4dd6389b9161eded74a9e617d6ba5ed0a6c2c"
@@ -12613,14 +12257,6 @@ he@1.2.0, he@^1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
heimdalljs-fs-monitor@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/heimdalljs-fs-monitor/-/heimdalljs-fs-monitor-0.2.3.tgz#1aedd4b1c61d86c51f6141fb75c5a3350dc41b15"
integrity sha512-fYAvqSP0CxeOjLrt61B4wux/jqZzdZnS2xfb2oc14NP6BTZ8gtgtR2op6gKFakOR8lm8GN9Xhz1K4A1ZvJ4RQw==
dependencies:
heimdalljs "^0.2.3"
heimdalljs-logger "^0.1.7"
heimdalljs-fs-monitor@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/heimdalljs-fs-monitor/-/heimdalljs-fs-monitor-1.1.0.tgz#0ad5aa1dac0a30d5940a74edeea3d515e70225e4"
@@ -13207,7 +12843,7 @@ inquirer@^0.12.0:
strip-ansi "^3.0.0"
through "^2.3.6"
inquirer@^7.0.0, inquirer@^7.0.1, inquirer@^7.3.3:
inquirer@^7.0.0, inquirer@^7.3.3:
version "7.3.3"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
@@ -13370,7 +13006,7 @@ is-buffer@^2.0.0:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.2:
is-callable@^1.1.4, is-callable@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
@@ -14591,11 +14227,6 @@ linkify-it@~1.2.0:
dependencies:
uc.micro "^1.0.1"
livereload-js@^2.3.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c"
integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==
livereload-js@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.3.1.tgz#61f887468086762e61fb2987412cf9d1dda99202"
@@ -14854,7 +14485,7 @@ lodash.defaults@^4.2.0:
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
lodash.defaultsdeep@^4.6.0, lodash.defaultsdeep@^4.6.1:
lodash.defaultsdeep@^4.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6"
integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==
@@ -15281,17 +14912,6 @@ markdown-it-terminal@0.2.1:
lodash.merge "^4.6.2"
markdown-it "^8.3.1"
markdown-it@^11.0.0:
version "11.0.1"
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.1.tgz#b54f15ec2a2193efa66dda1eb4173baea08993d6"
integrity sha512-aU1TzmBKcWNNYvH9pjq6u92BML+Hz3h5S/QpfTFwiQF852pLT+9qHsrhM9JYipkOXZxGn+sGH8oyJE9FD9WezQ==
dependencies:
argparse "^1.0.7"
entities "~2.0.0"
linkify-it "^3.0.1"
mdurl "^1.0.1"
uc.micro "^1.0.5"
markdown-it@^12.0.2:
version "12.0.4"
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.4.tgz#eec8247d296327eac3ba9746bdeec9cfcc751e33"
@@ -16424,7 +16044,7 @@ npm-package-arg@^7.0.0:
semver "^5.6.0"
validate-npm-package-name "^3.0.0"
npm-package-arg@^8.0.0, npm-package-arg@^8.0.1:
npm-package-arg@^8.0.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f"
integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==
@@ -16795,7 +16415,7 @@ object.entries@^1.1.0:
es-abstract "^1.18.0-next.1"
has "^1.0.3"
object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1:
object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544"
integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==
@@ -17600,7 +17220,7 @@ polished@^3.4.4:
dependencies:
"@babel/runtime" "^7.9.2"
portfinder@^1.0.25, portfinder@^1.0.26, portfinder@^1.0.28:
portfinder@^1.0.25, portfinder@^1.0.28:
version "1.0.28"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==
@@ -17790,7 +17410,7 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
prettier@^2.1.2, prettier@^2.2.1:
prettier@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
@@ -17932,7 +17552,7 @@ promise.allsettled@^1.0.0:
get-intrinsic "^1.0.2"
iterate-value "^1.0.2"
promise.hash.helper@^1.0.6, promise.hash.helper@^1.0.7:
promise.hash.helper@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/promise.hash.helper/-/promise.hash.helper-1.0.7.tgz#2f39d8495df40dcdfbc1d5be9e9e56efeae7f180"
integrity sha512-0qhWYyCV9TYDMSooYw1fShIb7R6hsWYja7JLqbeb1MvHqDTvP/uy/R1RsyVqDi6GCiHOI4G5p2Hpr3IA+/l/+Q==
@@ -18131,7 +17751,7 @@ quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8:
rimraf "^2.5.4"
underscore.string "~3.3.4"
qunit-dom@^1.2.0, qunit-dom@^1.6.0:
qunit-dom@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/qunit-dom/-/qunit-dom-1.6.0.tgz#a4bea6a46329d221e4a317d712cb40709107b977"
integrity sha512-YwSqcLjQcRI0fUFpaSWwU10KIJPFW5Qh+d3cT5DOgx81dypRuUSiPkKFmBY/CDs/R1KdHRadthkcXg2rqAon8Q==
@@ -18141,7 +17761,7 @@ qunit-dom@^1.2.0, qunit-dom@^1.6.0:
ember-cli-babel "^7.23.0"
ember-cli-version-checker "^5.1.1"
qunit@^2.13.0, qunit@^2.9.3:
qunit@^2.13.0:
version "2.14.0"
resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.14.0.tgz#6f913903e71ebe24ef4a4dada2b796fb52285051"
integrity sha512-CYfenbgdpmhl2Ql2rDrrj0felY4h8k6lYhtWwGBCLL4qQC33YOj0psV8MWo85L1i0SIOmEDRXkFopWnGCLmf7g==
@@ -19963,18 +19583,6 @@ sort-object-keys@^1.1.3:
resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45"
integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==
sort-package-json@^1.44.0:
version "1.48.1"
resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-1.48.1.tgz#58629823da53a3ccccc049cb7e7300bc23072b33"
integrity sha512-YvDm1iBzhphfXtctTS0XIBlIW/2N1DZNHx3YMcZnptpZhchqH4zazUOuEWmjfNXndwamITMt9hFPliqwx1SHvQ==
dependencies:
detect-indent "^6.0.0"
detect-newline "3.1.0"
git-hooks-list "1.0.3"
globby "10.0.0"
is-plain-obj "2.1.0"
sort-object-keys "^1.1.3"
sort-package-json@^1.48.0:
version "1.49.0"
resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-1.49.0.tgz#82845ab598501bb35875f326e4768a5ab5f15335"
@@ -20872,13 +20480,6 @@ temp-dir@^2.0.0:
resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
temp@0.9.1:
version "0.9.1"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.1.tgz#2d666114fafa26966cd4065996d7ceedd4dd4697"
integrity sha512-WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA==
dependencies:
rimraf "~2.6.2"
temp@0.9.4:
version "0.9.4"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620"
@@ -20929,7 +20530,7 @@ terser-webpack-plugin@^3.0.0:
terser "^4.8.0"
webpack-sources "^1.4.3"
terser@^4.1.2, terser@^4.3.9, terser@^4.6.3, terser@^4.8.0:
terser@^4.1.2, terser@^4.6.3, terser@^4.8.0:
version "4.8.0"
resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
@@ -20956,7 +20557,7 @@ test-exclude@^6.0.0:
glob "^7.1.4"
minimatch "^3.0.4"
testem@^3.1.0, testem@^3.2.0:
testem@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/testem/-/testem-3.2.0.tgz#9924481f6a3b23e350fa77bb251c64d801c4c9a7"
integrity sha512-FkFzNRCIzCxjbNSTxIQSC2tWn1Q2MTR/GTxusSw6uZA4byEQ7wc86TKutNnoCyZ5XIaD9wo4q+dmlK0GUEqFVA==
@@ -21090,18 +20691,6 @@ tiny-glob@0.2.8:
globalyzer "0.1.0"
globrex "^0.1.2"
tiny-lr@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab"
integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==
dependencies:
body "^5.1.0"
debug "^3.1.0"
faye-websocket "~0.10.0"
livereload-js "^2.3.0"
object-assign "^4.1.0"
qs "^6.4.0"
tiny-lr@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-2.0.0.tgz#863659d7ce1ed201a117d8197d7f8b9a27bdc085"
@@ -21910,17 +21499,6 @@ util.promisify@1.0.0:
define-properties "^1.1.2"
object.getownpropertydescriptors "^2.0.3"
util.promisify@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b"
integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==
dependencies:
call-bind "^1.0.0"
define-properties "^1.1.3"
for-each "^0.3.3"
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.1"
util.promisify@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
@@ -21967,7 +21545,7 @@ uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
uuid@^8.0.0, uuid@^8.1.0, uuid@^8.3.0, uuid@^8.3.1:
uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.1:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
@@ -22406,11 +21984,6 @@ workerpool@^3.1.1:
object-assign "4.1.1"
rsvp "^4.8.4"
workerpool@^5.0.1:
version "5.0.4"
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-5.0.4.tgz#4f67cb70ff7550a27ab94de25b0b843cd92059a2"
integrity sha512-Sywova24Ow2NQ24JPB68bI89EdqMDjUXo4OpofK/QMD7C2ZVMloYBgQ5J3PChcBJHj2vspsmGx1/3nBKXtUkXQ==
workerpool@^6.0.0, workerpool@^6.0.3:
version "6.1.0"
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b"