UI: Reduce in-development deprecations (also use toLocaleString) (#4677)

Various ember addons produced deprecation messages, some in the browser
console and some in terminal. Upgrading and replacing some of these has
reduced this.

Upgrades:

- ember-collection
- ember-computed-style

Replacements:

- ember-pluralize replaced with ember-inflector
- ember-cli-format-number replaced with custom helper using standard
`toLocaleString`

Removing ember-cli-format-number also meant some further changes related
to decimal places in the tomography graph, done using `toFixed`

The ExternalSources background-images have also now been escaped
correctly preventing in-development `console` warnings.

The only deprecation warnings are now from ember-block-slots, only in
terminal, making for a better development experience overall, especially now we
have an empty browser console

Also adds a `callIfType` 'helper util' which is a util specifically for helpers (it conforms to a helper argument signature) to be expanded upon later.
This commit is contained in:
John Cowen 2018-10-01 13:42:42 +01:00 committed by GitHub
parent 48feac2bee
commit cc41c86f30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 115 additions and 120 deletions

View File

@ -2,7 +2,6 @@ import Controller from '@ember/controller';
import { computed, get } from '@ember/object'; import { computed, get } from '@ember/object';
import WithFiltering from 'consul-ui/mixins/with-filtering'; import WithFiltering from 'consul-ui/mixins/with-filtering';
import ucfirst from 'consul-ui/utils/ucfirst'; import ucfirst from 'consul-ui/utils/ucfirst';
import numeral from 'numeral';
const countType = function(items, type) { const countType = function(items, type) {
return type === '' ? get(items, 'length') : items.filterBy('Type', type).length; return type === '' ? get(items, 'length') : items.filterBy('Type', type).length;
}; };
@ -20,9 +19,10 @@ export default Controller.extend(WithFiltering, {
const items = get(this, 'items'); const items = get(this, 'items');
return ['', 'management', 'client'].map(function(item) { return ['', 'management', 'client'].map(function(item) {
return { return {
label: `${item === '' ? 'All' : ucfirst(item)} (${numeral( label: `${item === '' ? 'All' : ucfirst(item)} (${countType(
countType(items, item) items,
).format()})`, item
).toLocaleString()})`,
value: item, value: item,
}; };
}); });

View File

@ -2,7 +2,6 @@ import Controller from '@ember/controller';
import { computed, get } from '@ember/object'; import { computed, get } from '@ember/object';
import WithFiltering from 'consul-ui/mixins/with-filtering'; import WithFiltering from 'consul-ui/mixins/with-filtering';
import ucfirst from 'consul-ui/utils/ucfirst'; import ucfirst from 'consul-ui/utils/ucfirst';
import numeral from 'numeral';
// TODO: DRY out in acls at least // TODO: DRY out in acls at least
const createCounter = function(prop) { const createCounter = function(prop) {
return function(items, val) { return function(items, val) {
@ -24,9 +23,10 @@ export default Controller.extend(WithFiltering, {
const items = get(this, 'items'); const items = get(this, 'items');
return ['', 'allow', 'deny'].map(function(item) { return ['', 'allow', 'deny'].map(function(item) {
return { return {
label: `${item === '' ? 'All' : ucfirst(item)} (${numeral( label: `${item === '' ? 'All' : ucfirst(item)} (${countAction(
countAction(items, item) items,
).format()})`, item
).toLocaleString()})`,
value: item, value: item,
}; };
}); });

View File

@ -0,0 +1,10 @@
import { helper } from '@ember/component/helper';
import callIfType from 'consul-ui/utils/helpers/call-if-type';
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
export function toLocaleString(num, options) {
// TODO: If I make locale configurable use an option
// not mutiple arguments
return num.toLocaleString(undefined, options);
}
export default helper(callIfType('number')(toLocaleString));

View File

@ -2,7 +2,6 @@ import Mixin from '@ember/object/mixin';
import WithFiltering from 'consul-ui/mixins/with-filtering'; import WithFiltering from 'consul-ui/mixins/with-filtering';
import { computed, get } from '@ember/object'; import { computed, get } from '@ember/object';
import ucfirst from 'consul-ui/utils/ucfirst'; import ucfirst from 'consul-ui/utils/ucfirst';
import numeral from 'numeral';
const countStatus = function(items, status) { const countStatus = function(items, status) {
if (status === '') { if (status === '') {
@ -36,15 +35,16 @@ export default Mixin.create(WithFiltering, {
const count = countStatus(items, item); const count = countStatus(items, item);
return { return {
count: count, count: count,
label: `${item === '' ? 'All' : ucfirst(item)} (${numeral(count).format()})`, label: `${item === '' ? 'All' : ucfirst(item)} (${count.toLocaleString()})`,
value: item, value: item,
}; };
}); });
objs[0].label = `All (${numeral( objs[0].label = `All (${objs
objs.slice(1).reduce(function(prev, item, i, arr) { .slice(1)
.reduce(function(prev, item, i, arr) {
return prev + item.count; return prev + item.count;
}, 0) }, 0)
).format()})`; .toLocaleString()})`;
return objs; return objs;
}), }),
}); });

View File

@ -25,7 +25,7 @@
<li class="passing"> <li class="passing">
<a href={{href}}> <a href={{href}}>
<strong>{{healthy.length}}</strong> <strong>{{healthy.length}}</strong>
<span>other passing {{pluralize-word healthy.length 'check' omitCount=true}}</span> <span>other passing {{pluralize healthy.length 'check' without-count=true}}</span>
</a> </a>
</li> </li>
{{/if}} {{/if}}

View File

@ -16,19 +16,19 @@
<circle class="point" r="5"/> <circle class="point" r="5"/>
<g class="tick" transform="translate(0, {{labels.[0]}})"> <g class="tick" transform="translate(0, {{labels.[0]}})">
<line x2="70"/> <line x2="70"/>
<text x="75" y="0" dy=".32em">{{format-number milliseconds.[0] format='0,000.00'}}ms</text> <text x="75" y="0" dy=".32em">{{format-number milliseconds.[0] maximumFractionDigits=2}}ms</text>
</g> </g>
<g class="tick" transform="translate(0, {{labels.[1]}})"> <g class="tick" transform="translate(0, {{labels.[1]}})">
<line x2="70"/> <line x2="70"/>
<text x="75" y="0" dy=".32em">{{format-number milliseconds.[1] format='0,000.00'}}ms</text> <text x="75" y="0" dy=".32em">{{format-number milliseconds.[1] maximumFractionDigits=2}}ms</text>
</g> </g>
<g class="tick" transform="translate(0, {{labels.[2]}})"> <g class="tick" transform="translate(0, {{labels.[2]}})">
<line x2="70"/> <line x2="70"/>
<text x="75" y="0" dy=".32em">{{format-number milliseconds.[2] format='0,000.00'}}ms</text> <text x="75" y="0" dy=".32em">{{format-number milliseconds.[2] maximumFractionDigits=2}}ms</text>
</g> </g>
<g class="tick" transform="translate(0, {{labels.[3]}})"> <g class="tick" transform="translate(0, {{labels.[3]}})">
<line x2="70"/> <line x2="70"/>
<text x="75" y="0" dy=".32em">{{format-number milliseconds.[3] format='0,000.00'}}ms</text> <text x="75" y="0" dy=".32em">{{format-number milliseconds.[3] maximumFractionDigits=2}}ms</text>
</g> </g>
</g> </g>
</g> </g>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -3,19 +3,19 @@
Minimum Minimum
</dt> </dt>
<dd> <dd>
{{ format-number tomography.min format='0,000.00' }}ms {{ format-number tomography.min maximumFractionDigits=2}}ms
</dd> </dd>
<dt> <dt>
Median Median
</dt> </dt>
<dd> <dd>
{{ format-number tomography.median format='0,000.00' }}ms {{ format-number tomography.median maximumFractionDigits=2}}ms
</dd> </dd>
<dt> <dt>
Maximum Maximum
</dt> </dt>
<dd> <dd>
{{ format-number tomography.max format='0,000.00' }}ms {{ format-number tomography.max maximumFractionDigits=2}}ms
</dd> </dd>
</dl> </dl>
{{tomography-graph tomography=tomography}} {{tomography-graph tomography=tomography}}

View File

@ -17,7 +17,7 @@
{{#block-slot 'row'}} {{#block-slot 'row'}}
<td data-test-service-name="{{item.Service}}"> <td data-test-service-name="{{item.Service}}">
<a href={{href-to 'dc.services.show' item.Service}}> <a href={{href-to 'dc.services.show' item.Service}}>
<span data-test-external-source="{{service/external-source item}}" style="background-image: {{css-var (concat '--' (service/external-source item) '-color-svg') 'none'}}"></span> <span data-test-external-source="{{service/external-source item}}" style={{{ concat 'background-image: ' (css-var (concat '--' (service/external-source item) '-color-svg') 'none')}}}></span>
{{item.Service}}{{#if (not-eq item.ID item.Service) }}<em data-test-service-id="{{item.ID}}">({{item.ID}})</em>{{/if}} {{item.Service}}{{#if (not-eq item.ID item.Service) }}<em data-test-service-id="{{item.ID}}">({{item.ID}})</em>{{/if}}
</a> </a>
</td> </td>

View File

@ -30,7 +30,7 @@
<td data-test-service="{{item.Name}}" style={{remainingWidth}}> <td data-test-service="{{item.Name}}" style={{remainingWidth}}>
<a href={{href-to 'dc.services.show' item.Name}}> <a href={{href-to 'dc.services.show' item.Name}}>
<span data-test-external-source="{{service/external-source item}}" style="background-image: {{css-var (concat '--' (service/external-source item) '-color-svg') 'none'}}"></span> <span data-test-external-source="{{service/external-source item}}" style={{{ concat 'background-image: ' (css-var (concat '--' (service/external-source item) '-color-svg') 'none')}}}></span>
{{item.Name}} {{item.Name}}
</a> </a>
</td> </td>
@ -40,11 +40,11 @@
{{else}} {{else}}
<dl> <dl>
<dt title="Passing" class="passing{{if (lt item.ChecksPassing 1) ' zero'}}">Healthchecks Passing</dt> <dt title="Passing" class="passing{{if (lt item.ChecksPassing 1) ' zero'}}">Healthchecks Passing</dt>
<dd title="Passing" class={{if (lt item.ChecksPassing 1) 'zero'}} style={{passingWidth}}>{{format_number item.ChecksPassing}}</dd> <dd title="Passing" class={{if (lt item.ChecksPassing 1) 'zero'}} style={{passingWidth}}>{{format-number item.ChecksPassing}}</dd>
<dt title="Warning" class="warning{{if (lt item.ChecksWarning 1) ' zero'}}">Healthchecks Warning</dt> <dt title="Warning" class="warning{{if (lt item.ChecksWarning 1) ' zero'}}">Healthchecks Warning</dt>
<dd title="Warning" class={{if (lt item.ChecksWarning 1) 'zero'}} style={{warningWidth}}>{{format_number item.ChecksWarning}}</dd> <dd title="Warning" class={{if (lt item.ChecksWarning 1) 'zero'}} style={{warningWidth}}>{{format-number item.ChecksWarning}}</dd>
<dt title="Critical" class="critical{{if (lt item.ChecksCritical 1) ' zero'}}">Healthchecks Critical</dt> <dt title="Critical" class="critical{{if (lt item.ChecksCritical 1) ' zero'}}">Healthchecks Critical</dt>
<dd title="Critical" class={{if (lt item.ChecksCritical 1) 'zero'}} style={{criticalWidth}}>{{format_number item.ChecksCritical}}</dd> <dd title="Critical" class={{if (lt item.ChecksCritical 1) 'zero'}} style={{criticalWidth}}>{{format-number item.ChecksCritical}}</dd>
</dl> </dl>
{{/if}} {{/if}}
</td> </td>

View File

@ -7,7 +7,7 @@
{{#block-slot 'header'}} {{#block-slot 'header'}}
<h1> <h1>
{{ item.Service.Service }} {{ item.Service.Service }}
<span data-test-external-source="{{service/external-source item.Service}}" style="background-image: {{css-var (concat '--' (service/external-source item.Service) '-color-svg') 'none'}}" data-tooltip="Registered via {{service/external-source item.Service}}">Registered via {{service/external-source item.Service}}</span> <span data-test-external-source="{{service/external-source item.Service}}" style={{{ concat 'background-image: ' (css-var (concat '--' (service/external-source item.Service) '-color-svg') 'none')}}} data-tooltip="Registered via {{service/external-source item.Service}}">Registered via {{service/external-source item.Service}}</span>
</h1> </h1>
{{/block-slot}} {{/block-slot}}
{{#block-slot 'toolbar'}} {{#block-slot 'toolbar'}}

View File

@ -0,0 +1,10 @@
export default function(type) {
return function(cb) {
return function(params, hash = {}) {
if (typeof params[0] !== type) {
return params[0];
}
return cb(params[0], hash);
};
};
}

View File

@ -49,7 +49,6 @@
"ember-cli-dependency-checker": "^2.0.0", "ember-cli-dependency-checker": "^2.0.0",
"ember-cli-eslint": "^4.2.1", "ember-cli-eslint": "^4.2.1",
"ember-cli-flash": "^1.6.3", "ember-cli-flash": "^1.6.3",
"ember-cli-format-number": "^2.0.0",
"ember-cli-htmlbars": "^2.0.1", "ember-cli-htmlbars": "^2.0.1",
"ember-cli-htmlbars-inline-precompile": "^1.0.0", "ember-cli-htmlbars-inline-precompile": "^1.0.0",
"ember-cli-inject-live-reload": "^1.4.1", "ember-cli-inject-live-reload": "^1.4.1",
@ -61,15 +60,15 @@
"ember-cli-string-helpers": "^1.9.0", "ember-cli-string-helpers": "^1.9.0",
"ember-cli-uglify": "^2.0.0", "ember-cli-uglify": "^2.0.0",
"ember-cli-yadda": "^0.4.0", "ember-cli-yadda": "^0.4.0",
"ember-collection": "^1.0.0-alpha.7", "ember-collection": "^1.0.0-alpha.9",
"ember-composable-helpers": "^2.1.0", "ember-composable-helpers": "^2.1.0",
"ember-computed-style": "^0.2.0", "ember-computed-style": "^0.3.0",
"ember-data": "^3.0.2", "ember-data": "^3.0.2",
"ember-export-application-global": "^2.0.0", "ember-export-application-global": "^2.0.0",
"ember-href-to": "^1.15.1", "ember-href-to": "^1.15.1",
"ember-inflector": "^3.0.0",
"ember-load-initializers": "^1.0.0", "ember-load-initializers": "^1.0.0",
"ember-math-helpers": "^2.4.0", "ember-math-helpers": "^2.4.0",
"ember-pluralize": "^0.2.0",
"ember-power-select": "^2.0.2", "ember-power-select": "^2.0.2",
"ember-power-select-with-create": "^0.6.0", "ember-power-select-with-create": "^0.6.0",
"ember-resolver": "^4.0.0", "ember-resolver": "^4.0.0",

View File

@ -0,0 +1,19 @@
import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
moduleForComponent('format-number', 'helper:format-number', {
integration: true,
});
test('it renders a formatted number when passed a number', function(assert) {
this.set('inputValue', 1234);
this.render(hbs`{{format-number inputValue}}`);
assert.equal(
this.$()
.text()
.trim(),
'1,234'
);
});

View File

@ -0,0 +1,20 @@
import callIfType from 'consul-ui/utils/helpers/call-if-type';
import { module, test } from 'qunit';
module('Unit | Utility | helpers/call if type');
test('it calls the function if the correct helper argument is passed', function(assert) {
const helper = callIfType('number')(function() {
return true;
});
assert.ok(helper([1]));
});
test('it returns the same argument if the incorrect helper argument is passed', function(assert) {
const helper = callIfType('number')(function() {
return true;
});
const expected = 'hi';
const actual = helper(['hi']);
assert.equal(actual, expected);
});

View File

@ -1371,7 +1371,7 @@ broccoli-autoprefixer@^5.0.0:
broccoli-persistent-filter "^1.1.6" broccoli-persistent-filter "^1.1.6"
postcss "^6.0.1" postcss "^6.0.1"
broccoli-babel-transpiler@^5.4.5, broccoli-babel-transpiler@^5.6.2: broccoli-babel-transpiler@^5.6.2:
version "5.7.4" version "5.7.4"
resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-5.7.4.tgz#2b0611ce9e5d98b8d8d2b49ae1219af2f52767e3" resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-5.7.4.tgz#2b0611ce9e5d98b8d8d2b49ae1219af2f52767e3"
dependencies: dependencies:
@ -1521,23 +1521,6 @@ broccoli-funnel-reducer@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/broccoli-funnel-reducer/-/broccoli-funnel-reducer-1.0.0.tgz#11365b2a785aec9b17972a36df87eef24c5cc0ea" resolved "https://registry.yarnpkg.com/broccoli-funnel-reducer/-/broccoli-funnel-reducer-1.0.0.tgz#11365b2a785aec9b17972a36df87eef24c5cc0ea"
broccoli-funnel@^0.2.3:
version "0.2.15"
resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-0.2.15.tgz#4d0c128bef746e02f91038415aac4adbfaae222d"
dependencies:
array-equal "^1.0.0"
blank-object "^1.0.1"
broccoli-plugin "^1.0.0"
debug "^2.2.0"
fast-ordered-set "^1.0.0"
fs-tree-diff "^0.3.0"
minimatch "^2.0.1"
mkdirp "^0.5.0"
path-posix "^1.0.0"
rimraf "^2.4.3"
symlink-or-copy "^1.0.0"
walk-sync "^0.2.6"
broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.1.0, broccoli-funnel@^1.2.0: broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.1.0, broccoli-funnel@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296" resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296"
@ -1746,12 +1729,6 @@ broccoli-uglify-sourcemap@^2.1.1:
walk-sync "^0.3.2" walk-sync "^0.3.2"
workerpool "^2.3.0" workerpool "^2.3.0"
broccoli-unwatched-tree@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/broccoli-unwatched-tree/-/broccoli-unwatched-tree-0.1.3.tgz#ab0fb820f613845bf67a803baad820f68b1e3aae"
dependencies:
broccoli-source "^1.1.0"
broccoli-writer@~0.1.1: broccoli-writer@~0.1.1:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/broccoli-writer/-/broccoli-writer-0.1.1.tgz#d4d71aa8f2afbc67a3866b91a2da79084b96ab2d" resolved "https://registry.yarnpkg.com/broccoli-writer/-/broccoli-writer-0.1.1.tgz#d4d71aa8f2afbc67a3866b91a2da79084b96ab2d"
@ -3049,16 +3026,6 @@ ember-cli-autoprefixer@^0.8.1:
broccoli-autoprefixer "^5.0.0" broccoli-autoprefixer "^5.0.0"
lodash "^4.0.0" lodash "^4.0.0"
ember-cli-babel@5.1.5:
version "5.1.5"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-5.1.5.tgz#c9a5cf9a00781c5570fc434229e9ab85a55661b0"
dependencies:
broccoli-babel-transpiler "^5.4.5"
broccoli-funnel "^0.2.3"
clone "^1.0.2"
ember-cli-version-checker "^1.0.2"
resolve "^1.1.2"
ember-cli-babel@6.12.0, ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.10.0, ember-cli-babel@^6.11.0, ember-cli-babel@^6.12.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.7.2, ember-cli-babel@^6.8.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2, ember-cli-babel@^6.9.0, ember-cli-babel@^6.9.2: ember-cli-babel@6.12.0, ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.10.0, ember-cli-babel@^6.11.0, ember-cli-babel@^6.12.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.7.2, ember-cli-babel@^6.8.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2, ember-cli-babel@^6.9.0, ember-cli-babel@^6.9.2:
version "6.12.0" version "6.12.0"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.12.0.tgz#3adcdbe1278da1fcd0b9038f1360cb4ac5d4414c" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.12.0.tgz#3adcdbe1278da1fcd0b9038f1360cb4ac5d4414c"
@ -3077,7 +3044,7 @@ ember-cli-babel@6.12.0, ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, e
ember-cli-version-checker "^2.1.0" ember-cli-version-checker "^2.1.0"
semver "^5.4.1" semver "^5.4.1"
ember-cli-babel@^5.1.5, ember-cli-babel@^5.1.6, ember-cli-babel@^5.1.7, ember-cli-babel@^5.2.4: ember-cli-babel@^5.1.6, ember-cli-babel@^5.1.7:
version "5.2.8" version "5.2.8"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-5.2.8.tgz#0356b03cc3fdff5d0f2ecaa46a0e1cfaebffd876" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-5.2.8.tgz#0356b03cc3fdff5d0f2ecaa46a0e1cfaebffd876"
dependencies: dependencies:
@ -3168,14 +3135,6 @@ ember-cli-flash@^1.6.3:
ember-cli-htmlbars "^2.0.1" ember-cli-htmlbars "^2.0.1"
ember-runtime-enumerable-includes-polyfill "^2.0.0" ember-runtime-enumerable-includes-polyfill "^2.0.0"
ember-cli-format-number@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ember-cli-format-number/-/ember-cli-format-number-2.0.0.tgz#db744b0578484529b68c0068bbd057e637007ec0"
dependencies:
ember-cli-babel "^5.1.5"
ember-cli-node-assets "^0.1.4"
numeral "^1.5.3"
ember-cli-get-component-path-option@^1.0.0: ember-cli-get-component-path-option@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/ember-cli-get-component-path-option/-/ember-cli-get-component-path-option-1.0.0.tgz#0d7b595559e2f9050abed804f1d8eff1b08bc771" resolved "https://registry.yarnpkg.com/ember-cli-get-component-path-option/-/ember-cli-get-component-path-option-1.0.0.tgz#0d7b595559e2f9050abed804f1d8eff1b08bc771"
@ -3194,7 +3153,7 @@ ember-cli-htmlbars-inline-precompile@^1.0.0:
heimdalljs-logger "^0.1.7" heimdalljs-logger "^0.1.7"
silent-error "^1.1.0" silent-error "^1.1.0"
ember-cli-htmlbars@^1.0.1, ember-cli-htmlbars@^1.0.3, ember-cli-htmlbars@^1.1.1: ember-cli-htmlbars@^1.0.3, ember-cli-htmlbars@^1.1.1:
version "1.3.4" version "1.3.4"
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-1.3.4.tgz#461289724b34af372a6a0c4b6635819156963353" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-1.3.4.tgz#461289724b34af372a6a0c4b6635819156963353"
dependencies: dependencies:
@ -3251,17 +3210,6 @@ ember-cli-lodash-subset@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/ember-cli-lodash-subset/-/ember-cli-lodash-subset-2.0.1.tgz#20cb68a790fe0fde2488ddfd8efbb7df6fe766f2" resolved "https://registry.yarnpkg.com/ember-cli-lodash-subset/-/ember-cli-lodash-subset-2.0.1.tgz#20cb68a790fe0fde2488ddfd8efbb7df6fe766f2"
ember-cli-node-assets@^0.1.4:
version "0.1.6"
resolved "https://registry.yarnpkg.com/ember-cli-node-assets/-/ember-cli-node-assets-0.1.6.tgz#6488a2949048c801ad6d9e33753c7bce32fc1146"
dependencies:
broccoli-funnel "^1.0.1"
broccoli-merge-trees "^1.1.1"
broccoli-unwatched-tree "^0.1.1"
debug "^2.2.0"
lodash "^4.5.1"
resolve "^1.1.7"
ember-cli-node-assets@^0.2.2: ember-cli-node-assets@^0.2.2:
version "0.2.2" version "0.2.2"
resolved "https://registry.yarnpkg.com/ember-cli-node-assets/-/ember-cli-node-assets-0.2.2.tgz#d2d55626e7cc6619f882d7fe55751f9266022708" resolved "https://registry.yarnpkg.com/ember-cli-node-assets/-/ember-cli-node-assets-0.2.2.tgz#d2d55626e7cc6619f882d7fe55751f9266022708"
@ -3485,13 +3433,13 @@ ember-cli@~2.18.2:
walk-sync "^0.3.0" walk-sync "^0.3.0"
yam "0.0.22" yam "0.0.22"
ember-collection@^1.0.0-alpha.7: ember-collection@^1.0.0-alpha.9:
version "1.0.0-alpha.7" version "1.0.0-alpha.9"
resolved "https://registry.yarnpkg.com/ember-collection/-/ember-collection-1.0.0-alpha.7.tgz#172c2ddaa7d3482fac0781686b434c9c9c42d79a" resolved "https://registry.yarnpkg.com/ember-collection/-/ember-collection-1.0.0-alpha.9.tgz#30fa340a58f4154cef1cda54f11041c5a2cd2e6c"
dependencies: dependencies:
ember-cli-babel "^5.1.5" ember-cli-babel "^6.8.2"
ember-cli-htmlbars "^1.0.1" ember-cli-htmlbars "^2.0.1"
layout-bin-packer "^1.2.0" layout-bin-packer "^1.4.0"
ember-compatibility-helpers@^1.0.0-beta.2: ember-compatibility-helpers@^1.0.0-beta.2:
version "1.0.0-beta.2" version "1.0.0-beta.2"
@ -3508,11 +3456,11 @@ ember-composable-helpers@^2.1.0:
broccoli-funnel "^1.0.1" broccoli-funnel "^1.0.1"
ember-cli-babel "^6.6.0" ember-cli-babel "^6.6.0"
ember-computed-style@^0.2.0: ember-computed-style@^0.3.0:
version "0.2.0" version "0.3.0"
resolved "https://registry.yarnpkg.com/ember-computed-style/-/ember-computed-style-0.2.0.tgz#6ceb2f1f10f9555fa5b5092f5668dde2c9df5440" resolved "https://registry.yarnpkg.com/ember-computed-style/-/ember-computed-style-0.3.0.tgz#a04375f8b48fbf72fd61e76da3358075bd195ae9"
dependencies: dependencies:
ember-cli-babel "^5.1.7" ember-cli-babel "^6.6.0"
ember-concurrency@^0.8.19: ember-concurrency@^0.8.19:
version "0.8.19" version "0.8.19"
@ -3590,6 +3538,12 @@ ember-inflector@^2.0.0:
dependencies: dependencies:
ember-cli-babel "^6.0.0" ember-cli-babel "^6.0.0"
ember-inflector@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ember-inflector/-/ember-inflector-3.0.0.tgz#7e1ee8aaa0fa773ba0905d8b7c0786354d890ee1"
dependencies:
ember-cli-babel "^6.6.0"
ember-load-initializers@^1.0.0: ember-load-initializers@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-1.0.0.tgz#4919eaf06f6dfeca7e134633d8c05a6c9921e6e7" resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-1.0.0.tgz#4919eaf06f6dfeca7e134633d8c05a6c9921e6e7"
@ -3626,12 +3580,6 @@ ember-native-dom-helpers@^0.5.3:
broccoli-funnel "^1.1.0" broccoli-funnel "^1.1.0"
ember-cli-babel "^6.6.0" ember-cli-babel "^6.6.0"
ember-pluralize@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/ember-pluralize/-/ember-pluralize-0.2.0.tgz#2c152ddaff13bf560de42d75f8ea7e5d6ce7c5c8"
dependencies:
ember-cli-babel "5.1.5"
ember-power-select-with-create@^0.6.0: ember-power-select-with-create@^0.6.0:
version "0.6.0" version "0.6.0"
resolved "https://registry.yarnpkg.com/ember-power-select-with-create/-/ember-power-select-with-create-0.6.0.tgz#40ac701276379b78efbaedc33fb5f82e49f80674" resolved "https://registry.yarnpkg.com/ember-power-select-with-create/-/ember-power-select-with-create-0.6.0.tgz#40ac701276379b78efbaedc33fb5f82e49f80674"
@ -4631,13 +4579,6 @@ fs-readdir-recursive@^0.1.0:
version "0.1.2" version "0.1.2"
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz#315b4fb8c1ca5b8c47defef319d073dad3568059" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz#315b4fb8c1ca5b8c47defef319d073dad3568059"
fs-tree-diff@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-0.3.1.tgz#41a84ee34994bd564c63d9852f1109c5de7f9290"
dependencies:
debug "^2.2.0"
fast-ordered-set "^1.0.2"
fs-tree-diff@^0.5.0, fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.4, fs-tree-diff@^0.5.6: fs-tree-diff@^0.5.0, fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.4, fs-tree-diff@^0.5.6:
version "0.5.7" version "0.5.7"
resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-0.5.7.tgz#315e2b098d5fe7f622880ac965b1b051868ac871" resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-0.5.7.tgz#315e2b098d5fe7f622880ac965b1b051868ac871"
@ -5932,11 +5873,11 @@ labeled-stream-splicer@^2.0.0:
isarray "^2.0.4" isarray "^2.0.4"
stream-splicer "^2.0.0" stream-splicer "^2.0.0"
layout-bin-packer@^1.2.0: layout-bin-packer@^1.4.0:
version "1.3.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/layout-bin-packer/-/layout-bin-packer-1.3.0.tgz#6f232f67db7606b2a405f39ae7197f2931a26c0c" resolved "https://registry.yarnpkg.com/layout-bin-packer/-/layout-bin-packer-1.4.0.tgz#4115a8e0089ee2a3ff53386ca70fdc16e8b95e07"
dependencies: dependencies:
ember-cli-babel "^5.2.4" ember-cli-babel "^6.8.2"
lazy-cache@^1.0.3: lazy-cache@^1.0.3:
version "1.0.4" version "1.0.4"
@ -6723,7 +6664,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
dependencies: dependencies:
brace-expansion "^1.1.7" brace-expansion "^1.1.7"
minimatch@^2.0.1, minimatch@^2.0.3: minimatch@^2.0.3:
version "2.0.10" version "2.0.10"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
dependencies: dependencies:
@ -7065,10 +7006,6 @@ number-is-nan@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
numeral@^1.5.3:
version "1.5.6"
resolved "https://registry.yarnpkg.com/numeral/-/numeral-1.5.6.tgz#3831db968451b9cf6aff9bf95925f1ef8e37b33f"
oauth-sign@~0.8.1, oauth-sign@~0.8.2: oauth-sign@~0.8.1, oauth-sign@~0.8.2:
version "0.8.2" version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
@ -9305,7 +9242,7 @@ walk-sync@0.3.2, walk-sync@^0.3.0, walk-sync@^0.3.1, walk-sync@^0.3.2:
ensure-posix-path "^1.0.0" ensure-posix-path "^1.0.0"
matcher-collection "^1.0.0" matcher-collection "^1.0.0"
walk-sync@^0.2.5, walk-sync@^0.2.6, walk-sync@^0.2.7: walk-sync@^0.2.5, walk-sync@^0.2.7:
version "0.2.7" version "0.2.7"
resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.2.7.tgz#b49be4ee6867657aeb736978b56a29d10fa39969" resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.2.7.tgz#b49be4ee6867657aeb736978b56a29d10fa39969"
dependencies: dependencies: