From 82f486398893b82094468bf5769e2d92ac5883aa Mon Sep 17 00:00:00 2001 From: Chris Garrett Date: Thu, 18 Jul 2019 21:27:52 -0700 Subject: [PATCH] [BUGFIX] Updates the assignment of args to reflect the arg proxy The refactor to use a proxy for tracking individual updates to args requires us to make some changes here in how we assign arguments. Also adds the `updateHook` option to capabilities. This solution should be compatible with Ember pre and post enabling the tracked canary flag, but can be made better with ember-compatibility-helpers once we have a version of Ember to target. --- .../addon/-private/component-manager.ts | 21 +- .../component/addon/-private/component.ts | 11 +- packages/@glimmer/component/addon/index.ts | 13 +- packages/@glimmer/component/package.json | 9 +- .../component/src/component-manager.ts | 7 +- .../app/components/conference-speakers.js | 5 +- .../components/glimmer-component-test.js | 166 ++++++--- yarn.lock | 323 +++++++++++++++++- 8 files changed, 441 insertions(+), 114 deletions(-) diff --git a/packages/@glimmer/component/addon/-private/component-manager.ts b/packages/@glimmer/component/addon/-private/component-manager.ts index 2ce35f664..5d4fb7f73 100644 --- a/packages/@glimmer/component/addon/-private/component-manager.ts +++ b/packages/@glimmer/component/addon/-private/component-manager.ts @@ -1,11 +1,12 @@ import { DEBUG } from '@glimmer/env'; import Ember from 'ember'; +import { set } from '@ember/object'; import { getOwner, setOwner } from '@ember/application'; import ApplicationInstance from '@ember/application/instance'; import { capabilities } from '@ember/component'; import { schedule } from '@ember/runloop'; -import GlimmerComponent, { DESTROYING, DESTROYED, MAGIC_PROP } from './component'; +import GlimmerComponent, { DESTROYING, DESTROYED, ARGS_SET } from './component'; export interface ComponentManagerArgs { named: object; @@ -26,6 +27,7 @@ export default class GlimmerComponentManager { this.capabilities = capabilities('3.4', { destructor: true, asyncLifecycleCallbacks: true, + updateHook: false, }); } @@ -33,22 +35,11 @@ export default class GlimmerComponentManager { Klass: typeof GlimmerComponent, args: ComponentManagerArgs ): CreateComponentResult { - let instance; - - let argSnapshot = args.named; - if (DEBUG) { - argSnapshot = Object.assign({}, argSnapshot); - Object.defineProperty(argSnapshot, MAGIC_PROP, { - enumerable: false, - value: true, - }); - argSnapshot = Object.freeze(argSnapshot); + ARGS_SET.add(args.named); } - instance = new Klass(getOwner(this), argSnapshot); - - return instance as CreateComponentResult; + return new Klass(getOwner(this), args.named) as CreateComponentResult; } updateComponent(component: CreateComponentResult, args: ComponentManagerArgs) { @@ -58,7 +49,7 @@ export default class GlimmerComponentManager { argSnapshot = Object.freeze(argSnapshot); } - component.args = argSnapshot; + set(component, 'args', argSnapshot); } destroyComponent(component: CreateComponentResult) { diff --git a/packages/@glimmer/component/addon/-private/component.ts b/packages/@glimmer/component/addon/-private/component.ts index c64f5e595..d571f9c10 100644 --- a/packages/@glimmer/component/addon/-private/component.ts +++ b/packages/@glimmer/component/addon/-private/component.ts @@ -4,13 +4,13 @@ import { setOwner } from './owner'; const DESTROYING = Symbol('destroying'); const DESTROYED = Symbol('destroyed'); -let MAGIC_PROP: symbol; +let ARGS_SET: WeakSet; if (DEBUG) { - MAGIC_PROP = Symbol('magic-prop'); + ARGS_SET = new WeakSet(); } -export { DESTROYING, DESTROYED, MAGIC_PROP }; +export { DESTROYING, DESTROYED, ARGS_SET }; /** * The `Component` class defines an encapsulated UI element that is rendered to @@ -145,10 +145,7 @@ export default class GlimmerComponent { * @param args */ constructor(owner: unknown, args: T) { - if ( - DEBUG && - !(owner !== null && typeof owner === 'object' && (args as any)[MAGIC_PROP] === true) - ) { + if (DEBUG && !(owner !== null && typeof owner === 'object' && ARGS_SET.has(args))) { throw new Error( `You must pass both the owner and args to super() in your component: ${ this.constructor.name diff --git a/packages/@glimmer/component/addon/index.ts b/packages/@glimmer/component/addon/index.ts index 781d15d2a..ca74c4f56 100644 --- a/packages/@glimmer/component/addon/index.ts +++ b/packages/@glimmer/component/addon/index.ts @@ -1,20 +1,9 @@ import ApplicationInstance from '@ember/application/instance'; import { setComponentManager } from '@ember/component'; -import { get, set } from '@ember/object'; import { gte } from 'ember-compatibility-helpers'; import GlimmerComponentManager from './-private/component-manager'; -import _GlimmerComponent from './-private/component'; - -class GlimmerComponent extends _GlimmerComponent { - get args(): Readonly { - return get(this as any, '__args__'); - } - - set args(args) { - set(this as any, '__args__', args); - } -} +import GlimmerComponent from './-private/component'; if (gte('3.8.0-beta.1')) { setComponentManager((owner: ApplicationInstance) => { diff --git a/packages/@glimmer/component/package.json b/packages/@glimmer/component/package.json index 8706a7524..c823d67ba 100644 --- a/packages/@glimmer/component/package.json +++ b/packages/@glimmer/component/package.json @@ -32,11 +32,11 @@ "@glimmer/env": "^0.1.7", "@glimmer/reference": "^0.41.0", "@glimmer/runtime": "^0.41.0", - "@glimmer/util": "^0.41.0", "@glimmer/tracking": "^0.14.0-alpha.9", + "@glimmer/util": "^0.41.0", "broccoli-file-creator": "^2.1.1", "broccoli-merge-trees": "^3.0.2", - "ember-cli-babel": "^7.2.0", + "ember-cli-babel": "^7.7.3", "ember-cli-get-component-path-option": "^1.0.0", "ember-cli-is-package-missing": "^1.0.0", "ember-cli-normalize-entity-name": "^1.0.0", @@ -46,7 +46,6 @@ "ember-compatibility-helpers": "^1.1.2" }, "devDependencies": { - "@ember-decorators/babel-transforms": "^5.1.3", "@ember/optional-features": "^0.6.1", "@glimmer/application-test-helpers": "^0.14.0-alpha.9", "@glimmer/compiler": "^0.41.0", @@ -74,7 +73,7 @@ "ember-cli-qunit": "^4.3.2", "ember-cli-sri": "^2.1.0", "ember-cli-uglify": "^2.1.0", - "ember-decorators": "^5.1.3", + "ember-decorators-polyfill": "^1.0.6", "ember-disable-prototype-extensions": "^1.1.2", "ember-export-application-global": "^2.0.0", "ember-load-initializers": "^1.1.0", @@ -98,4 +97,4 @@ "defaultBlueprint": "install-glimmer-component", "main": "ember-addon-main.js" } -} \ No newline at end of file +} diff --git a/packages/@glimmer/component/src/component-manager.ts b/packages/@glimmer/component/src/component-manager.ts index 1ee2d44f1..4fb3201d0 100644 --- a/packages/@glimmer/component/src/component-manager.ts +++ b/packages/@glimmer/component/src/component-manager.ts @@ -29,7 +29,7 @@ import ExtendedTemplateMeta from './template-meta'; import { SerializedTemplateWithLazyBlock } from '@glimmer/application/src/loaders/runtime-compiler/resolver'; import { Specifier } from '@glimmer/application/src/loaders/runtime-compiler/loader'; -import { MAGIC_PROP, DESTROYING, DESTROYED } from '../addon/-private/component'; +import { ARGS_SET, DESTROYING, DESTROYED } from '../addon/-private/component'; export interface ConstructorOptions { env: EnvironmentWithOwner; @@ -67,10 +67,7 @@ export class ComponentStateBucket { let snapshot = this.args.named.value(); if (DEBUG) { - Object.defineProperty(snapshot, MAGIC_PROP, { - enumerable: false, - value: true, - }); + ARGS_SET.add(snapshot); } return Object.freeze(snapshot); diff --git a/packages/@glimmer/component/test/ember/dummy/app/components/conference-speakers.js b/packages/@glimmer/component/test/ember/dummy/app/components/conference-speakers.js index 3eb51305b..1308ad565 100644 --- a/packages/@glimmer/component/test/ember/dummy/app/components/conference-speakers.js +++ b/packages/@glimmer/component/test/ember/dummy/app/components/conference-speakers.js @@ -1,6 +1,5 @@ import Component from '@glimmer/component'; -import { action, computed } from '@ember-decorators/object'; -import { set } from '@ember/object'; +import { action, set, computed } from '@ember/object'; export default class ConferenceSpeakers extends Component { current = 0; @@ -13,7 +12,7 @@ export default class ConferenceSpeakers extends Component { @computed('current') get moreSpeakers() { - return (this.speakers.length - 1) > this.current; + return this.speakers.length - 1 > this.current; } @action diff --git a/packages/@glimmer/component/test/ember/integration/components/glimmer-component-test.js b/packages/@glimmer/component/test/ember/integration/components/glimmer-component-test.js index a71d914f9..ca190e073 100644 --- a/packages/@glimmer/component/test/ember/integration/components/glimmer-component-test.js +++ b/packages/@glimmer/component/test/ember/integration/components/glimmer-component-test.js @@ -4,7 +4,9 @@ import { setupRenderingTest } from 'ember-qunit'; import { render, clearRender, click } from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; import { getOwner } from '@ember/application'; -import { set } from '@ember/object'; +import { set, computed } from '@ember/object'; + +import { gte } from 'ember-compatibility-helpers'; module('Integration | Component | @glimmer/component', function(hooks) { let InstrumentedComponent; @@ -21,7 +23,7 @@ module('Integration | Component | @glimmer/component', function(hooks) { willDestroy() { assert.step('willDestroy'); } - } + }; }); test('it can render with curlies (no args)', async function(assert) { @@ -99,11 +101,14 @@ module('Integration | Component | @glimmer/component', function(hooks) { }); test('it can use args in component', async function(assert) { - this.owner.register('component:under-test', class extends GlimmerComponent { - get text() { - return this.args.text.toUpperCase(); + this.owner.register( + 'component:under-test', + class extends GlimmerComponent { + get text() { + return this.args.text.toUpperCase(); + } } - }); + ); this.owner.register('template:components/under-test', hbs`

{{this.text}}

`); this.set('text', 'hello!'); @@ -112,13 +117,16 @@ module('Integration | Component | @glimmer/component', function(hooks) { }); test('it can use args in constructor', async function(assert) { - this.owner.register('component:under-test', class extends GlimmerComponent { - constructor() { - super(...arguments); + this.owner.register( + 'component:under-test', + class extends GlimmerComponent { + constructor() { + super(...arguments); - this.text = this.args.text.toUpperCase(); + this.text = this.args.text.toUpperCase(); + } } - }); + ); this.owner.register('template:components/under-test', hbs`

{{this.text}}

`); this.set('text', 'hello!'); @@ -127,17 +135,20 @@ module('Integration | Component | @glimmer/component', function(hooks) { }); test('it can use get/set to recompute for changes', async function(assert) { - this.owner.register('component:under-test', class extends GlimmerComponent { - constructor() { - super(...arguments); + this.owner.register( + 'component:under-test', + class extends GlimmerComponent { + constructor() { + super(...arguments); - this.count = 0; - } + this.count = 0; + } - increment() { - set(this, 'count', this.count + 1); + increment() { + set(this, 'count', this.count + 1); + } } - }); + ); this.owner.register( 'template:components/under-test', hbs`

Count: {{this.count}}

` @@ -154,25 +165,28 @@ module('Integration | Component | @glimmer/component', function(hooks) { }); test('does not update for non-tracked property changes', async function(assert) { - this.owner.register('component:under-test', class extends GlimmerComponent { - constructor() { - super(...arguments); + this.owner.register( + 'component:under-test', + class extends GlimmerComponent { + constructor() { + super(...arguments); - this._count = 0; - } + this._count = 0; + } - get count() { - return this._count; - } + get count() { + return this._count; + } - set count(value) { - this._count = value; - } + set count(value) { + this._count = value; + } - increment() { - this.count++; + increment() { + this.count++; + } } - }); + ); this.owner.register( 'template:components/under-test', hbs`

Count: {{this.count}}

` @@ -189,11 +203,14 @@ module('Integration | Component | @glimmer/component', function(hooks) { }); test('it has an owner', async function(assert) { - this.owner.register('component:under-test', class extends GlimmerComponent { - get environment() { - return getOwner(this).resolveRegistration("config:environment").environment; + this.owner.register( + 'component:under-test', + class extends GlimmerComponent { + get environment() { + return getOwner(this).resolveRegistration('config:environment').environment; + } } - }); + ); this.owner.register( 'template:components/under-test', hbs`

Environment: {{this.environment}}

` @@ -202,19 +219,70 @@ module('Integration | Component | @glimmer/component', function(hooks) { assert.dom('p').hasText('Environment: test'); }); - test('it has an owner', async function(assert) { - this.owner.register('component:under-test', class extends GlimmerComponent { - constructor() { - super(...arguments); - - this.environment = getOwner(this).resolveRegistration("config:environment").environment; - } - }); + test('computed properties can depend on args', async function(assert) { this.owner.register( - 'template:components/under-test', - hbs`

Environment: {{this.environment}}

` + 'component:under-test', + class extends InstrumentedComponent { + @computed('args.text') + get text() { + return this.args.text; + } + } ); - await render(hbs``); - assert.dom('p').hasText('Environment: test'); + this.owner.register('template:components/under-test', hbs`

{{this.text}}

`); + + this.set('text', 'hello!'); + await render(hbs``); + + assert.dom('p').hasText('hello!'); + assert.verifySteps(['constructor'], 'initial render steps'); + + this.set('text', 'hello world!'); + + assert.dom('p').hasText('hello world!'); + assert.verifySteps([], 'no rerender steps'); + + this.set('text', 'hello!'); + + assert.dom('p').hasText('hello!'); + assert.verifySteps([], 'no rerender steps'); + + await clearRender(); + + assert.verifySteps(['willDestroy'], 'post destroy steps'); }); + + if (gte('3.13.0-alpha.0')) { + test('args autotrack correctly', async function(assert) { + this.owner.register( + 'component:under-test', + class extends InstrumentedComponent { + get text() { + return this.args.text; + } + } + ); + this.owner.register('template:components/under-test', hbs`

{{this.text}}

`); + + this.set('text', 'hello!'); + await render(hbs``); + + assert.dom('p').hasText('hello!'); + assert.verifySteps(['constructor'], 'initial render steps'); + + this.set('text', 'hello world!'); + + assert.dom('p').hasText('hello world!'); + assert.verifySteps([], 'no rerender steps'); + + this.set('text', 'hello!'); + + assert.dom('p').hasText('hello!'); + assert.verifySteps([], 'no rerender steps'); + + await clearRender(); + + assert.verifySteps(['willDestroy'], 'post destroy steps'); + }); + } }); diff --git a/yarn.lock b/yarn.lock index fe302db4c..8615a09c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,6 +16,13 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + "@babel/core@^7.0.0", "@babel/core@^7.2.2": version "7.2.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" @@ -36,6 +43,26 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/core@^7.3.3", "@babel/core@^7.3.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" + integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helpers" "^7.5.5" + "@babel/parser" "^7.5.5" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/generator@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" @@ -58,6 +85,17 @@ source-map "^0.5.0" trim-right "^1.0.1" +"@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" + integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== + dependencies: + "@babel/types" "^7.5.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + trim-right "^1.0.1" + "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" @@ -93,6 +131,18 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.2.3" +"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" + integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/helper-define-map@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" @@ -156,6 +206,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== + dependencies: + "@babel/types" "^7.5.5" + "@babel/helper-module-imports@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" @@ -215,6 +272,16 @@ "@babel/traverse" "^7.2.3" "@babel/types" "^7.0.0" +"@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + "@babel/helper-simple-access@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" @@ -237,6 +304,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== + dependencies: + "@babel/types" "^7.4.4" + "@babel/helper-wrap-function@^7.1.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" @@ -256,6 +330,15 @@ "@babel/traverse" "^7.1.5" "@babel/types" "^7.3.0" +"@babel/helpers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" + integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== + dependencies: + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" @@ -279,6 +362,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.2.tgz#95cdeddfc3992a6ca2a1315191c1679ca32c55cd" integrity sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ== +"@babel/parser@^7.4.4", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" + integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== + "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" @@ -296,12 +384,20 @@ "@babel/helper-create-class-features-plugin" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-proposal-decorators@^7.1.2": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz#637ba075fa780b1f75d08186e8fb4357d03a72a7" - integrity sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg== +"@babel/plugin-proposal-class-properties@^7.3.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" + integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.3.0" + "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-decorators@^7.3.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz#de9b2a1a8ab0196f378e2a82f10b6e2a36f21cc0" + integrity sha512-z7MpQz3XC/iQJWXH9y+MaWcLPNSMY9RQSthrLzak8R8hCj0fuyNk+Dzi9kfNe/JxxlWQ2g7wkABbgWjW36MTcw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-decorators" "^7.2.0" @@ -703,6 +799,15 @@ "@babel/parser" "^7.2.2" "@babel/types" "^7.2.2" +"@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" @@ -734,6 +839,21 @@ globals "^11.1.0" lodash "^4.17.10" +"@babel/traverse@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" + integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" @@ -752,15 +872,14 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" -"@ember-decorators/babel-transforms@^5.1.3": - version "5.1.4" - resolved "https://registry.yarnpkg.com/@ember-decorators/babel-transforms/-/babel-transforms-5.1.4.tgz#e26e0480425e4b6e43be75e24ba85103a02d5459" - integrity sha512-uawhQ7fVAaeUgL13aOyvchW77i3Gu1T1lSNf7ZGTRj4SZKIVHPC0HyNTNShd/YIdnTLdBlch0ybCj/2/KJ0mMA== +"@babel/types@^7.4.4", "@babel/types@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" + integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== dependencies: - "@babel/plugin-proposal-class-properties" "^7.1.0" - "@babel/plugin-proposal-decorators" "^7.1.2" - ember-cli-babel-plugin-helpers "^1.0.0" - ember-cli-version-checker "^3.0.0" + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" "@ember-decorators/component@^5.1.3": version "5.1.3" @@ -1278,6 +1397,11 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== +"@types/symlink-or-copy@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/symlink-or-copy/-/symlink-or-copy-1.2.0.tgz#4151a81b4052c80bc2becbae09f3a9ec010a9c7a" + integrity sha512-Lja2xYuuf2B3knEsga8ShbOdsfNOtzT73GyJmZyY7eGl2+ajOqrs8yM5ze0fsSoYwvA6bw7/Qr7OZ7PEEmYwWg== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1383,9 +1507,9 @@ align-text@^0.1.1, align-text@^0.1.3: amd-name-resolver@1.2.0, amd-name-resolver@^1.0.0, amd-name-resolver@^1.2.0, amd-name-resolver@^1.2.1, amd-name-resolver@^1.3.1, "amd-name-resolver@https://github.com/ember-cli/amd-name-resolver.git": version "1.3.1" - resolved "https://github.com/ember-cli/amd-name-resolver.git#9d519b14987bcfa3f9c6012f3808ac24fac1e9c0" + resolved "https://github.com/ember-cli/amd-name-resolver.git#1d54492625fd536bd9f5cc9cd5e342faa67781d3" dependencies: - ensure-posix-path "^1.0.1" + ensure-posix-path "^1.1.1" object-hash "^1.3.1" amdefine@>=0.0.4: @@ -1917,6 +2041,13 @@ babel-plugin-ember-modules-api-polyfill@^2.6.0: dependencies: ember-rfc176-data "^0.3.6" +babel-plugin-ember-modules-api-polyfill@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-2.9.0.tgz#8503e7b4192aeb336b00265e6235258ff6b754aa" + integrity sha512-c03h50291phJ2gQxo/aIOvFQE2c6glql1A7uagE3XbPXpKVAJOUxtVDjvWG6UAB6BC5ynsJfMWvY0w4TPRKIHQ== + dependencies: + ember-rfc176-data "^0.3.9" + babel-plugin-htmlbars-inline-precompile@^0.2.5: version "0.2.6" resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-0.2.6.tgz#c00b8a3f4b32ca04bf0f0d5169fcef3b5a66d69d" @@ -2639,6 +2770,23 @@ broccoli-babel-transpiler@^7.1.0, broccoli-babel-transpiler@^7.1.1: rsvp "^4.8.3" workerpool "^2.3.1" +broccoli-babel-transpiler@^7.1.2: + version "7.2.0" + resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-7.2.0.tgz#5c0d694c4055106abb385e2d3d88936d35b7cb18" + integrity sha512-lkP9dNFfK810CRHHWsNl9rjyYqcXH3qg0kArnA6tV9Owx3nlZm3Eyr0cGo6sMUQCNLH+2oKrRjOdUGSc6Um6Cw== + dependencies: + "@babel/core" "^7.3.3" + "@babel/polyfill" "^7.0.0" + broccoli-funnel "^2.0.2" + broccoli-merge-trees "^3.0.2" + broccoli-persistent-filter "^2.2.1" + clone "^2.1.2" + hash-for-dep "^1.4.7" + heimdalljs-logger "^0.1.9" + json-stable-stringify "^1.0.1" + rsvp "^4.8.4" + workerpool "^3.1.1" + broccoli-builder@^0.18.14: version "0.18.14" resolved "https://registry.yarnpkg.com/broccoli-builder/-/broccoli-builder-0.18.14.tgz#4b79e2f844de11a4e1b816c3f49c6df4776c312d" @@ -2807,7 +2955,7 @@ broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.1.0: symlink-or-copy "^1.0.0" walk-sync "^0.3.1" -broccoli-funnel@^2.0.0: +broccoli-funnel@^2.0.0, broccoli-funnel@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-2.0.2.tgz#0edf629569bc10bd02cc525f74b9a38e71366a75" integrity sha512-/vDTqtv7ipjEZQOVqO4vGDVAOZyuYzQ/EgGoyewfOgh1M7IQAToBKZI0oAQPgMBeFPPlIbfMuAngk+ohPBuaHQ== @@ -2980,6 +3128,26 @@ broccoli-persistent-filter@^2.1.1: symlink-or-copy "^1.0.1" walk-sync "^0.3.1" +broccoli-persistent-filter@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-2.3.1.tgz#4a052e0e0868b344c3a2977e35a3d497aa9eca72" + integrity sha512-hVsmIgCDrl2NFM+3Gs4Cr2TA6UPaIZip99hN8mtkaUPgM8UeVnCbxelCvBjUBHo0oaaqP5jzqqnRVvb568Yu5g== + dependencies: + async-disk-cache "^1.2.1" + async-promise-queue "^1.0.3" + broccoli-plugin "^1.0.0" + fs-tree-diff "^2.0.0" + hash-for-dep "^1.5.0" + heimdalljs "^0.2.1" + heimdalljs-logger "^0.1.7" + mkdirp "^0.5.1" + promise-map-series "^0.2.1" + rimraf "^2.6.1" + rsvp "^4.7.0" + symlink-or-copy "^1.0.1" + sync-disk-cache "^1.3.3" + walk-sync "^1.0.0" + broccoli-plugin@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.1.0.tgz#73e2cfa05f8ea1e3fc1420c40c3d9e7dc724bf02" @@ -4491,6 +4659,11 @@ ember-cli-babel-plugin-helpers@^1.0.0: resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.0.2.tgz#d4bec0f32febc530e621ea8d66d3365727cb5e6c" integrity sha512-tTWmHiIvadgtu0i+Zlb5Jnue69qO6dtACcddkRhhV+m9NfAr+2XNoTKRSeGL8QyRDhfWeo4rsK9dqPrU4PQ+8g== +ember-cli-babel-plugin-helpers@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.0.tgz#de3baedd093163b6c2461f95964888c1676325ac" + integrity sha512-Zr4my8Xn+CzO0gIuFNXji0eTRml5AxZUTDQz/wsNJ5AJAtyFWCY4QtKdoELNNbiCVGt1lq5yLiwTm4scGKu6xA== + ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.11.0, ember-cli-babel@^6.12.0, ember-cli-babel@^6.16.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2: version "6.18.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.18.0.tgz#3f6435fd275172edeff2b634ee7b29ce74318957" @@ -4510,7 +4683,34 @@ ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6 ember-cli-version-checker "^2.1.2" semver "^5.5.0" -ember-cli-babel@^7.1.3, ember-cli-babel@^7.2.0: +ember-cli-babel@^7.1.2, ember-cli-babel@^7.7.3: + version "7.8.0" + resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.8.0.tgz#e596500eca0f5a7c9aaee755f803d1542f578acf" + integrity sha512-xUBgJQ81fqd7k/KIiGU+pjpoXhrmmRf9pUrqLenNSU5N+yeNFT5a1+w0b+p1F7oBphfXVwuxApdZxrmAHOdA3Q== + dependencies: + "@babel/core" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.3.4" + "@babel/plugin-proposal-decorators" "^7.3.0" + "@babel/plugin-transform-modules-amd" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.2.0" + "@babel/polyfill" "^7.0.0" + "@babel/preset-env" "^7.0.0" + "@babel/runtime" "^7.2.0" + amd-name-resolver "^1.2.1" + babel-plugin-debug-macros "^0.3.0" + babel-plugin-ember-modules-api-polyfill "^2.9.0" + babel-plugin-module-resolver "^3.1.1" + broccoli-babel-transpiler "^7.1.2" + broccoli-debug "^0.6.4" + broccoli-funnel "^2.0.1" + broccoli-source "^1.1.0" + clone "^2.1.2" + ember-cli-babel-plugin-helpers "^1.1.0" + ember-cli-version-checker "^2.1.2" + ensure-posix-path "^1.0.2" + semver "^5.5.0" + +ember-cli-babel@^7.1.3: version "7.4.1" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.4.1.tgz#9892f5883f5a6b1f0f86fb1331fc491338f372ad" integrity sha512-h6qZKHyULm5SYhvjNOeXvLl3kHaBdh37g5QqTTiC/vMiWP/xnyNp2bMoq52qq+SLm/bE8+5UcVTKjrNl0+IqXA== @@ -4758,6 +4958,14 @@ ember-cli-version-checker@^3.0.0: resolve "^1.9.0" semver "^5.6.0" +ember-cli-version-checker@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-3.1.3.tgz#7c9b4f5ff30fdebcd480b1c06c4de43bb51c522c" + integrity sha512-PZNSvpzwWgv68hcXxyjREpj3WWb81A7rtYNQq1lLEgrWIchF8ApKJjWP3NBpHjaatwILkZAV8klair5WFlXAKg== + dependencies: + resolve-package-path "^1.2.6" + semver "^5.6.0" + ember-cli@^3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.7.1.tgz#f307bcd68aaf083612717ab32133120272d89170" @@ -4956,6 +5164,24 @@ ember-compatibility-helpers@^1.1.2: ember-cli-version-checker "^2.1.1" semver "^5.4.1" +ember-compatibility-helpers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ember-compatibility-helpers/-/ember-compatibility-helpers-1.2.0.tgz#feee16c5e9ef1b1f1e53903b241740ad4b01097e" + integrity sha512-pUW4MzJdcaQtwGsErYmitFRs0rlCYBAnunVzlFFUBr4xhjlCjgHJo0b53gFnhTgenNM3d3/NqLarzRhDTjXRTg== + dependencies: + babel-plugin-debug-macros "^0.2.0" + ember-cli-version-checker "^2.1.1" + semver "^5.4.1" + +ember-decorators-polyfill@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/ember-decorators-polyfill/-/ember-decorators-polyfill-1.0.6.tgz#93094a1eebfd8d54e85abd941f78bc330dc3f973" + integrity sha512-Mvrja3FBBLaZ3crmAAnrSZLz41bESWI8Tm54YUwSbp16Osqa/lPHRE8Clxn+qtjBDRpAHq0EcROILGTaBscE2g== + dependencies: + ember-cli-babel "^7.1.2" + ember-cli-version-checker "^3.1.3" + ember-compatibility-helpers "^1.2.0" + ember-decorators@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/ember-decorators/-/ember-decorators-5.1.3.tgz#dafcca32e7acaa68ddb88420f6cd8e78a9edc35a" @@ -5029,6 +5255,11 @@ ember-rfc176-data@^0.3.5, ember-rfc176-data@^0.3.6: resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.6.tgz#7138db8dfccec39c9a832adfbd4c49d670028907" integrity sha512-kPY94VCukPUPj+/6sZ9KvphD42KnpX2IS31p5z07OFVIviDogR0cQuld5c7Irzfgq7a0YACj0HlToROFn7dLYQ== +ember-rfc176-data@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.9.tgz#44b6e051ead6c044ea87bd551f402e2cf89a7e3d" + integrity sha512-EiTo5YQS0Duy0xp9gCP8ekzv9vxirNi7MnIB4zWs+thtWp/mEKgf5mkiiLU2+oo8C5DuavVHhoPQDmyxh8Io1Q== + ember-router-generator@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/ember-router-generator/-/ember-router-generator-1.2.3.tgz#8ed2ca86ff323363120fc14278191e9e8f1315ee" @@ -5200,7 +5431,7 @@ engine.io@~3.3.1: engine.io-parser "~2.1.0" ws "~6.1.0" -ensure-posix-path@^1.0.0, ensure-posix-path@^1.0.1, ensure-posix-path@^1.0.2, ensure-posix-path@^1.1.0: +ensure-posix-path@^1.0.0, ensure-posix-path@^1.0.1, ensure-posix-path@^1.0.2, ensure-posix-path@^1.1.0, ensure-posix-path@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce" integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw== @@ -6214,6 +6445,17 @@ fs-tree-diff@^1.0.0: path-posix "^1.0.0" symlink-or-copy "^1.1.8" +fs-tree-diff@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-2.0.1.tgz#343e4745ab435ec39ebac5f9059ad919cd034afa" + integrity sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A== + dependencies: + "@types/symlink-or-copy" "^1.2.0" + heimdalljs-logger "^0.1.7" + object-assign "^4.1.0" + path-posix "^1.0.0" + symlink-or-copy "^1.1.8" + fs-updater@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/fs-updater/-/fs-updater-1.0.4.tgz#2329980f99ae9176e9a0e84f7637538a182ce63b" @@ -6757,6 +6999,18 @@ hash-for-dep@^1.2.3: heimdalljs-logger "^0.1.7" resolve "^1.4.0" +hash-for-dep@^1.4.7, hash-for-dep@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/hash-for-dep/-/hash-for-dep-1.5.1.tgz#497754b39bee2f1c4ade4521bfd2af0a7c1196e3" + integrity sha512-/dQ/A2cl7FBPI2pO0CANkvuuVi/IFS5oTyJ0PsOb6jW6WbVW1js5qJXMJTNbWHXBIPdFTWFbabjB+mE0d+gelw== + dependencies: + broccoli-kitchen-sink-helpers "^0.3.1" + heimdalljs "^0.2.3" + heimdalljs-logger "^0.1.7" + path-root "^0.1.1" + resolve "^1.10.0" + resolve-package-path "^1.0.11" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -8251,6 +8505,11 @@ lodash@^4.16.6, lodash@^4.8.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" integrity sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg== +lodash@^4.17.13: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" @@ -10176,6 +10435,14 @@ resolve-from@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= +resolve-package-path@^1.0.11, resolve-package-path@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/resolve-package-path/-/resolve-package-path-1.2.7.tgz#2a7bc37ad96865e239330e3102c31322847e652e" + integrity sha512-fVEKHGeK85bGbVFuwO9o1aU0n3vqQGrezPc51JGu9UTXpFQfWq5qCeKxyaRUSvephs+06c5j5rPq/dzHGEo8+Q== + dependencies: + path-root "^0.1.1" + resolve "^1.10.0" + resolve-path@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" @@ -11187,6 +11454,17 @@ symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8, symlink- resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.2.0.tgz#5d49108e2ab824a34069b68974486c290020b393" integrity sha512-W31+GLiBmU/ZR02Ii0mVZICuNEN9daZ63xZMPDsYgPgNjMtg+atqLEGI7PPI936jYSQZxoLb/63xos8Adrx4Eg== +sync-disk-cache@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/sync-disk-cache/-/sync-disk-cache-1.3.3.tgz#481933461623fdc2bdf46cfc87872ba215a7e246" + integrity sha512-Kp7DFemXDPRUbFW856CKamtX7bJuThZPa2dwnK2RfNqMew7Ah8xDc52SdooNlfN8oydDdDHlBPLsXTrtmA7HKw== + dependencies: + debug "^2.1.3" + heimdalljs "^0.2.3" + mkdirp "^0.5.0" + rimraf "^2.2.8" + username-sync "^1.0.2" + table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" @@ -12038,6 +12316,15 @@ workerpool@^2.3.0, workerpool@^2.3.1: dependencies: object-assign "4.1.1" +workerpool@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-3.1.2.tgz#b34e79243647decb174b7481ab5b351dc565c426" + integrity sha512-WJFA0dGqIK7qj7xPTqciWBH5DlJQzoPjsANvc3Y4hNB0SScT+Emjvt0jPPkDBUjBNngX1q9hHgt1Gfwytu6pug== + dependencies: + "@babel/core" "^7.3.4" + object-assign "4.1.1" + rsvp "^4.8.4" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"