From 89e596ac655446745320d5da636ac227df30bccd Mon Sep 17 00:00:00 2001 From: Mike North Date: Thu, 1 Nov 2018 10:36:54 -0700 Subject: [PATCH 1/4] chore: TS conversion --- addon/{index.js => index.ts} | 0 addon/utils/{build-url.js => build-url.ts} | 0 ...lection-action.js => collection-action.ts} | 0 .../{member-action.js => member-action.ts} | 0 ...lize-and-push.js => serialize-and-push.ts} | 0 app/util-tests/collection-action.js | 1 - app/util-tests/member-action.js | 1 - ember__object.tgz | Bin 0 -> 10906 bytes package.json | 47 +- .../{index-test.js => index-test.ts} | 24 +- .../{application.js => application.ts} | 0 .../app/components/{x-btn.js => x-btn.ts} | 0 .../components/{x-request.js => x-request.ts} | 0 tests/dummy/app/config/environment.d.ts | 16 + .../app/controllers/{index.js => index.ts} | 0 .../{first-in-array.js => first-in-array.ts} | 2 +- .../{json-string.js => json-string.ts} | 2 +- tests/dummy/app/helpers/{or.js => or.ts} | 2 +- tests/dummy/app/models/{fruit.js => fruit.ts} | 0 tests/dummy/app/routes/{index.js => index.ts} | 0 tests/test-helper.js | 4 +- ...tion-test.js => collection-action-test.ts} | 2 +- ...r-action-test.js => member-action-test.ts} | 2 +- tsconfig.json | 24 + types/dummy/index.d.ts | 1 + types/ember-data/types/registries/model.d.ts | 6 + yarn.lock | 1332 ++++++++--------- 27 files changed, 694 insertions(+), 772 deletions(-) rename addon/{index.js => index.ts} (100%) rename addon/utils/{build-url.js => build-url.ts} (100%) rename addon/utils/{collection-action.js => collection-action.ts} (100%) rename addon/utils/{member-action.js => member-action.ts} (100%) rename addon/utils/{serialize-and-push.js => serialize-and-push.ts} (100%) delete mode 100644 app/util-tests/collection-action.js delete mode 100644 app/util-tests/member-action.js create mode 100644 ember__object.tgz rename tests/acceptance/{index-test.js => index-test.ts} (89%) rename tests/dummy/app/adapters/{application.js => application.ts} (100%) rename tests/dummy/app/components/{x-btn.js => x-btn.ts} (100%) rename tests/dummy/app/components/{x-request.js => x-request.ts} (100%) create mode 100644 tests/dummy/app/config/environment.d.ts rename tests/dummy/app/controllers/{index.js => index.ts} (100%) rename tests/dummy/app/helpers/{first-in-array.js => first-in-array.ts} (93%) rename tests/dummy/app/helpers/{json-string.js => json-string.ts} (91%) rename tests/dummy/app/helpers/{or.js => or.ts} (90%) rename tests/dummy/app/models/{fruit.js => fruit.ts} (100%) rename tests/dummy/app/routes/{index.js => index.ts} (100%) rename tests/unit/utils/{collection-action-test.js => collection-action-test.ts} (84%) rename tests/unit/utils/{member-action-test.js => member-action-test.ts} (84%) create mode 100644 tsconfig.json create mode 100644 types/dummy/index.d.ts create mode 100644 types/ember-data/types/registries/model.d.ts diff --git a/addon/index.js b/addon/index.ts similarity index 100% rename from addon/index.js rename to addon/index.ts diff --git a/addon/utils/build-url.js b/addon/utils/build-url.ts similarity index 100% rename from addon/utils/build-url.js rename to addon/utils/build-url.ts diff --git a/addon/utils/collection-action.js b/addon/utils/collection-action.ts similarity index 100% rename from addon/utils/collection-action.js rename to addon/utils/collection-action.ts diff --git a/addon/utils/member-action.js b/addon/utils/member-action.ts similarity index 100% rename from addon/utils/member-action.js rename to addon/utils/member-action.ts diff --git a/addon/utils/serialize-and-push.js b/addon/utils/serialize-and-push.ts similarity index 100% rename from addon/utils/serialize-and-push.js rename to addon/utils/serialize-and-push.ts diff --git a/app/util-tests/collection-action.js b/app/util-tests/collection-action.js deleted file mode 100644 index 66b79657..00000000 --- a/app/util-tests/collection-action.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from 'ember-api-actions/util-tests/collection-action'; diff --git a/app/util-tests/member-action.js b/app/util-tests/member-action.js deleted file mode 100644 index 4263ef6f..00000000 --- a/app/util-tests/member-action.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from 'ember-api-actions/util-tests/member-action'; diff --git a/ember__object.tgz b/ember__object.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c8c122396c629e0aed374f4480114da295c06595 GIT binary patch literal 10906 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

K5tliT|}O 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 (http://mike.works)", "license": "MIT", "devDependencies": { + "@ember/optional-features": "^0.7.0", "@ember/test-helpers": "^1.0.0", - "@types/ember": "^3.0.19", - "@types/ember-data": "^2.14.18", - "@types/ember-qunit": "^3.0.3", - "@types/ember__test-helpers": "^0.7.0", + "@types/ember": "^3.0.25", + "@types/ember-data": "^3.1.3", + "@types/ember-qunit": "^3.4.3", + "@types/ember__test-helpers": "^0.7.6", + "@types/qunit": "^2.5.3", + "@types/rsvp": "^4.0.2", "broccoli-asset-rev": "^3.0.0", - "ember-cli": "^3.3.0", + "ember-cli": "^3.5.0", "ember-cli-dependency-checker": "^3.0.0", - "ember-cli-eslint": "^4.2.1", "ember-cli-github-pages": "0.2.0", "ember-cli-htmlbars": "^3.0.0", - "ember-cli-htmlbars-inline-precompile": "^1.0.2", - "ember-cli-inject-live-reload": "^1.4.1", - "ember-cli-pretender": "^1.0.1", - "ember-cli-qunit": "^4.3.2", + "ember-cli-htmlbars-inline-precompile": "^1.0.3", + "ember-cli-inject-live-reload": "^2.0.1", + "ember-cli-pretender": "^3.0.0", + "ember-cli-qunit": "^4.4.0", "ember-cli-shims": "^1.1.0", "ember-cli-test-loader": "^2.2.0", + "ember-cli-typescript-blueprints": "^2.0.0-beta.1", "ember-cli-uglify": "^2.0.0", - "ember-code-snippet": "^2.0.0", + "ember-code-snippet": "^2.1.0", "ember-data": "~3.4.0", - "ember-disable-prototype-extensions": "^1.1.2", + "ember-disable-prototype-extensions": "^1.1.3", "ember-export-application-global": "^2.0.0", - "ember-load-initializers": "^1.1.0", + "ember-load-initializers": "^2.0.0", "ember-maybe-import-regenerator": "^0.1.6", "ember-resolver": "^5.0.1", "ember-source": "~3.5.1", "ember-source-channel-url": "^1.0.1", - "ember-try": "^1.0.0", - "eslint-plugin-ember": "^5.0.0", - "eslint-plugin-node": "^7.0.1", - "loader.js": "^4.2.3", + "ember-try": "^1.1.0", + "json-typescript": "^1.0.1", + "jsonapi-typescript": "^0.0.9", + "loader.js": "^4.7.0", "qunit-dom": "^0.8.0", - "travis-deploy-once": "^5.0.7" + "travis-deploy-once": "^5.0.7", + "typescript": "^3.1.5" }, "optionalDependencies": { "@mike-north/js-lib-semantic-release-config": "^0.0.0-development", @@ -69,7 +75,8 @@ "model" ], "dependencies": { - "ember-cli-babel": "^7.1.0" + "ember-cli-babel": "^7.1.2", + "ember-cli-typescript": "2.0.0-beta.2" }, "ember-addon": { "configPath": "tests/dummy/config", diff --git a/tests/acceptance/index-test.js b/tests/acceptance/index-test.ts similarity index 89% rename from tests/acceptance/index-test.js rename to tests/acceptance/index-test.ts index 5ece3310..8b2a0842 100644 --- a/tests/acceptance/index-test.js +++ b/tests/acceptance/index-test.ts @@ -83,7 +83,7 @@ module('Acceptance | index2', function(hooks) { }; return [200, {}, JSON.stringify(response)]; }); - + server.put('/fruits/doEatAll', request => { let data = JSON.parse(request.requestBody); @@ -102,25 +102,27 @@ module('Acceptance | index2', function(hooks) { const response = { jsonapi: { version: '1.0' }, - data: [{ - id: 1, - type: 'fruit', - attributes: { - name: 'Completely Eaten apple' + data: [ + { + id: 1, + type: 'fruit', + attributes: { + name: 'Completely Eaten apple' + } } - }] + ] }; return [200, {}, JSON.stringify(response)]; }); - assert.dom(`[data-test-fruit-name="apple"]`).exists(); - + (assert as any).dom(`[data-test-fruit-name="apple"]`).exists(); + await click('#apple .eat-instance-button'); - assert.dom(`[data-test-fruit-name="Eaten apple"]`).exists(); + (assert as any).dom(`[data-test-fruit-name="Eaten apple"]`).exists(); await click('.all-fruit .eat-all-button'); - assert.dom(`[data-test-fruit-name="Completely Eaten apple"]`).exists(); + (assert as any).dom(`[data-test-fruit-name="Completely Eaten apple"]`).exists(); }); }); diff --git a/tests/dummy/app/adapters/application.js b/tests/dummy/app/adapters/application.ts similarity index 100% rename from tests/dummy/app/adapters/application.js rename to tests/dummy/app/adapters/application.ts diff --git a/tests/dummy/app/components/x-btn.js b/tests/dummy/app/components/x-btn.ts similarity index 100% rename from tests/dummy/app/components/x-btn.js rename to tests/dummy/app/components/x-btn.ts diff --git a/tests/dummy/app/components/x-request.js b/tests/dummy/app/components/x-request.ts similarity index 100% rename from tests/dummy/app/components/x-request.js rename to tests/dummy/app/components/x-request.ts diff --git a/tests/dummy/app/config/environment.d.ts b/tests/dummy/app/config/environment.d.ts new file mode 100644 index 00000000..3252cc3d --- /dev/null +++ b/tests/dummy/app/config/environment.d.ts @@ -0,0 +1,16 @@ +export default config; + +/** + * Type declarations for + * import config from './config/environment' + * + * For now these need to be managed by the developer + * since different ember addons can materialize new entries. + */ +declare const config: { + environment: any; + modulePrefix: string; + podModulePrefix: string; + locationType: string; + rootURL: string; +}; diff --git a/tests/dummy/app/controllers/index.js b/tests/dummy/app/controllers/index.ts similarity index 100% rename from tests/dummy/app/controllers/index.js rename to tests/dummy/app/controllers/index.ts diff --git a/tests/dummy/app/helpers/first-in-array.js b/tests/dummy/app/helpers/first-in-array.ts similarity index 93% rename from tests/dummy/app/helpers/first-in-array.js rename to tests/dummy/app/helpers/first-in-array.ts index 02bee567..352d2fd0 100644 --- a/tests/dummy/app/helpers/first-in-array.js +++ b/tests/dummy/app/helpers/first-in-array.ts @@ -2,7 +2,7 @@ import { isArray } from '@ember/array'; import Helper from '@ember/component/helper'; import Ember from 'ember'; -const { HTMLBars } = Ember; +const { HTMLBars } = Ember as any; export function firstInArray(params /* , hash*/) { if (isArray(params[0])) { diff --git a/tests/dummy/app/helpers/json-string.js b/tests/dummy/app/helpers/json-string.ts similarity index 91% rename from tests/dummy/app/helpers/json-string.js rename to tests/dummy/app/helpers/json-string.ts index 8852ceb9..c111fca6 100644 --- a/tests/dummy/app/helpers/json-string.js +++ b/tests/dummy/app/helpers/json-string.ts @@ -1,7 +1,7 @@ import Helper from '@ember/component/helper'; import Ember from 'ember'; -const { HTMLBars } = Ember; +const { HTMLBars } = Ember as any; export function jsonString(params /* , hash*/) { return JSON.stringify(params[0]); diff --git a/tests/dummy/app/helpers/or.js b/tests/dummy/app/helpers/or.ts similarity index 90% rename from tests/dummy/app/helpers/or.js rename to tests/dummy/app/helpers/or.ts index f99053cf..504b3cb0 100644 --- a/tests/dummy/app/helpers/or.js +++ b/tests/dummy/app/helpers/or.ts @@ -1,7 +1,7 @@ import Helper from '@ember/component/helper'; import Ember from 'ember'; -const { HTMLBars } = Ember; +const { HTMLBars } = Ember as any; export function or([a, b] /* , hash*/) { return a || b; diff --git a/tests/dummy/app/models/fruit.js b/tests/dummy/app/models/fruit.ts similarity index 100% rename from tests/dummy/app/models/fruit.js rename to tests/dummy/app/models/fruit.ts diff --git a/tests/dummy/app/routes/index.js b/tests/dummy/app/routes/index.ts similarity index 100% rename from tests/dummy/app/routes/index.js rename to tests/dummy/app/routes/index.ts diff --git a/tests/test-helper.js b/tests/test-helper.js index 0382a848..4eae06f8 100644 --- a/tests/test-helper.js +++ b/tests/test-helper.js @@ -1,5 +1,5 @@ -import Application from '../app'; -import config from '../config/environment'; +import Application from 'dummy/app'; +import config from 'dummy/config/environment'; import { setApplication } from '@ember/test-helpers'; import { start } from 'ember-qunit'; diff --git a/tests/unit/utils/collection-action-test.js b/tests/unit/utils/collection-action-test.ts similarity index 84% rename from tests/unit/utils/collection-action-test.js rename to tests/unit/utils/collection-action-test.ts index 463446e2..60e1e257 100644 --- a/tests/unit/utils/collection-action-test.js +++ b/tests/unit/utils/collection-action-test.ts @@ -4,7 +4,7 @@ import { module, test } from 'qunit'; module('Unit | Utility | collection action', function() { // Replace this with your real tests. test('it works', function(assert) { - let result = collectionAction(); + let result = collectionAction({ path: '/bar' }); assert.ok(result); }); }); diff --git a/tests/unit/utils/member-action-test.js b/tests/unit/utils/member-action-test.ts similarity index 84% rename from tests/unit/utils/member-action-test.js rename to tests/unit/utils/member-action-test.ts index 003efce6..3cf28d56 100644 --- a/tests/unit/utils/member-action-test.js +++ b/tests/unit/utils/member-action-test.ts @@ -4,7 +4,7 @@ import { module, test } from 'qunit'; module('Unit | Utility | member action', function() { // Replace this with your real tests. test('it works', function(assert) { - let result = memberAction(); + let result = memberAction({ path: '/foo' }); assert.ok(result); }); }); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..5cb782f2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "es2017", + "allowJs": true, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "noEmitOnError": false, + "noEmit": true, + "inlineSourceMap": true, + "inlineSources": true, + "baseUrl": ".", + "module": "es6", + "paths": { + "dummy/tests/*": ["tests/*"], + "dummy/*": ["tests/dummy/app/*", "app/*"], + "ember-api-actions": ["addon"], + "ember-api-actions/*": ["addon/*"], + "ember-api-actions/test-support": ["addon-test-support"], + "ember-api-actions/test-support/*": ["addon-test-support/*"], + "*": ["types/*"] + } + }, + "include": ["app/**/*", "addon/**/*", "tests/**/*", "types/**/*", "test-support/**/*", "addon-test-support/**/*"] +} diff --git a/types/dummy/index.d.ts b/types/dummy/index.d.ts new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/types/dummy/index.d.ts @@ -0,0 +1 @@ + diff --git a/types/ember-data/types/registries/model.d.ts b/types/ember-data/types/registries/model.d.ts new file mode 100644 index 00000000..e7a68fcd --- /dev/null +++ b/types/ember-data/types/registries/model.d.ts @@ -0,0 +1,6 @@ +/** + * Catch-all for ember-data. + */ +export default interface ModelRegistry { + [key: string]: any; +} diff --git a/yarn.lock b/yarn.lock index feadf99d..9528d3b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -40,6 +40,17 @@ source-map "^0.5.0" trim-right "^1.0.1" +"@babel/generator@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" + integrity sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ== + dependencies: + "@babel/types" "^7.1.3" + jsesc "^2.5.1" + lodash "^4.17.10" + 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" @@ -90,6 +101,15 @@ "@babel/template" "^7.0.0" "@babel/types" "^7.0.0" +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -170,6 +190,16 @@ "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" +"@babel/helper-replace-supers@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" + integrity sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + "@babel/helper-simple-access@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0.tgz#ff36a27983ae4c27122da2f7f294dced80ecbd08" @@ -218,6 +248,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0.tgz#697655183394facffb063437ddf52c0277698775" integrity sha512-RgJhNdRinpO8zibnoHbzTTexNs4c8ROkXFBanNDZTLHjwbdLk8J5cJSKulx/bycWTLYmKVNCkxRtVCoJnqPk+g== +"@babel/parser@^7.1.2", "@babel/parser@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" + integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== + "@babel/plugin-proposal-async-generator-functions@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0.tgz#5d1eb6b44fd388b97f964350007ab9da090b1d70" @@ -227,6 +262,18 @@ "@babel/helper-remap-async-to-generator" "^7.0.0" "@babel/plugin-syntax-async-generators" "^7.0.0" +"@babel/plugin-proposal-class-properties@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz#9af01856b1241db60ec8838d84691aa0bd1e8df4" + integrity sha512-/PCJWN+CKt5v1xcGn4vnuu13QDoV+P7NcICP44BoonAJoPSGwVkgrXihFIQGiEjjPlUDBIw1cM7wYFLARS2/hw== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + "@babel/plugin-proposal-json-strings@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" @@ -267,6 +314,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-class-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz#e051af5d300cbfbcec4a7476e37a803489881634" + integrity sha512-cR12g0Qzn4sgkjrbrzWy2GE7m9vMl/sFkqZ3gIpAQdrvPDnLM8180i+ANDFIXfjHo9aqp0ccJlQ0QNZcFUbf9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" @@ -288,6 +342,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-typescript@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.0.0.tgz#90f4fe0a741ae9c0dcdc3017717c05a0cbbd5158" + integrity sha512-5fxmdqiAQVQTIS+KSvYeZuTt91wKtBTYi6JlIkvbQ6hmO+9fZE81ezxmMiFMIsxE7CdRSgzn7nQ1BChcvK9OpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-arrow-functions@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" @@ -494,6 +555,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-typescript@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.1.0.tgz#81e7b4be90e7317cbd04bf1163ebf06b2adee60b" + integrity sha512-TOTtVeT+fekAesiCHnPz+PSkYSdOSLyLn42DI45nxg6iCdlQY6LIj/tYqpMB0y+YicoTUiYiXqF8rG6SKfhw6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.0.0" + "@babel/plugin-transform-unicode-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" @@ -580,6 +649,15 @@ "@babel/parser" "^7.0.0" "@babel/types" "^7.0.0" +"@babel/template@^7.1.0": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" + integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.1.2" + "@babel/types" "^7.1.2" + "@babel/traverse@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0.tgz#b1fe9b6567fdf3ab542cfad6f3b31f854d799a61" @@ -595,6 +673,21 @@ globals "^11.1.0" lodash "^4.17.10" +"@babel/traverse@^7.1.0": + version "7.1.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" + integrity sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.3" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.1.3" + "@babel/types" "^7.1.3" + debug "^3.1.0" + globals "^11.1.0" + lodash "^4.17.10" + "@babel/types@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118" @@ -604,6 +697,29 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@babel/types@^7.1.2", "@babel/types@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" + integrity sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + +"@ember/optional-features@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@ember/optional-features/-/optional-features-0.7.0.tgz#f65a858007020ddfb8342f586112750c32abd2d9" + integrity sha512-qLXvL/Kq/COb43oQmCrKx7Fy8k1XJDI2RlgbCnZHH26AGVgJT/sZugx1A2AIxKdamtl/Mi+rQSjGIuscSjqjDw== + dependencies: + chalk "^2.3.0" + co "^4.6.0" + ember-cli-version-checker "^2.1.0" + glob "^7.1.2" + inquirer "^3.3.0" + mkdirp "^0.5.1" + silent-error "^1.1.0" + util.promisify "^1.0.0" + "@ember/ordered-set@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@ember/ordered-set/-/ordered-set-2.0.0.tgz#54f34aba3a1fb75b7c2912a39ab41a4a2e9d266d" @@ -612,12 +728,13 @@ ember-cli-babel "^6.16.0" ember-compatibility-helpers "^1.0.0" -"@ember/test-helpers@^0.7.18": - version "0.7.25" - resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-0.7.25.tgz#b4014c108b40ffaf74f3c4d5918800917541541d" - integrity sha1-tAFMEItA/69088TVkYgAkXVBVB0= +"@ember/test-helpers@^0.7.26": + version "0.7.27" + resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-0.7.27.tgz#c622cabd0cbb95b34efc1e1b6274ab5a14edc138" + integrity sha512-AQESk0FTFxRY6GyZ8PharR4SC7Fju0rXqNkfNYIntAjzefZ8xEqEM4iXDj5h7gAvfx/8dA69AQ9+p7ubc+KvJg== dependencies: broccoli-funnel "^2.0.1" + ember-assign-polyfill "~2.4.0" ember-cli-babel "^6.12.0" ember-cli-htmlbars-inline-precompile "^1.0.0" @@ -866,14 +983,15 @@ dependencies: "@types/estree" "*" -"@types/ember-data@^2.14.18": - version "2.14.18" - resolved "https://registry.yarnpkg.com/@types/ember-data/-/ember-data-2.14.18.tgz#885c668552fcb692f1f02fa564a16f3af925088b" - integrity sha512-VWW0h+kgZYm3sFymGsGa1C2Bb5Odj2oqTRVwnhRjLhg3u8mo3PkHbSixeuL1LhxKKSUMYP22WB0w/rrjoLSJUQ== +"@types/ember-data@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/ember-data/-/ember-data-3.1.3.tgz#b538cd36e7f8d4bc7a436beae1f1efd789881748" + integrity sha512-szt9cYQkIzxQFsSpnHQ0GqPuHxT8wUH6JmWJflL8+1asEa/aXYR+IEbAC8dqeYGms93xIqIAetHbJLnUR8kAzA== dependencies: + "@types/ember" "*" "@types/rsvp" "*" -"@types/ember-qunit@^3.0.3": +"@types/ember-qunit@^3.4.3": version "3.4.3" resolved "https://registry.yarnpkg.com/@types/ember-qunit/-/ember-qunit-3.4.3.tgz#ad8532e735c7a46af764f5cb7d852896e6d28bfd" integrity sha512-dBlWUh7XMHT3dr96P2c5U5hx8dLE4RZmtwKhUeaHycsgJyH4pCX1C462Bk308fWXFN1TWasZtkl+MhtW/mj3RA== @@ -891,7 +1009,7 @@ "@types/jquery" "*" "@types/rsvp" "*" -"@types/ember@*", "@types/ember@^3.0.19": +"@types/ember@*", "@types/ember@^3.0.25": version "3.0.25" resolved "https://registry.yarnpkg.com/@types/ember/-/ember-3.0.25.tgz#9ab6a8be3d03a72176824bb7a59583648b6b1ced" integrity sha512-+M4yzJ0v+Ly62clAoxmAxViFg+/2HiktQnzKh825/y9Ra3k7o4PFsas0Z7xERmRVleqtPikehwdi6BuEnPUVkw== @@ -917,14 +1035,14 @@ "@types/rsvp" "*" "@types/ember__application@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/ember__application/-/ember__application-3.0.4.tgz#2b92d68949c6d37eca35ceff2050101970062ef4" - integrity sha512-881dUapMvujtqClMgE3eKwl3Ln2cMXA6q/U+eNsSyPtBpX+MfhkkBHvByX4p0iezJRy+hPrGAPDob3BIA8izqA== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/ember__application/-/ember__application-3.0.5.tgz#e171c5f44f58fb5600952bfde25c1dfe3785a08e" + integrity sha512-lRZZInE7g5//UQyJ2ro/wql6AcjYeFTo69SYrL2qdgHSwGemSv/A/6u5Q73OMuKZL22nNyCLoCy/Q7TrEhM/mQ== "@types/ember__array@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/ember__array/-/ember__array-3.0.2.tgz#4f61ba9e6bb12dd4c8b0abaefd5220b4f6579f1d" - integrity sha512-BcIsLfQsAkfAZZQvlVggaL0IV95baUKcdAF0LxwRRX0IvsCjuUVm7KmW6Whvp9G+r/DoWPf3KO+s3ImUNyTtQA== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/ember__array/-/ember__array-3.0.3.tgz#87887852b16b7572441b9723994098f939f2a386" + integrity sha512-9RVCedNGxkXrCwOVvDaD5/RB4FbOzZLA5+BV5kcRkxjNcAQMx29BwM6/nipAKGppi1wmoPPkVpsHcJcbiuUgbQ== "@types/ember__component@*": version "3.0.4" @@ -939,31 +1057,31 @@ integrity sha512-jJ/4SmRfAQuLS+dxB7GdS9BU1dpqA8QzKq84d1+aZkpcDiu0pD7/Xwu5FN4pbU1kBfX2w6jdQQRlnorOpuYltQ== "@types/ember__debug@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/ember__debug/-/ember__debug-3.0.1.tgz#ee7ab2edf8619e2a26a0d6ecf509536f97b3c00e" - integrity sha512-W9OsJ/kDu/3JZwV3lp3bEJPiJ17PcfETVAbjd3dsu1kDE0PRcBPTBTEOaMa8goTn8RGB7oJBhlY7tyQ5ZaPneg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/ember__debug/-/ember__debug-3.0.3.tgz#b8c3481e2305b636dca4524331efd4112071902b" + integrity sha512-6cOPb5S9IX4tU4b8YwkxbnlF+mql/ejTgpMtuyNmFyp4irBV9fdKn6y1K6hvml7yDSJnhdw37/6Gs+nGi95eKQ== "@types/ember__engine@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/ember__engine/-/ember__engine-3.0.2.tgz#4e0bcabc71d9ae92124d5e15ce176ef8f8c45654" - integrity sha512-nSuWXvmiC7SOfUPciY7ZQ+nrbuYiMqnSdCe4WMBXyCn1Sy1kov+sC10Rf219UQMt4qnOtS4MAkNEX1ob64Bnbg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/ember__engine/-/ember__engine-3.0.3.tgz#440e656f825f73240419367ee7637ca94b4a1780" + integrity sha512-mXaUam9NbU7mOxRDBNcnW3GYpo+NVYQPSRor6ghdABOl+Lik8frX0oqgSnknauoCVW34Q75oH3xAd1cjNWEsPA== "@types/ember__error@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/ember__error/-/ember__error-3.0.1.tgz#1e915599d8d72cc4cf35473ee8a22d9cab036824" - integrity sha512-JON2moBi7Y6uf0bw1qrBalm7jxr4zQe4T2Q5flZLmPaRIrLTO5csQgffJGhwjFX0sAQgW1W2m9X8sPzgi8or1w== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/ember__error/-/ember__error-3.0.2.tgz#a30c0e51215feaaa7a32e341c5a04bd601a01d1b" + integrity sha512-U1IsKAfoqgNTAQ7rojbAmF8ynQaovfHP9Kff1lCB1A1FLq+vtQ81CzaiEHgWWAlPfbqrFtBIYD0rwehEQ1ofRg== "@types/ember__object@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/ember__object/-/ember__object-3.0.2.tgz#9a2b6b8a7f0cb7490e56c4b010b320fd04b9b1d3" - integrity sha512-Es3YtS6fzSb+wFp5iEUyT1UjppQTuwx1GydcuKTt1J7oUvJygbl7+T/lObFeJn5AapNYJFy7RBWj7BRJDaAVkg== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/ember__object/-/ember__object-3.0.5.tgz#c4957cad68fffdd0959c6ca0d3469df8878b750c" + integrity sha512-0sgaktxsu86OqRNOe9lxLhqWnGGk+gNM+iuAbi7BKc5OZQHlOtAGPgHv7hUozWCW5cVK/3hMbr3ciD/vu25xsg== dependencies: "@types/rsvp" "*" "@types/ember__polyfills@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/ember__polyfills/-/ember__polyfills-3.0.1.tgz#efe630c9449f4faf3e4d5f450036d37ec85d1cd9" - integrity sha512-+5kPby+P6PJNwLLwKOU3t1h8MsNHuSD8us6EuRnQbAy+48evT0k9Cbsni6n8QdUvcHsmBiPc25amlKEjxD13Ug== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/ember__polyfills/-/ember__polyfills-3.0.2.tgz#ccd9f510a4895abf92435c968f9e582e86a81b25" + integrity sha512-b+FT7EFsyqgRBHYLq71SJm88iLOfz/QYjdOJi72hYWXG8sBoK6GYcUzGlaQwCFgz/HFp/KH68jCDx+sHIq+kxQ== "@types/ember__routing@*": version "3.0.5" @@ -981,25 +1099,25 @@ integrity sha512-HxruUU/U3wIFk6YTX1Yl57WjosuPpawr3JJHUZktPHjFwe9uHEIoO8yc7QUeQTB9OIk3NVt05391TtOJrKON7g== "@types/ember__string@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/ember__string/-/ember__string-3.0.1.tgz#d17c4e1716bd2a6b5fbc2d787da4bf732d5611fb" - integrity sha512-U5oh5R6lNEQsGZQ2M1zzceueloSKoEI0Ji3OBETBJab+DgAGJjHO03IH3SAtx2m69pufkcEFLCHYQXoHHy9ISQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/ember__string/-/ember__string-3.0.2.tgz#2ffdf09baab6a641c94c0149a8ff3670f793788d" + integrity sha512-VN6HgEs7VJzPFmfVN2riQ4oroIh650YWsNOWFiq5uKzYD8kCtfrkpyRJjzGoTmS3mm8F3qIVw6Ev6KGXxQU8+A== dependencies: "@types/handlebars" "*" -"@types/ember__test-helpers@^0.7.0": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@types/ember__test-helpers/-/ember__test-helpers-0.7.5.tgz#219305edc96875995114952a3b7902a8fbe754a1" - integrity sha512-7E1XVzzGDXERJFxKSPAoiCs550DGEHiRtFBTPjiQ5m3gAV5Aeet0HP0/ODAccXE7PuI8wJXzrXkRgceviVfJxQ== +"@types/ember__test-helpers@^0.7.6": + version "0.7.6" + resolved "https://registry.yarnpkg.com/@types/ember__test-helpers/-/ember__test-helpers-0.7.6.tgz#f26050fc74cd8ce111ee9e01864a293d6a9ac7ac" + integrity sha512-TEIitF7M984drIuK1iKHWfU7BLvdp4qakC7Qwmz88HoJxjdMKHHYAIIVO+SPZdXBCmPjOmCs87bz2okMs9nU2Q== dependencies: "@types/ember" "*" "@types/ember__error" "*" "@types/htmlbars-inline-precompile" "*" "@types/ember__test@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/ember__test/-/ember__test-3.0.2.tgz#9f97d4cda07cb47f2b51718467b3070669566d72" - integrity sha512-f/IlBoQvu8kNnGjb1H8mDu6TTyoHNm+zfmU42dmcCA+WNIlcelUoS41P/kks0N2lZnuZ7MS+HtKDVyCQ+D9hFQ== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/ember__test/-/ember__test-3.0.3.tgz#dda4721609e9e80d62af784757b8b3b76b49a07d" + integrity sha512-pedzxJh7BZBIL4tgnWv74f3EuRqbm7sRroWFhcIRhNliFUTN0GZ9p7poAp7gnwOxpYLcXOvUjkdaeaWP6rxYMA== "@types/ember__utils@*": version "3.0.1" @@ -1027,20 +1145,37 @@ integrity sha512-J7+MkDbUl/Sb57OuniuvVr4HLlHV2ub2y31HmD9QiepLEMj0zGIv4hbyOfGHTKWCcU0r7lxcDdHdLyUjpuL21w== "@types/jquery@*": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.6.tgz#5932ead926307ca21e5b36808257f7c926b06565" - integrity sha512-403D4wN95Mtzt2EoQHARf5oe/jEPhzBOBNrunk+ydQGW8WmkQ/E8rViRAEB1qEt/vssfGfNVD6ujP4FVeegrLg== + version "3.3.22" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.22.tgz#cde55dc8f83207dffd16205b05f97ce824581735" + integrity sha512-a4JDcIhJhHYnoWCkG3xT2CZxXZeA92JeREESorg0DMQ3ZsjuKF48h7XK4l5Gl2GRa/ItGRpKMT0pyK88yRgqXQ== + dependencies: + "@types/sizzle" "*" "@types/node@^9.6.0": version "9.6.31" resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.31.tgz#4d1722987f8d808b4c194dceb8c213bd92f028e5" integrity sha512-kIVlvUBizL51ALNMPbmcZoM7quHyB7J6fLRwQe22JsMp39nrVSHdBeVVS3fnQCK1orxI3O8LScmb8cuiihkAfA== -"@types/rsvp@*": +"@types/qunit@^2.5.3": + version "2.5.3" + resolved "https://registry.yarnpkg.com/@types/qunit/-/qunit-2.5.3.tgz#e7df363b5e1d1ba034b5fdd34b560d5ec0914225" + integrity sha512-b9xNH1wBOnY+yiCT2DiAC0yi7GCF5g6whiAFA/dpd9RtL/Jn2XR7e4yyeAQwH3TUeF00zikmYqYxS0K8+EKTKQ== + +"@types/rsvp@*", "@types/rsvp@^4.0.2": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/rsvp/-/rsvp-4.0.2.tgz#bf9f72eaa6771292638a85bb8ce1db97e754b371" integrity sha512-48ZwxFD1hdBj8QMOSNGA2kYuo3+SKh8OEYh5cMi7cPRZXBF9jwVPV4yqA7EcJTNlAJL0v99pEUYetl0TsufMQA== +"@types/sizzle@*": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" + integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== + +"@xg-wang/whatwg-fetch@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@xg-wang/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#f7b222c012a238e7d6e89ed3d72a1e0edb58453d" + integrity sha512-ULtqA6L75RLzTNW68IiOja0XYv4Ebc3OGMzfia1xxSEMpD0mk/pMvkQX0vbCFyQmKc5xGp80Ms2WiSlXLh8hbA== + JSONStream@^1.0.4, JSONStream@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.4.tgz#615bb2adb0cd34c8f4c447b5f6512fa1d8f16a2e" @@ -1054,6 +1189,11 @@ abbrev@1, abbrev@~1.1.1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abortcontroller-polyfill@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.1.9.tgz#9fefe359fda2e9e0932dc85e6106453ac393b2da" + integrity sha512-omvG7zOHIs3BphdH62Kh3xy8nlftAsTyp7PDa9EmC3Jz9pa6sZFYk7UhNgu9Y4sIBhj6jF0RgeFZYvPnsP5sBw== + accepts@~1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" @@ -1077,28 +1217,11 @@ acorn-dynamic-import@^3.0.0: dependencies: acorn "^5.0.0" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= - acorn@^5.0.0, acorn@^5.5.3: version "5.7.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.2.tgz#91fa871883485d06708800318404e72bfb26dcc5" integrity sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw== -acorn@^5.2.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" - integrity sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug== - after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" @@ -1126,12 +1249,7 @@ aggregate-error@^1.0.0: clean-stack "^1.0.0" indent-string "^3.0.0" -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= - -ajv@^5.2.3, ajv@^5.3.0: +ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= @@ -1179,11 +1297,6 @@ ansi-escapes@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" integrity sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ== -ansi-regex@^0.2.0, ansi-regex@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" - integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -1194,11 +1307,6 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-styles@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" - integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= - ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1218,6 +1326,13 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-to-html@^0.6.6: + version "0.6.8" + resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.8.tgz#2a4468b45a5d2a2c1a51eb1a1175eda8acb4f07a" + integrity sha512-wXwNl185AIu1QXuNApBiYNaWx0q+Ma1tLDVgc0HbA43GFWG8p1gcWLKKIBjQqamKe3rUkEILb6QMu9G/V14mzQ== + dependencies: + entities "^1.1.1" + ansicolors@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" @@ -1241,13 +1356,6 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -aot-test-generators@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/aot-test-generators/-/aot-test-generators-0.1.0.tgz#43f0f615f97cb298d7919c1b0b4e6b7310b03cd0" - integrity sha1-Q/D2Ffl8spjXkZwbC05rcxCwPNA= - dependencies: - jsesc "^2.5.0" - aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2, aproba@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1364,7 +1472,7 @@ arraybuffer.slice@~0.0.7: resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== -arrify@^1.0.0, arrify@^1.0.1: +arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= @@ -1432,6 +1540,13 @@ async@^2.4.1: dependencies: lodash "^4.14.0" +async@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== + dependencies: + lodash "^4.17.10" + async@~0.2.9: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" @@ -1457,7 +1572,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= @@ -2256,10 +2371,10 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -broccoli-amd-funnel@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/broccoli-amd-funnel/-/broccoli-amd-funnel-1.3.0.tgz#c4426b4fce976e44295bd74f34725f53bdeb08e3" - integrity sha512-QLjCWblDW//a/5/ivDikVPRHiA+d/1K45meHZA6lAlpHC1c216rcZQYpdlo9PiOJiI4T3tKqDaaM1CDeFDCoVQ== +broccoli-amd-funnel@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/broccoli-amd-funnel/-/broccoli-amd-funnel-2.0.1.tgz#dbdbfd28841731342d538126567c25bea3f15310" + integrity sha512-VRE+0PYAN4jQfkIq3GKRj4U/4UV9rVpLan5ll6fVYV4ziVg4OEfR5GUnILEg++QtR4xSaugRxCPU5XJLDy3bNQ== dependencies: broccoli-plugin "^1.3.0" symlink-or-copy "^1.2.0" @@ -2350,24 +2465,6 @@ broccoli-clean-css@^1.1.0: inline-source-map-comment "^1.0.5" json-stable-stringify "^1.0.0" -broccoli-concat@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-3.2.2.tgz#86ffdc52606eb590ba9f6b894c5ec7a016f5b7b9" - integrity sha1-hv/cUmButZC6n2uJTF7HoBb1t7k= - dependencies: - broccoli-kitchen-sink-helpers "^0.3.1" - broccoli-plugin "^1.3.0" - broccoli-stew "^1.3.3" - ensure-posix-path "^1.0.2" - fast-sourcemap-concat "^1.0.1" - find-index "^1.1.0" - fs-extra "^1.0.0" - fs-tree-diff "^0.5.6" - lodash.merge "^4.3.0" - lodash.omit "^4.1.0" - lodash.uniq "^4.2.0" - walk-sync "^0.3.1" - broccoli-concat@^3.5.1: version "3.7.1" resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-3.7.1.tgz#22ba97420b33f5254549adc5bc41163f97bd1793" @@ -2463,7 +2560,7 @@ broccoli-funnel-reducer@^1.0.0: resolved "https://registry.yarnpkg.com/broccoli-funnel-reducer/-/broccoli-funnel-reducer-1.0.0.tgz#11365b2a785aec9b17972a36df87eef24c5cc0ea" integrity sha1-ETZbKnha7JsXlyo234fu8kxcwOo= -broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.1.0: +broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296" integrity sha1-zdw6/F/xaFqAI0iP/3TOb7WlEpY= @@ -2518,20 +2615,7 @@ broccoli-kitchen-sink-helpers@^0.3.1: glob "^5.0.10" mkdirp "^0.5.1" -broccoli-lint-eslint@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/broccoli-lint-eslint/-/broccoli-lint-eslint-4.2.1.tgz#f780dc083a7357a9746a9cfa8f76feb092777477" - integrity sha512-Jvm06UvuMPa5gEH+9/Sb+QpoIodDAYzbyIUEqxniPCdA6JJooa91hQDCTJc32RUV46JNMcLhb3Dl55BdA8v5mw== - dependencies: - aot-test-generators "^0.1.0" - broccoli-concat "^3.2.2" - broccoli-persistent-filter "^1.4.3" - eslint "^4.0.0" - json-stable-stringify "^1.0.1" - lodash.defaultsdeep "^4.6.0" - md5-hex "^2.0.0" - -broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.2.1: +broccoli-merge-trees@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5" integrity sha1-oAFRm7UGfwZYnZGvopQkRaLQ/bU= @@ -2588,7 +2672,7 @@ broccoli-module-unification-reexporter@^1.0.0: mkdirp "^0.5.1" walk-sync "^0.3.2" -broccoli-node-info@^1.1.0: +broccoli-node-info@1.1.0, broccoli-node-info@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/broccoli-node-info/-/broccoli-node-info-1.1.0.tgz#3aa2e31e07e5bdb516dd25214f7c45ba1c459412" integrity sha1-OqLjHgflvbUW3SUhT3xFuhxFlBI= @@ -2660,26 +2744,6 @@ broccoli-static-compiler@^0.1.4: broccoli-writer "^0.1.1" mkdirp "^0.3.5" -broccoli-stew@^1.3.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/broccoli-stew/-/broccoli-stew-1.5.0.tgz#d7af8c18511dce510e49d308a62e5977f461883c" - integrity sha1-16+MGFEdzlEOSdMIpi5Zd/RhiDw= - dependencies: - broccoli-debug "^0.6.1" - broccoli-funnel "^1.0.1" - broccoli-merge-trees "^1.0.0" - broccoli-persistent-filter "^1.1.6" - broccoli-plugin "^1.3.0" - chalk "^1.1.3" - debug "^2.4.0" - ensure-posix-path "^1.0.1" - fs-extra "^2.0.0" - minimatch "^3.0.2" - resolve "^1.1.6" - rsvp "^3.0.16" - symlink-or-copy "^1.1.8" - walk-sync "^0.3.0" - broccoli-stew@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/broccoli-stew/-/broccoli-stew-2.0.0.tgz#68f3d94f13b4a79aa15d582703574fb4c3215e50" @@ -2725,6 +2789,30 @@ broccoli-writer@^0.1.1, broccoli-writer@~0.1.1: quick-temp "^0.1.0" rsvp "^3.0.6" +broccoli@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/broccoli/-/broccoli-2.0.1.tgz#3611d643bf4b2666b565dc24cc5307fc80f62bf6" + integrity sha512-ipHuKVjO8jPJE3DKFHLXlj8DcsbGH8OQ1DlHaAWfuQya1qe6lgEi1+kyeKWCccaJlEtEq40EQ50Eiq2M0hxOfQ== + dependencies: + broccoli-node-info "1.1.0" + broccoli-slow-trees "^3.0.1" + broccoli-source "^1.1.0" + commander "^2.15.1" + connect "^3.6.6" + findup-sync "^2.0.0" + handlebars "^4.0.11" + heimdalljs "^0.2.5" + heimdalljs-logger "^0.1.9" + mime-types "^2.1.19" + promise.prototype.finally "^3.1.0" + resolve-path "^1.4.0" + rimraf "^2.6.2" + sane "^4.0.0" + tmp "0.0.33" + tree-sync "^1.2.2" + underscore.string "^3.2.2" + watch-detector "^0.1.0" + browserslist@^3.2.6: version "3.2.8" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" @@ -2904,23 +2992,11 @@ call-me-maybe@^1.0.1: resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= - dependencies: - callsites "^0.2.0" - callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= - camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -3011,17 +3087,6 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" - integrity sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= - dependencies: - ansi-styles "^1.1.0" - escape-string-regexp "^1.0.0" - has-ansi "^0.1.0" - strip-ansi "^0.3.0" - supports-color "^0.2.0" - chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3085,11 +3150,6 @@ cidr-regex@^2.0.8: dependencies: ip-regex "^2.1.0" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3301,6 +3361,11 @@ commander@2.8.x: dependencies: graceful-readlink ">= 1.0.0" +commander@^2.15.1: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + commander@~2.17.1: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" @@ -3364,7 +3429,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.4.7, concat-stream@^1.6.0: +concat-stream@^1.4.7: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" integrity sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc= @@ -3415,6 +3480,16 @@ configstore@^4.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" +connect@^3.6.6: + version "3.6.6" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" + integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + dependencies: + debug "2.6.9" + finalhandler "1.1.0" + parseurl "~1.3.2" + utils-merge "1.0.1" + console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -3574,7 +3649,7 @@ create-error-class@^3.0.0: dependencies: capture-stack-trace "^1.0.0" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= @@ -3635,7 +3710,7 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2.6.9, debug@^2.1.0, debug@^2.1.1, debug@^2.1.2, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.4.0, debug@^2.6.8: +debug@2.6.9, debug@^2.1.0, debug@^2.1.1, debug@^2.1.2, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3656,6 +3731,13 @@ debug@^4.0.0: dependencies: ms "^2.1.1" +debug@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== + dependencies: + ms "^2.1.1" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -3698,11 +3780,6 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -3715,6 +3792,13 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.1.tgz#41ec1dd670dc4c6dcbe7e54c9e44d784d025fe63" integrity sha512-2e0FJesseUqQj671gvZWfUyxpnFx/5n4xleamlpCD3U6Fm5dh5qzmmLNxNhtmHF06+SYVHH8QU6FACffYTnj0Q== +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -3737,19 +3821,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -3823,13 +3894,6 @@ dir-glob@^2.0.0: arrify "^1.0.1" path-type "^3.0.0" -doctrine@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.2.tgz#68f96ce8efc56cc42651f1faadb4f175273b0075" - integrity sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A== - dependencies: - esutils "^2.0.2" - dot-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" @@ -3911,6 +3975,11 @@ ember-assign-polyfill@~2.4.0: ember-cli-babel "^6.6.0" ember-cli-version-checker "^2.0.0" +ember-cli-babel-plugin-helpers@^1.0.0: + version "1.0.2" + 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@^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.17.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.17.0.tgz#1f3e8ed9f4e2338caef6bc2c3d08d3c9928d0ddd" @@ -3930,29 +3999,7 @@ 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.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.1.0.tgz#6517e247e8408f94b825bf41ea41ea32273ac299" - integrity sha512-cWjjNA9AM/54Q/CbUKQokP3f76+MxfYh4TBnGQgJ/wX3NhucKW6sgojiX2qBcltlwmK2KoxSA+6lAWuyugKfOg== - dependencies: - "@babel/core" "^7.0.0" - "@babel/plugin-transform-modules-amd" "^7.0.0" - "@babel/polyfill" "^7.0.0" - "@babel/preset-env" "^7.0.0" - amd-name-resolver "1.2.0" - babel-plugin-debug-macros "^0.2.0-beta.6" - babel-plugin-ember-modules-api-polyfill "^2.3.2" - babel-plugin-module-resolver "^3.1.1" - broccoli-babel-transpiler "^7.0.0" - broccoli-debug "^0.6.4" - broccoli-funnel "^2.0.1" - broccoli-source "^1.1.0" - clone "^2.1.2" - ember-cli-version-checker "^2.1.2" - ensure-posix-path "^1.0.2" - semver "^5.5.0" - -ember-cli-babel@^7.1.2: +ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.1.2.tgz#543c64368d6138d12656db1143c02df1f2b0ee9c" integrity sha512-VEWn1jYlP0XYUNkMG4wHSpq4IPKO04lIuSwnH0elLwV3RcwbUstRExi3slmax+SjtlgjJTPMko8QvQ/Ul1/4rg== @@ -3996,16 +4043,6 @@ ember-cli-dependency-checker@^3.0.0: resolve "^1.5.0" semver "^5.3.0" -ember-cli-eslint@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/ember-cli-eslint/-/ember-cli-eslint-4.2.3.tgz#2844d3f5e8184f19b2d7132ba99eb0b370b55598" - integrity sha512-1fqRz9QVLTT790Zr07aDFmAprZ1vVsaBGJOGQgDEFmBpogq8BeaQopaxogWFp748hol8nGC4QP5tbzhVD6KQHw== - dependencies: - broccoli-lint-eslint "^4.2.1" - ember-cli-version-checker "^2.1.0" - rsvp "^4.6.1" - walk-sync "^0.3.0" - ember-cli-get-component-path-option@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-cli-get-component-path-option/-/ember-cli-get-component-path-option-1.0.0.tgz#0d7b595559e2f9050abed804f1d8eff1b08bc771" @@ -4019,7 +4056,7 @@ ember-cli-github-pages@0.2.0: ember-cli-version-checker "^2.1.0" rsvp "^4.7.0" -ember-cli-htmlbars-inline-precompile@^1.0.0, ember-cli-htmlbars-inline-precompile@^1.0.2: +ember-cli-htmlbars-inline-precompile@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars-inline-precompile/-/ember-cli-htmlbars-inline-precompile-1.0.2.tgz#5b544f664d5d9911f08cd979c5f70d8cb0ca2add" integrity sha1-W1RPZk1dmRHwjNl5xfcNjLDKKt0= @@ -4030,7 +4067,7 @@ ember-cli-htmlbars-inline-precompile@^1.0.0, ember-cli-htmlbars-inline-precompil heimdalljs-logger "^0.1.7" silent-error "^1.1.0" -ember-cli-htmlbars-inline-precompile@^1.0.5: +ember-cli-htmlbars-inline-precompile@^1.0.3, ember-cli-htmlbars-inline-precompile@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars-inline-precompile/-/ember-cli-htmlbars-inline-precompile-1.0.5.tgz#312e050c9e3dd301c55fb399fd706296cd0b1d6a" integrity sha512-/CNEqPxroIcbY6qejrt704ZaghHLCntZKYLizFfJ2esirXoJx6fuYKBY1YyJ8GOgjfbHHKjBZuK4vFFJpkGqkQ== @@ -4051,12 +4088,13 @@ ember-cli-htmlbars@^3.0.0: json-stable-stringify "^1.0.0" strip-bom "^3.0.0" -ember-cli-inject-live-reload@^1.4.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/ember-cli-inject-live-reload/-/ember-cli-inject-live-reload-1.8.2.tgz#29f875ad921e9a1dec65d2d75018891972d240bc" - integrity sha512-1d0TEtPFDcHcp8Y9ftkY7x8WlchKlC/TevVm5StTSWPhXkCUjumh723pukUa6hP7zeWuzxsVlpCEdZwjgstPAw== +ember-cli-inject-live-reload@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ember-cli-inject-live-reload/-/ember-cli-inject-live-reload-2.0.1.tgz#1bf3a6ea1747bceddc9f62f7ca8575de6b53ddaf" + integrity sha512-vrW/3KSrku+Prqmp7ZkpCxYkabnLrTHDEvV9B1yphTP++dhiV7n7Dv9NrmyubkoF3Inm0xrbbhB5mScvvuTQSg== dependencies: clean-base-url "^1.0.0" + ember-cli-version-checker "^2.1.2" ember-cli-is-package-missing@^1.0.0: version "1.0.0" @@ -4098,23 +4136,28 @@ ember-cli-preprocess-registry@^3.1.2: process-relative-require "^1.0.0" silent-error "^1.0.0" -ember-cli-pretender@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ember-cli-pretender/-/ember-cli-pretender-1.0.1.tgz#35540babddef6f2778e91c627d190c73505103cd" - integrity sha1-NVQLq93vbyd46RxifRkMc1BRA80= +ember-cli-pretender@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ember-cli-pretender/-/ember-cli-pretender-3.0.0.tgz#dcaf772332a1e6b0fc91e4b9a7e793a1283c85ac" + integrity sha512-WpcXEiAStYFrPUfy6RElkm9EcJFjRAdD6LmMFoORG/fLjcWZya/pMSemzykZpCPMjMLHabR5ltmfvUjb4MR1ZQ== dependencies: - broccoli-funnel "^1.1.0" - broccoli-merge-trees "^1.2.1" - pretender "^1.4.2" + "@xg-wang/whatwg-fetch" "^3.0.0" + abortcontroller-polyfill "^1.1.9" + broccoli-funnel "^2.0.1" + broccoli-merge-trees "^3.0.0" + ember-cli-babel "^6.6.0" + fake-xml-http-request "^2.0.0" + pretender "^2.1.0" resolve "^1.2.0" + route-recognizer "^0.3.3" -ember-cli-qunit@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ember-cli-qunit/-/ember-cli-qunit-4.3.2.tgz#cfd89ad3b0dbc28a9c2223d532b52eeade7c602c" - integrity sha1-z9ia07DbwoqcIiPVMrUu6t58YCw= +ember-cli-qunit@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/ember-cli-qunit/-/ember-cli-qunit-4.4.0.tgz#0edd7d651001d0d7ea200b9236a4733a5b7420f1" + integrity sha512-+gkx380AV4WXYjQeIuQi675STL9K12fHFtxs8B9u3EFbw45vJKrnYR4Vph3FujxhE/1pr/Je8kZEPAuezZAVLw== dependencies: ember-cli-babel "^6.11.0" - ember-qunit "^3.3.2" + ember-qunit "^3.5.0" ember-cli-shims@^1.1.0: version "1.2.0" @@ -4146,6 +4189,45 @@ ember-cli-test-loader@^2.2.0: dependencies: ember-cli-babel "^6.8.1" +ember-cli-typescript-blueprints@^2.0.0-beta.1: + version "2.0.0-beta.1" + resolved "https://registry.yarnpkg.com/ember-cli-typescript-blueprints/-/ember-cli-typescript-blueprints-2.0.0-beta.1.tgz#2db2e34ad01b5a50a4459c2f7cfc8f132b21fcea" + integrity sha512-tU1hN9Wj/nzWrSArogr/n9j8kfsv+2wueRuaIr7X+h4klb/Vb92bVkyW1xx8SW9hsWkv8n7ct8PzMmW033ws8g== + dependencies: + chalk "^2.4.1" + ember-cli-babel "^6.6.0" + ember-cli-get-component-path-option "^1.0.0" + ember-cli-is-package-missing "^1.0.0" + ember-cli-normalize-entity-name "^1.0.0" + ember-cli-path-utils "^1.0.0" + ember-cli-string-utils "^1.1.0" + ember-cli-test-info "^1.0.0" + ember-cli-valid-component-name "^1.0.0" + ember-cli-version-checker "^2.1.2" + ember-router-generator "^1.2.3" + exists-sync "^0.1.0" + fs-extra "^7.0.0" + inflection "^1.12.0" + silent-error "^1.1.0" + +ember-cli-typescript@2.0.0-beta.2: + version "2.0.0-beta.2" + resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-2.0.0-beta.2.tgz#29bd0a7eff45b54e01d2cbc2fba05b3991a9c0d3" + integrity sha512-Wxopeo/ShTO7P9ja+CYwXM6+tww2kSMJFHCEFemWjB+tFR0318Pqa7EEYJ/lHAkIjE214B13A/qsWwhIGf3zxw== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.1.0" + "@babel/plugin-transform-typescript" "^7.1.0" + ansi-to-html "^0.6.6" + debug "^3.1.0" + ember-cli-babel-plugin-helpers "^1.0.0" + execa "^0.9.0" + fs-extra "^5.0.0" + resolve "^1.5.0" + rsvp "^4.8.1" + semver "^5.5.1" + stagehand "^1.0.0" + walk-sync "^0.3.2" + ember-cli-uglify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ember-cli-uglify/-/ember-cli-uglify-2.1.0.tgz#4a0641fe4768d7ab7d4807aca9924cc77c544184" @@ -4177,16 +4259,17 @@ ember-cli-version-checker@^2.1.1, ember-cli-version-checker@^2.1.2: resolve "^1.3.3" semver "^5.3.0" -ember-cli@^3.3.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.4.3.tgz#33560c6416612bd8dc56858cffb2c81897ec8822" - integrity sha512-PpVpNIWeHFO9nqnqMb5poSZS1b/dFvsAKBUV15wGDnpY50j4LvMAGpbHsijXyWdEb7+CMZDeIMgte4IuJ2tePw== +ember-cli@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.5.0.tgz#978031042611008dce82c79226b8b677d325072c" + integrity sha512-AW5eb1SG7szuSnai3CIPL9fE7eyPQS2oycyDZAGLs+An57ytK9lm1NFQWqXm3nGnvdSh1AIsoCwc683tISUozQ== dependencies: amd-name-resolver "^1.2.0" babel-plugin-transform-es2015-modules-amd "^6.24.1" bower-config "^1.3.0" bower-endpoint-parser "0.2.2" - broccoli-amd-funnel "^1.3.0" + broccoli "^2.0.0" + broccoli-amd-funnel "^2.0.1" broccoli-babel-transpiler "^6.5.0" broccoli-builder "^0.18.14" broccoli-concat "^3.5.1" @@ -4225,6 +4308,7 @@ ember-cli@^3.3.0: filesize "^3.6.1" find-up "^3.0.0" find-yarn-workspace-root "^1.1.0" + fixturify "^0.3.4" fixturify-project "^1.5.3" fs-extra "^7.0.0" fs-tree-diff "^0.5.7" @@ -4255,7 +4339,7 @@ ember-cli@^3.3.0: quick-temp "^0.1.8" resolve "^1.8.1" rsvp "^4.8.3" - sane "^3.0.0" + sane "^4.0.0" semver "^5.5.0" silent-error "^1.1.0" sort-package-json "^1.15.0" @@ -4270,7 +4354,7 @@ ember-cli@^3.3.0: watch-detector "^0.1.0" yam "^0.0.24" -ember-code-snippet@^2.0.0: +ember-code-snippet@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/ember-code-snippet/-/ember-code-snippet-2.3.1.tgz#dd4b05d6fe9595c6cab532b70d70f9a442962046" integrity sha512-vx6Oia5+fEw4kh0Jl6H3RPIJ9PFfAIHEjVza6FfEwZNdWlsXQbu+jff7KGBTw5oqEeXpXPd9L8Jbk0TgZw5f6w== @@ -4292,9 +4376,9 @@ ember-compatibility-helpers@^1.0.0: semver "^5.4.1" ember-data@~3.4.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.4.2.tgz#675cc4f1be8df1f5c0bfe4191afa6986377721c0" - integrity sha512-YYvNDNJ0ySiLED7xUxsR3TdRycCKQ7Avy5QIFc7PajDUODppZBqye1XCfJFDSZQ0sjs5w19mKntOVwsVdQGXIw== + version "3.4.4" + resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.4.4.tgz#a201c2db1d7ca2cbe59a23ddf3cb96281fce216f" + integrity sha512-5DE1CxR1Eobue0y2WCkGSRUaOuE8ebktNElhcyPUcrksbnILxniPsKPVRq15X+5wLjaEb+XiscH68NLBGbjUvQ== dependencies: "@ember/ordered-set" "^2.0.0" babel-plugin-feature-flags "^0.3.1" @@ -4323,7 +4407,7 @@ ember-data@~3.4.0: semver "^5.5.0" silent-error "^1.1.0" -ember-disable-prototype-extensions@^1.1.2: +ember-disable-prototype-extensions@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/ember-disable-prototype-extensions/-/ember-disable-prototype-extensions-1.1.3.tgz#1969135217654b5e278f9fe2d9d4e49b5720329e" integrity sha1-GWkTUhdlS14nj5/i2dTkm1cgMp4= @@ -4342,12 +4426,12 @@ ember-inflector@^3.0.0: dependencies: ember-cli-babel "^6.6.0" -ember-load-initializers@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-1.1.0.tgz#4edacc0f3a14d9f53d241ac3e5561804c8377978" - integrity sha512-WiciFi8IXOqjyJ65M4iBNIthqcy4uXXQq5n3WxeMMhvJVk5JNSd9hynNECNz3nqfEYuZQ9c04UWkmFIQXRfl4Q== +ember-load-initializers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-2.0.0.tgz#d4b3108dd14edb0f9dc3735553cc96dadd8a80cb" + integrity sha512-GQ0x7jGcPovmIFsLQO0dFERHCjkFNAWeuVErXHR466oPHvi479in/WtSJK707pmr3GA5QXXRJy6U8fAdJeJcxA== dependencies: - ember-cli-babel "^6.6.0" + ember-cli-babel "^7.0.0" ember-maybe-import-regenerator@^0.1.6: version "0.1.6" @@ -4359,18 +4443,18 @@ ember-maybe-import-regenerator@^0.1.6: ember-cli-babel "^6.0.0-beta.4" regenerator-runtime "^0.9.5" -ember-qunit@^3.3.2: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-3.4.1.tgz#204a2d39a5d44d494c56bf17cf3fd12f06210359" - integrity sha512-WuWan6duE/HfygQHrgU77okTnt7B3lWcGn+N7NkBXR86pk2s+qxbX9p98uqSc0ISNt2Vg6Opz++RZn+fomHkBw== +ember-qunit@^3.5.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-3.5.3.tgz#bfd0bff8298c78c77e870cca43fe0826e78a0d09" + integrity sha512-FmXsI1bGsZ5th25x4KEle2fLCVURTptsQODfBt+Pg8tk9rX7y79cqny91PrhtkhE+giZ8p029tnq94SdpJ4ojg== dependencies: - "@ember/test-helpers" "^0.7.18" + "@ember/test-helpers" "^0.7.26" broccoli-funnel "^2.0.1" broccoli-merge-trees "^2.0.0" common-tags "^1.4.0" ember-cli-babel "^6.8.2" ember-cli-test-loader "^2.2.0" - qunit "^2.5.0" + qunit "~2.6.0" ember-resolver@^5.0.1: version "5.0.1" @@ -4390,11 +4474,6 @@ ember-rfc176-data@^0.3.0, ember-rfc176-data@^0.3.1: resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.1.tgz#6a5a4b8b82ec3af34f3010965fa96b936ca94519" integrity sha512-u+W5rUvYO7xyKJjiPuCM7bIAvFyPwPTJ66fOZz1xuCv3AyReI9Oev5oOADOO6YJZk+vEn0xWiZ9N6zSf8WU7Fg== -ember-rfc176-data@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.3.tgz#27fba08d540a7463a4366c48eaa19c5a44971a39" - integrity sha1-J/ugjVQKdGOkNmxI6qGcWkSXGjk= - ember-rfc176-data@^0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.5.tgz#f630e550572c81a5e5c7220f864c0f06eee9e977" @@ -4446,10 +4525,10 @@ ember-try-config@^3.0.0: rsvp "^4.8.1" semver "^5.5.0" -ember-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ember-try/-/ember-try-1.0.0.tgz#08c5fe1d045497698ea1496c44add27c7ba5f11c" - integrity sha512-TIcK9qKSYmwG096C3Fqmgy9OnrblLCzf0irBCVPrkKyetREAsWCVHAGqB6Xj53uC07MH++ZgTKeUZqVGhnTHkQ== +ember-try@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ember-try/-/ember-try-1.1.0.tgz#194d5843a79b5a9fc0e4c07445ebc18c08a91e78" + integrity sha512-NL1rKPz2LuyVEqwoNV+SQD4c2w1/A0rrdeT6jqTYqlt/P7y3+SWcsxyReBnImebaIu7Drtz6p9yiAsrJq5Chyg== dependencies: chalk "^2.3.0" cli-table3 "^0.5.1" @@ -4463,6 +4542,7 @@ ember-try@^1.0.0: resolve "^1.1.6" rimraf "^2.3.2" rsvp "^4.7.0" + walk-sync "^0.3.3" emit-function@0.0.2: version "0.0.2" @@ -4538,6 +4618,11 @@ ensure-posix-path@^1.0.0, ensure-posix-path@^1.0.1, ensure-posix-path@^1.0.2: resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz#a65b3e42d0b71cfc585eb774f9943c8d9b91b0c2" integrity sha1-pls+QtC3HPxYXrd0+ZQ8jZuRsMI= +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -4585,6 +4670,26 @@ error@^7.0.0: string-template "~0.2.1" xtend "~4.0.0" +es-abstract@^1.5.1, es-abstract@^1.9.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es6-promise@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-1.0.0.tgz#f90d3629faa7c26166ae4df77c89bacdeb8dca7f" @@ -4597,117 +4702,20 @@ es6-promise@^4.0.3: es6-promisify@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -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.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-plugin-ember@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-ember/-/eslint-plugin-ember-5.2.0.tgz#fa436e0497dfc01d1d38608229cd616e7c5b6067" - integrity sha1-+kNuBJffwB0dOGCCKc1hbnxbYGc= - dependencies: - ember-rfc176-data "^0.3.3" - snake-case "^2.1.0" - -eslint-plugin-es@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz#5acb2565db4434803d1d46a9b4cbc94b345bd028" - integrity sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w== - dependencies: - eslint-utils "^1.3.0" - regexpp "^2.0.0" - -eslint-plugin-node@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" - integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== - dependencies: - eslint-plugin-es "^1.3.1" - eslint-utils "^1.3.1" - ignore "^4.0.2" - minimatch "^3.0.4" - resolve "^1.8.1" - semver "^5.5.0" - -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.0, eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" - integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== - -eslint@^4.0.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.14.0.tgz#96609768d1dd23304faba2d94b7fefe5a5447a82" - integrity sha512-Ul6CSGRjKscEyg0X/EeNs7o2XdnbTEOD1OM8cTjmx85RPcBJQrEhZLevhuJZNAE/vS2iVl5Uhgiqf3h5uLMCJQ== - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.0.2" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "^4.0.1" - text-table "~0.2.0" - -espree@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca" - integrity sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ== + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= dependencies: - acorn "^5.2.1" - acorn-jsx "^3.0.0" + es6-promise "^4.0.3" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= esprima@^4.0.0: version "4.0.0" @@ -4729,26 +4737,6 @@ esprima@~4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" - integrity sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo= - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" - integrity sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM= - dependencies: - estraverse "^4.1.0" - object-assign "^4.0.1" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= - estree-walker@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" @@ -4821,6 +4809,19 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" + integrity sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -4844,6 +4845,11 @@ exists-sync@0.0.4: resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879" integrity sha1-l0TCxCjMA7AQYNtFTUsS8O88iHk= +exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.1.0.tgz#318d545213d2b2a31499e92c35f74c94196a22f7" + integrity sha512-qEfFekfBVid4b14FNug/RNY1nv+BADnlzKGHulc+t6ZLqGY4kdHGh1iFha8lnE3sJU/1WzMzKRNxS6EvSakJUg== + exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" @@ -5034,10 +5040,10 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fake-xml-http-request@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-1.6.0.tgz#bd0ac79ae3e2660098282048a12c730a6f64d550" - integrity sha512-99XPwwSg89BfzPuv4XCpZxn3EbauMCgAQCxq9MzrvS6DFD73OON6AnUTicL4A0HZtYMBwCZBWVnRqGjZDgQkTg== +fake-xml-http-request@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-2.0.0.tgz#41a92f0ca539477700cb1dafd2df251d55dac8ff" + integrity sha512-UjNnynb6eLAB0lyh2PlTEkjRJORnNsVF1hbzU+PQv89/cyBV9GDRCy7JAcLQgeCLYT+3kaumWWZKEJvbaK74eQ== fast-deep-equal@^1.0.0: version "1.0.0" @@ -5061,11 +5067,6 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - fast-ordered-set@^1.0.0, fast-ordered-set@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz#3fbb36634f7be79e4f7edbdb4a357dee25d184eb" @@ -5073,21 +5074,6 @@ fast-ordered-set@^1.0.0, fast-ordered-set@^1.0.2: dependencies: blank-object "^1.0.1" -fast-sourcemap-concat@^1.0.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/fast-sourcemap-concat/-/fast-sourcemap-concat-1.2.3.tgz#22f14e92d739e37920334376ec8433bf675eaa04" - integrity sha1-IvFOktc543kgM0N27IQzv2deqgQ= - dependencies: - chalk "^0.5.1" - fs-extra "^0.30.0" - heimdalljs-logger "^0.1.7" - memory-streams "^0.1.0" - mkdirp "^0.5.0" - rsvp "^3.0.14" - source-map "^0.4.2" - source-map-url "^0.3.0" - sourcemap-validator "^1.0.5" - fast-sourcemap-concat@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/fast-sourcemap-concat/-/fast-sourcemap-concat-1.4.0.tgz#122c330d4a2afaff16ad143bc9674b87cd76c8ad" @@ -5128,14 +5114,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -5258,7 +5236,7 @@ find-yarn-workspace-root@^1.1.0: fs-extra "^4.0.3" micromatch "^3.1.4" -findup-sync@2.0.0: +findup-sync@2.0.0, findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= @@ -5295,16 +5273,6 @@ fixturify@^0.3.4: fs-extra "^0.30.0" matcher-collection "^1.0.4" -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - integrity sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE= - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - flush-write-stream@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" @@ -5400,23 +5368,6 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" - integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - -fs-extra@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" - integrity sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - fs-extra@^4.0.2, fs-extra@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -5533,10 +5484,10 @@ fstream@^1.0.0, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== gauge@~2.7.3: version "2.7.4" @@ -5762,11 +5713,6 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^11.0.1: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4" - integrity sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ== - globals@^11.1.0: version "11.7.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" @@ -5777,18 +5723,6 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - globby@^8.0.0, globby@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" @@ -5873,6 +5807,17 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= +handlebars@^4.0.11: + version "4.0.12" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5" + integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA== + dependencies: + async "^2.5.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + handlebars@^4.0.2, handlebars@^4.0.4: version "4.0.11" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" @@ -5897,13 +5842,6 @@ har-validator@~5.1.0: ajv "^5.3.0" har-schema "^2.0.0" -has-ansi@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" - integrity sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= - dependencies: - ansi-regex "^0.2.0" - has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -5938,6 +5876,11 @@ has-symbol-support-x@^1.4.1: resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + has-to-string-tag-x@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" @@ -5981,6 +5924,13 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + hash-for-dep@^1.0.2, hash-for-dep@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/hash-for-dep/-/hash-for-dep-1.2.3.tgz#5ec69fca32c23523972d52acb5bb65ffc3664cab" @@ -6179,21 +6129,11 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.3: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" - integrity sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA== - ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^4.0.2: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" @@ -6296,7 +6236,7 @@ inquirer@^2: strip-ansi "^3.0.0" through "^2.3.6" -inquirer@^3.0.6: +inquirer@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== @@ -6395,6 +6335,11 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-callable@^1.1.3, is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + is-ci@^1.0.10: version "1.2.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.0.tgz#3f4a08d6303a09882cef3f0fb97439c5f5ce2d53" @@ -6423,6 +6368,11 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -6562,18 +6512,6 @@ is-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - integrity sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw= - dependencies: - is-path-inside "^1.0.0" - is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" @@ -6620,10 +6558,12 @@ is-reference@^1.1.0: dependencies: "@types/estree" "0.0.38" -is-resolvable@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.1.tgz#acca1cd36dbe44b974b924321555a70ba03b1cf4" - integrity sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g== +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: version "1.1.0" @@ -6640,6 +6580,13 @@ is-subset@^0.1.1: resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + is-text-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" @@ -6779,7 +6726,7 @@ js-yaml@^3.12.0, js-yaml@^3.9.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.2.5, js-yaml@^3.2.7, js-yaml@^3.9.1: +js-yaml@^3.2.5, js-yaml@^3.2.7: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" integrity sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA== @@ -6797,7 +6744,7 @@ jsesc@^1.3.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= -jsesc@^2.5.0, jsesc@^2.5.1: +jsesc@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" integrity sha1-5CGiqOINawgZ3yiQj3glJrlt0f4= @@ -6832,11 +6779,6 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" @@ -6849,11 +6791,23 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json-typescript@^1.0.0, json-typescript@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-typescript/-/json-typescript-1.0.1.tgz#9d71a17627a20a61dbbf504e33561030f4eefd7f" + integrity sha512-+PBRanpdVZ/MV8jJ044EuJ1muG3Ic/jLAZYgDE0WPqBbU46D3w3e+yL4ZbxwTfGbR9ff6JZlAGeGxSmumbQl0A== + json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= +jsonapi-typescript@^0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/jsonapi-typescript/-/jsonapi-typescript-0.0.9.tgz#3a1f78233e36935fcb19db80d2755a7f6454a4ad" + integrity sha512-0hHNu82g0f/Of1OMkcIAUs3Z8O+178DNbPt5vNOqKDuPk9cRIuH3Q2VhEdwu5vR+jY+LcP0a7k+ilfJ+101iSQ== + dependencies: + json-typescript "^1.0.0" + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -6966,14 +6920,6 @@ leek@0.0.24: lodash.assign "^3.2.0" rsvp "^3.0.21" -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - libcipm@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-2.0.2.tgz#4f38c2b37acf2ec156936cef1cbf74636568fc7b" @@ -7056,7 +7002,7 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader.js@^4.2.3: +loader.js@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/loader.js/-/loader.js-4.7.0.tgz#a1a52902001c83631efde9688b8ab3799325ef1f" integrity sha512-9M2KvGT6duzGMgkOcTkWb+PR/Q2Oe54df/tLgHGVmFpAmtqJ553xJh6N63iFYI2yjo2PeJXbS5skHi/QpJq4vA== @@ -7434,16 +7380,16 @@ lodash.keys@~2.3.0: lodash._shimkeys "~2.3.0" lodash.isobject "~2.3.0" -lodash.merge@^4.3.0, lodash.merge@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" - integrity sha1-aYhLoUSsM/5plzemCG3v+t0PicU= - lodash.merge@^4.3.1: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ== +lodash.merge@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" + integrity sha1-aYhLoUSsM/5plzemCG3v+t0PicU= + lodash.noop@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-2.3.0.tgz#3059d628d51bbf937cd2a0b6fc3a7f212a669c2c" @@ -7571,11 +7517,6 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - lowercase-keys@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" @@ -7740,18 +7681,6 @@ matcher-collection@^1.0.0, matcher-collection@^1.0.4, matcher-collection@^1.0.5: dependencies: minimatch "^3.0.2" -md5-hex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" - integrity sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM= - dependencies: - md5-o-matic "^0.1.1" - -md5-o-matic@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" - integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M= - mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -7774,13 +7703,6 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" -memory-streams@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/memory-streams/-/memory-streams-0.1.2.tgz#273ff777ab60fec599b116355255282cca2c50c2" - integrity sha1-Jz/3d6tg/sWZsRY1UlUoLMosUMI= - dependencies: - readable-stream "~1.0.2" - memory-streams@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/memory-streams/-/memory-streams-0.1.3.tgz#d9b0017b4b87f1d92f55f2745c9caacb1dc93ceb" @@ -7907,6 +7829,11 @@ mime-db@~1.30.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" integrity sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE= +mime-db@~1.37.0: + version "1.37.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" + integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== + mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16: version "2.1.17" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" @@ -7921,6 +7848,13 @@ mime-types@^2.1.18, mime-types@~2.1.18, mime-types@~2.1.19: dependencies: mime-db "~1.36.0" +mime-types@^2.1.19: + version "2.1.21" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" + integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== + dependencies: + mime-db "~1.37.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" @@ -8123,11 +8057,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - needle@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" @@ -8152,13 +8081,6 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - node-emoji@^1.4.1: version "1.8.1" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826" @@ -8594,6 +8516,11 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-keys@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -8601,6 +8528,14 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -8660,18 +8595,6 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - ora@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ora/-/ora-2.1.0.tgz#6caf2830eb924941861ec53a173799e008b51e5b" @@ -8957,7 +8880,7 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@1.0.1, path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -9059,11 +8982,6 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== - portfinder@^1.0.15: version "1.0.17" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.17.tgz#a8a1691143e46c4735edefcf4fbcccedad26456a" @@ -9078,11 +8996,6 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" @@ -9098,12 +9011,13 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -pretender@^1.4.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/pretender/-/pretender-1.6.1.tgz#77d1e42ac8c6b298f5cd43534a87645df035db8c" - integrity sha1-d9HkKsjGspj1zUNTSodkXfA124w= +pretender@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretender/-/pretender-2.1.1.tgz#5085f0a1272c31d5b57c488386f69e6ca207cb35" + integrity sha512-IkidsJzaroAanw3I43tKCFm2xCpurkQr9aPXv5/jpN+LfCwDaeI8rngVWtQZTx4qqbhc5zJspnLHJ4N/25KvDQ== dependencies: - fake-xml-http-request "^1.6.0" + "@xg-wang/whatwg-fetch" "^3.0.0" + fake-xml-http-request "^2.0.0" route-recognizer "^0.3.3" prettier@^1.13.7: @@ -9145,11 +9059,6 @@ process-relative-require@^1.0.0: dependencies: node-modules-path "^1.0.0" -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8= - promise-inflight@^1.0.1, promise-inflight@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -9170,6 +9079,15 @@ promise-retry@^1.1.1: err-code "^1.0.0" retry "^0.10.0" +promise.prototype.finally@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz#66f161b1643636e50e7cf201dc1b84a857f3864e" + integrity sha512-7p/K2f6dI+dM8yjRQEGrTQs5hTQixUAdOGpMEA3+pVxpX5oHKRSKAXyLw9Q9HUWDTdwtoo39dSHGQtN90HcEwQ== + dependencies: + define-properties "^1.1.2" + es-abstract "^1.9.0" + function-bind "^1.1.1" + promzard@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" @@ -9309,7 +9227,7 @@ qunit-dom@^0.8.0: broccoli-funnel "^2.0.0" broccoli-merge-trees "^3.0.1" -qunit@^2.5.0: +qunit@~2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.6.2.tgz#551210c5cf857258a4fe39a7fe15d9e14dfef22c" integrity sha512-PHbKulmd4rrDhFto7iHicIstDTX7oMRvAcI7loHstvU8J7AOGwzcchONmy+EG4KU8HDk0K90o7vO0GhlYyKlOg== @@ -9629,11 +9547,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" - integrity sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA== - regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" @@ -9765,14 +9678,6 @@ require-relative@^0.8.7: resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - requires-port@1.x.x, requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -9791,11 +9696,6 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -9806,6 +9706,14 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-path@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -9912,12 +9820,12 @@ route-recognizer@^0.3.3: resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.3.tgz#1d365e27fa6995e091675f7dc940a8c00353bd29" integrity sha1-HTZeJ/ppleCRZ199yUCowANTvSk= -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.3.3: +rsvp@^3.0.14, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0.6, rsvp@^3.3.3: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== -rsvp@^4.6.1, rsvp@^4.7.0: +rsvp@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.7.0.tgz#dc1b0b1a536f7dec9d2be45e0a12ad4197c9fd96" integrity sha1-3BsLGlNvfeydK+ReChKtQZfJ/ZY= @@ -10011,23 +9919,6 @@ sane@^2.5.2: optionalDependencies: fsevents "^1.2.3" -sane@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-3.1.0.tgz#995193b7dc1445ef1fe41ddfca2faf9f111854c6" - integrity sha512-G5GClRRxT1cELXfdAq7UKtUsv8q/ZC5k8lQGmjEm4HcAl3HzBy68iglyNCmw4+0tiXPCBZntslHlRhbnsSws+Q== - dependencies: - anymatch "^2.0.0" - capture-exit "^1.2.0" - exec-sh "^0.2.0" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - watch "~0.18.0" - optionalDependencies: - fsevents "^1.2.3" - sane@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/sane/-/sane-4.0.1.tgz#af1e10466e924e1b888c104bb9925a0f1beb46dd" @@ -10102,7 +9993,7 @@ semver-regex@^1.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== -semver@^5.0.1: +semver@^5.0.1, semver@^5.5.1: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== @@ -10256,13 +10147,6 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== - dependencies: - is-fullwidth-code-point "^2.0.0" - slide@^1.1.3, slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -10278,13 +10162,6 @@ smart-buffer@^4.0.1: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3" integrity sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg== -snake-case@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" - integrity sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8= - dependencies: - no-case "^2.2.0" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -10474,7 +10351,7 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -10491,16 +10368,6 @@ sourcemap-codec@^1.4.1: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz#c8fd92d91889e902a07aee392bdd2c5863958ba2" integrity sha512-hX1eNBNuilj8yfFnECh0DzLgwKpBLMIvmhgEhixXNui8lMLBInTI8Kyxt++RwJnMNu7cAUo635L2+N1TxMJCzA== -sourcemap-validator@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/sourcemap-validator/-/sourcemap-validator-1.0.6.tgz#abd2f1ecdae6a3c46c2c96c5f256705b2147c9c0" - integrity sha1-q9Lx7Nrmo8RsLJbF8lZwWyFHycA= - dependencies: - jsesc "~0.3.x" - lodash.foreach "~2.3.x" - lodash.template "~2.3.x" - source-map "~0.1.x" - sourcemap-validator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/sourcemap-validator/-/sourcemap-validator-1.1.0.tgz#00454547d1682186e1498a7208e022e8dfa8738f" @@ -10639,6 +10506,13 @@ ssri@^6.0.0: dependencies: figgy-pudding "^3.5.1" +stagehand@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stagehand/-/stagehand-1.0.0.tgz#79515e2ad3a02c63f8720c7df9b6077ae14276d9" + integrity sha512-zrXl0QixAtSHFyN1iv04xOBgplbT4HgC8T7g+q8ESZbDNi5uZbMtxLukFVXPJ5Nl7zCYvYcrT3Mj24WYCH93hw== + dependencies: + debug "^4.1.0" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -10742,13 +10616,6 @@ stringify-package@^1.0.0: resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz#e02828089333d7d45cd8c287c30aa9a13375081b" integrity sha512-JIQqiWmLiEozOC0b0BtxZ/AOUtdUZHCBPgqIZ2kSJJqGwgb9neo44XdTHUC4HZSGqi03hOeB7W/E8rAlKnGe9g== -strip-ansi@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" - integrity sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= - dependencies: - ansi-regex "^0.2.1" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -10809,11 +10676,6 @@ sum-up@^1.0.1: dependencies: chalk "^1.0.0" -supports-color@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" - integrity sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= - supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -10848,18 +10710,6 @@ symlink-or-copy@^1.2.0: resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.2.0.tgz#5d49108e2ab824a34069b68974486c290020b393" integrity sha512-W31+GLiBmU/ZR02Ii0mVZICuNEN9daZ63xZMPDsYgPgNjMtg+atqLEGI7PPI936jYSQZxoLb/63xos8Adrx4Eg== -table@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - tap-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-7.0.0.tgz#54db35302fda2c2ccc21954ad3be22b2cba42721" @@ -11015,6 +10865,13 @@ tmp@0.0.28: dependencies: os-tmpdir "~1.0.1" +tmp@0.0.33, tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + tmp@^0.0.29: version "0.0.29" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" @@ -11022,13 +10879,6 @@ tmp@^0.0.29: dependencies: os-tmpdir "~1.0.1" -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -11158,13 +11008,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - type-is@~1.6.15: version "1.6.15" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" @@ -11186,6 +11029,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.5.tgz#93d8b6864375325a91177372cb370ae0ae3a0703" + integrity sha512-muYNWV9j5+3mXoKD6oPONKuGUmYiFX14gfo9lWm9ZXRHOqVDQiB4q1CzFPbF4QLV2E9TZXH6oK55oQ94rn3PpA== + uc.micro@^1.0.1, uc.micro@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" @@ -11206,6 +11054,14 @@ uglify-js@^2.6: optionalDependencies: uglify-to-browserify "~1.0.0" +uglify-js@^3.1.4: + version "3.4.9" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" + integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q== + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" @@ -11226,6 +11082,14 @@ umask@^1.1.0, umask@~1.1.0: resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= +underscore.string@^3.2.2: + version "3.3.5" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.5.tgz#fc2ad255b8bd309e239cbc5816fd23a9b7ea4023" + integrity sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg== + dependencies: + sprintf-js "^1.0.3" + util-deprecate "^1.0.2" + underscore.string@~3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.4.tgz#2c2a3f9f83e64762fdc45e6ceac65142864213db" @@ -11416,6 +11280,14 @@ util-extend@^1.0.1: resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8= +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -11479,6 +11351,14 @@ walk-sync@^0.2.7: ensure-posix-path "^1.0.0" matcher-collection "^1.0.0" +walk-sync@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.3.tgz#1e9f12cd4fe6e0e6d4a0715b5cc7e30711d43cd1" + integrity sha512-jQgTHmCazUngGqvHZFlr30u2VLKEKErBMLFe+fBl5mn4rh9aI/QVRog8PT1hv2vaOu4EBwigfmpRTyZrbnpRVA== + dependencies: + ensure-posix-path "^1.0.0" + matcher-collection "^1.0.0" + walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -11580,11 +11460,6 @@ wordwrap@~0.0.2: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - worker-farm@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" @@ -11621,13 +11496,6 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.3.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= - dependencies: - mkdirp "^0.5.1" - ws@~3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" From 8a8df37f55752e1514137733b7bc8e72e3de9b25 Mon Sep 17 00:00:00 2001 From: Mike North Date: Thu, 1 Nov 2018 11:19:43 -0700 Subject: [PATCH 2/4] fix: more type safety --- addon/index.ts | 2 +- addon/utils/build-url.ts | 47 ++++++----- addon/utils/collection-action.ts | 36 ++++++--- addon/utils/member-action.ts | 32 +++++--- addon/utils/serialize-and-push.ts | 46 ++++++++--- addon/utils/types.ts | 53 ++++++++++++ package.json | 2 + tests/acceptance/index-test.ts | 36 ++++----- tests/dummy/app/controllers/index.ts | 16 ++-- tests/dummy/app/models/fruit.ts | 13 ++- tests/dummy/app/routes/index.ts | 14 ++-- tests/unit/utils/collection-action-test.ts | 6 +- tests/unit/utils/member-action-test.ts | 6 +- tsconfig.json | 6 ++ tslint.json | 10 +++ yarn.lock | 94 ++++++++++++++++++++-- 16 files changed, 315 insertions(+), 104 deletions(-) create mode 100644 addon/utils/types.ts create mode 100644 tslint.json diff --git a/addon/index.ts b/addon/index.ts index 27db2ba2..9441a81b 100644 --- a/addon/index.ts +++ b/addon/index.ts @@ -1,5 +1,5 @@ -import memberAction from './utils/member-action'; import collectionAction from './utils/collection-action'; +import memberAction from './utils/member-action'; import serializeAndPush from './utils/serialize-and-push'; export const classOp = collectionAction; diff --git a/addon/utils/build-url.ts b/addon/utils/build-url.ts index 1559de87..d84474e0 100644 --- a/addon/utils/build-url.ts +++ b/addon/utils/build-url.ts @@ -1,23 +1,21 @@ -/* eslint-disable no-unused-vars */ -import Model from 'ember-data/model'; -import Store from 'ember-data/store'; import { getOwner } from '@ember/application'; -import EngineInstance from '@ember/engine/instance'; +import DS from 'ember-data'; +import Model from 'ember-data/model'; +import { EmberDataRequestType } from './types'; + /** * Given a record, obtain the ember-data model class - * @param {Model} record - * @return {typeof Model} + * @param record */ -export function _getModelClass(record) { - return /** @type {typeof Model} */ (record.constructor); +export function _getModelClass(record: InstanceType): M { + return record.constructor as M; } /** * Given an ember-data model class, obtain its name - * @param {typeof Model} clazz - * @returns {string} + * @param clazz */ -export function _getModelName(clazz) { +export function _getModelName(clazz: typeof Model): string { return ( // prettier-ignore clazz.modelName // modern use @@ -28,29 +26,36 @@ export function _getModelName(clazz) { /** * Given an ember-data-record, obtain the related Store - * @param {Model} record - * @return {Store} + * @param record */ -export function _getStoreFromRecord(record) { - /** @type {EngineInstance} */ +export function _getStoreFromRecord(record: Model) { const owner = getOwner(record); return owner.lookup('service:store'); } +function snapshotFromRecord(model: Model): DS.Snapshot { + return (model as any)._createSnapshot(); +} + /** * - * @param {Model} record - * @param {string} opPath - * @param {'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'} urlType - * @param {boolean} [instance] + * @param record + * @param opPath + * @param urlType + * @param instance */ -export function buildOperationUrl(record, opPath, urlType, instance = true) { +export function buildOperationUrl( + record: M, + opPath: string, + urlType: EmberDataRequestType, + instance = true +) { const modelClass = _getModelClass(record); const modelName = _getModelName(modelClass); const store = _getStoreFromRecord(record); const adapter = store.adapterFor(modelName); const path = opPath; - const snapshot = record._createSnapshot(); + const snapshot = snapshotFromRecord(record); const baseUrl = adapter.buildURL(modelName, instance ? record.get('id') : null, snapshot, urlType); if (!path) { diff --git a/addon/utils/collection-action.ts b/addon/utils/collection-action.ts index cf15df2a..5afbefab 100644 --- a/addon/utils/collection-action.ts +++ b/addon/utils/collection-action.ts @@ -1,22 +1,36 @@ import { merge } from '@ember/polyfills'; -import { buildOperationUrl, _getStoreFromRecord, _getModelName, _getModelClass } from './build-url'; +import Model from 'ember-data/model'; +import { Value as JSONValue } from 'json-typescript'; +import { _getModelClass, _getModelName, _getStoreFromRecord, buildOperationUrl } from './build-url'; +import { EmberDataRequestType, Hook, HTTPVerb, strictifyHttpVerb } from './types'; -export default function instanceOp(options) { - return function(payload) { +export interface CollectionOperationOptions { + type?: HTTPVerb; + path: string; + urlType?: EmberDataRequestType; + ajaxOptions?: any; + before?: Hook; + after?: Hook; +} + +export default function collectionOp(options: CollectionOperationOptions) { + return function runCollectionOp(this: Model, payload: IN): Promise { const recordClass = _getModelClass(this); const modelName = _getModelName(recordClass); const store = _getStoreFromRecord(this); - const requestType = (options.type || 'PUT').toUpperCase(); - const urlType = options.urlType || requestType; + const requestType: HTTPVerb = strictifyHttpVerb(options.type || 'put'); + const urlType: EmberDataRequestType = options.urlType || 'updateRecord'; const adapter = store.adapterFor(modelName); const fullUrl = buildOperationUrl(this, options.path, urlType, false); const data = (options.before && options.before.call(this, payload)) || payload; - return adapter.ajax(fullUrl, requestType, merge(options.ajaxOptions || {}, { data })).then(response => { - if (options.after && !this.isDestroyed) { - return options.after.call(this, response); - } + return adapter + .ajax(fullUrl, requestType, merge(options.ajaxOptions || {}, { data })) + .then((response: JSONValue) => { + if (options.after && !this.isDestroyed) { + return options.after.call(this, response); + } - return response; - }); + return response; + }); }; } diff --git a/addon/utils/member-action.ts b/addon/utils/member-action.ts index 01c797da..c70c2e8f 100644 --- a/addon/utils/member-action.ts +++ b/addon/utils/member-action.ts @@ -1,19 +1,31 @@ import { merge } from '@ember/polyfills'; -import { buildOperationUrl, _getModelClass, _getModelName, _getStoreFromRecord } from './build-url'; +import Model from 'ember-data/model'; +import { Value as JSONValue } from 'json-typescript'; +import { _getModelClass, _getModelName, _getStoreFromRecord, buildOperationUrl } from './build-url'; +import { EmberDataRequestType, Hook, HTTPVerb, strictifyHttpVerb } from './types'; -export default function instanceOp(options) { - return function(payload) { +export interface InstanceOperationOptions { + type?: HTTPVerb; + path: string; + urlType?: EmberDataRequestType; + ajaxOptions?: any; + before?: Hook; + after?: Hook; +} + +export default function instanceOp(options: InstanceOperationOptions) { + return function runInstanceOp(this: Model, payload: IN): Promise { const recordClass = _getModelClass(this); const modelName = _getModelName(recordClass); const store = _getStoreFromRecord(this); - const requestType = (options.type || 'PUT').toUpperCase(); - const urlType = options.urlType || requestType; + const { ajaxOptions, path, before, after, type = 'put', urlType = 'updateRecord' } = options; + const requestType: HTTPVerb = strictifyHttpVerb(type); const adapter = store.adapterFor(modelName); - const fullUrl = buildOperationUrl(this, options.path, urlType); - const data = (options.before && options.before.call(this, payload)) || payload; - return adapter.ajax(fullUrl, requestType, merge(options.ajaxOptions || {}, { data })).then(response => { - if (options.after && !this.isDestroyed) { - return options.after.call(this, response); + const fullUrl = buildOperationUrl(this, path, urlType); + const data = (before && before.call(this, payload)) || payload; + return adapter.ajax(fullUrl, requestType, merge(ajaxOptions || {}, { data })).then((response: JSONValue) => { + if (after && !this.isDestroyed) { + return after.call(this, response); } return response; diff --git a/addon/utils/serialize-and-push.ts b/addon/utils/serialize-and-push.ts index 79411879..35422c8f 100644 --- a/addon/utils/serialize-and-push.ts +++ b/addon/utils/serialize-and-push.ts @@ -1,19 +1,45 @@ import { isArray } from '@ember/array'; +import { typeOf } from '@ember/utils'; +import Model from 'ember-data/model'; +import JSONSerializer from 'ember-data/serializers/json'; +import SerializerRegistry from 'ember-data/types/registries/serializer'; +import { CollectionResourceDoc, Document as JSONApiDoc, DocWithData, SingleResourceDoc } from 'jsonapi-typescript'; import { _getModelClass, _getModelName, _getStoreFromRecord } from './build-url'; -export default function serializeAndPush(response) { - const isJsonApi = response.jsonapi && response.jsonapi.version; - if (!isJsonApi) { - // eslint-disable-next-line no-console - console.warn('serializeAndPush may only be used with a JSON API document. Ignoring response. Document must have a mandatory JSON API object. See https://jsonapi.org/format/#document-jsonapi-object.'); +function isJsonApi(raw: any): raw is JSONApiDoc { + return raw.jsonapi && raw.jsonapi.version; +} +function isDocWithData(doc: any): doc is DocWithData { + return isJsonApi(doc) && ['object', 'array'].indexOf(typeOf((doc as DocWithData).data)) >= 0; +} + +export default function serializeAndPush(this: Model, response: any) { + if (!isDocWithData(response)) { + // tslint:disable-next-line:no-console + console.warn( + 'serializeAndPush may only be used with a JSON API document. Ignoring response. ' + + 'Document must have a mandatory JSON API object. See https://jsonapi.org/format/#document-jsonapi-object.' + ); return response; } - + const recordClass = _getModelClass(this); const modelName = _getModelName(recordClass); const store = _getStoreFromRecord(this); - const serializer = store.serializerFor(modelName); - const normalized = isArray(response.data) ? serializer.normalizeArrayResponse(store, recordClass, response) : - serializer.normalizeSingleResponse(store, recordClass, response); - return this.store.push(normalized); + const serializer: JSONSerializer = store.serializerFor(modelName as keyof SerializerRegistry); + let normalized: {}; + if (isArray(response.data)) { + const doc = response as CollectionResourceDoc; + normalized = serializer.normalizeArrayResponse(store, recordClass as any, doc, null as any, 'findAll'); + } else { + const doc = response as SingleResourceDoc; + normalized = serializer.normalizeSingleResponse( + store, + recordClass as any, + doc, + `${doc.data.id || '(unknown)'}`, + 'findRecord' + ); + } + return store.push(normalized); } diff --git a/addon/utils/types.ts b/addon/utils/types.ts new file mode 100644 index 00000000..9ddcafe2 --- /dev/null +++ b/addon/utils/types.ts @@ -0,0 +1,53 @@ +import Model from 'ember-data/model'; + +export type StrictHTTPVerb = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' | 'HEAD'; +export type HTTPVerb = + | 'GET' + | 'POST' + | 'PUT' + | 'DELETE' + | 'PATCH' + | 'OPTIONS' + | 'HEAD' + | 'get' + | 'post' + | 'put' + | 'delete' + | 'patch' + | 'options' + | 'head'; + +export interface HTTPVerbStrictMap { + GET: 'GET'; + POST: 'POST'; + PUT: 'PUT'; + DELETE: 'DELETE'; + PATCH: 'PATCH'; + OPTIONS: 'OPTIONS'; + HEAD: 'HEAD'; + get: 'GET'; + post: 'POST'; + put: 'PUT'; + delete: 'DELETE'; + patch: 'PATCH'; + options: 'OPTIONS'; + head: 'HEAD'; +} + +export function strictifyHttpVerb(notStrict: K): HTTPVerbStrictMap[K] { + return `${notStrict}`.toUpperCase() as HTTPVerbStrictMap[K]; +} + +export type EmberDataRequestType = + | 'findRecord' + | 'findAll' + | 'query' + | 'queryRecord' + | 'findMany' + | 'findHasMany' + | 'findBelongsTo' + | 'createRecord' + | 'updateRecord' + | 'deleteRecord'; + +export type Hook = (this: Model, payload: IN) => OUT; diff --git a/package.json b/package.json index dd6636ec..4211c6a0 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "ember-cli-qunit": "^4.4.0", "ember-cli-shims": "^1.1.0", "ember-cli-test-loader": "^2.2.0", + "ember-cli-tslint": "^0.1.4", "ember-cli-typescript-blueprints": "^2.0.0-beta.1", "ember-cli-uglify": "^2.0.0", "ember-code-snippet": "^2.1.0", @@ -60,6 +61,7 @@ "loader.js": "^4.7.0", "qunit-dom": "^0.8.0", "travis-deploy-once": "^5.0.7", + "tslint-config-prettier": "^1.15.0", "typescript": "^3.1.5" }, "optionalDependencies": { diff --git a/tests/acceptance/index-test.ts b/tests/acceptance/index-test.ts index 8b2a0842..6d4a8a83 100644 --- a/tests/acceptance/index-test.ts +++ b/tests/acceptance/index-test.ts @@ -1,11 +1,11 @@ -import { module, test } from 'qunit'; -import { visit, click } from '@ember/test-helpers'; +import { click, visit } from '@ember/test-helpers'; import { setupApplicationTest } from 'ember-qunit'; import Pretender from 'pretender'; +import { module, test } from 'qunit'; -module('Acceptance | index2', function(hooks) { +module('Acceptance | index2', hooks => { setupApplicationTest(hooks); - let server; + let server: any; hooks.beforeEach(() => { server = new Pretender(); }); @@ -13,31 +13,31 @@ module('Acceptance | index2', function(hooks) { server.shutdown(); }); - test('visiting /', async function(assert) { + test('visiting /', async assert => { await visit('/'); assert.expect(8); - server.put('/fruits/:id/doRipen', request => { - let data = JSON.parse(request.requestBody); + server.put('/fruits/:id/doRipen', (request: { url: string; requestBody: string }) => { + const data = JSON.parse(request.requestBody); assert.deepEqual(data, { id: '1', name: 'apple' }, 'member action - request payload is correct'); assert.equal(request.url, '/fruits/1/doRipen', 'request was made to "doRipen"'); return [200, {}, '{"status": "ok"}']; }); - server.put('/fruits/ripenEverything', request => { - let data = JSON.parse(request.requestBody); + server.put('/fruits/ripenEverything', (request: { url: string; requestBody: string }) => { + const data = JSON.parse(request.requestBody); assert.deepEqual(data, { test: 'ok' }, 'collection action - request payload is correct'); assert.ok(true, 'request was made to "ripenEverything"'); return [200, {}, '{"status": "ok"}']; }); - server.get('/fruits/:id/info', request => { + server.get('/fruits/:id/info', (request: { url: string; requestBody: string }) => { assert.equal(request.url, '/fruits/1/info?fruitId=1'); assert.ok(true, 'request was made to "ripenEverything"'); return [200, {}, '{"status": "ok"}']; }); - server.get('/fruits/fresh', request => { + server.get('/fruits/fresh', (request: { url: string; requestBody: string }) => { assert.equal(request.url, '/fruits/fresh?month=July'); assert.ok(true, 'request was made to "ripenEverything"'); return [200, {}, '{"status": "ok"}']; @@ -52,14 +52,14 @@ module('Acceptance | index2', function(hooks) { await click('.all-fruit .fresh-type-button'); }); - test('before/after hooks and serializeAndPush helper', async function(assert) { + test('before/after hooks and serializeAndPush helper', async assert => { await visit('/'); assert.expect(7); - server.put('/fruits/:id/doEat', request => { - let data = JSON.parse(request.requestBody); + server.put('/fruits/:id/doEat', (request: { url: string; requestBody: string }) => { + const data = JSON.parse(request.requestBody); - let expectedData = { + const expectedData = { data: { type: 'fruits', attributes: { @@ -84,10 +84,10 @@ module('Acceptance | index2', function(hooks) { return [200, {}, JSON.stringify(response)]; }); - server.put('/fruits/doEatAll', request => { - let data = JSON.parse(request.requestBody); + server.put('/fruits/doEatAll', (request: { url: string; requestBody: string }) => { + const data = JSON.parse(request.requestBody); - let expectedData = { + const expectedData = { data: { type: 'fruits', attributes: { diff --git a/tests/dummy/app/controllers/index.ts b/tests/dummy/app/controllers/index.ts index 479bb88f..ea6c5e2c 100644 --- a/tests/dummy/app/controllers/index.ts +++ b/tests/dummy/app/controllers/index.ts @@ -1,30 +1,32 @@ import { A } from '@ember/array'; import Controller from '@ember/controller'; +import Fruit from '../models/fruit'; export default Controller.extend({ + requests: [] as any[], init() { this._super(...arguments); this.set('requests', A([])); }, // BEGIN-SNIPPET controller actions: { - ripenFruit(fruit) { + ripenFruit(fruit: InstanceType) { fruit.ripen(fruit.getProperties(['id', 'name'])); }, - fruitInfo(fruit) { - let { id } = fruit.getProperties(['id', 'name']); + fruitInfo(fruit: InstanceType) { + const { id } = fruit.getProperties(['id', 'name']); fruit.info({ fruitId: id }); }, - ripenAllFruit(fruit) { + ripenAllFruit(fruit: InstanceType) { fruit.ripenAll({ test: 'ok' }); }, - getAllFreshFruit(fruit) { + getAllFreshFruit(fruit: InstanceType) { fruit.getFresh({ month: 'July' }); }, - eatFruit(fruit) { + eatFruit(fruit: InstanceType) { fruit.eat({ was_eaten: true }); }, - eatAll(fruit) { + eatAll(fruit: InstanceType) { fruit.eatAll({ was_eaten: true }); } } diff --git a/tests/dummy/app/models/fruit.ts b/tests/dummy/app/models/fruit.ts index bb284c79..3a451dbc 100644 --- a/tests/dummy/app/models/fruit.ts +++ b/tests/dummy/app/models/fruit.ts @@ -1,17 +1,16 @@ // BEGIN-SNIPPET fruit-model -import DS from 'ember-data'; - -import { memberAction, collectionAction, serializeAndPush } from 'ember-api-actions'; import { assign } from '@ember/polyfills'; +import { collectionAction, memberAction, serializeAndPush } from 'ember-api-actions'; +import DS from 'ember-data'; +import { SingleResourceDoc } from 'jsonapi-typescript'; const { attr, Model } = DS; -function mergeAttributes(attributes) { - let payload = this.serialize(); - payload.data.attributes = assign(payload.data.attributes, attributes); +function mergeAttributes(this: DS.Model, attributes: any) { + const payload: SingleResourceDoc<'fruit', any> = this.serialize() as any; + payload.data.attributes = assign(payload.data.attributes || {}, attributes); return payload; } - export default Model.extend({ name: attr('string'), ripen: memberAction({ path: 'doRipen' }), diff --git a/tests/dummy/app/routes/index.ts b/tests/dummy/app/routes/index.ts index 66474057..97669ba0 100644 --- a/tests/dummy/app/routes/index.ts +++ b/tests/dummy/app/routes/index.ts @@ -1,6 +1,6 @@ -import Ember from 'ember'; -import Route from '@ember/routing/route'; import { A } from '@ember/array'; +import Route from '@ember/routing/route'; +import Ember from 'ember'; import Pretender from 'pretender'; const { testing } = Ember; @@ -90,14 +90,14 @@ export default Route.extend({ }, _setupPretender() { - let server = new Pretender(); + const server = new Pretender(); // server.get('/fruits', request => { // return [200, {}, JSON.stringify({ // fruits: // })]; // }); server.put('/fruits/:id/doRipen', request => { - let controller = this.get('controller'); + const controller = this.get('controller'); controller.get('requests').addObject({ url: request.url, data: JSON.parse(request.requestBody) @@ -105,7 +105,7 @@ export default Route.extend({ return [200, {}, '{"status": "ok"}']; }); server.put('/fruits/ripenEverything', request => { - let controller = this.get('controller'); + const controller = this.get('controller'); controller.get('requests').addObject({ url: request.url, data: JSON.parse(request.requestBody) @@ -113,7 +113,7 @@ export default Route.extend({ return [200, {}, '{"status": "ok"}']; }); server.get('/fruits/:id/info', request => { - let controller = this.get('controller'); + const controller = this.get('controller'); controller.get('requests').addObject({ url: request.url }); @@ -121,7 +121,7 @@ export default Route.extend({ }); server.get('/fruits/fresh', request => { - let controller = this.get('controller'); + const controller = this.get('controller'); controller.get('requests').addObject({ url: request.url }); diff --git a/tests/unit/utils/collection-action-test.ts b/tests/unit/utils/collection-action-test.ts index 60e1e257..7ca09e7c 100644 --- a/tests/unit/utils/collection-action-test.ts +++ b/tests/unit/utils/collection-action-test.ts @@ -1,10 +1,10 @@ import collectionAction from 'ember-api-actions/utils/collection-action'; import { module, test } from 'qunit'; -module('Unit | Utility | collection action', function() { +module('Unit | Utility | collection action', () => { // Replace this with your real tests. - test('it works', function(assert) { - let result = collectionAction({ path: '/bar' }); + test('it works', assert => { + const result = collectionAction({ path: '/bar' }); assert.ok(result); }); }); diff --git a/tests/unit/utils/member-action-test.ts b/tests/unit/utils/member-action-test.ts index 3cf28d56..e3000589 100644 --- a/tests/unit/utils/member-action-test.ts +++ b/tests/unit/utils/member-action-test.ts @@ -1,10 +1,10 @@ import memberAction from 'ember-api-actions/utils/member-action'; import { module, test } from 'qunit'; -module('Unit | Utility | member action', function() { +module('Unit | Utility | member action', () => { // Replace this with your real tests. - test('it works', function(assert) { - let result = memberAction({ path: '/foo' }); + test('it works', assert => { + const result = memberAction({ path: '/foo' }); assert.ok(result); }); }); diff --git a/tsconfig.json b/tsconfig.json index 5cb782f2..d2fc436a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,12 @@ "moduleResolution": "node", "allowSyntheticDefaultImports": true, "noEmitOnError": false, + "noImplicitAny": true, + "noImplicitThis": true, + "strict": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "strictPropertyInitialization": true, "noEmit": true, "inlineSourceMap": true, "inlineSources": true, diff --git a/tslint.json b/tslint.json new file mode 100644 index 00000000..50befdd7 --- /dev/null +++ b/tslint.json @@ -0,0 +1,10 @@ +{ + "defaultSeverity": "error", + "extends": ["tslint:recommended", "tslint-config-prettier"], + "jsRules": {}, + "rules": { + "interface-name": false, + "object-literal-sort-keys": false + }, + "rulesDirectory": [] +} diff --git a/yarn.lock b/yarn.lock index 9528d3b3..30ee623c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1356,6 +1356,13 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +aot-test-generators@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/aot-test-generators/-/aot-test-generators-0.1.0.tgz#43f0f615f97cb298d7919c1b0b4e6b7310b03cd0" + integrity sha1-Q/D2Ffl8spjXkZwbC05rcxCwPNA= + dependencies: + jsesc "^2.5.0" + aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2, aproba@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1572,7 +1579,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== -babel-code-frame@^6.26.0: +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= @@ -2696,6 +2703,25 @@ broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.4.3: symlink-or-copy "^1.0.1" walk-sync "^0.3.1" +broccoli-persistent-filter@^1.2.0: + version "1.4.6" + resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.4.6.tgz#80762d19000880a77da33c34373299c0f6a3e615" + integrity sha512-0RejLwoC95kv4kta8KAa+FmECJCK78Qgm8SRDEK7YyU0N9Cx6KpY3UCDy9WELl3mCXLN8TokNxc7/hp3lL4lfw== + dependencies: + async-disk-cache "^1.2.1" + async-promise-queue "^1.0.3" + broccoli-plugin "^1.0.0" + fs-tree-diff "^0.5.2" + hash-for-dep "^1.0.2" + heimdalljs "^0.2.1" + heimdalljs-logger "^0.1.7" + mkdirp "^0.5.1" + promise-map-series "^0.2.1" + rimraf "^2.6.1" + rsvp "^3.0.18" + symlink-or-copy "^1.0.1" + walk-sync "^0.3.1" + 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.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.3.0.tgz#bee704a8e42da08cb58e513aaa436efb7f0ef1ee" @@ -2764,6 +2790,16 @@ broccoli-stew@^2.0.0: symlink-or-copy "^1.2.0" walk-sync "^0.3.0" +broccoli-tslinter@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/broccoli-tslinter/-/broccoli-tslinter-3.0.1.tgz#f30b167356cd2b96c604e8a56f1557de1e2048ed" + integrity sha512-M7xgEOPEbNJmUO34GYGwOS/uhjQu1J4rHqHtVih4L4Lk3+Y7MpWYq49PSJZ+tWkjYbHfXlw9NTdpOgbmvwKSug== + dependencies: + aot-test-generators "^0.1.0" + broccoli-persistent-filter "^1.2.0" + chalk "^2.0.1" + exists-sync "0.0.4" + broccoli-uglify-sourcemap@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/broccoli-uglify-sourcemap/-/broccoli-uglify-sourcemap-2.2.0.tgz#2ff49389bdf342a550c3596750ba2dde95a8f7d4" @@ -2865,7 +2901,7 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -builtin-modules@^1.0.0: +builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= @@ -3361,7 +3397,7 @@ commander@2.8.x: dependencies: graceful-readlink ">= 1.0.0" -commander@^2.15.1: +commander@^2.12.1, commander@^2.15.1: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== @@ -3881,7 +3917,7 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" -diff@^3.5.0: +diff@^3.2.0, diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== @@ -4189,6 +4225,17 @@ ember-cli-test-loader@^2.2.0: dependencies: ember-cli-babel "^6.8.1" +ember-cli-tslint@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/ember-cli-tslint/-/ember-cli-tslint-0.1.4.tgz#704980595e90caf8c080845737bc97663cdbe729" + integrity sha512-YVAz76VSKJ8IQqaJ7rFDLQWBc1okkWPtO1qMtNxgUkkaNViMAsYZp+1ddV6+IW2XnzZMBV/5WqXkpuTH0P3KGA== + dependencies: + broccoli-funnel "^2.0.1" + broccoli-tslinter "^3.0.1" + rsvp "^4.7.0" + tslint "^5.5.0" + walk-sync "^0.3.2" + ember-cli-typescript-blueprints@^2.0.0-beta.1: version "2.0.0-beta.1" resolved "https://registry.yarnpkg.com/ember-cli-typescript-blueprints/-/ember-cli-typescript-blueprints-2.0.0-beta.1.tgz#2db2e34ad01b5a50a4459c2f7cfc8f132b21fcea" @@ -6718,7 +6765,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.12.0, js-yaml@^3.9.0: +js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== @@ -6744,7 +6791,7 @@ jsesc@^1.3.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= -jsesc@^2.5.1: +jsesc@^2.5.0, jsesc@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" integrity sha1-5CGiqOINawgZ3yiQj3glJrlt0f4= @@ -10996,6 +11043,41 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= +tslib@^1.8.0, tslib@^1.8.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + +tslint-config-prettier@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.15.0.tgz#76b9714399004ab6831fdcf76d89b73691c812cf" + integrity sha512-06CgrHJxJmNYVgsmeMoa1KXzQRoOdvfkqnJth6XUkNeOz707qxN0WfxfhYwhL5kXHHbYJRby2bqAPKwThlZPhw== + +tslint@^5.5.0: + version "5.11.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" + integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0= + dependencies: + babel-code-frame "^6.22.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^3.2.0" + glob "^7.1.1" + js-yaml "^3.7.0" + minimatch "^3.0.4" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.27.2" + +tsutils@^2.27.2: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" From 4ff798c253fd05aa18ab8ef7d5d490680fb8b66d Mon Sep 17 00:00:00 2001 From: Mike North Date: Thu, 1 Nov 2018 11:29:28 -0700 Subject: [PATCH 3/4] chore: linting fixes --- tests/dummy/app/helpers/first-in-array.ts | 2 +- tests/dummy/app/helpers/json-string.ts | 2 +- tests/dummy/app/helpers/or.ts | 2 +- tests/dummy/app/routes/index.ts | 23 +++++++++++++---------- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/tests/dummy/app/helpers/first-in-array.ts b/tests/dummy/app/helpers/first-in-array.ts index 352d2fd0..a5e709a4 100644 --- a/tests/dummy/app/helpers/first-in-array.ts +++ b/tests/dummy/app/helpers/first-in-array.ts @@ -4,7 +4,7 @@ import Ember from 'ember'; const { HTMLBars } = Ember as any; -export function firstInArray(params /* , hash*/) { +export function firstInArray(params: any[] /* , hash*/) { if (isArray(params[0])) { return params[0].objectAt(0) || undefined; } else { diff --git a/tests/dummy/app/helpers/json-string.ts b/tests/dummy/app/helpers/json-string.ts index c111fca6..85868b53 100644 --- a/tests/dummy/app/helpers/json-string.ts +++ b/tests/dummy/app/helpers/json-string.ts @@ -3,7 +3,7 @@ import Ember from 'ember'; const { HTMLBars } = Ember as any; -export function jsonString(params /* , hash*/) { +export function jsonString(params: any[] /* , hash*/) { return JSON.stringify(params[0]); } diff --git a/tests/dummy/app/helpers/or.ts b/tests/dummy/app/helpers/or.ts index 504b3cb0..9a589d97 100644 --- a/tests/dummy/app/helpers/or.ts +++ b/tests/dummy/app/helpers/or.ts @@ -3,7 +3,7 @@ import Ember from 'ember'; const { HTMLBars } = Ember as any; -export function or([a, b] /* , hash*/) { +export function or([a, b]: any[] /* , hash*/) { return a || b; } diff --git a/tests/dummy/app/routes/index.ts b/tests/dummy/app/routes/index.ts index 97669ba0..78ef0f4e 100644 --- a/tests/dummy/app/routes/index.ts +++ b/tests/dummy/app/routes/index.ts @@ -60,11 +60,14 @@ const PAYLOAD = { }; export default Route.extend({ + server: undefined as any, + requests: [] as any[], + currentModel: undefined as any, model() { - let arr = []; + let arr: any = []; this.store.pushPayload('fruit', !this.store.peekAll ? LEGACY_PAYLOAD : PAYLOAD); if (!this.store.peekAll) { - arr = [1, 2, 3, 4].map(id => this.store.getById('fruit', id)); + arr = [1, 2, 3, 4].map(id => (this.store as any).getById('fruit', id)); } else { arr = this.store.peekAll('fruit'); } @@ -96,32 +99,32 @@ export default Route.extend({ // fruits: // })]; // }); - server.put('/fruits/:id/doRipen', request => { - const controller = this.get('controller'); + server.put('/fruits/:id/doRipen', (request: any) => { + const controller: any = this.get('controller'); controller.get('requests').addObject({ url: request.url, data: JSON.parse(request.requestBody) }); return [200, {}, '{"status": "ok"}']; }); - server.put('/fruits/ripenEverything', request => { - const controller = this.get('controller'); + server.put('/fruits/ripenEverything', (request: any) => { + const controller: any = this.get('controller'); controller.get('requests').addObject({ url: request.url, data: JSON.parse(request.requestBody) }); return [200, {}, '{"status": "ok"}']; }); - server.get('/fruits/:id/info', request => { - const controller = this.get('controller'); + server.get('/fruits/:id/info', (request: any) => { + const controller: any = this.get('controller'); controller.get('requests').addObject({ url: request.url }); return [200, {}, '{"status": "ok"}']; }); - server.get('/fruits/fresh', request => { - const controller = this.get('controller'); + server.get('/fruits/fresh', (request: any) => { + const controller: any = this.get('controller'); controller.get('requests').addObject({ url: request.url }); From 1a927333ecfd52255e03ac5f863d759af8470dd1 Mon Sep 17 00:00:00 2001 From: Mike North Date: Thu, 1 Nov 2018 11:35:21 -0700 Subject: [PATCH 4/4] fix: lint:ts script for tslint --- .travis.yml | 2 +- package.json | 2 +- tests/dummy/app/app.js | 2 +- tests/dummy/app/router.js | 4 +++- tests/dummy/config/environment.js | 12 ++++++------ tslint.json | 5 ++++- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 81046c17..8955f969 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,7 +42,7 @@ install: - yarn install --no-lockfile --non-interactive --skip-optional script: - - yarn lint:js + - yarn lint:ts # Usually, it's ok to finish the test scenario without reverting # to the addon's original dependency state, skipping "cleanup". - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO diff --git a/package.json b/package.json index 4211c6a0..95496db8 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "scripts": { "build": "ember build", - "lint:js": "eslint ./*.js addon addon-test-support app config lib server test-support tests", + "lint:ts": "tslint --project .", "start": "ember server", "test": "ember try:each", "travis-deploy-once": "travis-deploy-once", diff --git a/tests/dummy/app/app.js b/tests/dummy/app/app.js index b3b2bd67..fed72885 100644 --- a/tests/dummy/app/app.js +++ b/tests/dummy/app/app.js @@ -1,7 +1,7 @@ import Application from '@ember/application'; -import Resolver from './resolver'; import loadInitializers from 'ember-load-initializers'; import config from './config/environment'; +import Resolver from './resolver'; const App = Application.extend({ modulePrefix: config.modulePrefix, diff --git a/tests/dummy/app/router.js b/tests/dummy/app/router.js index 53c53c6c..aeb4e2c3 100644 --- a/tests/dummy/app/router.js +++ b/tests/dummy/app/router.js @@ -6,6 +6,8 @@ const Router = EmberRouter.extend({ rootURL: config.rootURL }); -Router.map(function() {}); +Router.map(function() { + // foo +}); export default Router; diff --git a/tests/dummy/config/environment.js b/tests/dummy/config/environment.js index 3dfb9225..4205dc87 100644 --- a/tests/dummy/config/environment.js +++ b/tests/dummy/config/environment.js @@ -2,18 +2,18 @@ // eslint-disable-next-line module.exports = function(environment) { let ENV = { - modulePrefix: 'dummy', environment, - rootURL: '/', locationType: 'auto', + modulePrefix: 'dummy', + rootURL: '/', EmberENV: { - FEATURES: { - // Here you can enable experimental features on an ember canary build - // e.g. 'with-controller': true - }, EXTEND_PROTOTYPES: { // Prevent Ember Data from overriding Date.parse. Date: false + }, + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. 'with-controller': true } }, diff --git a/tslint.json b/tslint.json index 50befdd7..23112ba3 100644 --- a/tslint.json +++ b/tslint.json @@ -1,7 +1,10 @@ { "defaultSeverity": "error", "extends": ["tslint:recommended", "tslint-config-prettier"], - "jsRules": {}, + "jsRules": { + "interface-name": false, + "object-literal-sort-keys": false + }, "rules": { "interface-name": false, "object-literal-sort-keys": false