From 5b4b8cce322d37c4848adc020ae5170e02bb9838 Mon Sep 17 00:00:00 2001 From: Ricardo Mendes Date: Fri, 11 Aug 2017 12:03:23 +0100 Subject: [PATCH] Updates codebase to new Ember modules API based on RFC 176 --- MODULE_REPORT.md | 1022 ++++++++ addon/-private/adapters/build-url-mixin.js | 13 +- addon/-private/adapters/errors.js | 80 +- addon/-private/system/debug/debug-adapter.js | 23 +- addon/-private/system/is-array-like.js | 7 +- addon/-private/system/many-array.js | 12 +- addon/-private/system/model/errors.js | 28 +- addon/-private/system/model/internal-model.js | 44 +- addon/-private/system/model/model.js | 41 +- addon/-private/system/normalize-model-name.js | 4 +- addon/-private/system/ordered-set.js | 2 +- addon/-private/system/promise-proxies.js | 12 +- addon/-private/system/record-array-manager.js | 19 +- .../adapter-populated-record-array.js | 14 +- .../record-arrays/filtered-record-array.js | 13 +- .../system/record-arrays/record-array.js | 10 +- .../-private/system/references/belongs-to.js | 4 +- addon/-private/system/references/has-many.js | 11 +- addon/-private/system/references/record.js | 4 +- addon/-private/system/relationship-meta.js | 2 +- .../system/relationships/belongs-to.js | 8 +- addon/-private/system/relationships/ext.js | 15 +- .../-private/system/relationships/has-many.js | 16 +- .../relationship-payloads-manager.js | 4 +- .../system/relationships/state/belongs-to.js | 10 +- .../system/relationships/state/create.js | 4 +- .../relationships/state/relationship.js | 5 +- addon/-private/system/snapshot.js | 18 +- addon/-private/system/store.js | 33 +- addon/-private/system/store/common.js | 6 +- .../system/store/container-instance-cache.js | 3 +- addon/-private/system/store/finders.js | 7 +- .../system/store/serializer-response.js | 4 +- addon/-private/utils.js | 9 +- addon/adapter.js | 4 +- addon/adapters/json-api.js | 10 +- addon/adapters/rest.js | 23 +- addon/attr.js | 4 +- addon/index.js | 3 +- addon/serializer.js | 4 +- addon/serializers/embedded-records-mixin.js | 17 +- addon/serializers/json-api.js | 14 +- addon/serializers/json.js | 20 +- addon/serializers/rest.js | 25 +- addon/transforms/boolean.js | 4 +- addon/transforms/number.js | 4 +- addon/transforms/string.js | 4 +- addon/transforms/transform.js | 4 +- lib/babel-build.js | 1 + package.json | 3 +- tests/dummy/app/app.js | 4 +- tests/dummy/app/router.js | 4 +- tests/dummy/app/routes/application/route.js | 4 +- tests/dummy/app/routes/index/route.js | 4 +- tests/dummy/app/routes/query/controller.js | 6 +- tests/dummy/app/routes/query/route.js | 6 +- tests/helpers/async.js | 11 +- tests/helpers/custom-adapter.js | 4 +- tests/helpers/destroy-app.js | 4 +- tests/helpers/module-for-acceptance.js | 4 +- tests/helpers/owner.js | 5 +- tests/helpers/start-app.js | 9 +- tests/helpers/store.js | 3 +- .../adapter/build-url-mixin-test.js | 16 +- tests/integration/adapter/find-all-test.js | 18 +- tests/integration/adapter/find-test.js | 13 +- .../adapter/json-api-adapter-test.js | 11 +- tests/integration/adapter/queries-test.js | 18 +- .../adapter/record-persistence-test.js | 29 +- .../integration/adapter/rest-adapter-test.js | 87 +- tests/integration/adapter/serialize-test.js | 6 +- .../integration/adapter/store-adapter-test.js | 147 +- tests/integration/application-test.js | 13 +- .../non-dasherized-lookups-test.js | 8 +- .../integration/client-id-generation-test.js | 13 +- tests/integration/debug-adapter-test.js | 22 +- tests/integration/filter-test.js | 16 +- tests/integration/injection-test.js | 15 +- tests/integration/inverse-test.js | 5 +- tests/integration/lifecycle-hooks-test.js | 9 +- tests/integration/multiple-stores-test.js | 3 +- tests/integration/peek-all-test.js | 13 +- .../polymorphic-belongs-to-test.js | 5 +- .../integration/record-array-manager-test.js | 14 +- tests/integration/record-array-test.js | 16 +- .../adapter-populated-record-array-test.js | 8 +- .../records/collection-save-test.js | 21 +- .../integration/records/delete-record-test.js | 32 +- tests/integration/records/error-test.js | 15 +- tests/integration/records/load-test.js | 8 +- .../records/property-changes-test.js | 10 +- .../records/relationship-changes-test.js | 610 ++--- tests/integration/records/reload-test.js | 20 +- .../integration/records/rematerialize-test.js | 8 +- tests/integration/records/save-test.js | 22 +- tests/integration/records/unload-test.js | 26 +- .../integration/references/belongs-to-test.js | 18 +- tests/integration/references/has-many-test.js | 22 +- tests/integration/references/record-test.js | 16 +- .../relationships/belongs-to-test.js | 42 +- .../relationships/has-many-test.js | 131 +- .../inverse-relationships-test.js | 7 +- .../relationships/many-to-many-test.js | 14 +- .../relationships/nested-relationship-test.js | 6 +- .../relationships/one-to-many-test.js | 10 +- .../relationships/one-to-one-test.js | 14 +- .../polymorphic-mixins-belongs-to-test.js | 8 +- .../polymorphic-mixins-has-many-test.js | 8 +- .../embedded-records-mixin-test.js | 10 +- .../serializers/json-api-serializer-test.js | 8 +- .../serializers/json-serializer-test.js | 8 +- .../serializers/rest-serializer-test.js | 21 +- tests/integration/setup-container-test.js | 9 +- tests/integration/snapshot-test.js | 10 +- tests/integration/store-test.js | 24 +- .../store/json-api-validation-test.js | 14 +- tests/integration/store/query-record-test.js | 12 +- tests/test-helper.js | 7 +- tests/unit/adapter-errors-test.js | 6 +- .../build-url-mixin/path-for-type-test.js | 5 +- .../adapters/json-api-adapter/ajax-test.js | 8 +- tests/unit/adapters/rest-adapter/ajax-test.js | 18 +- .../rest-adapter/detailed-message-test.js | 2 +- .../group-records-for-find-many-test.js | 23 +- tests/unit/debug-test.js | 11 +- tests/unit/diff-array-test.js | 2 +- tests/unit/many-array-test.js | 8 +- tests/unit/model-test.js | 28 +- tests/unit/model/errors-test.js | 2 +- tests/unit/model/lifecycle-callbacks-test.js | 18 +- tests/unit/model/merge-test.js | 12 +- tests/unit/model/relationships-test.js | 8 +- .../model/relationships/belongs-to-test.js | 7 +- .../unit/model/relationships/has-many-test.js | 33 +- .../model/relationships/record-array-test.js | 12 +- tests/unit/model/rollback-attributes-test.js | 46 +- tests/unit/private-test.js | 6 +- tests/unit/promise-proxies-test.js | 21 +- .../adapter-populated-record-array-test.js | 10 +- .../filtered-record-array-test.js | 15 +- tests/unit/record-arrays/record-array-test.js | 22 +- tests/unit/states-test.js | 5 +- tests/unit/store/adapter-interop-test.js | 44 +- tests/unit/store/asserts-test.js | 4 +- tests/unit/store/create-record-test.js | 12 +- tests/unit/store/finders-test.js | 8 +- tests/unit/store/has-model-for-test.js | 4 +- tests/unit/store/has-record-for-id-test.js | 7 +- tests/unit/store/lookup-test.js | 5 +- tests/unit/store/model-for-test.js | 8 +- tests/unit/store/peek-record-test.js | 7 +- tests/unit/store/push-test.js | 23 +- tests/unit/store/serialize-test.js | 4 +- tests/unit/store/serializer-for-test.js | 5 +- tests/unit/store/unload-test.js | 19 +- .../relationship-payload-manager-test.js | 8 +- .../relationship-payloads-test.js | 8 +- .../unit/system/snapshot-record-array-test.js | 10 +- tests/unit/transform/boolean-test.js | 2 +- tests/unit/transform/date-test.js | 2 +- tests/unit/transform/number-test.js | 2 +- tests/unit/transform/string-test.js | 2 +- tests/unit/utils-test.js | 17 +- yarn.lock | 2277 +++++++++-------- 164 files changed, 3662 insertions(+), 2559 deletions(-) create mode 100644 MODULE_REPORT.md diff --git a/MODULE_REPORT.md b/MODULE_REPORT.md new file mode 100644 index 00000000000..e8665404aff --- /dev/null +++ b/MODULE_REPORT.md @@ -0,0 +1,1022 @@ +## Module Report +### Unknown Global + +**Global**: `Ember.VERSION` + +**Location**: `addon/index.js` at line 11 + +```js +*/ + +if (Ember.VERSION.match(/^1\.([0-9]|1[0-2])\./)) { + throw new EmberError("Ember Data requires at least Ember 1.13.0, but you have " + + Ember.VERSION + +``` + +### Unknown Global + +**Global**: `Ember.VERSION` + +**Location**: `addon/index.js` at line 13 + +```js +if (Ember.VERSION.match(/^1\.([0-9]|1[0-2])\./)) { + throw new EmberError("Ember Data requires at least Ember 1.13.0, but you have " + + Ember.VERSION + + ". Please upgrade your version of Ember, then upgrade Ember Data."); +} +``` + +### Unknown Global + +**Global**: `Ember.FEATURES` + +**Location**: `addon/-private/features.js` at line 4 + +```js + +export default function isEnabled() { + return Ember.FEATURES.isEnabled(...arguments); +} + +``` + +### Unknown Global + +**Global**: `Ember.MODEL_FACTORY_INJECTIONS` + +**Location**: `addon/-debug/index.js` at line 37 + +```js + return modelClass.__mixin.detect(addedModelClass.PrototypeMixin); + } + if (Ember.MODEL_FACTORY_INJECTIONS) { + modelClass = modelClass.superclass; + } +``` + +### Unknown Global + +**Global**: `Ember.Namespace` + +**Location**: `addon/-private/core.js` at line 20 + +```js + @static +*/ +const DS = Ember.Namespace.create({ + VERSION: VERSION, + name: "DS" +``` + +### Unknown Global + +**Global**: `Ember.libraries` + +**Location**: `addon/-private/core.js` at line 25 + +```js +}); + +if (Ember.libraries) { + Ember.libraries.registerCoreLibrary('Ember Data', DS.VERSION); +} +``` + +### Unknown Global + +**Global**: `Ember.libraries` + +**Location**: `addon/-private/core.js` at line 26 + +```js + +if (Ember.libraries) { + Ember.libraries.registerCoreLibrary('Ember Data', DS.VERSION); +} + +``` + +### Unknown Global + +**Global**: `Ember.Date` + +**Location**: `addon/transforms/date.js` at line 5 + +```js +import { deprecate } from '@ember/debug'; + +Ember.Date = Ember.Date || {}; + +/** +``` + +### Unknown Global + +**Global**: `Ember.Date` + +**Location**: `addon/transforms/date.js` at line 5 + +```js +import { deprecate } from '@ember/debug'; + +Ember.Date = Ember.Date || {}; + +/** +``` + +### Unknown Global + +**Global**: `Ember.Date` + +**Location**: `addon/transforms/date.js` at line 19 + +```js + @deprecated + */ +Ember.Date.parse = function(date) { + // throw deprecation + deprecate(`Ember.Date.parse is deprecated because Safari 5-, IE8-, and +``` + +### Unknown Global + +**Global**: `Ember.OrderedSet` + +**Location**: `addon/-private/system/ordered-set.js` at line 4 + +```js +import Ember from 'ember'; + +const EmberOrderedSet = Ember.OrderedSet; + +export default function OrderedSet() { +``` + +### Unknown Global + +**Global**: `Ember.OrderedSet` + +**Location**: `addon/-private/system/ordered-set.js` at line 4 + +```js +import Ember from 'ember'; + +const EmberOrderedSet = Ember.OrderedSet; + +export default function OrderedSet() { +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/adapter-interop-test.js` at line 23 + +```js + beforeEach() { + TestAdapter = DS.Adapter.extend(); + oldFilterEnabled = Ember.ENV.ENABLE_DS_FILTER; + Ember.ENV.ENABLE_DS_FILTER = false; + }, +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/adapter-interop-test.js` at line 24 + +```js + TestAdapter = DS.Adapter.extend(); + oldFilterEnabled = Ember.ENV.ENABLE_DS_FILTER; + Ember.ENV.ENABLE_DS_FILTER = false; + }, + +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/adapter-interop-test.js` at line 30 + +```js + run(() => { + if (store) { store.destroy(); } + Ember.ENV.ENABLE_DS_FILTER = oldFilterEnabled; + }); + } +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/push-test.js` at line 715 + +```js +testInDebug('Enabling Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS should warn on unknown attributes', function(assert) { + run(() => { + let originalFlagValue = Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS; + try { + Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS = true; +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/push-test.js` at line 717 + +```js + let originalFlagValue = Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS; + try { + Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS = true; + assert.expectWarning(() => { + store.push({ +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/push-test.js` at line 732 + +```js + }, `The payload for 'person' contains these unknown attributes: emailAddress,isMascot. Make sure they've been defined in your model.`); + } finally { + Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS = originalFlagValue; + } + }); +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/push-test.js` at line 739 + +```js +testInDebug('Enabling Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS should warn on unknown relationships', function(assert) { + run(() => { + var originalFlagValue = Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS; + try { + Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS = true; +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/push-test.js` at line 741 + +```js + var originalFlagValue = Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS; + try { + Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS = true; + assert.expectWarning(() => { + store.push({ +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `tests/unit/store/push-test.js` at line 756 + +```js + }, `The payload for 'person' contains these unknown relationships: emailAddresses,mascots. Make sure they've been defined in your model.`); + } finally { + Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS = originalFlagValue; + } + }); +``` + +### Unknown Global + +**Global**: `Ember.Date` + +**Location**: `tests/unit/transform/date-test.js` at line 61 + +```js +testInDebug('Ember.Date.parse has been deprecated', function(assert) { + assert.expectDeprecation(() => { + Ember.Date.parse(dateString); + }, /Ember.Date.parse is deprecated/); +}); +``` + +### Unknown Global + +**Global**: `Ember.ENV` + +**Location**: `addon/-private/system/store.js` at line 61 + +```js +const { + _Backburner: Backburner, + ENV +} = Ember; + +``` + +### Unknown Global + +**Global**: `Ember._Backburner` + +**Location**: `addon/-private/system/store.js` at line 60 + +```js + +const { + _Backburner: Backburner, + ENV +} = Ember; +``` + +### Unknown Global + +**Global**: `Ember.GUID_KEY` + +**Location**: `addon/-private/system/model/internal-model.js` at line 126 + +```js + + // this ensure ordered set can quickly identify this as unique + this[Ember.GUID_KEY] = InternalModelReferenceId++ + 'internal-model'; + + this.store = store; +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `addon/-private/system/model/internal-model.js` at line 495 + +```js + // TODO: use run.schedule once we drop 1.13 + if (!run.currentRunLoop) { + assert('You have turned on testing mode, which disabled the run-loop\'s autorun.\n You will need to wrap any code with asynchronous side-effects in a run', Ember.testing); + } + this._scheduledDestroy = run.backburner.schedule('destroy', this, '_checkForOrphanedInternalModels') +``` + +### Unknown Global + +**Global**: `Ember.beginPropertyChanges` + +**Location**: `addon/-private/system/model/model.js` at line 640 + +```js + */ + _notifyProperties(keys) { + Ember.beginPropertyChanges(); + let key; + for (let i = 0, length = keys.length; i < length; i++) { +``` + +### Unknown Global + +**Global**: `Ember.endPropertyChanges` + +**Location**: `addon/-private/system/model/model.js` at line 646 + +```js + this.notifyPropertyChange(key); + } + Ember.endPropertyChanges(); + }, + +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `addon/-private/system/relationships/ext.js` at line 13 + +```js + +export const relationshipsDescriptor = computed(function() { + if (Ember.testing === true && relationshipsDescriptor._cacheable === true) { + relationshipsDescriptor._cacheable = false; + } +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `addon/-private/system/relationships/ext.js` at line 40 + +```js + +export const relatedTypesDescriptor = computed(function() { + if (Ember.testing === true && relatedTypesDescriptor._cacheable === true) { + relatedTypesDescriptor._cacheable = false; + } +``` + +### Unknown Global + +**Global**: `Ember.Logger` + +**Location**: `tests/test-helper.js` at line 42 + +```js + // handle the error. + if (reason && reason instanceof Error) { + Ember.Logger.log(reason, reason.stack); + throw reason; + } +``` + +### Unknown Global + +**Global**: `Ember.MODEL_FACTORY_INJECTIONS` + +**Location**: `tests/helpers/model-factory-injection.js` at line 4 + +```js +import hasEmberVersion from 'ember-test-helpers/has-ember-version'; + +const ORIGINAL_MODEL_FACTORY_INJECTIONS = Ember.MODEL_FACTORY_INJECTIONS; + +export function setup(value) { +``` + +### Unknown Global + +**Global**: `Ember.MODEL_FACTORY_INJECTIONS` + +**Location**: `tests/helpers/model-factory-injection.js` at line 4 + +```js +import hasEmberVersion from 'ember-test-helpers/has-ember-version'; + +const ORIGINAL_MODEL_FACTORY_INJECTIONS = Ember.MODEL_FACTORY_INJECTIONS; + +export function setup(value) { +``` + +### Unknown Global + +**Global**: `Ember.MODEL_FACTORY_INJECTIONS` + +**Location**: `tests/helpers/model-factory-injection.js` at line 14 + +```js + + if (!hasEmberVersion(2, 14)) { + Ember.MODEL_FACTORY_INJECTIONS = value; + } +} +``` + +### Unknown Global + +**Global**: `Ember._RegistryProxyMixin` + +**Location**: `tests/helpers/owner.js` at line 6 + +```js +let Owner; + +if (Ember._RegistryProxyMixin && Ember._ContainerProxyMixin) { + Owner = EmberObject.extend(Ember._RegistryProxyMixin, Ember._ContainerProxyMixin); +} else { +``` + +### Unknown Global + +**Global**: `Ember._ContainerProxyMixin` + +**Location**: `tests/helpers/owner.js` at line 6 + +```js +let Owner; + +if (Ember._RegistryProxyMixin && Ember._ContainerProxyMixin) { + Owner = EmberObject.extend(Ember._RegistryProxyMixin, Ember._ContainerProxyMixin); +} else { +``` + +### Unknown Global + +**Global**: `Ember._RegistryProxyMixin` + +**Location**: `tests/helpers/owner.js` at line 7 + +```js + +if (Ember._RegistryProxyMixin && Ember._ContainerProxyMixin) { + Owner = EmberObject.extend(Ember._RegistryProxyMixin, Ember._ContainerProxyMixin); +} else { + Owner = EmberObject.extend(); +``` + +### Unknown Global + +**Global**: `Ember._ContainerProxyMixin` + +**Location**: `tests/helpers/owner.js` at line 7 + +```js + +if (Ember._RegistryProxyMixin && Ember._ContainerProxyMixin) { + Owner = EmberObject.extend(Ember._RegistryProxyMixin, Ember._ContainerProxyMixin); +} else { + Owner = EmberObject.extend(); +``` + +### Unknown Global + +**Global**: `Ember.__loader` + +**Location**: `tests/helpers/setup-ember-dev.js` at line 9 + +```js +// Maintain backwards compatiblity with older versions of ember. +let emberDebugModule; +if (Ember.__loader && Ember.__loader.registry && Ember.__loader.registry["ember-metal/debug"]) { + emberDebugModule = Ember.__loader.require('ember-metal/debug'); +} +``` + +### Unknown Global + +**Global**: `Ember.__loader` + +**Location**: `tests/helpers/setup-ember-dev.js` at line 9 + +```js +// Maintain backwards compatiblity with older versions of ember. +let emberDebugModule; +if (Ember.__loader && Ember.__loader.registry && Ember.__loader.registry["ember-metal/debug"]) { + emberDebugModule = Ember.__loader.require('ember-metal/debug'); +} +``` + +### Unknown Global + +**Global**: `Ember.__loader` + +**Location**: `tests/helpers/setup-ember-dev.js` at line 9 + +```js +// Maintain backwards compatiblity with older versions of ember. +let emberDebugModule; +if (Ember.__loader && Ember.__loader.registry && Ember.__loader.registry["ember-metal/debug"]) { + emberDebugModule = Ember.__loader.require('ember-metal/debug'); +} +``` + +### Unknown Global + +**Global**: `Ember.__loader` + +**Location**: `tests/helpers/setup-ember-dev.js` at line 10 + +```js +let emberDebugModule; +if (Ember.__loader && Ember.__loader.registry && Ember.__loader.registry["ember-metal/debug"]) { + emberDebugModule = Ember.__loader.require('ember-metal/debug'); +} + +``` + +### Unknown Global + +**Global**: `Ember.name` + +**Location**: `tests/helpers/setup-ember-dev.js` at line 17 + +```js + return emberDebugModule.getDebugFunction(name); + } else { + return Ember[name]; + } +} +``` + +### Unknown Global + +**Global**: `Ember.name` + +**Location**: `tests/helpers/setup-ember-dev.js` at line 25 + +```js + emberDebugModule.setDebugFunction(name, func); + } else { + Ember[name] = func; + } +} +``` + +### Unknown Global + +**Global**: `Ember.Namespace` + +**Location**: `tests/integration/application-test.js` at line 13 + +```js + +const Store = DS.Store; +const Namespace = Ember.Namespace; + +let app, App, container; +``` + +### Unknown Global + +**Global**: `Ember.Namespace` + +**Location**: `tests/integration/application-test.js` at line 13 + +```js + +const Store = DS.Store; +const Namespace = Ember.Namespace; + +let app, App, container; +``` + +### Unknown Global + +**Global**: `Ember.BOOTED` + +**Location**: `tests/integration/application-test.js` at line 47 + +```js + afterEach() { + run(app, app.destroy); + Ember.BOOTED = false; + } +}); +``` + +### Unknown Global + +**Global**: `Ember.BOOTED` + +**Location**: `tests/integration/application-test.js` at line 87 + +```js + afterEach() { + run(app, 'destroy'); + Ember.BOOTED = false; + } +}); +``` + +### Unknown Global + +**Global**: `Ember.inject` + +**Location**: `tests/integration/application-test.js` at line 108 + +```js +}); + +if (Ember.inject && service) { + module("integration/application - Using the store as a service", { + beforeEach() { +``` + +### Unknown Global + +**Global**: `Ember.BOOTED` + +**Location**: `tests/integration/application-test.js` at line 122 + +```js + afterEach() { + run(app, 'destroy'); + Ember.BOOTED = false; + } + }); +``` + +### Unknown Global + +**Global**: `Ember.BOOTED` + +**Location**: `tests/integration/application-test.js` at line 143 + +```js + run(app, app.destroy); + } + Ember.BOOTED = false; + } +}); +``` + +### Unknown Global + +**Global**: `Ember.Registry` + +**Location**: `tests/helpers/store.js` at line 11 + +```js + options = options || {}; + + if (Ember.Registry) { + registry = env.registry = new Ember.Registry(); + owner = Owner.create({ +``` + +### Unknown Global + +**Global**: `Ember.Registry` + +**Location**: `tests/helpers/store.js` at line 12 + +```js + + if (Ember.Registry) { + registry = env.registry = new Ember.Registry(); + owner = Owner.create({ + __registry__: registry +``` + +### Unknown Global + +**Global**: `Ember.Container` + +**Location**: `tests/helpers/store.js` at line 21 + +```js + owner.__container__ = container; + } else { + container = env.container = new Ember.Container(); + registry = env.registry = container; + } +``` + +### Unknown Global + +**Global**: `Ember.OrderedSet` + +**Location**: `tests/integration/record-array-manager-test.js` at line 307 + +```js + let record = {}; + let internalModel = { + _recordArrays: new Ember.OrderedSet(), + getRecord() { + return record; +``` + +### Unknown Global + +**Global**: `Ember.Registry` + +**Location**: `tests/unit/model-test.js` at line 1001 + +```js + + let registry, container; + if (Ember.Registry) { + registry = new Ember.Registry(); + container = registry.container(); +``` + +### Unknown Global + +**Global**: `Ember.Registry` + +**Location**: `tests/unit/model-test.js` at line 1002 + +```js + let registry, container; + if (Ember.Registry) { + registry = new Ember.Registry(); + container = registry.container(); + } else { +``` + +### Unknown Global + +**Global**: `Ember.Container` + +**Location**: `tests/unit/model-test.js` at line 1005 + +```js + container = registry.container(); + } else { + container = new Ember.Container(); + registry = container; + } +``` + +### Unknown Global + +**Global**: `Ember.Registry` + +**Location**: `tests/unit/model-test.js` at line 1035 + +```js + + let registry, container; + if (Ember.Registry) { + registry = new Ember.Registry(); + container = registry.container(); +``` + +### Unknown Global + +**Global**: `Ember.Registry` + +**Location**: `tests/unit/model-test.js` at line 1036 + +```js + let registry, container; + if (Ember.Registry) { + registry = new Ember.Registry(); + container = registry.container(); + } else { +``` + +### Unknown Global + +**Global**: `Ember.Container` + +**Location**: `tests/unit/model-test.js` at line 1039 + +```js + container = registry.container(); + } else { + container = new Ember.Container(); + registry = container; + } +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 547 + +```js +test("relationshipsByName is cached in production", function(assert) { + let model = store.modelFor('user'); + let oldTesting = Ember.testing; + //We set the cacheable to true because that is the default state for any CP and then assert that it + //did not get dynamically changed when accessed +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 565 + +```js +test("relatedTypes is cached in production", function(assert) { + let model = store.modelFor('user'); + let oldTesting = Ember.testing; + //We set the cacheable to true because that is the default state for any CP and then assert that it + //did not get dynamically changed when accessed +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 583 + +```js +test("relationships is cached in production", function(assert) { + let model = store.modelFor('user'); + let oldTesting = Ember.testing; + //We set the cacheable to true because that is the default state for any CP and then assert that it + //did not get dynamically changed when accessed +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 547 + +```js +test("relationshipsByName is cached in production", function(assert) { + let model = store.modelFor('user'); + let oldTesting = Ember.testing; + //We set the cacheable to true because that is the default state for any CP and then assert that it + //did not get dynamically changed when accessed +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 553 + +```js + let oldCacheable = relationshipsByName._cacheable; + relationshipsByName._cacheable = true; + Ember.testing = false; + try { + assert.equal(get(model, 'relationshipsByName'), get(model, 'relationshipsByName'), 'relationshipsByName are cached'); +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 558 + +```js + assert.equal(get(model, 'relationshipsByName'), get(model, 'relationshipsByName'), 'relationshipsByName are cached'); + } finally { + Ember.testing = oldTesting; + relationshipsByName._cacheable = oldCacheable; + } +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 565 + +```js +test("relatedTypes is cached in production", function(assert) { + let model = store.modelFor('user'); + let oldTesting = Ember.testing; + //We set the cacheable to true because that is the default state for any CP and then assert that it + //did not get dynamically changed when accessed +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 571 + +```js + let oldCacheable = relatedTypes._cacheable; + relatedTypes._cacheable = true; + Ember.testing = false; + try { + assert.equal(get(model, 'relatedTypes'), get(model, 'relatedTypes'), 'relatedTypes are cached'); +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 576 + +```js + assert.equal(get(model, 'relatedTypes'), get(model, 'relatedTypes'), 'relatedTypes are cached'); + } finally { + Ember.testing = oldTesting; + relatedTypes._cacheable = oldCacheable; + } +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 583 + +```js +test("relationships is cached in production", function(assert) { + let model = store.modelFor('user'); + let oldTesting = Ember.testing; + //We set the cacheable to true because that is the default state for any CP and then assert that it + //did not get dynamically changed when accessed +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 589 + +```js + let oldCacheable = relationships._cacheable; + relationships._cacheable = true; + Ember.testing = false; + try { + assert.equal(get(model, 'relationships'), get(model, 'relationships'), 'relationships are cached'); +``` + +### Unknown Global + +**Global**: `Ember.testing` + +**Location**: `tests/integration/relationships/belongs-to-test.js` at line 594 + +```js + assert.equal(get(model, 'relationships'), get(model, 'relationships'), 'relationships are cached'); + } finally { + Ember.testing = oldTesting; + relationships._cacheable = oldCacheable; + } +``` diff --git a/addon/-private/adapters/build-url-mixin.js b/addon/-private/adapters/build-url-mixin.js index 0273992da8c..52ec93f5452 100644 --- a/addon/-private/adapters/build-url-mixin.js +++ b/addon/-private/adapters/build-url-mixin.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import { camelize } from '@ember/string'; +import Mixin from '@ember/object/mixin'; +import { get } from '@ember/object'; import { pluralize } from 'ember-inflector'; -const get = Ember.get; - /** WARNING: This interface is likely to change in order to accomodate https://github.com/emberjs/rfcs/pull/4 @@ -30,7 +30,7 @@ const get = Ember.get; @class BuildURLMixin @namespace DS */ -export default Ember.Mixin.create({ +export default Mixin.create({ /** Builds a URL for a given type and optional ID. @@ -421,11 +421,12 @@ export default Ember.Mixin.create({ ```app/adapters/application.js import DS from 'ember-data'; + import { decamelize } from '@ember/string'; import { pluralize } from 'ember-inflector'; export default DS.RESTAdapter.extend({ pathForType: function(modelName) { - var decamelized = Ember.String.decamelize(modelName); + var decamelized = decamelize(modelName); return pluralize(decamelized); } }); @@ -436,7 +437,7 @@ export default Ember.Mixin.create({ @return {String} path **/ pathForType(modelName) { - let camelized = Ember.String.camelize(modelName); + let camelized = camelize(modelName); return pluralize(camelized); } }); diff --git a/addon/-private/adapters/errors.js b/addon/-private/adapters/errors.js index aa0c35a43a3..46a09a932b9 100644 --- a/addon/-private/adapters/errors.js +++ b/addon/-private/adapters/errors.js @@ -1,11 +1,11 @@ -import Ember from 'ember'; -import { assert } from '@ember/debug'; - -const EmberError = Ember.Error; +import { makeArray } from "@ember/array"; +import { isPresent } from "@ember/utils"; +import EmberError from "@ember/error"; +import { assert } from "@ember/debug"; const SOURCE_POINTER_REGEXP = /^\/?data\/(attributes|relationships)\/(.*)/; const SOURCE_POINTER_PRIMARY_REGEXP = /^\/?data/; -const PRIMARY_ATTRIBUTE_KEY = 'base'; +const PRIMARY_ATTRIBUTE_KEY = "base"; /** A `DS.AdapterError` is used by an adapter to signal that an error occurred @@ -74,13 +74,13 @@ const PRIMARY_ATTRIBUTE_KEY = 'base'; @class AdapterError @namespace DS */ -export function AdapterError(errors, message = 'Adapter operation failed') { +export function AdapterError(errors, message = "Adapter operation failed") { this.isAdapterError = true; EmberError.call(this, message); this.errors = errors || [ { - title: 'Adapter Error', + title: "Adapter Error", detail: message } ]; @@ -94,7 +94,10 @@ function extendFn(ErrorClass) { function extend(ParentErrorClass, defaultMessage) { let ErrorClass = function(errors, message) { - assert('`AdapterError` expects json-api formatted errors array.', Array.isArray(errors || [])); + assert( + "`AdapterError` expects json-api formatted errors array.", + Array.isArray(errors || []) + ); ParentErrorClass.call(this, errors, message || defaultMessage); }; ErrorClass.prototype = Object.create(ParentErrorClass.prototype); @@ -165,8 +168,10 @@ AdapterError.extend = extendFn(AdapterError); @class InvalidError @namespace DS */ -export const InvalidError = extend(AdapterError, - 'The adapter rejected the commit because it was invalid'); +export const InvalidError = extend( + AdapterError, + "The adapter rejected the commit because it was invalid" +); /** A `DS.TimeoutError` is used by an adapter to signal that a request @@ -200,8 +205,10 @@ export const InvalidError = extend(AdapterError, @class TimeoutError @namespace DS */ -export const TimeoutError = extend(AdapterError, - 'The adapter operation timed out'); +export const TimeoutError = extend( + AdapterError, + "The adapter operation timed out" +); /** A `DS.AbortError` is used by an adapter to signal that a request to @@ -212,8 +219,10 @@ export const TimeoutError = extend(AdapterError, @class AbortError @namespace DS */ -export const AbortError = extend(AdapterError, - 'The adapter operation was aborted'); +export const AbortError = extend( + AdapterError, + "The adapter operation was aborted" +); /** A `DS.UnauthorizedError` equates to a HTTP `401 Unauthorized` response @@ -248,7 +257,10 @@ export const AbortError = extend(AdapterError, @class UnauthorizedError @namespace DS */ -export const UnauthorizedError = extend(AdapterError, 'The adapter operation is unauthorized'); +export const UnauthorizedError = extend( + AdapterError, + "The adapter operation is unauthorized" +); /** A `DS.ForbiddenError` equates to a HTTP `403 Forbidden` response status. @@ -260,7 +272,10 @@ export const UnauthorizedError = extend(AdapterError, 'The adapter operation is @class ForbiddenError @namespace DS */ -export const ForbiddenError = extend(AdapterError, 'The adapter operation is forbidden'); +export const ForbiddenError = extend( + AdapterError, + "The adapter operation is forbidden" +); /** A `DS.NotFoundError` equates to a HTTP `404 Not Found` response status. @@ -298,7 +313,10 @@ export const ForbiddenError = extend(AdapterError, 'The adapter operation is for @class NotFoundError @namespace DS */ -export const NotFoundError = extend(AdapterError, 'The adapter could not find the resource'); +export const NotFoundError = extend( + AdapterError, + "The adapter could not find the resource" +); /** A `DS.ConflictError` equates to a HTTP `409 Conflict` response status. @@ -310,7 +328,10 @@ export const NotFoundError = extend(AdapterError, 'The adapter could not find th @class ConflictError @namespace DS */ -export const ConflictError = extend(AdapterError, 'The adapter operation failed due to a conflict'); +export const ConflictError = extend( + AdapterError, + "The adapter operation failed due to a conflict" +); /** A `DS.ServerError` equates to a HTTP `500 Internal Server Error` response @@ -320,7 +341,10 @@ export const ConflictError = extend(AdapterError, 'The adapter operation failed @class ServerError @namespace DS */ -export const ServerError = extend(AdapterError, 'The adapter operation failed due to a server error'); +export const ServerError = extend( + AdapterError, + "The adapter operation failed due to a server error" +); /** Convert an hash of errors into an array with errors in JSON-API format. @@ -371,14 +395,14 @@ export const ServerError = extend(AdapterError, 'The adapter operation failed du export function errorsHashToArray(errors) { let out = []; - if (Ember.isPresent(errors)) { - Object.keys(errors).forEach((key) => { - let messages = Ember.makeArray(errors[key]); + if (isPresent(errors)) { + Object.keys(errors).forEach(key => { + let messages = makeArray(errors[key]); for (let i = 0; i < messages.length; i++) { - let title = 'Invalid Attribute'; + let title = "Invalid Attribute"; let pointer = `/data/attributes/${key}`; if (key === PRIMARY_ATTRIBUTE_KEY) { - title = 'Invalid Document'; + title = "Invalid Document"; pointer = `/data`; } out.push({ @@ -438,14 +462,16 @@ export function errorsHashToArray(errors) { export function errorsArrayToHash(errors) { let out = {}; - if (Ember.isPresent(errors)) { - errors.forEach((error) => { + if (isPresent(errors)) { + errors.forEach(error => { if (error.source && error.source.pointer) { let key = error.source.pointer.match(SOURCE_POINTER_REGEXP); if (key) { key = key[2]; - } else if (error.source.pointer.search(SOURCE_POINTER_PRIMARY_REGEXP) !== -1) { + } else if ( + error.source.pointer.search(SOURCE_POINTER_PRIMARY_REGEXP) !== -1 + ) { key = PRIMARY_ATTRIBUTE_KEY; } diff --git a/addon/-private/system/debug/debug-adapter.js b/addon/-private/system/debug/debug-adapter.js index 63df01ee251..abd9f6df50d 100644 --- a/addon/-private/system/debug/debug-adapter.js +++ b/addon/-private/system/debug/debug-adapter.js @@ -1,11 +1,14 @@ /** @module ember-data */ -import Ember from 'ember'; +import { addObserver, removeObserver } from '@ember/object/observers'; + +import { A } from '@ember/array'; +import DataAdapter from '@ember/debug/data-adapter'; +import { capitalize, underscore } from '@ember/string'; +import { assert } from '@ember/debug'; +import { get } from '@ember/object'; import Model from '../model/model'; -const capitalize = Ember.String.capitalize; -const underscore = Ember.String.underscore; -const { assert, get } = Ember; /* Extend `Ember.DataAdapter` with ED specific code. @@ -15,7 +18,7 @@ const { assert, get } = Ember; @extends Ember.DataAdapter @private */ -export default Ember.DataAdapter.extend({ +export default DataAdapter.extend({ getFilters() { return [ { name: 'isNew', desc: 'New' }, @@ -73,7 +76,7 @@ export default Ember.DataAdapter.extend({ getRecordKeywords(record) { let keywords = []; - let keys = Ember.A(['id']); + let keys = A(['id']); record.eachAttribute((key) => keys.push(key)); keys.forEach((key) => keywords.push(get(record, key))); return keywords; @@ -98,8 +101,8 @@ export default Ember.DataAdapter.extend({ }, observeRecord(record, recordUpdated) { - let releaseMethods = Ember.A(); - let keysToObserve = Ember.A(['id', 'isNew', 'hasDirtyAttributes']); + let releaseMethods = A(); + let keysToObserve = A(['id', 'isNew', 'hasDirtyAttributes']); record.eachAttribute((key) => keysToObserve.push(key)); let adapter = this; @@ -108,9 +111,9 @@ export default Ember.DataAdapter.extend({ let handler = function() { recordUpdated(adapter.wrapRecord(record)); }; - Ember.addObserver(record, key, handler); + addObserver(record, key, handler); releaseMethods.push(function() { - Ember.removeObserver(record, key, handler); + removeObserver(record, key, handler); }); }); diff --git a/addon/-private/system/is-array-like.js b/addon/-private/system/is-array-like.js index 3be11dac000..f442e8e9721 100644 --- a/addon/-private/system/is-array-like.js +++ b/addon/-private/system/is-array-like.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import { typeOf } from '@ember/utils'; +import EmberArray from '@ember/array'; /* We're using this to detect arrays and "array-like" objects. @@ -13,9 +14,9 @@ import Ember from 'ember'; export default function isArrayLike(obj) { if (!obj || obj.setInterval) { return false; } if (Array.isArray(obj)) { return true; } - if (Ember.Array.detect(obj)) { return true; } + if (EmberArray.detect(obj)) { return true; } - let type = Ember.typeOf(obj); + let type = typeOf(obj); if ('array' === type) { return true; } if ((obj.length !== undefined) && 'object' === type) { return true; } return false; diff --git a/addon/-private/system/many-array.js b/addon/-private/system/many-array.js index 569263e1f5e..7ea140ff392 100644 --- a/addon/-private/system/many-array.js +++ b/addon/-private/system/many-array.js @@ -1,14 +1,16 @@ /** @module ember-data */ -import Ember from 'ember'; +import { all } from 'rsvp'; + +import Evented from '@ember/object/evented'; +import MutableArray from '@ember/array/mutable'; +import EmberObject, { get } from '@ember/object'; import { assert } from '@ember/debug'; import { PromiseArray } from "./promise-proxies"; import { _objectIsAlive } from "./store/common"; import diffArray from './diff-array'; -const { get } = Ember; - /** A `ManyArray` is a `MutableArray` that represents the contents of a has-many relationship. @@ -52,7 +54,7 @@ const { get } = Ember; @extends Ember.Object @uses Ember.MutableArray, Ember.Evented */ -export default Ember.Object.extend(Ember.MutableArray, Ember.Evented, { +export default EmberObject.extend(MutableArray, Evented, { init() { this._super(...arguments); @@ -260,7 +262,7 @@ export default Ember.Object.extend(Ember.MutableArray, Ember.Evented, { save() { let manyArray = this; let promiseLabel = 'DS: ManyArray#save ' + get(this, 'type'); - let promise = Ember.RSVP.all(this.invoke("save"), promiseLabel). + let promise = all(this.invoke("save"), promiseLabel). then(() => manyArray, null, 'DS: ManyArray#save return ManyArray'); return PromiseArray.create({ promise }); diff --git a/addon/-private/system/model/errors.js b/addon/-private/system/model/errors.js index 42dd3d1c9a3..20ed0274992 100644 --- a/addon/-private/system/model/errors.js +++ b/addon/-private/system/model/errors.js @@ -1,8 +1,12 @@ -import Ember from 'ember'; +import { mapBy, not } from '@ember/object/computed'; +import Evented from '@ember/object/evented'; +import ArrayProxy from '@ember/array/proxy'; +import { set, get, computed } from '@ember/object'; +import { isEmpty } from '@ember/utils'; +import { makeArray, A } from '@ember/array'; +import MapWithDefault from '@ember/map/with-default'; import { deprecate, warn } from '@ember/debug'; -const { get, set, isEmpty, makeArray, MapWithDefault } = Ember; - /** @module ember-data */ @@ -82,7 +86,7 @@ const { get, set, isEmpty, makeArray, MapWithDefault } = Ember; @uses Ember.Enumerable @uses Ember.Evented */ -export default Ember.ArrayProxy.extend(Ember.Evented, { +export default ArrayProxy.extend(Evented, { /** Register with target handler @@ -120,10 +124,10 @@ export default Ember.ArrayProxy.extend(Ember.Evented, { @type {Ember.MapWithDefault} @private */ - errorsByAttributeName: Ember.computed(function() { + errorsByAttributeName: computed(function() { return MapWithDefault.create({ defaultValue() { - return Ember.A(); + return A(); } }); }), @@ -165,15 +169,15 @@ export default Ember.ArrayProxy.extend(Ember.Evented, { @property messages @type {Array} */ - messages: Ember.computed.mapBy('content', 'message'), + messages: mapBy('content', 'message'), /** @property content @type {Array} @private */ - content: Ember.computed(function() { - return Ember.A(); + content: computed(function() { + return A(); }), /** @@ -199,7 +203,7 @@ export default Ember.ArrayProxy.extend(Ember.Evented, { @type {Boolean} @readOnly */ - isEmpty: Ember.computed.not('length').readOnly(), + isEmpty: not('length').readOnly(), /** Adds error messages to a given attribute and sends @@ -382,7 +386,7 @@ export default Ember.ArrayProxy.extend(Ember.Evented, { if (get(this, 'isEmpty')) { return; } let errorsByAttributeName = get(this, 'errorsByAttributeName'); - let attributes = Ember.A(); + let attributes = A(); errorsByAttributeName.forEach(function(_, attribute) { attributes.push(attribute); @@ -393,7 +397,7 @@ export default Ember.ArrayProxy.extend(Ember.Evented, { this.notifyPropertyChange(attribute); }, this); - Ember.ArrayProxy.prototype.clear.call(this); + ArrayProxy.prototype.clear.call(this); }, diff --git a/addon/-private/system/model/internal-model.js b/addon/-private/system/model/internal-model.js index acddb749bb5..3a1036e3a88 100644 --- a/addon/-private/system/model/internal-model.js +++ b/addon/-private/system/model/internal-model.js @@ -1,6 +1,14 @@ +import { assign, merge } from '@ember/polyfills'; +import { set, get } from '@ember/object'; +import { copy } from '@ember/object/internals'; +import EmberError from '@ember/error'; +import { isEqual, isEmpty } from '@ember/utils'; +import { setOwner } from '@ember/application'; +import { run } from '@ember/runloop'; +import RSVP, { Promise } from 'rsvp'; import Ember from 'ember'; import { DEBUG } from '@glimmer/env'; -import { assert } from '@ember/debug'; +import { assert, inspect } from '@ember/debug'; import RootState from "./states"; import Relationships from "../relationships/state/create"; import Snapshot from "../snapshot"; @@ -15,21 +23,7 @@ import { HasManyReference } from "../references"; -const { - get, - set, - copy, - Error: EmberError, - inspect, - isEmpty, - isEqual, - setOwner, - run, - RSVP, - RSVP: { Promise } -} = Ember; - -const assign = Ember.assign || Ember.merge; +const emberAssign = assign || merge; /* The TransitionChainMap caches the `state.enters`, `state.setups`, and final state reached @@ -345,7 +339,7 @@ export default class InternalModel { }; if (typeof properties === 'object' && properties !== null) { - assign(createOptions, properties); + emberAssign(createOptions, properties); } if (setOwner) { @@ -497,10 +491,10 @@ export default class InternalModel { if (this._scheduledDestroy === null) { // TODO: use run.schedule once we drop 1.13 - if (!Ember.run.currentRunLoop) { + if (!run.currentRunLoop) { assert('You have turned on testing mode, which disabled the run-loop\'s autorun.\n You will need to wrap any code with asynchronous side-effects in a run', Ember.testing); } - this._scheduledDestroy = Ember.run.backburner.schedule('destroy', this, '_checkForOrphanedInternalModels') + this._scheduledDestroy = run.backburner.schedule('destroy', this, '_checkForOrphanedInternalModels') } } @@ -591,7 +585,7 @@ export default class InternalModel { changedKeys = this._changedKeys(data.attributes); } - assign(this._data, data.attributes); + emberAssign(this._data, data.attributes); this.pushedData(); if (this.hasRecord) { @@ -700,7 +694,7 @@ export default class InternalModel { let oldData = this._data; let currentData = this._attributes; let inFlightData = this._inFlightAttributes; - let newData = assign(copy(inFlightData), currentData); + let newData = emberAssign(copy(inFlightData), currentData); let diffData = Object.create(null); let newDataKeys = Object.keys(newData); @@ -1073,9 +1067,9 @@ export default class InternalModel { this.didCleanError(); let changedKeys = this._changedKeys(data); - assign(this._data, this._inFlightAttributes); + emberAssign(this._data, this._inFlightAttributes); if (data) { - assign(this._data, data); + emberAssign(this._data, data); } this._inFlightAttributes = null; @@ -1203,8 +1197,8 @@ export default class InternalModel { attrs= this._attributes; } - original = assign(Object.create(null), this._data); - original = assign(original, this._inFlightAttributes); + original = emberAssign(Object.create(null), this._data); + original = emberAssign(original, this._inFlightAttributes); for (i = 0; i < length; i++) { key = keys[i]; diff --git a/addon/-private/system/model/model.js b/addon/-private/system/model/model.js index 6fadc64cea9..979aebaffdc 100644 --- a/addon/-private/system/model/model.js +++ b/addon/-private/system/model/model.js @@ -1,3 +1,14 @@ +import ComputedProperty from '@ember/object/computed'; +import { setOwner } from '@ember/application'; +import { isNone } from '@ember/utils'; +import EmberError from '@ember/error'; +import Evented from '@ember/object/evented'; +import EmberObject, { + computed, + get, + observer +} from '@ember/object'; +import Map from '@ember/map'; import Ember from 'ember'; import { DEBUG } from '@glimmer/env'; import { assert, deprecate, warn } from '@ember/debug'; @@ -11,12 +22,6 @@ import { relationshipsDescriptor } from '../relationships/ext'; -const { - get, - computed, - Map -} = Ember; - /** @module ember-data */ @@ -81,7 +86,7 @@ const retrieveFromCurrentState = computed('currentState', function(key) { @extends Ember.Object @uses Ember.Evented */ -const Model = Ember.Object.extend(Ember.Evented, { +const Model = EmberObject.extend(Evented, { _internalModel: null, store: null, __defineNonEnumerable(property) { @@ -973,7 +978,7 @@ const Model = Ember.Object.extend(Ember.Evented, { return this._internalModel.referenceFor('hasMany', name); }, - setId: Ember.observer('id', function () { + setId: observer('id', function () { this._internalModel.setId(this.get('id')); }), @@ -1137,7 +1142,7 @@ if (DEBUG) { this._super(...arguments); if (!this._internalModel) { - throw new Ember.Error('You should not call `create` on a model. Instead, call `store.createRecord` with the attributes you would like to set.'); + throw new EmberError('You should not call `create` on a model. Instead, call `store.createRecord` with the attributes you would like to set.'); } } }); @@ -1229,7 +1234,7 @@ Model.reopenClass({ return relationship && store.modelFor(relationship.type); }, - inverseMap: Ember.computed(function() { + inverseMap: computed(function() { return Object.create(null); }), @@ -1306,10 +1311,10 @@ Model.reopenClass({ //If inverse is specified manually, return the inverse if (options.inverse) { inverseName = options.inverse; - inverse = Ember.get(inverseType, 'relationshipsByName').get(inverseName); + inverse = get(inverseType, 'relationshipsByName').get(inverseName); assert("We found no inverse relationships by the name of '" + inverseName + "' on the '" + inverseType.modelName + - "' model. This is most likely due to a missing attribute on your model definition.", !Ember.isNone(inverse)); + "' model. This is most likely due to a missing attribute on your model definition.", !isNone(inverse)); inverseKind = inverse.kind; } else { @@ -1429,7 +1434,7 @@ Model.reopenClass({ @type Object @readOnly */ - relationshipNames: Ember.computed(function() { + relationshipNames: computed(function() { let names = { hasMany: [], belongsTo: [] @@ -1558,7 +1563,7 @@ Model.reopenClass({ @type Ember.Map @readOnly */ - fields: Ember.computed(function() { + fields: computed(function() { let map = Map.create(); this.eachComputedProperty((name, meta) => { @@ -1667,7 +1672,7 @@ Model.reopenClass({ @type {Ember.Map} @readOnly */ - attributes: Ember.computed(function() { + attributes: computed(function() { let map = Map.create(); this.eachComputedProperty((name, meta) => { @@ -1720,7 +1725,7 @@ Model.reopenClass({ @type {Ember.Map} @readOnly */ - transformedAttributes: Ember.computed(function() { + transformedAttributes: computed(function() { let map = Map.create(); this.eachAttribute((key, meta) => { @@ -1837,7 +1842,7 @@ Model.reopenClass({ // deprecation is actually created via an `.extend` of the factory // inside the container itself, but that only happens on models // with MODEL_FACTORY_INJECTIONS enabled :( -if (Ember.setOwner) { +if (setOwner) { Object.defineProperty(Model.prototype, 'container', { configurable: true, enumerable: false, @@ -1914,7 +1919,7 @@ if (DEBUG) { */ didDefineProperty(proto, key, value) { // Check if the value being set is a computed property. - if (value instanceof Ember.ComputedProperty) { + if (value instanceof ComputedProperty) { // If it is, get the metadata for the relationship. This is // populated by the `DS.belongsTo` helper when it is creating diff --git a/addon/-private/system/normalize-model-name.js b/addon/-private/system/normalize-model-name.js index f885e5ddd61..7ff61d9841d 100644 --- a/addon/-private/system/normalize-model-name.js +++ b/addon/-private/system/normalize-model-name.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { dasherize } from '@ember/string'; // All modelNames are dasherized internally. Changing this function may // require changes to other normalization hooks (such as typeForRoot). @@ -14,5 +14,5 @@ import Ember from 'ember'; @for DS */ export default function normalizeModelName(modelName) { - return Ember.String.dasherize(modelName); + return dasherize(modelName); } diff --git a/addon/-private/system/ordered-set.js b/addon/-private/system/ordered-set.js index 766f722a0a3..0577ec61664 100644 --- a/addon/-private/system/ordered-set.js +++ b/addon/-private/system/ordered-set.js @@ -1,7 +1,7 @@ +import { guidFor } from '@ember/object/internals'; import Ember from 'ember'; const EmberOrderedSet = Ember.OrderedSet; -const guidFor = Ember.guidFor; export default function OrderedSet() { this._super$constructor(); diff --git a/addon/-private/system/promise-proxies.js b/addon/-private/system/promise-proxies.js index 6999a9c991c..fcd47185897 100644 --- a/addon/-private/system/promise-proxies.js +++ b/addon/-private/system/promise-proxies.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import ObjectProxy from '@ember/object/proxy'; +import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; +import ArrayProxy from '@ember/array/proxy'; +import { get } from '@ember/object'; +import { Promise } from 'rsvp'; import { assert } from '@ember/debug'; -const { get , RSVP: { Promise }} = Ember; - /** A `PromiseArray` is an object that acts like both an `Ember.Array` and a promise. When the promise is resolved the resulting value @@ -32,7 +34,7 @@ const { get , RSVP: { Promise }} = Ember; @extends Ember.ArrayProxy @uses Ember.PromiseProxyMixin */ -export const PromiseArray = Ember.ArrayProxy.extend(Ember.PromiseProxyMixin); +export const PromiseArray = ArrayProxy.extend(PromiseProxyMixin); /** A `PromiseObject` is an object that acts like both an `Ember.Object` @@ -63,7 +65,7 @@ export const PromiseArray = Ember.ArrayProxy.extend(Ember.PromiseProxyMixin); @extends Ember.ObjectProxy @uses Ember.PromiseProxyMixin */ -export let PromiseObject = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin); +export let PromiseObject = ObjectProxy.extend(PromiseProxyMixin); export function promiseObject(promise, label) { return PromiseObject.create({ diff --git a/addon/-private/system/record-array-manager.js b/addon/-private/system/record-array-manager.js index 483e7766502..9802e02ce79 100644 --- a/addon/-private/system/record-array-manager.js +++ b/addon/-private/system/record-array-manager.js @@ -2,7 +2,10 @@ @module ember-data */ -import Ember from 'ember'; +import { A } from '@ember/array'; + +import { set, get } from '@ember/object'; +import { run as emberRun } from '@ember/runloop'; import { RecordArray, FilteredRecordArray, @@ -12,12 +15,6 @@ import { import cloneNull from "./clone-null"; import { assert } from '@ember/debug'; -const { - get, - set, - run: emberRun -} = Ember; - const { _flush, array_flatten, @@ -308,7 +305,7 @@ export default class RecordArrayManager { let array = RecordArray.create({ modelName, - content: Ember.A(content || []), + content: A(content || []), store: this.store, isLoaded: true, manager: this @@ -337,7 +334,7 @@ export default class RecordArrayManager { let array = FilteredRecordArray.create({ query, modelName, - content: Ember.A(), + content: A(), store: this.store, manager: this, filterFunction: filter @@ -365,7 +362,7 @@ export default class RecordArrayManager { array = AdapterPopulatedRecordArray.create({ modelName, query: query, - content: Ember.A(internalModels), + content: A(internalModels), store: this.store, manager: this, isLoaded: true, @@ -379,7 +376,7 @@ export default class RecordArrayManager { array = AdapterPopulatedRecordArray.create({ modelName, query: query, - content: Ember.A(), + content: A(), store: this.store, manager: this }); diff --git a/addon/-private/system/record-arrays/adapter-populated-record-array.js b/addon/-private/system/record-arrays/adapter-populated-record-array.js index 240d704ae2b..8ef73763c8c 100644 --- a/addon/-private/system/record-arrays/adapter-populated-record-array.js +++ b/addon/-private/system/record-arrays/adapter-populated-record-array.js @@ -1,14 +1,10 @@ -import Ember from 'ember'; +import { once } from '@ember/runloop'; +import { A } from '@ember/array'; +import { get } from '@ember/object'; import RecordArray from "./record-array"; import cloneNull from "../clone-null"; import { associateWithRecordArray } from '../record-array-manager'; -/** - @module ember-data -*/ - -const { get } = Ember; - /** Represents an ordered list of records whose order and membership is determined by the adapter. For example, a query sent to the adapter @@ -49,7 +45,7 @@ const { get } = Ember; export default RecordArray.extend({ init() { // yes we are touching `this` before super, but ArrayProxy has a bug that requires this. - this.set('content', this.get('content') || Ember.A()); + this.set('content', this.get('content') || A()); this._super(...arguments); this.query = this.query || null; @@ -91,7 +87,7 @@ export default RecordArray.extend({ associateWithRecordArray(internalModels, this); // TODO: should triggering didLoad event be the last action of the runLoop? - Ember.run.once(this, 'trigger', 'didLoad'); + once(this, 'trigger', 'didLoad'); heimdall.stop(token); } }); diff --git a/addon/-private/system/record-arrays/filtered-record-array.js b/addon/-private/system/record-arrays/filtered-record-array.js index 3fb9eaac50f..66ab0ff8016 100644 --- a/addon/-private/system/record-arrays/filtered-record-array.js +++ b/addon/-private/system/record-arrays/filtered-record-array.js @@ -1,12 +1,7 @@ -import Ember from 'ember'; +import { once } from '@ember/runloop'; +import { get, observer } from '@ember/object'; import RecordArray from "./record-array"; -/** - @module ember-data -*/ - -const { get } = Ember; - /** Represents a list of records whose membership is determined by the store. As records are created, loaded, or modified, the store @@ -66,7 +61,7 @@ export default RecordArray.extend({ get(this, 'manager').updateFilter(this, this.modelName, get(this, 'filterFunction')); }, - updateFilter: Ember.observer('filterFunction', function() { - Ember.run.once(this, this._updateFilter); + updateFilter: observer('filterFunction', function() { + once(this, this._updateFilter); }) }); diff --git a/addon/-private/system/record-arrays/record-array.js b/addon/-private/system/record-arrays/record-array.js index 0b2d42a82d5..220e17f01d2 100644 --- a/addon/-private/system/record-arrays/record-array.js +++ b/addon/-private/system/record-arrays/record-array.js @@ -2,12 +2,14 @@ @module ember-data */ -import Ember from 'ember'; +import Evented from '@ember/object/evented'; + +import ArrayProxy from '@ember/array/proxy'; +import { set, get, computed } from '@ember/object'; +import { Promise } from 'rsvp'; import { PromiseArray } from "../promise-proxies"; import SnapshotRecordArray from "../snapshot-record-array"; -const { computed, get, set, RSVP: { Promise } } = Ember; - /** A record array is an array that contains records of a certain modelName. The record array materializes records as needed when they are retrieved for the first @@ -21,7 +23,7 @@ const { computed, get, set, RSVP: { Promise } } = Ember; @uses Ember.Evented */ -export default Ember.ArrayProxy.extend(Ember.Evented, { +export default ArrayProxy.extend(Evented, { init() { this._super(...arguments); diff --git a/addon/-private/system/references/belongs-to.js b/addon/-private/system/references/belongs-to.js index 3bf43446082..7f0deb237ea 100644 --- a/addon/-private/system/references/belongs-to.js +++ b/addon/-private/system/references/belongs-to.js @@ -1,5 +1,5 @@ +import { resolve } from 'rsvp'; import Model from '../model/model'; -import Ember from 'ember'; import Reference from './reference'; import isEnabled from '../../features'; @@ -240,7 +240,7 @@ BelongsToReference.prototype.meta = function() { @return {Promise} A promise that resolves with the new value in this belongs-to relationship. */ BelongsToReference.prototype.push = function(objectOrPromise) { - return Ember.RSVP.resolve(objectOrPromise).then((data) => { + return resolve(objectOrPromise).then((data) => { let record; if (data instanceof Model) { diff --git a/addon/-private/system/references/has-many.js b/addon/-private/system/references/has-many.js index 9f08a7f5e77..e60cc5b7f47 100644 --- a/addon/-private/system/references/has-many.js +++ b/addon/-private/system/references/has-many.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { A } from '@ember/array'; +import { resolve } from 'rsvp'; +import { get } from '@ember/object'; import Reference from './reference'; import { DEBUG } from '@glimmer/env'; import { deprecate } from '@ember/debug'; @@ -6,11 +8,6 @@ import { assertPolymorphicType } from 'ember-data/-debug'; import isEnabled from '../../features'; -const { - RSVP: { resolve }, - get -} = Ember; - /** A HasManyReference is a low level API that allows users and addon author to perform meta-operations on a has-many relationship. @@ -284,7 +281,7 @@ HasManyReference.prototype.push = function(objectOrPromise) { }); } else { let records = this.store.push(payload); - internalModels = Ember.A(records).mapBy('_internalModel'); + internalModels = A(records).mapBy('_internalModel'); if (DEBUG) { internalModels.forEach((internalModel) => { diff --git a/addon/-private/system/references/record.js b/addon/-private/system/references/record.js index 6b2b77b0502..bace8a75d6d 100644 --- a/addon/-private/system/references/record.js +++ b/addon/-private/system/references/record.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { resolve } from 'rsvp'; import Reference from './reference'; /** @@ -90,7 +90,7 @@ RecordReference.prototype.remoteType = function() { @return Promise a promise for the value (record or relationship) */ RecordReference.prototype.push = function(objectOrPromise) { - return Ember.RSVP.resolve(objectOrPromise).then((data) => { + return resolve(objectOrPromise).then((data) => { return this.store.push(data); }); }; diff --git a/addon/-private/system/relationship-meta.js b/addon/-private/system/relationship-meta.js index bb9763ae145..740eff604ee 100644 --- a/addon/-private/system/relationship-meta.js +++ b/addon/-private/system/relationship-meta.js @@ -1,4 +1,4 @@ -import {singularize} from 'ember-inflector'; +import { singularize } from 'ember-inflector'; import normalizeModelName from './normalize-model-name'; import { DEBUG } from '@glimmer/env'; diff --git a/addon/-private/system/relationships/belongs-to.js b/addon/-private/system/relationships/belongs-to.js index 445d01ffb4e..043d468f02d 100644 --- a/addon/-private/system/relationships/belongs-to.js +++ b/addon/-private/system/relationships/belongs-to.js @@ -1,5 +1,5 @@ -import Ember from 'ember'; -import { assert, warn } from '@ember/debug'; +import { computed } from '@ember/object'; +import { assert, warn, inspect } from '@ember/debug'; import normalizeModelName from "../normalize-model-name"; /** @@ -88,7 +88,7 @@ export default function belongsTo(modelName, options) { userEnteredModelName = normalizeModelName(userEnteredModelName); } - assert("The first argument to DS.belongsTo must be a string representing a model type key, not an instance of " + Ember.inspect(userEnteredModelName) + ". E.g., to define a relation to the Person model, use DS.belongsTo('person')", typeof userEnteredModelName === 'string' || typeof userEnteredModelName === 'undefined'); + assert("The first argument to DS.belongsTo must be a string representing a model type key, not an instance of " + inspect(userEnteredModelName) + ". E.g., to define a relation to the Person model, use DS.belongsTo('person')", typeof userEnteredModelName === 'string' || typeof userEnteredModelName === 'undefined'); opts = opts || {}; @@ -101,7 +101,7 @@ export default function belongsTo(modelName, options) { key: null }; - return Ember.computed({ + return computed({ get(key) { if (opts.hasOwnProperty('serialize')) { warn(`You provided a serialize option on the "${key}" property in the "${this._internalModel.modelName}" class, this belongs in the serializer. See DS.Serializer and it's implementations https://emberjs.com/api/data/classes/DS.Serializer.html`, false, { diff --git a/addon/-private/system/relationships/ext.js b/addon/-private/system/relationships/ext.js index 528930717a6..872d9f0e1f2 100644 --- a/addon/-private/system/relationships/ext.js +++ b/addon/-private/system/relationships/ext.js @@ -1,3 +1,7 @@ +import { A } from '@ember/array'; +import { computed } from '@ember/object'; +import MapWithDefault from '@ember/map/with-default'; +import Map from '@ember/map'; import Ember from 'ember'; import { assert } from '@ember/debug'; import { @@ -5,10 +9,7 @@ import { relationshipFromMeta } from "../relationship-meta"; -const Map = Ember.Map; -const MapWithDefault = Ember.MapWithDefault; - -export const relationshipsDescriptor = Ember.computed(function() { +export const relationshipsDescriptor = computed(function() { if (Ember.testing === true && relationshipsDescriptor._cacheable === true) { relationshipsDescriptor._cacheable = false; } @@ -35,13 +36,13 @@ export const relationshipsDescriptor = Ember.computed(function() { return map; }).readOnly(); -export const relatedTypesDescriptor = Ember.computed(function() { +export const relatedTypesDescriptor = computed(function() { if (Ember.testing === true && relatedTypesDescriptor._cacheable === true) { relatedTypesDescriptor._cacheable = false; } let modelName; - let types = Ember.A(); + let types = A(); // Loop through each computed property on the class, // and create an array of the unique types involved @@ -63,7 +64,7 @@ export const relatedTypesDescriptor = Ember.computed(function() { return types; }).readOnly(); -export const relationshipsByNameDescriptor = Ember.computed(function() { +export const relationshipsByNameDescriptor = computed(function() { let map = Map.create(); this.eachComputedProperty((name, meta) => { diff --git a/addon/-private/system/relationships/has-many.js b/addon/-private/system/relationships/has-many.js index 7327331aaf5..ed353e3bd27 100644 --- a/addon/-private/system/relationships/has-many.js +++ b/addon/-private/system/relationships/has-many.js @@ -2,13 +2,13 @@ @module ember-data */ -import Ember from 'ember'; -import { assert } from '@ember/debug'; +import { A } from '@ember/array'; + +import { get, computed } from '@ember/object'; +import { assert, inspect } from '@ember/debug'; import normalizeModelName from "../normalize-model-name"; import isArrayLike from "../is-array-like"; -const { get } = Ember; - /** `DS.hasMany` is used to define One-To-Many and Many-To-Many relationships on a [DS.Model](/api/data/classes/DS.Model.html). @@ -121,7 +121,7 @@ export default function hasMany(type, options) { type = undefined; } - assert(`The first argument to DS.hasMany must be a string representing a model type key, not an instance of ${Ember.inspect(type)}. E.g., to define a relation to the Comment model, use DS.hasMany('comment')`, typeof type === 'string' || typeof type === 'undefined'); + assert(`The first argument to DS.hasMany must be a string representing a model type key, not an instance of ${inspect(type)}. E.g., to define a relation to the Comment model, use DS.hasMany('comment')`, typeof type === 'string' || typeof type === 'undefined'); options = options || {}; @@ -142,14 +142,14 @@ export default function hasMany(type, options) { key: null }; - return Ember.computed({ + return computed({ get(key) { return this._internalModel._relationships.get(key).getRecords(); }, set(key, records) { assert(`You must pass an array of records to set a hasMany relationship`, isArrayLike(records)); - assert(`All elements of a hasMany relationship must be instances of DS.Model, you passed ${Ember.inspect(records)}`, (function() { - return Ember.A(records).every((record) => record.hasOwnProperty('_internalModel') === true); + assert(`All elements of a hasMany relationship must be instances of DS.Model, you passed ${inspect(records)}`, (function() { + return A(records).every((record) => record.hasOwnProperty('_internalModel') === true); })()); let relationship = this._internalModel._relationships.get(key); diff --git a/addon/-private/system/relationships/relationship-payloads-manager.js b/addon/-private/system/relationships/relationship-payloads-manager.js index 60f939e3dfb..3bf03430a0b 100644 --- a/addon/-private/system/relationships/relationship-payloads-manager.js +++ b/addon/-private/system/relationships/relationship-payloads-manager.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; import RelationshipPayloads from './relationship-payloads'; -const get = Ember.get; - /** Manages relationship payloads for a given store, for uninitialized relationships. Acts as a single source of truth (of payloads) for both sides diff --git a/addon/-private/system/relationships/state/belongs-to.js b/addon/-private/system/relationships/state/belongs-to.js index 79ab00e7700..82a4d968856 100644 --- a/addon/-private/system/relationships/state/belongs-to.js +++ b/addon/-private/system/relationships/state/belongs-to.js @@ -1,7 +1,5 @@ -import Ember from 'ember'; -import { - assert -} from '@ember/debug'; +import { Promise as EmberPromise } from 'rsvp'; +import { assert, inspect } from '@ember/debug'; import { assertPolymorphicType } from 'ember-data/-debug'; import { PromiseObject @@ -131,7 +129,7 @@ export default class BelongsToRelationship extends Relationship { if (this.inverseInternalModel) { return this.store._findByInternalModel(this.inverseInternalModel); } else { - return Ember.RSVP.Promise.resolve(null); + return EmberPromise.resolve(null); } } @@ -188,7 +186,7 @@ export default class BelongsToRelationship extends Relationship { } updateData(data, initial) { - assert(`Ember Data expected the data for the ${this.key} relationship on a ${this.internalModel.toString()} to be in a JSON API format and include an \`id\` and \`type\` property but it found ${Ember.inspect(data)}. Please check your serializer and make sure it is serializing the relationship payload into a JSON API format.`, data === null || data.id !== undefined && data.type !== undefined); + assert(`Ember Data expected the data for the ${this.key} relationship on a ${this.internalModel.toString()} to be in a JSON API format and include an \`id\` and \`type\` property but it found ${inspect(data)}. Please check your serializer and make sure it is serializing the relationship payload into a JSON API format.`, data === null || data.id !== undefined && data.type !== undefined); let internalModel = this.store._pushResourceIdentifier(this, data); if (initial) { this.setInitialCanonicalInternalModel(internalModel); diff --git a/addon/-private/system/relationships/state/create.js b/addon/-private/system/relationships/state/create.js index 0acc2b86adf..1039683f91e 100644 --- a/addon/-private/system/relationships/state/create.js +++ b/addon/-private/system/relationships/state/create.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; import ManyRelationship from "./has-many"; import BelongsToRelationship from "./belongs-to"; import { DEBUG } from '@glimmer/env'; -const { get } = Ember; - function shouldFindInverse(relationshipMeta) { let options = relationshipMeta.options; return !(options && options.inverse === null); diff --git a/addon/-private/system/relationships/state/relationship.js b/addon/-private/system/relationships/state/relationship.js index 140d997d3ca..90ce273b424 100644 --- a/addon/-private/system/relationships/state/relationship.js +++ b/addon/-private/system/relationships/state/relationship.js @@ -1,10 +1,9 @@ /* global heimdall */ +import { guidFor } from '@ember/object/internals'; + import { assert, warn } from '@ember/debug'; import OrderedSet from '../../ordered-set'; import _normalizeLink from '../../normalize-link'; -import Ember from 'ember'; - -const { guidFor } = Ember; const { addCanonicalInternalModel, diff --git a/addon/-private/system/snapshot.js b/addon/-private/system/snapshot.js index 646f79f9148..98f4842d536 100644 --- a/addon/-private/system/snapshot.js +++ b/addon/-private/system/snapshot.js @@ -2,11 +2,11 @@ @module ember-data */ -import Ember from 'ember'; +import { copy } from '@ember/object/internals'; -const { - get -} = Ember; +import { inspect } from '@ember/debug'; +import EmberError from '@ember/error'; +import { get } from '@ember/object'; /** @class Snapshot @@ -110,7 +110,7 @@ export default class Snapshot { if (keyName in this._attributes) { return this._attributes[keyName]; } - throw new Ember.Error("Model '" + Ember.inspect(this.record) + "' has no attribute named '" + keyName + "' defined."); + throw new EmberError("Model '" + inspect(this.record) + "' has no attribute named '" + keyName + "' defined."); } /** @@ -127,7 +127,7 @@ export default class Snapshot { @return {Object} All attributes of the current snapshot */ attributes() { - return Ember.copy(this._attributes); + return copy(this._attributes); } /** @@ -150,7 +150,7 @@ export default class Snapshot { for (let i=0, length = changedAttributeKeys.length; i < length; i++) { let key = changedAttributeKeys[i]; - changedAttributes[key] = Ember.copy(this._changedAttributes[key]); + changedAttributes[key] = copy(this._changedAttributes[key]); } return changedAttributes; @@ -206,7 +206,7 @@ export default class Snapshot { relationship = this._internalModel._relationships.get(keyName); if (!(relationship && relationship.relationshipMeta.kind === 'belongsTo')) { - throw new Ember.Error("Model '" + Ember.inspect(this.record) + "' has no belongsTo relationship named '" + keyName + "' defined."); + throw new EmberError("Model '" + inspect(this.record) + "' has no belongsTo relationship named '" + keyName + "' defined."); } hasData = get(relationship, 'hasData'); @@ -277,7 +277,7 @@ export default class Snapshot { relationship = this._internalModel._relationships.get(keyName); if (!(relationship && relationship.relationshipMeta.kind === 'hasMany')) { - throw new Ember.Error("Model '" + Ember.inspect(this.record) + "' has no hasMany relationship named '" + keyName + "' defined."); + throw new EmberError("Model '" + inspect(this.record) + "' has no hasMany relationship named '" + keyName + "' defined."); } hasData = get(relationship, 'hasData'); diff --git a/addon/-private/system/store.js b/addon/-private/system/store.js index 1ff3c878fa0..3e4698b17c0 100644 --- a/addon/-private/system/store.js +++ b/addon/-private/system/store.js @@ -2,14 +2,21 @@ @module ember-data */ +import { A } from '@ember/array'; + +import { copy } from '@ember/object/internals'; +import EmberError from '@ember/error'; +import MapWithDefault from '@ember/map/with-default'; +import { run as emberRun } from '@ember/runloop'; +import { set, get, computed } from '@ember/object'; +import RSVP from 'rsvp'; +import Service from '@ember/service'; +import { typeOf, isPresent, isNone } from '@ember/utils'; + import Ember from 'ember'; import { InvalidError } from '../adapters/errors'; import { instrument } from 'ember-data/-debug'; -import { - assert, - deprecate, - warn -} from '@ember/debug'; +import { assert, deprecate, warn, inspect } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import Model from './model/model'; import normalizeModelName from "./normalize-model-name"; @@ -50,22 +57,8 @@ import isEnabled from '../features'; const badIdFormatAssertion = '`id` passed to `findRecord()` has to be non-empty string or number'; const { - A, _Backburner: Backburner, - computed, - copy, - ENV, - Error: EmberError, - get, - inspect, - isNone, - isPresent, - MapWithDefault, - run: emberRun, - set, - RSVP, - Service, - typeOf + ENV } = Ember; const { Promise } = RSVP; diff --git a/addon/-private/system/store/common.js b/addon/-private/system/store/common.js index 8ce2777e417..e0548b71467 100644 --- a/addon/-private/system/store/common.js +++ b/addon/-private/system/store/common.js @@ -1,8 +1,4 @@ -import Ember from 'ember'; - -const { - get -} = Ember; +import { get } from '@ember/object'; const { __bind, diff --git a/addon/-private/system/store/container-instance-cache.js b/addon/-private/system/store/container-instance-cache.js index 82768c827ae..ba0311d6cca 100644 --- a/addon/-private/system/store/container-instance-cache.js +++ b/addon/-private/system/store/container-instance-cache.js @@ -1,6 +1,5 @@ /* global heimdall */ -import Ember from 'ember'; -const { set } = Ember; +import { set } from '@ember/object'; const { __get, diff --git a/addon/-private/system/store/finders.js b/addon/-private/system/store/finders.js index 30c57ffe73f..0103a0084a1 100644 --- a/addon/-private/system/store/finders.js +++ b/addon/-private/system/store/finders.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import { A } from '@ember/array'; +import { Promise } from 'rsvp'; import { assert, warn } from '@ember/debug'; import { _bind, @@ -9,8 +10,6 @@ import { import { normalizeResponseHelper } from "./serializer-response"; import { serializerForAdapter } from "./serializers"; -const { Promise } = Ember.RSVP; - function payloadIsNotBlank(adapterPayload) { if (Array.isArray(adapterPayload)) { return true; @@ -50,7 +49,7 @@ export function _find(adapter, store, modelClass, id, internalModel, options) { } export function _findMany(adapter, store, modelName, ids, internalModels) { - let snapshots = Ember.A(internalModels).invoke('createSnapshot'); + let snapshots = A(internalModels).invoke('createSnapshot'); let modelClass = store.modelFor(modelName); // `adapter.findMany` gets the modelClass still let promise = adapter.findMany(store, modelClass, ids, snapshots); let label = `DS: Handle Adapter#findMany of '${modelName}'`; diff --git a/addon/-private/system/store/serializer-response.js b/addon/-private/system/store/serializer-response.js index 1a264253d49..8a75dde9644 100644 --- a/addon/-private/system/store/serializer-response.js +++ b/addon/-private/system/store/serializer-response.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { isEmpty } from '@ember/utils'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; @@ -79,7 +79,7 @@ export function normalizeResponseHelper(serializer, store, modelClass, payload, if (DEBUG) { validationErrors = validateDocumentStructure(normalizedResponse); } - assert(`normalizeResponse must return a valid JSON API document:\n\t* ${validationErrors.join('\n\t* ')}`, Ember.isEmpty(validationErrors)); + assert(`normalizeResponse must return a valid JSON API document:\n\t* ${validationErrors.join('\n\t* ')}`, isEmpty(validationErrors)); return normalizedResponse; } diff --git a/addon/-private/utils.js b/addon/-private/utils.js index a60adb144c5..234af6842fa 100644 --- a/addon/-private/utils.js +++ b/addon/-private/utils.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const get = Ember.get; +import { getOwner as emberGetOwner } from '@ember/application'; +import { get } from '@ember/object'; /* Check if the passed model has a `type` attribute or a relationship named `type`. @@ -20,8 +19,8 @@ function modelHasAttributeOrRelationshipNamedType(modelClass) { function getOwner(context) { let owner; - if (Ember.getOwner) { - owner = Ember.getOwner(context); + if (emberGetOwner) { + owner = emberGetOwner(context); } else if (context.container) { owner = context.container; } diff --git a/addon/adapter.js b/addon/adapter.js index 64b4e8c6be6..f86ed67fe70 100644 --- a/addon/adapter.js +++ b/addon/adapter.js @@ -2,7 +2,7 @@ @module ember-data */ -import Ember from 'ember'; +import EmberObject from '@ember/object'; /** An adapter is an object that receives requests from a store and @@ -60,7 +60,7 @@ import Ember from 'ember'; @extends Ember.Object */ -export default Ember.Object.extend({ +export default EmberObject.extend({ /** If you would like your adapter to use a custom serializer you can diff --git a/addon/adapters/json-api.js b/addon/adapters/json-api.js index 48610dec134..3d6d986a305 100644 --- a/addon/adapters/json-api.js +++ b/addon/adapters/json-api.js @@ -2,13 +2,13 @@ /** @module ember-data */ - -import Ember from 'ember'; -import { pluralize } from 'ember-inflector'; +import { dasherize } from '@ember/string'; +import $ from 'jquery'; import RESTAdapter from "./rest"; import { isEnabled } from '../-private'; import { deprecate } from '@ember/debug'; import { instrument } from 'ember-data/-debug'; +import { pluralize } from 'ember-inflector'; /** The `JSONAPIAdapter` is the default adapter used by Ember Data. It @@ -170,7 +170,7 @@ const JSONAPIAdapter = RESTAdapter.extend({ let token = heimdall.start('json.parse'); let json; try { - json = Ember.$.parseJSON(payload); + json = $.parseJSON(payload); } catch (e) { json = payload; } @@ -258,7 +258,7 @@ const JSONAPIAdapter = RESTAdapter.extend({ }, pathForType(modelName) { - let dasherized = Ember.String.dasherize(modelName); + let dasherized = dasherize(modelName); return pluralize(dasherized); }, diff --git a/addon/adapters/rest.js b/addon/adapters/rest.js index b58f870b6a4..e15153bba8f 100644 --- a/addon/adapters/rest.js +++ b/addon/adapters/rest.js @@ -3,7 +3,12 @@ @module ember-data */ -import Ember from 'ember'; +import $ from 'jquery'; + +import { Promise as EmberPromise } from 'rsvp'; +import MapWithDefault from '@ember/map/with-default'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; import Adapter from "../adapter"; import { parseResponseHeaders, @@ -23,13 +28,7 @@ import { instrument } from 'ember-data/-debug'; import { warn, deprecate } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -const { - MapWithDefault, - get, - run -} = Ember; - -const Promise = Ember.RSVP.Promise; +const Promise = EmberPromise; /** The REST adapter allows your store to communicate with an HTTP server by @@ -1083,7 +1082,7 @@ const RESTAdapter = Adapter.extend(BuildURLMixin, { @param {Object} options jQuery ajax options to be used for the ajax request */ _ajaxRequest(options) { - Ember.$.ajax(options); + $.ajax(options); }, /** @@ -1107,7 +1106,7 @@ const RESTAdapter = Adapter.extend(BuildURLMixin, { let token = heimdall.start('json.parse'); let json; try { - json = Ember.$.parseJSON(payload); + json = $.parseJSON(payload); } catch (e) { json = payload; } @@ -1142,7 +1141,7 @@ const RESTAdapter = Adapter.extend(BuildURLMixin, { let json = responseText; try { - json = Ember.$.parseJSON(responseText); + json = $.parseJSON(responseText); } catch (e) { // ignored } @@ -1465,7 +1464,7 @@ if (isEnabled('ds-improved-ajax')) { let token = heimdall.start('json.parse'); let json; try { - json = Ember.$.parseJSON(payload); + json = $.parseJSON(payload); } catch (e) { json = payload; } diff --git a/addon/attr.js b/addon/attr.js index e2695837c53..9436a5ac818 100644 --- a/addon/attr.js +++ b/addon/attr.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import { deprecate } from '@ember/debug'; /** @@ -134,7 +134,7 @@ export default function attr(type, options) { options: options }; - return Ember.computed({ + return computed({ get(key) { let internalModel = this._internalModel; if (hasValue(internalModel, key)) { diff --git a/addon/index.js b/addon/index.js index a6c0497d9d9..9488e79a16f 100644 --- a/addon/index.js +++ b/addon/index.js @@ -1,3 +1,4 @@ +import EmberError from '@ember/error'; import Ember from "ember"; import { deprecate } from '@ember/debug'; @@ -8,7 +9,7 @@ import { deprecate } from '@ember/debug'; */ if (Ember.VERSION.match(/^1\.([0-9]|1[0-2])\./)) { - throw new Ember.Error("Ember Data requires at least Ember 1.13.0, but you have " + + throw new EmberError("Ember Data requires at least Ember 1.13.0, but you have " + Ember.VERSION + ". Please upgrade your version of Ember, then upgrade Ember Data."); } diff --git a/addon/serializer.js b/addon/serializer.js index 136692d1375..ebf99eaba7a 100644 --- a/addon/serializer.js +++ b/addon/serializer.js @@ -2,7 +2,7 @@ @module ember-data */ -import Ember from 'ember'; +import EmberObject from '@ember/object'; /** `DS.Serializer` is an abstract base class that you should override in your @@ -24,7 +24,7 @@ import Ember from 'ember'; @extends Ember.Object */ -export default Ember.Object.extend({ +export default EmberObject.extend({ /** The `store` property is the application's `store` that contains diff --git a/addon/serializers/embedded-records-mixin.js b/addon/serializers/embedded-records-mixin.js index e640b4d5b7e..8bd9c347e3c 100644 --- a/addon/serializers/embedded-records-mixin.js +++ b/addon/serializers/embedded-records-mixin.js @@ -1,9 +1,10 @@ -import Ember from 'ember'; +import { typeOf } from '@ember/utils'; +import { A } from '@ember/array'; +import Mixin from '@ember/object/mixin'; +import { camelize } from '@ember/string'; +import { set, get } from '@ember/object'; import { warn } from '@ember/debug'; -const { get, set } = Ember; -const { camelize } = Ember.String; - /** ## Using Embedded Records @@ -96,7 +97,7 @@ const { camelize } = Ember.String; @class EmbeddedRecordsMixin @namespace DS */ -export default Ember.Mixin.create({ +export default Mixin.create({ /** Normalize the record and recursively normalize/extract all the embedded records @@ -408,7 +409,7 @@ export default Ember.Mixin.create({ let serializedKey = this.keyForAttribute(relationship.key, 'serialize'); let hasMany = snapshot.hasMany(relationship.key); - json[serializedKey] = Ember.A(hasMany).map(function (recordSnapshot) { + json[serializedKey] = A(hasMany).map(function (recordSnapshot) { // // I'm sure I'm being utterly naive here. Propably id is a configurate property and // type too, and the modelName has to be normalized somehow. @@ -426,7 +427,7 @@ export default Ember.Mixin.create({ warn( `The embedded relationship '${serializedKey}' is undefined for '${snapshot.modelName}' with id '${snapshot.id}'. Please include it in your original payload.`, - Ember.typeOf(snapshot.hasMany(relationship.key)) !== 'undefined', + typeOf(snapshot.hasMany(relationship.key)) !== 'undefined', { id: 'ds.serializer.embedded-relationship-undefined' } ); @@ -438,7 +439,7 @@ export default Ember.Mixin.create({ */ _generateSerializedHasMany(snapshot, relationship) { let hasMany = snapshot.hasMany(relationship.key); - let manyArray = Ember.A(hasMany); + let manyArray = A(hasMany); let ret = new Array(manyArray.length); for (let i = 0; i < manyArray.length; i++) { diff --git a/addon/serializers/json-api.js b/addon/serializers/json-api.js index e7cd457bbd0..45aee3d5877 100644 --- a/addon/serializers/json-api.js +++ b/addon/serializers/json-api.js @@ -2,7 +2,9 @@ @module ember-data */ -import Ember from 'ember'; +import { typeOf, isNone } from '@ember/utils'; + +import { dasherize } from '@ember/string'; import { pluralize, singularize } from 'ember-inflector'; import { assert, deprecate, warn } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; @@ -10,8 +12,6 @@ import { DEBUG } from '@glimmer/env'; import JSONSerializer from './json'; import { normalizeModelName, isEnabled } from '../-private'; -const dasherize = Ember.String.dasherize; - /** Ember Data 2.0 Serializer: @@ -138,7 +138,7 @@ const JSONAPISerializer = JSONSerializer.extend({ */ _normalizeDocumentHelper(documentHash) { - if (Ember.typeOf(documentHash.data) === 'object') { + if (typeOf(documentHash.data) === 'object') { documentHash.data = this._normalizeResourceHelper(documentHash.data); } else if (Array.isArray(documentHash.data)) { let ret = new Array(documentHash.data.length); @@ -202,7 +202,7 @@ const JSONAPISerializer = JSONSerializer.extend({ @private */ _normalizeResourceHelper(resourceHash) { - assert(this.warnMessageForUndefinedType(), !Ember.isNone(resourceHash.type), { + assert(this.warnMessageForUndefinedType(), !isNone(resourceHash.type), { id: 'ds.serializer.type-is-undefined' }); @@ -303,7 +303,7 @@ const JSONAPISerializer = JSONSerializer.extend({ extractRelationship(relationshipHash) { - if (Ember.typeOf(relationshipHash.data) === 'object') { + if (typeOf(relationshipHash.data) === 'object') { relationshipHash.data = this._normalizeRelationshipDataHelper(relationshipHash.data); } @@ -742,7 +742,7 @@ if (DEBUG) { JSONAPISerializer.reopen({ willMergeMixin(props) { let constructor = this.constructor; - warn(`You've defined 'extractMeta' in ${constructor.toString()} which is not used for serializers extending JSONAPISerializer. Read more at https://emberjs.com/api/data/classes/DS.JSONAPISerializer.html#toc_customizing-meta on how to customize meta when using JSON API.`, Ember.isNone(props.extractMeta) || props.extractMeta === JSONSerializer.prototype.extractMeta, { + warn(`You've defined 'extractMeta' in ${constructor.toString()} which is not used for serializers extending JSONAPISerializer. Read more at https://emberjs.com/api/data/classes/DS.JSONAPISerializer.html#toc_customizing-meta on how to customize meta when using JSON API.`, isNone(props.extractMeta) || props.extractMeta === JSONSerializer.prototype.extractMeta, { id: 'ds.serializer.json-api.extractMeta' }); warn('The JSONAPISerializer does not work with the EmbeddedRecordsMixin because the JSON API spec does not describe how to format embedded resources.', !props.isEmbeddedRecordsMixin, { diff --git a/addon/serializers/json.js b/addon/serializers/json.js index 8547a42f886..2b34ef1ec82 100644 --- a/addon/serializers/json.js +++ b/addon/serializers/json.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { assign, merge } from '@ember/polyfills'; +import { isNone, typeOf } from '@ember/utils'; +import { get } from '@ember/object'; import { assert, deprecate, warn } from '@ember/debug'; import Serializer from "../serializer"; import { @@ -10,9 +12,7 @@ import { isEnabled } from '../-private'; -const get = Ember.get; -const isNone = Ember.isNone; -const assign = Ember.assign || Ember.merge; +const emberAssign = assign || merge; /** Ember Data 2.0 Serializer: @@ -458,7 +458,7 @@ const JSONSerializer = Serializer.extend({ let meta = this.extractMeta(store, primaryModelClass, payload); if (meta) { - assert('The `meta` returned from `extractMeta` has to be an object, not "' + Ember.typeOf(meta) + '".', Ember.typeOf(meta) === 'object'); + assert('The `meta` returned from `extractMeta` has to be an object, not "' + typeOf(meta) + '".', typeOf(meta) === 'object'); documentHash.meta = meta; } @@ -530,7 +530,7 @@ const JSONSerializer = Serializer.extend({ if (resourceHash) { this.normalizeUsingDeclaredMapping(modelClass, resourceHash); - if (Ember.typeOf(resourceHash.links) === 'object') { + if (typeOf(resourceHash.links) === 'object') { this.normalizeUsingDeclaredMapping(modelClass, resourceHash.links); } @@ -596,13 +596,13 @@ const JSONSerializer = Serializer.extend({ @return {Object} */ extractRelationship(relationshipModelName, relationshipHash) { - if (Ember.isNone(relationshipHash)) { return null; } + if (isNone(relationshipHash)) { return null; } /* When `relationshipHash` is an object it usually means that the relationship is polymorphic. It could however also be embedded resources that the EmbeddedRecordsMixin has be able to process. */ - if (Ember.typeOf(relationshipHash) === 'object') { + if (typeOf(relationshipHash) === 'object') { if (relationshipHash.id) { relationshipHash.id = coerceId(relationshipHash.id); } @@ -687,7 +687,7 @@ const JSONSerializer = Serializer.extend({ data = this.extractRelationship(relationshipMeta.type, relationshipHash); } } else if (relationshipMeta.kind === 'hasMany') { - if (!Ember.isNone(relationshipHash)) { + if (!isNone(relationshipHash)) { data = new Array(relationshipHash.length); for (let i = 0, l = relationshipHash.length; i < l; i++) { let item = relationshipHash[i]; @@ -1085,7 +1085,7 @@ const JSONSerializer = Serializer.extend({ @param {Object} options */ serializeIntoHash(hash, typeClass, snapshot, options) { - assign(hash, this.serialize(snapshot, options)); + emberAssign(hash, this.serialize(snapshot, options)); }, /** diff --git a/addon/serializers/rest.js b/addon/serializers/rest.js index 761ff6405c7..68495915dbf 100644 --- a/addon/serializers/rest.js +++ b/addon/serializers/rest.js @@ -2,15 +2,21 @@ @module ember-data */ -import Ember from 'ember'; +import { typeOf, isNone } from '@ember/utils'; + +import { makeArray } from '@ember/array'; +import { camelize } from '@ember/string'; import { singularize } from "ember-inflector"; import { assert, deprecate, warn } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import JSONSerializer from "../serializers/json"; -import { coerceId, modelHasAttributeOrRelationshipNamedType, normalizeModelName, isEnabled } from '../-private'; - -const { camelize } = Ember.String; +import { + coerceId, + modelHasAttributeOrRelationshipNamedType, + normalizeModelName, + isEnabled +} from '../-private'; /** Normally, applications will use the `RESTSerializer` by implementing @@ -185,7 +191,7 @@ const RESTSerializer = JSONSerializer.extend({ let modelClass = store.modelFor(modelName); let serializer = store.serializerFor(modelName); - Ember.makeArray(arrayHash).forEach((hash) => { + makeArray(arrayHash).forEach((hash) => { let { data, included } = this._normalizePolymorphicRecord(store, hash, prop, modelClass, serializer); documentHash.data.push(data); if (included) { @@ -249,7 +255,7 @@ const RESTSerializer = JSONSerializer.extend({ let meta = this.extractMeta(store, primaryModelClass, payload); if (meta) { - assert('The `meta` returned from `extractMeta` has to be an object, not "' + Ember.typeOf(meta) + '".', Ember.typeOf(meta) === 'object'); + assert('The `meta` returned from `extractMeta` has to be an object, not "' + typeOf(meta) + '".', typeOf(meta) === 'object'); documentHash.meta = meta; } @@ -423,7 +429,7 @@ const RESTSerializer = JSONSerializer.extend({ var type = store.modelFor(modelName); var typeSerializer = store.serializerFor(type.modelName); - Ember.makeArray(payload[prop]).forEach(hash => { + makeArray(payload[prop]).forEach(hash => { let { data, included } = typeSerializer.normalize(type, hash, prop); documentHash.data.push(data); if (included) { @@ -586,6 +592,7 @@ const RESTSerializer = JSONSerializer.extend({ ```app/serializers/application.js import DS from 'ember-data'; + import { pluralize } from 'ember-inflector'; export default DS.RESTSerializer.extend({ serialize(snapshot, options) { @@ -614,7 +621,7 @@ const RESTSerializer = JSONSerializer.extend({ } function serverHasManyName(name) { - return serverAttributeName(name.singularize()) + "_IDS"; + return serverAttributeName(singularize(name)) + "_IDS"; } ``` @@ -770,7 +777,7 @@ const RESTSerializer = JSONSerializer.extend({ typeKey = key; } - if (Ember.isNone(belongsTo)) { + if (isNone(belongsTo)) { json[typeKey] = null; } else { if (isEnabled("ds-payload-type-hooks")) { diff --git a/addon/transforms/boolean.js b/addon/transforms/boolean.js index 51fc34d783a..4dfeb4a834c 100644 --- a/addon/transforms/boolean.js +++ b/addon/transforms/boolean.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { isNone } from '@ember/utils'; import Transform from './transform'; -const { isNone } = Ember; - /** The `DS.BooleanTransform` class is used to serialize and deserialize boolean attributes on Ember Data record objects. This transform is diff --git a/addon/transforms/number.js b/addon/transforms/number.js index f35dcde9be2..4bc294e9d88 100644 --- a/addon/transforms/number.js +++ b/addon/transforms/number.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { isEmpty as empty } from '@ember/utils'; import Transform from './transform'; -const empty = Ember.isEmpty; - function isNumber(value) { return value === value && value !== Infinity && value !== -Infinity; } diff --git a/addon/transforms/string.js b/addon/transforms/string.js index c687d3499a7..2c071006920 100644 --- a/addon/transforms/string.js +++ b/addon/transforms/string.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { isNone as none } from '@ember/utils'; import Transform from './transform'; -const none = Ember.isNone; - /** The `DS.StringTransform` class is used to serialize and deserialize string attributes on Ember Data record objects. This transform is diff --git a/addon/transforms/transform.js b/addon/transforms/transform.js index a13cc3fe527..c8d2738374a 100644 --- a/addon/transforms/transform.js +++ b/addon/transforms/transform.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; /** The `DS.Transform` class is used to serialize and deserialize model @@ -67,7 +67,7 @@ import Ember from 'ember'; @class Transform @namespace DS */ -export default Ember.Object.extend({ +export default EmberObject.extend({ /** When given a deserialized value from a record attribute this method must return the serialized value. diff --git a/lib/babel-build.js b/lib/babel-build.js index 4cfbfc0dce7..4f36eadbb90 100644 --- a/lib/babel-build.js +++ b/lib/babel-build.js @@ -50,6 +50,7 @@ function babelOptions(libraryName, _options) { options.plugins = options.plugins.concat([ getDebugMacroPlugins(), + ['ember-modules-api-polyfill', { blacklist: { '@ember/debug': ['assert', 'deprecate', 'warn']} }], ['transform-es2015-modules-amd', { noInterop: true, loose: true }], 'transform-es2015-arrow-functions', 'transform-es2015-computed-properties', diff --git a/package.json b/package.json index c5dfb496c2f..4be10ec741c 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "license": "MIT", "dependencies": { "amd-name-resolver": "0.0.7", + "babel-plugin-ember-modules-api-polyfill": "^1.4.2", "babel-plugin-feature-flags": "^0.3.1", "babel-plugin-filter-imports": "^0.3.1", "babel-plugin-transform-es2015-block-scoping": "^6.24.1", @@ -36,7 +37,7 @@ "chalk": "^1.1.1", "co": "^4.6.0", "common-tags": "^1.4.0", - "ember-cli-babel": "^6.4.1", + "ember-cli-babel": "^6.7.2", "ember-cli-path-utils": "^1.0.0", "ember-cli-string-utils": "^1.0.0", "ember-cli-test-info": "^1.0.0", diff --git a/tests/dummy/app/app.js b/tests/dummy/app/app.js index c15f9359323..b3b2bd677e0 100644 --- a/tests/dummy/app/app.js +++ b/tests/dummy/app/app.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; +import Application from '@ember/application'; import Resolver from './resolver'; import loadInitializers from 'ember-load-initializers'; import config from './config/environment'; -const App = Ember.Application.extend({ +const App = Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, Resolver diff --git a/tests/dummy/app/router.js b/tests/dummy/app/router.js index 206b248415f..8f3740ce8a6 100644 --- a/tests/dummy/app/router.js +++ b/tests/dummy/app/router.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import EmberRouter from '@ember/routing/router'; import config from './config/environment'; -const Router = Ember.Router.extend({ +const Router = EmberRouter.extend({ location: config.locationType, rootURL: config.rootURL }); diff --git a/tests/dummy/app/routes/application/route.js b/tests/dummy/app/routes/application/route.js index 26d9f3124ec..6c74252aa1b 100644 --- a/tests/dummy/app/routes/application/route.js +++ b/tests/dummy/app/routes/application/route.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ }); diff --git a/tests/dummy/app/routes/index/route.js b/tests/dummy/app/routes/index/route.js index 26d9f3124ec..6c74252aa1b 100644 --- a/tests/dummy/app/routes/index/route.js +++ b/tests/dummy/app/routes/index/route.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ }); diff --git a/tests/dummy/app/routes/query/controller.js b/tests/dummy/app/routes/query/controller.js index 433dfb32b26..0c416ad7362 100644 --- a/tests/dummy/app/routes/query/controller.js +++ b/tests/dummy/app/routes/query/controller.js @@ -1,8 +1,4 @@ -import Ember from 'ember'; - -const { - Controller -} = Ember; +import Controller from '@ember/controller'; export default Controller.extend({ queryParams: ['limit', 'modelName', 'included', 'eagerMaterialize', 'eagerRelationships'], diff --git a/tests/dummy/app/routes/query/route.js b/tests/dummy/app/routes/query/route.js index 552f41f2e0d..104824bce44 100644 --- a/tests/dummy/app/routes/query/route.js +++ b/tests/dummy/app/routes/query/route.js @@ -1,5 +1,5 @@ /* global window, heimdall, console */ -import Ember from 'ember'; +import Route from '@ember/routing/route'; // fallback if no-heimdall happens to be present when loading the dummy app let heimdall = self.heimdall; @@ -11,10 +11,6 @@ if (typeof heimdall !== 'object') { } -const { - Route -} = Ember; - export default Route.extend({ queryParams: { limit: { diff --git a/tests/helpers/async.js b/tests/helpers/async.js index 75f10b9960d..5a0e787af55 100644 --- a/tests/helpers/async.js +++ b/tests/helpers/async.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import { all, resolve } from 'rsvp'; +import { run } from '@ember/runloop'; export function wait(callback, timeout) { let done = this.async(); @@ -14,7 +15,7 @@ export function wait(callback, timeout) { let args = arguments; let result; try { - result = Ember.run(() => callback.apply(this, args)); + result = run(() => callback.apply(this, args)); } finally { done(); } @@ -23,9 +24,9 @@ export function wait(callback, timeout) { } export function asyncEqual(a, b, message) { - return Ember.RSVP.all([ - Ember.RSVP.resolve(a), - Ember.RSVP.resolve(b) + return all([ + resolve(a), + resolve(b) ]).then(this.wait((array) => { this.push(array[0] === array[1], array[0], array[1], message); })); diff --git a/tests/helpers/custom-adapter.js b/tests/helpers/custom-adapter.js index 99ca0eaa207..d5cc031a2f9 100644 --- a/tests/helpers/custom-adapter.js +++ b/tests/helpers/custom-adapter.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { run } from '@ember/runloop'; import DS from 'ember-data'; export default function(env, adapterDefinition) { @@ -8,5 +8,5 @@ export default function(env, adapterDefinition) { } let store = env.store; env.registry.register('adapter:-custom', adapter); - Ember.run(() => store.set('adapter', '-custom')); + run(() => store.set('adapter', '-custom')); } diff --git a/tests/helpers/destroy-app.js b/tests/helpers/destroy-app.js index c3d4d1abb5d..e7f983bd14b 100644 --- a/tests/helpers/destroy-app.js +++ b/tests/helpers/destroy-app.js @@ -1,5 +1,5 @@ -import Ember from 'ember'; +import { run } from '@ember/runloop'; export default function destroyApp(application) { - Ember.run(application, 'destroy'); + run(application, 'destroy'); } diff --git a/tests/helpers/module-for-acceptance.js b/tests/helpers/module-for-acceptance.js index 76996fd0428..0daf9c9a7e2 100644 --- a/tests/helpers/module-for-acceptance.js +++ b/tests/helpers/module-for-acceptance.js @@ -1,10 +1,8 @@ +import { Promise } from 'rsvp'; import { module } from 'qunit'; -import Ember from 'ember'; import startApp from '../helpers/start-app'; import destroyApp from '../helpers/destroy-app'; -const { RSVP: { Promise } } = Ember; - export default function(name, options = {}) { module(name, { beforeEach() { diff --git a/tests/helpers/owner.js b/tests/helpers/owner.js index f4037cda0e4..8b8e3abee97 100644 --- a/tests/helpers/owner.js +++ b/tests/helpers/owner.js @@ -1,11 +1,12 @@ +import EmberObject from '@ember/object'; import Ember from 'ember'; let Owner; if (Ember._RegistryProxyMixin && Ember._ContainerProxyMixin) { - Owner = Ember.Object.extend(Ember._RegistryProxyMixin, Ember._ContainerProxyMixin); + Owner = EmberObject.extend(Ember._RegistryProxyMixin, Ember._ContainerProxyMixin); } else { - Owner = Ember.Object.extend(); + Owner = EmberObject.extend(); } export default Owner; diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index e098f1d5be6..37db37f585e 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -1,14 +1,15 @@ -import Ember from 'ember'; +import { run } from '@ember/runloop'; +import { merge } from '@ember/polyfills'; import Application from '../../app'; import config from '../../config/environment'; export default function startApp(attrs) { let application; - let attributes = Ember.merge({}, config.APP); - attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; + let attributes = merge({}, config.APP); + attributes = merge(attributes, attrs); // use defaults, but you can override; - Ember.run(() => { + run(() => { application = Application.create(attributes); application.setupForTesting(); application.injectTestHelpers(); diff --git a/tests/helpers/store.js b/tests/helpers/store.js index 10c9ca862cd..6803fd81b30 100644 --- a/tests/helpers/store.js +++ b/tests/helpers/store.js @@ -1,3 +1,4 @@ +import { dasherize } from '@ember/string'; import Ember from 'ember'; import DS from 'ember-data'; import Owner from './owner'; @@ -38,7 +39,7 @@ export default function setupStore(options) { } for (let prop in options) { - registry.register('model:' + Ember.String.dasherize(prop), options[prop]); + registry.register('model:' + dasherize(prop), options[prop]); } registry.register('service:store', DS.Store.extend({ diff --git a/tests/integration/adapter/build-url-mixin-test.js b/tests/integration/adapter/build-url-mixin-test.js index f3adddc18f2..b550bf85afe 100644 --- a/tests/integration/adapter/build-url-mixin-test.js +++ b/tests/integration/adapter/build-url-mixin-test.js @@ -1,15 +1,17 @@ +import { decamelize, underscore } from '@ember/string'; +import { copy } from '@ember/object/internals'; +import RSVP from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import { pluralize } from 'ember-inflector'; import { isEnabled } from 'ember-data/-private'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let env, store, adapter, Post, Comment, SuperUser; let passedUrl; -const { run } = Ember; module("integration/adapter/build-url-mixin - BuildURLMixin with RESTAdapter", { beforeEach() { @@ -46,13 +48,13 @@ function ajaxResponse(value) { adapter._makeRequest = function(request) { passedUrl = request.url; - return run(Ember.RSVP, 'resolve', Ember.copy(value, true)); + return run(RSVP, 'resolve', copy(value, true)); }; } else { adapter.ajax = function(url, verb, hash) { passedUrl = url; - return run(Ember.RSVP, 'resolve', Ember.copy(value, true)); + return run(RSVP, 'resolve', copy(value, true)); }; } } @@ -184,8 +186,8 @@ test('buildURL - with full URLs in links', function(assert) { test('buildURL - with camelized names', function(assert) { adapter.setProperties({ pathForType(type) { - let decamelized = Ember.String.decamelize(type); - return Ember.String.underscore(pluralize(decamelized)); + let decamelized = decamelize(type); + return underscore(pluralize(decamelized)); } }); diff --git a/tests/integration/adapter/find-all-test.js b/tests/integration/adapter/find-all-test.js index b58f70ca5c9..28ab5e1a574 100644 --- a/tests/integration/adapter/find-all-test.js +++ b/tests/integration/adapter/find-all-test.js @@ -1,13 +1,13 @@ -import {createStore} from 'dummy/tests/helpers/store'; +import { reject, resolve, defer } from 'rsvp'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; const { attr } = DS; -const { get, run } = Ember; -const { resolve, reject } = Ember.RSVP; let Person, store, allRecords, env; @@ -154,7 +154,7 @@ test("When all records for a type are requested, records that are created on the testInDebug('When all records are requested, assert the payload is not blank', (assert) => { env.registry.register('adapter:person', DS.Adapter.extend({ - findAll: () => Ember.RSVP.resolve({}) + findAll: () => resolve({}) })); assert.expectAssertion(() => { @@ -163,7 +163,7 @@ testInDebug('When all records are requested, assert the payload is not blank', ( }); test("isUpdating is true while records are fetched", function(assert) { - let findAllDeferred = Ember.RSVP.defer(); + let findAllDeferred = defer(); env.registry.register('adapter:person', DS.Adapter.extend({ findAll() { return findAllDeferred.promise; @@ -199,7 +199,7 @@ test("isUpdating is true while records are fetched", function(assert) { }); test("isUpdating is true while records are fetched in the background", function(assert) { - let findAllDeferred = Ember.RSVP.defer(); + let findAllDeferred = defer(); env.registry.register('adapter:person', DS.Adapter.extend({ findAll() { return findAllDeferred.promise; @@ -247,7 +247,7 @@ test("isUpdating is true while records are fetched in the background", function( }); test("isUpdating is false if records are not fetched in the background", function(assert) { - let findAllDeferred = Ember.RSVP.defer(); + let findAllDeferred = defer(); env.registry.register('adapter:person', DS.Adapter.extend({ findAll() { return findAllDeferred.promise; diff --git a/tests/integration/adapter/find-test.js b/tests/integration/adapter/find-test.js index 17b3225768f..4e5a98e5b14 100644 --- a/tests/integration/adapter/find-test.js +++ b/tests/integration/adapter/find-test.js @@ -1,12 +1,11 @@ +import { Promise, reject, defer, resolve } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { run } = Ember; const { attr } = DS; -const { reject, Promise } = Ember.RSVP; let Person, store, env; @@ -70,7 +69,7 @@ test("When a single record is requested, the adapter's find method should be cal }); test("When a single record is requested multiple times, all .findRecord() calls are resolved after the promise is resolved", function(assert) { - let deferred = Ember.RSVP.defer(); + let deferred = defer(); env.registry.register('adapter:person', DS.Adapter.extend({ findRecord() { @@ -143,7 +142,7 @@ test("When a single record is requested, and the promise is rejected, the record testInDebug('When a single record is requested, and the payload is blank', function(assert) { env.registry.register('adapter:person', DS.Adapter.extend({ - findRecord: () => Ember.RSVP.resolve({}) + findRecord: () => resolve({}) })); assert.expectAssertion(() => { @@ -154,7 +153,7 @@ testInDebug('When a single record is requested, and the payload is blank', funct testInDebug('When multiple records are requested, and the payload is blank', function(assert) { env.registry.register('adapter:person', DS.Adapter.extend({ coalesceFindRequests: true, - findMany: () => Ember.RSVP.resolve({}) + findMany: () => resolve({}) })); assert.expectAssertion(() => { diff --git a/tests/integration/adapter/json-api-adapter-test.js b/tests/integration/adapter/json-api-adapter-test.js index 313fc0ee939..acfcbf16fd4 100644 --- a/tests/integration/adapter/json-api-adapter-test.js +++ b/tests/integration/adapter/json-api-adapter-test.js @@ -1,7 +1,8 @@ +import RSVP from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; import DS from 'ember-data'; @@ -10,8 +11,6 @@ import { isEnabled } from 'ember-data/-private'; let env, store, adapter; let passedUrl, passedVerb, passedHash; -const { run } = Ember; - let User, Post, Comment, Handle, GithubHandle, TwitterHandle, Company, DevelopmentShop, DesignStudio; module('integration/adapter/json-api-adapter - JSONAPIAdapter', { @@ -99,7 +98,7 @@ function ajaxResponse(responses) { passedVerb[index] = request.method; passedHash[index] = request.data ? { data: request.data } : undefined; - return run(Ember.RSVP, 'resolve', responses[index]); + return run(RSVP, 'resolve', responses[index]); }; } else { adapter.ajax = function(url, verb, hash) { @@ -109,7 +108,7 @@ function ajaxResponse(responses) { passedVerb[index] = verb; passedHash[index] = hash; - return run(Ember.RSVP, 'resolve', responses[index]); + return run(RSVP, 'resolve', responses[index]); }; } } diff --git a/tests/integration/adapter/queries-test.js b/tests/integration/adapter/queries-test.js index fcfed256fb0..d42574d137f 100644 --- a/tests/integration/adapter/queries-test.js +++ b/tests/integration/adapter/queries-test.js @@ -1,13 +1,13 @@ +import { Promise as EmberPromise, resolve } from 'rsvp'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; - let Person, env, store, adapter; module("integration/adapter/queries - Queries", { @@ -45,7 +45,7 @@ test("When a query is made, the adapter should receive a record array it can pop adapter.query = function(store, type, query, recordArray) { assert.equal(type, Person, "the query method is called with the correct type"); - return Ember.RSVP.Promise.resolve({ + return EmberPromise.resolve({ data: [ { id: 1, @@ -76,7 +76,7 @@ test("When a query is made, the adapter should receive a record array it can pop test("a query can be updated via `update()`", function(assert) { adapter.query = function() { - return Ember.RSVP.resolve({ data: [{ id: 'first', type: 'person' }] }); + return resolve({ data: [{ id: 'first', type: 'person' }] }); }; return run(() => { @@ -87,7 +87,7 @@ test("a query can be updated via `update()`", function(assert) { adapter.query = function() { assert.ok('query is called a second time'); - return Ember.RSVP.resolve({data: [{ id: 'second', type: 'person' }] }); + return resolve({data: [{ id: 'second', type: 'person' }] }); }; let updateQuery = query.update(); @@ -113,10 +113,10 @@ testInDebug("The store asserts when query is made and the adapter responses with adapter.query = function(store, type, query, recordArray) { assert.equal(type, Person, "the query method is called with the correct type"); - return Ember.RSVP.resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Peter Wagenet" } }] }); + return resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Peter Wagenet" } }] }); }; assert.expectAssertion(() => { - Ember.run(() => store.query('person', { page: 1 })); + run(() => store.query('person', { page: 1 })); }, /The response to store.query is expected to be an array but it was a single record/); }); diff --git a/tests/integration/adapter/record-persistence-test.js b/tests/integration/adapter/record-persistence-test.js index ac7047ef8c8..62da7acd16f 100644 --- a/tests/integration/adapter/record-persistence-test.js +++ b/tests/integration/adapter/record-persistence-test.js @@ -1,10 +1,11 @@ +import { set, get } from '@ember/object'; +import { run } from '@ember/runloop'; +import RSVP, { resolve } from 'rsvp'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, set, run, RSVP } = Ember; const { all, hash } = RSVP; const { attr } = DS; @@ -40,7 +41,7 @@ test("When a store is committed, the adapter's `commit` method should be called assert.equal(type, Person, "the type is correct"); assert.equal(snapshot.record, tom, "the record is correct"); - return run(Ember.RSVP, 'resolve'); + return run(RSVP, 'resolve'); }; run(() => { @@ -74,7 +75,7 @@ test("When a store is committed, the adapter's `commit` method should be called assert.equal(type, Person, "the type is correct"); assert.equal(snapshot.record, tom, "the record is correct"); - return Ember.RSVP.resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale" } } }); + return resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale" } } }); }; return run(() => { @@ -88,7 +89,7 @@ test("After a created record has been assigned an ID, finding a record by that I let tom; env.adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale" } } }); + return resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale" } } }); }; return run(() => { @@ -106,7 +107,7 @@ test("when a store is committed, the adapter's `commit` method should be called assert.equal(type, Person, "the type is correct"); assert.equal(snapshot.record, tom, "the record is correct"); - return run(Ember.RSVP, 'resolve'); + return run(RSVP, 'resolve'); }; let tom; @@ -138,7 +139,7 @@ test("An adapter can notify the store that records were updated by calling `didS let tom, yehuda; env.adapter.updateRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve(); + return resolve(); }; run(() => { @@ -185,9 +186,9 @@ test("An adapter can notify the store that records were updated by calling `didS test("An adapter can notify the store that records were updated and provide new data by calling `didSaveRecords`.", function(assert) { env.adapter.updateRecord = function(store, type, snapshot) { if (snapshot.id === "1") { - return Ember.RSVP.resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale", "updated-at": "now" } } }); + return resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale", "updated-at": "now" } } }); } else if (snapshot.id === "2") { - return Ember.RSVP.resolve({ data: { id: 2, type: "person", attributes: { name: "Yehuda Katz", "updated-at": "now!" } } }); + return resolve({ data: { id: 2, type: "person", attributes: { name: "Yehuda Katz", "updated-at": "now!" } } }); } }; @@ -230,7 +231,7 @@ test("An adapter can notify the store that records were updated and provide new test("An adapter can notify the store that a record was updated by calling `didSaveRecord`.", function(assert) { env.adapter.updateRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve(); + return resolve(); }; run(() => { @@ -264,9 +265,9 @@ test("An adapter can notify the store that a record was updated and provide new env.adapter.updateRecord = function(store, type, snapshot) { switch (snapshot.id) { case "1": - return Ember.RSVP.resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale", "updated-at": "now" } } }); + return resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale", "updated-at": "now" } } }); case "2": - return Ember.RSVP.resolve({ data: { id: 2, type: "person", attributes: { name: "Yehuda Katz", "updated-at": "now!" } } }); + return resolve({ data: { id: 2, type: "person", attributes: { name: "Yehuda Katz", "updated-at": "now!" } } }); } }; @@ -309,7 +310,7 @@ test("An adapter can notify the store that a record was updated and provide new test("An adapter can notify the store that records were deleted by calling `didSaveRecords`.", function(assert) { env.adapter.deleteRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve(); + return resolve(); }; run(() => { diff --git a/tests/integration/adapter/rest-adapter-test.js b/tests/integration/adapter/rest-adapter-test.js index 4b24d0b7254..7d94e33c643 100644 --- a/tests/integration/adapter/rest-adapter-test.js +++ b/tests/integration/adapter/rest-adapter-test.js @@ -1,9 +1,14 @@ +import { underscore } from '@ember/string'; +import { copy } from '@ember/object/internals'; +import RSVP, { resolve, reject } from 'rsvp'; +import $ from 'jquery'; +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import { singularize } from 'ember-inflector'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import Pretender from "pretender"; @@ -12,8 +17,7 @@ import { isEnabled } from 'ember-data/-private'; let env, store, adapter, Post, Comment, SuperUser; let passedUrl, passedVerb, passedHash; -const { run, get } = Ember; -let originalAjax = Ember.$.ajax; +let originalAjax = $.ajax; let server; module("integration/adapter/rest_adapter - REST Adapter", { @@ -41,7 +45,7 @@ module("integration/adapter/rest_adapter - REST Adapter", { passedUrl = passedVerb = passedHash = null; }, afterEach() { - Ember.$.ajax = originalAjax; + $.ajax = originalAjax; if (server) { server.shutdown(); @@ -57,7 +61,7 @@ function ajaxResponse(value) { passedVerb = request.method; passedHash = request.data ? { data: request.data } : undefined; - return run(Ember.RSVP, 'resolve', Ember.copy(value, true)); + return run(RSVP, 'resolve', copy(value, true)); }; } else { adapter.ajax = function(url, verb, hash) { @@ -65,7 +69,7 @@ function ajaxResponse(value) { passedVerb = verb; passedHash = hash; - return run(Ember.RSVP, 'resolve', Ember.copy(value, true)); + return run(RSVP, 'resolve', copy(value, true)); }; } } @@ -1979,12 +1983,12 @@ test('groupRecordsForFindMany groups records based on their url', function(asser adapter.findRecord = function(store, type, id, snapshot) { assert.equal(id, '1'); - return Ember.RSVP.resolve({ comments: { id: 1 } }); + return resolve({ comments: { id: 1 } }); }; adapter.findMany = function(store, type, ids, snapshots) { assert.deepEqual(ids, ['2', '3']); - return Ember.RSVP.resolve({ comments: [{ id: 2 }, { id: 3 }] }); + return resolve({ comments: [{ id: 2 }, { id: 3 }] }); }; let post; @@ -2025,12 +2029,12 @@ test('groupRecordsForFindMany groups records correctly when singular URLs are en adapter.findRecord = function(store, type, id, snapshot) { assert.equal(id, '1'); - return Ember.RSVP.resolve({ comments: { id: 1 } }); + return resolve({ comments: { id: 1 } }); }; adapter.findMany = function(store, type, ids, snapshots) { assert.deepEqual(ids, ['2', '3']); - return Ember.RSVP.resolve({ comments: [{ id: 2 }, { id: 3 }] }); + return resolve({ comments: [{ id: 2 }, { id: 3 }] }); }; let post; @@ -2059,7 +2063,7 @@ test('groupRecordsForFindMany groups records correctly when singular URLs are en test('normalizeKey - to set up _ids and _id', function(assert) { env.registry.register('serializer:application', DS.RESTSerializer.extend({ keyForAttribute(attr) { - return Ember.String.underscore(attr); + return underscore(attr); }, keyForBelongsTo(belongsTo) { @@ -2067,11 +2071,11 @@ test('normalizeKey - to set up _ids and _id', function(assert) { keyForRelationship(rel, kind) { if (kind === 'belongsTo') { - let underscored = Ember.String.underscore(rel); + let underscored = underscore(rel); return underscored + '_id'; } else { let singular = singularize(rel); - return Ember.String.underscore(singular) + '_ids'; + return underscore(singular) + '_ids'; } } })); @@ -2163,12 +2167,12 @@ test('groupRecordsForFindMany splits up calls for large ids', function(assert) { assert.ok(true, "Found " + id); } - return Ember.RSVP.resolve({ comments: { id: id } }); + return resolve({ comments: { id: id } }); }; adapter.findMany = function(store, type, ids, snapshots) { assert.ok(false, "findMany should not be called - we expect 2 calls to find for a2000 and b2000"); - return Ember.RSVP.reject(); + return reject(); }; run(() => post.get('comments')); @@ -2210,12 +2214,12 @@ test('groupRecordsForFindMany groups calls for small ids', function(assert) { adapter.findRecord = function(store, type, id, snapshot) { assert.ok(false, "findRecord should not be called - we expect 1 call to findMany for a100 and b100"); - return Ember.RSVP.reject(); + return reject(); }; adapter.findMany = function(store, type, ids, snapshots) { assert.deepEqual(ids, [a100, b100]); - return Ember.RSVP.resolve({ comments: [{ id: a100 }, { id: b100 }] }); + return resolve({ comments: [{ id: a100 }, { id: b100 }] }); }; run(() => post.get('comments')); @@ -2235,7 +2239,7 @@ test("calls adapter.handleResponse with the jqXHR and json", function(assert) { } }; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { hash.success(data, 'ok', jqXHR); }; @@ -2261,7 +2265,7 @@ test('calls handleResponse with jqXHR, jqXHR.responseText, and requestData', fun url: "/posts/1" }; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { hash.error(jqXHR, jqXHR.responseText, 'Bad Request'); }; @@ -2286,7 +2290,7 @@ test("rejects promise if DS.AdapterError is returned from adapter.handleResponse something: 'is invalid' }; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { hash.success(data, 'ok', jqXHR); }; @@ -2295,7 +2299,7 @@ test("rejects promise if DS.AdapterError is returned from adapter.handleResponse return new DS.AdapterError(json); }; - return Ember.run(() => { + return run(() => { return store.findRecord('post', '1').catch(reason => { assert.ok(true, 'promise should be rejected'); assert.ok(reason instanceof DS.AdapterError, 'reason should be an instance of DS.AdapterError'); @@ -2310,7 +2314,7 @@ test("gracefully handles exceptions in handleResponse", function(assert) { getAllResponseHeaders() { return ''; } }; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { setTimeout(function() { hash.success({}, 'ok', jqXHR); }, 1) }; @@ -2332,7 +2336,7 @@ test("gracefully handles exceptions in handleResponse where the ajax request err getAllResponseHeaders() { return ''; } }; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { setTimeout(() => hash.error({}, 'Internal Server Error', jqXHR) , 1); }; @@ -2355,7 +2359,7 @@ test('treats status code 0 as an abort', function(assert) { getAllResponseHeaders() { return ''; } }; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { hash.error(jqXHR, 'error'); }; @@ -2380,7 +2384,7 @@ test('on error appends errorThrown for sanity', function(assert) { let errorThrown = new Error('nope!'); - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { hash.error(jqXHR, jqXHR.responseText, errorThrown); }; @@ -2402,62 +2406,62 @@ test("rejects promise with a specialized subclass of DS.AdapterError if ajax res let jqXHR = { getAllResponseHeaders() { return ''; } }; - let originalAjax = Ember.$.ajax; + let originalAjax = $.ajax; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { jqXHR.status = 401; hash.error(jqXHR, 'error'); }; - Ember.run(() => { + run(() => { store.find('post', '1').catch(reason => { assert.ok(true, 'promise should be rejected'); assert.ok(reason instanceof DS.UnauthorizedError, 'reason should be an instance of DS.UnauthorizedError'); }); }); - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { jqXHR.status = 403; hash.error(jqXHR, 'error'); }; - Ember.run(() => { + run(() => { store.find('post', '1').catch(reason => { assert.ok(true, 'promise should be rejected'); assert.ok(reason instanceof DS.ForbiddenError, 'reason should be an instance of DS.ForbiddenError'); }); }); - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { jqXHR.status = 404; hash.error(jqXHR, 'error'); }; - Ember.run(() => { + run(() => { store.find('post', '1').catch(reason => { assert.ok(true, 'promise should be rejected'); assert.ok(reason instanceof DS.NotFoundError, 'reason should be an instance of DS.NotFoundError'); }); }); - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { jqXHR.status = 409; hash.error(jqXHR, 'error'); }; - Ember.run(() => { + run(() => { store.find('post', '1').catch(reason => { assert.ok(true, 'promise should be rejected'); assert.ok(reason instanceof DS.ConflictError, 'reason should be an instance of DS.ConflictError'); }); }); - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { jqXHR.status = 500; hash.error(jqXHR, 'error'); }; - Ember.run(() => { + run(() => { store.find('post', '1').catch(reason => { assert.ok(true, 'promise should be rejected'); assert.ok(reason instanceof DS.ServerError, 'reason should be an instance of DS.ServerError'); @@ -2465,7 +2469,7 @@ test("rejects promise with a specialized subclass of DS.AdapterError if ajax res }); - Ember.$.ajax = originalAjax; + $.ajax = originalAjax; }); test('on error wraps the error string in an DS.AdapterError object', function(assert) { @@ -2478,7 +2482,7 @@ test('on error wraps the error string in an DS.AdapterError object', function(as let errorThrown = 'nope!'; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { hash.error(jqXHR, 'error', errorThrown); }; @@ -2498,7 +2502,7 @@ test('error handling includes a detailed message from the server', (assert) => { getAllResponseHeaders() { return 'Content-Type: text/plain'; } }; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { hash.error(jqXHR, 'error'); }; @@ -2520,7 +2524,7 @@ test('error handling with a very long HTML-formatted payload truncates the frien getAllResponseHeaders() { return 'Content-Type: text/html'; } }; - Ember.$.ajax = function(hash) { + $.ajax = function(hash) { hash.error(jqXHR, 'error'); }; @@ -2658,5 +2662,4 @@ if (isEnabled('ds-improved-ajax')) { return run(() => store.findRecord('post', 1)); }); - } diff --git a/tests/integration/adapter/serialize-test.js b/tests/integration/adapter/serialize-test.js index fdf961fe740..1d2a80dc3ed 100644 --- a/tests/integration/adapter/serialize-test.js +++ b/tests/integration/adapter/serialize-test.js @@ -1,12 +1,10 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { run } = Ember; - let env, store, adapter, serializer; module("integration/adapter/serialize - DS.Adapter integration test", { diff --git a/tests/integration/adapter/store-adapter-test.js b/tests/integration/adapter/store-adapter-test.js index 85326d8947a..ae6c09ecd4d 100644 --- a/tests/integration/adapter/store-adapter-test.js +++ b/tests/integration/adapter/store-adapter-test.js @@ -1,25 +1,18 @@ +import { + resolve, + hash, + Promise as EmberPromise, + reject +} from 'rsvp'; +import { set, get } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; import DS from 'ember-data'; -/* - This is an integration test that tests the communication between a store - and its adapter. - - Typically, when a method is invoked on the store, it calls a related - method on its adapter. The adapter notifies the store that it has - completed the assigned task, either synchronously or asynchronously, - by calling a method on the store. - - These tests ensure that the proper methods get called, and, if applicable, - the given record or record array changes state appropriately. -*/ - -const { get, set, run } = Ember; let Person, Dog, env, store, adapter; function moveRecordOutOfInFlight(record) { @@ -56,7 +49,7 @@ module("integration/adapter/store-adapter - DS.Store and DS.Adapter integration test("Records loaded multiple times and retrieved in recordArray are ready to send state events", function(assert) { adapter.query = function(store, type, query, recordArray) { - return Ember.RSVP.resolve({ + return resolve({ data: [ { id: 1, @@ -78,7 +71,7 @@ test("Records loaded multiple times and retrieved in recordArray are ready to se return run(store, 'query', 'person', { q: 'bla' }).then(people => { let people2 = store.query('person', { q: 'bla2' }); - return Ember.RSVP.hash({ people: people, people2: people2 }); + return hash({ people: people, people2: people2 }); }).then(results => { assert.equal(results.people2.get('length'), 2, 'return the elements'); assert.ok(results.people2.get('isLoaded'), 'array is loaded'); @@ -110,7 +103,7 @@ test("by default, createRecords calls createRecord once per record", function(as hash['updated-at'] = "now"; count++; - return Ember.RSVP.resolve({ + return resolve({ data: { id: recordId, type: "person", @@ -127,7 +120,7 @@ test("by default, createRecords calls createRecord once per record", function(as }); let promise = run(() => { - return Ember.RSVP.hash({ + return hash({ tom: tom.save(), yehuda: yehuda.save() }); @@ -162,7 +155,7 @@ test("by default, updateRecords calls updateRecord once per record", function(as assert.equal(snapshot.record.get('isSaving'), true, "record is saving"); - return Ember.RSVP.resolve(); + return resolve(); }; run(() => { @@ -184,7 +177,7 @@ test("by default, updateRecords calls updateRecord once per record", function(as }); let promise = run(() => { - return Ember.RSVP.hash({ + return hash({ tom: store.findRecord('person', 1), yehuda: store.findRecord('person', 2) }); @@ -197,7 +190,7 @@ test("by default, updateRecords calls updateRecord once per record", function(as set(tom, "name", "Tom Dale"); set(yehuda, "name", "Yehuda Katz"); - return Ember.RSVP.hash({ + return hash({ tom: tom.save(), yehuda: yehuda.save() }); @@ -222,10 +215,10 @@ test("calling store.didSaveRecord can provide an optional hash", function(assert count++; if (count === 1) { assert.equal(snapshot.attr('name'), "Tom Dale"); - return Ember.RSVP.resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale", "updated-at": "now" } } }); + return resolve({ data: { id: 1, type: "person", attributes: { name: "Tom Dale", "updated-at": "now" } } }); } else if (count === 2) { assert.equal(snapshot.attr('name'), "Yehuda Katz"); - return Ember.RSVP.resolve({ data: { id: 2, type: "person", attributes: { name: "Yehuda Katz", "updated-at": "now!" } } }); + return resolve({ data: { id: 2, type: "person", attributes: { name: "Yehuda Katz", "updated-at": "now!" } } }); } else { assert.ok(false, "should not get here"); } @@ -250,7 +243,7 @@ test("calling store.didSaveRecord can provide an optional hash", function(assert }); let promise = run(() => { - return Ember.RSVP.hash({ + return hash({ tom: store.findRecord('person', 1), yehuda: store.findRecord('person', 2) }); @@ -263,7 +256,7 @@ test("calling store.didSaveRecord can provide an optional hash", function(assert set(tom, "name", "Tom Dale"); set(yehuda, "name", "Yehuda Katz"); - return Ember.RSVP.hash({ + return hash({ tom: tom.save(), yehuda: yehuda.save() }); @@ -297,7 +290,7 @@ test("by default, deleteRecord calls deleteRecord once per record", function(ass count++; - return Ember.RSVP.resolve(); + return resolve(); }; run(() => { @@ -319,7 +312,7 @@ test("by default, deleteRecord calls deleteRecord once per record", function(ass }); let promise = run(() => { - return Ember.RSVP.hash({ + return hash({ tom: store.findRecord('person', 1), yehuda: store.findRecord('person', 2) }); @@ -332,7 +325,7 @@ test("by default, deleteRecord calls deleteRecord once per record", function(ass tom.deleteRecord(); yehuda.deleteRecord(); - return Ember.RSVP.Promise.all([ + return EmberPromise.all([ tom.save(), yehuda.save() ]); @@ -358,7 +351,7 @@ test("by default, destroyRecord calls deleteRecord once per record without requi count++; - return Ember.RSVP.resolve(); + return resolve(); }; run(() => { @@ -380,7 +373,7 @@ test("by default, destroyRecord calls deleteRecord once per record without requi }); let promise = run(() => { - return Ember.RSVP.hash({ + return hash({ tom: store.findRecord('person', 1), yehuda: store.findRecord('person', 2) }); @@ -390,7 +383,7 @@ test("by default, destroyRecord calls deleteRecord once per record without requi let tom = records.tom; let yehuda = records.yehuda; - return Ember.RSVP.Promise.all([ + return EmberPromise.all([ tom.destroyRecord(), yehuda.destroyRecord() ]); @@ -407,7 +400,7 @@ test("if an existing model is edited then deleted, deleteRecord is called on the assert.equal(snapshot.id, 'deleted-record', "should pass correct record to deleteRecord"); assert.equal(count, 1, "should only call deleteRecord method of adapter once"); - return Ember.RSVP.resolve(); + return resolve(); }; adapter.updateRecord = function() { @@ -448,9 +441,9 @@ test("if a deleted record errors, it enters the error state", function(assert) { adapter.shouldBackgroundReloadRecord = () => false; adapter.deleteRecord = function(store, type, snapshot) { if (count++ === 0) { - return Ember.RSVP.reject(error); + return reject(error); } else { - return Ember.RSVP.resolve(); + return resolve(); } }; @@ -490,7 +483,7 @@ test("if a created record is marked as invalid by the server, it enters an error assert.equal(type, Person, "the type is correct"); if (snapshot.attr('name').indexOf('Bro') === -1) { - return Ember.RSVP.reject(new DS.InvalidError([ + return reject(new DS.InvalidError([ { title: 'Invalid Attribute', detail: 'common... name requires a "bro"', @@ -500,7 +493,7 @@ test("if a created record is marked as invalid by the server, it enters an error } ])); } else { - return Ember.RSVP.resolve(); + return resolve(); } }; @@ -509,7 +502,7 @@ test("if a created record is marked as invalid by the server, it enters an error }); // Wrap this in an Ember.run so that all chained async behavior is set up // before flushing any scheduled behavior. - return Ember.run(function() { + return run(function() { return yehuda.save().catch(error => { assert.equal(get(yehuda, 'isValid'), false, "the record is invalid"); assert.ok(get(yehuda, 'errors.name'), "The errors.name property exists"); @@ -537,7 +530,7 @@ test("if a created record is marked as invalid by the server, it enters an error test("allows errors on arbitrary properties on create", function(assert) { adapter.createRecord = function(store, type, snapshot) { if (snapshot.attr('name').indexOf('Bro') === -1) { - return Ember.RSVP.reject(new DS.InvalidError([ + return reject(new DS.InvalidError([ { title: "Invalid Attribute", detail: "is a generally unsavoury character", @@ -547,7 +540,7 @@ test("allows errors on arbitrary properties on create", function(assert) { } ])); } else { - return Ember.RSVP.resolve(); + return resolve(); } }; @@ -591,7 +584,7 @@ test("if a created record is marked as invalid by the server, you can attempt th saveCount++; if (snapshot.attr('name').indexOf('Bro') === -1) { - return Ember.RSVP.reject(new DS.InvalidError([ + return reject(new DS.InvalidError([ { title: 'Invalid Attribute', detail: 'common... name requires a "bro"', @@ -601,7 +594,7 @@ test("if a created record is marked as invalid by the server, you can attempt th } ])); } else { - return Ember.RSVP.resolve(); + return resolve(); } }; @@ -611,7 +604,7 @@ test("if a created record is marked as invalid by the server, you can attempt th // Wrap this in an Ember.run so that all chained async behavior is set up // before flushing any scheduled behavior. - return Ember.run(() => { + return run(() => { return yehuda.save().catch(reason => { assert.equal(saveCount, 1, "The record has been saved once"); assert.ok(reason.message.match("The adapter rejected the commit because it was invalid"), "It should fail due to being invalid"); @@ -642,10 +635,10 @@ test("if a created record is marked as erred by the server, it enters an error s let error = new DS.AdapterError(); adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.reject(error); + return reject(error); }; - return Ember.run(() => { + return run(() => { let person = store.createRecord('person', { id: 1, name: "John Doe" }); return person.save().catch(() => { @@ -661,7 +654,7 @@ test("if an updated record is marked as invalid by the server, it enters an erro assert.equal(type, Person, "the type is correct"); if (snapshot.attr('name').indexOf('Bro') === -1) { - return Ember.RSVP.reject(new DS.InvalidError([ + return reject(new DS.InvalidError([ { title: 'Invalid Attribute', detail: 'common... name requires a "bro"', @@ -671,7 +664,7 @@ test("if an updated record is marked as invalid by the server, it enters an erro } ])); } else { - return Ember.RSVP.resolve(); + return resolve(); } }; @@ -689,7 +682,7 @@ test("if an updated record is marked as invalid by the server, it enters an erro return store.peekRecord('person', 1); }); - return Ember.run(() => { + return run(() => { return store.findRecord('person', 1).then(person => { assert.equal(person, yehuda, "The same object is passed through"); @@ -723,7 +716,7 @@ test("records can have errors on arbitrary properties after update", function(as adapter.shouldBackgroundReloadRecord = () => false; adapter.updateRecord = function(store, type, snapshot) { if (snapshot.attr('name').indexOf('Bro') === -1) { - return Ember.RSVP.reject(new DS.InvalidError([ + return reject(new DS.InvalidError([ { title: "Invalid Attribute", detail: "is a generally unsavoury character", @@ -733,7 +726,7 @@ test("records can have errors on arbitrary properties after update", function(as } ])); } else { - return Ember.RSVP.resolve(); + return resolve(); } }; @@ -791,7 +784,7 @@ test("if an updated record is marked as invalid by the server, you can attempt t assert.equal(type, Person, "the type is correct"); saveCount++; if (snapshot.attr('name').indexOf('Bro') === -1) { - return Ember.RSVP.reject(new DS.InvalidError([ + return reject(new DS.InvalidError([ { title: 'Invalid Attribute', detail: 'common... name requires a "bro"', @@ -801,7 +794,7 @@ test("if an updated record is marked as invalid by the server, you can attempt t } ])); } else { - return Ember.RSVP.resolve(); + return resolve(); } }; @@ -818,7 +811,7 @@ test("if an updated record is marked as invalid by the server, you can attempt t return store.peekRecord('person', 1); }); - return Ember.run(() => { + return run(() => { return store.findRecord('person', 1).then(person => { assert.equal(person, yehuda, "The same object is passed through"); @@ -856,7 +849,7 @@ test("if a updated record is marked as erred by the server, it enters an error s adapter.shouldBackgroundReloadRecord = () => false; adapter.updateRecord = function(store, type, snapshot) { - return Ember.RSVP.reject(error); + return reject(error); }; let person = run(() => { @@ -887,7 +880,7 @@ test("can be created after the DS.Store", function(assert) { adapter.findRecord = function(store, type, id, snapshot) { assert.equal(type, Person, "the type is correct"); - return Ember.RSVP.resolve({ data: { id: 1, type: "person" } }); + return resolve({ data: { id: 1, type: "person" } }); }; run(() => store.findRecord('person', 1)); @@ -896,7 +889,7 @@ test("can be created after the DS.Store", function(assert) { test("the filter method can optionally take a server query as well", function(assert) { adapter.shouldBackgroundReloadRecord = () => false; adapter.query = function(store, type, query, array) { - return Ember.RSVP.resolve({ + return resolve({ data: [ { id: 1, @@ -949,7 +942,7 @@ test("relationships returned via `commit` do not trigger additional findManys", }); adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: "person", @@ -964,7 +957,7 @@ test("relationships returned via `commit` do not trigger additional findManys", }; adapter.updateRecord = function(store, type, snapshot) { - return new Ember.RSVP.Promise((resolve, reject) => { + return new EmberPromise((resolve, reject) => { env.store.push({ data: { type: 'person', @@ -1000,7 +993,7 @@ test("relationships returned via `commit` do not trigger additional findManys", return run(() => { store.findRecord('person', 1).then(person => { - return Ember.RSVP.hash({ tom: person, dog: store.findRecord('dog', 1) }); + return hash({ tom: person, dog: store.findRecord('dog', 1) }); }).then(records => { records.tom.get('dogs'); return records.dog.save(); @@ -1021,7 +1014,7 @@ test("relationships don't get reset if the links is the same", function(assert) adapter.findHasMany = function(store, snapshot, link, relationship) { assert.ok(count++ === 0, "findHasMany is only called once"); - return Ember.RSVP.resolve({ data: [{ id: 1, type: "dog", attributes: { name: "Scruffy" } }] }); + return resolve({ data: [{ id: 1, type: "dog", attributes: { name: "Scruffy" } }] }); }; run(() => { @@ -1080,7 +1073,7 @@ test("async hasMany always returns a promise", function(assert) { }); adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: "person", @@ -1112,7 +1105,7 @@ test("createRecord receives a snapshot", function(assert) { adapter.createRecord = function(store, type, snapshot) { assert.ok(snapshot instanceof DS.Snapshot, "snapshot is an instance of DS.Snapshot"); - return Ember.RSVP.resolve(); + return resolve(); }; var person; @@ -1128,7 +1121,7 @@ test("updateRecord receives a snapshot", function(assert) { adapter.updateRecord = function(store, type, snapshot) { assert.ok(snapshot instanceof DS.Snapshot, "snapshot is an instance of DS.Snapshot"); - return Ember.RSVP.resolve(); + return resolve(); }; let person; @@ -1157,7 +1150,7 @@ test("deleteRecord receives a snapshot", function(assert) { adapter.deleteRecord = function(store, type, snapshot) { assert.ok(snapshot instanceof DS.Snapshot, "snapshot is an instance of DS.Snapshot"); - return Ember.RSVP.resolve(); + return resolve(); }; let person; @@ -1186,7 +1179,7 @@ test("findRecord receives a snapshot", function(assert) { adapter.findRecord = function(store, type, id, snapshot) { assert.ok(snapshot instanceof DS.Snapshot, "snapshot is an instance of DS.Snapshot"); - return Ember.RSVP.resolve({ data: { id: 1, type: "person" } }); + return resolve({ data: { id: 1, type: "person" } }); }; return run(() => store.findRecord('person', 1)); @@ -1203,7 +1196,7 @@ test("findMany receives an array of snapshots", function(assert) { adapter.findMany = function(store, type, ids, snapshots) { assert.ok(snapshots[0] instanceof DS.Snapshot, "snapshots[0] is an instance of DS.Snapshot"); assert.ok(snapshots[1] instanceof DS.Snapshot, "snapshots[1] is an instance of DS.Snapshot"); - return Ember.RSVP.resolve({ data: [{ id: 2, type: "dog" }, { id: 3, type: "dog" }] }); + return resolve({ data: [{ id: 2, type: "dog" }, { id: 3, type: "dog" }] }); }; let person; @@ -1238,7 +1231,7 @@ test("findHasMany receives a snapshot", function(assert) { env.adapter.findHasMany = function(store, snapshot, link, relationship) { assert.ok(snapshot instanceof DS.Snapshot, "snapshot is an instance of DS.Snapshot"); - return Ember.RSVP.resolve({ data: [{ id: 2, type: "dog" }, { id: 3, type: "dog" }] }); + return resolve({ data: [{ id: 2, type: "dog" }, { id: 3, type: "dog" }] }); }; let person; @@ -1272,7 +1265,7 @@ test("findBelongsTo receives a snapshot", function(assert) { env.adapter.findBelongsTo = function(store, snapshot, link, relationship) { assert.ok(snapshot instanceof DS.Snapshot, "snapshot is an instance of DS.Snapshot"); - return Ember.RSVP.resolve({ data: { id: 2, type: "dog" } }); + return resolve({ data: { id: 2, type: "dog" } }); }; let person; @@ -1302,7 +1295,7 @@ test("record.save should pass adapterOptions to the updateRecord method", functi env.adapter.updateRecord = function(store, type, snapshot) { assert.deepEqual(snapshot.adapterOptions, { subscribe: true }); - return Ember.RSVP.resolve({ data: { id: 1, type: "person" } }); + return resolve({ data: { id: 1, type: "person" } }); }; return run(() => { @@ -1325,7 +1318,7 @@ test("record.save should pass adapterOptions to the createRecord method", functi env.adapter.createRecord = function(store, type, snapshot) { assert.deepEqual(snapshot.adapterOptions, { subscribe: true }); - return Ember.RSVP.resolve({ data: { id: 1, type: "person" } }); + return resolve({ data: { id: 1, type: "person" } }); }; return run(() => { @@ -1339,7 +1332,7 @@ test("record.save should pass adapterOptions to the deleteRecord method", functi env.adapter.deleteRecord = function(store, type, snapshot) { assert.deepEqual(snapshot.adapterOptions, { subscribe: true }); - return Ember.RSVP.resolve({ data: { id: 1, type: "person" } }); + return resolve({ data: { id: 1, type: "person" } }); }; run(() => { @@ -1362,7 +1355,7 @@ test("store.findRecord should pass adapterOptions to adapter.findRecord", functi env.adapter.findRecord = function(store, type, id, snapshot) { assert.deepEqual(snapshot.adapterOptions, { query: { embed: true } }); - return Ember.RSVP.resolve({ data: { id: 1, type: "person" } }); + return resolve({ data: { id: 1, type: "person" } }); }; return run(() => { @@ -1375,7 +1368,7 @@ test("store.findRecord should pass 'include' to adapter.findRecord", function(as env.adapter.findRecord = (store, type, id, snapshot) => { assert.equal(snapshot.include, 'books', 'include passed to adapter.findRecord'); - return Ember.RSVP.resolve({ data: { id: 1, type: "person" } }); + return resolve({ data: { id: 1, type: "person" } }); }; run(() => store.findRecord('person', 1, { include: 'books' })); @@ -1387,7 +1380,7 @@ test("store.findAll should pass adapterOptions to the adapter.findAll method", f env.adapter.findAll = function(store, type, sinceToken, arraySnapshot) { let adapterOptions = arraySnapshot.adapterOptions; assert.deepEqual(adapterOptions, { query: { embed: true } }); - return Ember.RSVP.resolve({ data: [{ id: 1, type: "person" }] }); + return resolve({ data: [{ id: 1, type: "person" }] }); }; return run(() => { @@ -1400,7 +1393,7 @@ test("store.findAll should pass 'include' to adapter.findAll", function(assert) env.adapter.findAll = function(store, type, sinceToken, arraySnapshot) { assert.equal(arraySnapshot.include, 'books', 'include passed to adapter.findAll'); - return Ember.RSVP.resolve({ data: [{ id: 1, type: "person" }] }); + return resolve({ data: [{ id: 1, type: "person" }] }); }; run(() => store.findAll('person', { include: 'books' })); @@ -1430,7 +1423,7 @@ test("An async hasMany relationship with links should not trigger shouldBackgrou }; }, findHasMany() { - return Ember.RSVP.resolve({ + return resolve({ comments: [ { id: 1, name: "FIRST" }, { id: 2, name: "Rails is unagi" }, diff --git a/tests/integration/application-test.js b/tests/integration/application-test.js index 665f14855c4..564097613bd 100644 --- a/tests/integration/application-test.js +++ b/tests/integration/application-test.js @@ -1,13 +1,14 @@ +import Service, { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; +import Application from '@ember/application'; +import { run } from '@ember/runloop'; import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const run = Ember.run; -const Application = Ember.Application; -const Controller = Ember.Controller; const Store = DS.Store; const Namespace = Ember.Namespace; @@ -104,12 +105,12 @@ test("the DS namespace should be accessible", function(assert) { }); }); -if (Ember.inject && Ember.inject.service) { +if (Ember.inject && service) { module("integration/application - Using the store as a service", { beforeEach() { run(() => { app = Application.create({ - DoodleService: Ember.Service.extend({ store: Ember.inject.service() }) + DoodleService: Service.extend({ store: service() }) }); }); diff --git a/tests/integration/backwards-compat/non-dasherized-lookups-test.js b/tests/integration/backwards-compat/non-dasherized-lookups-test.js index 4741ad62c34..9cb4c3a290a 100644 --- a/tests/integration/backwards-compat/non-dasherized-lookups-test.js +++ b/tests/integration/backwards-compat/non-dasherized-lookups-test.js @@ -1,13 +1,11 @@ +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const get = Ember.get; -const { run } = Ember; - const { JSONAPIAdapter, JSONAPISerializer, diff --git a/tests/integration/client-id-generation-test.js b/tests/integration/client-id-generation-test.js index 6fe32283f51..62966f4f0d9 100644 --- a/tests/integration/client-id-generation-test.js +++ b/tests/integration/client-id-generation-test.js @@ -1,11 +1,12 @@ +import { resolve } from 'rsvp'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; let Post, Comment, Misc, env; module("integration/client_id_generation - Client-side ID Generation", { @@ -48,10 +49,10 @@ test("If an adapter implements the `generateIdForRecord` method, the store shoul env.adapter.createRecord = function(store, type, snapshot) { if (type === Comment) { assert.equal(snapshot.id, 'id-1', "Comment passed to `createRecord` has 'id-1' assigned"); - return Ember.RSVP.resolve(); + return resolve(); } else { assert.equal(snapshot.id, 'id-2', "Post passed to `createRecord` has 'id-2' assigned"); - return Ember.RSVP.resolve(); + return resolve(); } }; @@ -86,7 +87,7 @@ test("empty string and undefined ids should coerce to null", function(assert) { env.adapter.createRecord = function(store, type, record) { assert.equal(typeof get(record, 'id'), 'object', 'correct type'); - return Ember.RSVP.resolve({ data: { id: id++, type: type.modelName } }); + return resolve({ data: { id: id++, type: type.modelName } }); }; run(() => { diff --git a/tests/integration/debug-adapter-test.js b/tests/integration/debug-adapter-test.js index b1d01a2ce72..5833c5506c8 100644 --- a/tests/integration/debug-adapter-test.js +++ b/tests/integration/debug-adapter-test.js @@ -1,16 +1,18 @@ -import Ember from 'ember'; +import { A } from '@ember/array'; +import Application from '@ember/application'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let App, store, debugAdapter; -const { get, run } = Ember; module('DS.DebugAdapter', { beforeEach() { - Ember.run(function() { - App = Ember.Application.extend({ + run(function() { + App = Application.extend({ toString() { return 'debug-app'; } }).create(); @@ -44,7 +46,7 @@ module('DS.DebugAdapter', { debugAdapter.reopen({ getModelTypes() { - return Ember.A([{ klass, name: 'post' }]); + return A([{ klass, name: 'post' }]); } }); }, @@ -86,7 +88,7 @@ test('Watching Model Types', function(assert) { test("Watching Records", function(assert) { var post, record, addedRecords, updatedRecords, removedIndex, removedCount; - Ember.run(function() { + run(function() { store.push({ data: { type: 'post', @@ -124,11 +126,11 @@ test("Watching Records", function(assert) { assert.deepEqual(record.searchKeywords, ['1', 'Clean Post']); assert.deepEqual(record.color, 'black'); - Ember.run(function() { + run(function() { post = store.findRecord('post', 1); }); - Ember.run(function() { + run(function() { post.set('title', 'Modified Post'); }); @@ -149,7 +151,7 @@ test("Watching Records", function(assert) { assert.deepEqual(record.searchKeywords, ['2', 'New Post']); assert.deepEqual(record.color, 'green'); - Ember.run(post, 'unloadRecord'); + run(post, 'unloadRecord'); assert.equal(removedIndex, 1); assert.equal(removedCount, 1); diff --git a/tests/integration/filter-test.js b/tests/integration/filter-test.js index 9670af43167..fb5a8f38d32 100644 --- a/tests/integration/filter-test.js +++ b/tests/integration/filter-test.js @@ -1,5 +1,7 @@ +import { hash, all } from 'rsvp'; +import { set, get, computed } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import { module, test } from 'qunit'; @@ -7,18 +9,12 @@ import DS from 'ember-data'; import customAdapter from 'dummy/tests/helpers/custom-adapter'; -const { - get, - set, - run -} = Ember; - let store, env, data, recordArray; const Person = DS.Model.extend({ name: DS.attr('string'), bestFriend: DS.belongsTo('person', { inverse: null, async: false }), - upperName: Ember.computed('name', function() { + upperName: computed('name', function() { return this.get('name').toUpperCase(); }).readOnly() }); @@ -235,7 +231,7 @@ test('a Record Array can update its filter', function(assert) { } }).then(recordArray => { - return Ember.RSVP.hash(asyncData).then(records => { + return hash(asyncData).then(records => { assert.contains(recordArray, records.dale); assert.contains(recordArray, records.katz); assert.without(recordArray, dickens); @@ -334,7 +330,7 @@ test('a Record Array can update its filter and notify array observers', function }); }); - return Ember.RSVP.all(asyncData).then(() => { + return all(asyncData).then(() => { assert.equal(didChangeRemoved, 1, 'removed one item from array'); didChangeRemoved = 0; diff --git a/tests/integration/injection-test.js b/tests/integration/injection-test.js index dfbc603ff05..aef9d58a9cf 100644 --- a/tests/integration/injection-test.js +++ b/tests/integration/injection-test.js @@ -2,13 +2,14 @@ import { setup as setupModelFactoryInjections, reset as resetModelFactoryInjections } from 'dummy/tests/helpers/model-factory-injection'; +import EmberObject from '@ember/object'; +import { getOwner } from '@ember/application'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import DS from 'ember-data'; import { module, test } from 'qunit'; let env, hasFactoryFor, originalLookupFactory, originalOwnerLookupFactory, originalFactoryFor; -const { run } = Ember; const model = { isModel: true, @@ -22,8 +23,8 @@ module('integration/injection factoryFor enabled', { setup() { env = setupStore(); - if (Ember.getOwner) { - let owner = Ember.getOwner(env.store); + if (getOwner) { + let owner = getOwner(env.store); hasFactoryFor = !!owner.factoryFor; originalFactoryFor = owner.factoryFor; @@ -49,8 +50,8 @@ module('integration/injection factoryFor enabled', { }, teardown() { - if (Ember.getOwner) { - let owner = Ember.getOwner(env.store); + if (getOwner) { + let owner = getOwner(env.store); if (owner.factoryFor) { owner.factoryFor = originalFactoryFor; @@ -87,7 +88,7 @@ module('integration/injection eager injections', { env.registry.injection('model:foo', 'apple', 'service:apple'); env.registry.register('model:foo', DS.Model); - env.registry.register('service:apple', Ember.Object.extend({ isService: true })); + env.registry.register('service:apple', EmberObject.extend({ isService: true })); // container injection }, diff --git a/tests/integration/inverse-test.js b/tests/integration/inverse-test.js index c48bb75eb7a..d2881b9dd23 100644 --- a/tests/integration/inverse-test.js +++ b/tests/integration/inverse-test.js @@ -1,15 +1,14 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let env, store, User, Job, ReflexiveModel; const { attr, belongsTo } = DS; -const { run } = Ember; function stringify(string) { return function() { return string; }; diff --git a/tests/integration/lifecycle-hooks-test.js b/tests/integration/lifecycle-hooks-test.js index d74ae1146c6..705997b19f5 100644 --- a/tests/integration/lifecycle-hooks-test.js +++ b/tests/integration/lifecycle-hooks-test.js @@ -1,14 +1,13 @@ +import { resolve } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let Person, env; const { attr } = DS; -const { run } = Ember; -const { resolve } = Ember.RSVP; module("integration/lifecycle_hooks - Lifecycle Hooks", { beforeEach() { @@ -50,7 +49,7 @@ test("When the adapter acknowledges that a record has been created without a new assert.expect(3); env.adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve(); + return resolve(); }; let person = run(() => env.store.createRecord('person', { id: 99, name: "Yehuda Katz" })); diff --git a/tests/integration/multiple-stores-test.js b/tests/integration/multiple-stores-test.js index 4edd341eb10..bcf1fd59040 100644 --- a/tests/integration/multiple-stores-test.js +++ b/tests/integration/multiple-stores-test.js @@ -1,12 +1,11 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import { module, test } from 'qunit'; import DS from 'ember-data'; let env; let SuperVillain, HomePlanet, EvilMinion; -const { run } = Ember; module("integration/multiple_stores - Multiple Stores Tests", { setup() { diff --git a/tests/integration/peek-all-test.js b/tests/integration/peek-all-test.js index 2f836487f2c..c023ee7ee96 100644 --- a/tests/integration/peek-all-test.js +++ b/tests/integration/peek-all-test.js @@ -1,12 +1,11 @@ -import {createStore} from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; - let Person, store, array, moreArray; module("integration/peek-all - DS.Store#peekAll()", { @@ -65,7 +64,7 @@ test("store.peekAll('person') should return all records and should update with n test("Calling store.peekAll() multiple times should update immediately inside the runloop", function(assert) { assert.expect(3); - Ember.run(() => { + run(() => { assert.equal(get(store.peekAll('person'), 'length'), 0, 'should initially be empty'); store.createRecord('person', { name: "Tomster" }); assert.equal(get(store.peekAll('person'), 'length'), 1, 'should contain one person'); @@ -85,7 +84,7 @@ test("Calling store.peekAll() multiple times should update immediately inside th test("Calling store.peekAll() after creating a record should return correct data", function(assert) { assert.expect(1); - Ember.run(() => { + run(() => { store.createRecord('person', { name: "Tomster" }); assert.equal(get(store.peekAll('person'), 'length'), 1, 'should contain one person'); }); diff --git a/tests/integration/polymorphic-belongs-to-test.js b/tests/integration/polymorphic-belongs-to-test.js index fc1822d96a7..e2e680f8017 100644 --- a/tests/integration/polymorphic-belongs-to-test.js +++ b/tests/integration/polymorphic-belongs-to-test.js @@ -1,12 +1,11 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; const { attr, belongsTo } = DS; -const { run } = Ember; let store; diff --git a/tests/integration/record-array-manager-test.js b/tests/integration/record-array-manager-test.js index 8e921f1d1a6..b78380b3dae 100644 --- a/tests/integration/record-array-manager-test.js +++ b/tests/integration/record-array-manager-test.js @@ -1,14 +1,14 @@ +import { A } from '@ember/array'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let store, env, manager; -const { run } = Ember; - const Person = DS.Model.extend({ name: DS.attr('string'), cars: DS.hasMany('car', { async: false }) @@ -112,20 +112,20 @@ test('destroying the store correctly cleans everything up', function(assert) { assert.equal(internalPersonModel._recordArrays.size, 3, 'expected the person to be a member of 3 recordArrays'); - Ember.run(filterd2, filterd2.destroy); + run(filterd2, filterd2.destroy); assert.equal(internalPersonModel._recordArrays.size, 2, 'expected the person to be a member of 2 recordArrays'); assert.equal(filterd2Summary.called.length, 1); assert.equal('person' in manager._liveRecordArrays, true); - Ember.run(all, all.destroy); + run(all, all.destroy); assert.equal(internalPersonModel._recordArrays.size, 1, 'expected the person to be a member of 1 recordArrays'); assert.equal(allSummary.called.length, 1); assert.equal('person' in manager._liveRecordArrays, false); - Ember.run(manager, manager.destroy); + run(manager, manager.destroy); assert.equal(internalPersonModel._recordArrays.size, 0, 'expected the person to be a member of no recordArrays'); assert.equal(filterdSummary.called.length, 1); @@ -309,7 +309,7 @@ test('createRecordArray \w optional content', function(assert) { return record; } }; - let content = Ember.A([internalModel]); + let content = A([internalModel]); let recordArray = manager.createRecordArray('foo', content); assert.equal(recordArray.modelName, 'foo'); diff --git a/tests/integration/record-array-test.js b/tests/integration/record-array-test.js index e784365e397..f311d3ac9e2 100644 --- a/tests/integration/record-array-test.js +++ b/tests/integration/record-array-test.js @@ -1,13 +1,13 @@ -import {createStore} from 'dummy/tests/helpers/store'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; +import { Promise, hash } from 'rsvp'; +import { createStore } from 'dummy/tests/helpers/store'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run, RSVP: { Promise }} = Ember; - let results; const Person = DS.Model.extend({ @@ -204,7 +204,7 @@ test('a loaded record is removed from a record array when it is deleted', functi }); return run(() => { - return Ember.RSVP.hash({ + return hash({ scumbag: store.findRecord('person', 1), tag: store.findRecord('tag', 1) }).then(records => { @@ -224,7 +224,7 @@ test('a loaded record is removed from a record array when it is deleted', functi assert.equal(get(recordArray, 'length'), 1, 'record is still in the record array until it is saved'); - Ember.run(scumbag, 'save'); + run(scumbag, 'save'); assert.equal(get(recordArray, 'length'), 0, 'record is removed from the array when it is saved'); }); @@ -352,7 +352,7 @@ test('a newly created record is removed from a record array when it is deleted', assert.equal(get(recordArray, 'length'), 1, 'precond - record array already has the first created item'); // guarantee coalescence - Ember.run(() => { + run(() => { store.createRecord('person', { name: 'p1' }); store.createRecord('person', { name: 'p2' }); store.createRecord('person', { name: 'p3' }); diff --git a/tests/integration/record-arrays/adapter-populated-record-array-test.js b/tests/integration/record-arrays/adapter-populated-record-array-test.js index 6264ed285e2..ed368e67404 100644 --- a/tests/integration/record-arrays/adapter-populated-record-array-test.js +++ b/tests/integration/record-arrays/adapter-populated-record-array-test.js @@ -1,12 +1,12 @@ -import {setupStore, createStore} from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { run } from '@ember/runloop'; +import { Promise } from 'rsvp'; +import { setupStore, createStore } from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let store; -const { run, RSVP: { Promise } } = Ember; const Person = DS.Model.extend({ name: DS.attr('string'), diff --git a/tests/integration/records/collection-save-test.js b/tests/integration/records/collection-save-test.js index 801275a7321..ebe56231995 100644 --- a/tests/integration/records/collection-save-test.js +++ b/tests/integration/records/collection-save-test.js @@ -1,12 +1,11 @@ +import { resolve, reject } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { run } = Ember; - let Post, env; module("integration/records/collection_save - Save Collection of Records", { @@ -34,7 +33,7 @@ test("Collection will resolve save on success", function(assert) { let posts = env.store.peekAll('post'); env.adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve({ data: { id: id++ , type: 'post' } }); + return resolve({ data: { id: id++ , type: 'post' } }); }; return run(() => { @@ -53,7 +52,7 @@ test("Collection will reject save on error", function(assert) { let posts = env.store.peekAll('post'); env.adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.reject(); + return reject(); }; return run(() => { @@ -76,14 +75,14 @@ test("Retry is allowed in a failure handler", function(assert) { env.adapter.createRecord = function(store, type, snapshot) { if (count++ === 0) { - return Ember.RSVP.reject(); + return reject(); } else { - return Ember.RSVP.resolve({ data: { id: id++, type: 'post' } }); + return resolve({ data: { id: id++, type: 'post' } }); } }; env.adapter.updateRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve({ data: { id: snapshot.id, type: 'post' } }); + return resolve({ data: { id: snapshot.id, type: 'post' } }); }; return run(() => { @@ -108,10 +107,10 @@ test("Collection will reject save on invalid", function(assert) { let posts = env.store.peekAll('post'); env.adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.reject({ title: 'invalid' }); + return reject({ title: 'invalid' }); }; - return Ember.run(() => { + return run(() => { return posts.save().catch(() => { assert.ok(true, 'save operation was rejected'); }); diff --git a/tests/integration/records/delete-record-test.js b/tests/integration/records/delete-record-test.js index fe3ab6b3f58..957c3ecc38f 100644 --- a/tests/integration/records/delete-record-test.js +++ b/tests/integration/records/delete-record-test.js @@ -1,16 +1,18 @@ /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "(adam|dave|cersei)" }]*/ +import { Promise as EmberPromise, all } from 'rsvp'; + +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; + import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var attr = DS.attr; var Person, env; -var run = Ember.run; -var get = Ember.get; module("integration/deletedRecord - Deleting Records", { beforeEach() { @@ -25,7 +27,7 @@ module("integration/deletedRecord - Deleting Records", { }, afterEach() { - Ember.run(function() { + run(function() { env.container.destroy(); }); } @@ -35,7 +37,7 @@ test("records should not be removed from record arrays just after deleting, but var adam, dave; env.adapter.deleteRecord = function() { - return Ember.RSVP.Promise.resolve(); + return EmberPromise.resolve(); }; var all; @@ -64,11 +66,11 @@ test("records should not be removed from record arrays just after deleting, but // pre-condition assert.equal(all.get('length'), 2, 'pre-condition: 2 records in array'); - Ember.run(adam, 'deleteRecord'); + run(adam, 'deleteRecord'); assert.equal(all.get('length'), 2, '2 records in array after deleteRecord'); - Ember.run(adam, 'save'); + run(adam, 'save'); assert.equal(all.get('length'), 1, '1 record in array after deleteRecord and save'); }); @@ -82,7 +84,7 @@ test('deleting a record that is part of a hasMany removes it from the hasMany re Group.toString = () => { return 'Group'; } env.adapter.deleteRecord = function() { - return Ember.RSVP.Promise.resolve(); + return EmberPromise.resolve(); }; env.registry.register('model:group', Group); @@ -138,7 +140,7 @@ test("records can be deleted during record array enumeration", function(assert) var adam, dave; env.adapter.deleteRecord = function() { - return Ember.RSVP.Promise.resolve(); + return EmberPromise.resolve(); }; run(function() { @@ -165,7 +167,7 @@ test("records can be deleted during record array enumeration", function(assert) // pre-condition assert.equal(all.get('length'), 2, 'expected 2 records'); - Ember.run(function() { + run(function() { all.forEach(function(record) { record.destroyRecord(); }); @@ -220,7 +222,7 @@ test("Deleting an invalid newly created record should remove it from the store", var store = env.store; env.adapter.createRecord = function() { - return Ember.RSVP.Promise.reject(new DS.InvalidError([ + return EmberPromise.reject(new DS.InvalidError([ { title: 'Invalid Attribute', detail: 'name is invalid', @@ -260,7 +262,7 @@ test("Destroying an invalid newly created record should remove it from the store }; env.adapter.createRecord = function() { - return Ember.RSVP.Promise.reject(new DS.InvalidError([ + return EmberPromise.reject(new DS.InvalidError([ { title: 'Invalid Attribute', detail: 'name is invalid', @@ -298,7 +300,7 @@ test("Will resolve destroy and save in same loop", function(assert) { env.adapter.createRecord = function() { assert.ok(true, 'save operation resolves'); - return Ember.RSVP.Promise.resolve({ + return EmberPromise.resolve({ data: { id: 123, type: 'person' @@ -318,5 +320,5 @@ test("Will resolve destroy and save in same loop", function(assert) { ]; }); - return Ember.RSVP.all(promises); + return all(promises); }); diff --git a/tests/integration/records/error-test.js b/tests/integration/records/error-test.js index a0ca3f3a941..bbe4a4bff4e 100644 --- a/tests/integration/records/error-test.js +++ b/tests/integration/records/error-test.js @@ -1,12 +1,11 @@ -import Ember from 'ember'; -import {module} from 'qunit'; +import { run } from '@ember/runloop'; +import { module } from 'qunit'; import DS from 'ember-data'; import setupStore from 'dummy/tests/helpers/store'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; var env, store, Person; var attr = DS.attr; -var run = Ember.run; function updateErrors(func) { window.expectWarning(function() { @@ -29,7 +28,7 @@ module('integration/records/error', { }, afterEach: function() { - Ember.run(function() { + run(function() { env.container.destroy(); }); } @@ -52,7 +51,7 @@ testInDebug('adding errors during root.loaded.created.invalid works', function(a return store.peekRecord('person', 'wat'); }); - Ember.run(() => { + run(() => { person.set('firstName', null); person.set('lastName', null); }); @@ -83,7 +82,7 @@ testInDebug('adding errors root.loaded.created.invalid works', function(assert) }); }); - Ember.run(() => { + run(() => { person.set('firstName', null); person.set('lastName', null); }); @@ -112,7 +111,7 @@ testInDebug('adding errors root.loaded.created.invalid works add + remove + add' }); }); - Ember.run(() => { + run(() => { person.set('firstName', null); }); @@ -143,7 +142,7 @@ testInDebug('adding errors root.loaded.created.invalid works add + (remove, add) }); }); - Ember.run(() => { + run(() => { person.set('firstName', null); }); diff --git a/tests/integration/records/load-test.js b/tests/integration/records/load-test.js index eea2c0f7ae4..605e92115c4 100644 --- a/tests/integration/records/load-test.js +++ b/tests/integration/records/load-test.js @@ -1,12 +1,12 @@ +import { reject } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; const { hasMany } = DS; -const { run } = Ember; let Post, Comment, env; @@ -28,7 +28,7 @@ module("integration/load - Loading Records", { test("When loading a record fails, the record is not left behind", function(assert) { env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.reject(); + return reject(); }; return run(() => { diff --git a/tests/integration/records/property-changes-test.js b/tests/integration/records/property-changes-test.js index a6374c7ce7d..059434d14c8 100644 --- a/tests/integration/records/property-changes-test.js +++ b/tests/integration/records/property-changes-test.js @@ -1,13 +1,13 @@ +import { resolve } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var env, store, Person; var attr = DS.attr; -var run = Ember.run; module('integration/records/property-changes - Property changes', { beforeEach() { @@ -23,7 +23,7 @@ module('integration/records/property-changes - Property changes', { }, afterEach() { - Ember.run(function() { + run(function() { env.container.destroy(); }); } @@ -115,7 +115,7 @@ test('Saving a record trigger observers for locally changed attributes with the var person; env.adapter.updateRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve({ data: { id: 'wat', type: 'person', attributes: { 'last-name': 'Katz' } } }); + return resolve({ data: { id: 'wat', type: 'person', attributes: { 'last-name': 'Katz' } } }); }; run(function() { diff --git a/tests/integration/records/relationship-changes-test.js b/tests/integration/records/relationship-changes-test.js index bcba2658048..f6198586451 100644 --- a/tests/integration/records/relationship-changes-test.js +++ b/tests/integration/records/relationship-changes-test.js @@ -1,16 +1,17 @@ -import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { alias } from "@ember/object/computed"; +import { run } from "@ember/runloop"; +import EmberObject, { set, get } from "@ember/object"; +import setupStore from "dummy/tests/helpers/store"; -import DS from 'ember-data'; -import { module, test } from 'qunit'; +import DS from "ember-data"; +import { module, test } from "qunit"; -const { run, get, set, computed } = Ember; const { attr, belongsTo, hasMany, Model } = DS; let env, store; const Author = Model.extend({ - name: attr('string') + name: attr("string") }); const Post = Model.extend({ @@ -18,82 +19,82 @@ const Post = Model.extend({ }); const Person = DS.Model.extend({ - firstName: attr('string'), - lastName: attr('string'), - siblings: hasMany('person') + firstName: attr("string"), + lastName: attr("string"), + siblings: hasMany("person") }); const sibling1 = { - type: 'person', - id: '1', + type: "person", + id: "1", attributes: { - firstName: 'Dogzn', - lastName: 'Katz' + firstName: "Dogzn", + lastName: "Katz" } }; const sibling1Ref = { - type: 'person', - id: '1' + type: "person", + id: "1" }; const sibling2 = { - type: 'person', - id: '2', + type: "person", + id: "2", attributes: { - firstName: 'Katzn', - lastName: 'Dogz' + firstName: "Katzn", + lastName: "Dogz" } }; const sibling2Ref = { - type: 'person', - id: '2' + type: "person", + id: "2" }; const sibling3 = { - type: 'person', - id: '3', + type: "person", + id: "3", attributes: { - firstName: 'Snakezn', - lastName: 'Ladderz' + firstName: "Snakezn", + lastName: "Ladderz" } }; const sibling3Ref = { - type: 'person', - id: '3' + type: "person", + id: "3" }; const sibling4 = { - type: 'person', - id: '4', + type: "person", + id: "4", attributes: { - firstName: 'Hamsterzn', - lastName: 'Gerbilz' + firstName: "Hamsterzn", + lastName: "Gerbilz" } }; const sibling4Ref = { - type: 'person', - id: '4' + type: "person", + id: "4" }; const sibling5 = { - type: 'person', - id: '5', + type: "person", + id: "5", attributes: { - firstName: 'Donkeyzn', - lastName: 'Llamaz' + firstName: "Donkeyzn", + lastName: "Llamaz" } }; const sibling5Ref = { - type: 'person', - id: '5' + type: "person", + id: "5" }; -module('integration/records/relationship-changes - Relationship changes', { +module("integration/records/relationship-changes - Relationship changes", { beforeEach() { env = setupStore({ person: Person, @@ -110,7 +111,9 @@ module('integration/records/relationship-changes - Relationship changes', { } }); -test('Calling push with relationship triggers observers once if the relationship was empty and is added to', function(assert) { +test("Calling push with relationship triggers observers once if the relationship was empty and is added to", function( + assert +) { assert.expect(1); let person = null; let observerCount = 0; @@ -118,11 +121,11 @@ test('Calling push with relationship triggers observers once if the relationship run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -131,47 +134,49 @@ test('Calling push with relationship triggers observers once if the relationship } } }); - person = store.peekRecord('person', 'wat'); + person = store.peekRecord("person", "wat"); }); run(() => { - person.addObserver('siblings.[]', function() { + person.addObserver("siblings.[]", function() { observerCount++; }); // prime the pump - person.get('siblings'); + person.get("siblings"); }); run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref] } } }, - included: [ - sibling1 - ] + included: [sibling1] }); }); run(() => { - assert.ok(observerCount >= 1, 'siblings observer should be triggered at least once'); + assert.ok( + observerCount >= 1, + "siblings observer should be triggered at least once" + ); }); }); -test('Calling push with relationship recalculates computed alias property if the relationship was empty and is added to', function(assert) { +test("Calling push with relationship recalculates computed alias property if the relationship was empty and is added to", function( + assert +) { assert.expect(1); - let Obj = Ember.Object.extend({ + let Obj = EmberObject.extend({ person: null, - siblings: computed.alias('person.siblings') + siblings: alias("person.siblings") }); const obj = Obj.create(); @@ -179,11 +184,11 @@ test('Calling push with relationship recalculates computed alias property if the run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -192,41 +197,40 @@ test('Calling push with relationship recalculates computed alias property if the } } }); - set(obj, 'person', store.peekRecord('person', 'wat')); + set(obj, "person", store.peekRecord("person", "wat")); }); run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref] } } }, - included: [ - sibling1 - ] + included: [sibling1] }); }); run(() => { - let cpResult = get(obj, 'siblings').toArray(); - assert.equal(cpResult.length, 1, 'siblings cp should have recalculated'); + let cpResult = get(obj, "siblings").toArray(); + assert.equal(cpResult.length, 1, "siblings cp should have recalculated"); obj.destroy(); }); }); -test('Calling push with relationship recalculates computed alias property to firstObject if the relationship was empty and is added to', function(assert) { +test("Calling push with relationship recalculates computed alias property to firstObject if the relationship was empty and is added to", function( + assert +) { assert.expect(1); - let Obj = Ember.Object.extend({ + let Obj = EmberObject.extend({ person: null, - firstSibling: computed.alias('person.siblings.firstObject') + firstSibling: alias("person.siblings.firstObject") }); const obj = Obj.create(); @@ -234,11 +238,11 @@ test('Calling push with relationship recalculates computed alias property to fir run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -247,36 +251,39 @@ test('Calling push with relationship recalculates computed alias property to fir } } }); - set(obj, 'person', store.peekRecord('person', 'wat')); + set(obj, "person", store.peekRecord("person", "wat")); }); run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref] } } }, - included: [ - sibling1 - ] + included: [sibling1] }); }); run(() => { - let cpResult = get(obj, 'firstSibling'); - assert.equal(get(cpResult, 'id'), 1, 'siblings cp should have recalculated'); + let cpResult = get(obj, "firstSibling"); + assert.equal( + get(cpResult, "id"), + 1, + "siblings cp should have recalculated" + ); obj.destroy(); }); }); -test('Calling push with relationship triggers observers once if the relationship was not empty and was added to', function(assert) { +test("Calling push with relationship triggers observers once if the relationship was not empty and was added to", function( + assert +) { assert.expect(1); let person = null; let observerCount = 0; @@ -284,11 +291,11 @@ test('Calling push with relationship triggers observers once if the relationship run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -296,46 +303,46 @@ test('Calling push with relationship triggers observers once if the relationship } } }, - included: [ - sibling1 - ] + included: [sibling1] }); - person = store.peekRecord('person', 'wat'); + person = store.peekRecord("person", "wat"); }); run(() => { - person.addObserver('siblings.[]', function() { + person.addObserver("siblings.[]", function() { observerCount++; }); // prime the pump - person.get('siblings'); + person.get("siblings"); }); run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref, sibling2Ref] } } }, - included: [ - sibling2 - ] + included: [sibling2] }); }); run(() => { - assert.ok(observerCount >= 1, 'siblings observer should be triggered at least once'); + assert.ok( + observerCount >= 1, + "siblings observer should be triggered at least once" + ); }); }); -test('Calling push with relationship triggers observers once if the relationship was made shorter', function(assert) { +test("Calling push with relationship triggers observers once if the relationship was made shorter", function( + assert +) { assert.expect(1); let person = null; let observerCount = 0; @@ -343,11 +350,11 @@ test('Calling push with relationship triggers observers once if the relationship run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -355,29 +362,25 @@ test('Calling push with relationship triggers observers once if the relationship } } }, - included: [ - sibling1 - ] + included: [sibling1] }); - person = store.peekRecord('person', 'wat'); + person = store.peekRecord("person", "wat"); }); run(() => { - person.addObserver('siblings.[]', function() { + person.addObserver("siblings.[]", function() { observerCount++; }); // prime the pump - person.get('siblings'); + person.get("siblings"); }); - run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [] @@ -389,11 +392,16 @@ test('Calling push with relationship triggers observers once if the relationship }); run(() => { - assert.ok(observerCount >= 1, 'siblings observer should be triggered at least once'); + assert.ok( + observerCount >= 1, + "siblings observer should be triggered at least once" + ); }); }); -test('Calling push with relationship triggers observers once if the relationship was reordered', function(assert) { +test("Calling push with relationship triggers observers once if the relationship was reordered", function( + assert +) { assert.expect(1); let person = null; let observerCount = 0; @@ -401,11 +409,11 @@ test('Calling push with relationship triggers observers once if the relationship run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -413,31 +421,25 @@ test('Calling push with relationship triggers observers once if the relationship } } }, - included: [ - sibling1, - sibling2 - ] - + included: [sibling1, sibling2] }); - person = store.peekRecord('person', 'wat'); + person = store.peekRecord("person", "wat"); }); run(() => { - person.addObserver('siblings.[]', function() { + person.addObserver("siblings.[]", function() { observerCount++; }); // prime the pump - person.get('siblings'); + person.get("siblings"); }); - run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling2Ref, sibling1Ref] @@ -449,11 +451,16 @@ test('Calling push with relationship triggers observers once if the relationship }); run(() => { - assert.ok(observerCount >= 1, 'siblings observer should be triggered at least once'); + assert.ok( + observerCount >= 1, + "siblings observer should be triggered at least once" + ); }); }); -test('Calling push with relationship does not trigger observers if the relationship was not changed', function(assert) { +test("Calling push with relationship does not trigger observers if the relationship was not changed", function( + assert +) { assert.expect(1); let person = null; let observerCount = 0; @@ -461,11 +468,11 @@ test('Calling push with relationship does not trigger observers if the relations run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -473,30 +480,25 @@ test('Calling push with relationship does not trigger observers if the relations } } }, - included: [ - sibling1 - ] - + included: [sibling1] }); - person = store.peekRecord('person', 'wat'); + person = store.peekRecord("person", "wat"); }); run(() => { // prime the pump - person.get('siblings'); - person.addObserver('siblings.[]', function() { + person.get("siblings"); + person.addObserver("siblings.[]", function() { observerCount++; }); }); - run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref] @@ -508,38 +510,40 @@ test('Calling push with relationship does not trigger observers if the relations }); run(() => { - assert.equal(observerCount, 0, 'siblings observer should not be triggered'); + assert.equal(observerCount, 0, "siblings observer should not be triggered"); }); }); -test('Calling push with relationship triggers willChange and didChange with detail when appending', function(assert) { +test("Calling push with relationship triggers willChange and didChange with detail when appending", function( + assert +) { let willChangeCount = 0; let didChangeCount = 0; let observer = { arrayWillChange(array, start, removing, adding) { willChangeCount++; - assert.equal(start, 1, 'willChange.start'); - assert.equal(removing, 0, 'willChange.removing'); - assert.equal(adding, 1, 'willChange.adding'); + assert.equal(start, 1, "willChange.start"); + assert.equal(removing, 0, "willChange.removing"); + assert.equal(adding, 1, "willChange.adding"); }, arrayDidChange(array, start, removed, added) { didChangeCount++; - assert.equal(start, 1, 'didChange.start'); - assert.equal(removed, 0, 'didChange.removed'); - assert.equal(added, 1, 'didChange.added'); + assert.equal(start, 1, "didChange.start"); + assert.equal(removed, 0, "didChange.removed"); + assert.equal(added, 1, "didChange.added"); } }; run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -547,56 +551,59 @@ test('Calling push with relationship triggers willChange and didChange with deta } } }, - included: [ - sibling1 - ] - + included: [sibling1] }); }); - - let person = store.peekRecord('person', 'wat'); - let siblings = run(() => person.get('siblings')); + let person = store.peekRecord("person", "wat"); + let siblings = run(() => person.get("siblings")); siblings.addArrayObserver(observer); run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref, sibling2Ref] } } }, - included: [ - sibling2 - ] + included: [sibling2] }); }); - assert.equal(willChangeCount, 1, 'willChange observer should be triggered once'); - assert.equal(didChangeCount, 1, 'didChange observer should be triggered once'); + assert.equal( + willChangeCount, + 1, + "willChange observer should be triggered once" + ); + assert.equal( + didChangeCount, + 1, + "didChange observer should be triggered once" + ); siblings.removeArrayObserver(observer); }); -test('Calling push with relationship triggers willChange and didChange with detail when truncating', function(assert) { +test("Calling push with relationship triggers willChange and didChange with detail when truncating", function( + assert +) { let willChangeCount = 0; let didChangeCount = 0; run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -604,14 +611,12 @@ test('Calling push with relationship triggers willChange and didChange with deta } } }, - included: [ - sibling1, sibling2 - ] + included: [sibling1, sibling2] }); }); - let person = store.peekRecord('person', 'wat'); - let siblings = run(() => person.get('siblings')); + let person = store.peekRecord("person", "wat"); + let siblings = run(() => person.get("siblings")); let observer = { arrayWillChange(array, start, removing, adding) { @@ -634,10 +639,9 @@ test('Calling push with relationship triggers willChange and didChange with deta run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref] @@ -648,24 +652,34 @@ test('Calling push with relationship triggers willChange and didChange with deta }); }); - assert.equal(willChangeCount, 1, 'willChange observer should be triggered once'); - assert.equal(didChangeCount, 1, 'didChange observer should be triggered once'); + assert.equal( + willChangeCount, + 1, + "willChange observer should be triggered once" + ); + assert.equal( + didChangeCount, + 1, + "didChange observer should be triggered once" + ); siblings.removeArrayObserver(observer); }); -test('Calling push with relationship triggers willChange and didChange with detail when inserting at front', function(assert) { +test("Calling push with relationship triggers willChange and didChange with detail when inserting at front", function( + assert +) { let willChangeCount = 0; let didChangeCount = 0; run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -673,12 +687,10 @@ test('Calling push with relationship triggers willChange and didChange with deta } } }, - included: [ - sibling2 - ] + included: [sibling2] }); }); - let person = store.peekRecord('person', 'wat'); + let person = store.peekRecord("person", "wat"); let observer = { arrayWillChange(array, start, removing, adding) { @@ -696,46 +708,53 @@ test('Calling push with relationship triggers willChange and didChange with deta } }; - let siblings = run(() => person.get('siblings')); + let siblings = run(() => person.get("siblings")); siblings.addArrayObserver(observer); run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref, sibling2Ref] } } }, - included: [ - sibling2 - ] + included: [sibling2] }); }); - assert.equal(willChangeCount, 1, 'willChange observer should be triggered once'); - assert.equal(didChangeCount, 1, 'didChange observer should be triggered once'); + assert.equal( + willChangeCount, + 1, + "willChange observer should be triggered once" + ); + assert.equal( + didChangeCount, + 1, + "didChange observer should be triggered once" + ); siblings.removeArrayObserver(observer); }); -test('Calling push with relationship triggers willChange and didChange with detail when inserting in middle', function(assert) { +test("Calling push with relationship triggers willChange and didChange with detail when inserting in middle", function( + assert +) { let willChangeCount = 0; let didChangeCount = 0; run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -743,14 +762,10 @@ test('Calling push with relationship triggers willChange and didChange with deta } } }, - included: [ - sibling1, - sibling3 - ] - + included: [sibling1, sibling3] }); }); - let person = store.peekRecord('person', 'wat'); + let person = store.peekRecord("person", "wat"); let observer = { arrayWillChange(array, start, removing, adding) { willChangeCount++; @@ -766,46 +781,53 @@ test('Calling push with relationship triggers willChange and didChange with deta } }; - let siblings = run(() => person.get('siblings')); + let siblings = run(() => person.get("siblings")); siblings.addArrayObserver(observer); run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref, sibling2Ref, sibling3Ref] } } }, - included: [ - sibling2 - ] + included: [sibling2] }); }); - assert.equal(willChangeCount, 1, 'willChange observer should be triggered once'); - assert.equal(didChangeCount, 1, 'didChange observer should be triggered once'); + assert.equal( + willChangeCount, + 1, + "willChange observer should be triggered once" + ); + assert.equal( + didChangeCount, + 1, + "didChange observer should be triggered once" + ); siblings.removeArrayObserver(observer); }); -test('Calling push with relationship triggers willChange and didChange with detail when replacing different length in middle', function(assert) { +test("Calling push with relationship triggers willChange and didChange with detail when replacing different length in middle", function( + assert +) { let willChangeCount = 0; let didChangeCount = 0; run(() => { store.push({ data: { - type: 'person', - id: 'wat', + type: "person", + id: "wat", attributes: { - firstName: 'Yehuda', - lastName: 'Katz' + firstName: "Yehuda", + lastName: "Katz" }, relationships: { siblings: { @@ -813,15 +835,11 @@ test('Calling push with relationship triggers willChange and didChange with deta } } }, - included: [ - sibling1, - sibling2, - sibling3 - ] + included: [sibling1, sibling2, sibling3] }); }); - let person = store.peekRecord('person', 'wat'); + let person = store.peekRecord("person", "wat"); let observer = { arrayWillChange(array, start, removing, adding) { willChangeCount++; @@ -838,36 +856,42 @@ test('Calling push with relationship triggers willChange and didChange with deta } }; - let siblings = run(() => person.get('siblings')); + let siblings = run(() => person.get("siblings")); siblings.addArrayObserver(observer); run(() => { store.push({ data: { - type: 'person', - id: 'wat', - attributes: { - }, + type: "person", + id: "wat", + attributes: {}, relationships: { siblings: { data: [sibling1Ref, sibling4Ref, sibling5Ref, sibling3Ref] } } }, - included: [ - sibling4, - sibling5 - ] + included: [sibling4, sibling5] }); }); - assert.equal(willChangeCount, 1, 'willChange observer should be triggered once'); - assert.equal(didChangeCount, 1, 'didChange observer should be triggered once'); + assert.equal( + willChangeCount, + 1, + "willChange observer should be triggered once" + ); + assert.equal( + didChangeCount, + 1, + "didChange observer should be triggered once" + ); siblings.removeArrayObserver(observer); }); -test('Calling push with updated belongsTo relationship trigger observer', function(assert) { +test("Calling push with updated belongsTo relationship trigger observer", function( + assert +) { assert.expect(1); let observerCount = 0; @@ -875,44 +899,48 @@ test('Calling push with updated belongsTo relationship trigger observer', functi run(() => { let post = env.store.push({ data: { - type: 'post', - id: '1', + type: "post", + id: "1", relationships: { author: { - data: { type: 'author', id: '2' } + data: { type: "author", id: "2" } } } }, - included: [{ - id: 2, - type: 'author' - }] + included: [ + { + id: 2, + type: "author" + } + ] }); // as with all cps, observers don't fire if the cp isn't lazy. - post.get('author'); + post.get("author"); - post.addObserver('author', function() { + post.addObserver("author", function() { observerCount++; }); env.store.push({ data: { - type: 'post', - id: '1', + type: "post", + id: "1", relationships: { author: { - data: { type: 'author', id: '3' } + data: { type: "author", id: "3" } } } } }); }); - assert.equal(observerCount, 1, 'author observer should be triggered once'); + assert.equal(observerCount, 1, "author observer should be triggered once"); }); -test('Calling push with same belongsTo relationship does not trigger observer', function(assert) { +test("Calling push with same belongsTo relationship does not trigger observer", function( + assert +) { assert.expect(1); let observerCount = 0; @@ -920,32 +948,32 @@ test('Calling push with same belongsTo relationship does not trigger observer', run(() => { let post = env.store.push({ data: { - type: 'post', - id: '1', + type: "post", + id: "1", relationships: { author: { - data: { type: 'author', id: '2' } + data: { type: "author", id: "2" } } } } }); - post.addObserver('author', function() { + post.addObserver("author", function() { observerCount++; }); env.store.push({ data: { - type: 'post', - id: '1', + type: "post", + id: "1", relationships: { author: { - data: { type: 'author', id: '2' } + data: { type: "author", id: "2" } } } } }); }); - assert.equal(observerCount, 0, 'author observer should not be triggered'); + assert.equal(observerCount, 0, "author observer should not be triggered"); }); diff --git a/tests/integration/records/reload-test.js b/tests/integration/records/reload-test.js index 76bc76b4b36..31ef546fca5 100644 --- a/tests/integration/records/reload-test.js +++ b/tests/integration/records/reload-test.js @@ -1,14 +1,14 @@ +import { resolve, reject } from 'rsvp'; +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -var get = Ember.get; var attr = DS.attr; var Person, env; -var run = Ember.run; module("integration/reload - Reloading Records", { beforeEach() { @@ -33,10 +33,10 @@ test("When a single record is requested, the adapter's find method should be cal env.adapter.findRecord = function(store, type, id, snapshot) { if (count === 0) { count++; - return Ember.RSVP.resolve({ data: { id: id, type: 'person', attributes: { name: "Tom Dale" } } }); + return resolve({ data: { id: id, type: 'person', attributes: { name: "Tom Dale" } } }); } else if (count === 1) { count++; - return Ember.RSVP.resolve({ data: { id: id, type: 'person', attributes: { name: "Braaaahm Dale" } } }); + return resolve({ data: { id: id, type: 'person', attributes: { name: "Braaaahm Dale" } } }); } else { assert.ok(false, "Should not get here"); } @@ -75,9 +75,9 @@ test("When a record is reloaded and fails, it can try again", function(assert) { env.adapter.findRecord = function(store, type, id, snapshot) { assert.equal(tom.get('isReloading'), true, "Tom is reloading"); if (count++ === 0) { - return Ember.RSVP.reject(); + return reject(); } else { - return Ember.RSVP.resolve({ data: { id: 1, type: 'person', attributes: { name: "Thomas Dale" } } }); + return resolve({ data: { id: 1, type: 'person', attributes: { name: "Thomas Dale" } } }); } }; @@ -147,7 +147,7 @@ test("When a record is reloaded, its async hasMany relationships still work", fu env.adapter.findRecord = function(store, type, id, snapshot) { switch (type.modelName) { case 'person': - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'person', @@ -163,7 +163,7 @@ test("When a record is reloaded, its async hasMany relationships still work", fu } }); case 'tag': - return Ember.RSVP.resolve({ data: { id: id, type: 'tag', attributes: { name: tags[id] } } }); + return resolve({ data: { id: id, type: 'tag', attributes: { name: tags[id] } } }); } }; diff --git a/tests/integration/records/rematerialize-test.js b/tests/integration/records/rematerialize-test.js index d3aa5a738a4..0e7917043b6 100644 --- a/tests/integration/records/rematerialize-test.js +++ b/tests/integration/records/rematerialize-test.js @@ -1,16 +1,16 @@ /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "(adam|bob|dudu)" }]*/ +import { run } from '@ember/runloop'; + import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let attr = DS.attr; let belongsTo = DS.belongsTo; let hasMany = DS.hasMany; -let run = Ember.run; let env; let Person = DS.Model.extend({ @@ -50,7 +50,7 @@ module("integration/unload - Rematerializing Unloaded Records", { }, afterEach() { - Ember.run(function() { + run(function() { env.container.destroy(); }); } diff --git a/tests/integration/records/save-test.js b/tests/integration/records/save-test.js index 397906fba22..562870048a5 100644 --- a/tests/integration/records/save-test.js +++ b/tests/integration/records/save-test.js @@ -1,12 +1,12 @@ +import { defer, reject, resolve } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var Post, env; -var run = Ember.run; module("integration/records/save - Save Record", { beforeEach() { @@ -29,7 +29,7 @@ test("Will resolve save on success", function(assert) { post = env.store.createRecord('post', { title: 'toto' }); }); - var deferred = Ember.RSVP.defer(); + var deferred = defer(); env.adapter.createRecord = function(store, type, snapshot) { return deferred.promise; }; @@ -58,7 +58,7 @@ test("Will reject save on error", function(assert) { env.adapter.createRecord = function(store, type, snapshot) { var error = new DS.InvalidError([{ title: 'not valid' }]); - return Ember.RSVP.reject(error); + return reject(error); }; run(function() { @@ -80,9 +80,9 @@ test("Retry is allowed in a failure handler", function(assert) { var error = new DS.InvalidError([{ title: 'not valid' }]); if (count++ === 0) { - return Ember.RSVP.reject(error); + return reject(error); } else { - return Ember.RSVP.resolve({ data: { id: 123, type: 'post' } }); + return resolve({ data: { id: 123, type: 'post' } }); } }; @@ -104,7 +104,7 @@ test("Repeated failed saves keeps the record in uncommited state", function(asse }); env.adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.reject(); + return reject(); }; run(function() { @@ -136,7 +136,7 @@ test("Repeated failed saves with invalid error marks the record as invalid", fun } ]); - return Ember.RSVP.reject(error); + return reject(error); }; run(function() { @@ -161,7 +161,7 @@ test("Repeated failed saves with invalid error without payload marks the record env.adapter.createRecord = function(store, type, snapshot) { var error = new DS.InvalidError(); - return Ember.RSVP.reject(error); + return reject(error); }; run(function() { @@ -185,7 +185,7 @@ test("Will reject save on invalid", function(assert) { env.adapter.createRecord = function(store, type, snapshot) { var error = new DS.InvalidError([{ title: 'not valid' }]); - return Ember.RSVP.reject(error); + return reject(error); }; run(function() { diff --git a/tests/integration/records/unload-test.js b/tests/integration/records/unload-test.js index 117d9bb994f..99bb0e83215 100644 --- a/tests/integration/records/unload-test.js +++ b/tests/integration/records/unload-test.js @@ -1,16 +1,18 @@ /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "(adam|bob|dudu)" }]*/ +import { Promise as EmberPromise } from 'rsvp'; + +import { run } from '@ember/runloop'; + import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let attr = DS.attr; let belongsTo = DS.belongsTo; let hasMany = DS.hasMany; -let run = Ember.run; let env; let Person = DS.Model.extend({ @@ -57,7 +59,7 @@ module("integration/unload - Unloading Records", { }, afterEach() { - Ember.run(function() { + run(function() { env.container.destroy(); }); } @@ -101,7 +103,7 @@ test("can unload a single record", function(assert) { assert.equal(relPayloads.get('person', 1, 'cars').data.length, 1, 'one car relationship payload is cached'); assert.equal(relPayloads.get('person', 1, 'boats').data.length, 1, 'one boat relationship payload is cached'); - Ember.run(function() { + run(function() { adam.unloadRecord(); }); @@ -162,7 +164,7 @@ test("can unload all records for a given type", function(assert) { assert.equal(relPayloads.get('car', 1, 'person').data.id, 1, 'car - person payload is loaded'); - Ember.run(function() { + run(function() { env.store.unloadAll('person'); }); @@ -171,7 +173,7 @@ test("can unload all records for a given type", function(assert) { assert.equal(env.store._internalModelsFor('person').length, 0, 'zero person internalModels loaded'); assert.equal(env.store._internalModelsFor('car').length, 1, 'one car internalModel loaded'); - Ember.run(function() { + run(function() { env.store.push({ data: { id: 1, @@ -233,7 +235,7 @@ test("can unload all records", function(assert) { assert.equal(env.store.peekAll('car').get('length'), 1, 'one car record loaded'); assert.equal(env.store._internalModelsFor('car').length, 1, 'one car internalModel loaded'); - Ember.run(function() { + run(function() { env.store.unloadAll(); }); @@ -270,7 +272,7 @@ test("removes findAllCache after unloading all records", function(assert) { assert.equal(env.store.peekAll('person').get('length'), 2, 'two person records loaded'); assert.equal(env.store._internalModelsFor('person').length, 2, 'two person internalModels loaded'); - Ember.run(function() { + run(function() { env.store.peekAll('person'); env.store.unloadAll('person'); }); @@ -305,7 +307,7 @@ test("unloading all records also updates record array from peekAll()", function( assert.equal(all.get('length'), 2); - Ember.run(function() { + run(function() { env.store.unloadAll('person'); }); assert.equal(all.get('length'), 0); @@ -693,7 +695,7 @@ test("after unloading a record, the record can be fetched again soon there after // stub findRecord env.adapter.findRecord = () => { - return Ember.RSVP.Promise.resolve({ + return EmberPromise.resolve({ data: { type: 'person', id: '1', @@ -750,7 +752,7 @@ test('after unloading a record, the record can be saved again immediately', func } }; - env.adapter.createRecord = () => Ember.RSVP.Promise.resolve(data); + env.adapter.createRecord = () => EmberPromise.resolve(data); run(() => { // add an initial record with id '1' to the store diff --git a/tests/integration/references/belongs-to-test.js b/tests/integration/references/belongs-to-test.js index 9ba234c1ff8..fab5da5d26e 100644 --- a/tests/integration/references/belongs-to-test.js +++ b/tests/integration/references/belongs-to-test.js @@ -1,12 +1,12 @@ +import { defer, resolve } from 'rsvp'; +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import DS from 'ember-data'; -import Ember from 'ember'; import setupStore from 'dummy/tests/helpers/store'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; import { isEnabled } from 'ember-data/-private'; import { module, test } from 'qunit'; -var get = Ember.get; -var run = Ember.run; var env, Family; module("integration/references/belongs-to", { @@ -248,7 +248,7 @@ test("push(promise)", function(assert) { var done = assert.async(); var push; - var deferred = Ember.RSVP.defer(); + var deferred = defer(); run(function() { var person = env.store.push({ @@ -409,7 +409,7 @@ test("load() fetches the record", function(assert) { var done = assert.async(); env.adapter.findRecord = function(store, type, id) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'family', @@ -450,7 +450,7 @@ test("load() fetches link when remoteType is link", function(assert) { env.adapter.findBelongsTo = function(store, snapshot, link) { assert.equal(link, "/families/1"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'family', @@ -494,7 +494,7 @@ test("reload() - loads the record when not yet loaded", function(assert) { count++; assert.equal(count, 1); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'family', @@ -537,7 +537,7 @@ test("reload() - reloads the record when already loaded", function(assert) { count++; assert.equal(count, 1); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'family', @@ -584,7 +584,7 @@ test("reload() - uses link to reload record", function(assert) { env.adapter.findBelongsTo = function(store, snapshot, link) { assert.equal(link, "/families/1"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'family', diff --git a/tests/integration/references/has-many-test.js b/tests/integration/references/has-many-test.js index 19a756c14de..3f094b647be 100755 --- a/tests/integration/references/has-many-test.js +++ b/tests/integration/references/has-many-test.js @@ -1,12 +1,12 @@ +import { defer, resolve } from 'rsvp'; +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import DS from 'ember-data'; -import Ember from 'ember'; import setupStore from 'dummy/tests/helpers/store'; import { isEnabled } from 'ember-data/-private'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; import { module, test } from 'qunit'; -var get = Ember.get; -var run = Ember.run; var env, Person; module("integration/references/has-many", { @@ -431,7 +431,7 @@ test("push(promise)", function(assert) { var done = assert.async(); var push; - var deferred = Ember.RSVP.defer(); + var deferred = defer(); run(function() { var family = env.store.push({ @@ -588,7 +588,7 @@ test("load() fetches the referenced records", function(assert) { var done = assert.async(); env.adapter.findMany = function(store, type, id) { - return Ember.RSVP.resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito" } }, { id: 2, type: 'person', attributes: { name: "Michael" } }] }); + return resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito" } }, { id: 2, type: 'person', attributes: { name: "Michael" } }] }); }; var family; @@ -629,7 +629,7 @@ test("load() fetches link when remoteType is link", function(assert) { env.adapter.findHasMany = function(store, snapshot, link) { assert.equal(link, "/families/1/persons"); - return Ember.RSVP.resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito" } }, { id: 2, type: 'person', attributes: { name: "Michael" } }] }); + return resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito" } }, { id: 2, type: 'person', attributes: { name: "Michael" } }] }); }; var family; @@ -666,7 +666,7 @@ test("load() fetches link when remoteType is link but an empty set of records is env.adapter.findHasMany = function(store, snapshot, link) { assert.equal(link, "/families/1/persons"); - return Ember.RSVP.resolve({ data: [] }); + return resolve({ data: [] }); }; let family; @@ -699,7 +699,7 @@ test("load() fetches link when remoteType is link but an empty set of records is test("load() - only a single find is triggered", function(assert) { var done = assert.async(); - var deferred = Ember.RSVP.defer(); + var deferred = defer(); var count = 0; env.adapter.findMany = function(store, type, id) { @@ -753,7 +753,7 @@ test("reload()", function(assert) { var done = assert.async(); env.adapter.findMany = function(store, type, id) { - return Ember.RSVP.resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito Coreleone" } }, { id: 2, type: 'person', attributes: { name: "Michael Coreleone" } }] }); + return resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito Coreleone" } }, { id: 2, type: 'person', attributes: { name: "Michael Coreleone" } }] }); }; var family; @@ -799,9 +799,9 @@ test("reload() fetches link when remoteType is link", function(assert) { assert.equal(link, "/families/1/persons"); if (count === 1) { - return Ember.RSVP.resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito" } }, { id: 2, type: 'person', attributes: { name: "Michael" } }] }); + return resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito" } }, { id: 2, type: 'person', attributes: { name: "Michael" } }] }); } else { - return Ember.RSVP.resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito Coreleone" } }, { id: 2, type: 'person', attributes: { name: "Michael Coreleone" } }] }); + return resolve({ data: [{ id: 1, type: 'person', attributes: { name: "Vito Coreleone" } }, { id: 2, type: 'person', attributes: { name: "Michael Coreleone" } }] }); } }; diff --git a/tests/integration/references/record-test.js b/tests/integration/references/record-test.js index d29d547e093..553fd0d4116 100644 --- a/tests/integration/references/record-test.js +++ b/tests/integration/references/record-test.js @@ -1,10 +1,10 @@ +import { defer, resolve } from 'rsvp'; +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import DS from 'ember-data'; -import Ember from 'ember'; import setupStore from 'dummy/tests/helpers/store'; import { module, test } from 'qunit'; -var get = Ember.get; -var run = Ember.run; var env, Person; module("integration/references/record", { @@ -66,7 +66,7 @@ test("push(promise)", function(assert) { var done = assert.async(); var push; - var deferred = Ember.RSVP.defer(); + var deferred = defer(); var recordReference = env.store.getReference('person', 1); run(function() { @@ -121,7 +121,7 @@ test("load() fetches the record", function(assert) { var done = assert.async(); env.adapter.findRecord = function(store, type, id) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'person', @@ -145,7 +145,7 @@ test("load() fetches the record", function(assert) { test("load() only a single find is triggered", function(assert) { var done = assert.async(); - var deferred = Ember.RSVP.defer(); + var deferred = defer(); var count = 0; env.adapter.shouldReloadRecord = function() { return false; }; @@ -195,7 +195,7 @@ test("reload() loads the record if not yet loaded", function(assert) { count++; assert.equal(count, 1); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'person', @@ -221,7 +221,7 @@ test("reload() fetches the record", function(assert) { var done = assert.async(); env.adapter.findRecord = function(store, type, id) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'person', diff --git a/tests/integration/relationships/belongs-to-test.js b/tests/integration/relationships/belongs-to-test.js index 4926a77f273..8e1aeb4d0d9 100644 --- a/tests/integration/relationships/belongs-to-test.js +++ b/tests/integration/relationships/belongs-to-test.js @@ -1,3 +1,6 @@ +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; +import RSVP, { resolve } from 'rsvp'; import setupStore from 'dummy/tests/helpers/store'; import Ember from 'ember'; @@ -6,11 +9,10 @@ import { setup as setupModelFactoryInjections, reset as resetModelFactoryInjection } from 'dummy/tests/helpers/model-factory-injection'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run, RSVP } = Ember; const { attr, hasMany, belongsTo } = DS; const { hash } = RSVP; @@ -103,7 +105,7 @@ test("The store can materialize a non loaded monomorphic belongsTo association", env.adapter.shouldBackgroundReloadRecord = () => false; env.adapter.findRecord = function(store, type, id, snapshot) { assert.ok(true, "The adapter's find method should be called"); - return Ember.RSVP.resolve({ + return resolve({ data: { id, type: snapshot.modelName @@ -331,7 +333,7 @@ test("A serializer can materialize a belongsTo as a link that gets sent back to assert.equal(relationship.key, 'group'); assert.equal(link, "/people/1/group"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'group', @@ -388,7 +390,7 @@ test('A record with an async belongsTo relationship always returns a promise for }; env.adapter.findBelongsTo = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: { id: 1, type: 'seat' } }); + return resolve({ data: { id: 1, type: 'seat' } }); }; return run(() => { @@ -439,7 +441,7 @@ test("A record with an async belongsTo relationship returning null should resolv }; env.adapter.findBelongsTo = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: null }); + return resolve({ data: null }); }; return env.store.findRecord('person', '1').then(person => { @@ -866,7 +868,7 @@ test("belongsTo hasData async loaded", function(assert) { }); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', @@ -890,7 +892,7 @@ test("belongsTo hasData sync loaded", function(assert) { assert.expect(1); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', @@ -918,7 +920,7 @@ test("belongsTo hasData async not loaded", function(assert) { }); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', @@ -942,7 +944,7 @@ test("belongsTo hasData sync not loaded", function(assert) { assert.expect(1); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', @@ -1065,7 +1067,7 @@ test("Related link should be fetched when no local data is present", function(as env.adapter.findBelongsTo = function(store, snapshot, url, relationship) { assert.equal(url, 'author', 'url is correct'); assert.ok(true, "The adapter's findBelongsTo method should be called"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'author', @@ -1107,7 +1109,7 @@ test("Local data should take precedence over related link", function(assert) { }; env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'author', @@ -1148,7 +1150,7 @@ test("New related link should take precedence over local data", function(assert) env.adapter.findBelongsTo = function(store, snapshot, url, relationship) { assert.equal(url, 'author-new-link', 'url is correct'); assert.ok(true, "The adapter's findBelongsTo method should be called"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'author', @@ -1207,7 +1209,7 @@ test("Updated related link should take precedence over local data", function(ass env.adapter.findBelongsTo = function(store, snapshot, url, relationship) { assert.equal(url, 'author-updated-link', 'url is correct'); assert.ok(true, "The adapter's findBelongsTo method should be called"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'author', @@ -1336,7 +1338,7 @@ test("A belongsTo relationship can be reloaded using the reference if it was fet }); env.adapter.findRecord = function() { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'chapter', @@ -1350,7 +1352,7 @@ test("A belongsTo relationship can be reloaded using the reference if it was fet }; env.adapter.findBelongsTo = function() { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', @@ -1370,7 +1372,7 @@ test("A belongsTo relationship can be reloaded using the reference if it was fet assert.equal(book.get('name'), "book title"); env.adapter.findBelongsTo = function() { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', @@ -1416,7 +1418,7 @@ test("A sync belongsTo relationship can be reloaded using a reference if it was }); env.adapter.findRecord = function() { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', @@ -1456,7 +1458,7 @@ test("A belongsTo relationship can be reloaded using a reference if it was fetch }); env.adapter.findRecord = function() { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', @@ -1470,7 +1472,7 @@ test("A belongsTo relationship can be reloaded using a reference if it was fetch assert.equal(book.get('name'), "book title"); env.adapter.findRecord = function() { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'book', diff --git a/tests/integration/relationships/has-many-test.js b/tests/integration/relationships/has-many-test.js index 0db8908dd08..6ce847463cb 100644 --- a/tests/integration/relationships/has-many-test.js +++ b/tests/integration/relationships/has-many-test.js @@ -4,19 +4,28 @@ import { setup as setupModelFactoryInjections, reset as resetModelFactoryInjections } from 'dummy/tests/helpers/model-factory-injection'; +import { A } from '@ember/array'; + +import { + resolve, + Promise as EmberPromise, + all, + reject, + hash +} from 'rsvp'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; + import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let env, store, User, Contact, Email, Phone, Message, Post, Comment; let Book, Chapter, Page; -const { get, run } = Ember; -const { resolve } = Ember.RSVP; const { attr, hasMany, belongsTo } = DS; module("integration/relationships/has_many - Has-Many Relationships", { @@ -323,7 +332,7 @@ test("adapter.findMany only gets unique IDs even if duplicate IDs are present in assert.equal(type, Chapter, 'type passed to adapter.findMany is correct'); assert.deepEqual(ids, ['2', '3'], 'ids passed to adapter.findMany are unique'); - return Ember.RSVP.resolve({ + return resolve({ data: [ { id: 2, type: 'chapter', attributes: { title: 'Chapter One' } }, { id: 3, type: 'chapter', attributes: { title: 'Chapter Two' } } @@ -361,7 +370,7 @@ test("A serializer can materialize a hasMany as an opaque token that can be lazi assert.equal(type, Post, "find type was Post"); assert.equal(id, "1", "find id was 1"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -385,7 +394,7 @@ test("A serializer can materialize a hasMany as an opaque token that can be lazi assert.equal(link, "/posts/1/comments", "findHasMany link was /posts/1/comments"); assert.equal(relationship.type, "comment", "relationship was passed correctly"); - return Ember.RSVP.resolve({ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } @@ -436,7 +445,7 @@ test("Accessing a hasMany backed by a link multiple times triggers only one requ env.adapter.findHasMany = function(store, snapshot, link, relationship) { count++; assert.equal(count, 1, "findHasMany has only been called once"); - return new Ember.RSVP.Promise((resolve, reject) => { + return new EmberPromise((resolve, reject) => { setTimeout(() => { let value = { data: [ @@ -468,7 +477,7 @@ test("Accessing a hasMany backed by a link multiple times triggers only one requ promise2 = post.get('comments'); }); - return Ember.RSVP.all([ + return all([ promise1, promise2 ]).then(() => { @@ -487,7 +496,7 @@ test("A hasMany backed by a link remains a promise after a record has been added }); env.adapter.findHasMany = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } @@ -543,11 +552,11 @@ test("A hasMany updated link should not remove new children", function(assert) { }); env.adapter.findHasMany = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: [] }); + return resolve({ data: [] }); }; env.adapter.createRecord = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -587,13 +596,13 @@ test("A hasMany updated link should not remove new children when the parent reco }); env.adapter.findHasMany = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 5, type: 'comment', attributes: { body: 'hello' } } ]}); }; env.adapter.createRecord = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -633,7 +642,7 @@ test("A hasMany relationship doesn't contain duplicate children, after the canon }); env.adapter.createRecord = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: { id: 1, type: 'post' } }); + return resolve({ data: { id: 1, type: 'post' } }); }; return run(() => { @@ -697,7 +706,7 @@ test("A hasMany relationship can be reloaded if it was fetched via a link", func assert.equal(type, Post, "find type was Post"); assert.equal(id, "1", "find id was 1"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -715,7 +724,7 @@ test("A hasMany relationship can be reloaded if it was fetched via a link", func assert.equal(relationship.key, 'comments', "findHasMany relationship key was comments"); assert.equal(link, "/posts/1/comments", "findHasMany link was /posts/1/comments"); - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -733,7 +742,7 @@ test("A hasMany relationship can be reloaded if it was fetched via a link", func assert.equal(relationship.key, 'comments', "findHasMany relationship key was comments"); assert.equal(link, "/posts/1/comments", "findHasMany link was /posts/1/comments"); - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } }, { id: 3, type: 'comment', attributes: { body: "Thirds" } } @@ -756,7 +765,7 @@ test("A sync hasMany relationship can be reloaded if it was fetched via ids", fu assert.equal(type, Post, "find type was Post"); assert.equal(id, "1", "find id was 1"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -795,7 +804,7 @@ test("A sync hasMany relationship can be reloaded if it was fetched via ids", fu assert.equal(comments.get('length'), 2, "comments have a length of 2"); env.adapter.findMany = function(store, type, ids, snapshots) { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "FirstUpdated" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -817,7 +826,7 @@ test("A hasMany relationship can be reloaded if it was fetched via ids", functio assert.equal(type, Post, "find type was Post"); assert.equal(id, "1", "find id was 1"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -831,7 +840,7 @@ test("A hasMany relationship can be reloaded if it was fetched via ids", functio }; env.adapter.findMany = function(store, type, ids, snapshots) { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -845,7 +854,7 @@ test("A hasMany relationship can be reloaded if it was fetched via ids", functio assert.equal(comments.get('length'), 2, "comments have 2 length"); env.adapter.findMany = function(store, type, ids, snapshots) { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "FirstUpdated" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -866,7 +875,7 @@ test("A hasMany relationship can be reloaded even if it failed at the first time }); env.adapter.findRecord = function(store, type, id) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -883,9 +892,9 @@ test("A hasMany relationship can be reloaded even if it failed at the first time env.adapter.findHasMany = function(store, record, link, relationship) { loadingCount++; if (loadingCount % 2 === 0) { - return Ember.RSVP.reject(); + return reject(); } else { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "FirstUpdated" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -921,7 +930,7 @@ test("A hasMany relationship can be directly reloaded if it was fetched via link assert.equal(type, Post, "find type was Post"); assert.equal(id, "1", "find id was 1"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -937,7 +946,7 @@ test("A hasMany relationship can be directly reloaded if it was fetched via link env.adapter.findHasMany = function(store, record, link, relationship) { assert.equal(link, "/posts/1/comments", "findHasMany link was /posts/1/comments"); - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "FirstUpdated" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -962,7 +971,7 @@ test("Has many via links - Calling reload multiple times does not send a new req }); env.adapter.findRecord = function(store, type, id) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -978,7 +987,7 @@ test("Has many via links - Calling reload multiple times does not send a new req let count = 0; env.adapter.findHasMany = function(store, record, link, relationship) { count++; - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -986,7 +995,7 @@ test("Has many via links - Calling reload multiple times does not send a new req run(function() { env.store.findRecord('post', 1).then(function(post) { post.get('comments').then(function(comments) { - Ember.RSVP.all([comments.reload(), comments.reload(), comments.reload()]).then(function(comments) { + all([comments.reload(), comments.reload(), comments.reload()]).then(function(comments) { assert.equal(count, 2, "One request for the original access and only one request for the mulitple reloads"); done(); }); @@ -1004,7 +1013,7 @@ test("A hasMany relationship can be directly reloaded if it was fetched via ids" assert.equal(type, Post, "find type was Post"); assert.equal(id, "1", "find id was 1"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -1018,7 +1027,7 @@ test("A hasMany relationship can be directly reloaded if it was fetched via ids" }; env.adapter.findMany = function(store, type, ids, snapshots) { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "FirstUpdated" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -1044,7 +1053,7 @@ test("Has many via ids - Calling reload multiple times does not send a new reque }); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'post', @@ -1060,7 +1069,7 @@ test("Has many via ids - Calling reload multiple times does not send a new reque let count = 0; env.adapter.findMany = function(store, type, ids, snapshots) { count++; - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "FirstUpdated" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -1069,7 +1078,7 @@ test("Has many via ids - Calling reload multiple times does not send a new reque run(function() { env.store.findRecord('post', 1).then(function(post) { post.get('comments').then(function(comments) { - Ember.RSVP.all([comments.reload(), comments.reload(), comments.reload()]).then(function(comments) { + all([comments.reload(), comments.reload(), comments.reload()]).then(function(comments) { assert.equal(count, 2, "One request for the original access and only one request for the mulitple reloads"); done(); }); @@ -1086,7 +1095,7 @@ test("PromiseArray proxies createRecord to its ManyArray once the hasMany is loa }); env.adapter.findHasMany = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -1130,7 +1139,7 @@ test("PromiseArray proxies evented methods to its ManyArray", function(assert) { }); env.adapter.findHasMany = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); @@ -1197,12 +1206,12 @@ test("An updated `links` value should invalidate a relationship cache", function assert.equal(relationship.type, "comment", "relationship was passed correctly"); if (link === '/first') { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); } else if (link === '/second') { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 3, type: 'comment', attributes: { body: "Third" } }, { id: 4, type: 'comment', attributes: { body: "Fourth" } }, { id: 5, type: 'comment', attributes: { body: "Fifth" } } @@ -1307,9 +1316,9 @@ test("When a polymorphic hasMany relationship is accessed, the store can call mu env.adapter.shouldBackgroundReloadRecord = () => false; env.adapter.findRecord = function(store, type, id, snapshot) { if (type === Post) { - return Ember.RSVP.resolve({ data: { id: 1, type: 'post' } }); + return resolve({ data: { id: 1, type: 'post' } }); } else if (type === Comment) { - return Ember.RSVP.resolve({ data: { id: 3, type: 'comment' } }); + return resolve({ data: { id: 3, type: 'comment' } }); } }; @@ -1567,7 +1576,7 @@ testInDebug("Only records of the same type can be added to a monomorphic hasMany }); run(function() { - Ember.RSVP.all([ + all([ env.store.findRecord('post', 1), env.store.findRecord('post', 2) ]).then(function(records) { @@ -1617,7 +1626,7 @@ testInDebug("Only records of the same base modelClass can be added to a polymorp let asyncRecords; run(function() { - asyncRecords = Ember.RSVP.hash({ + asyncRecords = hash({ user: env.store.findRecord('user', 1), anotherUser: env.store.findRecord('user', 2), post: env.store.findRecord('post', 1), @@ -1626,7 +1635,7 @@ testInDebug("Only records of the same base modelClass can be added to a polymorp asyncRecords.then(function(records) { records.messages = records.user.get('messages'); - return Ember.RSVP.hash(records); + return hash(records); }).then(function(records) { records.messages.pushObject(records.post); records.messages.pushObject(records.comment); @@ -1664,14 +1673,14 @@ test("A record can be removed from a polymorphic association", function(assert) let asyncRecords; run(function() { - asyncRecords = Ember.RSVP.hash({ + asyncRecords = hash({ user: env.store.findRecord('user', 1), comment: env.store.findRecord('comment', 3) }); asyncRecords.then(function(records) { records.messages = records.user.get('messages'); - return Ember.RSVP.hash(records); + return hash(records); }).then(function(records) { assert.equal(records.messages.get('length'), 1, "The user has 1 message"); @@ -1792,7 +1801,7 @@ test("When a record is saved, its unsaved hasMany records should be kept", funct let post, comment; env.adapter.createRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve({ data: { id: 1, type: snapshot.modelName } }); + return resolve({ data: { id: 1, type: snapshot.modelName } }); }; return run(() => { @@ -1817,7 +1826,7 @@ test("dual non-async HM <-> BT", function(assert) { env.adapter.createRecord = function(store, type, snapshot) { let serialized = snapshot.record.serialize(); serialized.data.id = 2; - return Ember.RSVP.resolve(serialized); + return resolve(serialized); }; let post, firstComment; @@ -2485,7 +2494,7 @@ test("Relationship.clear removes all records correctly", function(assert) { env.store.peekAll('comment').mapBy('post'); post._internalModel._relationships.get('comments').clear(); - let comments = Ember.A(env.store.peekAll('comment')); + let comments = A(env.store.peekAll('comment')); assert.deepEqual(comments.mapBy('post'), [null, null, null]); }); }); @@ -2580,13 +2589,13 @@ test("adding and removing records from hasMany relationship #2666", function(ass let commentId = 4; env.registry.register('adapter:comment', DS.RESTAdapter.extend({ deleteRecord(record) { - return Ember.RSVP.resolve(); + return resolve(); }, updateRecord(record) { - return Ember.RSVP.resolve(); + return resolve(); }, createRecord() { - return Ember.RSVP.resolve({ comments: { id: commentId++ }}); + return resolve({ comments: { id: commentId++ }}); } })); @@ -2658,7 +2667,7 @@ test("hasMany hasData async loaded", function(assert) { }); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'chapter', @@ -2684,7 +2693,7 @@ test("hasMany hasData sync loaded", function(assert) { assert.expect(1); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'chapter', @@ -2714,7 +2723,7 @@ test("hasMany hasData async not loaded", function(assert) { }); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'chapter', @@ -2740,7 +2749,7 @@ test("hasMany hasData sync not loaded", function(assert) { assert.expect(1); env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'chapter', @@ -2989,7 +2998,7 @@ test("Related link should be fetched when no local data is present", function(as env.adapter.findHasMany = function(store, snapshot, url, relationship) { assert.equal(url, 'comments', 'url is correct'); assert.ok(true, "The adapter's findHasMany method should be called"); - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: 'This is comment' } } ]}); }; @@ -3027,7 +3036,7 @@ test("Local data should take precedence over related link", function(assert) { }; env.adapter.findRecord = function(store, type, id, snapshot) { - return Ember.RSVP.resolve({ data: { id: 1, type: 'comment', attributes: { body: 'This is comment' } } }); + return resolve({ data: { id: 1, type: 'comment', attributes: { body: 'This is comment' } } }); }; return run(() => { @@ -3064,7 +3073,7 @@ test("Updated related link should take precedence over local data", function(ass env.adapter.findHasMany = function(store, snapshot, url, relationship) { assert.equal(url, 'comments-updated-link', 'url is correct'); assert.ok(true, "The adapter's findHasMany method should be called"); - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: 'This is comment' } } ]}); }; @@ -3119,7 +3128,7 @@ test("PromiseArray proxies createRecord to its ManyArray before the hasMany is l }); env.adapter.findHasMany = function(store, record, link, relationship) { - return Ember.RSVP.resolve({ data: [ + return resolve({ data: [ { id: 1, type: 'comment', attributes: { body: "First" } }, { id: 2, type: 'comment', attributes: { body: "Second" } } ]}); diff --git a/tests/integration/relationships/inverse-relationships-test.js b/tests/integration/relationships/inverse-relationships-test.js index 99f7f217224..cb14af74e22 100644 --- a/tests/integration/relationships/inverse-relationships-test.js +++ b/tests/integration/relationships/inverse-relationships-test.js @@ -1,14 +1,13 @@ -import {createStore} from 'dummy/tests/helpers/store'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var Post, Comment, Message, User; -var run = Ember.run; module('integration/relationships/inverse_relationships - Inverse Relationships'); diff --git a/tests/integration/relationships/many-to-many-test.js b/tests/integration/relationships/many-to-many-test.js index ae3016fe73f..82f0746466e 100644 --- a/tests/integration/relationships/many-to-many-test.js +++ b/tests/integration/relationships/many-to-many-test.js @@ -1,13 +1,15 @@ /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "(ada)" }]*/ +import { resolve, Promise as EmberPromise } from 'rsvp'; + +import { run } from '@ember/runloop'; + import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { run } = Ember; const { attr, hasMany } = DS; let Account, Topic, User, store, env; @@ -35,7 +37,7 @@ module('integration/relationships/many_to_many_test - ManyToMany relationships', topic: Topic, account: Account, adapter: DS.Adapter.extend({ - deleteRecord: () => Ember.RSVP.resolve() + deleteRecord: () => resolve() }) }); @@ -434,7 +436,7 @@ test("Rollbacking attributes for a deleted record that has a ManyToMany relation assert.equal(fetchedTopics.get('length'), 1, 'Topic got rollbacked into the user'); }); - return Ember.RSVP.Promise.all([ + return EmberPromise.all([ users, topics ]); @@ -511,7 +513,7 @@ test("Rollbacking attributes for a created record that has a ManyToMany relation assert.equal(fetchedTopics.objectAt(0), null, "Topic can't be fetched"); }); - return Ember.RSVP.Promise.all([ + return EmberPromise.all([ users, topics ]); diff --git a/tests/integration/relationships/nested-relationship-test.js b/tests/integration/relationships/nested-relationship-test.js index 425a48701ec..9ef5d78c4a0 100644 --- a/tests/integration/relationships/nested-relationship-test.js +++ b/tests/integration/relationships/nested-relationship-test.js @@ -1,11 +1,11 @@ +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; const { attr, hasMany, belongsTo } = DS; let env, store, serializer, Elder, MiddleAger, Kid; diff --git a/tests/integration/relationships/one-to-many-test.js b/tests/integration/relationships/one-to-many-test.js index 59a5f5feb7e..7477cea1d63 100644 --- a/tests/integration/relationships/one-to-many-test.js +++ b/tests/integration/relationships/one-to-many-test.js @@ -1,13 +1,13 @@ +import { resolve } from 'rsvp'; +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var env, store, User, Message, Account; -var get = Ember.get; -var run = Ember.run; var attr = DS.attr; var hasMany = DS.hasMany; @@ -36,7 +36,7 @@ module('integration/relationships/one_to_many_test - OneToMany relationships', { message: Message, account: Account, adapter: DS.Adapter.extend({ - deleteRecord: () => Ember.RSVP.resolve() + deleteRecord: () => resolve() }) }); diff --git a/tests/integration/relationships/one-to-one-test.js b/tests/integration/relationships/one-to-one-test.js index a4b9038aed1..c65f848b149 100644 --- a/tests/integration/relationships/one-to-one-test.js +++ b/tests/integration/relationships/one-to-one-test.js @@ -1,13 +1,13 @@ +import { resolve, Promise as EmberPromise } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var env, store, User, Job; -var run = Ember.run; var attr = DS.attr; var belongsTo = DS.belongsTo; @@ -29,7 +29,7 @@ module('integration/relationships/one_to_one_test - OneToOne relationships', { user: User, job: Job, adapter: DS.Adapter.extend({ - deleteRecord: () => Ember.RSVP.resolve() + deleteRecord: () => resolve() }) }); @@ -532,7 +532,7 @@ testInDebug("Setting a BelongsTo to a promise that didn't come from a relationsh assert.expectAssertion(function() { run(function() { - stanley.set('bestFriend', Ember.RSVP.resolve(igor)); + stanley.set('bestFriend', resolve(igor)); }); }, /You passed in a promise that did not originate from an EmberData relationship. You can only pass promises that come from a belongsTo or hasMany relationship to the get call./); }); @@ -588,10 +588,10 @@ test("Setting a BelongsTo to a promise multiple times is resistant to race condi env.adapter.findRecord = function(store, type, id, snapshot) { if (id === '5') { - return Ember.RSVP.resolve({ data: { id: 5, type: 'user', attributes: { name: "Igor's friend" } } }); + return resolve({ data: { id: 5, type: 'user', attributes: { name: "Igor's friend" } } }); } else if (id === '2') { let done = assert.async(); - return new Ember.RSVP.Promise(function(resolve, reject) { + return new EmberPromise(function(resolve, reject) { setTimeout(function() { done(); resolve({ data: { id: 2, type: 'user', attributes: { name: "Stanley's friend" } } }); diff --git a/tests/integration/relationships/polymorphic-mixins-belongs-to-test.js b/tests/integration/relationships/polymorphic-mixins-belongs-to-test.js index f62f41e22d1..38e134012fa 100644 --- a/tests/integration/relationships/polymorphic-mixins-belongs-to-test.js +++ b/tests/integration/relationships/polymorphic-mixins-belongs-to-test.js @@ -3,16 +3,16 @@ import { reset as resetModelFactoryInjections } from 'dummy/tests/helpers/model-factory-injection'; +import Mixin from '@ember/object/mixin'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var env, store, User, Message, Video, NotMessage; -var run = Ember.run; var attr = DS.attr; var belongsTo = DS.belongsTo; @@ -24,7 +24,7 @@ module('integration/relationships/polymorphic_mixins_belongs_to_test - Polymorph bestMessage: belongsTo('message', { async: true, polymorphic: true }) }); - Message = Ember.Mixin.create({ + Message = Mixin.create({ title: attr('string'), user: belongsTo('user', { async: true }) }); diff --git a/tests/integration/relationships/polymorphic-mixins-has-many-test.js b/tests/integration/relationships/polymorphic-mixins-has-many-test.js index 8993ad3f8c4..470e3dfd146 100644 --- a/tests/integration/relationships/polymorphic-mixins-has-many-test.js +++ b/tests/integration/relationships/polymorphic-mixins-has-many-test.js @@ -3,16 +3,16 @@ import { reset as resetModelFactoryInjections } from 'dummy/tests/helpers/model-factory-injection'; +import Mixin from '@ember/object/mixin'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var env, store, User, Message, NotMessage, Video; -var run = Ember.run; var attr = DS.attr; var hasMany = DS.hasMany; @@ -25,7 +25,7 @@ module('integration/relationships/polymorphic_mixins_has_many_test - Polymorphic messages: hasMany('message', { async: true, polymorphic: true }) }); - Message = Ember.Mixin.create({ + Message = Mixin.create({ title: attr('string'), user: belongsTo('user', { async: true }) }); diff --git a/tests/integration/serializers/embedded-records-mixin-test.js b/tests/integration/serializers/embedded-records-mixin-test.js index 78ca55ae5ca..fc6a8b3bc26 100644 --- a/tests/integration/serializers/embedded-records-mixin-test.js +++ b/tests/integration/serializers/embedded-records-mixin-test.js @@ -1,15 +1,15 @@ +import { w } from '@ember/string'; +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -var get = Ember.get; var HomePlanet, SuperVillain, CommanderVillain, NormalMinion, EvilMinion, YellowMinion, RedMinion, SecretLab, SecretWeapon, BatCave, Comment, league, superVillain, commanderVillain, evilMinion, yellowMinion, redMinion, secretWeapon, homePlanet, secretLab, env; -var run = Ember.run; var LightSaber; module("integration/embedded_records_mixin - EmbeddedRecordsMixin", { @@ -2117,7 +2117,7 @@ test("serializing relationships with an embedded and without calls super when no var payloadKey = this.keyForRelationship ? this.keyForRelationship(key, "hasMany") : key; var relationshipType = snapshot.type.determineRelationshipType(relationship); // "manyToOne" not supported in DS.ActiveModelSerializer.prototype.serializeHasMany - var relationshipTypes = Ember.String.w('manyToNone manyToMany manyToOne'); + var relationshipTypes = w('manyToNone manyToMany manyToOne'); if (relationshipTypes.indexOf(relationshipType) > -1) { json[payloadKey] = snapshot.hasMany(key, { ids: true }); } diff --git a/tests/integration/serializers/json-api-serializer-test.js b/tests/integration/serializers/json-api-serializer-test.js index 700432645c9..42170fbaa1f 100644 --- a/tests/integration/serializers/json-api-serializer-test.js +++ b/tests/integration/serializers/json-api-serializer-test.js @@ -1,8 +1,9 @@ +import { run } from '@ember/runloop'; +import { get } from '@ember/object'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import { isEnabled } from 'ember-data/-private'; @@ -10,9 +11,6 @@ import DS from 'ember-data'; var env, store, serializer; -var get = Ember.get; -var run = Ember.run; - var User, Handle, GithubHandle, TwitterHandle, Company, Project; module('integration/serializers/json-api-serializer - JSONAPISerializer', { diff --git a/tests/integration/serializers/json-serializer-test.js b/tests/integration/serializers/json-serializer-test.js index 8fae94bf3f9..1c8172d1a92 100644 --- a/tests/integration/serializers/json-serializer-test.js +++ b/tests/integration/serializers/json-serializer-test.js @@ -1,14 +1,14 @@ +import { underscore } from '@ember/string'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import { isEnabled } from 'ember-data/-private'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var Post, post, Comment, comment, Favorite, favorite, env, serializer; -var run = Ember.run; module("integration/serializer/json - JSONSerializer", { beforeEach() { @@ -400,7 +400,7 @@ test('Serializer should map `attrs` attributes directly when keyForAttribute als post: Post }); env.registry.register("serializer:post", DS.JSONSerializer.extend({ - keyForAttribute: Ember.String.underscore, + keyForAttribute: underscore, attrs: { authorName: 'author_name_key' } diff --git a/tests/integration/serializers/rest-serializer-test.js b/tests/integration/serializers/rest-serializer-test.js index 46d69e47abf..f2aca2c68ae 100644 --- a/tests/integration/serializers/rest-serializer-test.js +++ b/tests/integration/serializers/rest-serializer-test.js @@ -1,15 +1,14 @@ -import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { camelize, decamelize, dasherize } from '@ember/string'; import Inflector, { singularize } from 'ember-inflector'; - +import { run, bind } from '@ember/runloop'; +import setupStore from 'dummy/tests/helpers/store'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import { isEnabled } from 'ember-data/-private'; import DS from 'ember-data'; var HomePlanet, league, SuperVillain, EvilMinion, YellowMinion, DoomsdayDevice, Comment, Basket, Container, env; -var run = Ember.run; module("integration/serializer/rest - RESTSerializer", { beforeEach() { @@ -104,7 +103,7 @@ test("normalizeResponse with custom modelNameFromPayloadKey", function(assert) { assert.expect(1); env.restSerializer.modelNameFromPayloadKey = function(root) { - var camelized = Ember.String.camelize(root); + var camelized = camelize(root); return singularize(camelized); }; env.registry.register('serializer:home-planet', DS.JSONSerializer); @@ -215,7 +214,7 @@ testInDebug("normalizeResponse warning with custom modelNameFromPayloadKey", fun home_planet: { id: "1", name: "Umber", superVillains: [1] } }; - assert.expectWarning(Ember.run.bind(null, function() { + assert.expectWarning(bind(null, function() { run(function() { env.restSerializer.normalizeResponse(env.store, HomePlanet, jsonHash, '1', 'findRecord'); }); @@ -257,7 +256,7 @@ testInDebug("normalizeResponse warning with custom modelNameFromPayloadKey", fun // should not warn if a model is found. env.restSerializer.modelNameFromPayloadKey = function(root) { - return Ember.String.camelize(singularize(root)); + return camelize(singularize(root)); }; jsonHash = { @@ -491,7 +490,7 @@ test('normalize should allow for different levels of normalization', function(as superVillain: 'is_super_villain' }, keyForAttribute(attr) { - return Ember.String.decamelize(attr); + return decamelize(attr); } })); @@ -513,7 +512,7 @@ test('normalize should allow for different levels of normalization - attributes' name: 'full_name' }, keyForAttribute(attr) { - return Ember.String.decamelize(attr); + return decamelize(attr); } })); @@ -656,7 +655,7 @@ test('serializeIntoHash uses payloadKeyFromModelName to normalize the payload ro var json = {}; env.registry.register('serializer:home-planet', DS.RESTSerializer.extend({ payloadKeyFromModelName(modelName) { - return Ember.String.dasherize(modelName); + return dasherize(modelName); } })); diff --git a/tests/integration/setup-container-test.js b/tests/integration/setup-container-test.js index eaaf937e554..68286a4caa5 100644 --- a/tests/integration/setup-container-test.js +++ b/tests/integration/setup-container-test.js @@ -1,10 +1,11 @@ -import Ember from 'ember'; +import Application from '@ember/application'; +import { run } from '@ember/runloop'; +import EmberObject from '@ember/object'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { run, Object: EmberObject } = Ember; const { Store, _setupContainer: setupContainer } = DS; let container, registry, application; @@ -16,7 +17,7 @@ let container, registry, application; module("integration/setup-container - Setting up a container", { beforeEach() { - application = run(() => Ember.Application.create()); + application = run(() => Application.create()); container = application.__container__; registry = application.__registry__; diff --git a/tests/integration/snapshot-test.js b/tests/integration/snapshot-test.js index 992907ef007..b92963cf6e3 100644 --- a/tests/integration/snapshot-test.js +++ b/tests/integration/snapshot-test.js @@ -1,11 +1,11 @@ +import { resolve } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { run } = Ember; let env, Post, Comment; module("integration/snapshot - DS.Snapshot", { @@ -372,7 +372,7 @@ test("snapshot.belongsTo() returns a snapshot if relationship link has been fetc assert.expect(2); env.adapter.findBelongsTo = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: { id: 1, type: 'post', attributes: { title: 'Hello World' } } }); + return resolve({ data: { id: 1, type: 'post', attributes: { title: 'Hello World' } } }); }; return run(() => { @@ -804,7 +804,7 @@ test("snapshot.hasMany() returns array of snapshots if relationship link has bee assert.expect(2); env.adapter.findHasMany = function(store, snapshot, link, relationship) { - return Ember.RSVP.resolve({ data: [{ id: 2, type: 'comment', attributes: { body: 'This is comment' } }]}); + return resolve({ data: [{ id: 2, type: 'comment', attributes: { body: 'This is comment' } }]}); }; return run(() => { diff --git a/tests/integration/store-test.js b/tests/integration/store-test.js index 03abfe1b4b6..bf33dc85f4e 100644 --- a/tests/integration/store-test.js +++ b/tests/integration/store-test.js @@ -1,8 +1,13 @@ +import { copy } from '@ember/object/internals'; +import RSVP, { + Promise as EmberPromise, + resolve +} from 'rsvp'; +import { run, next } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; import { isEnabled } from 'ember-data/-private'; @@ -20,7 +25,6 @@ Person.reopenClass({ } }); -const { run } = Ember; const Car = DS.Model.extend({ make: DS.attr('string'), model: DS.attr('string'), @@ -76,8 +80,8 @@ test("destroying record during find doesn't cause error", function(assert) { let TestAdapter = DS.Adapter.extend({ findRecord(store, type, id, snapshot) { - return new Ember.RSVP.Promise((resolve, reject) => { - Ember.run.next(() => { + return new EmberPromise((resolve, reject) => { + next(() => { store.unloadAll(type.modelName); reject(); }); @@ -100,7 +104,7 @@ test("find calls do not resolve when the store is destroyed", function(assert) { let TestAdapter = DS.Adapter.extend({ findRecord(store, type, id, snapshot) { store.destroy(); - Ember.RSVP.resolve(null); + resolve(null); } }); @@ -111,7 +115,7 @@ test("find calls do not resolve when the store is destroyed", function(assert) { let id = 1; store.push = function() { - Ember.assert("The test should have destroyed the store by now", store.get("isDestroyed")); + assert("The test should have destroyed the store by now", store.get("isDestroyed")); throw new Error("We shouldn't be pushing data into the store when it is destroyed"); }; @@ -197,7 +201,7 @@ test("destroying the store correctly cleans everything up", function(assert) { assert.equal(car.get('person'), person, "expected car's person to be the correct person"); assert.equal(person.get('cars.firstObject'), car, " expected persons cars's firstRecord to be the correct car"); - Ember.run(store, 'destroy'); + run(store, 'destroy'); assert.equal(personWillDestroy.called.length, 1, 'expected person to have recieved willDestroy once'); assert.equal(carWillDestroy.called.length, 1, 'expected car to recieve willDestroy once'); @@ -209,11 +213,11 @@ test("destroying the store correctly cleans everything up", function(assert) { function ajaxResponse(value) { if (isEnabled('ds-improved-ajax')) { env.adapter._makeRequest = function() { - return run(Ember.RSVP, 'resolve', Ember.copy(value, true)); + return run(RSVP, 'resolve', copy(value, true)); }; } else { env.adapter.ajax = function(url, verb, hash) { - return run(Ember.RSVP, 'resolve', Ember.copy(value, true)); + return run(RSVP, 'resolve', copy(value, true)); }; } } diff --git a/tests/integration/store/json-api-validation-test.js b/tests/integration/store/json-api-validation-test.js index b4015274c5c..47300f88518 100644 --- a/tests/integration/store/json-api-validation-test.js +++ b/tests/integration/store/json-api-validation-test.js @@ -1,11 +1,11 @@ +import { resolve } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; import QUnit, { module } from 'qunit'; import DS from 'ember-data'; var Person, store, env; -var run = Ember.run; function payloadError(payload, expectedError) { env.registry.register('serializer:person', DS.Serializer.extend({ @@ -15,7 +15,7 @@ function payloadError(payload, expectedError) { })); env.registry.register('adapter:person', DS.Adapter.extend({ findRecord() { - return Ember.RSVP.resolve(payload); + return resolve(payload); } })); this.throws(function () { @@ -58,7 +58,7 @@ testInDebug("when normalizeResponse returns undefined (or doesn't return), throw env.registry.register('adapter:person', DS.Adapter.extend({ findRecord() { - return Ember.RSVP.resolve({ data: {} }); + return resolve({ data: {} }); } })); @@ -77,7 +77,7 @@ testInDebug("when normalizeResponse returns null, throws an error", function(ass env.registry.register('adapter:person', DS.Adapter.extend({ findRecord() { - return Ember.RSVP.resolve({ data: {} }); + return resolve({ data: {} }); } })); @@ -97,7 +97,7 @@ testInDebug("when normalizeResponse returns an empty object, throws an error", f env.registry.register('adapter:person', DS.Adapter.extend({ findRecord() { - return Ember.RSVP.resolve({ data: {} }); + return resolve({ data: {} }); } })); @@ -121,7 +121,7 @@ testInDebug("when normalizeResponse returns a document with both data and errors env.registry.register('adapter:person', DS.Adapter.extend({ findRecord() { - return Ember.RSVP.resolve({ data: {} }); + return resolve({ data: {} }); } })); diff --git a/tests/integration/store/query-record-test.js b/tests/integration/store/query-record-test.js index a712c6ef5c3..b83aa9bfa69 100644 --- a/tests/integration/store/query-record-test.js +++ b/tests/integration/store/query-record-test.js @@ -1,13 +1,13 @@ +import { resolve, reject } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; var Person, store, env; -var run = Ember.run; module("integration/store/query-record - Query one record with a query hash", { beforeEach() { @@ -47,7 +47,7 @@ test("When a record is requested, the adapter's queryRecord method should be cal env.registry.register('adapter:person', DS.Adapter.extend({ queryRecord(store, type, query) { assert.equal(type, Person, "the query method is called with the correct type"); - return Ember.RSVP.resolve({ data: { id: 1, type: 'person', attributes: { name: "Peter Wagenet" } } }); + return resolve({ data: { id: 1, type: 'person', attributes: { name: "Peter Wagenet" } } }); } })); @@ -59,7 +59,7 @@ test("When a record is requested, the adapter's queryRecord method should be cal test("When a record is requested, and the promise is rejected, .queryRecord() is rejected.", function(assert) { env.registry.register('adapter:person', DS.Adapter.extend({ queryRecord(store, type, query) { - return Ember.RSVP.reject(); + return reject(); } })); @@ -82,7 +82,7 @@ test("When a record is requested, the serializer's normalizeQueryRecordResponse env.registry.register('adapter:person', DS.Adapter.extend({ queryRecord(store, type, query) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: '1', type: 'person', diff --git a/tests/test-helper.js b/tests/test-helper.js index fd29fcbea65..31c7459330e 100644 --- a/tests/test-helper.js +++ b/tests/test-helper.js @@ -4,6 +4,9 @@ must be evaluated before the `qunit` module is evaluated (because we change `QUnit.module`). */ +import RSVP from 'rsvp'; + +import Application from '@ember/application'; import requiredWorkAroundBabelBug from 'dummy/tests/helpers/setup-ember-dev'; // eslint-disable-line import resolver from './helpers/resolver'; import { @@ -20,7 +23,7 @@ import Ember from 'ember'; import loadInitializers from 'ember-load-initializers'; setResolver(resolver); -loadInitializers(Ember.Application, 'dummy'); +loadInitializers(Application, 'dummy'); const { assert } = QUnit; const transforms = { @@ -31,7 +34,7 @@ const transforms = { }; QUnit.begin(() => { - Ember.RSVP.configure('onerror', reason => { + RSVP.configure('onerror', reason => { // only print error messages if they're exceptions; // otherwise, let a future turn of the event loop // handle the error. diff --git a/tests/unit/adapter-errors-test.js b/tests/unit/adapter-errors-test.js index 91dda1d0e7a..738bec5a131 100644 --- a/tests/unit/adapter-errors-test.js +++ b/tests/unit/adapter-errors-test.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import EmberError from '@ember/error'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; @@ -11,7 +11,7 @@ test('DS.AdapterError', function(assert) { let error = new DS.AdapterError(); assert.ok(error instanceof Error); - assert.ok(error instanceof Ember.Error); + assert.ok(error instanceof EmberError); assert.ok(error.isAdapterError); assert.equal(error.message, 'Adapter operation failed'); }); diff --git a/tests/unit/adapters/build-url-mixin/path-for-type-test.js b/tests/unit/adapters/build-url-mixin/path-for-type-test.js index a3c07356423..1302a3bf9ee 100644 --- a/tests/unit/adapters/build-url-mixin/path-for-type-test.js +++ b/tests/unit/adapters/build-url-mixin/path-for-type-test.js @@ -1,11 +1,10 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; import DS from 'ember-data'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; let env, adapter; -let { run } = Ember; module("unit/adapters/build-url-mixin/path-for-type - DS.BuildURLMixin#pathForType", { beforeEach() { diff --git a/tests/unit/adapters/json-api-adapter/ajax-test.js b/tests/unit/adapters/json-api-adapter/ajax-test.js index 4d2044a6077..c97fd3f1b53 100644 --- a/tests/unit/adapters/json-api-adapter/ajax-test.js +++ b/tests/unit/adapters/json-api-adapter/ajax-test.js @@ -1,12 +1,12 @@ +import { computed } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let Person, Place, store, adapter, env; -const { run } = Ember; module("unit/adapters/json-api-adapter/ajax - building requests", { beforeEach() { @@ -55,7 +55,7 @@ test('ajaxOptions() adds Accept header to existing headers', function(assert) { }); test('ajaxOptions() adds Accept header to existing computed properties headers', function(assert) { - adapter.headers = Ember.computed(function() { + adapter.headers = computed(function() { return { 'Other-key': 'Other Value' }; }); let url = 'example.com'; diff --git a/tests/unit/adapters/rest-adapter/ajax-test.js b/tests/unit/adapters/rest-adapter/ajax-test.js index 1bbed398c3c..f7baae4b4c4 100644 --- a/tests/unit/adapters/rest-adapter/ajax-test.js +++ b/tests/unit/adapters/rest-adapter/ajax-test.js @@ -1,13 +1,13 @@ +import { resolve, Promise as EmberPromise } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; import { isEnabled } from 'ember-data/-private'; var Person, Place, store, adapter, env; -const { run } = Ember; module('unit/adapters/rest-adapter/ajax - building requests', { beforeEach() { @@ -36,22 +36,22 @@ test('When an id is searched, the correct url should be generated', function(ass if (count === 0) { assert.equal(request.url, '/people/1', 'should create the correct url'); } if (count === 1) { assert.equal(request.url, '/places/1', 'should create the correct url'); } count++; - return Ember.RSVP.resolve(); + return resolve(); }; } else { adapter.ajax = function(url, method) { if (count === 0) { assert.equal(url, '/people/1', 'should create the correct url'); } if (count === 1) { assert.equal(url, '/places/1', 'should create the correct url'); } count++; - return Ember.RSVP.resolve(); + return resolve(); }; } return run(() => { - return Ember.RSVP.Promise.all([ + return EmberPromise.all([ adapter.findRecord(store, Person, 1, {}), adapter.findRecord(store, Place, 1, {}) - ]) + ]); }); }); @@ -61,12 +61,12 @@ test(`id's should be sanatized`, function(assert) { if (isEnabled('ds-improved-ajax')) { adapter._makeRequest = function(request) { assert.equal(request.url, '/people/..%2Fplace%2F1', `should create the correct url`); - return Ember.RSVP.resolve(); + return resolve(); }; } else { adapter.ajax = function(url, method) { assert.equal(url, '/people/..%2Fplace%2F1', "should create the correct url"); - return Ember.RSVP.resolve(); + return resolve(); }; } diff --git a/tests/unit/adapters/rest-adapter/detailed-message-test.js b/tests/unit/adapters/rest-adapter/detailed-message-test.js index 946a510b7ca..cef3e9b4c6d 100644 --- a/tests/unit/adapters/rest-adapter/detailed-message-test.js +++ b/tests/unit/adapters/rest-adapter/detailed-message-test.js @@ -1,6 +1,6 @@ import setupStore from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; diff --git a/tests/unit/adapters/rest-adapter/group-records-for-find-many-test.js b/tests/unit/adapters/rest-adapter/group-records-for-find-many-test.js index 5010adbcb10..fdcef39969a 100644 --- a/tests/unit/adapters/rest-adapter/group-records-for-find-many-test.js +++ b/tests/unit/adapters/rest-adapter/group-records-for-find-many-test.js @@ -1,7 +1,8 @@ -import {createStore} from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { run } from '@ember/runloop'; +import { Promise as EmberPromise } from 'rsvp'; +import { createStore } from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; import { isEnabled } from 'ember-data/-private'; @@ -42,7 +43,7 @@ module('unit/adapters/rest_adapter/group_records_for_find_many_test - DS.RESTAda lengths.push(fullUrl.length); let testRecords = request.data.ids.map(id => ({ id })); - return Ember.RSVP.Promise.resolve({ 'testRecords' : testRecords }); + return EmberPromise.resolve({ 'testRecords' : testRecords }); } }); } else { @@ -62,7 +63,7 @@ module('unit/adapters/rest_adapter/group_records_for_find_many_test - DS.RESTAda lengths.push(fullUrl.length); let testRecords = options.data.ids.map(id => ({ id })); - return Ember.RSVP.Promise.resolve({ 'testRecords' : testRecords }); + return EmberPromise.resolve({ 'testRecords' : testRecords }); } }); } @@ -73,25 +74,25 @@ module('unit/adapters/rest_adapter/group_records_for_find_many_test - DS.RESTAda }); }, afterEach() { - Ember.run(store, 'destroy'); + run(store, 'destroy'); } }); test('groupRecordsForFindMany - findMany', function(assert) { let wait = []; - Ember.run(() => { + run(() => { for (var i = 1; i <= 1024; i++) { wait.push(store.findRecord('testRecord', i)); } }); assert.ok(lengths.every(len => len <= maxLength), `Some URLs are longer than ${maxLength} chars`); - return Ember.RSVP.Promise.all(wait); + return EmberPromise.all(wait); }); test('groupRecordsForFindMany works for encodeURIComponent-ified ids', function(assert) { let wait = []; - Ember.run(() => { + run(() => { wait.push(store.findRecord('testRecord', 'my-id:1')); wait.push(store.findRecord('testRecord', 'my-id:2')); }); @@ -100,11 +101,11 @@ test('groupRecordsForFindMany works for encodeURIComponent-ified ids', function( assert.equal(requests[0].url, '/testRecords'); assert.deepEqual(requests[0].ids, ['my-id:1', 'my-id:2']); - return Ember.RSVP.Promise.all(wait); + return EmberPromise.all(wait); }); test('_stripIDFromURL works with id being encoded - #4190', function(assert) { - let record = Ember.run(() => store.createRecord('testRecord', { id: "id:123" })); + let record = run(() => store.createRecord('testRecord', { id: "id:123" })); let adapter = store.adapterFor('testRecord'); let snapshot = record._internalModel.createSnapshot(); let strippedUrl = adapter._stripIDFromURL(store, snapshot); diff --git a/tests/unit/debug-test.js b/tests/unit/debug-test.js index e399e13d7c9..5925c8441cc 100644 --- a/tests/unit/debug-test.js +++ b/tests/unit/debug-test.js @@ -1,12 +1,11 @@ -import {createStore} from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { run } = Ember; - const TestAdapter = DS.Adapter.extend(); module('Debug'); @@ -57,7 +56,7 @@ test('_debugInfo supports arbitray relationship types', function(assert) { name: DS.attr('string'), isDrugAddict: DS.attr('boolean'), maritalStatus: DS.belongsTo('marital-status', { async: false }), - posts: Ember.computed(() => [1, 2, 3] ) + posts: computed(() => [1, 2, 3] ) .readOnly().meta({ options: { inverse: null }, isRelationship: true, diff --git a/tests/unit/diff-array-test.js b/tests/unit/diff-array-test.js index 1526cb9f9e5..9d69b8f1a3d 100644 --- a/tests/unit/diff-array-test.js +++ b/tests/unit/diff-array-test.js @@ -1,4 +1,4 @@ -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import { diffArray } from 'ember-data/-private'; diff --git a/tests/unit/many-array-test.js b/tests/unit/many-array-test.js index 5ddca06ed74..d0f8b141c74 100644 --- a/tests/unit/many-array-test.js +++ b/tests/unit/many-array-test.js @@ -1,14 +1,14 @@ +import { resolve } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let env, store, Post, Tag; const { attr, hasMany, belongsTo } = DS; -const { run } = Ember; module('unit/many_array - DS.ManyArray', { beforeEach() { @@ -53,7 +53,7 @@ test('manyArray.save() calls save() on all records', function(assert) { Tag.reopen({ save() { assert.ok(true, 'record.save() was called'); - return Ember.RSVP.resolve(); + return resolve(); } }); diff --git a/tests/unit/model-test.js b/tests/unit/model-test.js index eb4fe34d6c7..d54ca482193 100644 --- a/tests/unit/model-test.js +++ b/tests/unit/model-test.js @@ -1,14 +1,16 @@ -import {createStore} from 'dummy/tests/helpers/store'; +import { guidFor } from '@ember/object/internals'; +import { Promise as EmberPromise, resolve } from 'rsvp'; +import { set, get, observer, computed } from '@ember/object'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; import setupStore from 'dummy/tests/helpers/store'; import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; import { isEnabled } from 'ember-data/-private'; import { getOwner } from 'ember-data/-private'; -const { get, set, run } = Ember; - let Person, store, env; module('unit/model - DS.Model', { @@ -96,7 +98,7 @@ test('resetting a property to the current in-flight value causes it to become cl assert.expect(4); env.adapter.updateRecord = function(store, type, snapshot) { - return Ember.RSVP.Promise.resolve() + return EmberPromise.resolve(); }; return run(() => { @@ -190,7 +192,7 @@ test("a record's id is included in its toString representation", function(assert }); return store.findRecord('person', 1).then(record => { - assert.equal(record.toString(), `<(subclass of DS.Model):${Ember.guidFor(record)}:1>`, 'reports id in toString'); + assert.equal(record.toString(), `<(subclass of DS.Model):${guidFor(record)}:1>`, 'reports id in toString'); }); }); }); @@ -523,7 +525,7 @@ if (isEnabled('ds-rollback-attribute')) { // Make sure the save is async env.adapter.updateRecord = function(store, type, snapshot) { - return Ember.RSVP.resolve(); + return resolve(); }; return run(() => { @@ -558,7 +560,7 @@ if (isEnabled('ds-rollback-attribute')) { assert.expect(7); let person, finishSaving; - let updateRecordPromise = new Ember.RSVP.Promise(resolve => finishSaving = resolve); + let updateRecordPromise = new EmberPromise(resolve => finishSaving = resolve); // Make sure the save is async env.adapter.updateRecord = function(store, type, snapshot) { @@ -609,7 +611,7 @@ if (isEnabled('ds-rollback-attribute')) { finishSaving(); }); - return Ember.RSVP.Promise.all(saving); + return EmberPromise.all(saving); }); } @@ -1183,7 +1185,7 @@ test('ensure model exits loading state, materializes data and fulfills promise o let store = createStore({ adapter: DS.Adapter.extend({ findRecord(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'person', @@ -1347,7 +1349,7 @@ test('internalModel is ready by `init`', function(assert) { this.set('name', 'my-name-set-in-init'); }, - nameDidChange: Ember.observer('name', () => nameDidChange++) + nameDidChange: observer('name', () => nameDidChange++) }); let { store } = setupStore({ person: Person }); @@ -1403,7 +1405,7 @@ test('updating the id with store.updateId should correctly when the id property const Person = DS.Model.extend({ name: DS.attr('string'), - idComputed: Ember.computed('id', function() {}) + idComputed: computed('id', function() {}) }); let { store } = setupStore({ @@ -1427,7 +1429,7 @@ test('accessing the model id without the get function should work when id is wat const Person = DS.Model.extend({ name: DS.attr('string'), - idComputed: Ember.computed('id', function() {}) + idComputed: computed('id', function() {}) }); let { store } = setupStore({ diff --git a/tests/unit/model/errors-test.js b/tests/unit/model/errors-test.js index d51d4246090..71374b7d31e 100644 --- a/tests/unit/model/errors-test.js +++ b/tests/unit/model/errors-test.js @@ -1,5 +1,5 @@ import DS from 'ember-data'; -import QUnit, {module} from 'qunit'; +import QUnit, { module } from 'qunit'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; const AssertPrototype = QUnit.assert; diff --git a/tests/unit/model/lifecycle-callbacks-test.js b/tests/unit/model/lifecycle-callbacks-test.js index 13257dd728d..3ea46df61ba 100644 --- a/tests/unit/model/lifecycle-callbacks-test.js +++ b/tests/unit/model/lifecycle-callbacks-test.js @@ -1,12 +1,12 @@ -import {createStore} from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { resolve, reject } from 'rsvp'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; - module('unit/model/lifecycle_callbacks - Lifecycle Callbacks'); test('a record receives a didLoad callback when it has finished loading', function(assert) { @@ -84,7 +84,7 @@ test('a record receives a didUpdate callback when it has finished updating', fun updateRecord(store, type, snapshot) { assert.equal(callCount, 0, 'didUpdate callback was not called until didSaveRecord is called'); - return Ember.RSVP.resolve(); + return resolve(); } }); @@ -126,7 +126,7 @@ test('a record receives a didCreate callback when it has finished updating', fun createRecord(store, type, snapshot) { assert.equal(callCount, 0, 'didCreate callback was not called until didSaveRecord is called'); - return Ember.RSVP.resolve(); + return resolve(); } }); @@ -171,7 +171,7 @@ test('a record receives a didDelete callback when it has finished deleting', fun deleteRecord(store, type, snapshot) { assert.equal(callCount, 0, 'didDelete callback was not called until didSaveRecord is called'); - return Ember.RSVP.resolve(); + return resolve(); } }); @@ -250,7 +250,7 @@ test('a record receives a becameInvalid callback when it became invalid', functi updateRecord(store, type, snapshot) { assert.equal(callCount, 0, 'becameInvalid callback was not called until recordWasInvalid is called'); - return Ember.RSVP.reject(new DS.InvalidError([ + return reject(new DS.InvalidError([ { title: 'Invalid Attribute', detail: 'error', diff --git a/tests/unit/model/merge-test.js b/tests/unit/model/merge-test.js index c2f865dd5d9..bac3ef1f41e 100644 --- a/tests/unit/model/merge-test.js +++ b/tests/unit/model/merge-test.js @@ -1,12 +1,12 @@ -import {createStore} from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { resolve, Promise as EmberPromise } from 'rsvp'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let Person; -const { run } = Ember; module('unit/model/merge - Merging', { beforeEach() { @@ -55,7 +55,7 @@ test('Make sure snapshot is created at save time not at flush time', function(as updateRecord(store, type, snapshot) { assert.equal(snapshot.attr('name'), 'Thomas Dale'); - return Ember.RSVP.resolve(); + return resolve(); } }); @@ -97,7 +97,7 @@ test("When a record is in flight, pushes are applied underneath the in flight ch const Adapter = DS.Adapter.extend({ updateRecord(store, type, snapshot) { // Make sure saving isn't resolved synchronously - return new Ember.RSVP.Promise(resolve => { + return new EmberPromise(resolve => { run.next(null, resolve, { data: { id: 1, type: 'person', attributes: { name: 'Senor Thomas Dale, Esq.', city: 'Portland' } } }); }); } diff --git a/tests/unit/model/relationships-test.js b/tests/unit/model/relationships-test.js index 0d437b51b59..3edee836733 100644 --- a/tests/unit/model/relationships-test.js +++ b/tests/unit/model/relationships-test.js @@ -1,11 +1,11 @@ -import {createStore} from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; let Occupation, Person, store; module('unit/model/relationships - DS.Model', { diff --git a/tests/unit/model/relationships/belongs-to-test.js b/tests/unit/model/relationships/belongs-to-test.js index 32606b21674..496558e5ed6 100644 --- a/tests/unit/model/relationships/belongs-to-test.js +++ b/tests/unit/model/relationships/belongs-to-test.js @@ -1,13 +1,12 @@ +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; - module('unit/model/relationships - DS.belongsTo'); test('belongsTo lazily loads relationships as needed', function(assert) { diff --git a/tests/unit/model/relationships/has-many-test.js b/tests/unit/model/relationships/has-many-test.js index 1aac40c7181..b856b18f73e 100644 --- a/tests/unit/model/relationships/has-many-test.js +++ b/tests/unit/model/relationships/has-many-test.js @@ -1,12 +1,13 @@ +import { hash, Promise as EmberPromise } from 'rsvp'; +import { get, observer } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; let env; module('unit/model/relationships - DS.hasMany', { @@ -839,7 +840,7 @@ test('hasMany lazily loads async relationships', function(assert) { assert.equal(get(wycats, 'name'), 'Yehuda Katz', 'precond - retrieves person record from store'); - return Ember.RSVP.hash({ + return hash({ wycats, tags: wycats.get('tags') }); @@ -1122,7 +1123,7 @@ test('new items added to a hasMany relationship are not cleared by a delete', fu }); env.adapter.shouldBackgroundReloadRecord = () => false; env.adapter.deleteRecord = () => { - return Ember.RSVP.Promise.resolve({ data: null }); + return EmberPromise.resolve({ data: null }); }; let { store } = env; @@ -1214,7 +1215,7 @@ test('new items added to an async hasMany relationship are not cleared by a dele }); env.adapter.shouldBackgroundReloadRecord = () => false; env.adapter.deleteRecord = () => { - return Ember.RSVP.Promise.resolve({ data: null }); + return EmberPromise.resolve({ data: null }); }; let { store } = env; @@ -1308,7 +1309,7 @@ test('new items added to a belongsTo relationship are not cleared by a delete', }); env.adapter.shouldBackgroundReloadRecord = () => false; env.adapter.deleteRecord = () => { - return Ember.RSVP.Promise.resolve({ data: null }); + return EmberPromise.resolve({ data: null }); }; let { store } = env; @@ -1390,7 +1391,7 @@ test('new items added to an async belongsTo relationship are not cleared by a de }); env.adapter.shouldBackgroundReloadRecord = () => false; env.adapter.deleteRecord = () => { - return Ember.RSVP.Promise.resolve({ data: null }); + return EmberPromise.resolve({ data: null }); }; let { store } = env; @@ -1472,7 +1473,7 @@ test('deleting an item that is the current state of a belongsTo clears currentSt }); env.adapter.shouldBackgroundReloadRecord = () => false; env.adapter.deleteRecord = () => { - return Ember.RSVP.Promise.resolve({ data: null }); + return EmberPromise.resolve({ data: null }); }; let { store } = env; @@ -1629,7 +1630,7 @@ test('[ASSERTS KNOWN LIMITATION STILL EXISTS] returning new hasMany relationship }); env.adapter.shouldBackgroundReloadRecord = () => false; env.adapter.deleteRecord = () => { - return Ember.RSVP.Promise.resolve({ + return EmberPromise.resolve({ data: null, included: [ { @@ -1935,7 +1936,7 @@ test('DS.hasMany is stable', function(assert) { assert.equal(people, notifiedPeople); - return Ember.RSVP.Promise.all([ + return EmberPromise.all([ people ]); }); @@ -1957,7 +1958,7 @@ test('DS.hasMany proxy is destroyed', function(assert) { let peopleProxy = tag.get('people'); return peopleProxy.then(people => { - Ember.run(() => { + run(() => { tag.unloadRecord(); assert.equal(people.isDestroying, false, 'people is NOT destroying sync after unloadRecord'); assert.equal(people.isDestroyed, false, 'people is NOT destroyed sync after unloadRecord'); @@ -1967,7 +1968,7 @@ test('DS.hasMany proxy is destroyed', function(assert) { assert.equal(peopleProxy.isDestroying, true, 'peopleProxy is destroying after the run post unloadRecord'); assert.equal(peopleProxy.isDestroyed, true, 'peopleProxy is destroyed after the run post unloadRecord'); - }) + }); }); test('DS.ManyArray is lazy', function(assert) { @@ -1975,7 +1976,7 @@ test('DS.ManyArray is lazy', function(assert) { const Tag = DS.Model.extend({ name: DS.attr('string'), people: DS.hasMany('person'), - peopleDidChange: Ember.observer('people', function() { + peopleDidChange: observer('people', function() { peopleDidChange++; }) }); @@ -2000,9 +2001,9 @@ test('DS.ManyArray is lazy', function(assert) { assert.equal(peopleDidChange, 0, 'expect people hasMany to not emit a change event (after access, but after the current run loop)'); assert.ok(hasManyRelationship._manyArray instanceof DS.ManyArray); - let person = Ember.run(() => env.store.createRecord('person')); + let person = run(() => env.store.createRecord('person')); - Ember.run(() => { + run(() => { assert.equal(peopleDidChange, 0, 'expect people hasMany to not emit a change event (before access)'); tag.get('people').addObject(person); assert.equal(peopleDidChange, 1, 'expect people hasMany to have changed exactly once'); diff --git a/tests/unit/model/relationships/record-array-test.js b/tests/unit/model/relationships/record-array-test.js index dafc81f7271..7cdf36da71c 100644 --- a/tests/unit/model/relationships/record-array-test.js +++ b/tests/unit/model/relationships/record-array-test.js @@ -1,12 +1,12 @@ +import { A } from '@ember/array'; +import { set, get } from '@ember/object'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, set, run } = Ember; - module('unit/model/relationships - RecordArray'); test('updating the content of a RecordArray updates its content', function(assert) { @@ -42,7 +42,7 @@ test('updating the content of a RecordArray updates its content', function(asser }] }); tags = DS.RecordArray.create({ - content: Ember.A(internalModels.slice(0, 2)), + content: A(internalModels.slice(0, 2)), store: store, modelName: 'tag' }); @@ -51,7 +51,7 @@ test('updating the content of a RecordArray updates its content', function(asser let tag = tags.objectAt(0); assert.equal(get(tag, 'name'), 'friendly', `precond - we're working with the right tags`); - run(() => set(tags, 'content', Ember.A(internalModels.slice(1, 3)))); + run(() => set(tags, 'content', A(internalModels.slice(1, 3)))); tag = tags.objectAt(0); assert.equal(get(tag, 'name'), 'smarmy', 'the lookup was updated'); diff --git a/tests/unit/model/rollback-attributes-test.js b/tests/unit/model/rollback-attributes-test.js index b884d133f89..985d8f5eb9b 100644 --- a/tests/unit/model/rollback-attributes-test.js +++ b/tests/unit/model/rollback-attributes-test.js @@ -1,13 +1,15 @@ +import { isEmpty, isPresent } from '@ember/utils'; +import { addObserver } from '@ember/object/observers'; +import { Promise as EmberPromise, reject } from 'rsvp'; +import { run, later } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; import { isEnabled } from 'ember-data/-private'; let env, store, Person; -const { run } = Ember; module('unit/model/rollbackAttributes - model.rollbackAttributes()', { beforeEach() { @@ -75,7 +77,7 @@ test('changes to unassigned attributes can be rolled back', function(assert) { test('changes to attributes made after a record is in-flight only rolls back the local changes', function(assert) { env.adapter.updateRecord = function(store, type, snapshot) { // Make sure the save is async - return new Ember.RSVP.Promise(resolve => Ember.run.later(null, resolve, 15)); + return new EmberPromise(resolve => later(null, resolve, 15)); }; let person = run(() => { @@ -119,7 +121,7 @@ test('changes to attributes made after a record is in-flight only rolls back the test("a record's changes can be made if it fails to save", function(assert) { env.adapter.updateRecord = function(store, type, snapshot) { - return Ember.RSVP.reject(); + return reject(); }; let person = run(() => { @@ -159,7 +161,7 @@ test("a record's changes can be made if it fails to save", function(assert) { test(`a deleted record's attributes can be rollbacked if it fails to save, record arrays are updated accordingly`, function(assert) { assert.expect(8); env.adapter.deleteRecord = function(store, type, snapshot) { - return Ember.RSVP.reject(); + return reject(); }; let person, people; @@ -204,7 +206,7 @@ test(`new record's attributes can be rollbacked`, function(assert) { assert.equal(person.get('isNew'), true, 'must be new'); assert.equal(person.get('hasDirtyAttributes'), true, 'must be dirty'); - Ember.run(person, 'rollbackAttributes'); + run(person, 'rollbackAttributes'); assert.equal(person.get('isNew'), false, 'must not be new'); assert.equal(person.get('hasDirtyAttributes'), false, 'must not be dirty'); @@ -223,13 +225,13 @@ test(`invalid new record's attributes can be rollbacked`, function(assert) { if (isEnabled('ds-improved-ajax')) { adapter = DS.RESTAdapter.extend({ _makeRequest() { - return Ember.RSVP.reject(error); + return reject(error); } }); } else { adapter = DS.RESTAdapter.extend({ ajax(url, type, hash) { - return Ember.RSVP.reject(error); + return reject(error); } }); } @@ -261,14 +263,14 @@ test(`invalid record's attributes can be rollbacked after multiple failed calls adapter = DS.RESTAdapter.extend({ _makeRequest() { let error = new DS.InvalidError(); - return Ember.RSVP.reject(error); + return reject(error); } }); } else { adapter = DS.RESTAdapter.extend({ ajax(url, type, hash) { let error = new DS.InvalidError(); - return Ember.RSVP.reject(error); + return reject(error); } }); } @@ -351,13 +353,13 @@ test("invalid record's attributes can be rollbacked", function(assert) { if (isEnabled('ds-improved-ajax')) { adapter = DS.RESTAdapter.extend({ _makeRequest() { - return Ember.RSVP.reject(error); + return reject(error); } }); } else { adapter = DS.RESTAdapter.extend({ ajax(url, type, hash) { - return Ember.RSVP.reject(error); + return reject(error); } }); } @@ -380,7 +382,7 @@ test("invalid record's attributes can be rollbacked", function(assert) { }); return run(() => { - Ember.addObserver(dog, 'errors.name', function() { + addObserver(dog, 'errors.name', function() { assert.ok(true, 'errors.name did change'); }); @@ -400,7 +402,7 @@ test("invalid record's attributes can be rollbacked", function(assert) { assert.equal(dog.get('hasDirtyAttributes'), false, 'must not be dirty'); assert.equal(dog.get('name'), 'Pluto'); - assert.ok(Ember.isEmpty(dog.get('errors.name'))); + assert.ok(isEmpty(dog.get('errors.name'))); assert.ok(dog.get('isValid')); }); }); @@ -424,13 +426,13 @@ test(`invalid record's attributes rolled back to correct state after set`, funct if (isEnabled('ds-improved-ajax')) { adapter = DS.RESTAdapter.extend({ _makeRequest() { - return Ember.RSVP.reject(error); + return reject(error); } }); } else { adapter = DS.RESTAdapter.extend({ ajax(url, type, hash) { - return Ember.RSVP.reject(error); + return reject(error); } }); } @@ -454,7 +456,7 @@ test(`invalid record's attributes rolled back to correct state after set`, funct }); return run(() => { - Ember.addObserver(dog, 'errors.name', function() { + addObserver(dog, 'errors.name', function() { assert.ok(true, 'errors.name did change'); }); @@ -462,7 +464,7 @@ test(`invalid record's attributes rolled back to correct state after set`, funct assert.equal(reason, error); assert.equal(dog.get('name'), 'is a dwarf planet'); assert.equal(dog.get('breed'), 'planet'); - assert.ok(Ember.isPresent(dog.get('errors.name'))); + assert.ok(isPresent(dog.get('errors.name'))); assert.equal(dog.get('errors.name.length'), 1); run(() => dog.set('name', 'Seymour Asses')); @@ -475,7 +477,7 @@ test(`invalid record's attributes rolled back to correct state after set`, funct assert.equal(dog.get('name'), 'Pluto'); assert.equal(dog.get('breed'), 'Disney'); assert.equal(dog.get('hasDirtyAttributes'), false, 'must not be dirty'); - assert.ok(Ember.isEmpty(dog.get('errors.name'))); + assert.ok(isEmpty(dog.get('errors.name'))); assert.ok(dog.get('isValid')); }); }); @@ -497,13 +499,13 @@ test(`when destroying a record setup the record state to invalid, the record's a if (isEnabled('ds-improved-ajax')) { adapter = DS.RESTAdapter.extend({ _makeRequest() { - return Ember.RSVP.reject(error); + return reject(error); } }); } else { adapter = DS.RESTAdapter.extend({ ajax(url, type, hash) { - return Ember.RSVP.reject(error); + return reject(error); } }); } diff --git a/tests/unit/private-test.js b/tests/unit/private-test.js index bd42b3a33b2..30e468493ff 100644 --- a/tests/unit/private-test.js +++ b/tests/unit/private-test.js @@ -1,5 +1,9 @@ import { module, test } from 'qunit'; -import { ContainerInstanceCache, InternalModel, RootState } from 'ember-data/-private'; +import { + ContainerInstanceCache, + InternalModel, + RootState +} from 'ember-data/-private'; module('-private'); diff --git a/tests/unit/promise-proxies-test.js b/tests/unit/promise-proxies-test.js index 93a94a76ab2..1e5ab5fee69 100644 --- a/tests/unit/promise-proxies-test.js +++ b/tests/unit/promise-proxies-test.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import { Promise as EmberPromise } from 'rsvp'; +import { A } from '@ember/array'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; @@ -9,9 +10,9 @@ module('PromiseManyArray'); test('.reload should NOT leak the internal promise, rather return another promiseArray', function(assert) { assert.expect(2); - let content = Ember.A(); + let content = A(); - content.reload = () => Ember.RSVP.Promise.resolve(content); + content.reload = () => EmberPromise.resolve(content); let array = DS.PromiseManyArray.create({ content @@ -27,10 +28,10 @@ test('.reload should NOT leak the internal promise, rather return another promis test('.reload should be stable', function(assert) { assert.expect(19); - let content = Ember.A(); + let content = A(); - content.reload = () => Ember.RSVP.Promise.resolve(content); - let promise = Ember.RSVP.Promise.resolve(content); + content.reload = () => EmberPromise.resolve(content); + let promise = EmberPromise.resolve(content); let array = DS.PromiseManyArray.create({ promise @@ -71,9 +72,9 @@ test('.reload should be stable', function(assert) { test('.set to new promise should be like reload', function(assert) { assert.expect(18); - let content = Ember.A([1,2,3]); + let content = A([1,2,3]); - let promise = Ember.RSVP.Promise.resolve(content); + let promise = EmberPromise.resolve(content); let array = DS.PromiseManyArray.create({ promise @@ -90,7 +91,7 @@ test('.set to new promise should be like reload', function(assert) { assert.equal(array.get('isSettled'), true, 'should be settled'); assert.equal(array.get('isFulfilled'), true, 'should be fulfilled'); - array.set('promise', Ember.RSVP.Promise.resolve(content)); + array.set('promise', EmberPromise.resolve(content)); assert.equal(array.get('isRejected'), false, 'should NOT be rejected'); assert.equal(array.get('isPending'), true, 'should be pending'); diff --git a/tests/unit/record-arrays/adapter-populated-record-array-test.js b/tests/unit/record-arrays/adapter-populated-record-array-test.js index bea0d34070b..f1ed2a8ce79 100644 --- a/tests/unit/record-arrays/adapter-populated-record-array-test.js +++ b/tests/unit/record-arrays/adapter-populated-record-array-test.js @@ -1,9 +1,9 @@ +import { A } from '@ember/array'; +import RSVP from 'rsvp'; +import { run } from '@ember/runloop'; import DS from 'ember-data'; -import {module, test} from 'qunit'; -import Ember from 'ember'; - -const { RSVP, run } = Ember; +import { module, test } from 'qunit'; const { AdapterPopulatedRecordArray } = DS; module('unit/record-arrays/adapter-populated-record-array - DS.AdapterPopulatedRecordArray'); @@ -34,7 +34,7 @@ test('default initial state', function(assert) { }); test('custom initial state', function(assert) { - let content = Ember.A([]); + let content = A([]); let store = {}; let recordArray = AdapterPopulatedRecordArray.create({ modelName: 'apple', diff --git a/tests/unit/record-arrays/filtered-record-array-test.js b/tests/unit/record-arrays/filtered-record-array-test.js index afa43b570f1..6a388cc70df 100644 --- a/tests/unit/record-arrays/filtered-record-array-test.js +++ b/tests/unit/record-arrays/filtered-record-array-test.js @@ -1,9 +1,10 @@ +import { run } from '@ember/runloop'; +import { A } from '@ember/array'; +import { get } from '@ember/object'; import DS from 'ember-data'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; -const { get } = Ember; const { FilteredRecordArray } = DS; module('unit/record-arrays/filtered-record-array - DS.FilteredRecordArray'); @@ -19,7 +20,7 @@ test('default initial state', function(assert) { }); test('custom initial state', function(assert) { - let content = Ember.A(); + let content = A(); let store = {}; let filterFunction = () => true; let recordArray = FilteredRecordArray.create({ @@ -63,12 +64,12 @@ test('updateFilter', function(assert) { let recordArray = FilteredRecordArray.create({ modelName: 'recordType', manager, - content: Ember.A() + content: A() }); assert.equal(didUpdateFilter, 0, 'no filterFunction should have been changed yet'); - Ember.run(() => { + run(() => { recordArray.set('filterFunction', updatedFilterFunction); assert.equal(didUpdateFilter, 0, 'record array manager should not yet be informed of the filterFunction change'); recordArray.set('filterFunction', updatedFilterFunction); @@ -78,7 +79,7 @@ test('updateFilter', function(assert) { assert.equal(didUpdateFilter, 1, 'record array manager should have been informed once that the array filterFunction has changed'); didUpdateFilter = 0; - Ember.run(() => { + run(() => { recordArray.set('filterFunction', updatedFilterFunction); assert.equal(didUpdateFilter, 0, 'record array manager should not be informed of this change'); recordArray.destroy(); diff --git a/tests/unit/record-arrays/record-array-test.js b/tests/unit/record-arrays/record-array-test.js index b11f0eb6487..91bd69c6d7b 100644 --- a/tests/unit/record-arrays/record-array-test.js +++ b/tests/unit/record-arrays/record-array-test.js @@ -1,8 +1,10 @@ +import { A } from '@ember/array'; +import { get } from '@ember/object'; +import RSVP from 'rsvp'; +import { run } from '@ember/runloop'; import DS from 'ember-data'; -import Ember from 'ember'; import { module, test } from 'qunit'; -const { get, RSVP, run } = Ember; const { RecordArray } = DS; module('unit/record-arrays/record-array - DS.RecordArray'); @@ -18,7 +20,7 @@ test('default initial state', function(assert) { }); test('custom initial state', function(assert) { - let content = Ember.A(); + let content = A(); let store = {}; let recordArray = RecordArray.create({ modelName: 'apple', @@ -43,7 +45,7 @@ test('#replace() throws error', function(assert) { }); test('#objectAtContent', function(assert) { - let content = Ember.A([ + let content = A([ { getRecord() { return 'foo'; }}, { getRecord() { return 'bar'; }}, { getRecord() { return 'baz'; }} @@ -137,7 +139,7 @@ test('#update while updating', function(assert) { }); test('#_pushInternalModels', function(assert) { - let content = Ember.A(); + let content = A(); let recordArray = RecordArray.create({ content }); @@ -161,7 +163,7 @@ test('#_pushInternalModels', function(assert) { }); test('#_removeInternalModels', function(assert) { - let content = Ember.A(); + let content = A(); let recordArray = RecordArray.create({ content }); @@ -215,7 +217,7 @@ function internalModelFor(record) { test('#save', function(assert) { let model1 = { save() { model1Saved++; return this;} }; let model2 = { save() { model2Saved++; return this;} }; - let content = Ember.A([ + let content = A([ internalModelFor(model1), internalModelFor(model2) ]); @@ -256,7 +258,7 @@ test('#destroy', function(assert) { // end TODO: let recordArray = RecordArray.create({ - content: Ember.A([internalModel1]), + content: A([internalModel1]), manager: { unregisterRecordArray(_recordArray) { didUnregisterRecordArray++; @@ -293,7 +295,7 @@ test('#_createSnapshot', function(assert) { id: 2 }; - let content = Ember.A([ + let content = A([ internalModelFor(model1), internalModelFor(model2) ]); @@ -327,7 +329,7 @@ test('#destroy', function(assert) { // end TODO: let recordArray = RecordArray.create({ - content: Ember.A([internalModel1]), + content: A([internalModel1]), manager: { unregisterRecordArray(_recordArray) { didUnregisterRecordArray++; diff --git a/tests/unit/states-test.js b/tests/unit/states-test.js index abfbb1e3c94..c655068d54b 100644 --- a/tests/unit/states-test.js +++ b/tests/unit/states-test.js @@ -1,9 +1,8 @@ -import Ember from 'ember'; -import QUnit, {module, test} from 'qunit'; +import { get } from '@ember/object'; +import QUnit, { module, test } from 'qunit'; import DS from 'ember-data'; const { assert } = QUnit; -const { get } = Ember; let rootState, stateName; diff --git a/tests/unit/store/adapter-interop-test.js b/tests/unit/store/adapter-interop-test.js index 43c80a267a2..fc7ba5fb307 100644 --- a/tests/unit/store/adapter-interop-test.js +++ b/tests/unit/store/adapter-interop-test.js @@ -1,14 +1,20 @@ -import {createStore} from 'dummy/tests/helpers/store'; +import { A } from '@ember/array'; +import { + resolve, + all, + Promise as EmberPromise +} from 'rsvp'; +import { set, get } from '@ember/object'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; import setupStore from 'dummy/tests/helpers/store'; import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, set , run } = Ember; -const resolve = Ember.RSVP.resolve; let TestAdapter, store, oldFilterEnabled; module('unit/store/adapter-interop - DS.Store working with a DS.Adapter', { @@ -59,7 +65,7 @@ test('Calling Store#find invokes its adapter#find', function(assert) { assert.equal(id, 1, "Adapter#find was called with the id passed into Store#find"); assert.equal(snapshot.id, '1', "Adapter#find was called with the record created from Store#find"); - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'test' @@ -88,7 +94,7 @@ test('Calling Store#findRecord multiple times coalesces the calls into a adapter findMany(store, type, ids, snapshots) { assert.ok(true, 'Adapter#findMany was called'); assert.deepEqual(ids, ['1','2'], 'Correct ids were passed in to findMany'); - return Ember.RSVP.resolve({ data: [{ id: 1, type: 'test' }, { id: 2, type: 'test' }] }); + return resolve({ data: [{ id: 1, type: 'test' }, { id: 2, type: 'test' }] }); }, coalesceFindRequests: true }); @@ -100,7 +106,7 @@ test('Calling Store#findRecord multiple times coalesces the calls into a adapter }); return run(() => { - return Ember.RSVP.all([ + return all([ store.findRecord('test', 1), store.findRecord('test', 2) ]); @@ -232,7 +238,7 @@ test('loadMany takes an optional Object and passes it on to the Adapter', functi query(store, type, query) { assert.equal(type, store.modelFor('person'), 'The type was Person'); assert.equal(query, passedQuery, 'The query was passed in'); - return Ember.RSVP.resolve({ data: [] }); + return resolve({ data: [] }); } }); @@ -253,7 +259,7 @@ test('Find with query calls the correct normalizeResponse', function(assert) { const Adapter = TestAdapter.extend({ query(store, type, query) { - return Ember.RSVP.resolve([]); + return resolve([]); } }); @@ -652,7 +658,7 @@ test('records should have their ids updated when the adapter returns the id data }); return run(() => { - return Ember.RSVP.all([ + return all([ tom.save(), yehuda.save() ]).then(() => { @@ -695,7 +701,7 @@ test('store._scheduleFetchMany should not resolve until all the records are reso findRecord(store, type, id, snapshot) { let record = { id, type: type.modelName }; - return new Ember.RSVP.Promise(resolve => { + return new EmberPromise(resolve => { run.later(() => resolve({ data: record }), 5); }); }, @@ -703,7 +709,7 @@ test('store._scheduleFetchMany should not resolve until all the records are reso findMany(store, type, ids, snapshots) { let records = ids.map(id => ( { id, type: type.modelName }) ); - return new Ember.RSVP.Promise(resolve => { + return new EmberPromise(resolve => { run.later(() => { resolve({data: records }); }, 15); @@ -727,7 +733,7 @@ test('store._scheduleFetchMany should not resolve until all the records are reso return run(() => { return store._scheduleFetchMany(internalModels).then(() => { - let unloadedRecords = Ember.A(internalModels.map(r => r.getRecord())).filterBy('isEmpty'); + let unloadedRecords = A(internalModels.map(r => r.getRecord())).filterBy('isEmpty'); assert.equal(get(unloadedRecords, 'length'), 0, 'All unloaded records should be loaded'); }); @@ -797,7 +803,7 @@ test('the promise returned by `_scheduleFetch`, when it resolves, does not depen findRecord(store, type, id, snapshot) { let record = { id, type: 'test' }; - return new Ember.RSVP.Promise(function(resolve, reject) { + return new EmberPromise(function(resolve, reject) { if (id === 'igor') { resolve({ data: record }); } else { @@ -828,7 +834,7 @@ test('the promise returned by `_scheduleFetch`, when it resolves, does not depen assert.equal(davidResolved, true, 'David resolved'); })); - return Ember.RSVP.all(wait); + return all(wait); }); }); @@ -849,7 +855,7 @@ test('the promise returned by `_scheduleFetch`, when it rejects, does not depend findRecord(store, type, id, snapshot) { let record = { id, type: 'test' }; - return new Ember.RSVP.Promise((resolve, reject) => { + return new EmberPromise((resolve, reject) => { if (id === 'igor') { reject({ data: record }); } else { @@ -880,7 +886,7 @@ test('the promise returned by `_scheduleFetch`, when it rejects, does not depend assert.equal(davidResolved, true, 'David resolved'); })); - return Ember.RSVP.Promise.all(wait); + return EmberPromise.all(wait); }); }); @@ -912,7 +918,7 @@ testInDebug('store._fetchRecord reject records that were not found, even when th }); }, /expected to find records with the following ids/); - return Ember.RSVP.Promise.all(wait); + return EmberPromise.all(wait); }); testInDebug('store._fetchRecord warns when records are missing', function(assert) { @@ -944,7 +950,7 @@ testInDebug('store._fetchRecord warns when records are missing', function(assert }); }, /expected to find records with the following ids in the adapter response but they were missing/); - return Ember.RSVP.Promise.all(wait).then(() => { + return EmberPromise.all(wait).then(() => { assert.ok(igorDidReject, 'expected rejection that could not be found in the payload, but no such rejection occured'); }); }); diff --git a/tests/unit/store/asserts-test.js b/tests/unit/store/asserts-test.js index 5ebaaa5203c..c84fbb22637 100644 --- a/tests/unit/store/asserts-test.js +++ b/tests/unit/store/asserts-test.js @@ -1,6 +1,6 @@ -import {module} from 'qunit'; +import { module } from 'qunit'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {createStore} from 'dummy/tests/helpers/store'; +import { createStore } from 'dummy/tests/helpers/store'; module('unit/store/asserts - DS.Store methods produce useful assertion messages'); diff --git a/tests/unit/store/create-record-test.js b/tests/unit/store/create-record-test.js index 2d6c4014c81..5fdcc219fa9 100644 --- a/tests/unit/store/create-record-test.js +++ b/tests/unit/store/create-record-test.js @@ -1,11 +1,11 @@ -import {createStore} from 'dummy/tests/helpers/store'; +import { A } from '@ember/array'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let store, Record, Storage; -const { run } = Ember; module('unit/store/createRecord - Store creating records', { beforeEach() { @@ -65,8 +65,8 @@ test('allow passing relationships as well as attributes', function(assert) { }); assert.equal(storage.get('name'), 'Great store', 'The attribute is well defined'); - assert.equal(storage.get('records').findBy('id', '1'), Ember.A(records).findBy('id', '1'), 'Defined relationships are allowed in createRecord'); - assert.equal(storage.get('records').findBy('id', '2'), Ember.A(records).findBy('id', '2'), 'Defined relationships are allowed in createRecord'); + assert.equal(storage.get('records').findBy('id', '1'), A(records).findBy('id', '1'), 'Defined relationships are allowed in createRecord'); + assert.equal(storage.get('records').findBy('id', '2'), A(records).findBy('id', '2'), 'Defined relationships are allowed in createRecord'); }); module('unit/store/createRecord - Store with models by dash', { diff --git a/tests/unit/store/finders-test.js b/tests/unit/store/finders-test.js index b6d724d305d..9ee8ee9b859 100644 --- a/tests/unit/store/finders-test.js +++ b/tests/unit/store/finders-test.js @@ -1,10 +1,8 @@ +import { defer } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; - -const { run } = Ember; -const { defer } = Ember.RSVP; +import { module, test } from 'qunit'; import DS from 'ember-data'; diff --git a/tests/unit/store/has-model-for-test.js b/tests/unit/store/has-model-for-test.js index 0cd5dd127a5..0fa53f5a2cd 100644 --- a/tests/unit/store/has-model-for-test.js +++ b/tests/unit/store/has-model-for-test.js @@ -1,5 +1,5 @@ -import {createStore} from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { createStore } from 'dummy/tests/helpers/store'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let store; diff --git a/tests/unit/store/has-record-for-id-test.js b/tests/unit/store/has-record-for-id-test.js index 4d288bf5ae1..3aab6feb164 100644 --- a/tests/unit/store/has-record-for-id-test.js +++ b/tests/unit/store/has-record-for-id-test.js @@ -1,13 +1,12 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let env, store, Person, PhoneNumber; const { attr, hasMany, belongsTo } = DS; -const { run } = Ember; module('unit/store/hasRecordForId - Store hasRecordForId', { beforeEach() { @@ -33,7 +32,7 @@ module('unit/store/hasRecordForId - Store hasRecordForId', { }, afterEach() { - Ember.run(store, 'destroy'); + run(store, 'destroy'); } }); diff --git a/tests/unit/store/lookup-test.js b/tests/unit/store/lookup-test.js index b5e7a450ce5..86a210d279e 100644 --- a/tests/unit/store/lookup-test.js +++ b/tests/unit/store/lookup-test.js @@ -1,12 +1,11 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let store, env, applicationAdapter, applicationSerializer, Person; -const { run } = Ember; function resetStore() { if (store) { diff --git a/tests/unit/store/model-for-test.js b/tests/unit/store/model-for-test.js index 6b337200da1..0c74eeaeb2c 100644 --- a/tests/unit/store/model-for-test.js +++ b/tests/unit/store/model-for-test.js @@ -1,15 +1,13 @@ +import { run } from '@ember/runloop'; +import { dasherize, camelize } from '@ember/string'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let container, store, registry, env; -const { camelize, dasherize } = Ember.String; -const { run } = Ember; - module('unit/store/model_for - DS.Store#modelFor', { beforeEach() { env = setupStore({ diff --git a/tests/unit/store/peek-record-test.js b/tests/unit/store/peek-record-test.js index 490ee94fe00..1d5ec9433f5 100644 --- a/tests/unit/store/peek-record-test.js +++ b/tests/unit/store/peek-record-test.js @@ -1,12 +1,11 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let env, store, Person; -const { run } = Ember; module('unit/store/peekRecord - Store peekRecord', { beforeEach() { @@ -20,7 +19,7 @@ module('unit/store/peekRecord - Store peekRecord', { }, afterEach() { - Ember.run(store, 'destroy'); + run(store, 'destroy'); } }); diff --git a/tests/unit/store/push-test.js b/tests/unit/store/push-test.js index e884f3627c0..a579dd8e7cb 100644 --- a/tests/unit/store/push-test.js +++ b/tests/unit/store/push-test.js @@ -1,8 +1,12 @@ +import { inspect } from '@ember/debug'; +import EmberObject from '@ember/object'; +import { Promise as EmberPromise, resolve } from 'rsvp'; +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; @@ -10,7 +14,6 @@ import { isEnabled } from 'ember-data/-private'; let env, store, Person, PhoneNumber, Post; const { attr, hasMany, belongsTo } = DS; -const { run } = Ember; module('unit/store/push - DS.Store#push', { beforeEach() { @@ -144,7 +147,7 @@ test('Supplying a model class for `push` is the same as supplying a string', fun test(`Calling push triggers 'didLoad' even if the record hasn't been requested from the adapter`, function(assert) { assert.expect(1); - let didLoad = new Ember.RSVP.Promise((resolve, reject) => { + let didLoad = new EmberPromise((resolve, reject) => { Person.reopen({ didLoad() { try { @@ -250,7 +253,7 @@ test('Calling push with a normalized hash containing IDs of related records retu env.adapter.findRecord = function(store, type, id) { if (id === '1') { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: 'phone-number', @@ -265,7 +268,7 @@ test('Calling push with a normalized hash containing IDs of related records retu } if (id === "2") { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 2, type: 'phone-number', @@ -505,8 +508,8 @@ test('calling push without data argument as an object raises an error', function null, 1, 'string', - Ember.Object.create(), - Ember.Object.extend(), + EmberObject.create(), + EmberObject.extend(), true ]; @@ -638,8 +641,8 @@ testInDebug('calling push with hasMany relationship the value must be an array', let invalidValues = [ 1, 'string', - Ember.Object.create(), - Ember.Object.extend(), + EmberObject.create(), + EmberObject.extend(), true ]; @@ -665,7 +668,7 @@ testInDebug('calling push with hasMany relationship the value must be an array', store._pushedInternalModels.length = 0; throw e; } - }, /must be an array/, `Expect that '${Ember.inspect(invalidValue)}' is not an array`); + }, /must be an array/, `Expect that '${inspect(invalidValue)}' is not an array`); }); }); diff --git a/tests/unit/store/serialize-test.js b/tests/unit/store/serialize-test.js index 1967d7ac5ac..d92f3b5f488 100644 --- a/tests/unit/store/serialize-test.js +++ b/tests/unit/store/serialize-test.js @@ -1,13 +1,11 @@ +import { run } from '@ember/runloop'; import { module } from 'qunit'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; import attr from 'ember-data/attr'; import Model from 'ember-data/model'; import { createStore } from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import { isEnabled } from 'ember-data/-private'; -const { run } = Ember; - if (isEnabled('ds-deprecate-store-serialize')) { module("unit/store/serialize - DS.Store#serialize"); diff --git a/tests/unit/store/serializer-for-test.js b/tests/unit/store/serializer-for-test.js index 6206ffd4b8c..0bebe7a918a 100644 --- a/tests/unit/store/serializer-for-test.js +++ b/tests/unit/store/serializer-for-test.js @@ -1,13 +1,12 @@ +import { run } from '@ember/runloop'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; let container, store, registry, Person; -const { run } = Ember; module('unit/store/serializer_for - DS.Store#serializerFor', { beforeEach() { diff --git a/tests/unit/store/unload-test.js b/tests/unit/store/unload-test.js index f0bfe1240a0..98d88e3f3e0 100644 --- a/tests/unit/store/unload-test.js +++ b/tests/unit/store/unload-test.js @@ -1,12 +1,13 @@ -import {createStore} from 'dummy/tests/helpers/store'; -import Ember from 'ember'; +import { resolve } from 'rsvp'; +import { get } from '@ember/object'; +import { run } from '@ember/runloop'; +import { createStore } from 'dummy/tests/helpers/store'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; -const { get, run } = Ember; let store, tryToFind, Record; module('unit/store/unload - Store unloading records', { @@ -27,7 +28,7 @@ module('unit/store/unload - Store unloading records', { adapter: DS.Adapter.extend({ findRecord(store, type, id, snapshot) { tryToFind = true; - return Ember.RSVP.resolve({ data: { id, type: snapshot.modelName, attributes: { 'was-fetched': true } } }); + return resolve({ data: { id, type: snapshot.modelName, attributes: { 'was-fetched': true } } }); } }), @@ -36,7 +37,7 @@ module('unit/store/unload - Store unloading records', { }, afterEach() { - Ember.run(store, 'destroy'); + run(store, 'destroy'); } }); @@ -155,7 +156,7 @@ test('can commit store after unload record with relationships', function(assert) let store = createStore({ adapter: DS.Adapter.extend({ findRecord(store, type, id, snapshot) { - return Ember.RSVP.resolve({ + return resolve({ data: { id: 1, type: snapshot.modelName, @@ -168,7 +169,7 @@ test('can commit store after unload record with relationships', function(assert) }, createRecord(store, type, snapshot) { - return Ember.RSVP.resolve(); + return resolve(); } }), brand: Brand, @@ -206,7 +207,7 @@ test('can commit store after unload record with relationships', function(assert) return like.save(); }).then(() => { // TODO: this is strange, future travelers please address - Ember.run(() => store.unloadRecord(store.peekRecord('product', 1))); + run(() => store.unloadRecord(store.peekRecord('product', 1))); }).then(() => { return store.findRecord('product', 1); }).then(product => { diff --git a/tests/unit/system/relationships/relationship-payload-manager-test.js b/tests/unit/system/relationships/relationship-payload-manager-test.js index 8aa78aafa21..9ade62feb01 100644 --- a/tests/unit/system/relationships/relationship-payload-manager-test.js +++ b/tests/unit/system/relationships/relationship-payload-manager-test.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; import { RelationshipPayloadsManager } from 'ember-data/-private'; import DS from 'ember-data'; -import {createStore} from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; - -const { get } = Ember; +import { createStore } from 'dummy/tests/helpers/store'; +import { module, test } from 'qunit'; module('unit/system/relationships/relationship-payloads-manager', { beforeEach() { diff --git a/tests/unit/system/relationships/relationship-payloads-test.js b/tests/unit/system/relationships/relationship-payloads-test.js index 2ee7e9fb939..6f7715760d0 100644 --- a/tests/unit/system/relationships/relationship-payloads-test.js +++ b/tests/unit/system/relationships/relationship-payloads-test.js @@ -1,12 +1,10 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; import { RelationshipPayloadsManager } from 'ember-data/-private'; import DS from 'ember-data'; -import {createStore} from 'dummy/tests/helpers/store'; -import {module, test} from 'qunit'; +import { createStore } from 'dummy/tests/helpers/store'; +import { module, test } from 'qunit'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -const { get } = Ember; - module('unit/system/relationships/relationship-payloads', { beforeEach() { const User = DS.Model.extend({ diff --git a/tests/unit/system/snapshot-record-array-test.js b/tests/unit/system/snapshot-record-array-test.js index c33fb225aea..7c8221a428c 100644 --- a/tests/unit/system/snapshot-record-array-test.js +++ b/tests/unit/system/snapshot-record-array-test.js @@ -1,11 +1,11 @@ +import { A } from '@ember/array'; import { SnapshotRecordArray } from 'ember-data/-private'; -import Ember from 'ember'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; module('Unit - snapshot-record-array'); test('constructor', function(assert) { - let array = Ember.A([1, 2]); + let array = A([1, 2]); array.type = 'some type'; let meta = { }; let options = { @@ -23,7 +23,7 @@ test('constructor', function(assert) { }); test('#snapshot', function(assert) { - let array = Ember.A([1, 2]); + let array = A([1, 2]); let didTakeSnapshot = 0; let snapshotTaken = {}; @@ -49,7 +49,7 @@ test('#snapshot', function(assert) { }); test('SnapshotRecordArray.type loads the class lazily', function(assert) { - let array = Ember.A([1, 2]); + let array = A([1, 2]); let typeLoaded = false; Object.defineProperty(array, 'type', { diff --git a/tests/unit/transform/boolean-test.js b/tests/unit/transform/boolean-test.js index 4c2ae3c5b40..02bd4ae73c1 100644 --- a/tests/unit/transform/boolean-test.js +++ b/tests/unit/transform/boolean-test.js @@ -1,6 +1,6 @@ import DS from 'ember-data'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; module('unit/transform - DS.BooleanTransform'); diff --git a/tests/unit/transform/date-test.js b/tests/unit/transform/date-test.js index 46746ced520..330c8ec2469 100644 --- a/tests/unit/transform/date-test.js +++ b/tests/unit/transform/date-test.js @@ -1,4 +1,4 @@ -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; import Ember from 'ember'; diff --git a/tests/unit/transform/number-test.js b/tests/unit/transform/number-test.js index 17d3e47d381..c8a3aba2a7e 100644 --- a/tests/unit/transform/number-test.js +++ b/tests/unit/transform/number-test.js @@ -1,6 +1,6 @@ import DS from 'ember-data'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; module('unit/transform - DS.NumberTransform'); diff --git a/tests/unit/transform/string-test.js b/tests/unit/transform/string-test.js index 713d97f7f64..8aa87545101 100644 --- a/tests/unit/transform/string-test.js +++ b/tests/unit/transform/string-test.js @@ -1,6 +1,6 @@ import DS from 'ember-data'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; module('unit/transform - DS.StringTransform'); diff --git a/tests/unit/utils-test.js b/tests/unit/utils-test.js index 4bf54576bec..573796df4b3 100644 --- a/tests/unit/utils-test.js +++ b/tests/unit/utils-test.js @@ -1,14 +1,17 @@ +import { run } from '@ember/runloop'; +import Mixin from '@ember/object/mixin'; import setupStore from 'dummy/tests/helpers/store'; -import Ember from 'ember'; import testInDebug from 'dummy/tests/helpers/test-in-debug'; -import {module, test} from 'qunit'; +import { module, test } from 'qunit'; import DS from 'ember-data'; import Model from 'ember-data/model'; import { assertPolymorphicType } from 'ember-data/-debug'; -import { modelHasAttributeOrRelationshipNamedType } from 'ember-data/-private'; +import { + modelHasAttributeOrRelationshipNamedType +} from 'ember-data/-private'; let env, User, Message, Post, Person, Video, Medium; @@ -24,7 +27,7 @@ module('unit/utils', { medias: DS.hasMany('medium', { async: false }) }); - Medium = Ember.Mixin.create(); + Medium = Mixin.create(); Video = Model.extend(Medium); env = setupStore({ @@ -39,14 +42,14 @@ module('unit/utils', { }, afterEach() { - Ember.run(env.container, 'destroy'); + run(env.container, 'destroy'); } }); testInDebug('assertPolymorphicType works for subclasses', function(assert) { let user, post, person; - Ember.run(() => { + run(() => { env.store.push({ data: [{ type: 'user', @@ -107,7 +110,7 @@ test('modelHasAttributeOrRelationshipNamedType', function(assert) { testInDebug('assertPolymorphicType works for mixins', function(assert) { let post, video, person; - Ember.run(() => { + run(() => { env.store.push({ data: [{ type: 'post', diff --git a/yarn.lock b/yarn.lock index 43ea953398d..5e37ea5f345 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,95 +4,99 @@ "@glimmer/di@^0.2.0": version "0.2.0" - resolved "https://registry.npmjs.org/@glimmer/di/-/di-0.2.0.tgz#73bfd4a6ee4148a80bf092e8a5d29bcac9d4ce7e" + resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.2.0.tgz#73bfd4a6ee4148a80bf092e8a5d29bcac9d4ce7e" "@glimmer/resolver@^0.4.1": version "0.4.1" - resolved "https://registry.npmjs.org/@glimmer/resolver/-/resolver-0.4.1.tgz#cd9644572c556e7e799de1cf8eff2b999cf5b878" + resolved "https://registry.yarnpkg.com/@glimmer/resolver/-/resolver-0.4.1.tgz#cd9644572c556e7e799de1cf8eff2b999cf5b878" dependencies: "@glimmer/di" "^0.2.0" -"@types/node@*", "@types/node@^7.0.5": +"@types/node@*": + version "8.0.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.31.tgz#d9af61093cf4bfc9f066ca34de0175012cfb0ce9" + +"@types/node@^7.0.5": version "7.0.43" - resolved "https://registry.npmjs.org/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" "@types/rimraf@^0.0.28": version "0.0.28" - resolved "https://registry.npmjs.org/@types/rimraf/-/rimraf-0.0.28.tgz#5562519bc7963caca8abf7f128cae3b594d41d06" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-0.0.28.tgz#5562519bc7963caca8abf7f128cae3b594d41d06" "@types/tape@^4.2.29": version "4.2.30" - resolved "https://registry.npmjs.org/@types/tape/-/tape-4.2.30.tgz#3c1917c4dfd6f27271b9922772513515bc6c46b4" + resolved "https://registry.yarnpkg.com/@types/tape/-/tape-4.2.30.tgz#3c1917c4dfd6f27271b9922772513515bc6c46b4" dependencies: "@types/node" "*" "@types/ws@^0.0.38": version "0.0.38" - resolved "https://registry.npmjs.org/@types/ws/-/ws-0.0.38.tgz#42106fff4b422ca956734e29f0d73a6d893194d3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-0.0.38.tgz#42106fff4b422ca956734e29f0d73a6d893194d3" dependencies: "@types/node" "*" abbrev@1: - version "1.1.0" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" accepts@1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" dependencies: mime-types "~2.1.11" negotiator "0.6.1" -accepts@~1.3.3: +accepts@~1.3.4: version "1.3.4" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" dependencies: mime-types "~2.1.16" negotiator "0.6.1" acorn-jsx@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" acorn@^3.0.4: version "3.3.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" acorn@^4.0.3: version "4.0.13" - resolved "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" acorn@^5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" after@0.8.1: version "0.8.1" - resolved "https://registry.npmjs.org/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" agent-base@2: version "2.1.1" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" dependencies: extend "~3.0.0" semver "~5.0.1" ajv-keywords@^1.0.0: version "1.5.1" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" ajv@^4.1.3, ajv@^4.7.0: version "4.11.8" - resolved "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" dependencies: kind-of "^3.0.2" longest "^1.0.1" @@ -100,159 +104,159 @@ align-text@^0.1.1, align-text@^0.1.3: alter@~0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz#c7588808617572034aae62480af26b1d4d1cb3cd" + resolved "https://registry.yarnpkg.com/alter/-/alter-0.2.0.tgz#c7588808617572034aae62480af26b1d4d1cb3cd" dependencies: stable "~0.1.3" amd-name-resolver@0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/amd-name-resolver/-/amd-name-resolver-0.0.7.tgz#814301adfe8a2f109f6e84d5e935196efb669615" + resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-0.0.7.tgz#814301adfe8a2f109f6e84d5e935196efb669615" dependencies: ensure-posix-path "^1.0.1" amdefine@>=0.0.4: version "1.0.1" - resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" ansi-escapes@^1.1.0: version "1.4.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" ansi-styles@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" ansi-styles@^3.0.0, ansi-styles@^3.1.0: version "3.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" dependencies: color-convert "^1.9.0" ansicolors@~0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" anymatch@^1.3.0: version "1.3.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" dependencies: micromatch "^2.1.5" normalize-path "^2.0.0" aproba@^1.0.3: - version "1.1.2" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" are-we-there-yet@~1.1.2: version "1.1.4" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" dependencies: delegates "^1.0.0" readable-stream "^2.0.6" argparse@^1.0.7, argparse@~1.0.2: version "1.0.9" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" dependencies: sprintf-js "~1.0.2" arr-diff@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" dependencies: arr-flatten "^1.0.1" arr-flatten@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" array-equal@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" array-to-error@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/array-to-error/-/array-to-error-1.1.1.tgz#d68812926d14097a205579a667eeaf1856a44c07" + resolved "https://registry.yarnpkg.com/array-to-error/-/array-to-error-1.1.1.tgz#d68812926d14097a205579a667eeaf1856a44c07" dependencies: array-to-sentence "^1.1.0" array-to-sentence@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/array-to-sentence/-/array-to-sentence-1.1.0.tgz#c804956dafa53232495b205a9452753a258d39fc" + resolved "https://registry.yarnpkg.com/array-to-sentence/-/array-to-sentence-1.1.0.tgz#c804956dafa53232495b205a9452753a258d39fc" array-union@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" array-unique@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" arraybuffer.slice@0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" arrify@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" asn1@0.1.11: version "0.1.11" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" assert-plus@^0.1.5: version "0.1.5" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" assertion-error@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" ast-traverse@~0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz#69cf2b8386f19dcda1bb1e05d68fe359d8897de6" + resolved "https://registry.yarnpkg.com/ast-traverse/-/ast-traverse-0.1.1.tgz#69cf2b8386f19dcda1bb1e05d68fe359d8897de6" ast-types@0.8.12: version "0.8.12" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc" ast-types@0.8.15: version "0.8.15" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52" ast-types@0.9.6: version "0.9.6" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" async-disk-cache@^1.2.1: - version "1.3.2" - resolved "https://registry.npmjs.org/async-disk-cache/-/async-disk-cache-1.3.2.tgz#ac53d6152843df202c9406e28d774362608d74dd" + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-disk-cache/-/async-disk-cache-1.3.3.tgz#6040486660b370e4051cd9fa9fee275e1fae3728" dependencies: debug "^2.1.3" heimdalljs "^0.2.3" @@ -264,32 +268,32 @@ async-disk-cache@^1.2.1: async-promise-queue@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/async-promise-queue/-/async-promise-queue-1.0.4.tgz#308baafbc74aff66a0bb6e7f4a18d4fe8434440c" + resolved "https://registry.yarnpkg.com/async-promise-queue/-/async-promise-queue-1.0.4.tgz#308baafbc74aff66a0bb6e7f4a18d4fe8434440c" dependencies: async "^2.4.1" debug "^2.6.8" async@^1.4.0, async@^1.5.2: version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@^2.4.1: version "2.5.0" - resolved "https://registry.npmjs.org/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" dependencies: lodash "^4.14.0" async@~0.2.9: version "0.2.10" - resolved "https://registry.npmjs.org/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" async@~0.9.0: version "0.9.2" - resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" aws-sdk@^2.0.9: - version "2.115.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.115.0.tgz#8373d7636cc412a04c333b27b1d211f478f276fa" + version "2.125.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.125.0.tgz#c0c3131b57eef4a051c7266cc3b47a704e7e36ab" dependencies: buffer "4.9.1" crypto-browserify "1.0.9" @@ -304,11 +308,11 @@ aws-sdk@^2.0.9: aws-sign2@~0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" babel-code-frame@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -316,7 +320,7 @@ babel-code-frame@^6.26.0: babel-core@^5.0.0, babel-core@^5.8.22: version "5.8.38" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-5.8.38.tgz#1fcaee79d7e61b750b00b8e54f6dfc9d0af86558" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-5.8.38.tgz#1fcaee79d7e61b750b00b8e54f6dfc9d0af86558" dependencies: babel-plugin-constant-folding "^1.0.1" babel-plugin-dead-code-elimination "^1.0.2" @@ -367,7 +371,7 @@ babel-core@^5.0.0, babel-core@^5.8.22: babel-core@^6.14.0, babel-core@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" @@ -391,7 +395,7 @@ babel-core@^6.14.0, babel-core@^6.26.0: babel-generator@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" @@ -404,7 +408,7 @@ babel-generator@^6.26.0: babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" dependencies: babel-helper-explode-assignable-expression "^6.24.1" babel-runtime "^6.22.0" @@ -412,7 +416,7 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: babel-helper-call-delegate@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" @@ -421,7 +425,7 @@ babel-helper-call-delegate@^6.24.1: babel-helper-define-map@^6.24.1: version "6.26.0" - resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.26.0" @@ -430,7 +434,7 @@ babel-helper-define-map@^6.24.1: babel-helper-explode-assignable-expression@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" dependencies: babel-runtime "^6.22.0" babel-traverse "^6.24.1" @@ -438,7 +442,7 @@ babel-helper-explode-assignable-expression@^6.24.1: babel-helper-function-name@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" dependencies: babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" @@ -448,28 +452,28 @@ babel-helper-function-name@^6.24.1: babel-helper-get-function-arity@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-hoist-variables@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-optimise-call-expression@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-regex@^6.24.1: version "6.26.0" - resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" dependencies: babel-runtime "^6.26.0" babel-types "^6.26.0" @@ -477,7 +481,7 @@ babel-helper-regex@^6.24.1: babel-helper-remap-async-to-generator@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" @@ -487,7 +491,7 @@ babel-helper-remap-async-to-generator@^6.24.1: babel-helper-replace-supers@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" dependencies: babel-helper-optimise-call-expression "^6.24.1" babel-messages "^6.23.0" @@ -498,116 +502,122 @@ babel-helper-replace-supers@^6.24.1: babel-helpers@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" babel-messages@^6.23.0: version "6.23.0" - resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: babel-runtime "^6.22.0" babel-plugin-check-es2015-constants@^6.22.0: version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" dependencies: babel-runtime "^6.22.0" babel-plugin-constant-folding@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz#8361d364c98e449c3692bdba51eff0844290aa8e" + resolved "https://registry.yarnpkg.com/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz#8361d364c98e449c3692bdba51eff0844290aa8e" babel-plugin-dead-code-elimination@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz#5f7c451274dcd7cccdbfbb3e0b85dd28121f0f65" + resolved "https://registry.yarnpkg.com/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz#5f7c451274dcd7cccdbfbb3e0b85dd28121f0f65" babel-plugin-debug-macros@^0.1.10, babel-plugin-debug-macros@^0.1.11, babel-plugin-debug-macros@^0.1.7: version "0.1.11" - resolved "https://registry.npmjs.org/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.1.11.tgz#6c562bf561fccd406ce14ab04f42c218cf956605" + resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.1.11.tgz#6c562bf561fccd406ce14ab04f42c218cf956605" dependencies: semver "^5.3.0" +babel-plugin-ember-modules-api-polyfill@^1.4.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-1.6.0.tgz#abd1afa4237b3121cb51222f9bf3283cad8990aa" + dependencies: + ember-rfc176-data "^0.2.0" + babel-plugin-ember-modules-api-polyfill@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-2.0.1.tgz#baaf26dcebe2ed1de120021bc42be29f520497b3" + resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-2.0.1.tgz#baaf26dcebe2ed1de120021bc42be29f520497b3" dependencies: ember-rfc176-data "^0.2.7" babel-plugin-eval@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz#a2faed25ce6be69ade4bfec263f70169195950da" + resolved "https://registry.yarnpkg.com/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz#a2faed25ce6be69ade4bfec263f70169195950da" babel-plugin-feature-flags@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-feature-flags/-/babel-plugin-feature-flags-0.3.1.tgz#9c827cf9a4eb9a19f725ccb239e85cab02036fc1" + resolved "https://registry.yarnpkg.com/babel-plugin-feature-flags/-/babel-plugin-feature-flags-0.3.1.tgz#9c827cf9a4eb9a19f725ccb239e85cab02036fc1" babel-plugin-filter-imports@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-filter-imports/-/babel-plugin-filter-imports-0.3.1.tgz#e7859b56886b175dd2616425d277b219e209ea8b" + resolved "https://registry.yarnpkg.com/babel-plugin-filter-imports/-/babel-plugin-filter-imports-0.3.1.tgz#e7859b56886b175dd2616425d277b219e209ea8b" babel-plugin-htmlbars-inline-precompile@^0.2.3: version "0.2.3" - resolved "https://registry.npmjs.org/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-0.2.3.tgz#cd365e278af409bfa6be7704c4354beee742446b" + resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-0.2.3.tgz#cd365e278af409bfa6be7704c4354beee742446b" babel-plugin-inline-environment-variables@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz#1f58ce91207ad6a826a8bf645fafe68ff5fe3ffe" + resolved "https://registry.yarnpkg.com/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz#1f58ce91207ad6a826a8bf645fafe68ff5fe3ffe" babel-plugin-jscript@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz#8f342c38276e87a47d5fa0a8bd3d5eb6ccad8fcc" + resolved "https://registry.yarnpkg.com/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz#8f342c38276e87a47d5fa0a8bd3d5eb6ccad8fcc" babel-plugin-member-expression-literals@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz#cc5edb0faa8dc927170e74d6d1c02440021624d3" + resolved "https://registry.yarnpkg.com/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz#cc5edb0faa8dc927170e74d6d1c02440021624d3" babel-plugin-property-literals@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz#0252301900192980b1c118efea48ce93aab83336" + resolved "https://registry.yarnpkg.com/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz#0252301900192980b1c118efea48ce93aab83336" babel-plugin-proto-to-assign@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz#c49e7afd02f577bc4da05ea2df002250cf7cd123" + resolved "https://registry.yarnpkg.com/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz#c49e7afd02f577bc4da05ea2df002250cf7cd123" dependencies: lodash "^3.9.3" babel-plugin-react-constant-elements@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz#946736e8378429cbc349dcff62f51c143b34e35a" + resolved "https://registry.yarnpkg.com/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz#946736e8378429cbc349dcff62f51c143b34e35a" babel-plugin-react-display-name@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz#754fe38926e8424a4e7b15ab6ea6139dee0514fc" + resolved "https://registry.yarnpkg.com/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz#754fe38926e8424a4e7b15ab6ea6139dee0514fc" babel-plugin-remove-console@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz#d8f24556c3a05005d42aaaafd27787f53ff013a7" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz#d8f24556c3a05005d42aaaafd27787f53ff013a7" babel-plugin-remove-debugger@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz#fd2ea3cd61a428ad1f3b9c89882ff4293e8c14c7" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz#fd2ea3cd61a428ad1f3b9c89882ff4293e8c14c7" babel-plugin-runtime@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz#bf7c7d966dd56ecd5c17fa1cb253c9acb7e54aaf" + resolved "https://registry.yarnpkg.com/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz#bf7c7d966dd56ecd5c17fa1cb253c9acb7e54aaf" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" babel-plugin-syntax-trailing-function-commas@^6.22.0: version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" babel-plugin-transform-async-to-generator@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" dependencies: babel-helper-remap-async-to-generator "^6.24.1" babel-plugin-syntax-async-functions "^6.8.0" @@ -615,19 +625,19 @@ babel-plugin-transform-async-to-generator@^6.22.0: babel-plugin-transform-es2015-arrow-functions@^6.22.0: version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" dependencies: babel-runtime "^6.26.0" babel-template "^6.26.0" @@ -637,7 +647,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es20 babel-plugin-transform-es2015-classes@^6.23.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" dependencies: babel-helper-define-map "^6.24.1" babel-helper-function-name "^6.24.1" @@ -651,39 +661,39 @@ babel-plugin-transform-es2015-classes@^6.23.0: babel-plugin-transform-es2015-computed-properties@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-constants@^6.1.4: version "6.1.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-constants/-/babel-plugin-transform-es2015-constants-6.1.4.tgz#e4b8c78fb48ab98b0107f329fab6040e79c35a33" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-constants/-/babel-plugin-transform-es2015-constants-6.1.4.tgz#e4b8c78fb48ab98b0107f329fab6040e79c35a33" dependencies: babel-runtime "^5.0.0" babel-plugin-transform-es2015-destructuring@^6.23.0: version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-duplicate-keys@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-for-of@^6.23.0: version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-function-name@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" @@ -691,13 +701,13 @@ babel-plugin-transform-es2015-function-name@^6.22.0: babel-plugin-transform-es2015-literals@^6.22.0: version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" dependencies: babel-plugin-transform-es2015-modules-commonjs "^6.24.1" babel-runtime "^6.22.0" @@ -705,7 +715,7 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015 babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" dependencies: babel-plugin-transform-strict-mode "^6.24.1" babel-runtime "^6.26.0" @@ -714,7 +724,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-e babel-plugin-transform-es2015-modules-systemjs@^6.23.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" @@ -722,7 +732,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.23.0: babel-plugin-transform-es2015-modules-umd@^6.23.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" dependencies: babel-plugin-transform-es2015-modules-amd "^6.24.1" babel-runtime "^6.22.0" @@ -730,14 +740,14 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0: babel-plugin-transform-es2015-object-super@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" dependencies: babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" babel-plugin-transform-es2015-parameters@^6.23.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" dependencies: babel-helper-call-delegate "^6.24.1" babel-helper-get-function-arity "^6.24.1" @@ -748,20 +758,20 @@ babel-plugin-transform-es2015-parameters@^6.23.0: babel-plugin-transform-es2015-shorthand-properties@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-spread@^6.22.0: version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-sticky-regex@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" @@ -769,19 +779,19 @@ babel-plugin-transform-es2015-sticky-regex@^6.22.0: babel-plugin-transform-es2015-template-literals@^6.22.0: version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-typeof-symbol@^6.23.0: version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-unicode-regex@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" @@ -789,7 +799,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0: babel-plugin-transform-exponentiation-operator@^6.22.0: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" dependencies: babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" babel-plugin-syntax-exponentiation-operator "^6.8.0" @@ -797,30 +807,30 @@ babel-plugin-transform-exponentiation-operator@^6.22.0: babel-plugin-transform-regenerator@^6.22.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" dependencies: regenerator-transform "^0.10.0" babel-plugin-transform-strict-mode@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-undeclared-variables-check@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz#5cf1aa539d813ff64e99641290af620965f65dee" + resolved "https://registry.yarnpkg.com/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz#5cf1aa539d813ff64e99641290af620965f65dee" dependencies: leven "^1.0.2" babel-plugin-undefined-to-void@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz#7f578ef8b78dfae6003385d8417a61eda06e2f81" + resolved "https://registry.yarnpkg.com/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz#7f578ef8b78dfae6003385d8417a61eda06e2f81" babel-polyfill@^6.16.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" dependencies: babel-runtime "^6.26.0" core-js "^2.5.0" @@ -828,7 +838,7 @@ babel-polyfill@^6.16.0: babel-preset-env@^1.5.1: version "1.6.0" - resolved "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" dependencies: babel-plugin-check-es2015-constants "^6.22.0" babel-plugin-syntax-trailing-function-commas "^6.22.0" @@ -863,7 +873,7 @@ babel-preset-env@^1.5.1: babel-register@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" @@ -875,20 +885,20 @@ babel-register@^6.26.0: babel-runtime@^5.0.0: version "5.8.38" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz#1c0b02eb63312f5f087ff20450827b425c9d4c19" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-5.8.38.tgz#1c0b02eb63312f5f087ff20450827b425c9d4c19" dependencies: core-js "^1.0.0" babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" @@ -898,7 +908,7 @@ babel-template@^6.24.1, babel-template@^6.26.0: babel-traverse@^6.24.1, babel-traverse@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" @@ -912,7 +922,7 @@ babel-traverse@^6.24.1, babel-traverse@^6.26.0: babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" @@ -921,83 +931,85 @@ babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: babel6-plugin-strip-class-callcheck@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/babel6-plugin-strip-class-callcheck/-/babel6-plugin-strip-class-callcheck-6.0.0.tgz#de841c1abebbd39f78de0affb2c9a52ee228fddf" + resolved "https://registry.yarnpkg.com/babel6-plugin-strip-class-callcheck/-/babel6-plugin-strip-class-callcheck-6.0.0.tgz#de841c1abebbd39f78de0affb2c9a52ee228fddf" babel6-plugin-strip-heimdall@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/babel6-plugin-strip-heimdall/-/babel6-plugin-strip-heimdall-6.0.1.tgz#35f80eddec1f7fffdc009811dfbd46d9965072b6" + resolved "https://registry.yarnpkg.com/babel6-plugin-strip-heimdall/-/babel6-plugin-strip-heimdall-6.0.1.tgz#35f80eddec1f7fffdc009811dfbd46d9965072b6" babylon@^5.8.38: version "5.8.38" - resolved "https://registry.npmjs.org/babylon/-/babylon-5.8.38.tgz#ec9b120b11bf6ccd4173a18bf217e60b79859ffd" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-5.8.38.tgz#ec9b120b11bf6ccd4173a18bf217e60b79859ffd" babylon@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" backbone@^1.1.2: version "1.3.3" - resolved "https://registry.npmjs.org/backbone/-/backbone-1.3.3.tgz#4cc80ea7cb1631ac474889ce40f2f8bc683b2999" + resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.3.3.tgz#4cc80ea7cb1631ac474889ce40f2f8bc683b2999" dependencies: underscore ">=1.8.3" backo2@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" base64-arraybuffer@0.1.5: version "0.1.5" - resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" base64-js@^1.0.2: version "1.2.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" base64id@0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" -basic-auth@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" +basic-auth@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.0.tgz#015db3f353e02e56377755f962742e8981e7bbba" + dependencies: + safe-buffer "5.1.1" better-assert@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" dependencies: callsite "1.0.0" "binaryextensions@1 || 2": version "2.0.0" - resolved "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.0.0.tgz#e597d1a7a6a3558a2d1c7241a16c99965e6aa40f" + resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.0.0.tgz#e597d1a7a6a3558a2d1c7241a16c99965e6aa40f" blank-object@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/blank-object/-/blank-object-1.0.2.tgz#f990793fbe9a8c8dd013fb3219420bec81d5f4b9" + resolved "https://registry.yarnpkg.com/blank-object/-/blank-object-1.0.2.tgz#f990793fbe9a8c8dd013fb3219420bec81d5f4b9" blob@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" bluebird@^2.9.33: version "2.11.0" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" bluebird@^3.1.1, bluebird@^3.4.6: version "3.5.0" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" -body-parser@^1.15.2: - version "1.18.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.18.1.tgz#9c1629370bcfd42917f30641a2dcbe2ec50d4c26" +body-parser@1.18.2, body-parser@^1.15.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" dependencies: bytes "3.0.0" content-type "~1.0.4" - debug "2.6.8" + debug "2.6.9" depd "~1.1.1" http-errors "~1.6.2" iconv-lite "0.4.19" @@ -1008,7 +1020,7 @@ body-parser@^1.15.2: body@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" + resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" dependencies: continuable-cache "^0.3.1" error "^7.0.0" @@ -1017,13 +1029,13 @@ body@^5.1.0: boom@0.4.x: version "0.4.2" - resolved "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" dependencies: hoek "0.9.x" bower-config@^1.3.0: version "1.4.1" - resolved "https://registry.npmjs.org/bower-config/-/bower-config-1.4.1.tgz#85fd9df367c2b8dbbd0caa4c5f2bad40cd84c2cc" + resolved "https://registry.yarnpkg.com/bower-config/-/bower-config-1.4.1.tgz#85fd9df367c2b8dbbd0caa4c5f2bad40cd84c2cc" dependencies: graceful-fs "^4.1.3" mout "^1.0.0" @@ -1033,18 +1045,18 @@ bower-config@^1.3.0: bower-endpoint-parser@0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/bower-endpoint-parser/-/bower-endpoint-parser-0.2.2.tgz#00b565adbfab6f2d35addde977e97962acbcb3f6" + resolved "https://registry.yarnpkg.com/bower-endpoint-parser/-/bower-endpoint-parser-0.2.2.tgz#00b565adbfab6f2d35addde977e97962acbcb3f6" brace-expansion@^1.0.0, brace-expansion@^1.1.7: version "1.1.8" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" braces@^1.8.2: version "1.8.5" - resolved "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" dependencies: expand-range "^1.8.1" preserve "^0.2.0" @@ -1052,11 +1064,11 @@ braces@^1.8.2: breakable@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz#784a797915a38ead27bad456b5572cb4bbaa78c1" + resolved "https://registry.yarnpkg.com/breakable/-/breakable-1.0.0.tgz#784a797915a38ead27bad456b5572cb4bbaa78c1" broccoli-asset-rev@^2.4.5: version "2.6.0" - resolved "https://registry.npmjs.org/broccoli-asset-rev/-/broccoli-asset-rev-2.6.0.tgz#0633fc3a0b2ba0c2c1d56fa9feb7b331fc83be6d" + resolved "https://registry.yarnpkg.com/broccoli-asset-rev/-/broccoli-asset-rev-2.6.0.tgz#0633fc3a0b2ba0c2c1d56fa9feb7b331fc83be6d" dependencies: broccoli-asset-rewrite "^1.1.0" broccoli-filter "^1.2.2" @@ -1066,13 +1078,13 @@ broccoli-asset-rev@^2.4.5: broccoli-asset-rewrite@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/broccoli-asset-rewrite/-/broccoli-asset-rewrite-1.1.0.tgz#77a5da56157aa318c59113245e8bafb4617f8830" + resolved "https://registry.yarnpkg.com/broccoli-asset-rewrite/-/broccoli-asset-rewrite-1.1.0.tgz#77a5da56157aa318c59113245e8bafb4617f8830" dependencies: broccoli-filter "^1.2.3" broccoli-babel-transpiler@^5.5.0, broccoli-babel-transpiler@^5.6.2: version "5.7.2" - resolved "https://registry.npmjs.org/broccoli-babel-transpiler/-/broccoli-babel-transpiler-5.7.2.tgz#756c30544775144e984333b7115f42c916ba08e0" + resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-5.7.2.tgz#756c30544775144e984333b7115f42c916ba08e0" dependencies: babel-core "^5.0.0" broccoli-funnel "^1.0.0" @@ -1087,7 +1099,7 @@ broccoli-babel-transpiler@^5.5.0, broccoli-babel-transpiler@^5.6.2: broccoli-babel-transpiler@^6.0.0, broccoli-babel-transpiler@^6.1.2: version "6.1.2" - resolved "https://registry.npmjs.org/broccoli-babel-transpiler/-/broccoli-babel-transpiler-6.1.2.tgz#26019c045b5ea3e44cfef62821302f9bd483cabd" + resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-6.1.2.tgz#26019c045b5ea3e44cfef62821302f9bd483cabd" dependencies: babel-core "^6.14.0" broccoli-funnel "^1.0.0" @@ -1102,13 +1114,13 @@ broccoli-babel-transpiler@^6.0.0, broccoli-babel-transpiler@^6.1.2: broccoli-brocfile-loader@^0.18.0: version "0.18.0" - resolved "https://registry.npmjs.org/broccoli-brocfile-loader/-/broccoli-brocfile-loader-0.18.0.tgz#2e86021c805c34ffc8d29a2fb721cf273e819e4b" + resolved "https://registry.yarnpkg.com/broccoli-brocfile-loader/-/broccoli-brocfile-loader-0.18.0.tgz#2e86021c805c34ffc8d29a2fb721cf273e819e4b" dependencies: findup-sync "^0.4.2" broccoli-builder@^0.18.8: version "0.18.8" - resolved "https://registry.npmjs.org/broccoli-builder/-/broccoli-builder-0.18.8.tgz#fe54694d544c3cdfdb01028e802eeca65749a879" + resolved "https://registry.yarnpkg.com/broccoli-builder/-/broccoli-builder-0.18.8.tgz#fe54694d544c3cdfdb01028e802eeca65749a879" dependencies: heimdalljs "^0.2.0" promise-map-series "^0.2.1" @@ -1119,7 +1131,7 @@ broccoli-builder@^0.18.8: broccoli-caching-writer@^2.2.0, broccoli-caching-writer@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/broccoli-caching-writer/-/broccoli-caching-writer-2.3.1.tgz#b93cf58f9264f003075868db05774f4e7f25bd07" + resolved "https://registry.yarnpkg.com/broccoli-caching-writer/-/broccoli-caching-writer-2.3.1.tgz#b93cf58f9264f003075868db05774f4e7f25bd07" dependencies: broccoli-kitchen-sink-helpers "^0.2.5" broccoli-plugin "1.1.0" @@ -1130,7 +1142,7 @@ broccoli-caching-writer@^2.2.0, broccoli-caching-writer@^2.3.1: broccoli-caching-writer@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/broccoli-caching-writer/-/broccoli-caching-writer-3.0.3.tgz#0bd2c96a9738d6a6ab590f07ba35c5157d7db476" + resolved "https://registry.yarnpkg.com/broccoli-caching-writer/-/broccoli-caching-writer-3.0.3.tgz#0bd2c96a9738d6a6ab590f07ba35c5157d7db476" dependencies: broccoli-kitchen-sink-helpers "^0.3.1" broccoli-plugin "^1.2.1" @@ -1141,7 +1153,7 @@ broccoli-caching-writer@^3.0.3: broccoli-caching-writer@~2.0.1: version "2.0.4" - resolved "https://registry.npmjs.org/broccoli-caching-writer/-/broccoli-caching-writer-2.0.4.tgz#d995d7d1977292e498f78df05887230fcb4a5e2c" + resolved "https://registry.yarnpkg.com/broccoli-caching-writer/-/broccoli-caching-writer-2.0.4.tgz#d995d7d1977292e498f78df05887230fcb4a5e2c" dependencies: broccoli-kitchen-sink-helpers "^0.2.5" broccoli-plugin "1.1.0" @@ -1154,7 +1166,7 @@ broccoli-caching-writer@~2.0.1: broccoli-clean-css@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/broccoli-clean-css/-/broccoli-clean-css-1.1.0.tgz#9db143d9af7e0ae79c26e3ac5a9bb2d720ea19fa" + resolved "https://registry.yarnpkg.com/broccoli-clean-css/-/broccoli-clean-css-1.1.0.tgz#9db143d9af7e0ae79c26e3ac5a9bb2d720ea19fa" dependencies: broccoli-persistent-filter "^1.1.6" clean-css-promise "^0.1.0" @@ -1163,7 +1175,7 @@ broccoli-clean-css@^1.1.0: broccoli-concat@^2.2.0: version "2.3.8" - resolved "https://registry.npmjs.org/broccoli-concat/-/broccoli-concat-2.3.8.tgz#590cdcc021bb905b6c121d87c2d1d57df44a2a48" + resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-2.3.8.tgz#590cdcc021bb905b6c121d87c2d1d57df44a2a48" dependencies: broccoli-caching-writer "^2.3.1" broccoli-kitchen-sink-helpers "^0.3.1" @@ -1176,7 +1188,7 @@ broccoli-concat@^2.2.0: broccoli-concat@^3.2.2: version "3.2.2" - resolved "https://registry.npmjs.org/broccoli-concat/-/broccoli-concat-3.2.2.tgz#86ffdc52606eb590ba9f6b894c5ec7a016f5b7b9" + resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-3.2.2.tgz#86ffdc52606eb590ba9f6b894c5ec7a016f5b7b9" dependencies: broccoli-kitchen-sink-helpers "^0.3.1" broccoli-plugin "^1.3.0" @@ -1193,13 +1205,13 @@ broccoli-concat@^3.2.2: broccoli-config-loader@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/broccoli-config-loader/-/broccoli-config-loader-1.0.1.tgz#d10aaf8ebc0cb45c1da5baa82720e1d88d28c80a" + resolved "https://registry.yarnpkg.com/broccoli-config-loader/-/broccoli-config-loader-1.0.1.tgz#d10aaf8ebc0cb45c1da5baa82720e1d88d28c80a" dependencies: broccoli-caching-writer "^3.0.3" broccoli-config-replace@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/broccoli-config-replace/-/broccoli-config-replace-1.1.2.tgz#6ea879d92a5bad634d11329b51fc5f4aafda9c00" + resolved "https://registry.yarnpkg.com/broccoli-config-replace/-/broccoli-config-replace-1.1.2.tgz#6ea879d92a5bad634d11329b51fc5f4aafda9c00" dependencies: broccoli-kitchen-sink-helpers "^0.3.1" broccoli-plugin "^1.2.0" @@ -1208,7 +1220,7 @@ broccoli-config-replace@^1.1.2: broccoli-debug@^0.6.1, broccoli-debug@^0.6.2: version "0.6.3" - resolved "https://registry.npmjs.org/broccoli-debug/-/broccoli-debug-0.6.3.tgz#1f33bb0eacb5db81366f0492524c82b1217eb578" + resolved "https://registry.yarnpkg.com/broccoli-debug/-/broccoli-debug-0.6.3.tgz#1f33bb0eacb5db81366f0492524c82b1217eb578" dependencies: broccoli-plugin "^1.2.1" fs-tree-diff "^0.5.2" @@ -1220,7 +1232,7 @@ broccoli-debug@^0.6.1, broccoli-debug@^0.6.2: broccoli-file-creator@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/broccoli-file-creator/-/broccoli-file-creator-1.1.1.tgz#1b35b67d215abdfadd8d49eeb69493c39e6c3450" + resolved "https://registry.yarnpkg.com/broccoli-file-creator/-/broccoli-file-creator-1.1.1.tgz#1b35b67d215abdfadd8d49eeb69493c39e6c3450" dependencies: broccoli-kitchen-sink-helpers "~0.2.0" broccoli-plugin "^1.1.0" @@ -1231,7 +1243,7 @@ broccoli-file-creator@^1.0.0: broccoli-filter@^1.2.2, broccoli-filter@^1.2.3: version "1.2.4" - resolved "https://registry.npmjs.org/broccoli-filter/-/broccoli-filter-1.2.4.tgz#409afb94b9a3a6da9fac8134e91e205f40cc7330" + resolved "https://registry.yarnpkg.com/broccoli-filter/-/broccoli-filter-1.2.4.tgz#409afb94b9a3a6da9fac8134e91e205f40cc7330" dependencies: broccoli-kitchen-sink-helpers "^0.3.1" broccoli-plugin "^1.0.0" @@ -1245,11 +1257,11 @@ broccoli-filter@^1.2.2, broccoli-filter@^1.2.3: broccoli-funnel-reducer@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/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@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.6, broccoli-funnel@^1.1.0, broccoli-funnel@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296" + resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296" dependencies: array-equal "^1.0.0" blank-object "^1.0.1" @@ -1268,21 +1280,21 @@ broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.6, broccoli broccoli-kitchen-sink-helpers@^0.2.5, broccoli-kitchen-sink-helpers@~0.2.0: version "0.2.9" - resolved "https://registry.npmjs.org/broccoli-kitchen-sink-helpers/-/broccoli-kitchen-sink-helpers-0.2.9.tgz#a5e0986ed8d76fb5984b68c3f0450d3a96e36ecc" + resolved "https://registry.yarnpkg.com/broccoli-kitchen-sink-helpers/-/broccoli-kitchen-sink-helpers-0.2.9.tgz#a5e0986ed8d76fb5984b68c3f0450d3a96e36ecc" dependencies: glob "^5.0.10" mkdirp "^0.5.1" broccoli-kitchen-sink-helpers@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/broccoli-kitchen-sink-helpers/-/broccoli-kitchen-sink-helpers-0.3.1.tgz#77c7c18194b9664163ec4fcee2793444926e0c06" + resolved "https://registry.yarnpkg.com/broccoli-kitchen-sink-helpers/-/broccoli-kitchen-sink-helpers-0.3.1.tgz#77c7c18194b9664163ec4fcee2793444926e0c06" dependencies: glob "^5.0.10" mkdirp "^0.5.1" broccoli-lint-eslint@^2.0.0: version "2.7.0" - resolved "https://registry.npmjs.org/broccoli-lint-eslint/-/broccoli-lint-eslint-2.7.0.tgz#a2d905d02b397a90ae82439f283c459ef819f140" + resolved "https://registry.yarnpkg.com/broccoli-lint-eslint/-/broccoli-lint-eslint-2.7.0.tgz#a2d905d02b397a90ae82439f283c459ef819f140" dependencies: broccoli-persistent-filter "^1.2.0" escape-string-regexp "^1.0.5" @@ -1293,7 +1305,7 @@ broccoli-lint-eslint@^2.0.0: broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.1.0, broccoli-merge-trees@^1.1.4, broccoli-merge-trees@^1.2.1: version "1.2.4" - resolved "https://registry.npmjs.org/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5" + resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5" dependencies: broccoli-plugin "^1.3.0" can-symlink "^1.0.0" @@ -1306,14 +1318,14 @@ broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.1.0, broccoli-merge-trees@^ broccoli-merge-trees@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/broccoli-merge-trees/-/broccoli-merge-trees-2.0.0.tgz#10aea46dd5cebcc8b8f7d5a54f0a84a4f0bb90b9" + resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-2.0.0.tgz#10aea46dd5cebcc8b8f7d5a54f0a84a4f0bb90b9" dependencies: broccoli-plugin "^1.3.0" merge-trees "^1.0.1" broccoli-merge-trees@~0.2.3: version "0.2.4" - resolved "https://registry.npmjs.org/broccoli-merge-trees/-/broccoli-merge-trees-0.2.4.tgz#1936f63bb09e24246b1e91d8c53162c0f7b24c3c" + resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-0.2.4.tgz#1936f63bb09e24246b1e91d8c53162c0f7b24c3c" dependencies: broccoli-plugin "^1.0.0" debug "^2.2.0" @@ -1321,18 +1333,18 @@ broccoli-merge-trees@~0.2.3: broccoli-middleware@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/broccoli-middleware/-/broccoli-middleware-1.0.0.tgz#92f4e1fb9a791ea986245a7077f35cc648dab097" + resolved "https://registry.yarnpkg.com/broccoli-middleware/-/broccoli-middleware-1.0.0.tgz#92f4e1fb9a791ea986245a7077f35cc648dab097" dependencies: handlebars "^4.0.4" mime "^1.2.11" broccoli-node-info@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/broccoli-node-info/-/broccoli-node-info-1.1.0.tgz#3aa2e31e07e5bdb516dd25214f7c45ba1c459412" + resolved "https://registry.yarnpkg.com/broccoli-node-info/-/broccoli-node-info-1.1.0.tgz#3aa2e31e07e5bdb516dd25214f7c45ba1c459412" broccoli-persistent-filter@^1.0.3, broccoli-persistent-filter@^1.1.5, broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.2.0, broccoli-persistent-filter@^1.4.0, broccoli-persistent-filter@^1.4.2: version "1.4.3" - resolved "https://registry.npmjs.org/broccoli-persistent-filter/-/broccoli-persistent-filter-1.4.3.tgz#3511bc52fc53740cda51621f58a28152d9911bc1" + resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.4.3.tgz#3511bc52fc53740cda51621f58a28152d9911bc1" dependencies: async-disk-cache "^1.2.1" async-promise-queue "^1.0.3" @@ -1350,7 +1362,7 @@ broccoli-persistent-filter@^1.0.3, broccoli-persistent-filter@^1.1.5, broccoli-p broccoli-plugin@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/broccoli-plugin/-/broccoli-plugin-1.1.0.tgz#73e2cfa05f8ea1e3fc1420c40c3d9e7dc724bf02" + resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.1.0.tgz#73e2cfa05f8ea1e3fc1420c40c3d9e7dc724bf02" dependencies: promise-map-series "^0.2.1" quick-temp "^0.1.3" @@ -1359,7 +1371,7 @@ broccoli-plugin@1.1.0: broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli-plugin@^1.2.1, broccoli-plugin@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/broccoli-plugin/-/broccoli-plugin-1.3.0.tgz#bee704a8e42da08cb58e513aaa436efb7f0ef1ee" + resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.3.0.tgz#bee704a8e42da08cb58e513aaa436efb7f0ef1ee" dependencies: promise-map-series "^0.2.1" quick-temp "^0.1.3" @@ -1368,7 +1380,7 @@ broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli broccoli-rollup@^1.2.0: version "1.3.0" - resolved "https://registry.npmjs.org/broccoli-rollup/-/broccoli-rollup-1.3.0.tgz#43a0a7798555bab54217009eb470a4ff5a056df0" + resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-1.3.0.tgz#43a0a7798555bab54217009eb470a4ff5a056df0" dependencies: broccoli-plugin "^1.2.1" es6-map "^0.1.4" @@ -1384,17 +1396,17 @@ broccoli-rollup@^1.2.0: broccoli-slow-trees@3.0.1, broccoli-slow-trees@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/broccoli-slow-trees/-/broccoli-slow-trees-3.0.1.tgz#9bf2a9e2f8eb3ed3a3f2abdde988da437ccdc9b4" + resolved "https://registry.yarnpkg.com/broccoli-slow-trees/-/broccoli-slow-trees-3.0.1.tgz#9bf2a9e2f8eb3ed3a3f2abdde988da437ccdc9b4" dependencies: heimdalljs "^0.2.1" broccoli-source@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/broccoli-source/-/broccoli-source-1.1.0.tgz#54f0e82c8b73f46580cbbc4f578f0b32fca8f809" + resolved "https://registry.yarnpkg.com/broccoli-source/-/broccoli-source-1.1.0.tgz#54f0e82c8b73f46580cbbc4f578f0b32fca8f809" broccoli-sri-hash@^2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/broccoli-sri-hash/-/broccoli-sri-hash-2.1.2.tgz#bc69905ed7a381ad325cc0d02ded071328ebf3f3" + resolved "https://registry.yarnpkg.com/broccoli-sri-hash/-/broccoli-sri-hash-2.1.2.tgz#bc69905ed7a381ad325cc0d02ded071328ebf3f3" dependencies: broccoli-caching-writer "^2.2.0" mkdirp "^0.5.1" @@ -1404,7 +1416,7 @@ broccoli-sri-hash@^2.1.0: broccoli-stew@^1.2.0, broccoli-stew@^1.3.3, broccoli-stew@^1.4.2: version "1.5.0" - resolved "https://registry.npmjs.org/broccoli-stew/-/broccoli-stew-1.5.0.tgz#d7af8c18511dce510e49d308a62e5977f461883c" + resolved "https://registry.yarnpkg.com/broccoli-stew/-/broccoli-stew-1.5.0.tgz#d7af8c18511dce510e49d308a62e5977f461883c" dependencies: broccoli-debug "^0.6.1" broccoli-funnel "^1.0.1" @@ -1423,14 +1435,14 @@ broccoli-stew@^1.2.0, broccoli-stew@^1.3.3, broccoli-stew@^1.4.2: broccoli-string-replace@^0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/broccoli-string-replace/-/broccoli-string-replace-0.1.2.tgz#1ed92f85680af8d503023925e754e4e33676b91f" + resolved "https://registry.yarnpkg.com/broccoli-string-replace/-/broccoli-string-replace-0.1.2.tgz#1ed92f85680af8d503023925e754e4e33676b91f" dependencies: broccoli-persistent-filter "^1.1.5" minimatch "^3.0.3" broccoli-test-helper@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/broccoli-test-helper/-/broccoli-test-helper-1.2.0.tgz#d01005d8611fd73ebe1b29552bf052ff59badfb4" + resolved "https://registry.yarnpkg.com/broccoli-test-helper/-/broccoli-test-helper-1.2.0.tgz#d01005d8611fd73ebe1b29552bf052ff59badfb4" dependencies: broccoli "^1.1.0" fixturify "^0.3.2" @@ -1441,7 +1453,7 @@ broccoli-test-helper@^1.2.0: broccoli-uglify-sourcemap@^1.0.0, broccoli-uglify-sourcemap@^1.0.1: version "1.5.2" - resolved "https://registry.npmjs.org/broccoli-uglify-sourcemap/-/broccoli-uglify-sourcemap-1.5.2.tgz#04f84ab0db539031fa868ccfa563c9932d50cedb" + resolved "https://registry.yarnpkg.com/broccoli-uglify-sourcemap/-/broccoli-uglify-sourcemap-1.5.2.tgz#04f84ab0db539031fa868ccfa563c9932d50cedb" dependencies: broccoli-plugin "^1.2.1" debug "^2.2.0" @@ -1455,14 +1467,14 @@ broccoli-uglify-sourcemap@^1.0.0, broccoli-uglify-sourcemap@^1.0.1: broccoli-writer@~0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/broccoli-writer/-/broccoli-writer-0.1.1.tgz#d4d71aa8f2afbc67a3866b91a2da79084b96ab2d" + resolved "https://registry.yarnpkg.com/broccoli-writer/-/broccoli-writer-0.1.1.tgz#d4d71aa8f2afbc67a3866b91a2da79084b96ab2d" dependencies: quick-temp "^0.1.0" rsvp "^3.0.6" broccoli-yuidoc@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/broccoli-yuidoc/-/broccoli-yuidoc-2.1.0.tgz#d208d5c056e421a51f0c7701e938229e7e85c2e6" + resolved "https://registry.yarnpkg.com/broccoli-yuidoc/-/broccoli-yuidoc-2.1.0.tgz#d208d5c056e421a51f0c7701e938229e7e85c2e6" dependencies: broccoli-caching-writer "~2.0.1" broccoli-merge-trees "~0.2.3" @@ -1472,7 +1484,7 @@ broccoli-yuidoc@^2.1.0: broccoli@^1.1.0: version "1.1.3" - resolved "https://registry.npmjs.org/broccoli/-/broccoli-1.1.3.tgz#98405e86b7b0e6c268fb8302a006d834d17ed292" + resolved "https://registry.yarnpkg.com/broccoli/-/broccoli-1.1.3.tgz#98405e86b7b0e6c268fb8302a006d834d17ed292" dependencies: broccoli-node-info "1.1.0" broccoli-slow-trees "3.0.1" @@ -1492,20 +1504,20 @@ broccoli@^1.1.0: browserslist@^2.1.2: version "2.4.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8" dependencies: caniuse-lite "^1.0.30000718" electron-to-chromium "^1.3.18" bser@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" dependencies: node-int64 "^0.4.0" buffer@4.9.1: version "4.9.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -1513,101 +1525,97 @@ buffer@4.9.1: builtin-modules@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" builtins@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" bytes@1: version "1.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - -bytes@2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" bytes@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" calculate-cache-key-for-tree@^1.0.0, calculate-cache-key-for-tree@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/calculate-cache-key-for-tree/-/calculate-cache-key-for-tree-1.1.0.tgz#0c3e42c9c134f3c9de5358c0f16793627ea976d6" + resolved "https://registry.yarnpkg.com/calculate-cache-key-for-tree/-/calculate-cache-key-for-tree-1.1.0.tgz#0c3e42c9c134f3c9de5358c0f16793627ea976d6" dependencies: json-stable-stringify "^1.0.1" caller-path@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" callsite@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" callsites@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" camelcase@^1.0.2, camelcase@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" camelcase@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" can-symlink@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/can-symlink/-/can-symlink-1.0.0.tgz#97b607d8a84bb6c6e228b902d864ecb594b9d219" + resolved "https://registry.yarnpkg.com/can-symlink/-/can-symlink-1.0.0.tgz#97b607d8a84bb6c6e228b902d864ecb594b9d219" dependencies: tmp "0.0.28" caniuse-lite@^1.0.30000718: - version "1.0.30000727" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000727.tgz#20c895768398ded5f98a4beab4a76c285def41d2" + version "1.0.30000740" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000740.tgz#f2c4c04d6564eb812e61006841700ad557f6f973" capture-exit@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" dependencies: rsvp "^3.3.3" cardinal@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9" + resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9" dependencies: ansicolors "~0.2.1" redeyed "~1.0.0" center-align@^0.1.1: version "0.1.3" - resolved "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" dependencies: align-text "^0.1.3" lazy-cache "^1.0.3" chai-as-promised@^5.1.0: version "5.3.0" - resolved "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-5.3.0.tgz#09d7a402908aa70dfdbead53e5853fc79d3ef21c" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-5.3.0.tgz#09d7a402908aa70dfdbead53e5853fc79d3ef21c" chai-as-promised@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6" dependencies: check-error "^1.0.2" chai-files@^1.0.0, chai-files@^1.1.0: version "1.4.0" - resolved "https://registry.npmjs.org/chai-files/-/chai-files-1.4.0.tgz#0e25610fadc551b1eae79c2f4ee79faf2f842296" + resolved "https://registry.yarnpkg.com/chai-files/-/chai-files-1.4.0.tgz#0e25610fadc551b1eae79c2f4ee79faf2f842296" dependencies: assertion-error "^1.0.1" chai@^3.3.0: version "3.5.0" - resolved "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" dependencies: assertion-error "^1.0.1" deep-eql "^0.1.3" @@ -1615,7 +1623,7 @@ chai@^3.3.0: chalk@^0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" dependencies: ansi-styles "^1.1.0" escape-string-regexp "^1.0.0" @@ -1625,7 +1633,7 @@ chalk@^0.5.1: chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -1635,7 +1643,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: chalk@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" dependencies: ansi-styles "^3.1.0" escape-string-regexp "^1.0.5" @@ -1643,17 +1651,17 @@ chalk@^2.0.0: charm@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz#8add367153a6d9a581331052c4090991da995e35" + resolved "https://registry.yarnpkg.com/charm/-/charm-1.0.2.tgz#8add367153a6d9a581331052c4090991da995e35" dependencies: inherits "^2.0.1" check-error@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" chrome-debugging-client@^0.2.4: version "0.2.5" - resolved "https://registry.npmjs.org/chrome-debugging-client/-/chrome-debugging-client-0.2.5.tgz#b8e1a6c37283323b6ff5d60525f6ea1fc8899fbd" + resolved "https://registry.yarnpkg.com/chrome-debugging-client/-/chrome-debugging-client-0.2.5.tgz#b8e1a6c37283323b6ff5d60525f6ea1fc8899fbd" dependencies: "@types/node" "^7.0.5" "@types/rimraf" "^0.0.28" @@ -1665,15 +1673,15 @@ chrome-debugging-client@^0.2.4: circular-json@^0.3.1: version "0.3.3" - resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" clean-base-url@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/clean-base-url/-/clean-base-url-1.0.0.tgz#c901cf0a20b972435b0eccd52d056824a4351b7b" + resolved "https://registry.yarnpkg.com/clean-base-url/-/clean-base-url-1.0.0.tgz#c901cf0a20b972435b0eccd52d056824a4351b7b" clean-css-promise@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/clean-css-promise/-/clean-css-promise-0.1.1.tgz#43f3d2c8dfcb2bf071481252cd9b76433c08eecb" + resolved "https://registry.yarnpkg.com/clean-css-promise/-/clean-css-promise-0.1.1.tgz#43f3d2c8dfcb2bf071481252cd9b76433c08eecb" dependencies: array-to-error "^1.0.0" clean-css "^3.4.5" @@ -1681,24 +1689,24 @@ clean-css-promise@^0.1.0: clean-css@^3.4.5: version "3.4.28" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz#bf1945e82fc808f55695e6ddeaec01400efd03ff" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.28.tgz#bf1945e82fc808f55695e6ddeaec01400efd03ff" dependencies: commander "2.8.x" source-map "0.4.x" cli-cursor@^1.0.1, cli-cursor@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" dependencies: restore-cursor "^1.0.1" cli-spinners@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" cli-table2@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz#2d1ef7f218a0e786e214540562d4bd177fe32d97" + resolved "https://registry.yarnpkg.com/cli-table2/-/cli-table2-0.2.0.tgz#2d1ef7f218a0e786e214540562d4bd177fe32d97" dependencies: lodash "^3.10.1" string-width "^1.0.1" @@ -1707,17 +1715,17 @@ cli-table2@^0.2.0: cli-table@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" dependencies: colors "1.0.3" cli-width@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" cliui@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" dependencies: center-align "^0.1.1" right-align "^0.1.1" @@ -1725,7 +1733,7 @@ cliui@^2.1.0: cliui@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -1733,79 +1741,79 @@ cliui@^3.2.0: clone@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" clone@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" co@^4.6.0: version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" color-convert@^1.9.0: version "1.9.0" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" dependencies: color-name "^1.1.1" color-name@^1.1.1: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" colors@1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" colors@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" colors@~0.6.0-1: version "0.6.2" - resolved "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" combined-stream@~0.0.4: version "0.0.7" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" dependencies: delayed-stream "0.0.5" commander@0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" + resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" commander@2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" commander@2.8.x: version "2.8.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" dependencies: graceful-readlink ">= 1.0.0" commander@^2.5.0, commander@^2.6.0: version "2.11.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" commander@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" common-tags@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" dependencies: babel-runtime "^6.18.0" commoner@~0.10.3: version "0.10.8" - resolved "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5" + resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5" dependencies: commander "^2.5.0" detective "^4.3.1" @@ -1819,45 +1827,45 @@ commoner@~0.10.3: component-bind@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" component-emitter@1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" component-emitter@1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" component-inherit@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" -compressible@~2.0.10: +compressible@~2.0.11: version "2.0.11" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" dependencies: mime-db ">= 1.29.0 < 2" compression@^1.4.4: - version "1.7.0" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d" + version "1.7.1" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db" dependencies: - accepts "~1.3.3" - bytes "2.5.0" - compressible "~2.0.10" - debug "2.6.8" + accepts "~1.3.4" + bytes "3.0.0" + compressible "~2.0.11" + debug "2.6.9" on-headers "~1.0.1" safe-buffer "5.1.1" - vary "~1.1.1" + vary "~1.1.2" concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" concat-stream@^1.4.6, concat-stream@^1.4.7: version "1.6.0" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: inherits "^2.0.3" readable-stream "^2.2.2" @@ -1865,7 +1873,7 @@ concat-stream@^1.4.6, concat-stream@^1.4.7: configstore@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" dependencies: dot-prop "^3.0.0" graceful-fs "^4.1.2" @@ -1879,7 +1887,7 @@ configstore@^2.0.0: configstore@^3.0.0: version "3.1.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" dependencies: dot-prop "^4.1.0" graceful-fs "^4.1.2" @@ -1889,21 +1897,21 @@ configstore@^3.0.0: xdg-basedir "^3.0.0" connect@^3.3.3: - version "3.6.3" - resolved "https://registry.npmjs.org/connect/-/connect-3.6.3.tgz#f7320d46a25b4be7b483a2236517f24b1e27e301" + version "3.6.5" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.5.tgz#fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da" dependencies: - debug "2.6.8" - finalhandler "1.0.4" - parseurl "~1.3.1" - utils-merge "1.0.0" + debug "2.6.9" + finalhandler "1.0.6" + parseurl "~1.3.2" + utils-merge "1.0.1" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" console-ui@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/console-ui/-/console-ui-1.0.3.tgz#31c524461b63422769f9e89c173495d91393721c" + resolved "https://registry.yarnpkg.com/console-ui/-/console-ui-1.0.3.tgz#31c524461b63422769f9e89c173495d91393721c" dependencies: chalk "^1.1.3" inquirer "^1.2.3" @@ -1912,67 +1920,67 @@ console-ui@^1.0.2: consolidate@^0.14.0: version "0.14.5" - resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz#5a25047bc76f73072667c8cb52c989888f494c63" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.14.5.tgz#5a25047bc76f73072667c8cb52c989888f494c63" dependencies: bluebird "^3.1.1" content-disposition@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" -content-type@~1.0.2, content-type@~1.0.4: +content-type@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" continuable-cache@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" + resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" convert-source-map@^1.1.0, convert-source-map@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" cookie@0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" copy-dereference@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/copy-dereference/-/copy-dereference-1.0.0.tgz#6b131865420fd81b413ba994b44d3655311152b6" + resolved "https://registry.yarnpkg.com/copy-dereference/-/copy-dereference-1.0.0.tgz#6b131865420fd81b413ba994b44d3655311152b6" core-js@^1.0.0: version "1.2.7" - resolved "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" core-js@^2.4.0, core-js@^2.5.0: version "2.5.1" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" core-js@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" core-object@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/core-object/-/core-object-1.1.0.tgz#86d63918733cf9da1a5aae729e62c0a88e66ad0a" + resolved "https://registry.yarnpkg.com/core-object/-/core-object-1.1.0.tgz#86d63918733cf9da1a5aae729e62c0a88e66ad0a" core-object@^3.1.3: version "3.1.5" - resolved "https://registry.npmjs.org/core-object/-/core-object-3.1.5.tgz#fa627b87502adc98045e44678e9a8ec3b9c0d2a9" + resolved "https://registry.yarnpkg.com/core-object/-/core-object-3.1.5.tgz#fa627b87502adc98045e44678e9a8ec3b9c0d2a9" dependencies: chalk "^2.0.0" core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" @@ -1980,75 +1988,75 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: cryptiles@0.2.x: version "0.2.2" - resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" dependencies: boom "0.4.x" crypto-browserify@1.0.9: version "1.0.9" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz#cc5449685dfb85eb11c9828acc7cb87ab5bbfcc0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-1.0.9.tgz#cc5449685dfb85eb11c9828acc7cb87ab5bbfcc0" crypto-random-string@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" ctype@0.5.3: version "0.5.3" - resolved "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" d@1: version "1.0.0" - resolved "https://registry.npmjs.org/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" dependencies: es5-ext "^0.10.9" dag-map@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/dag-map/-/dag-map-2.0.2.tgz#9714b472de82a1843de2fba9b6876938cab44c68" + resolved "https://registry.yarnpkg.com/dag-map/-/dag-map-2.0.2.tgz#9714b472de82a1843de2fba9b6876938cab44c68" -debug@2, debug@2.6.8, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.4.0, debug@^2.6.8, debug@~2.6.7: - version "2.6.8" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" +debug@2, debug@2.6.9, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.4.0, debug@^2.6.8, debug@~2.6.7: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" debug@2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: ms "0.7.1" debug@2.3.3: version "2.3.3" - resolved "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" dependencies: ms "0.7.2" decamelize@^1.0.0, decamelize@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" deep-eql@^0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" dependencies: type-detect "0.1.1" deep-freeze@^0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" deep-is@~0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" defined@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" defs@~1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz#b22609f2c7a11ba7a3db116805c139b1caffa9d2" + resolved "https://registry.yarnpkg.com/defs/-/defs-1.1.1.tgz#b22609f2c7a11ba7a3db116805c139b1caffa9d2" dependencies: alter "~0.2.0" ast-traverse "~0.1.1" @@ -2063,7 +2071,7 @@ defs@~1.1.0: del@^2.0.2: version "2.2.2" - resolved "https://registry.npmjs.org/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" @@ -2075,29 +2083,29 @@ del@^2.0.2: delayed-stream@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" delegates@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@1.1.1, depd@~1.1.0, depd@~1.1.1: +depd@1.1.1, depd@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" destroy@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" detect-file@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" dependencies: fs-exists-sync "^0.1.0" detect-indent@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz#9dc5e5ddbceef8325764b9451b02bc6d54084f75" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-3.0.1.tgz#9dc5e5ddbceef8325764b9451b02bc6d54084f75" dependencies: get-stdin "^4.0.1" minimist "^1.1.0" @@ -2105,72 +2113,72 @@ detect-indent@^3.0.0: detect-indent@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" dependencies: repeating "^2.0.0" detective@^4.3.1: version "4.5.0" - resolved "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz#6e5a8c6b26e6c7a254b1c6b6d7490d98ec91edd1" + resolved "https://registry.yarnpkg.com/detective/-/detective-4.5.0.tgz#6e5a8c6b26e6c7a254b1c6b6d7490d98ec91edd1" dependencies: acorn "^4.0.3" defined "^1.0.0" diff@1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" + resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" diff@^3.2.0: version "3.3.1" - resolved "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" doctrine@^1.2.2: version "1.5.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" dependencies: esutils "^2.0.2" isarray "^1.0.0" dot-prop@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" dependencies: is-obj "^1.0.0" dot-prop@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" dependencies: is-obj "^1.0.0" editions@^1.1.1: version "1.3.3" - resolved "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz#0907101bdda20fac3cbe334c27cbd0688dc99a5b" + resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.3.tgz#0907101bdda20fac3cbe334c27cbd0688dc99a5b" ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" electron-to-chromium@^1.3.18: - version "1.3.21" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.21.tgz#a967ebdcfe8ed0083fc244d1894022a8e8113ea2" + version "1.3.24" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.24.tgz#9b7b88bb05ceb9fa016a177833cc2dde388f21b6" ember-ajax@^2.4.1: version "2.5.6" - resolved "https://registry.npmjs.org/ember-ajax/-/ember-ajax-2.5.6.tgz#a75f743ccf1b95e979a5cf96013b3dba8fa625e4" + resolved "https://registry.yarnpkg.com/ember-ajax/-/ember-ajax-2.5.6.tgz#a75f743ccf1b95e979a5cf96013b3dba8fa625e4" dependencies: ember-cli-babel "^5.1.5" ember-cli-app-version@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/ember-cli-app-version/-/ember-cli-app-version-3.1.0.tgz#074b0330581a7b8ab094ff07fefb34e0d0254bfd" + resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-3.1.0.tgz#074b0330581a7b8ab094ff07fefb34e0d0254bfd" dependencies: ember-cli-babel "^6.8.0" git-repo-version "0.4.1" ember-cli-babel@^5.0.0, ember-cli-babel@^5.1.10, ember-cli-babel@^5.1.5, ember-cli-babel@^5.1.6, ember-cli-babel@^5.2.1: version "5.2.4" - resolved "https://registry.npmjs.org/ember-cli-babel/-/ember-cli-babel-5.2.4.tgz#5ce4f46b08ed6f6d21e878619fb689719d6e8e13" + resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-5.2.4.tgz#5ce4f46b08ed6f6d21e878619fb689719d6e8e13" dependencies: broccoli-babel-transpiler "^5.6.2" broccoli-funnel "^1.0.0" @@ -2178,9 +2186,9 @@ ember-cli-babel@^5.0.0, ember-cli-babel@^5.1.10, ember-cli-babel@^5.1.5, ember-c ember-cli-version-checker "^1.0.2" resolve "^1.1.2" -ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.4.1, ember-cli-babel@^6.8.0, ember-cli-babel@^6.8.1: +ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.7.2, ember-cli-babel@^6.8.0, ember-cli-babel@^6.8.1: version "6.8.2" - resolved "https://registry.npmjs.org/ember-cli-babel/-/ember-cli-babel-6.8.2.tgz#eac2785964f4743f4c815cd53c6288f00cc087d7" + resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.8.2.tgz#eac2785964f4743f4c815cd53c6288f00cc087d7" dependencies: amd-name-resolver "0.0.7" babel-plugin-debug-macros "^0.1.11" @@ -2197,7 +2205,7 @@ ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.4.1, e ember-cli-blueprint-test-helpers@0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/ember-cli-blueprint-test-helpers/-/ember-cli-blueprint-test-helpers-0.11.0.tgz#252530b7d1e3e93c01526cad08cc6b184a967487" + resolved "https://registry.yarnpkg.com/ember-cli-blueprint-test-helpers/-/ember-cli-blueprint-test-helpers-0.11.0.tgz#252530b7d1e3e93c01526cad08cc6b184a967487" dependencies: chai "^3.3.0" chai-as-promised "^5.1.0" @@ -2212,7 +2220,7 @@ ember-cli-blueprint-test-helpers@0.11.0: ember-cli-broccoli-sane-watcher@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/ember-cli-broccoli-sane-watcher/-/ember-cli-broccoli-sane-watcher-2.0.4.tgz#f43f42f75b7509c212fb926cd9aea86ae19264c6" + resolved "https://registry.yarnpkg.com/ember-cli-broccoli-sane-watcher/-/ember-cli-broccoli-sane-watcher-2.0.4.tgz#f43f42f75b7509c212fb926cd9aea86ae19264c6" dependencies: broccoli-slow-trees "^3.0.1" heimdalljs "^0.2.1" @@ -2222,7 +2230,7 @@ ember-cli-broccoli-sane-watcher@^2.0.4: ember-cli-dependency-checker@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/ember-cli-dependency-checker/-/ember-cli-dependency-checker-1.4.0.tgz#2b13f977e1eea843fc1a21a001be6ca5d4ef1942" + resolved "https://registry.yarnpkg.com/ember-cli-dependency-checker/-/ember-cli-dependency-checker-1.4.0.tgz#2b13f977e1eea843fc1a21a001be6ca5d4ef1942" dependencies: chalk "^0.5.1" is-git-url "^0.2.0" @@ -2230,7 +2238,7 @@ ember-cli-dependency-checker@^1.3.0: ember-cli-eslint@1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/ember-cli-eslint/-/ember-cli-eslint-1.3.0.tgz#8a7eda0d7e6a00c5a5a823f59664932d6429a8f1" + resolved "https://registry.yarnpkg.com/ember-cli-eslint/-/ember-cli-eslint-1.3.0.tgz#8a7eda0d7e6a00c5a5a823f59664932d6429a8f1" dependencies: broccoli-lint-eslint "^2.0.0" ember-cli-babel "^5.1.5" @@ -2238,15 +2246,15 @@ ember-cli-eslint@1.3.0: ember-cli-get-component-path-option@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/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" ember-cli-get-dependency-depth@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/ember-cli-get-dependency-depth/-/ember-cli-get-dependency-depth-1.0.0.tgz#e0afecf82a2d52f00f28ab468295281aec368d11" + resolved "https://registry.yarnpkg.com/ember-cli-get-dependency-depth/-/ember-cli-get-dependency-depth-1.0.0.tgz#e0afecf82a2d52f00f28ab468295281aec368d11" ember-cli-htmlbars-inline-precompile@^0.4.3: version "0.4.4" - resolved "https://registry.npmjs.org/ember-cli-htmlbars-inline-precompile/-/ember-cli-htmlbars-inline-precompile-0.4.4.tgz#24a7617152630d64a047e553b72e00963a4f8d73" + resolved "https://registry.yarnpkg.com/ember-cli-htmlbars-inline-precompile/-/ember-cli-htmlbars-inline-precompile-0.4.4.tgz#24a7617152630d64a047e553b72e00963a4f8d73" dependencies: babel-plugin-htmlbars-inline-precompile "^0.2.3" ember-cli-version-checker "^2.0.0" @@ -2255,7 +2263,7 @@ ember-cli-htmlbars-inline-precompile@^0.4.3: ember-cli-htmlbars@^2.0.1: version "2.0.3" - resolved "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-2.0.3.tgz#e116e1500dba12f29c94b05b9ec90f52cb8bb042" + resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-2.0.3.tgz#e116e1500dba12f29c94b05b9ec90f52cb8bb042" dependencies: broccoli-persistent-filter "^1.0.3" hash-for-dep "^1.0.2" @@ -2264,11 +2272,11 @@ ember-cli-htmlbars@^2.0.1: ember-cli-inject-live-reload@^1.4.1: version "1.7.0" - resolved "https://registry.npmjs.org/ember-cli-inject-live-reload/-/ember-cli-inject-live-reload-1.7.0.tgz#af94336e015336127dfb98080ad442bb233e37ed" + resolved "https://registry.yarnpkg.com/ember-cli-inject-live-reload/-/ember-cli-inject-live-reload-1.7.0.tgz#af94336e015336127dfb98080ad442bb233e37ed" ember-cli-internal-test-helpers@^0.8.1: version "0.8.3" - resolved "https://registry.npmjs.org/ember-cli-internal-test-helpers/-/ember-cli-internal-test-helpers-0.8.3.tgz#e9b7db67f3fda4db736d1a319a282c04beada495" + resolved "https://registry.yarnpkg.com/ember-cli-internal-test-helpers/-/ember-cli-internal-test-helpers-0.8.3.tgz#e9b7db67f3fda4db736d1a319a282c04beada495" dependencies: chai "^3.3.0" chai-as-promised "^6.0.0" @@ -2286,11 +2294,11 @@ ember-cli-internal-test-helpers@^0.8.1: ember-cli-is-package-missing@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/ember-cli-is-package-missing/-/ember-cli-is-package-missing-1.0.0.tgz#6e6184cafb92635dd93ca6c946b104292d4e3390" + resolved "https://registry.yarnpkg.com/ember-cli-is-package-missing/-/ember-cli-is-package-missing-1.0.0.tgz#6e6184cafb92635dd93ca6c946b104292d4e3390" ember-cli-legacy-blueprints@^0.1.2: version "0.1.5" - resolved "https://registry.npmjs.org/ember-cli-legacy-blueprints/-/ember-cli-legacy-blueprints-0.1.5.tgz#93c15ca242ec5107d62a8af7ec30f6ac538f3ad9" + resolved "https://registry.yarnpkg.com/ember-cli-legacy-blueprints/-/ember-cli-legacy-blueprints-0.1.5.tgz#93c15ca242ec5107d62a8af7ec30f6ac538f3ad9" dependencies: chalk "^1.1.1" ember-cli-get-component-path-option "^1.0.0" @@ -2312,21 +2320,21 @@ ember-cli-legacy-blueprints@^0.1.2: ember-cli-lodash-subset@^1.0.11, ember-cli-lodash-subset@^1.0.7: version "1.0.12" - resolved "https://registry.npmjs.org/ember-cli-lodash-subset/-/ember-cli-lodash-subset-1.0.12.tgz#af2e77eba5dcb0d77f3308d3a6fd7d3450f6e537" + resolved "https://registry.yarnpkg.com/ember-cli-lodash-subset/-/ember-cli-lodash-subset-1.0.12.tgz#af2e77eba5dcb0d77f3308d3a6fd7d3450f6e537" ember-cli-normalize-entity-name@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/ember-cli-normalize-entity-name/-/ember-cli-normalize-entity-name-1.0.0.tgz#0b14f7bcbc599aa117b5fddc81e4fd03c4bad5b7" + resolved "https://registry.yarnpkg.com/ember-cli-normalize-entity-name/-/ember-cli-normalize-entity-name-1.0.0.tgz#0b14f7bcbc599aa117b5fddc81e4fd03c4bad5b7" dependencies: silent-error "^1.0.0" ember-cli-path-utils@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/ember-cli-path-utils/-/ember-cli-path-utils-1.0.0.tgz#4e39af8b55301cddc5017739b77a804fba2071ed" + resolved "https://registry.yarnpkg.com/ember-cli-path-utils/-/ember-cli-path-utils-1.0.0.tgz#4e39af8b55301cddc5017739b77a804fba2071ed" ember-cli-preprocess-registry@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/ember-cli-preprocess-registry/-/ember-cli-preprocess-registry-3.1.1.tgz#38456c21c4d2b64945850cf9ec68db6ba769288a" + resolved "https://registry.yarnpkg.com/ember-cli-preprocess-registry/-/ember-cli-preprocess-registry-3.1.1.tgz#38456c21c4d2b64945850cf9ec68db6ba769288a" dependencies: broccoli-clean-css "^1.1.0" broccoli-funnel "^1.0.0" @@ -2339,7 +2347,7 @@ ember-cli-preprocess-registry@^3.1.0: ember-cli-pretender@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/ember-cli-pretender/-/ember-cli-pretender-1.0.1.tgz#35540babddef6f2778e91c627d190c73505103cd" + resolved "https://registry.yarnpkg.com/ember-cli-pretender/-/ember-cli-pretender-1.0.1.tgz#35540babddef6f2778e91c627d190c73505103cd" dependencies: broccoli-funnel "^1.1.0" broccoli-merge-trees "^1.2.1" @@ -2348,7 +2356,7 @@ ember-cli-pretender@^1.0.1: ember-cli-qunit@^2.1.0: version "2.2.6" - resolved "https://registry.npmjs.org/ember-cli-qunit/-/ember-cli-qunit-2.2.6.tgz#d802174724edd59b61ffdd0581fceb3236014dd1" + resolved "https://registry.yarnpkg.com/ember-cli-qunit/-/ember-cli-qunit-2.2.6.tgz#d802174724edd59b61ffdd0581fceb3236014dd1" dependencies: broccoli-babel-transpiler "^5.5.0" broccoli-concat "^2.2.0" @@ -2364,7 +2372,7 @@ ember-cli-qunit@^2.1.0: ember-cli-release@^0.2.9: version "0.2.9" - resolved "https://registry.npmjs.org/ember-cli-release/-/ember-cli-release-0.2.9.tgz#5e8de3d034c65597933748023058470ec1231adb" + resolved "https://registry.yarnpkg.com/ember-cli-release/-/ember-cli-release-0.2.9.tgz#5e8de3d034c65597933748023058470ec1231adb" dependencies: chalk "^1.0.0" git-tools "^0.1.4" @@ -2378,7 +2386,7 @@ ember-cli-release@^0.2.9: ember-cli-shims@^1.0.2: version "1.1.0" - resolved "https://registry.npmjs.org/ember-cli-shims/-/ember-cli-shims-1.1.0.tgz#0e3b8a048be865b4f81cc81d397ff1eeb13f75b6" + resolved "https://registry.yarnpkg.com/ember-cli-shims/-/ember-cli-shims-1.1.0.tgz#0e3b8a048be865b4f81cc81d397ff1eeb13f75b6" dependencies: ember-cli-babel "^6.0.0-beta.7" ember-cli-version-checker "^1.2.0" @@ -2386,54 +2394,54 @@ ember-cli-shims@^1.0.2: ember-cli-sri@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/ember-cli-sri/-/ember-cli-sri-2.1.1.tgz#971620934a4b9183cf7923cc03e178b83aa907fd" + resolved "https://registry.yarnpkg.com/ember-cli-sri/-/ember-cli-sri-2.1.1.tgz#971620934a4b9183cf7923cc03e178b83aa907fd" dependencies: broccoli-sri-hash "^2.1.0" ember-cli-string-utils@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" + resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" ember-cli-test-info@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/ember-cli-test-info/-/ember-cli-test-info-1.0.0.tgz#ed4e960f249e97523cf891e4aed2072ce84577b4" + resolved "https://registry.yarnpkg.com/ember-cli-test-info/-/ember-cli-test-info-1.0.0.tgz#ed4e960f249e97523cf891e4aed2072ce84577b4" dependencies: ember-cli-string-utils "^1.0.0" ember-cli-test-loader@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/ember-cli-test-loader/-/ember-cli-test-loader-1.1.1.tgz#333311209b18185d0e0e95f918349da10cacf0b1" + resolved "https://registry.yarnpkg.com/ember-cli-test-loader/-/ember-cli-test-loader-1.1.1.tgz#333311209b18185d0e0e95f918349da10cacf0b1" dependencies: ember-cli-babel "^5.2.1" ember-cli-uglify@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/ember-cli-uglify/-/ember-cli-uglify-1.2.0.tgz#3208c32b54bc2783056e8bb0d5cfe9bbaf17ffb2" + resolved "https://registry.yarnpkg.com/ember-cli-uglify/-/ember-cli-uglify-1.2.0.tgz#3208c32b54bc2783056e8bb0d5cfe9bbaf17ffb2" dependencies: broccoli-uglify-sourcemap "^1.0.0" ember-cli-valid-component-name@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/ember-cli-valid-component-name/-/ember-cli-valid-component-name-1.0.0.tgz#71550ce387e0233065f30b30b1510aa2dfbe87ef" + resolved "https://registry.yarnpkg.com/ember-cli-valid-component-name/-/ember-cli-valid-component-name-1.0.0.tgz#71550ce387e0233065f30b30b1510aa2dfbe87ef" dependencies: silent-error "^1.0.0" ember-cli-version-checker@^1.0.2, ember-cli-version-checker@^1.1.4, ember-cli-version-checker@^1.1.6, ember-cli-version-checker@^1.1.7, ember-cli-version-checker@^1.2.0: version "1.3.1" - resolved "https://registry.npmjs.org/ember-cli-version-checker/-/ember-cli-version-checker-1.3.1.tgz#0bc2d134c830142da64bf9627a0eded10b61ae72" + resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-1.3.1.tgz#0bc2d134c830142da64bf9627a0eded10b61ae72" dependencies: semver "^5.3.0" ember-cli-version-checker@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ember-cli-version-checker/-/ember-cli-version-checker-2.0.0.tgz#e1f7d8e4cdcd752ac35f1611e4daa8836db4c4c7" + resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-2.0.0.tgz#e1f7d8e4cdcd752ac35f1611e4daa8836db4c4c7" dependencies: resolve "^1.3.3" semver "^5.3.0" ember-cli@^2.11.1: version "2.15.1" - resolved "https://registry.npmjs.org/ember-cli/-/ember-cli-2.15.1.tgz#773add3cc18e5068f1c5f43a77544efa2712e47b" + resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-2.15.1.tgz#773add3cc18e5068f1c5f43a77544efa2712e47b" dependencies: amd-name-resolver "0.0.7" babel-plugin-transform-es2015-modules-amd "^6.24.0" @@ -2528,47 +2536,47 @@ ember-dev@emberjs/ember-dev#bcfb9c3487ec2fd58b932394a15ce16fd9cf7eed: ember-disable-prototype-extensions@^1.1.0: version "1.1.3" - resolved "https://registry.npmjs.org/ember-disable-prototype-extensions/-/ember-disable-prototype-extensions-1.1.3.tgz#1969135217654b5e278f9fe2d9d4e49b5720329e" + resolved "https://registry.yarnpkg.com/ember-disable-prototype-extensions/-/ember-disable-prototype-extensions-1.1.3.tgz#1969135217654b5e278f9fe2d9d4e49b5720329e" ember-disable-proxy-controllers@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/ember-disable-proxy-controllers/-/ember-disable-proxy-controllers-1.0.1.tgz#1254eeec0ba025c24eb9e8da611afa7b38754281" + resolved "https://registry.yarnpkg.com/ember-disable-proxy-controllers/-/ember-disable-proxy-controllers-1.0.1.tgz#1254eeec0ba025c24eb9e8da611afa7b38754281" dependencies: ember-cli-babel "^5.0.0" ember-export-application-global@^1.0.5: version "1.1.1" - resolved "https://registry.npmjs.org/ember-export-application-global/-/ember-export-application-global-1.1.1.tgz#f257d5271268932a89d7392679ce4db89d7154af" + resolved "https://registry.yarnpkg.com/ember-export-application-global/-/ember-export-application-global-1.1.1.tgz#f257d5271268932a89d7392679ce4db89d7154af" dependencies: ember-cli-babel "^5.1.10" ember-inflector@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/ember-inflector/-/ember-inflector-2.0.1.tgz#e9ac469ffa17992a43276bb1c9b8d87992b10d37" + resolved "https://registry.yarnpkg.com/ember-inflector/-/ember-inflector-2.0.1.tgz#e9ac469ffa17992a43276bb1c9b8d87992b10d37" dependencies: ember-cli-babel "^6.0.0" ember-load-initializers@^0.6.0: version "0.6.3" - resolved "https://registry.npmjs.org/ember-load-initializers/-/ember-load-initializers-0.6.3.tgz#f47396ad271ba77294068c98f992a5f19705441a" + resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-0.6.3.tgz#f47396ad271ba77294068c98f992a5f19705441a" dependencies: ember-cli-babel "^5.1.6" ember-publisher@0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/ember-publisher/-/ember-publisher-0.0.7.tgz#865ca69ef47bafb38120a84244aa58b950ca4850" + resolved "https://registry.yarnpkg.com/ember-publisher/-/ember-publisher-0.0.7.tgz#865ca69ef47bafb38120a84244aa58b950ca4850" dependencies: aws-sdk "^2.0.9" ember-qunit@^0.4.18: version "0.4.24" - resolved "https://registry.npmjs.org/ember-qunit/-/ember-qunit-0.4.24.tgz#b54cf6688c442d07eacea47c3285879cdd7c2163" + resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-0.4.24.tgz#b54cf6688c442d07eacea47c3285879cdd7c2163" dependencies: ember-test-helpers "^0.5.32" ember-resolver@^4.1.0: version "4.5.0" - resolved "https://registry.npmjs.org/ember-resolver/-/ember-resolver-4.5.0.tgz#9248bf534dfc197fafe3118fff538d436078bf99" + resolved "https://registry.yarnpkg.com/ember-resolver/-/ember-resolver-4.5.0.tgz#9248bf534dfc197fafe3118fff538d436078bf99" dependencies: "@glimmer/resolver" "^0.4.1" babel-plugin-debug-macros "^0.1.10" @@ -2578,26 +2586,26 @@ ember-resolver@^4.1.0: ember-cli-version-checker "^2.0.0" resolve "^1.3.3" -ember-rfc176-data@^0.2.7: +ember-rfc176-data@^0.2.0, ember-rfc176-data@^0.2.7: version "0.2.7" - resolved "https://registry.npmjs.org/ember-rfc176-data/-/ember-rfc176-data-0.2.7.tgz#bd355bc9b473e08096b518784170a23388bc973b" + resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.2.7.tgz#bd355bc9b473e08096b518784170a23388bc973b" ember-router-generator@^1.0.0: version "1.2.3" - resolved "https://registry.npmjs.org/ember-router-generator/-/ember-router-generator-1.2.3.tgz#8ed2ca86ff323363120fc14278191e9e8f1315ee" + resolved "https://registry.yarnpkg.com/ember-router-generator/-/ember-router-generator-1.2.3.tgz#8ed2ca86ff323363120fc14278191e9e8f1315ee" dependencies: recast "^0.11.3" ember-runtime-enumerable-includes-polyfill@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ember-runtime-enumerable-includes-polyfill/-/ember-runtime-enumerable-includes-polyfill-2.0.0.tgz#6e9ba118bc909d1d7762de1b03a550d8955308a9" + resolved "https://registry.yarnpkg.com/ember-runtime-enumerable-includes-polyfill/-/ember-runtime-enumerable-includes-polyfill-2.0.0.tgz#6e9ba118bc909d1d7762de1b03a550d8955308a9" dependencies: ember-cli-babel "^6.0.0" ember-cli-version-checker "^1.1.6" ember-source@~2.11.0: version "2.11.3" - resolved "https://registry.npmjs.org/ember-source/-/ember-source-2.11.3.tgz#12c50cc2b4a7f8ae8c5daa3a72fb09415476c510" + resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-2.11.3.tgz#12c50cc2b4a7f8ae8c5daa3a72fb09415476c510" dependencies: broccoli-funnel "^1.0.6" broccoli-merge-trees "^1.1.4" @@ -2615,13 +2623,13 @@ ember-source@~2.11.0: ember-test-helpers@^0.5.32: version "0.5.34" - resolved "https://registry.npmjs.org/ember-test-helpers/-/ember-test-helpers-0.5.34.tgz#c8439108d1cba1d7d838c212208a5c4061471b83" + resolved "https://registry.yarnpkg.com/ember-test-helpers/-/ember-test-helpers-0.5.34.tgz#c8439108d1cba1d7d838c212208a5c4061471b83" dependencies: klassy "^0.1.3" ember-try-config@^2.0.1: version "2.1.0" - resolved "https://registry.npmjs.org/ember-try-config/-/ember-try-config-2.1.0.tgz#e0e156229a542346a58ee6f6ad605104c98edfe0" + resolved "https://registry.yarnpkg.com/ember-try-config/-/ember-try-config-2.1.0.tgz#e0e156229a542346a58ee6f6ad605104c98edfe0" dependencies: lodash "^4.6.1" node-fetch "^1.3.3" @@ -2630,7 +2638,7 @@ ember-try-config@^2.0.1: ember-try@^0.2.15: version "0.2.17" - resolved "https://registry.npmjs.org/ember-try/-/ember-try-0.2.17.tgz#0ffff687630291b4cf94f5b196e728c1a92d8aec" + resolved "https://registry.yarnpkg.com/ember-try/-/ember-try-0.2.17.tgz#0ffff687630291b4cf94f5b196e728c1a92d8aec" dependencies: chalk "^1.0.0" cli-table2 "^0.2.0" @@ -2648,7 +2656,7 @@ ember-try@^0.2.15: ember-watson@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/ember-watson/-/ember-watson-0.7.0.tgz#e7243ba128fb39a6205cddb61774043d093c5163" + resolved "https://registry.yarnpkg.com/ember-watson/-/ember-watson-0.7.0.tgz#e7243ba128fb39a6205cddb61774043d093c5163" dependencies: babel-core "^5.8.22" chalk "^1.0.0" @@ -2660,17 +2668,17 @@ ember-watson@^0.7.0: encodeurl@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" encoding@^0.1.11: version "0.1.12" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" dependencies: iconv-lite "~0.4.13" engine.io-client@1.8.0: version "1.8.0" - resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.0.tgz#7b730e4127414087596d9be3c88d2bc5fdb6cf5c" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.0.tgz#7b730e4127414087596d9be3c88d2bc5fdb6cf5c" dependencies: component-emitter "1.2.1" component-inherit "0.0.3" @@ -2687,7 +2695,7 @@ engine.io-client@1.8.0: engine.io-parser@1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.1.tgz#9554f1ae33107d6fbd170ca5466d2f833f6a07cf" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.1.tgz#9554f1ae33107d6fbd170ca5466d2f833f6a07cf" dependencies: after "0.8.1" arraybuffer.slice "0.0.6" @@ -2698,7 +2706,7 @@ engine.io-parser@1.3.1: engine.io@1.8.0: version "1.8.0" - resolved "https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz#3eeb5f264cb75dbbec1baaea26d61f5a4eace2aa" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.0.tgz#3eeb5f264cb75dbbec1baaea26d61f5a4eace2aa" dependencies: accepts "1.3.3" base64id "0.1.0" @@ -2709,35 +2717,35 @@ engine.io@1.8.0: ensure-posix-path@^1.0.0, ensure-posix-path@^1.0.1, ensure-posix-path@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz#a65b3e42d0b71cfc585eb774f9943c8d9b91b0c2" + resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz#a65b3e42d0b71cfc585eb774f9943c8d9b91b0c2" entities@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" error-ex@^1.2.0: version "1.3.1" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: is-arrayish "^0.2.1" error@^7.0.0: version "7.0.2" - resolved "https://registry.npmjs.org/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" dependencies: string-template "~0.2.1" xtend "~4.0.0" es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: version "0.10.30" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz#7141a16836697dbabfaaaeee41495ce29f52c939" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.30.tgz#7141a16836697dbabfaaaeee41495ce29f52c939" dependencies: es6-iterator "2" es6-symbol "~3.1" es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" dependencies: d "1" es5-ext "^0.10.14" @@ -2745,7 +2753,7 @@ es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: es6-map@^0.1.3, es6-map@^0.1.4: version "0.1.5" - resolved "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" dependencies: d "1" es5-ext "~0.10.14" @@ -2756,11 +2764,11 @@ es6-map@^0.1.3, es6-map@^0.1.4: es6-promise@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" es6-set@~0.1.5: version "0.1.5" - resolved "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" dependencies: d "1" es5-ext "~0.10.14" @@ -2770,14 +2778,14 @@ es6-set@~0.1.5: es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" dependencies: d "1" es5-ext "~0.10.14" es6-weak-map@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" dependencies: d "1" es5-ext "^0.10.14" @@ -2786,19 +2794,19 @@ es6-weak-map@^2.0.1: escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" escape-string-regexp@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" escope@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" dependencies: es6-map "^0.1.3" es6-weak-map "^2.0.1" @@ -2807,7 +2815,7 @@ escope@^3.6.0: eslint@^2.13.0: version "2.13.1" - resolved "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" dependencies: chalk "^1.1.3" concat-stream "^1.4.6" @@ -2844,87 +2852,87 @@ eslint@^2.13.0: user-home "^2.0.0" espree@^3.1.6: - version "3.5.0" - resolved "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d" + version "3.5.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e" dependencies: acorn "^5.1.1" acorn-jsx "^3.0.0" esprima-fb@~15001.1001.0-dev-harmony-fb: version "15001.1001.0-dev-harmony-fb" - resolved "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659" + resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659" esprima@^1.2.2: version "1.2.5" - resolved "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9" esprima@^2.6.0: version "2.7.3" - resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" esprima@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" esprima@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" esprima@~3.1.0: version "3.1.3" - resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" esprimaq@^0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/esprimaq/-/esprimaq-0.0.1.tgz#3ea3a41f55ba0ab98fc3564c875818bd890aa2a3" + resolved "https://registry.yarnpkg.com/esprimaq/-/esprimaq-0.0.1.tgz#3ea3a41f55ba0ab98fc3564c875818bd890aa2a3" esrecurse@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" dependencies: estraverse "^4.1.0" object-assign "^4.0.1" estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -etag@~1.8.0: +etag@~1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" event-emitter@~0.3.5: version "0.3.5" - resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" dependencies: d "1" es5-ext "~0.10.14" eventemitter3@1.x.x: version "1.2.0" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" events-to-array@^1.0.1: version "1.1.2" - resolved "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" + resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" events@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" exec-sh@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" dependencies: merge "^1.1.3" execa@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -2936,78 +2944,80 @@ execa@^0.7.0: exists-sync@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/exists-sync/-/exists-sync-0.0.3.tgz#b910000bedbb113b378b82f5f5a7638107622dcf" + resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.3.tgz#b910000bedbb113b378b82f5f5a7638107622dcf" exists-sync@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879" + resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879" exit-hook@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" exit@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" expand-brackets@^0.1.4: version "0.1.5" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" dependencies: is-posix-bracket "^0.1.0" expand-range@^1.8.1: version "1.8.2" - resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" dependencies: fill-range "^2.1.0" expand-tilde@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" dependencies: os-homedir "^1.0.1" express@^4.10.7, express@^4.12.3, express@^4.13.1, express@^4.14.0: - version "4.15.4" - resolved "https://registry.npmjs.org/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1" + version "4.16.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.1.tgz#6b33b560183c9b253b7b62144df33a4654ac9ed0" dependencies: - accepts "~1.3.3" + accepts "~1.3.4" array-flatten "1.1.1" + body-parser "1.18.2" content-disposition "0.5.2" - content-type "~1.0.2" + content-type "~1.0.4" cookie "0.3.1" cookie-signature "1.0.6" - debug "2.6.8" + debug "2.6.9" depd "~1.1.1" encodeurl "~1.0.1" escape-html "~1.0.3" - etag "~1.8.0" - finalhandler "~1.0.4" - fresh "0.5.0" + etag "~1.8.1" + finalhandler "1.1.0" + fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" - parseurl "~1.3.1" + parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~1.1.5" - qs "6.5.0" + proxy-addr "~2.0.2" + qs "6.5.1" range-parser "~1.2.0" - send "0.15.4" - serve-static "1.12.4" - setprototypeof "1.0.3" + safe-buffer "5.1.1" + send "0.16.1" + serve-static "1.13.1" + setprototypeof "1.1.0" statuses "~1.3.1" type-is "~1.6.15" - utils-merge "1.0.0" - vary "~1.1.1" + utils-merge "1.0.1" + vary "~1.1.2" extend@3, extend@^3.0.0, extend@~3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" external-editor@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" dependencies: extend "^3.0.0" spawn-sync "^1.0.15" @@ -3015,31 +3025,31 @@ external-editor@^1.1.0: extglob@^0.3.1: version "0.3.2" - resolved "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" dependencies: is-extglob "^1.0.0" fake-xml-http-request@^1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/fake-xml-http-request/-/fake-xml-http-request-1.6.0.tgz#bd0ac79ae3e2660098282048a12c730a6f64d550" + resolved "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-1.6.0.tgz#bd0ac79ae3e2660098282048a12c730a6f64d550" faker@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/faker/-/faker-3.1.0.tgz#0f908faf4e6ec02524e54a57e432c5c013e08c9f" + resolved "https://registry.yarnpkg.com/faker/-/faker-3.1.0.tgz#0f908faf4e6ec02524e54a57e432c5c013e08c9f" fast-levenshtein@~2.0.4: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" fast-ordered-set@^1.0.0, fast-ordered-set@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz#3fbb36634f7be79e4f7edbdb4a357dee25d184eb" + resolved "https://registry.yarnpkg.com/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz#3fbb36634f7be79e4f7edbdb4a357dee25d184eb" dependencies: blank-object "^1.0.1" fast-sourcemap-concat@^1.0.1: version "1.2.3" - resolved "https://registry.npmjs.org/fast-sourcemap-concat/-/fast-sourcemap-concat-1.2.3.tgz#22f14e92d739e37920334376ec8433bf675eaa04" + resolved "https://registry.yarnpkg.com/fast-sourcemap-concat/-/fast-sourcemap-concat-1.2.3.tgz#22f14e92d739e37920334376ec8433bf675eaa04" dependencies: chalk "^0.5.1" fs-extra "^0.30.0" @@ -3053,41 +3063,41 @@ fast-sourcemap-concat@^1.0.1: faye-websocket@~0.10.0: version "0.10.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" dependencies: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" dependencies: bser "^2.0.0" figures@^1.3.5: version "1.7.0" - resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" file-entry-cache@^1.1.1: version "1.3.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" filename-regex@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" filesize@^3.1.3: version "3.5.10" - resolved "https://registry.npmjs.org/filesize/-/filesize-3.5.10.tgz#fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.10.tgz#fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f" fill-range@^2.1.0: version "2.2.3" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" dependencies: is-number "^2.1.0" isobject "^2.0.0" @@ -3095,38 +3105,50 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -finalhandler@1.0.4, finalhandler@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" +finalhandler@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" dependencies: - debug "2.6.8" + debug "2.6.9" encodeurl "~1.0.1" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.1" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" statuses "~1.3.1" unpipe "~1.0.0" find-index@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/find-index/-/find-index-1.1.0.tgz#53007c79cd30040d6816d79458e8837d5c5705ef" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-1.1.0.tgz#53007c79cd30040d6816d79458e8837d5c5705ef" find-up@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" find-up@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: locate-path "^2.0.0" findup-sync@^0.4.2: version "0.4.3" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" dependencies: detect-file "^0.1.0" is-glob "^2.0.1" @@ -3135,7 +3157,7 @@ findup-sync@^0.4.2: findup-sync@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-1.0.0.tgz#6f7e4b57b6ee3a4037b4414eaedea3f58f71e0ec" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-1.0.0.tgz#6f7e4b57b6ee3a4037b4414eaedea3f58f71e0ec" dependencies: detect-file "^0.1.0" is-glob "^2.0.1" @@ -3144,14 +3166,14 @@ findup-sync@^1.0.0: findup@^0.1.5: version "0.1.5" - resolved "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb" + resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb" dependencies: colors "~0.6.0-1" commander "~2.1.0" fireworm@^0.7.0: version "0.7.1" - resolved "https://registry.npmjs.org/fireworm/-/fireworm-0.7.1.tgz#ccf20f7941f108883fcddb99383dbe6e1861c758" + resolved "https://registry.yarnpkg.com/fireworm/-/fireworm-0.7.1.tgz#ccf20f7941f108883fcddb99383dbe6e1861c758" dependencies: async "~0.2.9" is-type "0.0.1" @@ -3160,14 +3182,15 @@ fireworm@^0.7.0: minimatch "^3.0.2" fixturify@^0.3.2: - version "0.3.3" - resolved "https://registry.npmjs.org/fixturify/-/fixturify-0.3.3.tgz#842eaa120564c9881e099ed06dc082a81e97fa71" + version "0.3.4" + resolved "https://registry.yarnpkg.com/fixturify/-/fixturify-0.3.4.tgz#c676de404a7f8ee8e64d0b76118e62ec95ab7b25" dependencies: fs-extra "^0.30.0" + matcher-collection "^1.0.4" flat-cache@^1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" dependencies: circular-json "^0.3.1" del "^2.0.2" @@ -3176,48 +3199,48 @@ flat-cache@^1.2.1: follow-redirects@0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz#34b90bab2a911aa347571da90f22bd36ecd8a919" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-0.0.7.tgz#34b90bab2a911aa347571da90f22bd36ecd8a919" dependencies: debug "^2.2.0" stream-consume "^0.1.0" for-in@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" for-own@^0.1.4: version "0.1.5" - resolved "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: for-in "^1.0.1" forever-agent@~0.5.0: version "0.5.2" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" form-data@~0.1.0: version "0.1.4" - resolved "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" dependencies: async "~0.9.0" combined-stream "~0.0.4" mime "~1.2.11" -forwarded@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.1.tgz#8a4e30c640b05395399a3549c730257728048961" +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" -fresh@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" fs-exists-sync@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" fs-extra@^0.24.0: version "0.24.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.24.0.tgz#d4e4342a96675cb7846633a6099249332b539952" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.24.0.tgz#d4e4342a96675cb7846633a6099249332b539952" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -3226,7 +3249,7 @@ fs-extra@^0.24.0: fs-extra@^0.26.0, fs-extra@^0.26.7: version "0.26.7" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -3236,7 +3259,7 @@ fs-extra@^0.26.0, fs-extra@^0.26.7: fs-extra@^0.30.0: version "0.30.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -3246,7 +3269,7 @@ fs-extra@^0.30.0: fs-extra@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -3254,14 +3277,14 @@ fs-extra@^1.0.0: fs-extra@^2.0.0: version "2.1.2" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" fs-extra@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" dependencies: graceful-fs "^4.1.2" jsonfile "^3.0.0" @@ -3269,11 +3292,11 @@ fs-extra@^3.0.0: fs-readdir-recursive@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/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-sync@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/fs-sync/-/fs-sync-1.0.4.tgz#2f94eade31862ec0a9f33a1c2546dfb1a3f3d1ae" + resolved "https://registry.yarnpkg.com/fs-sync/-/fs-sync-1.0.4.tgz#2f94eade31862ec0a9f33a1c2546dfb1a3f3d1ae" dependencies: glob "^7.1.0" iconv-lite "^0.4.13" @@ -3283,7 +3306,7 @@ fs-sync@^1.0.4: 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.6" - resolved "https://registry.npmjs.org/fs-tree-diff/-/fs-tree-diff-0.5.6.tgz#342665749e8dca406800b672268c8f5073f3e623" + resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-0.5.6.tgz#342665749e8dca406800b672268c8f5073f3e623" dependencies: heimdalljs-logger "^0.1.7" object-assign "^4.1.0" @@ -3292,11 +3315,11 @@ fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.4, fs-tree-diff@^0.5 fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" gauge@~2.7.3: version "2.7.4" - resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -3309,49 +3332,45 @@ gauge@~2.7.3: generate-function@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" generate-object-property@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" dependencies: is-property "^1.0.0" get-caller-file@^1.0.0, get-caller-file@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" get-stdin@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" get-stream@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" -git-repo-info@^1.1.2, git-repo-info@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/git-repo-info/-/git-repo-info-1.4.1.tgz#2a072823254aaf62fcf0766007d7b6651bd41943" - -git-repo-info@~1.2.0: +git-repo-info@^1.1.2, git-repo-info@^1.4.1, git-repo-info@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/git-repo-info/-/git-repo-info-1.2.0.tgz#43d8513e04a24dd441330a2f7c6655a709fdbaf2" + resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-1.2.0.tgz#43d8513e04a24dd441330a2f7c6655a709fdbaf2" git-repo-version@0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/git-repo-version/-/git-repo-version-0.4.1.tgz#75fab9a0a4ec8470755b0eea7fdaa6f9d41453bf" + resolved "https://registry.yarnpkg.com/git-repo-version/-/git-repo-version-0.4.1.tgz#75fab9a0a4ec8470755b0eea7fdaa6f9d41453bf" dependencies: git-repo-info "~1.2.0" git-tools@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/git-tools/-/git-tools-0.1.4.tgz#5e43e59443b8a5dedb39dba663da49e79f943978" + resolved "https://registry.yarnpkg.com/git-tools/-/git-tools-0.1.4.tgz#5e43e59443b8a5dedb39dba663da49e79f943978" dependencies: spawnback "~1.0.0" github@^1.1.1: version "1.4.0" - resolved "https://registry.npmjs.org/github/-/github-1.4.0.tgz#60aed8f16ffe381a3ca6dc6dba5bdd64445b7856" + resolved "https://registry.yarnpkg.com/github/-/github-1.4.0.tgz#60aed8f16ffe381a3ca6dc6dba5bdd64445b7856" dependencies: follow-redirects "0.0.7" https-proxy-agent "^1.0.0" @@ -3359,28 +3378,28 @@ github@^1.1.1: glob-base@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" glob-parent@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" dependencies: is-glob "^2.0.0" glob@3.2.3: version "3.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz#e313eeb249c7affaa5c475286b0e115b59839467" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.3.tgz#e313eeb249c7affaa5c475286b0e115b59839467" dependencies: graceful-fs "~2.0.0" inherits "2" minimatch "~0.2.11" -glob@5.0.13, glob@^5.0.10: +glob@5.0.13: version "5.0.13" - resolved "https://registry.npmjs.org/glob/-/glob-5.0.13.tgz#0b6ffc3ac64eb90669f723a00a0ebb7281b33f8f" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.13.tgz#0b6ffc3ac64eb90669f723a00a0ebb7281b33f8f" dependencies: inflight "^1.0.4" inherits "2" @@ -3390,7 +3409,7 @@ glob@5.0.13, glob@^5.0.10: glob@7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3401,16 +3420,16 @@ glob@7.1.1: glob@^4.3.2: version "4.5.3" - resolved "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" dependencies: inflight "^1.0.4" inherits "2" minimatch "^2.0.1" once "^1.3.0" -glob@^5.0.15: +glob@^5.0.10, glob@^5.0.15: version "5.0.15" - resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" dependencies: inflight "^1.0.4" inherits "2" @@ -3420,7 +3439,7 @@ glob@^5.0.15: glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1: version "7.1.2" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3431,14 +3450,14 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1: global-modules@^0.2.3: version "0.2.3" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" dependencies: global-prefix "^0.1.4" is-windows "^0.2.0" global-prefix@^0.1.4: version "0.1.5" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" dependencies: homedir-polyfill "^1.0.0" ini "^1.3.4" @@ -3447,15 +3466,15 @@ global-prefix@^0.1.4: globals@^6.4.0: version "6.4.1" - resolved "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz#8498032b3b6d1cc81eebc5f79690d8fe29fabf4f" + resolved "https://registry.yarnpkg.com/globals/-/globals-6.4.1.tgz#8498032b3b6d1cc81eebc5f79690d8fe29fabf4f" globals@^9.18.0, globals@^9.2.0: version "9.18.0" - resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" globby@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" dependencies: array-union "^1.0.1" arrify "^1.0.0" @@ -3466,27 +3485,27 @@ globby@^5.0.0: graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" graceful-fs@~2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0" "graceful-readlink@>= 1.0.0": version "1.0.1" - resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" growl@1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz#4b2dec8d907e93db336624dcec0183502f8c9428" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.8.1.tgz#4b2dec8d907e93db336624dcec0183502f8c9428" growly@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" handlebars@^4.0.4: version "4.0.10" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" dependencies: async "^1.4.0" optimist "^0.6.1" @@ -3496,43 +3515,43 @@ handlebars@^4.0.4: has-ansi@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" dependencies: ansi-regex "^0.2.0" has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" dependencies: ansi-regex "^2.0.0" has-binary@0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" dependencies: isarray "0.0.1" has-binary@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" dependencies: isarray "0.0.1" has-cors@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" has-flag@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" has-unicode@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" hash-for-dep@^1.0.2: version "1.2.0" - resolved "https://registry.npmjs.org/hash-for-dep/-/hash-for-dep-1.2.0.tgz#3bdb883aef0d34e82097ef2f7109b1b401cada6b" + resolved "https://registry.yarnpkg.com/hash-for-dep/-/hash-for-dep-1.2.0.tgz#3bdb883aef0d34e82097ef2f7109b1b401cada6b" dependencies: broccoli-kitchen-sink-helpers "^0.3.1" heimdalljs "^0.2.3" @@ -3541,7 +3560,7 @@ hash-for-dep@^1.0.2: hawk@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" dependencies: boom "0.4.x" cryptiles "0.2.x" @@ -3550,7 +3569,7 @@ hawk@1.1.1: heimdall-query@^0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/heimdall-query/-/heimdall-query-0.0.5.tgz#bafac4864793a5fa48f7dee916b64621364690b3" + resolved "https://registry.yarnpkg.com/heimdall-query/-/heimdall-query-0.0.5.tgz#bafac4864793a5fa48f7dee916b64621364690b3" dependencies: chalk "^1.1.1" chrome-debugging-client "^0.2.4" @@ -3562,65 +3581,65 @@ heimdall-query@^0.0.5: heimdalljs-fs-monitor@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/heimdalljs-fs-monitor/-/heimdalljs-fs-monitor-0.1.0.tgz#d404a65688c6714c485469ed3495da4853440272" + resolved "https://registry.yarnpkg.com/heimdalljs-fs-monitor/-/heimdalljs-fs-monitor-0.1.0.tgz#d404a65688c6714c485469ed3495da4853440272" dependencies: heimdalljs "^0.2.0" heimdalljs-logger "^0.1.7" heimdalljs-graph@^0.3.1: version "0.3.3" - resolved "https://registry.npmjs.org/heimdalljs-graph/-/heimdalljs-graph-0.3.3.tgz#ea801dbba659c8d522fe1cb83b2d605726e4918f" + resolved "https://registry.yarnpkg.com/heimdalljs-graph/-/heimdalljs-graph-0.3.3.tgz#ea801dbba659c8d522fe1cb83b2d605726e4918f" heimdalljs-logger@^0.1.7: version "0.1.9" - resolved "https://registry.npmjs.org/heimdalljs-logger/-/heimdalljs-logger-0.1.9.tgz#d76ada4e45b7bb6f786fc9c010a68eb2e2faf176" + resolved "https://registry.yarnpkg.com/heimdalljs-logger/-/heimdalljs-logger-0.1.9.tgz#d76ada4e45b7bb6f786fc9c010a68eb2e2faf176" dependencies: debug "^2.2.0" heimdalljs "^0.2.0" heimdalljs@^0.2.0, heimdalljs@^0.2.1, heimdalljs@^0.2.3: version "0.2.5" - resolved "https://registry.npmjs.org/heimdalljs/-/heimdalljs-0.2.5.tgz#6aa54308eee793b642cff9cf94781445f37730ac" + resolved "https://registry.yarnpkg.com/heimdalljs/-/heimdalljs-0.2.5.tgz#6aa54308eee793b642cff9cf94781445f37730ac" dependencies: rsvp "~3.2.1" heimdalljs@^0.3.0: version "0.3.3" - resolved "https://registry.npmjs.org/heimdalljs/-/heimdalljs-0.3.3.tgz#e92d2c6f77fd46d5bf50b610d28ad31755054d0b" + resolved "https://registry.yarnpkg.com/heimdalljs/-/heimdalljs-0.3.3.tgz#e92d2c6f77fd46d5bf50b610d28ad31755054d0b" dependencies: rsvp "~3.2.1" hoek@0.9.x: version "0.9.1" - resolved "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" home-or-tmp@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz#4b9f1e40800c3e50c6c27f781676afcce71f3985" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-1.0.0.tgz#4b9f1e40800c3e50c6c27f781676afcce71f3985" dependencies: os-tmpdir "^1.0.1" user-home "^1.1.1" home-or-tmp@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" homedir-polyfill@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4, hosted-git-info@^2.1.5: version "2.5.0" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" http-errors@1.6.2, http-errors@~1.6.2: version "1.6.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" dependencies: depd "1.1.1" inherits "2.0.3" @@ -3628,19 +3647,19 @@ http-errors@1.6.2, http-errors@~1.6.2: statuses ">= 1.3.1 < 2" http-parser-js@>=0.4.0: - version "0.4.6" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.6.tgz#195273f58704c452d671076be201329dd341dc55" + version "0.4.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.8.tgz#763f75c4b771a0bb44653b07070bff6ca7bc5561" http-proxy@^1.13.1, http-proxy@^1.9.0: version "1.16.2" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" dependencies: eventemitter3 "1.x.x" requires-port "1.x.x" http-signature@~0.10.0: version "0.10.1" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" dependencies: asn1 "0.1.11" assert-plus "^0.1.5" @@ -3648,7 +3667,7 @@ http-signature@~0.10.0: https-proxy-agent@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" dependencies: agent-base "2" debug "2" @@ -3656,54 +3675,54 @@ https-proxy-agent@^1.0.0: iconv-lite@0.4.19, iconv-lite@^0.4.13, iconv-lite@^0.4.5, iconv-lite@~0.4.13: version "0.4.19" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" ieee754@^1.1.4: version "1.1.8" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" ignore@^3.1.2: version "3.3.5" - resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6" immediate@~3.0.5: version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" indexof@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" inflected@^1.1.6: version "1.1.7" - resolved "https://registry.npmjs.org/inflected/-/inflected-1.1.7.tgz#c393df6e28472d0d77b3082ec3aa2091f4bc96f9" + resolved "https://registry.yarnpkg.com/inflected/-/inflected-1.1.7.tgz#c393df6e28472d0d77b3082ec3aa2091f4bc96f9" inflection@^1.7.0, inflection@^1.7.1, inflection@^1.8.0: version "1.12.0" - resolved "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: once "^1.3.0" wrappy "1" inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" ini@^1.3.4: version "1.3.4" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" inline-source-map-comment@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/inline-source-map-comment/-/inline-source-map-comment-1.0.5.tgz#50a8a44c2a790dfac441b5c94eccd5462635faf6" + resolved "https://registry.yarnpkg.com/inline-source-map-comment/-/inline-source-map-comment-1.0.5.tgz#50a8a44c2a790dfac441b5c94eccd5462635faf6" dependencies: chalk "^1.0.0" get-stdin "^4.0.1" @@ -3713,7 +3732,7 @@ inline-source-map-comment@^1.0.5: inquirer@^0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" dependencies: ansi-escapes "^1.1.0" ansi-regex "^2.0.0" @@ -3731,7 +3750,7 @@ inquirer@^0.12.0: inquirer@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" dependencies: ansi-escapes "^1.1.0" chalk "^1.0.0" @@ -3750,89 +3769,89 @@ inquirer@^1.2.3: invariant@^2.2.2: version "2.2.2" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: loose-envify "^1.0.0" invert-kv@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ipaddr.js@1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" +ipaddr.js@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" is-buffer@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" is-builtin-module@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" dependencies: builtin-modules "^1.0.0" is-dotfile@^1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" is-equal-shallow@^0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" dependencies: is-primitive "^2.0.0" is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" is-extglob@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" is-finite@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" is-git-url@^0.2.0: version "0.2.3" - resolved "https://registry.npmjs.org/is-git-url/-/is-git-url-0.2.3.tgz#445200d6fbd6da028fb5e01440d9afc93f3ccb64" + resolved "https://registry.yarnpkg.com/is-git-url/-/is-git-url-0.2.3.tgz#445200d6fbd6da028fb5e01440d9afc93f3ccb64" is-git-url@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-git-url/-/is-git-url-1.0.0.tgz#53f684cd143285b52c3244b4e6f28253527af66b" + resolved "https://registry.yarnpkg.com/is-git-url/-/is-git-url-1.0.0.tgz#53f684cd143285b52c3244b4e6f28253527af66b" is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" dependencies: is-extglob "^1.0.0" is-integer@^1.0.4: version "1.0.7" - resolved "https://registry.npmjs.org/is-integer/-/is-integer-1.0.7.tgz#6bde81aacddf78b659b6629d629cadc51a886d5c" + resolved "https://registry.yarnpkg.com/is-integer/-/is-integer-1.0.7.tgz#6bde81aacddf78b659b6629d629cadc51a886d5c" dependencies: is-finite "^1.0.0" is-my-json-valid@^2.10.0: version "2.16.1" - resolved "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11" dependencies: generate-function "^2.0.0" generate-object-property "^1.1.0" @@ -3841,101 +3860,101 @@ is-my-json-valid@^2.10.0: is-number@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" dependencies: kind-of "^3.0.2" is-number@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" dependencies: kind-of "^3.0.2" is-obj@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" is-path-cwd@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" dependencies: path-is-inside "^1.0.1" is-posix-bracket@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" is-primitive@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" is-promise@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" is-property@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" is-resolvable@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" dependencies: tryit "^1.0.1" is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" is-type@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/is-type/-/is-type-0.0.1.tgz#f651d85c365d44955d14a51d8d7061f3f6b4779c" + resolved "https://registry.yarnpkg.com/is-type/-/is-type-0.0.1.tgz#f651d85c365d44955d14a51d8d7061f3f6b4779c" dependencies: core-util-is "~1.0.0" is-utf8@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" is-windows@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" isarray@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" isbinaryfile@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" isobject@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" dependencies: isarray "1.0.0" istextorbinary@2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.1.0.tgz#dbed2a6f51be2f7475b68f89465811141b758874" + resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.1.0.tgz#dbed2a6f51be2f7475b68f89465811141b758874" dependencies: binaryextensions "1 || 2" editions "^1.1.1" @@ -3943,53 +3962,53 @@ istextorbinary@2.1.0: jade@0.26.3: version "0.26.3" - resolved "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c" + resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c" dependencies: commander "0.6.1" mkdirp "0.3.0" jmespath@0.15.0: version "0.15.0" - resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" jquery@^3.1.1: version "3.2.1" - resolved "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" js-string-escape@^1.0.0, js-string-escape@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" + resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" js-tokens@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz#cc435a5c8b94ad15acb7983140fc80182c89aeae" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-1.0.1.tgz#cc435a5c8b94ad15acb7983140fc80182c89aeae" js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" js-yaml@^3.2.5, js-yaml@^3.2.7, js-yaml@^3.5.1, js-yaml@^3.6.1: version "3.10.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: argparse "^1.0.7" esprima "^4.0.0" jsesc@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" jsesc@~0.3.x: version "0.3.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.3.0.tgz#1bf5ee63b4539fe2e26d0c1e99c240b97a457972" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.3.0.tgz#1bf5ee63b4539fe2e26d0c1e99c240b97a457972" jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" json-api-mock-server@0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/json-api-mock-server/-/json-api-mock-server-0.1.1.tgz#00acb22ac58127e87fa9a172159cd8ed558e8106" + resolved "https://registry.yarnpkg.com/json-api-mock-server/-/json-api-mock-server-0.1.1.tgz#00acb22ac58127e87fa9a172159cd8ed558e8106" dependencies: body-parser "^1.15.2" chalk "^1.1.1" @@ -4000,56 +4019,56 @@ json-api-mock-server@0.1.1: json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" dependencies: jsonify "~0.0.0" json-stringify-safe@~5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" json3@3.3.2: version "3.3.2" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" json5@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d" json5@^0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" jsonapi-validator@^2.1.1: version "2.2.0" - resolved "https://registry.npmjs.org/jsonapi-validator/-/jsonapi-validator-2.2.0.tgz#07f9bdb6d118c1e728fa77280605fa9b527f8c66" + resolved "https://registry.yarnpkg.com/jsonapi-validator/-/jsonapi-validator-2.2.0.tgz#07f9bdb6d118c1e728fa77280605fa9b527f8c66" dependencies: ajv "^4.1.3" yargs "^5.0.0" jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" optionalDependencies: graceful-fs "^4.1.6" jsonfile@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" optionalDependencies: graceful-fs "^4.1.6" jsonify@~0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" jsonpointer@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" jszip@^3.1.3: version "3.1.4" - resolved "https://registry.npmjs.org/jszip/-/jszip-3.1.4.tgz#fc323fe41bb1730348d20dd022aa4d8b57cbbcf9" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.4.tgz#fc323fe41bb1730348d20dd022aa4d8b57cbbcf9" dependencies: core-js "~2.3.0" es6-promise "~3.0.2" @@ -4059,39 +4078,39 @@ jszip@^3.1.3: kind-of@^3.0.2: version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" dependencies: is-buffer "^1.1.5" klassy@^0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/klassy/-/klassy-0.1.3.tgz#c31d5756d583197d75f582b6e692872be497067f" + resolved "https://registry.yarnpkg.com/klassy/-/klassy-0.1.3.tgz#c31d5756d583197d75f582b6e692872be497067f" klaw@^1.0.0: version "1.3.1" - resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" optionalDependencies: graceful-fs "^4.1.9" lazy-cache@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" lcid@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" dependencies: invert-kv "^1.0.0" leek@0.0.24: version "0.0.24" - resolved "https://registry.npmjs.org/leek/-/leek-0.0.24.tgz#e400e57f0e60d8ef2bd4d068dc428a54345dbcda" + resolved "https://registry.yarnpkg.com/leek/-/leek-0.0.24.tgz#e400e57f0e60d8ef2bd4d068dc428a54345dbcda" dependencies: debug "^2.1.0" lodash.assign "^3.2.0" @@ -4099,40 +4118,40 @@ leek@0.0.24: leven@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz#9144b6eebca5f1d0680169f1a6770dcea60b75c3" + resolved "https://registry.yarnpkg.com/leven/-/leven-1.0.2.tgz#9144b6eebca5f1d0680169f1a6770dcea60b75c3" levn@^0.3.0, levn@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" lie@~3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" dependencies: immediate "~3.0.5" linkify-it@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f" dependencies: uc.micro "^1.0.1" linkify-it@~1.2.0: version "1.2.4" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-1.2.4.tgz#0773526c317c8fd13bd534ee1d180ff88abf881a" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-1.2.4.tgz#0773526c317c8fd13bd534ee1d180ff88abf881a" dependencies: uc.micro "^1.0.1" livereload-js@^2.2.2: version "2.2.2" - resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz#6c87257e648ab475bc24ea257457edcc1f8d0bc2" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.2.2.tgz#6c87257e648ab475bc24ea257457edcc1f8d0bc2" load-json-file@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -4142,29 +4161,29 @@ load-json-file@^1.0.0: loader.js@^4.5.0: version "4.6.0" - resolved "https://registry.npmjs.org/loader.js/-/loader.js-4.6.0.tgz#b965663ddbe2d80da482454cb865efe496e93e22" + resolved "https://registry.yarnpkg.com/loader.js/-/loader.js-4.6.0.tgz#b965663ddbe2d80da482454cb865efe496e93e22" locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" dependencies: p-locate "^2.0.0" path-exists "^3.0.0" lodash-node@^3.2.0: version "3.10.2" - resolved "https://registry.npmjs.org/lodash-node/-/lodash-node-3.10.2.tgz#2598d5b1b54e6a68b4cb544e5c730953cbf632f7" + resolved "https://registry.yarnpkg.com/lodash-node/-/lodash-node-3.10.2.tgz#2598d5b1b54e6a68b4cb544e5c730953cbf632f7" lodash._baseassign@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" dependencies: lodash._basecopy "^3.0.0" lodash.keys "^3.0.0" lodash._basebind@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._basebind/-/lodash._basebind-2.3.0.tgz#2b5bc452a0e106143b21869f233bdb587417d248" + resolved "https://registry.yarnpkg.com/lodash._basebind/-/lodash._basebind-2.3.0.tgz#2b5bc452a0e106143b21869f233bdb587417d248" dependencies: lodash._basecreate "~2.3.0" lodash._setbinddata "~2.3.0" @@ -4172,11 +4191,11 @@ lodash._basebind@~2.3.0: lodash._basecopy@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" lodash._basecreate@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-2.3.0.tgz#9b88a86a4dcff7b7f3c61d83a2fcfc0671ec9de0" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-2.3.0.tgz#9b88a86a4dcff7b7f3c61d83a2fcfc0671ec9de0" dependencies: lodash._renative "~2.3.0" lodash.isobject "~2.3.0" @@ -4184,7 +4203,7 @@ lodash._basecreate@~2.3.0: lodash._basecreatecallback@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._basecreatecallback/-/lodash._basecreatecallback-2.3.0.tgz#37b2ab17591a339e988db3259fcd46019d7ac362" + resolved "https://registry.yarnpkg.com/lodash._basecreatecallback/-/lodash._basecreatecallback-2.3.0.tgz#37b2ab17591a339e988db3259fcd46019d7ac362" dependencies: lodash._setbinddata "~2.3.0" lodash.bind "~2.3.0" @@ -4193,7 +4212,7 @@ lodash._basecreatecallback@~2.3.0: lodash._basecreatewrapper@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._basecreatewrapper/-/lodash._basecreatewrapper-2.3.0.tgz#aa0c61ad96044c3933376131483a9759c3651247" + resolved "https://registry.yarnpkg.com/lodash._basecreatewrapper/-/lodash._basecreatewrapper-2.3.0.tgz#aa0c61ad96044c3933376131483a9759c3651247" dependencies: lodash._basecreate "~2.3.0" lodash._setbinddata "~2.3.0" @@ -4202,18 +4221,18 @@ lodash._basecreatewrapper@~2.3.0: lodash._baseflatten@^3.0.0: version "3.1.4" - resolved "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz#0770ff80131af6e34f3b511796a7ba5214e65ff7" + resolved "https://registry.yarnpkg.com/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz#0770ff80131af6e34f3b511796a7ba5214e65ff7" dependencies: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" lodash._bindcallback@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" lodash._createassigner@^3.0.0: version "3.1.1" - resolved "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" dependencies: lodash._bindcallback "^3.0.0" lodash._isiterateecall "^3.0.0" @@ -4221,7 +4240,7 @@ lodash._createassigner@^3.0.0: lodash._createwrapper@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._createwrapper/-/lodash._createwrapper-2.3.0.tgz#d1aae1102dadf440e8e06fc133a6edd7fe146075" + resolved "https://registry.yarnpkg.com/lodash._createwrapper/-/lodash._createwrapper-2.3.0.tgz#d1aae1102dadf440e8e06fc133a6edd7fe146075" dependencies: lodash._basebind "~2.3.0" lodash._basecreatewrapper "~2.3.0" @@ -4229,69 +4248,69 @@ lodash._createwrapper@~2.3.0: lodash._escapehtmlchar@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.3.0.tgz#d03da6bd82eedf38dc0a5b503d740ecd0e894592" + resolved "https://registry.yarnpkg.com/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.3.0.tgz#d03da6bd82eedf38dc0a5b503d740ecd0e894592" dependencies: lodash._htmlescapes "~2.3.0" lodash._escapestringchar@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.3.0.tgz#cce73ae60fc6da55d2bf8a0679c23ca2bab149fc" + resolved "https://registry.yarnpkg.com/lodash._escapestringchar/-/lodash._escapestringchar-2.3.0.tgz#cce73ae60fc6da55d2bf8a0679c23ca2bab149fc" lodash._getnative@^3.0.0: version "3.9.1" - resolved "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" lodash._htmlescapes@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.3.0.tgz#1ca98863cadf1fa1d82c84f35f31e40556a04f3a" + resolved "https://registry.yarnpkg.com/lodash._htmlescapes/-/lodash._htmlescapes-2.3.0.tgz#1ca98863cadf1fa1d82c84f35f31e40556a04f3a" lodash._isiterateecall@^3.0.0: version "3.0.9" - resolved "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" lodash._objecttypes@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.3.0.tgz#6a3ea3987dd6eeb8021b2d5c9c303549cc2bae1e" + resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.3.0.tgz#6a3ea3987dd6eeb8021b2d5c9c303549cc2bae1e" lodash._reinterpolate@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.3.0.tgz#03ee9d85c0e55cbd590d71608a295bdda51128ec" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-2.3.0.tgz#03ee9d85c0e55cbd590d71608a295bdda51128ec" lodash._reinterpolate@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" lodash._renative@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._renative/-/lodash._renative-2.3.0.tgz#77d8edd4ced26dd5971f9e15a5f772e4e317fbd3" + resolved "https://registry.yarnpkg.com/lodash._renative/-/lodash._renative-2.3.0.tgz#77d8edd4ced26dd5971f9e15a5f772e4e317fbd3" lodash._reunescapedhtml@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.3.0.tgz#db920b55ac7f3ff825939aceb9ba2c231713d24d" + resolved "https://registry.yarnpkg.com/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.3.0.tgz#db920b55ac7f3ff825939aceb9ba2c231713d24d" dependencies: lodash._htmlescapes "~2.3.0" lodash.keys "~2.3.0" lodash._setbinddata@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._setbinddata/-/lodash._setbinddata-2.3.0.tgz#e5610490acd13277d59858d95b5f2727f1508f04" + resolved "https://registry.yarnpkg.com/lodash._setbinddata/-/lodash._setbinddata-2.3.0.tgz#e5610490acd13277d59858d95b5f2727f1508f04" dependencies: lodash._renative "~2.3.0" lodash.noop "~2.3.0" lodash._shimkeys@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.3.0.tgz#611f93149e3e6c721096b48769ef29537ada8ba9" + resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.3.0.tgz#611f93149e3e6c721096b48769ef29537ada8ba9" dependencies: lodash._objecttypes "~2.3.0" lodash._slice@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash._slice/-/lodash._slice-2.3.0.tgz#147198132859972e4680ca29a5992c855669aa5c" + resolved "https://registry.yarnpkg.com/lodash._slice/-/lodash._slice-2.3.0.tgz#147198132859972e4680ca29a5992c855669aa5c" lodash.assign@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" dependencies: lodash._baseassign "^3.0.0" lodash._createassigner "^3.0.0" @@ -4299,15 +4318,15 @@ lodash.assign@^3.2.0: lodash.assign@^4.1.0, lodash.assign@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" lodash.assignin@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" lodash.bind@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.bind/-/lodash.bind-2.3.0.tgz#c2a8e18b68e5ecc152e2b168266116fea5b016cc" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-2.3.0.tgz#c2a8e18b68e5ecc152e2b168266116fea5b016cc" dependencies: lodash._createwrapper "~2.3.0" lodash._renative "~2.3.0" @@ -4315,24 +4334,24 @@ lodash.bind@~2.3.0: lodash.clonedeep@^4.4.1: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" lodash.debounce@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz#812211c378a94cc29d5aa4e3346cf0bfce3a7df5" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-3.1.1.tgz#812211c378a94cc29d5aa4e3346cf0bfce3a7df5" dependencies: lodash._getnative "^3.0.0" lodash.defaults@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.3.0.tgz#a832b001f138f3bb9721c2819a2a7cc5ae21ed25" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.3.0.tgz#a832b001f138f3bb9721c2819a2a7cc5ae21ed25" dependencies: lodash._objecttypes "~2.3.0" lodash.keys "~2.3.0" lodash.escape@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.escape/-/lodash.escape-2.3.0.tgz#844c38c58f844e1362ebe96726159b62cf5f2a58" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-2.3.0.tgz#844c38c58f844e1362ebe96726159b62cf5f2a58" dependencies: lodash._escapehtmlchar "~2.3.0" lodash._reunescapedhtml "~2.3.0" @@ -4340,25 +4359,25 @@ lodash.escape@~2.3.0: lodash.find@^4.5.1: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" lodash.flatten@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-3.0.2.tgz#de1cf57758f8f4479319d35c3e9cc60c4501938c" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-3.0.2.tgz#de1cf57758f8f4479319d35c3e9cc60c4501938c" dependencies: lodash._baseflatten "^3.0.0" lodash._isiterateecall "^3.0.0" lodash.foreach@~2.3.x: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-2.3.0.tgz#083404c91e846ee77245fdf9d76519c68b2af168" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-2.3.0.tgz#083404c91e846ee77245fdf9d76519c68b2af168" dependencies: lodash._basecreatecallback "~2.3.0" lodash.forown "~2.3.0" lodash.forown@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.forown/-/lodash.forown-2.3.0.tgz#24fb4aaf800d45fc2dc60bfec3ce04c836a3ad7f" + resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-2.3.0.tgz#24fb4aaf800d45fc2dc60bfec3ce04c836a3ad7f" dependencies: lodash._basecreatecallback "~2.3.0" lodash._objecttypes "~2.3.0" @@ -4366,29 +4385,29 @@ lodash.forown@~2.3.0: lodash.identity@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.identity/-/lodash.identity-2.3.0.tgz#6b01a210c9485355c2a913b48b6711219a173ded" + resolved "https://registry.yarnpkg.com/lodash.identity/-/lodash.identity-2.3.0.tgz#6b01a210c9485355c2a913b48b6711219a173ded" lodash.isarguments@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" lodash.isarray@^3.0.0: version "3.0.4" - resolved "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" lodash.isfunction@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-2.3.0.tgz#6b2973e47a647cf12e70d676aea13643706e5267" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-2.3.0.tgz#6b2973e47a647cf12e70d676aea13643706e5267" lodash.isobject@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.3.0.tgz#2e16d3fc583da9831968953f2d8e6d73434f6799" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.3.0.tgz#2e16d3fc583da9831968953f2d8e6d73434f6799" dependencies: lodash._objecttypes "~2.3.0" lodash.keys@^3.0.0: version "3.1.2" - resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" dependencies: lodash._getnative "^3.0.0" lodash.isarguments "^3.0.0" @@ -4396,7 +4415,7 @@ lodash.keys@^3.0.0: lodash.keys@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.3.0.tgz#b350f4f92caa9f45a4a2ecf018454cf2f28ae253" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.3.0.tgz#b350f4f92caa9f45a4a2ecf018454cf2f28ae253" dependencies: lodash._renative "~2.3.0" lodash._shimkeys "~2.3.0" @@ -4404,36 +4423,36 @@ lodash.keys@~2.3.0: lodash.merge@^4.3.0, lodash.merge@^4.4.0, lodash.merge@^4.5.1, lodash.merge@^4.6.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" lodash.noop@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.noop/-/lodash.noop-2.3.0.tgz#3059d628d51bbf937cd2a0b6fc3a7f212a669c2c" + resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-2.3.0.tgz#3059d628d51bbf937cd2a0b6fc3a7f212a669c2c" lodash.omit@^4.1.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" lodash.restparam@^3.0.0: version "3.6.1" - resolved "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" lodash.support@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.support/-/lodash.support-2.3.0.tgz#7eaf038af4f0d6aab776b44aa6dcfc80334c9bfd" + resolved "https://registry.yarnpkg.com/lodash.support/-/lodash.support-2.3.0.tgz#7eaf038af4f0d6aab776b44aa6dcfc80334c9bfd" dependencies: lodash._renative "~2.3.0" lodash.template@^4.2.5: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" dependencies: lodash._reinterpolate "~3.0.0" lodash.templatesettings "^4.0.0" lodash.template@~2.3.x: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-2.3.0.tgz#4e3e29c433b4cfea675ec835e6f12391c61fd22b" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-2.3.0.tgz#4e3e29c433b4cfea675ec835e6f12391c61fd22b" dependencies: lodash._escapestringchar "~2.3.0" lodash._reinterpolate "~2.3.0" @@ -4445,79 +4464,79 @@ lodash.template@~2.3.x: lodash.templatesettings@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" dependencies: lodash._reinterpolate "~3.0.0" lodash.templatesettings@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.3.0.tgz#303d132c342710040d5a18efaa2d572fd03f8cdc" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-2.3.0.tgz#303d132c342710040d5a18efaa2d572fd03f8cdc" dependencies: lodash._reinterpolate "~2.3.0" lodash.escape "~2.3.0" lodash.uniq@^4.2.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" lodash.uniqby@^4.7.0: version "4.7.0" - resolved "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" lodash.values@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/lodash.values/-/lodash.values-2.3.0.tgz#ca96fbe60a20b0b0ec2ba2ba5fc6a765bd14a3ba" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.3.0.tgz#ca96fbe60a20b0b0ec2ba2ba5fc6a765bd14a3ba" dependencies: lodash.keys "~2.3.0" lodash@^3.10.0, lodash@^3.10.1, lodash@^3.9.3: version "3.10.1" - resolved "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.1, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1: version "4.17.4" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" longest@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0: version "1.3.1" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: js-tokens "^3.0.0" lru-cache@2: version "2.7.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" lru-cache@^4.0.1: version "4.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" make-array@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/make-array/-/make-array-0.1.2.tgz#335e36ebb0c5a43154d21213a1ecaeae2a1bb3ef" + resolved "https://registry.yarnpkg.com/make-array/-/make-array-0.1.2.tgz#335e36ebb0c5a43154d21213a1ecaeae2a1bb3ef" make-dir@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" dependencies: pify "^2.3.0" makeerror@1.0.x: version "1.0.11" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" dependencies: tmpl "1.0.x" markdown-it-terminal@0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/markdown-it-terminal/-/markdown-it-terminal-0.1.0.tgz#545abd8dd01c3d62353bfcea71db580b51d22bd9" + resolved "https://registry.yarnpkg.com/markdown-it-terminal/-/markdown-it-terminal-0.1.0.tgz#545abd8dd01c3d62353bfcea71db580b51d22bd9" dependencies: ansi-styles "^3.0.0" cardinal "^1.0.0" @@ -4527,7 +4546,7 @@ markdown-it-terminal@0.1.0: markdown-it@^4.3.0: version "4.4.0" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-4.4.0.tgz#3df373dbea587a9a7fef3e56311b68908f75c414" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-4.4.0.tgz#3df373dbea587a9a7fef3e56311b68908f75c414" dependencies: argparse "~1.0.2" entities "~1.1.1" @@ -4537,7 +4556,7 @@ markdown-it@^4.3.0: markdown-it@^8.3.0, markdown-it@^8.3.1: version "8.4.0" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.0.tgz#e2400881bf171f7018ed1bd9da441dac8af6306d" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.0.tgz#e2400881bf171f7018ed1bd9da441dac8af6306d" dependencies: argparse "^1.0.7" entities "~1.1.1" @@ -4545,47 +4564,47 @@ markdown-it@^8.3.0, markdown-it@^8.3.1: mdurl "^1.0.1" uc.micro "^1.0.3" -matcher-collection@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/matcher-collection/-/matcher-collection-1.0.4.tgz#2f66ae0869996f29e43d0b62c83dd1d43e581755" +matcher-collection@^1.0.0, matcher-collection@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.0.5.tgz#2ee095438372cb8884f058234138c05c644ec339" dependencies: minimatch "^3.0.2" md5-hex@^1.2.1, md5-hex@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" dependencies: md5-o-matic "^0.1.1" md5-o-matic@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" mdn-links@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/mdn-links/-/mdn-links-0.1.0.tgz#e24c83b97cb4c5886cc39f2f780705fbfe273aa5" + resolved "https://registry.yarnpkg.com/mdn-links/-/mdn-links-0.1.0.tgz#e24c83b97cb4c5886cc39f2f780705fbfe273aa5" mdurl@^1.0.1, mdurl@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" memory-streams@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/memory-streams/-/memory-streams-0.1.2.tgz#273ff777ab60fec599b116355255282cca2c50c2" + resolved "https://registry.yarnpkg.com/memory-streams/-/memory-streams-0.1.2.tgz#273ff777ab60fec599b116355255282cca2c50c2" dependencies: readable-stream "~1.0.2" merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" merge-trees@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/merge-trees/-/merge-trees-1.0.1.tgz#ccbe674569787f9def17fd46e6525f5700bbd23e" + resolved "https://registry.yarnpkg.com/merge-trees/-/merge-trees-1.0.1.tgz#ccbe674569787f9def17fd46e6525f5700bbd23e" dependencies: can-symlink "^1.0.0" fs-tree-diff "^0.5.4" @@ -4596,15 +4615,15 @@ merge-trees@^1.0.1: merge@^1.1.3, merge@^1.2.0, merge@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" methods@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" micromatch@^2.1.5, micromatch@^2.3.7: version "2.3.11" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" @@ -4622,74 +4641,74 @@ micromatch@^2.1.5, micromatch@^2.3.7: "mime-db@>= 1.29.0 < 2", mime-db@~1.30.0: version "1.30.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" mime-types@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16: version "2.1.17" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" dependencies: mime-db "~1.30.0" -mime@1.3.4: - version "1.3.4" - resolved "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -mime@^1.2.11: - version "1.4.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.4.0.tgz#69e9e0db51d44f2a3b56e48b7817d7d137f1a343" +mime@1.4.1, mime@^1.2.11: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" mime@~1.2.11: version "1.2.11" - resolved "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" minimatch@^2.0.1, minimatch@^2.0.3, minimatch@^2.0.8: version "2.0.10" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" dependencies: brace-expansion "^1.0.0" minimatch@~0.2.11: version "0.2.14" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" dependencies: lru-cache "2" sigmund "~1.0.0" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" minimist@^1.1.0, minimist@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" mkdirp@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" mktemp@^0.4.0, mktemp@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/mktemp/-/mktemp-0.4.0.tgz#6d0515611c8a8c84e484aa2000129b98e981ff0b" + resolved "https://registry.yarnpkg.com/mktemp/-/mktemp-0.4.0.tgz#6d0515611c8a8c84e484aa2000129b98e981ff0b" mocha-only-detector@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/mocha-only-detector/-/mocha-only-detector-0.0.2.tgz#00f7dde6f949cf68a3cc92bdacff997b87e4b1d1" + resolved "https://registry.yarnpkg.com/mocha-only-detector/-/mocha-only-detector-0.0.2.tgz#00f7dde6f949cf68a3cc92bdacff997b87e4b1d1" dependencies: esprima "^1.2.2" esprimaq "^0.0.1" @@ -4697,7 +4716,7 @@ mocha-only-detector@0.0.2: mocha@2.4.5: version "2.4.5" - resolved "https://registry.npmjs.org/mocha/-/mocha-2.4.5.tgz#151768dd2875eb51bc8295e9800026e9f2bb398f" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.4.5.tgz#151768dd2875eb51bc8295e9800026e9f2bb398f" dependencies: commander "2.3.0" debug "2.2.0" @@ -4711,74 +4730,74 @@ mocha@2.4.5: moment-timezone@^0.3.0: version "0.3.1" - resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.3.1.tgz#3ef47856b02d53b718a10a5ec2023aa299e07bf5" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.3.1.tgz#3ef47856b02d53b718a10a5ec2023aa299e07bf5" dependencies: moment ">= 2.6.0" "moment@>= 2.6.0": version "2.18.1" - resolved "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" morgan@^1.7.0, morgan@^1.8.1: - version "1.8.2" - resolved "https://registry.npmjs.org/morgan/-/morgan-1.8.2.tgz#784ac7734e4a453a9c6e6e8680a9329275c8b687" + version "1.9.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.0.tgz#d01fa6c65859b76fcf31b3cb53a3821a311d8051" dependencies: - basic-auth "~1.1.0" - debug "2.6.8" - depd "~1.1.0" + basic-auth "~2.0.0" + debug "2.6.9" + depd "~1.1.1" on-finished "~2.3.0" on-headers "~1.0.1" mout@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/mout/-/mout-1.0.0.tgz#9bdf1d4af57d66d47cb353a6335a3281098e1501" + resolved "https://registry.yarnpkg.com/mout/-/mout-1.0.0.tgz#9bdf1d4af57d66d47cb353a6335a3281098e1501" ms@0.7.1: version "0.7.1" - resolved "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" ms@0.7.2: version "0.7.2" - resolved "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" mustache@^2.2.1: version "2.3.0" - resolved "https://registry.npmjs.org/mustache/-/mustache-2.3.0.tgz#4028f7778b17708a489930a6e52ac3bca0da41d0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.0.tgz#4028f7778b17708a489930a6e52ac3bca0da41d0" mute-stream@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" mute-stream@0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" negotiator@0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" node-fetch@^1.3.3: version "1.7.3" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" dependencies: encoding "^0.1.11" is-stream "^1.0.1" node-int64@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" node-modules-path@^1.0.0, node-modules-path@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8" + resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8" node-notifier@^5.0.1: version "5.1.2" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" dependencies: growly "^1.3.0" semver "^5.3.0" @@ -4787,17 +4806,17 @@ node-notifier@^5.0.1: node-uuid@~1.4.0: version "1.4.8" - resolved "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" nopt@^3.0.3, nopt@^3.0.6: version "3.0.6" - resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" normalize-package-data@^2.3.2: version "2.4.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: hosted-git-info "^2.1.4" is-builtin-module "^1.0.0" @@ -4806,30 +4825,30 @@ normalize-package-data@^2.3.2: normalize-path@^2.0.0, normalize-path@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: remove-trailing-separator "^1.0.1" npm-git-info@^1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/npm-git-info/-/npm-git-info-1.0.3.tgz#a933c42ec321e80d3646e0d6e844afe94630e1d5" + resolved "https://registry.yarnpkg.com/npm-git-info/-/npm-git-info-1.0.3.tgz#a933c42ec321e80d3646e0d6e844afe94630e1d5" npm-package-arg@^4.1.1: version "4.2.1" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.1.tgz#593303fdea85f7c422775f17f9eb7670f680e3ec" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-4.2.1.tgz#593303fdea85f7c422775f17f9eb7670f680e3ec" dependencies: hosted-git-info "^2.1.5" semver "^5.1.0" npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" dependencies: path-key "^2.0.0" npmlog@^4.0.0: version "4.1.2" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -4838,61 +4857,61 @@ npmlog@^4.0.0: number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/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" oauth-sign@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" object-assign@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" object-component@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" object.omit@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" dependencies: for-own "^0.1.4" is-extendable "^0.1.1" on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" dependencies: ee-first "1.1.1" on-headers@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" optimist@^0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: minimist "~0.0.1" wordwrap "~0.0.2" optionator@^0.8.1: version "0.8.2" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" @@ -4903,11 +4922,11 @@ optionator@^0.8.1: options@>=0.0.5: version "0.0.6" - resolved "https://registry.npmjs.org/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" ora@^0.2.0: version "0.2.3" - resolved "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" dependencies: chalk "^1.1.1" cli-cursor "^1.0.2" @@ -4916,32 +4935,32 @@ ora@^0.2.0: os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" os-locale@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" dependencies: lcid "^1.0.0" os-shim@^0.1.2: version "0.1.3" - resolved "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" osenv@^0.1.0, osenv@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" output-file-sync@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" dependencies: graceful-fs "^4.1.4" mkdirp "^0.5.1" @@ -4949,25 +4968,25 @@ output-file-sync@^1.1.0: p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" p-limit@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" pako@~1.0.2: version "1.0.6" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" parse-glob@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" @@ -4976,77 +4995,77 @@ parse-glob@^3.0.4: parse-json@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" dependencies: error-ex "^1.2.0" parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" parsejson@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" dependencies: better-assert "~1.0.0" parseqs@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" dependencies: better-assert "~1.0.0" parseuri@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" dependencies: better-assert "~1.0.0" -parseurl@~1.3.1: +parseurl@~1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" path-exists@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081" path-exists@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" path-is-inside@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" path-key@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" path-parse@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" path-posix@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz#06b26113f56beab042545a23bfa88003ccac260f" + resolved "https://registry.yarnpkg.com/path-posix/-/path-posix-1.0.0.tgz#06b26113f56beab042545a23bfa88003ccac260f" path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" path-type@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -5054,29 +5073,29 @@ path-type@^1.0.0: pify@^2.0.0, pify@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" plain-text-box-plot@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/plain-text-box-plot/-/plain-text-box-plot-0.0.1.tgz#d3b2e53071ea6706972318565761242f779c04b8" + resolved "https://registry.yarnpkg.com/plain-text-box-plot/-/plain-text-box-plot-0.0.1.tgz#d3b2e53071ea6706972318565761242f779c04b8" pluralize@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" portfinder@^1.0.7: version "1.0.13" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" dependencies: async "^1.5.2" debug "^2.2.0" @@ -5084,89 +5103,85 @@ portfinder@^1.0.7: prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" preserve@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" pretender@^1.4.2: - version "1.5.1" - resolved "https://registry.npmjs.org/pretender/-/pretender-1.5.1.tgz#bd9098c03d39c3bc7dcb84a28ee27e096e2e32b8" + version "1.6.0" + resolved "https://registry.yarnpkg.com/pretender/-/pretender-1.6.0.tgz#0bb6dc9622b576772938814bc36f7cf2f86660dd" dependencies: fake-xml-http-request "^1.6.0" route-recognizer "^0.3.3" printf@^0.2.3: version "0.2.5" - resolved "https://registry.npmjs.org/printf/-/printf-0.2.5.tgz#c438ca2ca33e3927671db4ab69c0e52f936a4f0f" + resolved "https://registry.yarnpkg.com/printf/-/printf-0.2.5.tgz#c438ca2ca33e3927671db4ab69c0e52f936a4f0f" private@^0.1.6, private@^0.1.7, private@~0.1.5: version "0.1.7" - resolved "https://registry.npmjs.org/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" process-nextick-args@~1.0.6: version "1.0.7" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" process-relative-require@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/process-relative-require/-/process-relative-require-1.0.0.tgz#1590dfcf5b8f2983ba53e398446b68240b4cc68a" + resolved "https://registry.yarnpkg.com/process-relative-require/-/process-relative-require-1.0.0.tgz#1590dfcf5b8f2983ba53e398446b68240b4cc68a" dependencies: node-modules-path "^1.0.0" progress@^1.1.8: version "1.1.8" - resolved "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" promise-map-series@^0.2.1: version "0.2.3" - resolved "https://registry.npmjs.org/promise-map-series/-/promise-map-series-0.2.3.tgz#c2d377afc93253f6bd03dbb77755eb88ab20a847" + resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.2.3.tgz#c2d377afc93253f6bd03dbb77755eb88ab20a847" dependencies: rsvp "^3.0.14" -proxy-addr@~1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" +proxy-addr@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" dependencies: - forwarded "~0.1.0" - ipaddr.js "1.4.0" + forwarded "~0.1.2" + ipaddr.js "1.5.2" pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" punycode@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" punycode@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" q@^1.1.2: version "1.5.0" - resolved "https://registry.npmjs.org/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" - -qs@6.5.0, qs@^6.4.0: - version "6.5.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" -qs@6.5.1: +qs@6.5.1, qs@^6.4.0: version "6.5.1" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" qs@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/qs/-/qs-1.0.2.tgz#50a93e2b5af6691c31bcea5dae78ee6ea1903768" + resolved "https://registry.yarnpkg.com/qs/-/qs-1.0.2.tgz#50a93e2b5af6691c31bcea5dae78ee6ea1903768" querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" quick-temp@^0.1.0, quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8: version "0.1.8" - resolved "https://registry.npmjs.org/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408" + resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408" dependencies: mktemp "~0.4.0" rimraf "^2.5.4" @@ -5174,26 +5189,26 @@ quick-temp@^0.1.0, quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quic qunit-notifications@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/qunit-notifications/-/qunit-notifications-0.1.1.tgz#3001afc6a6a77dfbd962ccbcddde12dec5286c09" + resolved "https://registry.yarnpkg.com/qunit-notifications/-/qunit-notifications-0.1.1.tgz#3001afc6a6a77dfbd962ccbcddde12dec5286c09" qunitjs@^1.20.0: version "1.23.1" - resolved "https://registry.npmjs.org/qunitjs/-/qunitjs-1.23.1.tgz#1971cf97ac9be01a64d2315508d2e48e6fd4e719" + resolved "https://registry.yarnpkg.com/qunitjs/-/qunitjs-1.23.1.tgz#1971cf97ac9be01a64d2315508d2e48e6fd4e719" randomatic@^1.1.3: version "1.1.7" - resolved "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" dependencies: is-number "^3.0.0" kind-of "^4.0.0" range-parser@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" raw-body@2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" dependencies: bytes "3.0.0" http-errors "1.6.2" @@ -5202,21 +5217,21 @@ raw-body@2.3.2: raw-body@~1.1.0: version "1.1.7" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" dependencies: bytes "1" string_decoder "0.10" read-pkg-up@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" dependencies: find-up "^1.0.0" read-pkg "^1.0.0" read-pkg@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" @@ -5224,7 +5239,7 @@ read-pkg@^1.0.0: readable-stream@^2, readable-stream@^2.0.6, readable-stream@^2.2.2: version "2.3.3" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -5236,7 +5251,7 @@ readable-stream@^2, readable-stream@^2.0.6, readable-stream@^2.2.2: readable-stream@~1.0.2: version "1.0.34" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -5245,7 +5260,7 @@ readable-stream@~1.0.2: readable-stream@~2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -5256,7 +5271,7 @@ readable-stream@~2.0.6: readline2@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -5264,7 +5279,7 @@ readline2@^1.0.1: recast@0.10.33: version "0.10.33" - resolved "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz#942808f7aa016f1fa7142c461d7e5704aaa8d697" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.33.tgz#942808f7aa016f1fa7142c461d7e5704aaa8d697" dependencies: ast-types "0.8.12" esprima-fb "~15001.1001.0-dev-harmony-fb" @@ -5273,7 +5288,7 @@ recast@0.10.33: recast@^0.10.10, recast@^0.10.29: version "0.10.43" - resolved "https://registry.npmjs.org/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f" dependencies: ast-types "0.8.15" esprima-fb "~15001.1001.0-dev-harmony-fb" @@ -5282,7 +5297,7 @@ recast@^0.10.10, recast@^0.10.29: recast@^0.11.17, recast@^0.11.3: version "0.11.23" - resolved "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" dependencies: ast-types "0.9.6" esprima "~3.1.0" @@ -5291,25 +5306,25 @@ recast@^0.11.17, recast@^0.11.3: redeyed@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" dependencies: esprima "~3.0.0" regenerate@^1.2.1: - version "1.3.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" regenerator-runtime@^0.10.5: version "0.10.5" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" regenerator-runtime@^0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" regenerator-transform@^0.10.0: version "0.10.1" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" dependencies: babel-runtime "^6.18.0" babel-types "^6.19.0" @@ -5317,7 +5332,7 @@ regenerator-transform@^0.10.0: regenerator@0.8.40: version "0.8.40" - resolved "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz#a0e457c58ebdbae575c9f8cd75127e93756435d8" + resolved "https://registry.yarnpkg.com/regenerator/-/regenerator-0.8.40.tgz#a0e457c58ebdbae575c9f8cd75127e93756435d8" dependencies: commoner "~0.10.3" defs "~1.1.0" @@ -5328,13 +5343,13 @@ regenerator@0.8.40: regex-cache@^0.4.2: version "0.4.4" - resolved "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" dependencies: is-equal-shallow "^0.1.3" regexpu-core@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" @@ -5342,7 +5357,7 @@ regexpu-core@^2.0.0: regexpu@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/regexpu/-/regexpu-1.3.0.tgz#e534dc991a9e5846050c98de6d7dd4a55c9ea16d" + resolved "https://registry.yarnpkg.com/regexpu/-/regexpu-1.3.0.tgz#e534dc991a9e5846050c98de6d7dd4a55c9ea16d" dependencies: esprima "^2.6.0" recast "^0.10.10" @@ -5352,41 +5367,41 @@ regexpu@^1.3.0: regjsgen@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" regjsparser@^0.1.4: version "0.1.5" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" dependencies: jsesc "~0.5.0" remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" repeat-element@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" repeat-string@^1.5.2: version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" repeating@^1.1.0, repeating@^1.1.2: version "1.1.3" - resolved "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" dependencies: is-finite "^1.0.0" repeating@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" dependencies: is-finite "^1.0.0" request@~2.40.0: version "2.40.0" - resolved "https://registry.npmjs.org/request/-/request-2.40.0.tgz#4dd670f696f1e6e842e66b4b5e839301ab9beb67" + resolved "https://registry.yarnpkg.com/request/-/request-2.40.0.tgz#4dd670f696f1e6e842e66b4b5e839301ab9beb67" dependencies: forever-agent "~0.5.0" json-stringify-safe "~5.0.0" @@ -5405,126 +5420,130 @@ request@~2.40.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" require-main-filename@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" require-uncached@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" requires-port@1.x.x: version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" resolve-dir@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" dependencies: expand-tilde "^1.2.2" global-modules "^0.2.3" resolve-from@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" resolve@^1.1.2, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0, resolve@^1.3.0, resolve@^1.3.3, resolve@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" dependencies: path-parse "^1.0.5" restore-cursor@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" dependencies: exit-hook "^1.0.0" onetime "^1.0.0" right-align@^0.1.1: version "0.1.3" - resolved "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" -rimraf@2.5.2, rimraf@^2.4.3: +rimraf@2.5.2: version "2.5.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz#62ba947fa4c0b4363839aefecd4f0fbad6059726" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.2.tgz#62ba947fa4c0b4363839aefecd4f0fbad6059726" dependencies: glob "^7.0.0" -rimraf@^2.1.4, rimraf@^2.2.8, rimraf@^2.3.2, rimraf@^2.3.4, rimraf@^2.4.1, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1: +rimraf@^2.1.4, rimraf@^2.2.8, rimraf@^2.3.2, rimraf@^2.3.4, rimraf@^2.4.1, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1: version "2.6.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" rimraf@~2.2.6: version "2.2.8" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" rollup@^0.41.4: version "0.41.6" - resolved "https://registry.npmjs.org/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a" dependencies: source-map-support "^0.4.0" route-recognizer@^0.3.3: version "0.3.3" - resolved "https://registry.npmjs.org/route-recognizer/-/route-recognizer-0.3.3.tgz#1d365e27fa6995e091675f7dc940a8c00353bd29" + resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.3.tgz#1d365e27fa6995e091675f7dc940a8c00353bd29" -rsvp@3.6.0, rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0.6, rsvp@^3.1.0, rsvp@^3.2.1, rsvp@^3.3.3, rsvp@^3.4.0, rsvp@^3.5.0: +rsvp@3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-3.6.0.tgz#666dfffa715f7e10eef76f4d1e56fb2566fce5c3" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.0.tgz#666dfffa715f7e10eef76f4d1e56fb2566fce5c3" + +rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0.6, rsvp@^3.1.0, rsvp@^3.2.1, rsvp@^3.3.3, rsvp@^3.4.0, rsvp@^3.5.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" rsvp@~3.0.6: version "3.0.21" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-3.0.21.tgz#49c588fe18ef293bcd0ab9f4e6756e6ac433359f" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.0.21.tgz#49c588fe18ef293bcd0ab9f4e6756e6ac433359f" rsvp@~3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-3.1.0.tgz#19d96e71315f3ddbc57c4c62a6db898adb64d791" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.1.0.tgz#19d96e71315f3ddbc57c4c62a6db898adb64d791" rsvp@~3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a" run-async@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" dependencies: once "^1.3.0" run-async@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" dependencies: is-promise "^2.1.0" rx-lite@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" rx@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" safe-buffer@5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" safe-json-parse@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" + resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" sane@^1.1.1, sane@^1.4.1, sane@^1.6.0: version "1.7.0" - resolved "https://registry.npmjs.org/sane/-/sane-1.7.0.tgz#b3579bccb45c94cf20355cc81124990dfd346e30" + resolved "https://registry.yarnpkg.com/sane/-/sane-1.7.0.tgz#b3579bccb45c94cf20355cc81124990dfd346e30" dependencies: anymatch "^1.3.0" exec-sh "^0.2.0" @@ -5534,13 +5553,17 @@ sane@^1.1.1, sane@^1.4.1, sane@^1.6.0: walker "~1.0.5" watch "~0.10.0" -sax@1.2.1, sax@>=0.6.0: +sax@1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + +sax@>=0.6.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" selenium-webdriver@^3.0.0-beta-2: version "3.5.0" - resolved "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.5.0.tgz#9036c82874e6c0f5cbff0a0f18223bc31c99cb77" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.5.0.tgz#9036c82874e6c0f5cbff0a0f18223bc31c99cb77" dependencies: jszip "^3.1.3" rimraf "^2.5.4" @@ -5549,123 +5572,127 @@ selenium-webdriver@^3.0.0-beta-2: "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.1.1, semver@^5.3.0: version "5.4.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" semver@^4.1.0, semver@^4.3.1: version "4.3.6" - resolved "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" semver@~5.0.1: version "5.0.3" - resolved "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" -send@0.15.4: - version "0.15.4" - resolved "https://registry.npmjs.org/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9" +send@0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" dependencies: - debug "2.6.8" + debug "2.6.9" depd "~1.1.1" destroy "~1.0.4" encodeurl "~1.0.1" escape-html "~1.0.3" - etag "~1.8.0" - fresh "0.5.0" + etag "~1.8.1" + fresh "0.5.2" http-errors "~1.6.2" - mime "1.3.4" + mime "1.4.1" ms "2.0.0" on-finished "~2.3.0" range-parser "~1.2.0" statuses "~1.3.1" -serve-static@1.12.4: - version "1.12.4" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" +serve-static@1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" dependencies: encodeurl "~1.0.1" escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.15.4" + parseurl "~1.3.2" + send "0.16.1" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" setprototypeof@1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" shelljs@^0.6.0: version "0.6.1" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" shellwords@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" sigmund@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" silent-error@^1.0.0, silent-error@^1.0.1, silent-error@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz#2209706f1c850a9f1d10d0d840918b46f26e1bc9" + resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.1.0.tgz#2209706f1c850a9f1d10d0d840918b46f26e1bc9" dependencies: debug "^2.2.0" simple-dom@^0.3.0: version "0.3.2" - resolved "https://registry.npmjs.org/simple-dom/-/simple-dom-0.3.2.tgz#0663d10f1556f1500551d518f56e3aba0871371d" + resolved "https://registry.yarnpkg.com/simple-dom/-/simple-dom-0.3.2.tgz#0663d10f1556f1500551d518f56e3aba0871371d" simple-fmt@~0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz#191bf566a59e6530482cb25ab53b4a8dc85c3a6b" + resolved "https://registry.yarnpkg.com/simple-fmt/-/simple-fmt-0.1.0.tgz#191bf566a59e6530482cb25ab53b4a8dc85c3a6b" simple-is@~0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz#2abb75aade39deb5cc815ce10e6191164850baf0" + resolved "https://registry.yarnpkg.com/simple-is/-/simple-is-0.2.0.tgz#2abb75aade39deb5cc815ce10e6191164850baf0" slash@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" slice-ansi@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" slide@^1.1.5: version "1.1.6" - resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" sntp@0.2.x: version "0.2.4" - resolved "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" dependencies: hoek "0.9.x" socket.io-adapter@0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" dependencies: debug "2.3.3" socket.io-parser "2.3.1" socket.io-client@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.6.0.tgz#5b668f4f771304dfeed179064708386fa6717853" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.6.0.tgz#5b668f4f771304dfeed179064708386fa6717853" dependencies: backo2 "1.0.2" component-bind "1.0.0" @@ -5681,7 +5708,7 @@ socket.io-client@1.6.0: socket.io-parser@2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" dependencies: component-emitter "1.1.2" debug "2.2.0" @@ -5690,7 +5717,7 @@ socket.io-parser@2.3.1: socket.io@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/socket.io/-/socket.io-1.6.0.tgz#3e40d932637e6bd923981b25caf7c53e83b6e2e1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.6.0.tgz#3e40d932637e6bd923981b25caf7c53e83b6e2e1" dependencies: debug "2.3.3" engine.io "1.8.0" @@ -5702,49 +5729,55 @@ socket.io@1.6.0: sort-object-keys@^1.1.1: version "1.1.2" - resolved "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.2.tgz#d3a6c48dc2ac97e6bc94367696e03f6d09d37952" + resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.2.tgz#d3a6c48dc2ac97e6bc94367696e03f6d09d37952" sort-package-json@^1.4.0: version "1.7.1" - resolved "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.7.1.tgz#f2e5fbffe8420cc1bb04485f4509f05e73b4c0f2" + resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-1.7.1.tgz#f2e5fbffe8420cc1bb04485f4509f05e73b4c0f2" dependencies: sort-object-keys "^1.1.1" source-map-support@^0.2.10: version "0.2.10" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz#ea5a3900a1c1cb25096a0ae8cc5c2b4b10ded3dc" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.2.10.tgz#ea5a3900a1c1cb25096a0ae8cc5c2b4b10ded3dc" dependencies: source-map "0.1.32" source-map-support@^0.4.0, source-map-support@^0.4.15: version "0.4.18" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" source-map-url@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" -source-map@0.1.32, source-map@~0.1.x: +source-map@0.1.32: version "0.1.32" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" dependencies: amdefine ">=0.0.4" source-map@0.4.x, source-map@^0.4.2, source-map@^0.4.4: version "0.4.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1: version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@~0.1.x: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" sourcemap-validator@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/sourcemap-validator/-/sourcemap-validator-1.0.5.tgz#f9b960f48c6469e288a19af305f005da3dc1df3a" + resolved "https://registry.yarnpkg.com/sourcemap-validator/-/sourcemap-validator-1.0.5.tgz#f9b960f48c6469e288a19af305f005da3dc1df3a" dependencies: jsesc "~0.3.x" lodash.foreach "~2.3.x" @@ -5753,64 +5786,64 @@ sourcemap-validator@^1.0.5: spawn-args@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/spawn-args/-/spawn-args-0.2.0.tgz#fb7d0bd1d70fd4316bd9e3dec389e65f9d6361bb" + resolved "https://registry.yarnpkg.com/spawn-args/-/spawn-args-0.2.0.tgz#fb7d0bd1d70fd4316bd9e3dec389e65f9d6361bb" spawn-sync@^1.0.15: version "1.0.15" - resolved "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" dependencies: concat-stream "^1.4.7" os-shim "^0.1.2" spawnback@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/spawnback/-/spawnback-1.0.0.tgz#f73662f7e54d95367eca74d6426c677dd7ea686f" + resolved "https://registry.yarnpkg.com/spawnback/-/spawnback-1.0.0.tgz#f73662f7e54d95367eca74d6426c677dd7ea686f" spdx-correct@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" dependencies: spdx-license-ids "^1.0.2" spdx-expression-parse@~1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" spdx-license-ids@^1.0.2: version "1.2.2" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" sprintf-js@^1.0.3: version "1.1.1" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sri-toolbox@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/sri-toolbox/-/sri-toolbox-0.2.0.tgz#a7fea5c3fde55e675cf1c8c06f3ebb5c2935835e" + resolved "https://registry.yarnpkg.com/sri-toolbox/-/sri-toolbox-0.2.0.tgz#a7fea5c3fde55e675cf1c8c06f3ebb5c2935835e" stable@~0.1.3: version "0.1.6" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" "statuses@>= 1.3.1 < 2", statuses@~1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" stream-consume@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" string-template@~0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -5818,104 +5851,104 @@ string-width@^1.0.1, string-width@^1.0.2: string-width@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" string_decoder@0.10, string_decoder@~0.10.x: version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" string_decoder@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" dependencies: safe-buffer "~5.1.0" stringmap@~0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1" + resolved "https://registry.yarnpkg.com/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1" stringset@~0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz#ef259c4e349344377fcd1c913dd2e848c9c042b5" + resolved "https://registry.yarnpkg.com/stringset/-/stringset-0.2.1.tgz#ef259c4e349344377fcd1c913dd2e848c9c042b5" stringstream@~0.0.4: version "0.0.5" - resolved "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" strip-ansi@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" dependencies: ansi-regex "^0.2.1" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: ansi-regex "^3.0.0" strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" strip-json-comments@~1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" styled_string@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/styled_string/-/styled_string-0.0.1.tgz#d22782bd81295459bc4f1df18c4bad8e94dd124a" + resolved "https://registry.yarnpkg.com/styled_string/-/styled_string-0.0.1.tgz#d22782bd81295459bc4f1df18c4bad8e94dd124a" sum-up@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" + resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" dependencies: chalk "^1.0.0" supports-color@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" supports-color@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^4.0.0: version "4.4.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" dependencies: has-flag "^2.0.0" symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8: version "1.1.8" - resolved "https://registry.npmjs.org/symlink-or-copy/-/symlink-or-copy-1.1.8.tgz#cabe61e0010c1c023c173b25ee5108b37f4b4aa3" + resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.1.8.tgz#cabe61e0010c1c023c173b25ee5108b37f4b4aa3" table@^3.7.8: version "3.8.3" - resolved "https://registry.npmjs.org/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" dependencies: ajv "^4.7.0" ajv-keywords "^1.0.0" @@ -5926,7 +5959,7 @@ table@^3.7.8: tap-parser@^5.1.0: version "5.4.0" - resolved "https://registry.npmjs.org/tap-parser/-/tap-parser-5.4.0.tgz#6907e89725d7b7fa6ae41ee2c464c3db43188aec" + resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-5.4.0.tgz#6907e89725d7b7fa6ae41ee2c464c3db43188aec" dependencies: events-to-array "^1.0.1" js-yaml "^3.2.7" @@ -5935,14 +5968,14 @@ tap-parser@^5.1.0: temp@0.8.3: version "0.8.3" - resolved "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" dependencies: os-tmpdir "^1.0.0" rimraf "~2.2.6" testem@^1.15.0, testem@^1.18.0: version "1.18.4" - resolved "https://registry.npmjs.org/testem/-/testem-1.18.4.tgz#e45fed922bec2f54a616c43f11922598ac97eb41" + resolved "https://registry.yarnpkg.com/testem/-/testem-1.18.4.tgz#e45fed922bec2f54a616c43f11922598ac97eb41" dependencies: backbone "^1.1.2" bluebird "^3.4.6" @@ -5973,19 +6006,19 @@ testem@^1.15.0, testem@^1.18.0: text-table@~0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" "textextensions@1 || 2": version "2.1.0" - resolved "https://registry.npmjs.org/textextensions/-/textextensions-2.1.0.tgz#1be0dc2a0dc244d44be8a09af6a85afb93c4dbc3" + resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.1.0.tgz#1be0dc2a0dc244d44be8a09af6a85afb93c4dbc3" through@^2.3.6, through@^2.3.8, through@~2.3.8: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" tiny-lr@^1.0.3: version "1.0.5" - resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.0.5.tgz#21f40bf84ebd1f853056680375eef1670c334112" + resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.0.5.tgz#21f40bf84ebd1f853056680375eef1670c334112" dependencies: body "^5.1.0" debug "~2.6.7" @@ -5996,56 +6029,56 @@ tiny-lr@^1.0.3: tmp-sync@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/tmp-sync/-/tmp-sync-1.1.2.tgz#ba04d94a8ed9c0f35a54739970792f997a6cc1c8" + resolved "https://registry.yarnpkg.com/tmp-sync/-/tmp-sync-1.1.2.tgz#ba04d94a8ed9c0f35a54739970792f997a6cc1c8" dependencies: fs-sync "^1.0.4" osenv "^0.1.0" tmp@0.0.28: version "0.0.28" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" dependencies: os-tmpdir "~1.0.1" tmp@0.0.30: version "0.0.30" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" dependencies: os-tmpdir "~1.0.1" tmp@0.0.31: version "0.0.31" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" dependencies: os-tmpdir "~1.0.1" tmp@^0.0.29: version "0.0.29" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" dependencies: os-tmpdir "~1.0.1" tmpl@1.0.x: version "1.0.4" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" to-array@0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" to-fast-properties@^1.0.0, to-fast-properties@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" tough-cookie@>=0.12.0: - version "2.3.2" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" dependencies: punycode "^1.4.1" tree-sync@^1.2.1, tree-sync@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/tree-sync/-/tree-sync-1.2.2.tgz#2cf76b8589f59ffedb58db5a3ac7cb013d0158b7" + resolved "https://registry.yarnpkg.com/tree-sync/-/tree-sync-1.2.2.tgz#2cf76b8589f59ffedb58db5a3ac7cb013d0158b7" dependencies: debug "^2.2.0" fs-tree-diff "^0.5.6" @@ -6055,56 +6088,56 @@ tree-sync@^1.2.1, tree-sync@^1.2.2: trim-right@^1.0.0, trim-right@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" try-resolve@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912" + resolved "https://registry.yarnpkg.com/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912" tryit@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" tryor@~0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz#8145e4ca7caff40acde3ccf946e8b8bb75b4172b" + resolved "https://registry.yarnpkg.com/tryor/-/tryor-0.1.2.tgz#8145e4ca7caff40acde3ccf946e8b8bb75b4172b" tunnel-agent@~0.4.0: version "0.4.3" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" dependencies: prelude-ls "~1.1.2" type-detect@0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" type-detect@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" type-is@~1.6.15: version "1.6.15" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" dependencies: media-typer "0.3.0" mime-types "~2.1.15" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" uglify-js@^2.6, uglify-js@^2.7.0: version "2.8.29" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: source-map "~0.5.1" yargs "~3.10.0" @@ -6113,200 +6146,200 @@ uglify-js@^2.6, uglify-js@^2.7.0: uglify-to-browserify@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" ultron@1.0.x: version "1.0.2" - resolved "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" underscore.string@^3.2.2, underscore.string@~3.3.4: version "3.3.4" - resolved "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz#2c2a3f9f83e64762fdc45e6ceac65142864213db" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.4.tgz#2c2a3f9f83e64762fdc45e6ceac65142864213db" dependencies: sprintf-js "^1.0.3" util-deprecate "^1.0.2" underscore@>=1.8.3: version "1.8.3" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" unique-string@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" dependencies: crypto-random-string "^1.0.0" universalify@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" untildify@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz#17eb2807987f76952e9c0485fc311d06a826a2e0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-2.1.0.tgz#17eb2807987f76952e9c0485fc311d06a826a2e0" dependencies: os-homedir "^1.0.0" url@0.10.3: version "0.10.3" - resolved "https://registry.npmjs.org/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" dependencies: punycode "1.3.2" querystring "0.2.0" user-home@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" user-home@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" dependencies: os-homedir "^1.0.0" username-sync@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/username-sync/-/username-sync-1.0.1.tgz#1cde87eefcf94b8822984d938ba2b797426dae1f" + resolved "https://registry.yarnpkg.com/username-sync/-/username-sync-1.0.1.tgz#1cde87eefcf94b8822984d938ba2b797426dae1f" util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -utils-merge@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" uuid@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" uuid@^2.0.1: version "2.0.3" - resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" uuid@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" validate-npm-package-license@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" dependencies: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" validate-npm-package-name@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" dependencies: builtins "^1.0.3" -vary@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" walk-sync@^0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/walk-sync/-/walk-sync-0.1.3.tgz#8a07261a00bda6cfb1be25e9f100fad57546f583" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.1.3.tgz#8a07261a00bda6cfb1be25e9f100fad57546f583" walk-sync@^0.2.0, walk-sync@^0.2.5, walk-sync@^0.2.7: version "0.2.7" - resolved "https://registry.npmjs.org/walk-sync/-/walk-sync-0.2.7.tgz#b49be4ee6867657aeb736978b56a29d10fa39969" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.2.7.tgz#b49be4ee6867657aeb736978b56a29d10fa39969" dependencies: ensure-posix-path "^1.0.0" matcher-collection "^1.0.0" walk-sync@^0.3.0, walk-sync@^0.3.1: version "0.3.2" - resolved "https://registry.npmjs.org/walk-sync/-/walk-sync-0.3.2.tgz#4827280afc42d0e035367c4a4e31eeac0d136f75" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.2.tgz#4827280afc42d0e035367c4a4e31eeac0d136f75" dependencies: ensure-posix-path "^1.0.0" matcher-collection "^1.0.0" walker@~1.0.5: version "1.0.7" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" dependencies: makeerror "1.0.x" watch@~0.10.0: version "0.10.0" - resolved "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" websocket-driver@>=0.5.1: version "0.7.0" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" dependencies: http-parser-js ">=0.4.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz#0e18781de629a18308ce1481650f67ffa2693a5d" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.2.tgz#0e18781de629a18308ce1481650f67ffa2693a5d" which-module@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" which@^1.2.12, which@^1.2.9: version "1.3.0" - resolved "https://registry.npmjs.org/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" dependencies: string-width "^1.0.2" window-size@0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" window-size@^0.1.2: version "0.1.4" - resolved "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" window-size@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" wordwrap@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" wordwrap@~0.0.2: version "0.0.3" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" wordwrap@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" workerpool@^2.2.1: - version "2.2.4" - resolved "https://registry.npmjs.org/workerpool/-/workerpool-2.2.4.tgz#c9dbe01e103e92df0e8f55356fc860135fbd43b0" + version "2.3.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-2.3.0.tgz#86c5cbe946b55e7dc9d12b1936c8801a6e2d744d" dependencies: object-assign "4.1.1" wrap-ansi@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write-file-atomic@^1.1.2: version "1.3.4" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -6314,7 +6347,7 @@ write-file-atomic@^1.1.2: write-file-atomic@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -6322,99 +6355,99 @@ write-file-atomic@^2.0.0: write@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" ws@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" dependencies: options ">=0.0.5" ultron "1.0.x" ws@^1.0.1: version "1.1.4" - resolved "https://registry.npmjs.org/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" dependencies: options ">=0.0.5" ultron "1.0.x" wtf-8@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" xdg-basedir@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" dependencies: os-homedir "^1.0.0" xdg-basedir@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" xml2js@0.4.17: version "0.4.17" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" dependencies: sax ">=0.6.0" xmlbuilder "^4.1.0" xml2js@^0.4.17: version "0.4.19" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" dependencies: sax ">=0.6.0" xmlbuilder "~9.0.1" xmlbuilder@4.2.1, xmlbuilder@^4.1.0: version "4.2.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" dependencies: lodash "^4.0.0" xmlbuilder@~9.0.1: version "9.0.4" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f" xmldom@^0.1.19: version "0.1.27" - resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" xmlhttprequest-ssl@1.5.3: version "1.5.3" - resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" xtend@^4.0.0, xtend@~4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" yallist@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" yam@0.0.22: version "0.0.22" - resolved "https://registry.npmjs.org/yam/-/yam-0.0.22.tgz#38a76cb79a19284d9206ed49031e359a1340bd06" + resolved "https://registry.yarnpkg.com/yam/-/yam-0.0.22.tgz#38a76cb79a19284d9206ed49031e359a1340bd06" dependencies: fs-extra "^0.30.0" lodash.merge "^4.4.0" yargs-parser@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f" dependencies: camelcase "^3.0.0" lodash.assign "^4.1.0" yargs@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e" dependencies: cliui "^3.2.0" decamelize "^1.1.1" @@ -6433,7 +6466,7 @@ yargs@^5.0.0: yargs@~3.10.0: version "3.10.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" dependencies: camelcase "^1.0.2" cliui "^2.1.0" @@ -6442,7 +6475,7 @@ yargs@~3.10.0: yargs@~3.27.0: version "3.27.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz#21205469316e939131d59f2da0c6d7f98221ea40" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.27.0.tgz#21205469316e939131d59f2da0c6d7f98221ea40" dependencies: camelcase "^1.2.1" cliui "^2.1.0" @@ -6453,17 +6486,17 @@ yargs@~3.27.0: yeast@0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" yui@^3.18.1: version "3.18.1" - resolved "https://registry.npmjs.org/yui/-/yui-3.18.1.tgz#e000269ec0a7b6fbc741cbb8fcbd0e65117b014c" + resolved "https://registry.yarnpkg.com/yui/-/yui-3.18.1.tgz#e000269ec0a7b6fbc741cbb8fcbd0e65117b014c" dependencies: request "~2.40.0" yuidocjs@~0.9.0: version "0.9.0" - resolved "https://registry.npmjs.org/yuidocjs/-/yuidocjs-0.9.0.tgz#d2ff2b37cadf30e3d45385c58f5003e5a83f2723" + resolved "https://registry.yarnpkg.com/yuidocjs/-/yuidocjs-0.9.0.tgz#d2ff2b37cadf30e3d45385c58f5003e5a83f2723" dependencies: express "^4.13.1" graceful-fs "^4.1.2"