From af4ad4696e0dfbe6abb82ca7bdc22e920728c8db Mon Sep 17 00:00:00 2001 From: Gaurav Munjal Date: Wed, 11 Dec 2019 03:36:51 -0500 Subject: [PATCH] [TEST] deprecation infra (#6881) Co-authored-by: Chris Thoburn --- .github/workflows/main.yml | 32 +++++ package.json | 1 + .../unpublished-test-infra/ember-cli-build.js | 26 ++++ packages/unpublished-test-infra/package.json | 36 ++++- packages/unpublished-test-infra/testem.js | 21 +++ .../tests/dummy/app/app.js | 12 ++ .../tests/dummy/app/index.html | 25 ++++ .../tests/dummy/app/resolver.js | 3 + .../tests/dummy/app/router.js | 9 ++ .../dummy/app/routes/application/template.hbs | 6 + .../tests/dummy/app/styles/app.css | 0 .../tests/dummy/app/templates/application.hbs | 1 + .../tests/dummy/config/environment.js | 52 ++++++++ .../tests/dummy/config/optional-features.json | 3 + .../tests/dummy/config/targets.js | 14 ++ .../tests/dummy/public/.gitkeep | 0 .../unpublished-test-infra/tests/index.html | 33 +++++ .../tests/test-helper.js | 8 ++ .../tests/unit/.gitkeep | 0 .../tests/unit/deprecations-stripped-test.js | 23 ++++ yarn.lock | 123 +++++++++--------- 21 files changed, 363 insertions(+), 65 deletions(-) create mode 100644 packages/unpublished-test-infra/ember-cli-build.js create mode 100644 packages/unpublished-test-infra/testem.js create mode 100644 packages/unpublished-test-infra/tests/dummy/app/app.js create mode 100644 packages/unpublished-test-infra/tests/dummy/app/index.html create mode 100644 packages/unpublished-test-infra/tests/dummy/app/resolver.js create mode 100644 packages/unpublished-test-infra/tests/dummy/app/router.js create mode 100644 packages/unpublished-test-infra/tests/dummy/app/routes/application/template.hbs create mode 100644 packages/unpublished-test-infra/tests/dummy/app/styles/app.css create mode 100644 packages/unpublished-test-infra/tests/dummy/app/templates/application.hbs create mode 100644 packages/unpublished-test-infra/tests/dummy/config/environment.js create mode 100644 packages/unpublished-test-infra/tests/dummy/config/optional-features.json create mode 100644 packages/unpublished-test-infra/tests/dummy/config/targets.js create mode 100644 packages/unpublished-test-infra/tests/dummy/public/.gitkeep create mode 100644 packages/unpublished-test-infra/tests/index.html create mode 100644 packages/unpublished-test-infra/tests/test-helper.js create mode 100644 packages/unpublished-test-infra/tests/unit/.gitkeep create mode 100644 packages/unpublished-test-infra/tests/unit/deprecations-stripped-test.js diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7550fb9496a..b2da8a8c2cd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,6 +30,38 @@ jobs: - name: Check for TypeScript problems run: yarn problems + test-infra: + timeout-minutes: 4 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Yarn install + run: yarn --frozen-lockfile + - name: Yarn test infra compatWith 3.0 + env: + COMPAT_WITH: '3.0' + run: yarn test:infra + - name: Yarn test infra compatWith 3.8 + env: + COMPAT_WITH: '3.8' + run: yarn test:infra + - name: Yarn test infra compatWith 3.12 + env: + COMPAT_WITH: '3.12' + run: yarn test:infra + - name: Yarn test infra compatWith 3.16 + env: + COMPAT_WITH: '3.16' + run: yarn test:infra + - name: Yarn test infra compatWith 99.0 + env: + COMPAT_WITH: '99.0' + run: yarn test:infra + + basic-tests: timeout-minutes: 15 strategy: diff --git a/package.json b/package.json index 57c26191b3f..99a37bb19c4 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "test:docs": "yarn workspace ember-data test:docs", "test:encapsulation": "lerna run --scope='*-encapsulation-test-app' test", "test:fastboot": "yarn workspace fastboot-test-app test:try-one", + "test:infra": "yarn workspace @ember-data/unpublished-test-infra test", "test-external:ember-m3": "./bin/test-external-partner-project.js ember-m3 https://github.com/hjdivad/ember-m3.git", "test-external:ember-data-change-tracker": "./bin/test-external-partner-project.js ember-data-change-tracker https://github.com/danielspaniel/ember-data-change-tracker.git", "test-external:model-fragments": "./bin/test-external-partner-project.js model-fragments https://github.com/lytics/ember-data-model-fragments.git", diff --git a/packages/unpublished-test-infra/ember-cli-build.js b/packages/unpublished-test-infra/ember-cli-build.js new file mode 100644 index 00000000000..9e4f26563e5 --- /dev/null +++ b/packages/unpublished-test-infra/ember-cli-build.js @@ -0,0 +1,26 @@ +/* eslint node/no-unpublished-require: 'off' */ + +'use strict'; + +const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); + +const isProd = true; +const compatWith = process.env.COMPAT_WITH || '0.0.0'; + +module.exports = function(defaults) { + let app = new EmberAddon(defaults, { + emberData: { + compatWith, + }, + babel: { + // this ensures that the same build-time code stripping that is done + // for library packages is also done for our tests and dummy app + plugins: [...require('@ember-data/private-build-infra/src/debug-macros')(null, isProd, compatWith)], + }, + 'ember-cli-babel': { + throwUnlessParallelizable: true, + }, + }); + + return app.toTree(); +}; diff --git a/packages/unpublished-test-infra/package.json b/packages/unpublished-test-infra/package.json index 85dd780f9b3..74ac6f38e91 100644 --- a/packages/unpublished-test-infra/package.json +++ b/packages/unpublished-test-infra/package.json @@ -13,20 +13,42 @@ "doc": "doc", "test": "tests" }, - "scripts": {}, + "scripts": { + "test": "ember test" + }, "dependencies": { "@ember-data/private-build-infra": "3.16.0-alpha.2", - "@ember/edition-utils": "^1.1.1", - "ember-cli-babel": "^7.12.0", - "ember-cli-blueprint-test-helpers": "^0.19.1", + "ember-cli-babel": "^7.13.0", "ember-cli-typescript": "^3.1.1", "ember-get-config": "^0.2.4", + "ember-cli-blueprint-test-helpers": "^0.19.2", + "@ember/edition-utils": "^1.1.1", + "testem": "^3.0.2" + }, + "devDependencies": { + "@ember/optional-features": "^1.1.0", + "ember-cli": "~3.14.0", + "ember-cli-dependency-checker": "^3.2.0", + "ember-cli-htmlbars": "^4.0.9", + "ember-cli-inject-live-reload": "^2.0.2", + "ember-cli-shims": "^1.2.0", + "ember-cli-test-loader": "^2.2.0", + "ember-cli-test-info": "^1.0.0", + "ember-disable-prototype-extensions": "^1.1.3", + "ember-export-application-global": "^2.0.1", + "ember-load-initializers": "^2.1.1", + "ember-maybe-import-regenerator": "^0.1.6", "ember-qunit": "^4.6.0", + "ember-resolver": "^6.0.0", + "ember-source": "^3.15.0", + "loader.js": "^4.7.0", "qunit": "^2.9.3", - "rsvp": "^4.8.5", - "testem": "^3.0.2" + "rsvp": "^4.8.5" }, "engines": { - "node": ">= 8.0.0" + "node": "8.* || >= 10.*" + }, + "ember-addon": { + "configPath": "tests/dummy/config" } } diff --git a/packages/unpublished-test-infra/testem.js b/packages/unpublished-test-infra/testem.js new file mode 100644 index 00000000000..6edd28bdf63 --- /dev/null +++ b/packages/unpublished-test-infra/testem.js @@ -0,0 +1,21 @@ +module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: ['Chrome'], + launch_in_dev: ['Chrome'], + browser_start_timeout: 120, + browser_args: { + Chrome: { + ci: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.CI ? '--no-sandbox' : null, + '--headless', + '--disable-dev-shm-usage', + '--disable-software-rasterizer', + '--mute-audio', + '--remote-debugging-port=0', + '--window-size=1440,900', + ].filter(Boolean), + }, + }, +}; diff --git a/packages/unpublished-test-infra/tests/dummy/app/app.js b/packages/unpublished-test-infra/tests/dummy/app/app.js new file mode 100644 index 00000000000..8df91db5652 --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/app/app.js @@ -0,0 +1,12 @@ +import Application from '@ember/application'; +import Resolver from './resolver'; +import loadInitializers from 'ember-load-initializers'; +import config from './config/environment'; + +export default class App extends Application { + modulePrefix = config.modulePrefix; + podModulePrefix = config.podModulePrefix; + Resolver = Resolver; +} + +loadInitializers(App, config.modulePrefix); diff --git a/packages/unpublished-test-infra/tests/dummy/app/index.html b/packages/unpublished-test-infra/tests/dummy/app/index.html new file mode 100644 index 00000000000..61400b20f56 --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/app/index.html @@ -0,0 +1,25 @@ + + + + + + Dummy + + + + {{content-for "head"}} + + + + + {{content-for "head-footer"}} + + + {{content-for "body"}} + + + + + {{content-for "body-footer"}} + + diff --git a/packages/unpublished-test-infra/tests/dummy/app/resolver.js b/packages/unpublished-test-infra/tests/dummy/app/resolver.js new file mode 100644 index 00000000000..2fb563d6c04 --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/app/resolver.js @@ -0,0 +1,3 @@ +import Resolver from 'ember-resolver'; + +export default Resolver; diff --git a/packages/unpublished-test-infra/tests/dummy/app/router.js b/packages/unpublished-test-infra/tests/dummy/app/router.js new file mode 100644 index 00000000000..3c68e32dd99 --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/app/router.js @@ -0,0 +1,9 @@ +import EmberRouter from '@ember/routing/router'; +import config from './config/environment'; + +export default class Router extends EmberRouter { + location = config.locationType; + rootURL = config.rootURL; +} + +Router.map(function() {}); diff --git a/packages/unpublished-test-infra/tests/dummy/app/routes/application/template.hbs b/packages/unpublished-test-infra/tests/dummy/app/routes/application/template.hbs new file mode 100644 index 00000000000..1c967ea89c3 --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/app/routes/application/template.hbs @@ -0,0 +1,6 @@ + +{{outlet}} diff --git a/packages/unpublished-test-infra/tests/dummy/app/styles/app.css b/packages/unpublished-test-infra/tests/dummy/app/styles/app.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/unpublished-test-infra/tests/dummy/app/templates/application.hbs b/packages/unpublished-test-infra/tests/dummy/app/templates/application.hbs new file mode 100644 index 00000000000..e2147cab02d --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/app/templates/application.hbs @@ -0,0 +1 @@ +{{outlet}} \ No newline at end of file diff --git a/packages/unpublished-test-infra/tests/dummy/config/environment.js b/packages/unpublished-test-infra/tests/dummy/config/environment.js new file mode 100644 index 00000000000..e4920474dea --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/config/environment.js @@ -0,0 +1,52 @@ +'use strict'; + +module.exports = function(environment) { + let ENV = { + modulePrefix: 'dummy', + environment, + rootURL: '/', + locationType: 'auto', + EmberENV: { + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true + }, + EXTEND_PROTOTYPES: { + // Prevent Ember Data from overriding Date.parse. + Date: false, + }, + }, + + APP: { + // Here you can pass flags/options to your application instance + // when it is created + }, + compatWith: process.env.COMPAT_WITH, + }; + + if (environment === 'development') { + // ENV.APP.LOG_RESOLVER = true; + // ENV.APP.LOG_ACTIVE_GENERATION = true; + // ENV.APP.LOG_TRANSITIONS = true; + // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; + // ENV.APP.LOG_VIEW_LOOKUPS = true; + } + + if (environment === 'test') { + // Testem prefers this... + ENV.locationType = 'none'; + + // keep test console output quieter + ENV.APP.LOG_ACTIVE_GENERATION = false; + ENV.APP.LOG_VIEW_LOOKUPS = false; + + ENV.APP.rootElement = '#ember-testing'; + ENV.APP.autoboot = false; + } + + if (environment === 'production') { + // here you can enable a production-specific feature + } + + return ENV; +}; diff --git a/packages/unpublished-test-infra/tests/dummy/config/optional-features.json b/packages/unpublished-test-infra/tests/dummy/config/optional-features.json new file mode 100644 index 00000000000..b1902623ae7 --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/config/optional-features.json @@ -0,0 +1,3 @@ +{ + "jquery-integration": false +} diff --git a/packages/unpublished-test-infra/tests/dummy/config/targets.js b/packages/unpublished-test-infra/tests/dummy/config/targets.js new file mode 100644 index 00000000000..f14319316df --- /dev/null +++ b/packages/unpublished-test-infra/tests/dummy/config/targets.js @@ -0,0 +1,14 @@ +'use strict'; + +const browsers = ['last 1 Chrome versions', 'last 1 Firefox versions', 'last 1 Safari versions']; + +const isCI = !!process.env.CI; +const isProduction = process.env.EMBER_ENV === 'production'; + +if (isCI || isProduction) { + browsers.push('ie 11'); +} + +module.exports = { + browsers, +}; diff --git a/packages/unpublished-test-infra/tests/dummy/public/.gitkeep b/packages/unpublished-test-infra/tests/dummy/public/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/unpublished-test-infra/tests/index.html b/packages/unpublished-test-infra/tests/index.html new file mode 100644 index 00000000000..5209b852321 --- /dev/null +++ b/packages/unpublished-test-infra/tests/index.html @@ -0,0 +1,33 @@ + + + + + + Dummy Tests + + + + {{content-for "head"}} + {{content-for "test-head"}} + + + + + + {{content-for "head-footer"}} + {{content-for "test-head-footer"}} + + + {{content-for "body"}} + {{content-for "test-body"}} + + + + + + + + {{content-for "body-footer"}} + {{content-for "test-body-footer"}} + + diff --git a/packages/unpublished-test-infra/tests/test-helper.js b/packages/unpublished-test-infra/tests/test-helper.js new file mode 100644 index 00000000000..0382a848dd0 --- /dev/null +++ b/packages/unpublished-test-infra/tests/test-helper.js @@ -0,0 +1,8 @@ +import Application from '../app'; +import config from '../config/environment'; +import { setApplication } from '@ember/test-helpers'; +import { start } from 'ember-qunit'; + +setApplication(Application.create(config.APP)); + +start(); diff --git a/packages/unpublished-test-infra/tests/unit/.gitkeep b/packages/unpublished-test-infra/tests/unit/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/unpublished-test-infra/tests/unit/deprecations-stripped-test.js b/packages/unpublished-test-infra/tests/unit/deprecations-stripped-test.js new file mode 100644 index 00000000000..08355443fcd --- /dev/null +++ b/packages/unpublished-test-infra/tests/unit/deprecations-stripped-test.js @@ -0,0 +1,23 @@ +import { module, test } from 'ember-qunit'; +import config from 'dummy/config/environment'; +import { DEPRECATE_EVENTED_API_USAGE } from '@ember-data/private-build-infra/deprecations'; + +const { compatWith } = config; + +module('test compatWith', function() { + test('deprecation strips', function(assert) { + let deprecation_stripped = true; + + if (DEPRECATE_EVENTED_API_USAGE) { + deprecation_stripped = false; + } + + if (compatWith === '3.0' || compatWith === '3.8') { + assert.equal(deprecation_stripped, false, 'deprecation code was not stripped'); + } else if (compatWith === '3.12' || compatWith === '3.16' || compatWith === '99.0') { + assert.equal(deprecation_stripped, true, 'deprecation code was stripped'); + } else { + // do nothing + } + }); +}); diff --git a/yarn.lock b/yarn.lock index 36d674478ed..a9a2be5728b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -596,9 +596,9 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-runtime@^7.6.0": - version "7.7.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.5.tgz#b0bd98f54f10b068d66c55bf85c7ab29587627a6" - integrity sha512-X+w9wJRzOoAPBfTEcFJisVppQ8OTQMxrVgmi7ZLVWehqVd8ciHN09A1XjB91Iw+Sgf77Y9Oy7CfxKNr1tVkK7g== + version "7.7.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.6.tgz#4f2b548c88922fb98ec1c242afd4733ee3e12f61" + integrity sha512-tajQY+YmXR7JjTwRvwL4HePqoL3DYxpYXIHKVvrOIvJmeHe2y1w4tz5qz9ObUDC9m76rCzIMPyn4eERuwA4a4A== dependencies: "@babel/helper-module-imports" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -685,9 +685,9 @@ regenerator-runtime "^0.13.2" "@babel/preset-env@^7.0.0", "@babel/preset-env@^7.7.0": - version "7.7.5" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.5.tgz#f28573ed493edb4ba763b37fb4fbb85601469370" - integrity sha512-wDPbiaZdGzsJuTWlpLHJxmwslwHGLZ8F5v69zX3oAWeTOFWdy4OJHoTKg26oAnFg052v+/LAPY5os9KB0LrOEA== + version "7.7.6" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.6.tgz#39ac600427bbb94eec6b27953f1dfa1d64d457b2" + integrity sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ== dependencies: "@babel/helper-module-imports" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -742,9 +742,9 @@ semver "^5.5.0" "@babel/runtime@^7.7.0": - version "7.7.5" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.5.tgz#4b087f183f5d83647744d4157f66199081d17a00" - integrity sha512-UXhClKWTL7/vlYX49kETXti6VbpPJK/pdsIOqUMhUUES/lqThpNTsmC/0aU/IW4uozDUx17axjeqel7SCYF6EQ== + version "7.7.6" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.6.tgz#d18c511121aff1b4f2cd1d452f1bac9601dd830f" + integrity sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw== dependencies: regenerator-runtime "^0.13.2" @@ -2110,9 +2110,9 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*", "@types/node@>= 8": - version "12.12.14" - resolved "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz#1c1d6e3c75dba466e0326948d56e8bd72a1903d2" - integrity sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA== + version "12.12.17" + resolved "https://registry.npmjs.org/@types/node/-/node-12.12.17.tgz#191b71e7f4c325ee0fb23bc4a996477d92b8c39b" + integrity sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA== "@types/qunit@^2.5.3": version "2.9.0" @@ -4337,7 +4337,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.6.0, browserslist@^4.8.0: +browserslist@^4.6.0, browserslist@^4.8.2: version "4.8.2" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== @@ -5262,11 +5262,11 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.4.7: - version "3.4.7" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.7.tgz#39f8080b1d92a524d6d90505c42b9c5c1eb90611" - integrity sha512-57+mgz/P/xsGdjwQYkwtBZR3LuISaxD1dEwVDtbk8xJMqAmwqaxLOvnNT7kdJ7jYE/NjNptyzXi+IQFMi/2fCw== + version "3.4.8" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.8.tgz#f72e6a4ed76437ea710928f44615f926a81607d5" + integrity sha512-l3WTmnXHV2Sfu5VuD7EHE2w7y+K68+kULKt5RJg8ZJk3YhHF1qLD4O8v8AmNq+8vbOwnPFFDvds25/AoEvMqlQ== dependencies: - browserslist "^4.8.0" + browserslist "^4.8.2" semver "^6.3.0" core-js@2.4.1: @@ -5275,9 +5275,9 @@ core-js@2.4.1: integrity sha1-TekR5mew6ukSTjQlS1OupvxhjT4= core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: - version "2.6.10" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" - integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== + version "2.6.11" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== core-object@^3.1.5: version "3.1.5" @@ -5667,6 +5667,11 @@ detect-libc@^1.0.2: resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +detect-newline@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + devtools-protocol@0.0.665395: version "0.0.665395" resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.665395.tgz#82f57f1e9393a605907d0260972d8b5a023df807" @@ -6049,9 +6054,9 @@ ember-cli-htmlbars-inline-precompile@^2.1.0: silent-error "^1.1.0" ember-cli-htmlbars@^4.0.0, ember-cli-htmlbars@^4.0.9: - version "4.0.9" - resolved "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-4.0.9.tgz#a4f56f2f91ee4bf3ef4d1b3ec1d653800d05251b" - integrity sha512-6WJXN/XX3ylczGMVxpPIFWjieS0MDUGPQaW0nTqo/gT91WaH+DX5/4tySDKtjM5e32oFN0OXFOk8AhePzuw3Aw== + version "4.1.0" + resolved "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-4.1.0.tgz#2abb96d20d22d024f384df3691ad9d667ccabbe7" + integrity sha512-ZxVtixNPvtdCyYd9AdgCfSVO/WWLHdvK0WpTzbZ+/iTbMH0unNypJ8o2GY6DbArEB/PE6bV/Ta3khYURyuH47g== dependencies: "@ember/edition-utils" "^1.1.1" babel-plugin-htmlbars-inline-precompile "^3.0.0" @@ -6060,11 +6065,10 @@ ember-cli-htmlbars@^4.0.0, ember-cli-htmlbars@^4.0.9: 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" + fs-tree-diff "^2.0.1" hash-for-dep "^1.5.1" heimdalljs-logger "^0.1.10" json-stable-stringify "^1.0.1" - mkdirp "^0.5.1" semver "^6.3.0" strip-bom "^4.0.0" walk-sync "^2.0.2" @@ -6564,9 +6568,9 @@ ember-source@^3.15.0: silent-error "^1.1.1" ember-template-lint@^1.1.0: - version "1.9.0" - resolved "https://registry.npmjs.org/ember-template-lint/-/ember-template-lint-1.9.0.tgz#a3ef6ac1d1ba415d3a1f46c2911a06dea292c1a3" - integrity sha512-M6C/3dOiUUhmHkk4oWTQ+8aXr49M5pJOSrV0oB3TWrYkNkzZg0y+PM60BYX/3xzwCzUQ91DPbBPTBVmMsVflXg== + version "1.10.0" + resolved "https://registry.npmjs.org/ember-template-lint/-/ember-template-lint-1.10.0.tgz#490acdb312fa8e2d484c397c03b26bb366bc6f24" + integrity sha512-R7RsmOFoC+LlvM+Wu7TvSj8ZQxIM8ryCFCdGfcOEBCdlqRo6vgJ/jHy8CRITc8RlbrKJDPcaNDxHcNWfto1BqA== dependencies: "@glimmer/syntax" "^0.44.0" chalk "^2.0.0" @@ -7561,11 +7565,6 @@ fromentries@^1.2.0: resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz#e6aa06f240d6267f913cea422075ef88b63e7897" integrity sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ== -fs-copy-file-sync@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz#11bf32c096c10d126e5f6b36d06eece776062918" - integrity sha512-2QY5eeqVv4m2PfyMiEuy9adxNP+ajf+8AR05cEi+OAzPcOj90hvFImeZhTmKLBgSd9EvG33jsD7ZRxsx9dThkQ== - fs-extra@^0.24.0: version "0.24.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.24.0.tgz#d4e4342a96675cb7846633a6099249332b539952" @@ -10502,9 +10501,11 @@ normalize-url@^3.3.0: integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + version "1.1.1" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" npm-git-info@^1.0.3: version "1.0.3" @@ -10525,6 +10526,11 @@ npm-lifecycle@^3.1.2: umask "^1.1.0" which "^1.3.1" +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0, npm-package-arg@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" @@ -10536,9 +10542,9 @@ npm-lifecycle@^3.1.2: validate-npm-package-name "^3.0.0" npm-packlist@^1.1.6, npm-packlist@^1.4.4: - version "1.4.6" - resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" - integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== + version "1.4.7" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" + integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -11544,14 +11550,14 @@ read-cmd-shim@^1.0.1: graceful-fs "^4.1.2" "read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: - version "2.1.0" - resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.0.tgz#e3d42e6c35ea5ae820d9a03ab0c7291217fc51d5" - integrity sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A== + version "2.1.1" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1" + integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== dependencies: glob "^7.1.1" json-parse-better-errors "^1.0.1" normalize-package-data "^2.0.0" - slash "^1.0.0" + npm-normalize-package-bin "^1.0.0" optionalDependencies: graceful-fs "^4.1.2" @@ -12057,9 +12063,9 @@ rollup-pluginutils@^2.8.1: estree-walker "^0.6.1" rollup@^1.12.0: - version "1.27.8" - resolved "https://registry.npmjs.org/rollup/-/rollup-1.27.8.tgz#94288a957af9f4c2380b73a17494d87705997d0f" - integrity sha512-EVoEV5rAWl+5clnGznt1KY8PeVkzVQh/R0d2s3gHEkN7gfoyC4JmvIVuCtPbYE8NM5Ep/g+nAmvKXBjzaqTsHA== + version "1.27.9" + resolved "https://registry.npmjs.org/rollup/-/rollup-1.27.9.tgz#742f1234c1fa935f35149a433807da675b10f9a6" + integrity sha512-8AfW4cJTPZfG6EXWwT/ujL4owUsDI1Xl8J1t+hvK4wDX81F5I4IbwP9gvGbHzxnV19fnU4rRABZQwZSX9J402Q== dependencies: "@types/estree" "*" "@types/node" "*" @@ -12222,9 +12228,9 @@ send@0.17.1: statuses "~1.5.0" serialize-javascript@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.1.tgz#952907a04a3e3a75af7f73d92d15e233862048b2" - integrity sha512-MPLPRpD4FNqWq9tTIjYG5LesFouDhdyH0EPY3gVK4DRD5+g4aDqdNSzLIwceulo3Yj+PL1bPh6laE5+H6LTcrQ== + version "2.1.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== serve-static@1.14.1: version "1.14.1" @@ -12490,16 +12496,17 @@ sort-keys@^2.0.0: is-plain-obj "^1.0.0" sort-object-keys@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.2.tgz#d3a6c48dc2ac97e6bc94367696e03f6d09d37952" - integrity sha1-06bEjcKsl+a8lDZ2luA/bQnTeVI= + version "1.1.3" + resolved "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" + integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== sort-package-json@^1.22.1: - version "1.30.0" - resolved "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.30.0.tgz#bd7df0261ff10d3708f587defd9fcf81ff0569ec" - integrity sha512-1QMmOyfurS1X6PfIGqZTYcGjuCKxki4uMwzw87oAwPQiQeaDdgI7eE5bZN5CSFU5P3Hc2UgV5o4e+wIuhueoOg== + version "1.31.0" + resolved "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.31.0.tgz#778c652b1ee88c15337b258d3ae7e47576e4fb88" + integrity sha512-zBdnTpMCJNZszbPcAbGIAgfRQ0A0dF/ZOsQdUHICZ6XLuIQK1Mcwp8zfkF3ySg2lT2oKxU4dVhh/9tZxGLBU0A== dependencies: detect-indent "^6.0.0" + detect-newline "3.1.0" glob "^7.1.6" sort-object-keys "^1.1.2" @@ -13495,9 +13502,9 @@ uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.7.1" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.1.tgz#35c7de17971a4aa7689cd2eae0a5b39bb838c0c5" - integrity sha512-pnOF7jY82wdIhATVn87uUY/FHU+MDUdPLkmGFvGoclQmeu229eTkbG5gjGGBi3R7UuYYSEeYXY/TTY5j2aym2g== + version "3.7.2" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9" + integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA== dependencies: commander "~2.20.3" source-map "~0.6.1"