diff --git a/package.json b/package.json index 8ad57e1eb36..4eb3fa699a0 100644 --- a/package.json +++ b/package.json @@ -39,11 +39,14 @@ "test-external:ember-data-relationship-tracker": "./bin/test-external-partner-project.js ember-data-relationship-tracker https://github.com/ef4/ember-data-relationship-tracker.git" }, "devDependencies": { - "@babel/plugin-transform-typescript": "^7.6.0", - "@ember/optional-features": "^1.0.0", - "@types/ember": "^3.1.0", - "@types/ember-qunit": "^3.4.6", - "@types/ember-test-helpers": "~1.0.5", + "@babel/plugin-transform-typescript": "^7.7.4", + "@ember/edition-utils": "^1.1.1", + "@ember/optional-features": "^1.1.0", + "@glimmer/component": "^1.0.0-beta.3", + "@tracerbench/core": "3.0.7", + "@types/ember": "^3.1.1", + "@types/ember-qunit": "^3.4.7", + "@types/ember-test-helpers": "~1.0.6", "@types/ember-testing-helpers": "~0.0.3", "@types/ember__debug": "3.0.4", "@types/ember__test-helpers": "~0.7.8", @@ -132,7 +135,9 @@ "rsvp": "^4.8.5", "semver": "^6.2.0", "silent-error": "^1.1.1", - "typescript": "~3.6.3" + "typescript": "~3.7.2", + "url": "^0.11.0", + "zlib": "1.0.5" }, "bin": { "test-partner-project": "./bin/test-external-partner-project.js", diff --git a/packages/-ember-data/.ember-cli b/packages/-ember-data/.ember-cli.js similarity index 65% rename from packages/-ember-data/.ember-cli rename to packages/-ember-data/.ember-cli.js index ee64cfed2a8..79999737931 100644 --- a/packages/-ember-data/.ember-cli +++ b/packages/-ember-data/.ember-cli.js @@ -1,9 +1,13 @@ -{ +const { setEdition } = require('@ember/edition-utils'); + +setEdition('octane'); + +module.exports = { /** Ember CLI sends analytics information by default. The data is completely anonymous, but there are times when you might want to disable this behavior. Setting `disableAnalytics` to true will prevent any data from being sent. */ - "disableAnalytics": false -} + disableAnalytics: false, +}; diff --git a/packages/-ember-data/package.json b/packages/-ember-data/package.json index daebf349a0b..aeb4626a5b1 100644 --- a/packages/-ember-data/package.json +++ b/packages/-ember-data/package.json @@ -28,6 +28,7 @@ "@ember-data/model": "3.14.0", "@ember-data/serializer": "3.14.0", "@ember-data/store": "3.14.0", + "@ember/edition-utils": "^1.1.1", "@ember/ordered-set": "^2.0.3", "@glimmer/env": "^0.1.7", "ember-cli-babel": "^7.11.1", @@ -35,11 +36,13 @@ "ember-inflector": "^3.0.1" }, "devDependencies": { - "@babel/plugin-transform-typescript": "^7.6.0", - "@ember/optional-features": "^1.0.0", - "@types/ember": "^3.1.0", - "@types/ember-qunit": "^3.4.6", - "@types/ember-test-helpers": "~1.0.5", + "@babel/plugin-transform-typescript": "^7.7.4", + "@ember-data/-test-infra": "3.14.0", + "@ember/optional-features": "^1.1.0", + "@glimmer/component": "^1.0.0-beta.3", + "@types/ember": "^3.1.1", + "@types/ember-qunit": "^3.4.7", + "@types/ember-test-helpers": "~1.0.6", "@types/ember-testing-helpers": "~0.0.3", "@types/ember__debug": "3.0.4", "@types/ember__test-helpers": "~0.7.8", @@ -80,8 +83,9 @@ "github": "^1.1.1", "json-typescript": "^1.1.0", "loader.js": "^4.7.0", - "qunit": "^2.9.2", - "typescript": "~3.6.3" + "qunit": "^2.9.3", + "qunit-dom": "^0.9.2", + "typescript": "~3.7.2" }, "engines": { "node": ">= 8.0.0" diff --git a/packages/-ember-data/tests/acceptance/tracking-model-id-test.js b/packages/-ember-data/tests/acceptance/tracking-model-id-test.js new file mode 100644 index 00000000000..ce92c7b14b9 --- /dev/null +++ b/packages/-ember-data/tests/acceptance/tracking-model-id-test.js @@ -0,0 +1,99 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'ember-qunit'; +import { render, settled } from '@ember/test-helpers'; +import hbs from 'htmlbars-inline-precompile'; +import Store from '@ember-data/store'; +import Model, { attr } from '@ember-data/model'; +import JSONAPIAdapter from '@ember-data/adapter/json-api'; +import JSONAPISerializer from '@ember-data/serializer/json-api'; +import Component from '@glimmer/component'; +import { gte } from 'ember-compatibility-helpers'; +import { has } from 'require'; +import { resolve } from 'rsvp'; + +if (gte('3.13.0') && has('@glimmer/component')) { + class Widget extends Model { + @attr() name; + + get numericId() { + return Number(this.id); + } + } + + class WidgetList extends Component { + get sortedWidgets() { + let { widgets } = this.args; + + return widgets.slice().sort((a, b) => b.numericId - a.numericId); + } + } + + let layout = hbs` + + `; + + class TestAdapter extends JSONAPIAdapter { + createRecord() { + return resolve({ + data: { + id: '4', + type: 'widget', + attributes: { + name: 'Contraption', + }, + }, + }); + } + } + + module('acceptance/tracking-model-id - tracking model id', function(hooks) { + setupRenderingTest(hooks); + + hooks.beforeEach(function() { + let { owner } = this; + owner.register('service:store', Store); + owner.register('model:widget', Widget); + owner.register('component:widget-list', WidgetList); + owner.register('template:components/widget-list', layout); + owner.register('adapter:application', TestAdapter); + owner.register('serializer:application', JSONAPISerializer); + }); + + test("can track model id's without using get", async function(assert) { + let store = this.owner.lookup('service:store'); + store.createRecord('widget', { id: '1', name: 'Doodad' }); + store.createRecord('widget', { id: '3', name: 'Gizmo' }); + store.createRecord('widget', { id: '2', name: 'Gadget' }); + this.widgets = store.peekAll('widget'); + + await render(hbs` + + `); + await settled(); + + assert.dom('ul>li+li+li').exists; + assert.dom('ul>li.widget0>div.name').containsText('Gizmo'); + assert.dom('ul>li.widget1>div.name').containsText('Gadget'); + assert.dom('ul>li.widget2>div.name').containsText('Doodad'); + + let contraption = store.createRecord('widget', { name: 'Contraption' }); + await contraption.save(); + await settled(); + + assert.dom('ul>li+li+li+li').exists; + assert.dom('ul>li.widget0>div.name').containsText('Contraption'); + assert.dom('ul>li.widget1>div.name').containsText('Gizmo'); + assert.dom('ul>li.widget2>div.name').containsText('Gadget'); + assert.dom('ul>li.widget3>div.name').containsText('Doodad'); + }); + }); +} diff --git a/packages/-ember-data/tests/dummy/config/optional-features.json b/packages/-ember-data/tests/dummy/config/optional-features.json index b1902623ae7..3762534dbd7 100644 --- a/packages/-ember-data/tests/dummy/config/optional-features.json +++ b/packages/-ember-data/tests/dummy/config/optional-features.json @@ -1,3 +1,5 @@ { + "template-only-glimmer-components": true, + "application-template-wrapper": false, "jquery-integration": false } diff --git a/packages/store/addon/-private/system/model/internal-model.ts b/packages/store/addon/-private/system/model/internal-model.ts index 8a9b83d9f8a..962d374bf5f 100644 --- a/packages/store/addon/-private/system/model/internal-model.ts +++ b/packages/store/addon/-private/system/model/internal-model.ts @@ -99,6 +99,7 @@ function extractPivotName(name) { */ export default class InternalModel { _id: string | null; + _tag: number = 0; modelName: string; clientId: string; __recordData: RecordData | null; @@ -176,6 +177,7 @@ export default class InternalModel { if (value !== this._id) { let newIdentifier = { type: this.identifier.type, lid: this.identifier.lid, id: value }; identifierCacheFor(this.store).updateRecordIdentifier(this.identifier, newIdentifier); + set(this, '_tag', this._tag + 1); // TODO Show deprecation for private api } } else if (!IDENTIFIERS) { @@ -1347,6 +1349,7 @@ export default class InternalModel { let didChange = id !== this._id; this._id = id; + set(this, '_tag', this._tag + 1); if (didChange && id !== null) { this.store.setRecordId(this.modelName, id, this.clientId); diff --git a/packages/store/addon/-private/system/model/model.js b/packages/store/addon/-private/system/model/model.js index 0c3f9d97f5d..012fb2f0bb1 100644 --- a/packages/store/addon/-private/system/model/model.js +++ b/packages/store/addon/-private/system/model/model.js @@ -1335,7 +1335,13 @@ const ID_DESCRIPTOR = { // the _internalModel guard exists, because some dev-only deprecation code // (addListener via validatePropertyInjections) invokes toString before the // object is real. - return this._internalModel && this._internalModel.id; + if (DEBUG) { + if (!this._internalModel) { + return; + } + } + get(this._internalModel, '_tag'); + return this._internalModel.id; }, }; diff --git a/tsconfig.json b/tsconfig.json index 8165f7584ad..078b3d03c42 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -34,6 +34,10 @@ "@ember-data/record-data/*": ["packages/record-data/addon/*"], "@ember-data/canary-features": ["packages/canary-features/addon"], "@ember-data/canary-features/*": ["packages/canary-features/addon/*"], + "@ember-data/-build-infra": ["packages/private-build-infra/addon"], + "@ember-data/-build-infra/*": ["packages/private-build-infra/addon/*"], + "@ember-data/unpublished-test-infra/test-support": ["packages/unpublished-test-infra/addon-test-support"], + "@ember-data/unpublished-test-infra/test-support/*": ["packages/unpublished-test-infra/addon-test-support/*"], "fastboot-test-app/tests/*": ["tests/*"], "fastboot-test-app/*": ["app/*"], "*": ["packages/store/types/*", "packages/record-data/types/*", "packages/fastboot-test-app/types/*"] diff --git a/yarn.lock b/yarn.lock index 963bc8357ca..c03bbeb7be6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -124,7 +124,7 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.6.0": +"@babel/helper-create-class-features-plugin@^7.4.4": version "7.6.0" resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f" integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng== @@ -136,6 +136,18 @@ "@babel/helper-replace-supers" "^7.5.5" "@babel/helper-split-export-declaration" "^7.4.4" +"@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.7.4": + version "7.7.4" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz#fce60939fd50618610942320a8d951b3b639da2d" + integrity sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA== + dependencies: + "@babel/helper-function-name" "^7.7.4" + "@babel/helper-member-expression-to-functions" "^7.7.4" + "@babel/helper-optimise-call-expression" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.7.4" + "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/helper-define-map@^7.5.5": version "7.5.5" resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" @@ -448,6 +460,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-typescript@^7.7.4": + version "7.7.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.7.4.tgz#5d037ffa10f3b25a16f32570ebbe7a8c2efa304b" + integrity sha512-77blgY18Hud4NM1ggTA8xVT/dBENQf17OpiToSa2jSmEY3fWXD2jwrdVlO4kq5yzUTeF15WSQ6b4fByNvJcjpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.2.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" @@ -710,14 +729,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-typescript@^7.6.0": - version "7.6.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.6.0.tgz#48d78405f1aa856ebeea7288a48a19ed8da377a6" - integrity sha512-yzw7EopOOr6saONZ3KA3lpizKnWRTe+rfBqg4AmQbSow7ik7fqmzrfIqt053osLwLE2AaTqGinLM2tl6+M/uog== +"@babel/plugin-transform-typescript@^7.7.4": + version "7.7.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.7.4.tgz#2974fd05f4e85c695acaf497f432342de9fc0636" + integrity sha512-X8e3tcPEKnwwPVG+vP/vSqEShkwODOEeyQGod82qrIuidwIrfnsGn11qPM1jBLF4MqguTXXYzm58d0dY+/wdpg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.6.0" + "@babel/helper-create-class-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-typescript" "^7.2.0" + "@babel/plugin-syntax-typescript" "^7.7.4" "@babel/plugin-transform-typescript@~7.4.0": version "7.4.5" @@ -947,6 +966,20 @@ silent-error "^1.1.1" util.promisify "^1.0.0" +"@ember/optional-features@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@ember/optional-features/-/optional-features-1.1.0.tgz#0ff27ba6e9fc1f1e936e024f6a7cc33a96abffba" + integrity sha512-ST3+gIRH2WtgGcOtf42uM9WaXBY4dj4//zoTYV6GPe8cp0XdJEU63oMo9SbE6+0Efp8lvk96LsX+DVDDZy9Rmw== + dependencies: + chalk "^2.4.2" + co "^4.6.0" + ember-cli-version-checker "^3.1.3" + glob "^7.1.5" + inquirer "^6.5.1" + mkdirp "^0.5.1" + silent-error "^1.1.1" + util.promisify "^1.0.0" + "@ember/ordered-set@^2.0.3": version "2.0.3" resolved "https://registry.npmjs.org/@ember/ordered-set/-/ordered-set-2.0.3.tgz#2ac1ca73b3bd116063cae814898832ef434a57f9" @@ -1095,6 +1128,30 @@ "@glimmer/util" "^0.42.0" "@glimmer/wire-format" "^0.42.0" +"@glimmer/component@^1.0.0-beta.3": + version "1.0.0-beta.3" + resolved "https://registry.npmjs.org/@glimmer/component/-/component-1.0.0-beta.3.tgz#bc466f4da776cb74bc8c6c836d6aa658f2161bee" + integrity sha512-I/NTVE8Nz0gjvAlO9mAdP0+XumRj65zqh0+J2jBDxAQHJTw9R55MTx4nvkbQteh6+sWPixFzgtt/oLzy8L9sxQ== + dependencies: + "@glimmer/di" "^0.1.9" + "@glimmer/env" "^0.1.7" + "@glimmer/util" "^0.44.0" + broccoli-file-creator "^2.1.1" + broccoli-merge-trees "^3.0.2" + ember-cli-babel "^7.7.3" + ember-cli-get-component-path-option "^1.0.0" + ember-cli-is-package-missing "^1.0.0" + ember-cli-normalize-entity-name "^1.0.0" + ember-cli-path-utils "^1.0.0" + ember-cli-string-utils "^1.1.0" + ember-cli-typescript "3.0.0" + ember-compatibility-helpers "^1.1.2" + +"@glimmer/di@^0.1.9": + version "0.1.11" + resolved "https://registry.npmjs.org/@glimmer/di/-/di-0.1.11.tgz#a6878c07a13a2c2c76fcde598a5c97637bfc4280" + integrity sha1-poeMB6E6LCx2/N5ZilyXY3v8QoA= + "@glimmer/di@^0.2.0": version "0.2.1" resolved "https://registry.npmjs.org/@glimmer/di/-/di-0.2.1.tgz#5286b6b32040232b751138f6d006130c728d4b3d" @@ -1132,6 +1189,11 @@ resolved "https://registry.npmjs.org/@glimmer/util/-/util-0.42.0.tgz#3f3a647ecaa16bbe4fc0545923d3b0a527319d78" integrity sha512-rvXxKVb7BoQUvdrEQgxyvIeqGRUFM4LZAc7X1OmIpMnoaEh3fyx/e8Bz0blF0Yk6QvHpfV/GKirhlGmfum/ISA== +"@glimmer/util@^0.44.0": + version "0.44.0" + resolved "https://registry.npmjs.org/@glimmer/util/-/util-0.44.0.tgz#45df98d73812440206ae7bda87cfe04aaae21ed9" + integrity sha512-duAsm30uVK9jSysElCbLyU6QQYO2X9iLDLBIBUcCqck9qN1o3tK2qWiHbGK5d6g8E2AJ4H88UrfElkyaJlGrwg== + "@glimmer/wire-format@^0.42.0": version "0.42.0" resolved "https://registry.npmjs.org/@glimmer/wire-format/-/wire-format-0.42.0.tgz#53f9a6cbcb9882af3a55aed83929f71799f73fab" @@ -1922,6 +1984,81 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== +"@tracerbench/core@3.0.7": + version "3.0.7" + resolved "https://registry.npmjs.org/@tracerbench/core/-/core-3.0.7.tgz#468371c917e0b70dd5075045e1be42b4afc64640" + integrity sha512-3klQeTg7WtVKNJSih6J7kbEkP3PLGUXs+rE0OxKmMTiH/pP8CeBCw4uGLL/+Ok7jc/l3fFsb6Q960Yv7kXQhrQ== + dependencies: + "@types/d3-hierarchy" "^1.1.6" + "@types/node" "*" + array-binsearch "^1.0.1" + chalk "^2.4.2" + chrome-debugging-client "^1.0.3" + d3-hierarchy "^1.1.8" + debug "^4.1.1" + devtools-protocol "0.0.665395" + handlebars "^4.4.3" + lodash.clonedeep "^4.5.0" + silent-error "^1.1.1" + tslib "^1.10.0" + +"@tracerbench/find-chrome@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@tracerbench/find-chrome/-/find-chrome-1.2.0.tgz#6a71f080ffff8d69d817df127650a0ec226c27aa" + integrity sha512-es9tJkxj5ZGndlyhLe5YuXdvXT8WqXo6gOZk2ssfJmIhRw/aUnJruYzFk3K8qH/be+pjOwQX1vsGI1gK76dP/g== + dependencies: + chrome-launcher "^0.12.0" + +"@tracerbench/message-transport@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@tracerbench/message-transport/-/message-transport-1.2.0.tgz#f75d56ad0d2f1ea38946e8d79934ec7bd20e9dc7" + integrity sha512-OealxVa0jVyNVInjfhAwvr6z8/hIUtfFAn0DP30NoWAo37tbwl3p9pgfyMWmix2kmFmIKBpcMcJpBjzbd6wfCA== + +"@tracerbench/protocol-connection@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@tracerbench/protocol-connection/-/protocol-connection-1.2.0.tgz#0c736fce2f900e76e863286311a51c810cccfc73" + integrity sha512-84nVBs4BfzZ41I0Yv2Ca2H8lclw5/lr83Ra9mcHy9WCc9V23WF6cB/9tsK4+7yvovN0N0KpJWAluf+TkQMZOUA== + dependencies: + "@tracerbench/message-transport" "^1.2.0" + "@tracerbench/protocol-transport" "^1.2.0" + race-cancellation "^0.4.1" + +"@tracerbench/protocol-transport@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@tracerbench/protocol-transport/-/protocol-transport-1.2.0.tgz#4d54824118f2a0d8c1b74f7b6f53816507d20d2f" + integrity sha512-FePY6aKm4w2UR/LUzFYhheT5SV9AWTl+Xqk4c9oq27pa4erfwXgbM8osCnAP4C3MCxn4UPxnwI7oOzLU/4PwLQ== + dependencies: + "@tracerbench/message-transport" "^1.2.0" + race-cancellation "^0.4.1" + +"@tracerbench/spawn-chrome@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@tracerbench/spawn-chrome/-/spawn-chrome-1.2.0.tgz#be133e1579c62454c3b3da42ad1cb8cd2fde6ee3" + integrity sha512-ht4StGdwAMNlBXu9uOQsVM64mOrNHPrAtdRZh/vwVlP+H71iQpXFzcbSYrDsRZvSlMNrj5CyWeaFBUlQNJmn5g== + dependencies: + "@tracerbench/find-chrome" "^1.2.0" + "@tracerbench/spawn" "^1.2.0" + tmp "^0.1.0" + +"@tracerbench/spawn@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@tracerbench/spawn/-/spawn-1.2.0.tgz#28783283229ad65ca68f5d28ce377b41e9d286af" + integrity sha512-nuupj9/OcrLnkPKgtXw9iKgPuJ4nSHpYjQ5quCRo5xi9o01X9ZRVBu+Fgcms+4XmL3iFyvaTfXUrkaL4c7ASyA== + dependencies: + "@tracerbench/message-transport" "^1.2.0" + debug "^4.1.1" + execa "^3.3.0" + race-cancellation "^0.4.1" + +"@tracerbench/websocket-message-transport@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@tracerbench/websocket-message-transport/-/websocket-message-transport-1.2.0.tgz#4b17734549d44896fc416187353ab650b1a9dfed" + integrity sha512-6/a/dWQoPrAlX2NmEhjxFk9TsyrmggDuL2KO/E9+KwPZcXwlH3rJ9N2hBg2FlXYyfoTghoRpElMZiGdHO3PSGQ== + dependencies: + "@tracerbench/message-transport" "^1.2.0" + race-cancellation "^0.4.1" + ws "^7.1.2" + "@types/acorn@^4.0.3": version "4.0.5" resolved "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.5.tgz#e29fdf884695e77be4e99e67d748f5147255752d" @@ -1934,6 +2071,11 @@ resolved "https://registry.npmjs.org/@types/broccoli-plugin/-/broccoli-plugin-1.3.0.tgz#38f8462fecaebc4e09a32e4d4ed1b9808f75bbca" integrity sha512-SLk4/hFc2kGvgwNFrpn2O1juxFOllcHAywvlo7VwxfExLzoz1GGJ0oIZCwj5fwSpvHw4AWpZjJ1fUvb62PDayQ== +"@types/d3-hierarchy@^1.1.6": + version "1.1.6" + resolved "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz#4c017521900813ea524c9ecb8d7985ec26a9ad9a" + integrity sha512-vvSaIDf/Ov0o3KwMT+1M8+WbnnlRiGjlGD5uvk83a1mPCTd/E5x12bUJ/oP55+wUY/4Kb5kc67rVpVGJ2KUHxg== + "@types/ember-qunit@^3.4.6": version "3.4.6" resolved "https://registry.npmjs.org/@types/ember-qunit/-/ember-qunit-3.4.6.tgz#b09ae84192c16fbd1da0d1be26fa02b67691250d" @@ -1942,7 +2084,15 @@ "@types/ember" "*" "@types/ember-test-helpers" "*" -"@types/ember-test-helpers@*", "@types/ember-test-helpers@~1.0.5": +"@types/ember-qunit@^3.4.7": + version "3.4.7" + resolved "https://registry.npmjs.org/@types/ember-qunit/-/ember-qunit-3.4.7.tgz#57dad9f01ff6136cdadf2a06b7089af91661d3b5" + integrity sha512-1VK5oazKvIenJK9M1DwXncgnpk+G1B1O4N7+ABml+V7+EGVhqpxfS3FRi3Y27+luPCQ3Ya1M8Da76fO85DNLrQ== + dependencies: + "@types/ember" "*" + "@types/ember-test-helpers" "*" + +"@types/ember-test-helpers@*": version "1.0.5" resolved "https://registry.npmjs.org/@types/ember-test-helpers/-/ember-test-helpers-1.0.5.tgz#b0a8a3b9386ddf372eef11ba95487be806674ca2" integrity sha512-LewaqxBqUDxT40Lb8M7r0pDlF78b5O87mQRK+8GqrreK/s3MSX/BXgxi5hbWF3TPJ57iX3G4S2TNO8z8soXYdA== @@ -1952,6 +2102,16 @@ "@types/jquery" "*" "@types/rsvp" "*" +"@types/ember-test-helpers@~1.0.6": + version "1.0.6" + resolved "https://registry.npmjs.org/@types/ember-test-helpers/-/ember-test-helpers-1.0.6.tgz#4d63faf26bae0511289c281fce019800b167f7fd" + integrity sha512-NhYw7NdY+l/R94ePq3FqGoejJDRrqU0wPLU1itZBLGS8z6BGOBPS0stip9oWnGs5kDgTVWD/m56gkY3mbSbz0Q== + dependencies: + "@types/ember" "*" + "@types/htmlbars-inline-precompile" "*" + "@types/jquery" "*" + "@types/rsvp" "*" + "@types/ember-testing-helpers@~0.0.3": version "0.0.3" resolved "https://registry.npmjs.org/@types/ember-testing-helpers/-/ember-testing-helpers-0.0.3.tgz#1a6cfc484b63d19ddd822c87e4dd710597db17d9" @@ -1984,6 +2144,31 @@ "@types/jquery" "*" "@types/rsvp" "*" +"@types/ember@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@types/ember/-/ember-3.1.1.tgz#401810fa3ba911855d609d334ea77990b9b94802" + integrity sha512-8Yu+7qvcRA80NXuJrgii25hi4B/P3lrCug34O2ksPNHk2z1RaLnjKSj0cptQXMQAMnVtM0Vye8lAwUle47/M9w== + dependencies: + "@types/ember__application" "*" + "@types/ember__array" "*" + "@types/ember__component" "*" + "@types/ember__controller" "*" + "@types/ember__debug" "*" + "@types/ember__engine" "*" + "@types/ember__error" "*" + "@types/ember__object" "*" + "@types/ember__polyfills" "*" + "@types/ember__routing" "*" + "@types/ember__runloop" "*" + "@types/ember__service" "*" + "@types/ember__string" "*" + "@types/ember__template" "*" + "@types/ember__test" "*" + "@types/ember__utils" "*" + "@types/htmlbars-inline-precompile" "*" + "@types/jquery" "*" + "@types/rsvp" "*" + "@types/ember__application@*": version "3.0.7" resolved "https://registry.npmjs.org/@types/ember__application/-/ember__application-3.0.7.tgz#8a34f6d75661256d6d6859dcdde848bdd3bea47e" @@ -2083,6 +2268,11 @@ resolved "https://registry.npmjs.org/@types/ember__string/-/ember__string-3.0.6.tgz#79b10b0fc0136a9c86536bc55cbd18cae9a9bd3b" integrity sha512-VBKH8nR/uK2tlr9eob8Nl+0cKP62GNtFWqq4PVGusnBMPFktGley1gsUhqNYJ9G3y2mvVfikicxM2/bE5AMYLA== +"@types/ember__template@*": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/ember__template/-/ember__template-3.0.0.tgz#d499ebf000faa371c1c98124633b9864be69b968" + integrity sha512-aWNg/kL2QToE0fwI8MVgAr2upWyAUwqRv2sp3CpypsMTOC1lZizIehz8QI6w1m1+Eh1WYs/89gvuM3mTc4OyIw== + "@types/ember__test-helpers@~0.7.8": version "0.7.8" resolved "https://registry.npmjs.org/@types/ember__test-helpers/-/ember__test-helpers-0.7.8.tgz#16d6e060ec88e5510756d00e8f191fa48d9e0362" @@ -2679,6 +2869,11 @@ array-back@^3.0.1: resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== +array-binsearch@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-binsearch/-/array-binsearch-1.0.1.tgz#35586dca04ca9ab259c4c4708435acd1babb08ad" + integrity sha1-NVhtygTKmrJZxMRwhDWs0bq7CK0= + array-differ@^2.0.3: version "2.1.0" resolved "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" @@ -2830,6 +3025,11 @@ async-each@^1.0.1: resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== +async-limiter@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" @@ -4880,6 +5080,31 @@ chownr@^1.1.1: resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== +chrome-debugging-client@^1.0.3: + version "1.2.0" + resolved "https://registry.npmjs.org/chrome-debugging-client/-/chrome-debugging-client-1.2.0.tgz#23efc68b75b57c2b8cbdbdb99997cae01f0a31ea" + integrity sha512-GtC79nrKEUSZqwlzdFl1ULgYMqJmRcoI9pwLITDzQCzFHuvSDw3IFbAsMAnzSYyKo5AXa6C2uddkxG2oocu+xg== + dependencies: + "@tracerbench/find-chrome" "^1.2.0" + "@tracerbench/message-transport" "^1.2.0" + "@tracerbench/protocol-connection" "^1.2.0" + "@tracerbench/spawn" "^1.2.0" + "@tracerbench/spawn-chrome" "^1.2.0" + "@tracerbench/websocket-message-transport" "^1.2.0" + debug "^4.1.1" + race-cancellation "^0.4.1" + +chrome-launcher@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.12.0.tgz#08db81ef0f7b283c331df2c350e780c38bd0ce3a" + integrity sha512-rBUP4tvWToiileDi3UR0SbWKoUoDCYTRmVND2sdoBL1xANBgVz8V9h1yQluj3MEQaBJg0fRw7hW82uOPrJus7A== + dependencies: + "@types/node" "*" + is-wsl "^2.1.0" + lighthouse-logger "^1.0.0" + mkdirp "0.5.1" + rimraf "^2.6.1" + chrome-trace-event@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -5506,6 +5731,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + cryptiles@0.2.x: version "0.2.2" resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" @@ -5584,6 +5818,11 @@ cyclist@~0.2.2: resolved "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= +d3-hierarchy@^1.1.8: + version "1.1.9" + resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" + integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== + dag-map@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/dag-map/-/dag-map-2.0.2.tgz#9714b472de82a1843de2fba9b6876938cab44c68" @@ -5817,6 +6056,11 @@ detect-libc@^1.0.2: resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +devtools-protocol@0.0.665395: + version "0.0.665395" + resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.665395.tgz#82f57f1e9393a605907d0260972d8b5a023df807" + integrity sha512-yuxo2OYq+RC1PCU7QOqhhHHKojvZvG1A0DoYnsHpIha3P8ZERpHuLkwAkPyFa2ZdLLk7Vq2BhOS2bkPeLZ1ySg== + dezalgo@^1.0.0: version "1.0.3" resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" @@ -6259,15 +6503,15 @@ ember-cli-htmlbars@^3.0.1: strip-bom "^3.0.0" ember-cli-htmlbars@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-4.0.0.tgz#856b8e2335dc69fd9ecfc74aa0a04959e82a95de" - integrity sha512-BQpKjFYDpu6ozEoyAjn7DHljHxt5KUPUwFYOqF2NNMSJJjpky2DgoJgsaP4xG8wvSoZXwGLPUcbdtQLoOH2bIw== + version "4.0.8" + resolved "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-4.0.8.tgz#e87b62e7040bd478a2d007053bdb1644dd1685b0" + integrity sha512-B6fzlqmv2E2dl8P6UIYu3bY8nZU2kKfl1VkEIgxFAINfsu9fP65kX/bKzHqGhHF8nAtWBoXZWw6tomHKfUT/Jg== dependencies: "@ember/edition-utils" "^1.1.1" - babel-plugin-htmlbars-inline-precompile "^2.1.0" + babel-plugin-htmlbars-inline-precompile "^3.0.0" broccoli-debug "^0.6.5" broccoli-persistent-filter "^2.3.1" - broccoli-plugin "^2.0.0" + broccoli-plugin "^3.0.0" common-tags "^1.8.0" ember-cli-babel-plugin-helpers "^1.1.0" fs-copy-file-sync "^1.1.1" @@ -6276,8 +6520,8 @@ ember-cli-htmlbars@^4.0.0: json-stable-stringify "^1.0.1" mkdirp "^0.5.1" semver "^6.3.0" - strip-bom "^3.0.0" - walk-sync "^1.1.3" + strip-bom "^4.0.0" + walk-sync "^2.0.2" ember-cli-htmlbars@^4.0.3: version "4.0.3" @@ -6455,40 +6699,40 @@ ember-cli-typescript-blueprints@^3.0.0: inflection "^1.12.0" silent-error "^1.1.0" -ember-cli-typescript@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-2.0.2.tgz#464984131fbdc05655eb61d1c3cdd911d3137f0d" - integrity sha512-7I5azCTxOgRDN8aSSnJZIKSqr+MGnT+jLTUbBYqF8wu6ojs2DUnTePxUcQMcvNh3Q3B1ySv7Q/uZFSjdU9gSjA== +ember-cli-typescript@3.0.0, ember-cli-typescript@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-3.0.0.tgz#3b838d1ce9e4d22a98e68da22ceac6dc0cfd9bfc" + integrity sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA== dependencies: - "@babel/plugin-proposal-class-properties" "^7.1.0" - "@babel/plugin-transform-typescript" "~7.4.0" + "@babel/plugin-transform-typescript" "~7.5.0" ansi-to-html "^0.6.6" debug "^4.0.0" ember-cli-babel-plugin-helpers "^1.0.0" - execa "^1.0.0" - fs-extra "^7.0.0" + execa "^2.0.0" + fs-extra "^8.0.0" resolve "^1.5.0" rsvp "^4.8.1" semver "^6.0.0" stagehand "^1.0.0" - walk-sync "^1.0.0" + walk-sync "^2.0.0" -ember-cli-typescript@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-3.0.0.tgz#3b838d1ce9e4d22a98e68da22ceac6dc0cfd9bfc" - integrity sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA== +ember-cli-typescript@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-2.0.2.tgz#464984131fbdc05655eb61d1c3cdd911d3137f0d" + integrity sha512-7I5azCTxOgRDN8aSSnJZIKSqr+MGnT+jLTUbBYqF8wu6ojs2DUnTePxUcQMcvNh3Q3B1ySv7Q/uZFSjdU9gSjA== dependencies: - "@babel/plugin-transform-typescript" "~7.5.0" + "@babel/plugin-proposal-class-properties" "^7.1.0" + "@babel/plugin-transform-typescript" "~7.4.0" ansi-to-html "^0.6.6" debug "^4.0.0" ember-cli-babel-plugin-helpers "^1.0.0" - execa "^2.0.0" - fs-extra "^8.0.0" + execa "^1.0.0" + fs-extra "^7.0.0" resolve "^1.5.0" rsvp "^4.8.1" semver "^6.0.0" stagehand "^1.0.0" - walk-sync "^2.0.0" + walk-sync "^1.0.0" ember-cli-uglify@3.0.0: version "3.0.0" @@ -6728,7 +6972,7 @@ ember-cli@~3.13.1: watch-detector "^1.0.0" yam "^1.0.0" -ember-compatibility-helpers@^1.1.1, ember-compatibility-helpers@^1.2.0: +ember-compatibility-helpers@^1.1.1, ember-compatibility-helpers@^1.1.2, ember-compatibility-helpers@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/ember-compatibility-helpers/-/ember-compatibility-helpers-1.2.0.tgz#feee16c5e9ef1b1f1e53903b241740ad4b01097e" integrity sha512-pUW4MzJdcaQtwGsErYmitFRs0rlCYBAnunVzlFFUBr4xhjlCjgHJo0b53gFnhTgenNM3d3/NqLarzRhDTjXRTg== @@ -7454,7 +7698,22 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^2.0.0, execa@^2.0.4: +execa@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/execa/-/execa-2.0.4.tgz#2f5cc589c81db316628627004ea4e37b93391d8e" integrity sha512-VcQfhuGD51vQUQtKIq2fjGDLDbL6N1DTQVpYzxZ7LPIXw3HqTuIz6uxRmpV1qf8i31LHf2kjiaGI+GdHwRgbnQ== @@ -7469,6 +7728,22 @@ execa@^2.0.0, execa@^2.0.4: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^3.3.0: + version "3.4.0" + resolved "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + exists-sync@0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/exists-sync/-/exists-sync-0.0.3.tgz#b910000bedbb113b378b82f5f5a7638107622dcf" @@ -8395,6 +8670,18 @@ glob@^7.0.3, glob@^7.0.4, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.5: + version "7.1.6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -8521,6 +8808,17 @@ handlebars@^4.0.13: optionalDependencies: uglify-js "^3.1.4" +handlebars@^4.4.3: + version "4.5.3" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" + integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -8873,6 +9171,11 @@ https@^1.0.0: resolved "https://registry.npmjs.org/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4" integrity sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q= +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -9379,6 +9682,11 @@ is-wsl@^1.1.0: resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= +is-wsl@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + isarray@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -9729,6 +10037,14 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +lighthouse-logger@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz#b76d56935e9c137e86a04741f6bb9b2776e886ca" + integrity sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw== + dependencies: + debug "^2.6.8" + marky "^1.2.0" + line-stream@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/line-stream/-/line-stream-0.0.0.tgz#888b7cc7951c6a05ce4d696dd1e6b8262371bb45" @@ -10225,6 +10541,11 @@ markdown-it@^9.0.1: mdurl "^1.0.1" uc.micro "^1.0.5" +marky@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/marky/-/marky-1.2.1.tgz#a3fcf82ffd357756b8b8affec9fdbf3a30dc1b02" + integrity sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ== + matcher-collection@^1.0.0, matcher-collection@^1.0.4, matcher-collection@^1.1.1: version "1.1.2" resolved "https://registry.npmjs.org/matcher-collection/-/matcher-collection-1.1.2.tgz#1076f506f10ca85897b53d14ef54f90a5c426838" @@ -10865,6 +11186,11 @@ node-watch@0.6.0: resolved "https://registry.npmjs.org/node-watch/-/node-watch-0.6.0.tgz#ab0703b60cd270783698e57a428faa0010ed8fd0" integrity sha512-XAgTL05z75ptd7JSVejH1a2Dm1zmXYhuDr9l230Qk6Z7/7GPcnAs/UyJJ4ggsXSvWil8iOzwQLW0zuGUvHpG8g== +node-watch@0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/node-watch/-/node-watch-0.6.1.tgz#b9874111ce9f5841b1c7596120206c7b825be0e9" + integrity sha512-gwQiR7weFRV8mAtT0x0kXkZ18dfRLB45xH7q0hCOVQMLfLb2f1ZaSvR57q4/b/Vj6B0RwMNJYbvb69e1yM7qEA== + "nopt@2 || 3", nopt@^3.0.6: version "3.0.6" resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -10981,6 +11307,13 @@ npm-run-path@^3.0.0: dependencies: path-key "^3.0.0" +npm-run-path@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.0.tgz#d644ec1bd0569187d2a52909971023a0a58e8438" + integrity sha512-8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ== + dependencies: + path-key "^3.0.0" + "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -11498,6 +11831,11 @@ path-key@^3.0.0: resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -11922,6 +12260,14 @@ qunit-dom@^0.9.0: broccoli-funnel "^2.0.2" broccoli-merge-trees "^3.0.1" +qunit-dom@^0.9.2: + version "0.9.2" + resolved "https://registry.npmjs.org/qunit-dom/-/qunit-dom-0.9.2.tgz#cc7bb777e4f5faa749eca843f54e199755df8473" + integrity sha512-BPf7OZjhXo9ekgsViNjQVS9BWkm2yQsPvBoy0juvt5nOFlcBVVwHSYsgpsJOunWkI1IgA3eStAC9mQx3Zw734g== + dependencies: + broccoli-funnel "^2.0.2" + broccoli-merge-trees "^3.0.1" + qunit@^2.9.2: version "2.9.2" resolved "https://registry.npmjs.org/qunit/-/qunit-2.9.2.tgz#97919440c9c0ae838bcd3c33a2ee42f35c5ef4a0" @@ -11933,6 +12279,22 @@ qunit@^2.9.2: node-watch "0.6.0" resolve "1.9.0" +qunit@^2.9.3: + version "2.9.3" + resolved "https://registry.npmjs.org/qunit/-/qunit-2.9.3.tgz#9522a088e76f0782f70a45db92f2fd14db311bcc" + integrity sha512-RH4VYSaVsNRDthMFFboTJAJ8q4kJM5LvOqWponKUYPEAeOcmc/YFV1QsZ7ikknA3TjqliWFJYEV63vvVXaALmQ== + dependencies: + commander "2.12.2" + js-reporters "1.2.1" + minimatch "3.0.4" + node-watch "0.6.1" + resolve "1.9.0" + +race-cancellation@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/race-cancellation/-/race-cancellation-0.4.1.tgz#bd1c69bf5b836b56645a4b5b78fb9b973c46eb45" + integrity sha512-TF1vf4q/a5mwER9DoIuniE/qNIRM3Begyoe+21VUKgsyQAT4iIfSqlK7aG4Of1J1wzeATqVwbDP0dwX9GhaGcw== + ramda@^0.26.1: version "0.26.1" resolved "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" @@ -12763,11 +13125,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + shellwords@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -13821,7 +14195,7 @@ trim-right@^1.0.1: resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: version "1.10.0" resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== @@ -13919,6 +14293,11 @@ typescript@~3.6.3: resolved "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz#fea942fabb20f7e1ca7164ff626f1a9f3f70b4da" integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw== +typescript@~3.7.2: + version "3.7.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-3.7.3.tgz#b36840668a16458a7025b9eabfad11b66ab85c69" + integrity sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw== + typical@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" @@ -14387,6 +14766,13 @@ which@1.2.x: dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@1.1.3, wide-align@^1.1.0: version "1.1.3" resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -14512,6 +14898,13 @@ ws@^6.1.0: dependencies: async-limiter "~1.0.0" +ws@^7.1.2: + version "7.2.0" + resolved "https://registry.npmjs.org/ws/-/ws-7.2.0.tgz#422eda8c02a4b5dba7744ba66eebbd84bcef0ec7" + integrity sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg== + dependencies: + async-limiter "^1.0.0" + ws@~6.1.0: version "6.1.4" resolved "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" @@ -14669,3 +15062,8 @@ yuidocjs@^0.10.0: minimatch "^3.0.2" rimraf "^2.4.1" yui "^3.18.1" + +zlib@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0" + integrity sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=