From 1984a466d9b7994437200ef35395eaec17e8ab3d Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 10:41:48 -0800 Subject: [PATCH 01/16] Use @embroider/test-setup and get embroider passing --- .github/workflows/ci.yml | 4 +- config/ember-try.js | 43 +- ember-cli-build.js | 28 +- package.json | 11 +- yarn.lock | 1013 +++++++++++++++++++++++++++----------- 5 files changed, 764 insertions(+), 335 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c4bf1efb..08167416 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,8 +43,8 @@ jobs: - ember-default-with-jquery - ember-default-with-mocha - ember-classic - - embroider - - embroider-with-mocha + - embroider-safe + - embroider-safe-with-mocha - embroider-optimized - embroider-optimized-with-mocha - ember-lts-3.20 diff --git a/config/ember-try.js b/config/ember-try.js index fa31e774..85bacffd 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -1,6 +1,7 @@ 'use strict'; const getChannelURL = require('ember-source-channel-url'); +const { embroiderSafe, embroiderOptimized } = require('@embroider/test-setup'); const command = [ 'ember', @@ -94,48 +95,30 @@ module.exports = async function() { } } }, - { - name: 'embroider', - npm: { - devDependencies: { - '@embroider/core': '*', - '@embroider/webpack': '*', - '@embroider/compat': '*', - }, + embroiderSafe(), + embroiderSafe({ + name: 'embroider-safe-with-mocha', + env: { + EMBROIDER_TEST_SETUP_OPTIONS: 'safe' }, - }, - { - name: 'embroider-with-mocha', npm: { devDependencies: { - '@embroider/core': '*', - '@embroider/webpack': '*', - '@embroider/compat': '*', 'ember-mocha': '*', }, }, - }, - { - name: 'embroider-optimized', - npm: { - devDependencies: { - '@embroider/core': '*', - '@embroider/webpack': '*', - '@embroider/compat': '*', - }, - } - }, - { + }), + embroiderOptimized(), + embroiderOptimized({ name: 'embroider-optimized-with-mocha', + env: { + EMBROIDER_TEST_SETUP_OPTIONS: 'optimized' + }, npm: { devDependencies: { - '@embroider/core': '*', - '@embroider/webpack': '*', - '@embroider/compat': '*', 'ember-mocha': '*', }, } - } + }), ] }; }; diff --git a/ember-cli-build.js b/ember-cli-build.js index caae7310..b3a7b8a5 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -7,30 +7,6 @@ module.exports = function(defaults) { // Add options here }); - /* - This build file specifies the options for the dummy test app of this - addon, located in `/tests/dummy` - This build file does *not* influence how the addon or the app using it - behave. You most likely want to be modifying `./index.js` or app's build file - */ - - // Use embroider if it's present (it can get added by ember-try) - if ('@embroider/core' in app.dependencies()) { - /* eslint-disable node/no-missing-require, node/no-extraneous-require */ - const { Webpack } = require('@embroider/webpack'); - const { compatBuild } = require('@embroider/compat'); - /* eslint-enable node/no-missing-require, node/no-extraneous-require */ - let config = {}; - if (process.env.EMBER_TRY_SCENARIO === 'embroider-optimized') { - config = { - staticAddonTrees: true, - staticAddonTestSupportTrees: true, - staticHelpers: true, - staticComponents: true, - } - } - return compatBuild(app, Webpack, config); - } else { - return app.toTree(); - } + const { maybeEmbroider } = require('@embroider/test-setup'); + return maybeEmbroider(app); }; diff --git a/package.json b/package.json index be5d6d22..0364fc60 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ ] }, "dependencies": { - "@embroider/macros": "^0.29.0", + "@embroider/macros": "^0.36.0", "chalk": "^4.1.0", "cli-table3": "^0.6.0", "debug": "^4.2.0", @@ -53,6 +53,8 @@ }, "devDependencies": { "@ember/optional-features": "^2.0.0", + "@ember/test-helpers": "^2.2.0", + "@embroider/test-setup": "^0.36.0", "babel-eslint": "^10.1.0", "codeclimate-test-reporter": "^0.5.0", "ember-cli": "^3.21.2", @@ -70,7 +72,7 @@ "ember-disable-prototype-extensions": "^1.1.2", "ember-export-application-global": "^2.0.1", "ember-load-initializers": "^2.1.1", - "ember-qunit": "^4.6.0", + "ember-qunit": "^5.1.2", "ember-resolver": "^8.0.2", "ember-source": "~3.21.3", "ember-source-channel-url": "^1.1.0", @@ -86,6 +88,7 @@ "mocha-eslint": "^6.0.0", "npm-run-all": "^4.1.5", "nyc": "^15.1.0", + "qunit": "^2.14.0", "release-it": "^14.0.2", "release-it-lerna-changelog": "^2.4.0", "rsvp": "^4.8.5", @@ -93,8 +96,10 @@ "testdouble": "^3.16.1" }, "peerDependencies": { + "@ember/test-helpers": "*", "ember-mocha": "*", - "ember-qunit": "*" + "ember-qunit": "*", + "qunit": "*" }, "peerDependenciesMeta": { "ember-mocha": { diff --git a/yarn.lock b/yarn.lock index adbb8939..651c3e66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,7 +14,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0", "@babel/compat-data@^7.12.1": +"@babel/compat-data@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.1.tgz#d7386a689aa0ddf06255005b4b991988021101a0" integrity sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ== @@ -41,7 +41,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.5", "@babel/generator@^7.11.6", "@babel/generator@^7.12.1": +"@babel/generator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" integrity sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg== @@ -50,7 +50,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.8.3": +"@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== @@ -65,7 +65,7 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.10.4", "@babel/helper-compilation-targets@^7.12.0", "@babel/helper-compilation-targets@^7.12.1": +"@babel/helper-compilation-targets@^7.12.0", "@babel/helper-compilation-targets@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.1.tgz#310e352888fbdbdd8577be8dfdd2afb9e7adcf50" integrity sha512-jtBEif7jsPwP27GPHs06v4WBV0KrE8a/P7n0N0sSvHn2hwUCYnolP/CLmz51IzAW4NlN+HuoBtb9QcwnRo9F/g== @@ -75,7 +75,7 @@ browserslist "^4.12.0" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5", "@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.8.3": +"@babel/helper-create-class-features-plugin@^7.10.5", "@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.8.3": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== @@ -86,7 +86,7 @@ "@babel/helper-replace-supers" "^7.12.1" "@babel/helper-split-export-declaration" "^7.10.4" -"@babel/helper-create-regexp-features-plugin@^7.10.4", "@babel/helper-create-regexp-features-plugin@^7.12.1", "@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": +"@babel/helper-create-regexp-features-plugin@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz#18b1302d4677f9dc4740fe8c9ed96680e29d37e8" integrity sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA== @@ -135,21 +135,28 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5", "@babel/helper-member-expression-to-functions@^7.12.1": +"@babel/helper-member-expression-to-functions@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c" integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ== dependencies: "@babel/types" "^7.12.1" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.8.3": +"@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.8.3": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz#1644c01591a15a2f084dd6d092d9430eb1d1216c" integrity sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA== dependencies: "@babel/types" "^7.12.1" -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0", "@babel/helper-module-transforms@^7.12.1": +"@babel/helper-module-imports@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" + integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-module-transforms@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== @@ -176,14 +183,19 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-regex@^7.10.4", "@babel/helper-regex@^7.8.3": +"@babel/helper-plugin-utils@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz#174254d0f2424d8aefb4dd48057511247b0a9eeb" + integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== + +"@babel/helper-regex@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.4.tgz#59b373daaf3458e5747dece71bbaf45f9676af6d" integrity sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ== dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.10.4", "@babel/helper-remap-async-to-generator@^7.12.1": +"@babel/helper-remap-async-to-generator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== @@ -192,7 +204,7 @@ "@babel/helper-wrap-function" "^7.10.4" "@babel/types" "^7.12.1" -"@babel/helper-replace-supers@^7.10.4", "@babel/helper-replace-supers@^7.12.1": +"@babel/helper-replace-supers@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz#f15c9cc897439281891e11d5ce12562ac0cf3fa9" integrity sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw== @@ -202,14 +214,14 @@ "@babel/traverse" "^7.12.1" "@babel/types" "^7.12.1" -"@babel/helper-simple-access@^7.10.4", "@babel/helper-simple-access@^7.12.1": +"@babel/helper-simple-access@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== dependencies: "@babel/types" "^7.12.1" -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0", "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== @@ -228,6 +240,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + "@babel/helper-validator-option@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" @@ -243,7 +260,7 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.10.4", "@babel/helpers@^7.12.1": +"@babel/helpers@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.1.tgz#8a8261c1d438ec18cb890434df4ec768734c1e79" integrity sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g== @@ -252,7 +269,7 @@ "@babel/traverse" "^7.12.1" "@babel/types" "^7.12.1" -"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4": +"@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== @@ -261,12 +278,12 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.12.1", "@babel/parser@^7.12.3", "@babel/parser@^7.3.4", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.5": +"@babel/parser@^7.10.4", "@babel/parser@^7.12.1", "@babel/parser@^7.12.3", "@babel/parser@^7.3.4", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0", "@babel/parser@^7.7.5": version "7.12.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.3.tgz#a305415ebe7a6c7023b40b5122a0662d928334cd" integrity sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw== -"@babel/plugin-proposal-async-generator-functions@^7.10.4", "@babel/plugin-proposal-async-generator-functions@^7.12.1": +"@babel/plugin-proposal-async-generator-functions@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" integrity sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A== @@ -292,7 +309,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-decorators" "^7.10.4" -"@babel/plugin-proposal-dynamic-import@^7.10.4", "@babel/plugin-proposal-dynamic-import@^7.12.1": +"@babel/plugin-proposal-dynamic-import@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== @@ -300,7 +317,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-export-namespace-from@^7.10.4", "@babel/plugin-proposal-export-namespace-from@^7.12.1": +"@babel/plugin-proposal-export-namespace-from@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== @@ -308,7 +325,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.10.4", "@babel/plugin-proposal-json-strings@^7.12.1": +"@babel/plugin-proposal-json-strings@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== @@ -316,7 +333,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-logical-assignment-operators@^7.11.0", "@babel/plugin-proposal-logical-assignment-operators@^7.12.1": +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== @@ -324,7 +341,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.4.4": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.4.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== @@ -332,7 +349,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.10.4", "@babel/plugin-proposal-numeric-separator@^7.12.1": +"@babel/plugin-proposal-numeric-separator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz#0e2c6774c4ce48be412119b4d693ac777f7685a6" integrity sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA== @@ -340,7 +357,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.10.4", "@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.3.1": +"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.3.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== @@ -349,7 +366,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-optional-catch-binding@^7.10.4", "@babel/plugin-proposal-optional-catch-binding@^7.12.1": +"@babel/plugin-proposal-optional-catch-binding@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== @@ -357,7 +374,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.10.4", "@babel/plugin-proposal-optional-chaining@^7.11.0", "@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.6.0": +"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.6.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== @@ -366,7 +383,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-private-methods@^7.10.4", "@babel/plugin-proposal-private-methods@^7.12.1": +"@babel/plugin-proposal-private-methods@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== @@ -374,7 +391,7 @@ "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== @@ -389,7 +406,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.12.1": +"@babel/plugin-syntax-class-properties@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== @@ -431,7 +448,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.7.4", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== @@ -459,35 +476,35 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.7.4", "@babel/plugin-syntax-optional-chaining@^7.8.0": +"@babel/plugin-syntax-optional-chaining@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.10.4", "@babel/plugin-syntax-top-level-await@^7.12.1": +"@babel/plugin-syntax-top-level-await@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-typescript@^7.10.4", "@babel/plugin-syntax-typescript@^7.12.1", "@babel/plugin-syntax-typescript@^7.2.0", "@babel/plugin-syntax-typescript@^7.8.3": +"@babel/plugin-syntax-typescript@^7.12.1", "@babel/plugin-syntax-typescript@^7.2.0", "@babel/plugin-syntax-typescript@^7.8.3": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz#460ba9d77077653803c3dd2e673f76d66b4029e5" integrity sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.10.4", "@babel/plugin-transform-arrow-functions@^7.12.1": +"@babel/plugin-transform-arrow-functions@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.10.4", "@babel/plugin-transform-async-to-generator@^7.12.1": +"@babel/plugin-transform-async-to-generator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== @@ -496,21 +513,21 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-remap-async-to-generator" "^7.12.1" -"@babel/plugin-transform-block-scoped-functions@^7.10.4", "@babel/plugin-transform-block-scoped-functions@^7.12.1": +"@babel/plugin-transform-block-scoped-functions@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.10.4", "@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.8.3": +"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.8.3": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1" integrity sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.10.4", "@babel/plugin-transform-classes@^7.12.1": +"@babel/plugin-transform-classes@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== @@ -524,21 +541,21 @@ "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.10.4", "@babel/plugin-transform-computed-properties@^7.12.1": +"@babel/plugin-transform-computed-properties@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.10.4", "@babel/plugin-transform-destructuring@^7.12.1": +"@babel/plugin-transform-destructuring@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== @@ -546,14 +563,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.10.4", "@babel/plugin-transform-duplicate-keys@^7.12.1": +"@babel/plugin-transform-duplicate-keys@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.10.4", "@babel/plugin-transform-exponentiation-operator@^7.12.1": +"@babel/plugin-transform-exponentiation-operator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== @@ -561,14 +578,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.10.4", "@babel/plugin-transform-for-of@^7.12.1": +"@babel/plugin-transform-for-of@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.10.4", "@babel/plugin-transform-function-name@^7.12.1": +"@babel/plugin-transform-function-name@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== @@ -576,21 +593,21 @@ "@babel/helper-function-name" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.10.4", "@babel/plugin-transform-literals@^7.12.1": +"@babel/plugin-transform-literals@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.10.4", "@babel/plugin-transform-member-expression-literals@^7.12.1": +"@babel/plugin-transform-member-expression-literals@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.10.4", "@babel/plugin-transform-modules-amd@^7.10.5", "@babel/plugin-transform-modules-amd@^7.12.1": +"@babel/plugin-transform-modules-amd@^7.10.5", "@babel/plugin-transform-modules-amd@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== @@ -599,7 +616,7 @@ "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.10.4", "@babel/plugin-transform-modules-commonjs@^7.12.1": +"@babel/plugin-transform-modules-commonjs@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== @@ -609,7 +626,7 @@ "@babel/helper-simple-access" "^7.12.1" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.10.4", "@babel/plugin-transform-modules-systemjs@^7.12.1": +"@babel/plugin-transform-modules-systemjs@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== @@ -620,7 +637,7 @@ "@babel/helper-validator-identifier" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.10.4", "@babel/plugin-transform-modules-umd@^7.12.1": +"@babel/plugin-transform-modules-umd@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== @@ -628,14 +645,14 @@ "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4", "@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.12.1" -"@babel/plugin-transform-new-target@^7.10.4", "@babel/plugin-transform-new-target@^7.12.1": +"@babel/plugin-transform-new-target@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== @@ -649,7 +666,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-object-super@^7.10.4", "@babel/plugin-transform-object-super@^7.12.1": +"@babel/plugin-transform-object-super@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== @@ -657,35 +674,35 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-replace-supers" "^7.12.1" -"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.12.1": +"@babel/plugin-transform-parameters@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.10.4", "@babel/plugin-transform-property-literals@^7.12.1": +"@babel/plugin-transform-property-literals@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.10.4", "@babel/plugin-transform-regenerator@^7.12.1": +"@babel/plugin-transform-regenerator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.10.4", "@babel/plugin-transform-reserved-words@^7.12.1": +"@babel/plugin-transform-reserved-words@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-runtime@^7.11.0", "@babel/plugin-transform-runtime@^7.12.0": +"@babel/plugin-transform-runtime@^7.12.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== @@ -695,14 +712,23 @@ resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-shorthand-properties@^7.10.4", "@babel/plugin-transform-shorthand-properties@^7.12.1": +"@babel/plugin-transform-runtime@^7.12.1": + version "7.12.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.15.tgz#4337b2507288007c2b197059301aa0af8d90c085" + integrity sha512-OwptMSRnRWJo+tJ9v9wgAf72ydXWfYSXWhnQjZing8nGZSDFqU1MBleKM3+DriKkcbv7RagA8gVeB0A1PNlNow== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.10.4", "@babel/plugin-transform-spread@^7.11.0", "@babel/plugin-transform-spread@^7.12.1": +"@babel/plugin-transform-spread@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== @@ -710,7 +736,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.10.4", "@babel/plugin-transform-sticky-regex@^7.12.1": +"@babel/plugin-transform-sticky-regex@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz#5c24cf50de396d30e99afc8d1c700e8bce0f5caf" integrity sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ== @@ -718,21 +744,21 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.10.4", "@babel/plugin-transform-template-literals@^7.12.1": +"@babel/plugin-transform-template-literals@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.10.4", "@babel/plugin-transform-typeof-symbol@^7.12.1": +"@babel/plugin-transform-typeof-symbol@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz#9ca6be343d42512fbc2e68236a82ae64bc7af78a" integrity sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typescript@^7.11.0", "@babel/plugin-transform-typescript@^7.12.0": +"@babel/plugin-transform-typescript@^7.12.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4" integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw== @@ -758,14 +784,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-typescript" "^7.8.3" -"@babel/plugin-transform-unicode-escapes@^7.10.4", "@babel/plugin-transform-unicode-escapes@^7.12.1": +"@babel/plugin-transform-unicode-escapes@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.10.4", "@babel/plugin-transform-unicode-regex@^7.12.1": +"@babel/plugin-transform-unicode-regex@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== @@ -773,7 +799,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/polyfill@^7.10.4", "@babel/polyfill@^7.11.5": +"@babel/polyfill@^7.11.5": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.12.1.tgz#1f2d6371d1261bbd961f3c5d5909150e12d0bd96" integrity sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g== @@ -781,7 +807,7 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.10.2", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.0": +"@babel/preset-env@^7.10.2", "@babel/preset-env@^7.12.0": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== @@ -864,13 +890,20 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.11.0", "@babel/runtime@^7.12.0", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.12.0", "@babel/runtime@^7.8.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.12.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d" + integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.10.4", "@babel/template@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" @@ -880,7 +913,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.2.4", "@babel/traverse@^7.3.4", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4": +"@babel/traverse@^7.1.6", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.2.4", "@babel/traverse@^7.3.4", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.1.tgz#941395e0c5cc86d5d3e75caa095d3924526f0c1e" integrity sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw== @@ -895,7 +928,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.1.6", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.12.1", "@babel/types@^7.3.2", "@babel/types@^7.3.4", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2", "@babel/types@^7.7.4", "@babel/types@^7.8.3": +"@babel/types@^7.1.6", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.3.2", "@babel/types@^7.3.4", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.1.tgz#e109d9ab99a8de735be287ee3d6a9947a190c4ae" integrity sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA== @@ -904,6 +937,15 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz#8be1aa8f2c876da11a9cf650c0ecf656913ad611" + integrity sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + "@cnakazawa/watch@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" @@ -942,35 +984,52 @@ ember-cli-babel "^7.10.0" ember-modifier-manager-polyfill "^1.1.0" -"@ember/test-helpers@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-1.7.1.tgz#cc22a954b3b46856518f034bd492a74e0482389f" - integrity sha512-+ioumnanSRJzZ0ZH30FIkB0r41UhVyuWQ9R9Yp1phDWJQDLumxg+25WDr40relwcH6z0Cn6LIEzeTVujO/0Rww== +"@ember/test-helpers@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-2.2.0.tgz#7a7ad1b991caefca74de283f3b16e425cbb600d6" + integrity sha512-LexeWURLr2WV7NrVYSZiVkwV34rqB7BuBDoOz6aK4KaSBnEZPs94PMJDtb0Zbyh0qSOIs2QERKSK3qn92jhxtg== dependencies: + "@ember/test-waiters" "^2.4.0" broccoli-debug "^0.6.5" - broccoli-funnel "^2.0.2" - ember-assign-polyfill "^2.6.0" - ember-cli-babel "^7.7.3" - ember-cli-htmlbars-inline-precompile "^2.1.0" - ember-test-waiters "^1.1.1" + broccoli-funnel "^3.0.3" + ember-auto-import "^1.10.1" + ember-cli-babel "^7.23.1" + ember-cli-htmlbars "^5.2.0" + ember-destroyable-polyfill "^2.0.3" + es6-promise "^4.2.8" + +"@ember/test-waiters@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@ember/test-waiters/-/test-waiters-2.4.0.tgz#af92324d03a8840eff7a9ea3e9015138e0c477ed" + integrity sha512-P1c0dmbNx7I+wM37nCs3lRiDoGYvcg0s2L3Y/75izj48iYT1/7Vxr3eFkZ7AShuCa7SBMRoH2mHOVsqLDBJ3hA== + dependencies: + calculate-cache-key-for-tree "^2.0.0" + ember-cli-babel "^7.21.0" + ember-cli-typescript "^3.1.4" + ember-cli-version-checker "^5.1.2" + semver "^7.3.2" -"@embroider/core@0.29.0": - version "0.29.0" - resolved "https://registry.yarnpkg.com/@embroider/core/-/core-0.29.0.tgz#51421fbb2bcee607dc6e162400e3502a121230d2" - integrity sha512-2i0QtV1y1jJpj1aiIA3FVZHfuLBN2yCUcJs0PkOsqZYi7J796KT4t7WwAk8gmBq00yGzHDWLw/iH4ULTomPS8A== +"@embroider/core@0.33.0", "@embroider/core@^0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@embroider/core/-/core-0.33.0.tgz#0fb1752d6e34ea45368e65c42e13220a57ffae76" + integrity sha512-Kd3W4vBJCSwskVislwldhuoe1RtdA04lRr2r2ccnPI4msCXxLn292WBaS7/x0LdEu2EMO5ffRDeQva2/xoS4Yg== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.12.3" "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.12.1" + "@babel/runtime" "^7.12.5" "@babel/traverse" "^7.12.1" "@babel/types" "^7.12.1" - "@embroider/macros" "0.29.0" + "@embroider/macros" "0.33.0" assert-never "^1.1.0" babel-plugin-syntax-dynamic-import "^6.18.0" - broccoli-persistent-filter "^2.2.2" - broccoli-plugin "^3.0.0" - broccoli-source "^1.1.0" + broccoli-node-api "^1.7.0" + broccoli-persistent-filter "^3.1.2" + broccoli-plugin "^4.0.1" + broccoli-source "^3.0.0" debug "^3.1.0" + escape-string-regexp "^4.0.0" fast-sourcemap-concat "^1.4.0" filesize "^4.1.2" fs-extra "^7.0.1" @@ -989,6 +1048,45 @@ walk-sync "^1.1.3" wrap-legacy-hbs-plugin-if-needed "^1.0.1" +"@embroider/core@0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@embroider/core/-/core-0.36.0.tgz#fbbd60d29c3fcbe02b4e3e63e6043a43de2b9ce3" + integrity sha512-J6esENP+aNt+/r070cF1RCJyCi/Rn1I6uFp37vxyLWwvGDuT0E7wGcaPU29VBkBFqxi4Z1n4F796BaGHv+kX6w== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.12.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.12.1" + "@babel/runtime" "^7.12.5" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + "@embroider/macros" "0.36.0" + assert-never "^1.1.0" + babel-plugin-syntax-dynamic-import "^6.18.0" + broccoli-node-api "^1.7.0" + broccoli-persistent-filter "^3.1.2" + broccoli-plugin "^4.0.1" + broccoli-source "^3.0.0" + debug "^3.1.0" + escape-string-regexp "^4.0.0" + fast-sourcemap-concat "^1.4.0" + filesize "^4.1.2" + fs-extra "^7.0.1" + fs-tree-diff "^2.0.0" + handlebars "^4.4.2" + js-string-escape "^1.0.1" + jsdom "^16.4.0" + json-stable-stringify "^1.0.1" + lodash "^4.17.10" + pkg-up "^3.1.0" + resolve "^1.8.1" + resolve-package-path "^1.2.2" + semver "^7.3.2" + strip-bom "^3.0.0" + typescript-memoize "^1.0.0-alpha.3" + walk-sync "^1.1.3" + wrap-legacy-hbs-plugin-if-needed "^1.0.1" + "@embroider/core@0.4.3", "@embroider/core@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@embroider/core/-/core-0.4.3.tgz#117973b9761d68aee14d820bbaefeb05d5984ba8" @@ -1023,15 +1121,30 @@ typescript-memoize "^1.0.0-alpha.3" walk-sync "^1.1.3" -"@embroider/macros@0.29.0", "@embroider/macros@^0.29.0": - version "0.29.0" - resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-0.29.0.tgz#33048069b0abdda17efc7ff438b18b0c2c237bff" - integrity sha512-Kg8we7U7TpgUZ0EBKlTC4UGItPa91OrGT5Bzxa2cJi/pPp1z8Amgd7Y+m29N+aLBZwlv+OxlhnOCm0Fhjw/dag== +"@embroider/macros@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-0.33.0.tgz#d5826ea7565bb69b57ba81ed528315fe77acbf9d" + integrity sha512-nl/1zRn+Wd3MO8Bb+YPqHmFl/2vwQLTsEB6Zt+K9bWXsM/kA+dPCeeCReLN6PbkMP16xxqtNSIrQ8Y49hnWjpg== dependencies: "@babel/core" "^7.12.3" "@babel/traverse" "^7.12.1" "@babel/types" "^7.12.1" - "@embroider/core" "0.29.0" + "@embroider/core" "0.33.0" + assert-never "^1.1.0" + ember-cli-babel "^7.23.0" + lodash "^4.17.10" + resolve "^1.8.1" + semver "^7.3.2" + +"@embroider/macros@0.36.0", "@embroider/macros@^0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-0.36.0.tgz#5330f1e6f12112f0f68e34b3e4855dc7dd3c69a5" + integrity sha512-w37G4uXG+Wi3K3EHSFBSr/n6kGFXYG8nzZ9ptzDOC7LP3Oh5/MskBnVZW3+JkHXUPEqKsDGlxPxCVpPl1kQyjQ== + dependencies: + "@babel/core" "^7.12.3" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + "@embroider/core" "0.36.0" assert-never "^1.1.0" ember-cli-babel "^7.23.0" lodash "^4.17.10" @@ -1050,6 +1163,14 @@ resolve "^1.8.1" semver "^5.6.0" +"@embroider/test-setup@^0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@embroider/test-setup/-/test-setup-0.36.0.tgz#67ace15d69f04f282adde38ee39e4d48208173b7" + integrity sha512-YXa1uPBc5caxuS9hIOLi6TihJ9QFgS9uvlXFOADFL3yDUOuvnGWAoK9a4qHsIuH/ifGJs8xIYhByhlfruB02mw== + dependencies: + lodash "^4.17.20" + resolve "^1.17.0" + "@eslint/eslintrc@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" @@ -1788,21 +1909,45 @@ "@webassemblyjs/helper-wasm-bytecode" "1.7.11" "@webassemblyjs/wast-parser" "1.7.11" +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@webassemblyjs/floating-point-hex-parser@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + "@webassemblyjs/helper-api-error@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + "@webassemblyjs/helper-buffer@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + "@webassemblyjs/helper-code-frame@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" @@ -1810,21 +1955,45 @@ dependencies: "@webassemblyjs/wast-printer" "1.7.11" +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + "@webassemblyjs/helper-fsm@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + "@webassemblyjs/helper-module-context@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + "@webassemblyjs/helper-wasm-section@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" @@ -1835,6 +2004,16 @@ "@webassemblyjs/helper-wasm-bytecode" "1.7.11" "@webassemblyjs/wasm-gen" "1.7.11" +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/ieee754@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" @@ -1842,6 +2021,13 @@ dependencies: "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/leb128@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" @@ -1849,11 +2035,23 @@ dependencies: "@xtuc/long" "4.2.1" +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + "@webassemblyjs/utf8@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + "@webassemblyjs/wasm-edit@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" @@ -1868,6 +2066,20 @@ "@webassemblyjs/wasm-parser" "1.7.11" "@webassemblyjs/wast-printer" "1.7.11" +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + "@webassemblyjs/wasm-gen@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" @@ -1879,6 +2091,17 @@ "@webassemblyjs/leb128" "1.7.11" "@webassemblyjs/utf8" "1.7.11" +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/wasm-opt@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" @@ -1889,6 +2112,16 @@ "@webassemblyjs/wasm-gen" "1.7.11" "@webassemblyjs/wasm-parser" "1.7.11" +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wasm-parser@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" @@ -1901,6 +2134,18 @@ "@webassemblyjs/leb128" "1.7.11" "@webassemblyjs/utf8" "1.7.11" +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/wast-parser@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" @@ -1913,6 +2158,18 @@ "@webassemblyjs/helper-fsm" "1.7.11" "@xtuc/long" "4.2.1" +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + "@webassemblyjs/wast-printer@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" @@ -1922,6 +2179,15 @@ "@webassemblyjs/wast-parser" "1.7.11" "@xtuc/long" "4.2.1" +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -1932,6 +2198,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + abab@^2.0.0, abab@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" @@ -2017,6 +2288,11 @@ acorn@^6.0.1, acorn@^6.0.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.0: version "7.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" @@ -2066,7 +2342,12 @@ ajv-keywords@^3.1.0: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.5.5: +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: version "6.12.5" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== @@ -2699,13 +2980,20 @@ babel-plugin-ember-modules-api-polyfill@^2.6.0: dependencies: ember-rfc176-data "^0.3.13" -babel-plugin-ember-modules-api-polyfill@^3.1.1, babel-plugin-ember-modules-api-polyfill@^3.2.0: +babel-plugin-ember-modules-api-polyfill@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.2.0.tgz#302cb58a3c0fa33d93ab5115f1e91d76c6ec766b" integrity sha512-k5gyC1kUDyZDcdD8LMGTI7KA+cHdKainuWpmc7d5yv42WgZFO75njPi3hZchEGsFFXtSqm9jiahgvLBUV8E8mA== dependencies: ember-rfc176-data "^0.3.16" +babel-plugin-ember-modules-api-polyfill@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.2.1.tgz#715252ffde309da36fb32cd6a9bad5c6b61edd33" + integrity sha512-7k4gM0VLAMjoWVxLBDqavH/Dn4mBfzqTuQmtGmZgsdQ4SYVEJ7dewUVeqWBVn5v3QspW4VSoeXh4rHPPlp/rPw== + dependencies: + ember-rfc176-data "^0.3.16" + babel-plugin-filter-imports@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/babel-plugin-filter-imports/-/babel-plugin-filter-imports-4.0.0.tgz#068f8da15236a96a9602c36dc6f4a6eeca70a4f4" @@ -2714,11 +3002,6 @@ babel-plugin-filter-imports@^4.0.0: "@babel/types" "^7.7.2" lodash "^4.17.15" -babel-plugin-htmlbars-inline-precompile@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-1.0.0.tgz#a9d2f6eaad8a3f3d361602de593a8cbef8179c22" - integrity sha512-4jvKEHR1bAX03hBDZ94IXsYCj3bwk9vYsn6ux6JZNL2U5pvzCWjqyrGahfsGNrhERyxw8IqcirOi9Q6WCo3dkQ== - babel-plugin-htmlbars-inline-precompile@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-2.1.1.tgz#59edd4eab28d27fbafa26d51bc19795278d103a9" @@ -3757,7 +4040,24 @@ broccoli-persistent-filter@^3.1.0: symlink-or-copy "^1.0.1" sync-disk-cache "^2.0.0" -"broccoli-plugin@1.5.1 - 5", broccoli-plugin@^4.0.1, broccoli-plugin@^4.0.2, broccoli-plugin@^4.0.3: +broccoli-persistent-filter@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-3.1.2.tgz#41da6b9577be09a170ecde185f2c5a6099f99c4e" + integrity sha512-CbU95RXXVyy+eJV9XTiHUC7NnsY3EvdVrGzp3YgyvO2bzXZFE5/GzDp4X/VQqX+jsk4qyT1HvMOF0sD1DX68TQ== + dependencies: + async-disk-cache "^2.0.0" + async-promise-queue "^1.0.3" + broccoli-plugin "^4.0.3" + fs-tree-diff "^2.0.0" + hash-for-dep "^1.5.0" + heimdalljs "^0.2.1" + heimdalljs-logger "^0.1.7" + promise-map-series "^0.2.1" + rimraf "^3.0.0" + symlink-or-copy "^1.0.1" + sync-disk-cache "^2.0.0" + +"broccoli-plugin@1.5.1 - 5", broccoli-plugin@^4.0.0, broccoli-plugin@^4.0.1, broccoli-plugin@^4.0.2, broccoli-plugin@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-4.0.3.tgz#9dcfbfb6a1b27a37cc22e65c071719ce9f92bc1e" integrity sha512-CtAIEYq5K+4yQv8c/BHymOteuyjDAJfvy/asu4LudIWcMSS7dTn3yGI5gNBkwHG+qlRangYkHJNVAcDZMQbSVQ== @@ -3790,7 +4090,7 @@ broccoli-plugin@^2.1.0: rimraf "^2.3.4" symlink-or-copy "^1.1.8" -broccoli-plugin@^3.0.0, broccoli-plugin@^3.1.0: +broccoli-plugin@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-3.1.0.tgz#54ba6dd90a42ec3db5624063292610e326b1e542" integrity sha512-7w7FP8WJYjLvb0eaw27LO678TGGaom++49O1VYIuzjhXjK5kn2+AMlDm7CaUFw4F7CLGoVQeZ84d8gICMJa4lA== @@ -3978,11 +4278,6 @@ brorand@^1.0.1: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== - browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" @@ -4060,7 +4355,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.0, browserslist@^4.8.3: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.3: version "4.12.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.2.tgz#76653d7e4c57caa8a1a28513e2f4e197dc11a711" integrity sha512-MfZaeYqR8StRZdstAK9hCKDd2StvePCYp5rHzQCPicUjfFliDgmuaBNPHYUTpAywBN8+Wc/d7NYVFkO0aqaBUw== @@ -4280,7 +4575,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001017, caniuse-lite@^1.0.30001023, caniuse-lite@^1.0.30001088, caniuse-lite@^1.0.30001109: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001088, caniuse-lite@^1.0.30001109: version "1.0.30001140" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001140.tgz#30dae27599f6ede2603a0962c82e468bca894232" integrity sha512-xFtvBtfGrpjTOxTpjP5F2LmN04/ZGfYV8EQzUIC/RmKpdrmzJrjqlJ4ho7sGuAMPko2/Jl08h7x9uObCfBFaAA== @@ -4400,7 +4695,7 @@ chokidar@3.3.1, "chokidar@>=2.0.0 <4.0.0": optionalDependencies: fsevents "~2.1.2" -chokidar@^2.0.2: +chokidar@^2.0.2, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -4419,6 +4714,21 @@ chokidar@^2.0.2: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.4.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -4429,7 +4739,7 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -chrome-trace-event@^1.0.0: +chrome-trace-event@^1.0.0, chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== @@ -4709,11 +5019,6 @@ combined-stream@~0.0.4: dependencies: delayed-stream "0.0.5" -commander@2.12.2: - version "2.12.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" - integrity sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA== - commander@2.8.x: version "2.8.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" @@ -4728,6 +5033,11 @@ commander@2.9.0: dependencies: graceful-readlink ">= 1.0.0" +commander@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" + integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q== + commander@^2.20.0, commander@^2.6.0, commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -4748,7 +5058,7 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.1.0.tgz#f8d722b78103141006b66f4c7ba1e97315ba75bc" integrity sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA== -common-tags@^1.4.0, common-tags@^1.8.0: +common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== @@ -5610,7 +5920,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.322, electron-to-chromium@^1.3.341, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.483: +electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.483: version "1.3.483" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz#9269e7cfc1c8e72709824da171cbe47ca5e3ca9e" integrity sha512-+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg== @@ -5658,6 +5968,40 @@ ember-assign-polyfill@^2.5.0, ember-assign-polyfill@^2.6.0: ember-cli-babel "^6.16.0" ember-cli-version-checker "^2.0.0" +ember-auto-import@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.10.1.tgz#6c93a875e494aa0a58b759867d3f20adfd514ae3" + integrity sha512-7bOWzPELlVwdWDOkB+phDIjg8BNW+/2RiLLQ+Xa/eIvCLT4ABYhHV5wqW5gs5BnXTDVLfE4ddKZdllnGuPGGDQ== + dependencies: + "@babel/core" "^7.1.6" + "@babel/preset-env" "^7.10.2" + "@babel/traverse" "^7.1.6" + "@babel/types" "^7.1.6" + "@embroider/core" "^0.33.0" + babel-core "^6.26.3" + babel-loader "^8.0.6" + babel-plugin-syntax-dynamic-import "^6.18.0" + babylon "^6.18.0" + broccoli-debug "^0.6.4" + broccoli-node-api "^1.7.0" + broccoli-plugin "^4.0.0" + debug "^3.1.0" + ember-cli-babel "^7.0.0" + enhanced-resolve "^4.0.0" + fs-extra "^6.0.1" + fs-tree-diff "^2.0.0" + handlebars "^4.3.1" + js-string-escape "^1.0.1" + lodash "^4.17.19" + mkdirp "^0.5.1" + resolve-package-path "^3.1.0" + rimraf "^2.6.2" + semver "^7.3.4" + symlink-or-copy "^1.2.0" + typescript-memoize "^1.0.0-alpha.3" + walk-sync "^0.3.3" + webpack "^4.43.0" + ember-auto-import@^1.2.19, ember-auto-import@^1.5.3, ember-auto-import@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.6.0.tgz#00a498172b04f7084a5d2a327f76f577038ed403" @@ -5787,7 +6131,7 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879" integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== -ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.10.0, ember-cli-babel@^6.11.0, ember-cli-babel@^6.16.0, ember-cli-babel@^6.17.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2: +ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.10.0, ember-cli-babel@^6.11.0, ember-cli-babel@^6.16.0, ember-cli-babel@^6.17.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.2: version "6.18.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.18.0.tgz#3f6435fd275172edeff2b634ee7b29ce74318957" integrity sha512-7ceC8joNYxY2wES16iIBlbPSxwKDBhYwC8drU3ZEvuPDMwVv1KzxCNu1fvxyFEBWhwaRNTUxSCsEVoTd9nosGA== @@ -5806,7 +6150,39 @@ ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.10.0, ember-cli-babel@^6.11.0, ember-cli-version-checker "^2.1.2" semver "^5.5.0" -ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.2, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.4.1, ember-cli-babel@^7.7.3: +ember-cli-babel@^7.0.0, ember-cli-babel@^7.23.1: + version "7.23.1" + resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.1.tgz#d1517228ede08a5d4b045c78a7429728e956b30b" + integrity sha512-qYggmt3hRs6QJ6cRkww3ahMpyP8IEV2KFrIRO/Z6hu9MkE/8Y28Xd5NjQl6fPV3oLoG0vwuHzhNe3Jr7Wec8zw== + dependencies: + "@babel/core" "^7.12.0" + "@babel/helper-compilation-targets" "^7.12.0" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-decorators" "^7.10.5" + "@babel/plugin-transform-modules-amd" "^7.10.5" + "@babel/plugin-transform-runtime" "^7.12.0" + "@babel/plugin-transform-typescript" "^7.12.0" + "@babel/polyfill" "^7.11.5" + "@babel/preset-env" "^7.12.0" + "@babel/runtime" "^7.12.0" + amd-name-resolver "^1.2.1" + babel-plugin-debug-macros "^0.3.3" + babel-plugin-ember-data-packages-polyfill "^0.1.2" + babel-plugin-ember-modules-api-polyfill "^3.2.1" + babel-plugin-module-resolver "^3.1.1" + broccoli-babel-transpiler "^7.8.0" + broccoli-debug "^0.6.4" + broccoli-funnel "^2.0.1" + broccoli-source "^1.1.0" + clone "^2.1.2" + ember-cli-babel-plugin-helpers "^1.1.1" + ember-cli-version-checker "^4.1.0" + ensure-posix-path "^1.0.2" + fixturify-project "^1.10.0" + rimraf "^3.0.1" + semver "^5.5.0" + +ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.13.2, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.2, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.4.1, ember-cli-babel@^7.7.3: version "7.23.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.0.tgz#ec580aa2c115d0810e454dd5c2fffce238284b92" integrity sha512-ix58DlRDAbGITtdJoRUPcAoQwKLYr/x/kIXjU9u1ATyhmuUjqb+0FDXghOWbkNihGiNOqBBR49+LBgK9AeBcNw== @@ -5922,17 +6298,6 @@ ember-cli-get-component-path-option@^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" integrity sha1-DXtZVVni+QUKvtgE8djv8bCLx3E= -ember-cli-htmlbars-inline-precompile@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ember-cli-htmlbars-inline-precompile/-/ember-cli-htmlbars-inline-precompile-2.1.0.tgz#61b91ff1879d44ae504cadb46fb1f2604995ae08" - integrity sha512-BylIHduwQkncPhnj0ZyorBuljXbTzLgRo6kuHf1W+IHFxThFl2xG+r87BVwsqx4Mn9MTgW9SE0XWjwBJcSWd6Q== - dependencies: - babel-plugin-htmlbars-inline-precompile "^1.0.0" - ember-cli-version-checker "^2.1.2" - hash-for-dep "^1.2.3" - heimdalljs-logger "^0.1.9" - silent-error "^1.1.0" - ember-cli-htmlbars-inline-precompile@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars-inline-precompile/-/ember-cli-htmlbars-inline-precompile-3.0.1.tgz#dc1f6fbc3bb5e51d01ca334e692c7f0b5e298d57" @@ -5956,6 +6321,7 @@ ember-cli-htmlbars@^2.0.1: strip-bom "^3.0.0" ember-cli-htmlbars@^3.0.0, ember-cli-htmlbars@^3.0.1: + name ember-cli-htmlbars-3 version "3.1.0" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-3.1.0.tgz#87806c2a0bca2ab52d4fb8af8e2215c1ca718a99" integrity sha512-cgvRJM73IT0aePUG7oQ/afB7vSRBV3N0wu9BrWhHX2zkR7A7cUBI7KC9VPk6tbctCXoM7BRGsCC4aIjF7yrfXA== @@ -6092,12 +6458,12 @@ ember-cli-string-utils@^1.1.0: resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" integrity sha1-ObZ3/CgF9VFzc1N2/O8njqpEUqE= -ember-cli-test-loader@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ember-cli-test-loader/-/ember-cli-test-loader-2.2.0.tgz#3fb8d5d1357e4460d3f0a092f5375e71b6f7c243" - integrity sha512-mlSXX9SciIRwGkFTX6XGyJYp4ry6oCFZRxh5jJ7VH8UXLTNx2ZACtDTwaWtNhYrWXgKyiDUvmD8enD56aePWRA== +ember-cli-test-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ember-cli-test-loader/-/ember-cli-test-loader-3.0.0.tgz#1c036fc48de36155355fcda3266af63f977826f1" + integrity sha512-wfFRBrfO9gaKScYcdQxTfklx9yp1lWK6zv1rZRpkas9z2SHyJojF7NOQRWQgSB3ypm7vfpiF8VsFFVVr7VBzAQ== dependencies: - ember-cli-babel "^6.8.1" + ember-cli-babel "^7.13.2" ember-cli-typescript@^2.0.2: version "2.0.2" @@ -6171,6 +6537,15 @@ ember-cli-version-checker@^5.1.1: semver "^7.3.2" silent-error "^1.1.1" +ember-cli-version-checker@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-5.1.2.tgz#649c7b6404902e3b3d69c396e054cea964911ab0" + integrity sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q== + dependencies: + resolve-package-path "^3.1.0" + semver "^7.3.4" + silent-error "^1.1.1" + ember-cli@^3.21.2: version "3.21.2" resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.21.2.tgz#af99af5eba9882a326d8528fda31f219300d5591" @@ -6290,6 +6665,15 @@ ember-compatibility-helpers@^1.0.2, ember-compatibility-helpers@^1.1.2, ember-co ember-cli-version-checker "^2.1.1" semver "^5.4.1" +ember-compatibility-helpers@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ember-compatibility-helpers/-/ember-compatibility-helpers-1.2.2.tgz#839e0c24190b7a2ec8c39b80e030811b1a95b6d3" + integrity sha512-EKyCGOGBvKkBsk6wKfg3GhjTvTTkcEwzl/cv4VYvZM18cihmjGNpliR4BymWsKRWrv4VJLyq15Vhk3NHkSNBag== + dependencies: + babel-plugin-debug-macros "^0.2.0" + ember-cli-version-checker "^5.1.1" + semver "^5.4.1" + ember-composable-helpers@^4.2.2: version "4.3.0" resolved "https://registry.yarnpkg.com/ember-composable-helpers/-/ember-composable-helpers-4.3.0.tgz#afe03e14e20639652bed86b84d91633ede2cb129" @@ -6309,6 +6693,15 @@ ember-composable-helpers@^4.2.2: ember-compatibility-helpers "^1.2.0" ember-maybe-import-regenerator "^0.1.6" +ember-destroyable-polyfill@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/ember-destroyable-polyfill/-/ember-destroyable-polyfill-2.0.3.tgz#1673ed66609a82268ef270a7d917ebd3647f11e1" + integrity sha512-TovtNqCumzyAiW0/OisSkkVK93xnVF4NRU6+FN0ubpfwEOpRrmM2RqDwXI6YAChCgSHON1cz0DfQStpA1Gjuuw== + dependencies: + ember-cli-babel "^7.22.1" + ember-cli-version-checker "^5.1.1" + ember-compatibility-helpers "^1.2.1" + ember-disable-prototype-extensions@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/ember-disable-prototype-extensions/-/ember-disable-prototype-extensions-1.1.3.tgz#1969135217654b5e278f9fe2d9d4e49b5720329e" @@ -6424,18 +6817,20 @@ ember-on-modifier@^1.0.0: ember-cli-version-checker "^4.1.0" ember-modifier-manager-polyfill "^1.2.0" -ember-qunit@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-4.6.0.tgz#ad79fd3ff00073a8779400cc5a4b44829517590f" - integrity sha512-i5VOGn0RP8XH+5qkYDOZshbqAvO6lHgF65D0gz8vRx4DszCIvJMJO+bbftBTfYMxp6rqG85etAA6pfNxE0DqsQ== +ember-qunit@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-5.1.2.tgz#72ce175f5d1c96a40fe810928c4d4a822a2e2c60" + integrity sha512-mrnFaUhAJWkJWeRZKajLuuRmKsifRrhAla1sQAfIiuh7OCVY1eqFvSUFzLR7/WgdNwPrUzEOOx39MdVRZBd/7A== dependencies: - "@ember/test-helpers" "^1.7.1" - broccoli-funnel "^2.0.2" + broccoli-funnel "^3.0.3" broccoli-merge-trees "^3.0.2" - common-tags "^1.4.0" - ember-cli-babel "^7.12.0" - ember-cli-test-loader "^2.2.0" - qunit "^2.9.3" + common-tags "^1.8.0" + ember-auto-import "^1.10.1" + ember-cli-babel "^7.23.1" + ember-cli-test-loader "^3.0.0" + resolve-package-path "^3.1.0" + silent-error "^1.1.1" + validate-peer-dependencies "^1.1.0" ember-resolver@^8.0.2: version "8.0.2" @@ -6574,13 +6969,6 @@ ember-template-recast@^4.1.5: tmp "^0.2.1" workerpool "^6.0.0" -ember-test-waiters@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ember-test-waiters/-/ember-test-waiters-1.1.1.tgz#7df6e7a47e0fdca814aa351f7f7f9a006e15fdcd" - integrity sha512-ra71ZWTGBGLeDPa308aeAg9+/nYxv2fk4OEzmXdhvbSa5Dtbei94sr5pbLXx2IiK3Re2gDAvDzxg9PVhLy9fig== - dependencies: - ember-cli-babel "^7.1.2" - ember-test-waiters@^2.0.0: version "2.1.3" resolved "https://registry.yarnpkg.com/ember-test-waiters/-/ember-test-waiters-2.1.3.tgz#40fe7b674d5ef1005f665e0e040753f88c5a2175" @@ -6666,6 +7054,11 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -6734,6 +7127,15 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -6841,7 +7243,7 @@ es6-promise@^1.0.0: resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-1.0.0.tgz#f90d3629faa7c26166ae4df77c89bacdeb8dca7f" integrity sha1-+Q02KfqnwmFmrk33fIm6zeuNyn8= -es6-promise@^4.0.3: +es6-promise@^4.0.3, es6-promise@^4.2.8: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== @@ -6873,6 +7275,11 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escodegen@1.8.x: version "1.8.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" @@ -6927,7 +7334,7 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-scope@^4.0.0: +eslint-scope@^4.0.0, eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== @@ -7076,11 +7483,6 @@ esprima@2.7.x, esprima@^2.7.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -7110,7 +7512,7 @@ estraverse@^1.9.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q= -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -7339,11 +7741,6 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -7910,6 +8307,11 @@ fsevents@~2.1.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -8162,6 +8564,11 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== +globalyzer@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" + integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== + globby@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.0.tgz#abfcd0630037ae174a88590132c2f6804e291072" @@ -8188,6 +8595,11 @@ globby@11.0.1, globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + good-listener@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" @@ -8306,7 +8718,7 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= -handlebars@^4.0.1, handlebars@^4.0.11, handlebars@^4.0.13, handlebars@^4.0.4, handlebars@^4.3.1, handlebars@^4.4.2, handlebars@^4.5.3, handlebars@^4.7.3, handlebars@^4.7.4: +handlebars@^4.0.1, handlebars@^4.0.11, handlebars@^4.0.13, handlebars@^4.0.4, handlebars@^4.3.1, handlebars@^4.4.2, handlebars@^4.7.3, handlebars@^4.7.4: version "4.7.6" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== @@ -8323,7 +8735,7 @@ har-schema@^2.0.0: resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0, har-validator@~5.1.3: +har-validator@~5.1.3: version "5.1.5" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== @@ -8919,7 +9331,7 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -8994,7 +9406,7 @@ is-buffer@~2.0.3: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== -is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.0: +is-callable@^1.1.4, is-callable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== @@ -9195,11 +9607,6 @@ is-potential-custom-element-name@^1.0.0: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" @@ -9212,7 +9619,7 @@ is-reference@^1.1.0: dependencies: "@types/estree" "0.0.39" -is-regex@^1.0.5, is-regex@^1.1.0: +is-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== @@ -9491,10 +9898,10 @@ jquery@^3.5.0: resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== -js-reporters@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/js-reporters/-/js-reporters-1.2.1.tgz#f88c608e324a3373a95bcc45ad305e5c979c459b" - integrity sha1-+IxgjjJKM3OpW8xFrTBeXJecRZs= +js-reporters@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/js-reporters/-/js-reporters-1.2.3.tgz#8febcab370539df62e09b95da133da04b11f6168" + integrity sha512-2YzWkHbbRu6LueEs5ZP3P1LqbECvAeUJYrjw3H4y1ofW06hqCS0AbzBtLwbr+Hke51bt9CUepJ/Fj1hlCRIF6A== js-string-escape@^1.0.1: version "1.0.1" @@ -9824,18 +10231,6 @@ lerna-changelog@^1.0.1: progress "^2.0.0" yargs "^13.0.0" -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -9914,7 +10309,7 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader-runner@^2.3.0: +loader-runner@^2.3.0, loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== @@ -9928,6 +10323,15 @@ loader-utils@^1.0.2, loader-utils@^1.1.0: emojis-list "^2.0.0" json5 "^1.0.1" +loader-utils@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + loader.js@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/loader.js/-/loader.js-4.7.0.tgz#a1a52902001c83631efde9688b8ab3799325ef1f" @@ -10458,18 +10862,18 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== +memory-fs@^0.4.1, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" -memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -10566,11 +10970,6 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.43.0: - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== - mime-db@1.44.0, "mime-db@>= 1.40.0 < 2": version "1.44.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" @@ -10731,7 +11130,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -10898,6 +11297,11 @@ neo-async@^2.5.0, neo-async@^2.6.0: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== +neo-async@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -10939,7 +11343,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-libs-browser@^2.0.0: +node-libs-browser@^2.0.0, node-libs-browser@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== @@ -10991,7 +11395,7 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^1.1.44, node-releases@^1.1.47, node-releases@^1.1.58: +node-releases@^1.1.58: version "1.1.58" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== @@ -11001,10 +11405,10 @@ node-uuid@~1.4.0: resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= -node-watch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.6.1.tgz#b9874111ce9f5841b1c7596120206c7b825be0e9" - integrity sha512-gwQiR7weFRV8mAtT0x0kXkZ18dfRLB45xH7q0hCOVQMLfLb2f1ZaSvR57q4/b/Vj6B0RwMNJYbvb69e1yM7qEA== +node-watch@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.1.tgz#0caaa6a6833b0d533487f953c52a6c787769ba7c" + integrity sha512-UWblPYuZYrkCQCW5PxAwYSxaELNBLUckrTBBk8xr1/bUgyOkYYTsUcV4e3ytcazFEOyiRyiUrsG37pu6I0I05g== nopt@3.x, nopt@^3.0.6: version "3.0.6" @@ -11888,7 +12292,7 @@ postcss-value-parser@^3.3.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: +postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== @@ -11911,7 +12315,7 @@ postcss@^6.0.9: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.11, postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.23, postcss@^7.0.32, postcss@^7.0.5: +postcss@^7.0.0, postcss@^7.0.11, postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.32, postcss@^7.0.5: version "7.0.35" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== @@ -12055,7 +12459,7 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24, psl@^1.1.28: +psl@^1.1.28: version "1.7.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== @@ -12107,7 +12511,7 @@ punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -punycode@^1.2.4, punycode@^1.4.1: +punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= @@ -12195,16 +12599,15 @@ quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8: rimraf "^2.5.4" underscore.string "~3.3.4" -qunit@^2.9.3: - version "2.9.3" - resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.9.3.tgz#9522a088e76f0782f70a45db92f2fd14db311bcc" - integrity sha512-RH4VYSaVsNRDthMFFboTJAJ8q4kJM5LvOqWponKUYPEAeOcmc/YFV1QsZ7ikknA3TjqliWFJYEV63vvVXaALmQ== +qunit@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.14.0.tgz#6f913903e71ebe24ef4a4dada2b796fb52285051" + integrity sha512-CYfenbgdpmhl2Ql2rDrrj0felY4h8k6lYhtWwGBCLL4qQC33YOj0psV8MWo85L1i0SIOmEDRXkFopWnGCLmf7g== dependencies: - commander "2.12.2" - js-reporters "1.2.1" - minimatch "3.0.4" - node-watch "0.6.1" - resolve "1.9.0" + commander "6.2.0" + js-reporters "1.2.3" + node-watch "0.7.1" + tiny-glob "0.2.8" randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" @@ -12311,6 +12714,13 @@ readdirp@~3.3.0: dependencies: picomatch "^2.0.7" +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + recast@^0.18.1: version "0.18.5" resolved "https://registry.yarnpkg.com/recast/-/recast-0.18.5.tgz#9d5adbc07983a3c8145f3034812374a493e0fe4d" @@ -12343,7 +12753,7 @@ reduce-css-calc@^2.1.6: css-unit-converter "^1.1.1" postcss-value-parser "^3.3.0" -regenerate-unicode-properties@^8.1.0, regenerate-unicode-properties@^8.2.0: +regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== @@ -12419,7 +12829,7 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.6.0, regexpu-core@^4.7.0, regexpu-core@^4.7.1: +regexpu-core@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== @@ -12465,7 +12875,7 @@ regjsgen@^0.2.0: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= -regjsgen@^0.5.0, regjsgen@^0.5.1: +regjsgen@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== @@ -12477,7 +12887,7 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" -regjsparser@^0.6.0, regjsparser@^0.6.4: +regjsparser@^0.6.4: version "0.6.4" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== @@ -12608,13 +13018,6 @@ replaceall@^0.1.6: resolved "https://registry.yarnpkg.com/replaceall/-/replaceall-0.1.6.tgz#81d81ac7aeb72d7f5c4942adf2697a3220688d8e" integrity sha1-gdgax663LX9cSUKt8ml6MiBojY4= -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== - dependencies: - lodash "^4.17.15" - request-promise-core@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" @@ -12746,6 +13149,14 @@ resolve-package-path@^2.0.0: path-root "^0.1.1" resolve "^1.13.1" +resolve-package-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/resolve-package-path/-/resolve-package-path-3.1.0.tgz#35faaa5d54a9c7dd481eb7c4b2a44410c9c763d8" + integrity sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA== + dependencies: + path-root "^0.1.1" + resolve "^1.17.0" + resolve-path@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" @@ -12764,13 +13175,6 @@ resolve@1.1.x: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06" - integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ== - dependencies: - path-parse "^1.0.6" - resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.7.1, resolve@^1.8.1: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" @@ -13037,6 +13441,13 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -13056,7 +13467,7 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@4.0.0: +serialize-javascript@4.0.0, serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== @@ -13667,22 +14078,6 @@ string.prototype.trimend@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" -string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - string.prototype.trimstart@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" @@ -13941,7 +14336,7 @@ tap-parser@^7.0.0: js-yaml "^3.2.7" minipass "^2.2.0" -tapable@^1.0.0, tapable@^1.1.0: +tapable@^1.0.0, tapable@^1.1.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== @@ -13985,6 +14380,21 @@ terser-webpack-plugin@^1.1.0: webpack-sources "^1.4.0" worker-farm "^1.7.0" +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + terser@^4.1.2: version "4.5.1" resolved "https://registry.yarnpkg.com/terser/-/terser-4.5.1.tgz#63b52d6b6ce344aa6fedcd0ee06a695799eb50bd" @@ -14137,6 +14547,14 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== +tiny-glob@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.8.tgz#b2792c396cc62db891ffa161fe8b33e76123e531" + integrity sha512-vkQP7qOslq63XRX9kMswlby99kyO5OvKptw7AMwBVMjXEI7Tb61eoI5DydyEMOseyGS5anDN1VPoVxEvH01q8w== + dependencies: + globalyzer "0.1.0" + globrex "^0.1.2" + tiny-lr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" @@ -14273,14 +14691,6 @@ tough-cookie@^2.3.3, tough-cookie@^2.4.3, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -14443,7 +14853,7 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0, unicode-match-property-value-ecmascript@^1.2.0: +unicode-match-property-value-ecmascript@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== @@ -14707,6 +15117,14 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" +validate-peer-dependencies@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/validate-peer-dependencies/-/validate-peer-dependencies-1.1.0.tgz#8240a115df121ea35b0bb082255b38b5c591d7e1" + integrity sha512-eHHxI3fNMqu8bzWPRWWgV72kBJkWwRCeEua7yC7UI6dsqC55orhxKAC3uyQfCjjToOyAZ8mpNrbQH+NMoYBn1w== + dependencies: + resolve-package-path "^3.1.0" + semver "^7.3.2" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -14789,6 +15207,13 @@ watch-detector@^1.0.0: silent-error "^1.1.1" tmp "^0.1.0" +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" @@ -14798,6 +15223,17 @@ watchpack@^1.5.0: graceful-fs "^4.1.2" neo-async "^2.5.0" +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -14820,7 +15256,7 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-sources@^1.3.0, webpack-sources@^1.4.0: +webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -14828,6 +15264,35 @@ webpack-sources@^1.3.0, webpack-sources@^1.4.0: source-list-map "^2.0.0" source-map "~0.6.1" +webpack@^4.43.0: + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.5.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + webpack@~4.28: version "4.28.4" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.4.tgz#1ddae6c89887d7efb752adf0c3cd32b9b07eacd0" From f5fac8b9102befa6b7c32848d4906cf8f2ce0dc5 Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 10:49:42 -0800 Subject: [PATCH 02/16] remove ie11 --- tests/dummy/config/targets.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tests/dummy/config/targets.js b/tests/dummy/config/targets.js index 8ffae363..ddd4c596 100644 --- a/tests/dummy/config/targets.js +++ b/tests/dummy/config/targets.js @@ -6,13 +6,6 @@ const browsers = [ '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 }; From 43b4f854e08b68087835e110cdbe053c022c713e Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 10:59:36 -0800 Subject: [PATCH 03/16] fix qunit not found --- ember-cli-build.js | 4 +++- index.js | 26 ++++++++++++++++++++++++++ package.json | 2 ++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/ember-cli-build.js b/ember-cli-build.js index b3a7b8a5..383c83d5 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -3,8 +3,10 @@ const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); module.exports = function(defaults) { + const self = defaults.project.findAddonByName('ember-exam'); + const autoImport = self.options.autoImport; let app = new EmberAddon(defaults, { - // Add options here + autoImport }); const { maybeEmbroider } = require('@embroider/test-setup'); diff --git a/index.js b/index.js index 9d9d426a..c851a9e9 100644 --- a/index.js +++ b/index.js @@ -2,10 +2,36 @@ 'use strict'; +const VersionChecker = require('ember-cli-version-checker'); + module.exports = { name: require('./package').name, includedCommands() { return require('./lib/commands'); + }, + + init() { + this._super.init.apply(this, arguments); + let versionChecker = new VersionChecker(this.project); + + const hasMagicallyProvidedQUnit = versionChecker + .for('ember-qunit') + .lt('5.0.0-beta.1'); + + // Ember-qunit < 5 provides an AMD shim for qunit but newer versions now use + // ember-auto-import to include qunit. This means that qunit is no + // longer available for addons (if the parent app is using ember-qunit > 5) to + // directly import under embroider unless they are using ember-auto-import + // themselves. This condidionally falls back to not using ember-auto-import + // when the parent app is providing qunit because without this we would double + // include qunit resulting in a runtime error (qunit detects if it as + // already be added to the window object and errors if so). + if (hasMagicallyProvidedQUnit) { + this.options = this.options || {}; + this.options.autoImport = { + exclude: ['qunit'], + }; + } } }; diff --git a/package.json b/package.json index 0364fc60..133e00c2 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,9 @@ "chalk": "^4.1.0", "cli-table3": "^0.6.0", "debug": "^4.2.0", + "ember-auto-import": "^1.10.1", "ember-cli-babel": "^7.21.0", + "ember-cli-version-checker": "^5.1.2", "execa": "^4.0.3", "fs-extra": "^9.0.1", "js-yaml": "^3.14.0", From ce00fcebb8630a17b3885636b131366309f17494 Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 11:48:22 -0800 Subject: [PATCH 04/16] exclude ember-mocha from webpack --- index.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index c851a9e9..71279e1f 100644 --- a/index.js +++ b/index.js @@ -19,6 +19,10 @@ module.exports = { .for('ember-qunit') .lt('5.0.0-beta.1'); + let options = { + exclude: ['ember-mocha', 'mocha'] + }; + // Ember-qunit < 5 provides an AMD shim for qunit but newer versions now use // ember-auto-import to include qunit. This means that qunit is no // longer available for addons (if the parent app is using ember-qunit > 5) to @@ -29,9 +33,10 @@ module.exports = { // already be added to the window object and errors if so). if (hasMagicallyProvidedQUnit) { this.options = this.options || {}; - this.options.autoImport = { - exclude: ['qunit'], - }; + options.exclude.push('qunit'); + this.options.autoImport = options; + } else { + this.options.autoImport = options; } } }; From a70f8e8d96a981c7058b8ac98ac3c7e72ca5412d Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 12:23:29 -0800 Subject: [PATCH 05/16] wrap mocha imports in tests --- .github/workflows/ci.yml | 1 + config/ember-try.js | 16 + index.js | 10 +- tests/unit/mocha/filter-test-modules-test.js | 289 ++++++------ tests/unit/mocha/multiple-edge-cases-test.js | 16 +- tests/unit/mocha/multiple-ember-tests-test.js | 70 +-- tests/unit/mocha/multiple-tests-test.js | 66 +-- tests/unit/mocha/test-loader-test.js | 436 +++++++++--------- tests/unit/mocha/testem-output-test.js | 82 ++-- tests/unit/mocha/weight-test-modules-test.js | 94 ++-- 10 files changed, 567 insertions(+), 513 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 08167416..0aa4d636 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,6 +47,7 @@ jobs: - embroider-safe-with-mocha - embroider-optimized - embroider-optimized-with-mocha + - ember-lts-3.24 - ember-lts-3.20 - ember-lts-3.16 - ember-lts-3.12 diff --git a/config/ember-try.js b/config/ember-try.js index 85bacffd..920cdd8e 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -35,6 +35,22 @@ module.exports = async function() { } } }, + { + name: 'ember-lts-3.20', + npm: { + devDependencies: { + 'ember-source': '~3.20.0' + } + } + }, + { + name: 'ember-lts-3.24', + npm: { + devDependencies: { + 'ember-source': '~3.24.0' + } + } + }, { name: 'ember-release', npm: { diff --git a/index.js b/index.js index 71279e1f..3a77e788 100644 --- a/index.js +++ b/index.js @@ -20,7 +20,15 @@ module.exports = { .lt('5.0.0-beta.1'); let options = { - exclude: ['ember-mocha', 'mocha'] + exclude: ['ember-mocha', 'mocha'], + webpack: { + externals: { + mocha: 'mocha' + }, + node: { + stream: false + } + } }; // Ember-qunit < 5 provides an AMD shim for qunit but newer versions now use diff --git a/tests/unit/mocha/filter-test-modules-test.js b/tests/unit/mocha/filter-test-modules-test.js index 0b8d2668..3de05cb0 100644 --- a/tests/unit/mocha/filter-test-modules-test.js +++ b/tests/unit/mocha/filter-test-modules-test.js @@ -1,147 +1,152 @@ +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; import { convertFilePathToModulePath, filterTestModules } from 'ember-exam/test-support/-private/filter-test-modules'; -import { describe, it, beforeEach, afterEach } from 'mocha'; -import { expect } from 'chai'; - -describe('Unit | Mocha | filter-test-modules', () => { - describe('convertFilePathToModulePath', () => { - it('should return an input string without file extension when the input contains file extension', () => { - expect(convertFilePathToModulePath('/tests/integration/foo.js')).to.equal( - '/tests/integration/foo' - ); - }); - - it(`should return an input string without file extension when the input doesn't contain file extension`, () => { - expect(convertFilePathToModulePath('/tests/integration/foo')).to.equal( - '/tests/integration/foo' - ); - }); - - it('should return an input string after `tests` when the input is a full test file path', () => { - expect(convertFilePathToModulePath('dummy/tests/integration/foo.js')).to.equal( - '/tests/integration/foo' - ); - }); - }); - - describe('modulePath | Mocha', () => { - let modules = []; - - beforeEach(() => { - modules = [ - 'foo-test', - 'foo-test.jshint', - 'bar-test', - 'bar-test.jshint', - ]; - }); - - afterEach(() => { - modules = []; - }); - - it('should return a list of jshint tests', () => { - expect(filterTestModules(modules, 'jshint')).to.deep.equal([ - 'foo-test.jshint', - 'bar-test.jshint' - ]); - }); - - it('should return an empty list when there is no match', () => { - expect(() => { - filterTestModules(modules, 'no-match'); - }).to.throw(/No tests matched with the filter:/); - }); - - it('should return a list of tests matched with a regular expression', () => { - expect(filterTestModules(modules, '/jshint/')).to.deep.equal([ - 'foo-test.jshint', - 'bar-test.jshint' - ]); - }); - - it('should return a list of tests matched with a regular expression that excluses jshint', () => { - expect(filterTestModules(modules, '!/jshint/')).to.deep.equal([ - 'foo-test', - 'bar-test' - ]); - }); - - it('should return a list of tests matches with a list of string options', () => { - expect(filterTestModules(modules, 'foo, bar')).to.deep.equal([ - 'foo-test', - 'foo-test.jshint', - 'bar-test', - 'bar-test.jshint' - ]); - }); - it('should return a list of unique tests matches when options are repeated', () => { - expect(filterTestModules(modules, 'foo, foo')).to.deep.equal([ - 'foo-test', - 'foo-test.jshint' - ]); +if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + let { describe, it, beforeEach, afterEach } = importSync('mocha'); + let { expect } = importSync('chai'); + + describe('Unit | Mocha | filter-test-modules', () => { + describe('convertFilePathToModulePath', () => { + it('should return an input string without file extension when the input contains file extension', () => { + expect(convertFilePathToModulePath('/tests/integration/foo.js')).to.equal( + '/tests/integration/foo' + ); + }); + + it(`should return an input string without file extension when the input doesn't contain file extension`, () => { + expect(convertFilePathToModulePath('/tests/integration/foo')).to.equal( + '/tests/integration/foo' + ); + }); + + it('should return an input string after `tests` when the input is a full test file path', () => { + expect(convertFilePathToModulePath('dummy/tests/integration/foo.js')).to.equal( + '/tests/integration/foo' + ); + }); + }); + + describe('modulePath | Mocha', () => { + let modules = []; + + beforeEach(() => { + modules = [ + 'foo-test', + 'foo-test.jshint', + 'bar-test', + 'bar-test.jshint', + ]; + }); + + afterEach(() => { + modules = []; + }); + + it('should return a list of jshint tests', () => { + expect(filterTestModules(modules, 'jshint')).to.deep.equal([ + 'foo-test.jshint', + 'bar-test.jshint' + ]); + }); + + it('should return an empty list when there is no match', () => { + expect(() => { + filterTestModules(modules, 'no-match'); + }).to.throw(/No tests matched with the filter:/); + }); + + it('should return a list of tests matched with a regular expression', () => { + expect(filterTestModules(modules, '/jshint/')).to.deep.equal([ + 'foo-test.jshint', + 'bar-test.jshint' + ]); + }); + + it('should return a list of tests matched with a regular expression that excluses jshint', () => { + expect(filterTestModules(modules, '!/jshint/')).to.deep.equal([ + 'foo-test', + 'bar-test' + ]); + }); + + it('should return a list of tests matches with a list of string options', () => { + expect(filterTestModules(modules, 'foo, bar')).to.deep.equal([ + 'foo-test', + 'foo-test.jshint', + 'bar-test', + 'bar-test.jshint' + ]); + }); + + it('should return a list of unique tests matches when options are repeated', () => { + expect(filterTestModules(modules, 'foo, foo')).to.deep.equal([ + 'foo-test', + 'foo-test.jshint' + ]); + }); + }); + + describe('filePath | Mocha', () => { + let modules = []; + + beforeEach(() => { + modules = [ + 'dummy/tests/integration/foo-test', + 'dummy/tests/unit/foo-test', + 'dummy/tests/unit/bar-test' + ]; + }); + + afterEach(() => { + modules = []; + }); + + it('should return a test module matches with full test file path', () => { + expect(filterTestModules(modules, null, 'app/tests/integration/foo-test.js')).to.deep.equal([ + 'dummy/tests/integration/foo-test' + ]); + }); + + it('should return a test module matches with relative test file path', () => { + expect(filterTestModules(modules, null, '/tests/unit/foo-test')).to.deep.equal([ + 'dummy/tests/unit/foo-test' + ]); + }); + + it('should return a test module matched with test file path with wildcard', () => { + expect(filterTestModules(modules, null, '/unit/*')).to.deep.equal([ + 'dummy/tests/unit/foo-test', + 'dummy/tests/unit/bar-test' + ]); + }); + + it('should return a test module matched with test file path with wildcard', () => { + expect(filterTestModules(modules, null, '/tests/*/foo*')).to.deep.equal([ + 'dummy/tests/integration/foo-test', + 'dummy/tests/unit/foo-test' + ]); + }); + + it('should return a list of tests matched with a regular expression', () => { + expect(() => { + filterTestModules(modules, null, 'no-match'); + }).to.throw(/No tests matched with the filter:/); + }); + + it('should return a list of tests matches with a list of string options', () => { + expect(filterTestModules(modules, null, '/tests/integration/*, dummy/tests/unit/foo-test')).to.deep.equal([ + 'dummy/tests/integration/foo-test', + 'dummy/tests/unit/foo-test' + ]); + }); + + it('should return a list of unique tests matches when options are repeated', () => { + expect(filterTestModules(modules, null, 'app/tests/unit/bar-test.js, /tests/unit/*')).to.deep.equal([ + 'dummy/tests/unit/bar-test', + 'dummy/tests/unit/foo-test' + ]); + }); }); }); +} - describe('filePath | Mocha', () => { - let modules = []; - - beforeEach(() => { - modules = [ - 'dummy/tests/integration/foo-test', - 'dummy/tests/unit/foo-test', - 'dummy/tests/unit/bar-test' - ]; - }); - - afterEach(() => { - modules = []; - }); - - it('should return a test module matches with full test file path', () => { - expect(filterTestModules(modules, null, 'app/tests/integration/foo-test.js')).to.deep.equal([ - 'dummy/tests/integration/foo-test' - ]); - }); - - it('should return a test module matches with relative test file path', () => { - expect(filterTestModules(modules, null, '/tests/unit/foo-test')).to.deep.equal([ - 'dummy/tests/unit/foo-test' - ]); - }); - - it('should return a test module matched with test file path with wildcard', () => { - expect(filterTestModules(modules, null, '/unit/*')).to.deep.equal([ - 'dummy/tests/unit/foo-test', - 'dummy/tests/unit/bar-test' - ]); - }); - - it('should return a test module matched with test file path with wildcard', () => { - expect(filterTestModules(modules, null, '/tests/*/foo*')).to.deep.equal([ - 'dummy/tests/integration/foo-test', - 'dummy/tests/unit/foo-test' - ]); - }); - - it('should return a list of tests matched with a regular expression', () => { - expect(() => { - filterTestModules(modules, null, 'no-match'); - }).to.throw(/No tests matched with the filter:/); - }); - - it('should return a list of tests matches with a list of string options', () => { - expect(filterTestModules(modules, null, '/tests/integration/*, dummy/tests/unit/foo-test')).to.deep.equal([ - 'dummy/tests/integration/foo-test', - 'dummy/tests/unit/foo-test' - ]); - }); - - it('should return a list of unique tests matches when options are repeated', () => { - expect(filterTestModules(modules, null, 'app/tests/unit/bar-test.js, /tests/unit/*')).to.deep.equal([ - 'dummy/tests/unit/bar-test', - 'dummy/tests/unit/foo-test' - ]); - }); - }); -}); \ No newline at end of file diff --git a/tests/unit/mocha/multiple-edge-cases-test.js b/tests/unit/mocha/multiple-edge-cases-test.js index 2b49a563..948980ff 100644 --- a/tests/unit/mocha/multiple-edge-cases-test.js +++ b/tests/unit/mocha/multiple-edge-cases-test.js @@ -1,8 +1,12 @@ -import { describe, it } from 'mocha'; -import { expect } from 'chai'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; -describe('Mocha | #3: Module With Multiple Edge Case Tests', function() { - it('#1 RegExp test', function() { - expect(/derp/.test('derp')).to.be.ok; +if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + let { describe, it } = importSync('mocha'); + let { expect } = importSync('chai'); + + describe('Mocha | #3: Module With Multiple Edge Case Tests', function() { + it('#1 RegExp test', function() { + expect(/derp/.test('derp')).to.be.ok; + }); }); -}); +} diff --git a/tests/unit/mocha/multiple-ember-tests-test.js b/tests/unit/mocha/multiple-ember-tests-test.js index 68b5c8eb..e185be11 100644 --- a/tests/unit/mocha/multiple-ember-tests-test.js +++ b/tests/unit/mocha/multiple-ember-tests-test.js @@ -1,35 +1,39 @@ -import { expect } from 'chai'; -import { describe, it } from 'mocha'; -import { setupTest } from 'ember-mocha'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; -describe('Mocha | #1: Module-For With Multiple Tests', function() { - setupTest(); +if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + let { describe, it } = importSync('mocha'); + let { expect } = importSync('chai'); + let { setupTest } = importSync('ember-mocha'); - it('#1', function() { - expect(true).to.be.ok; - }); - it('#2', function() { - expect(true).to.be.ok; - }); - it('#3', function() { - expect(true).to.be.ok; - }); - it('#4', function() { - expect(true).to.be.ok; - }); - it('#5', function() { - expect(true).to.be.ok; - }); - it('#6', function() { - expect(true).to.be.ok; - }); - it('#7', function() { - expect(true).to.be.ok; - }); - it('#8', function() { - expect(true).to.be.ok; - }); - it('#9', function() { - expect(true).to.be.ok; - }); -}); \ No newline at end of file + describe('Mocha | #1: Module-For With Multiple Tests', function() { + setupTest(); + + it('#1', function() { + expect(true).to.be.ok; + }); + it('#2', function() { + expect(true).to.be.ok; + }); + it('#3', function() { + expect(true).to.be.ok; + }); + it('#4', function() { + expect(true).to.be.ok; + }); + it('#5', function() { + expect(true).to.be.ok; + }); + it('#6', function() { + expect(true).to.be.ok; + }); + it('#7', function() { + expect(true).to.be.ok; + }); + it('#8', function() { + expect(true).to.be.ok; + }); + it('#9', function() { + expect(true).to.be.ok; + }); + }); +} \ No newline at end of file diff --git a/tests/unit/mocha/multiple-tests-test.js b/tests/unit/mocha/multiple-tests-test.js index 1b71dcbe..cc3bf5b2 100644 --- a/tests/unit/mocha/multiple-tests-test.js +++ b/tests/unit/mocha/multiple-tests-test.js @@ -1,32 +1,36 @@ -import { describe, it } from 'mocha'; -import { expect } from 'chai'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; -describe('Mocha | #2: Module With Multiple Tests', function() { - it('#1', function() { - expect(true).to.be.ok; - }); - it('#2', function() { - expect(true).to.be.ok; - }); - it('#3', function() { - expect(true).to.be.ok; - }); - it('#4', function() { - expect(true).to.be.ok; - }); - it('#5', function() { - expect(true).to.be.ok; - }); - it('#6', function() { - expect(true).to.be.ok; - }); - it('#7', function() { - expect(true).to.be.ok; - }); - it('#8', function() { - expect(true).to.be.ok; - }); - it('#9', function() { - expect(true).to.be.ok; - }); -}); +if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + let { describe, it } = importSync('mocha'); + let { expect } = importSync('chai'); + + describe('Mocha | #2: Module With Multiple Tests', function() { + it('#1', function() { + expect(true).to.be.ok; + }); + it('#2', function() { + expect(true).to.be.ok; + }); + it('#3', function() { + expect(true).to.be.ok; + }); + it('#4', function() { + expect(true).to.be.ok; + }); + it('#5', function() { + expect(true).to.be.ok; + }); + it('#6', function() { + expect(true).to.be.ok; + }); + it('#7', function() { + expect(true).to.be.ok; + }); + it('#8', function() { + expect(true).to.be.ok; + }); + it('#9', function() { + expect(true).to.be.ok; + }); + }); +} diff --git a/tests/unit/mocha/test-loader-test.js b/tests/unit/mocha/test-loader-test.js index eb46dd5d..02da28d2 100644 --- a/tests/unit/mocha/test-loader-test.js +++ b/tests/unit/mocha/test-loader-test.js @@ -1,236 +1,240 @@ +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; import EmberExamTestLoader from 'ember-exam/test-support/-private/ember-exam-mocha-test-loader'; -import { describe, it, beforeEach, afterEach } from 'mocha'; -import { expect } from 'chai'; - -describe('Unit | Mocha | test-loader', function() { - beforeEach(function() { - this.originalRequire = window.require; - this.requiredModules = []; - window.require = name => { - this.requiredModules.push(name); - }; - - window.requirejs.entries = { - 'test-1-test': true, - 'test-1-test.jshint': true, - 'test-2-test': true, - 'test-2-test.jshint': true, - 'test-3-test': true, - 'test-3-test.jshint': true, - 'test-4-test': true, - 'test-4-test.jshint': true - }; - this.originalURLParams = EmberExamTestLoader._urlParams; - }); - - afterEach(function() { - window.require = this.originalRequire; - }); - - it('loads all test modules by default', function() { - const testLoader = new EmberExamTestLoader(this.testem, new Map()); - testLoader.loadModules(); - - expect(this.requiredModules).to.deep.equal([ - 'test-1-test.jshint', - 'test-2-test.jshint', - 'test-3-test.jshint', - 'test-4-test.jshint', - 'test-1-test', - 'test-2-test', - 'test-3-test', - 'test-4-test' - ]); - }); - - it('loads modules from a specified partition', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', 3).set('split', 4) - ); - testLoader.loadModules(); - - expect(this.requiredModules).to.deep.equal([ - 'test-3-test.jshint', - 'test-3-test' - ]); - }); - - it('loads modules from multiple specified partitions', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', [1, 3]).set('split', 4) - ); - testLoader.loadModules(); - - expect(this.requiredModules).to.deep.equal([ - 'test-1-test.jshint', - 'test-1-test', - 'test-3-test.jshint', - 'test-3-test' - ]); - }); - - it('loads modules from the first partition by default', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 4) - ); - testLoader.loadModules(); - - expect(this.requiredModules).to.deep.equal([ - 'test-1-test.jshint', - 'test-1-test' - ]); - }); - - it('handles params as strings', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', '3').set('split', '4') - ); - testLoader.loadModules(); - - expect(this.requiredModules).to.deep.equal([ - 'test-3-test.jshint', - 'test-3-test' - ]); - }); - - it('throws an error if splitting less than one', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 0) - ); - expect(() => { +if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + let { describe, it, beforeEach, afterEach } = importSync('mocha'); + let { expect } = importSync('chai'); + + describe('Unit | Mocha | test-loader', function() { + beforeEach(function() { + this.originalRequire = window.require; + this.requiredModules = []; + window.require = name => { + this.requiredModules.push(name); + }; + + window.requirejs.entries = { + 'test-1-test': true, + 'test-1-test.jshint': true, + 'test-2-test': true, + 'test-2-test.jshint': true, + 'test-3-test': true, + 'test-3-test.jshint': true, + 'test-4-test': true, + 'test-4-test.jshint': true + }; + this.originalURLParams = EmberExamTestLoader._urlParams; + }); + + afterEach(function() { + window.require = this.originalRequire; + }); + + it('loads all test modules by default', function() { + const testLoader = new EmberExamTestLoader(this.testem, new Map()); testLoader.loadModules(); - }).to.throw(/You must specify a split greater than 0/); - }); - - it('throws an error if partition isn\'t a number', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', 'foo') - ); - expect(() => { + expect(this.requiredModules).to.deep.equal([ + 'test-1-test.jshint', + 'test-2-test.jshint', + 'test-3-test.jshint', + 'test-4-test.jshint', + 'test-1-test', + 'test-2-test', + 'test-3-test', + 'test-4-test' + ]); + }); + + it('loads modules from a specified partition', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', 3).set('split', 4) + ); testLoader.loadModules(); - }).to.throw( - /You must specify numbers for partition \(you specified 'foo'\)/ - ); - }); - - it('throws an error if partition isn\'t a number with multiple partitions', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', [1, 'foo']) - ); - expect(() => { + expect(this.requiredModules).to.deep.equal([ + 'test-3-test.jshint', + 'test-3-test' + ]); + }); + + it('loads modules from multiple specified partitions', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', [1, 3]).set('split', 4) + ); testLoader.loadModules(); - }).to.throw( - /You must specify numbers for partition \(you specified '1,foo'\)/ - ); - }); - - it('throws an error if loading partition greater than split number', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', 3) - ); - expect(() => { + expect(this.requiredModules).to.deep.equal([ + 'test-1-test.jshint', + 'test-1-test', + 'test-3-test.jshint', + 'test-3-test' + ]); + }); + + it('loads modules from the first partition by default', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 4) + ); testLoader.loadModules(); - }).to.throw( - /You must specify partitions numbered less than or equal to your split value/ - ); - }); - - it('throws an error if loading partition greater than split number with multiple partitions', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', [2, 3]) - ); - expect(() => { + expect(this.requiredModules).to.deep.equal([ + 'test-1-test.jshint', + 'test-1-test' + ]); + }); + + it('handles params as strings', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', '3').set('split', '4') + ); testLoader.loadModules(); - }).to.throw( - /You must specify partitions numbered less than or equal to your split value/ - ); - }); - - it('throws an error if loading partition less than one', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', 0) - ); - expect(() => { + expect(this.requiredModules).to.deep.equal([ + 'test-3-test.jshint', + 'test-3-test' + ]); + }); + + it('throws an error if splitting less than one', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 0) + ); + + expect(() => { + testLoader.loadModules(); + }).to.throw(/You must specify a split greater than 0/); + }); + + it('throws an error if partition isn\'t a number', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', 'foo') + ); + + expect(() => { + testLoader.loadModules(); + }).to.throw( + /You must specify numbers for partition \(you specified 'foo'\)/ + ); + }); + + it('throws an error if partition isn\'t a number with multiple partitions', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', [1, 'foo']) + ); + + expect(() => { + testLoader.loadModules(); + }).to.throw( + /You must specify numbers for partition \(you specified '1,foo'\)/ + ); + }); + + it('throws an error if loading partition greater than split number', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', 3) + ); + + expect(() => { + testLoader.loadModules(); + }).to.throw( + /You must specify partitions numbered less than or equal to your split value/ + ); + }); + + it('throws an error if loading partition greater than split number with multiple partitions', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', [2, 3]) + ); + + expect(() => { + testLoader.loadModules(); + }).to.throw( + /You must specify partitions numbered less than or equal to your split value/ + ); + }); + + it('throws an error if loading partition less than one', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', 0) + ); + + expect(() => { + testLoader.loadModules(); + }).to.throw(/You must specify partitions numbered greater than 0/); + }); + + it('load works without lint tests', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map() + .set('nolint', true) + .set('partition', 4) + .set('split', 4) + ); testLoader.loadModules(); - }).to.throw(/You must specify partitions numbered greater than 0/); - }); - - it('load works without lint tests', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map() - .set('nolint', true) - .set('partition', 4) - .set('split', 4) - ); - testLoader.loadModules(); - - // ember-cli-mocha doesn't support disabling linting by url param - expect(this.requiredModules).to.deep.equal([ - 'test-4-test.jshint', - 'test-4-test' - ]); - }); - it('load works without non-lint tests', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', 4).set('split', 4) - ); + // ember-cli-mocha doesn't support disabling linting by url param + expect(this.requiredModules).to.deep.equal([ + 'test-4-test.jshint', + 'test-4-test' + ]); + }); + + it('load works without non-lint tests', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', 4).set('split', 4) + ); + + window.requirejs.entries = { + 'test-1-test.jshint': true, + 'test-2-test.jshint': true, + 'test-3-test.jshint': true, + 'test-4-test.jshint': true + }; - window.requirejs.entries = { - 'test-1-test.jshint': true, - 'test-2-test.jshint': true, - 'test-3-test.jshint': true, - 'test-4-test.jshint': true - }; + testLoader.loadModules(); - testLoader.loadModules(); + expect(this.requiredModules).to.deep.equal(['test-4-test.jshint']); + }); + + it('load works with a double-digit single partition', function() { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', '10').set('split', 10) + ); + + window.requirejs.entries = { + 'test-1-test': true, + 'test-2-test': true, + 'test-3-test': true, + 'test-4-test': true, + 'test-5-test': true, + 'test-6-test': true, + 'test-7-test': true, + 'test-8-test': true, + 'test-9-test': true, + 'test-10-test': true + }; - expect(this.requiredModules).to.deep.equal(['test-4-test.jshint']); - }); + testLoader.loadModules(); - it('load works with a double-digit single partition', function() { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', '10').set('split', 10) - ); - - window.requirejs.entries = { - 'test-1-test': true, - 'test-2-test': true, - 'test-3-test': true, - 'test-4-test': true, - 'test-5-test': true, - 'test-6-test': true, - 'test-7-test': true, - 'test-8-test': true, - 'test-9-test': true, - 'test-10-test': true - }; - - testLoader.loadModules(); - - expect(this.requiredModules).to.deep.equal(['test-10-test']); - }); + expect(this.requiredModules).to.deep.equal(['test-10-test']); + }); - it('dummy test to even out the number of tests', function() { - expect(true).to.be.ok; + it('dummy test to even out the number of tests', function() { + expect(true).to.be.ok; + }); }); -}); +} \ No newline at end of file diff --git a/tests/unit/mocha/testem-output-test.js b/tests/unit/mocha/testem-output-test.js index 3de2bb60..808f9d9f 100644 --- a/tests/unit/mocha/testem-output-test.js +++ b/tests/unit/mocha/testem-output-test.js @@ -1,45 +1,49 @@ -import { describe, it } from 'mocha'; -import { expect } from 'chai'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; import * as TestemOutput from 'ember-exam/test-support/-private/patch-testem-output'; -describe('Unit | Mocha | patch-testem-output', () => { - it('add partition number to test name when `split` is passed', function() { - expect( - TestemOutput.updateTestName( - new Map().set('split', 2), - 'test_module | test_name' - ) - ).to.equal('Exam Partition 1 - test_module | test_name'); - }); +if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + let { describe, it } = importSync('mocha'); + let { expect } = importSync('chai'); - it('add partition number to test name when `split` and `partition` are passed', function() { - expect( - TestemOutput.updateTestName( - new Map().set('split', 2).set('partition', 2), - 'test_module | test_name' - ) - ).to.equal('Exam Partition 2 - test_module | test_name'); - }); + describe('Unit | Mocha | patch-testem-output', () => { + it('add partition number to test name when `split` is passed', function() { + expect( + TestemOutput.updateTestName( + new Map().set('split', 2), + 'test_module | test_name' + ) + ).to.equal('Exam Partition 1 - test_module | test_name'); + }); - it('add browser number to test name when `loadBalance` and `browser` are passed', function() { - expect( - TestemOutput.updateTestName( - new Map().set('loadBalance', 2).set('browser', 1), - 'test_module | test_name' - ) - ).to.equal('Browser Id 1 - test_module | test_name'); - }); + it('add partition number to test name when `split` and `partition` are passed', function() { + expect( + TestemOutput.updateTestName( + new Map().set('split', 2).set('partition', 2), + 'test_module | test_name' + ) + ).to.equal('Exam Partition 2 - test_module | test_name'); + }); + + it('add browser number to test name when `loadBalance` and `browser` are passed', function() { + expect( + TestemOutput.updateTestName( + new Map().set('loadBalance', 2).set('browser', 1), + 'test_module | test_name' + ) + ).to.equal('Browser Id 1 - test_module | test_name'); + }); - it('add partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function() { - expect( - TestemOutput.updateTestName( - new Map() - .set('split', 2) - .set('partition', 2) - .set('browser', 1) - .set('loadBalance', 2), - 'test_module | test_name' - ) - ).to.equal('Exam Partition 2 - Browser Id 1 - test_module | test_name'); + it('add partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function() { + expect( + TestemOutput.updateTestName( + new Map() + .set('split', 2) + .set('partition', 2) + .set('browser', 1) + .set('loadBalance', 2), + 'test_module | test_name' + ) + ).to.equal('Exam Partition 2 - Browser Id 1 - test_module | test_name'); + }); }); -}); +} \ No newline at end of file diff --git a/tests/unit/mocha/weight-test-modules-test.js b/tests/unit/mocha/weight-test-modules-test.js index 0ee5c5ac..8d1bc9a5 100644 --- a/tests/unit/mocha/weight-test-modules-test.js +++ b/tests/unit/mocha/weight-test-modules-test.js @@ -1,51 +1,55 @@ +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; import weightTestModules from 'ember-exam/test-support/-private/weight-test-modules'; -import { describe, it } from 'mocha'; -import { expect } from 'chai'; -describe('Unit | Mocha | weight-test-modules', () => { - it('should sort a list of file paths by weight', function() { - const listOfModules = [ - '/eslint/test-1-test', - '/acceptance/test-1-test', - '/unit/test-1-test', - '/integration/test-1-test', - 'test-1-test' - ]; +if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + let { describe, it } = importSync('mocha'); + let { expect } = importSync('chai'); - expect(weightTestModules(listOfModules)).to.deep.equal([ - '/acceptance/test-1-test', - 'test-1-test', - '/integration/test-1-test', - '/unit/test-1-test', - '/eslint/test-1-test' - ]); - }); + describe('Unit | Mocha | weight-test-modules', () => { + it('should sort a list of file paths by weight', function() { + const listOfModules = [ + '/eslint/test-1-test', + '/acceptance/test-1-test', + '/unit/test-1-test', + '/integration/test-1-test', + 'test-1-test' + ]; + + expect(weightTestModules(listOfModules)).to.deep.equal([ + '/acceptance/test-1-test', + 'test-1-test', + '/integration/test-1-test', + '/unit/test-1-test', + '/eslint/test-1-test' + ]); + }); - it('should sort a list of file paths by weight and alphbetical order', function() { - const listOfModules = [ - 'test-b-test', - 'test-a-test', - '/eslint/test-b-test', - '/integration/test-b-test', - '/integration/test-a-test', - '/unit/test-b-test', - '/acceptance/test-b-test', - '/acceptance/test-a-test', - '/unit/test-a-test', - '/eslint/test-a-test' - ]; + it('should sort a list of file paths by weight and alphbetical order', function() { + const listOfModules = [ + 'test-b-test', + 'test-a-test', + '/eslint/test-b-test', + '/integration/test-b-test', + '/integration/test-a-test', + '/unit/test-b-test', + '/acceptance/test-b-test', + '/acceptance/test-a-test', + '/unit/test-a-test', + '/eslint/test-a-test' + ]; - expect(weightTestModules(listOfModules)).to.deep.equal([ - '/acceptance/test-a-test', - '/acceptance/test-b-test', - 'test-a-test', - 'test-b-test', - '/integration/test-a-test', - '/integration/test-b-test', - '/unit/test-a-test', - '/unit/test-b-test', - '/eslint/test-a-test', - '/eslint/test-b-test' - ]); + expect(weightTestModules(listOfModules)).to.deep.equal([ + '/acceptance/test-a-test', + '/acceptance/test-b-test', + 'test-a-test', + 'test-b-test', + '/integration/test-a-test', + '/integration/test-b-test', + '/unit/test-a-test', + '/unit/test-b-test', + '/eslint/test-a-test', + '/eslint/test-b-test' + ]); + }); }); -}); +} \ No newline at end of file From 3c144cef2520aab0fad7576514fe41a0b28f0800 Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 13:06:07 -0800 Subject: [PATCH 06/16] Pass webpack externals to embroider for eai --- ember-cli-build.js | 10 +++++++++- index.js | 10 +--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ember-cli-build.js b/ember-cli-build.js index 383c83d5..469d2118 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -10,5 +10,13 @@ module.exports = function(defaults) { }); const { maybeEmbroider } = require('@embroider/test-setup'); - return maybeEmbroider(app); + return maybeEmbroider(app, { + packagerOptions: { + webpackConfig: { + externals: { + mocha: 'mocha' + } + } + } + }); }; diff --git a/index.js b/index.js index 3a77e788..71279e1f 100644 --- a/index.js +++ b/index.js @@ -20,15 +20,7 @@ module.exports = { .lt('5.0.0-beta.1'); let options = { - exclude: ['ember-mocha', 'mocha'], - webpack: { - externals: { - mocha: 'mocha' - }, - node: { - stream: false - } - } + exclude: ['ember-mocha', 'mocha'] }; // Ember-qunit < 5 provides an AMD shim for qunit but newer versions now use From 36e50ab48ab0bdfab30eeb6c78333453f17e2bf7 Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 13:20:13 -0800 Subject: [PATCH 07/16] wrap qunit tests for eai --- tests/unit/qunit/async-iterator-test.js | 324 +++++------ tests/unit/qunit/filter-test-modules-test.js | 317 +++++------ tests/unit/qunit/multiple-edge-cases-test.js | 14 +- tests/unit/qunit/multiple-ember-tests-test.js | 68 +-- tests/unit/qunit/multiple-tests-test.js | 62 ++- tests/unit/qunit/test-loader-test.js | 522 +++++++++--------- tests/unit/qunit/testem-output-test.js | 88 +-- tests/unit/qunit/weight-test-modules-test.js | 94 ++-- 8 files changed, 761 insertions(+), 728 deletions(-) diff --git a/tests/unit/qunit/async-iterator-test.js b/tests/unit/qunit/async-iterator-test.js index c2e91d45..fb137a0b 100644 --- a/tests/unit/qunit/async-iterator-test.js +++ b/tests/unit/qunit/async-iterator-test.js @@ -1,191 +1,195 @@ import AsyncIterator from 'ember-exam/test-support/-private/async-iterator'; -import { module, test } from 'qunit'; - -module('Unit | Qunit | async-iterator', { - beforeEach() { - this.testem = { - eventHandler: new Array(), - emit: function(event) { - const argsWithoutFirst = Array.prototype.slice.call(arguments, 1); - if (this.eventHandler && this.eventHandler[event]) { - let handlers = this.eventHandler[event]; - for (let i = 0; i < handlers.length; i++) { - handlers[i].apply(this, argsWithoutFirst); +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; + +if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { + let { module, test } = importSync('qunit'); + + module('Unit | Qunit | async-iterator', { + beforeEach() { + this.testem = { + eventHandler: new Array(), + emit: function(event) { + const argsWithoutFirst = Array.prototype.slice.call(arguments, 1); + if (this.eventHandler && this.eventHandler[event]) { + let handlers = this.eventHandler[event]; + for (let i = 0; i < handlers.length; i++) { + handlers[i].apply(this, argsWithoutFirst); + } } - } - }, - on: function(event, callBack) { - if (!this.eventHandler) { - this.eventHandler = {}; - } - if (!this.eventHandler[event]) { - this.eventHandler[event] = []; - } - this.eventHandler[event].push(callBack); - }, - removeEventCallbacks: () => {} - }; - } -}); - -test('should instantiate', function(assert) { - let iteratorOfPromises = new AsyncIterator(this.testem, { - request: 'next-module-request', - response: 'next-module-response' + }, + on: function(event, callBack) { + if (!this.eventHandler) { + this.eventHandler = {}; + } + if (!this.eventHandler[event]) { + this.eventHandler[event] = []; + } + this.eventHandler[event].push(callBack); + }, + removeEventCallbacks: () => {} + }; + } }); - assert.deepEqual(iteratorOfPromises.done, false); - assert.deepEqual(typeof iteratorOfPromises.next, 'function'); - assert.deepEqual(typeof iteratorOfPromises.dispose, 'function'); -}); - -test('should get the value from response.', function(assert) { - assert.expect(1); - const done = assert.async(); - this.testem.on('next-module-request', () => { - this.testem.emit('next-module-response', { - done: false, - value: 'a' + test('should instantiate', function(assert) { + let iteratorOfPromises = new AsyncIterator(this.testem, { + request: 'next-module-request', + response: 'next-module-response' }); - }); - const iteratorOfPromises = new AsyncIterator(this.testem, { - request: 'next-module-request', - response: 'next-module-response' + assert.deepEqual(iteratorOfPromises.done, false); + assert.deepEqual(typeof iteratorOfPromises.next, 'function'); + assert.deepEqual(typeof iteratorOfPromises.dispose, 'function'); }); - iteratorOfPromises.next().then(result => { - assert.deepEqual('a', result.value); - done(); - }); -}); - -test('should iterate promises until there is no response.', function(assert) { - assert.expect(1); - const done = assert.async(); - const testem = this.testem; - const responses = ['a', 'b', 'c']; - - testem.on('next-module-request', () => { - testem.emit('next-module-response', { - done: responses.length === 0, - value: responses.shift() + test('should get the value from response.', function(assert) { + assert.expect(1); + const done = assert.async(); + this.testem.on('next-module-request', () => { + this.testem.emit('next-module-response', { + done: false, + value: 'a' + }); }); - }); - const iteratorOfPromises = new AsyncIterator(testem, { - request: 'next-module-request', - response: 'next-module-response' - }); + const iteratorOfPromises = new AsyncIterator(this.testem, { + request: 'next-module-request', + response: 'next-module-response' + }); - let values = []; - - iteratorOfPromises - .next() - .then(res => { - values.push(res.value); - return iteratorOfPromises.next(); - }) - .then(res => { - values.push(res.value); - return iteratorOfPromises.next(); - }) - .then(res => { - values.push(res.value); - assert.deepEqual(values, ['a', 'b', 'c']); + iteratorOfPromises.next().then(result => { + assert.deepEqual('a', result.value); done(); }); -}); - -test('should return false after disposing', function(assert) { - const iteratorOfPromises = new AsyncIterator(this.testem, { - request: 'next-module-request', - response: 'next-module-response' }); - iteratorOfPromises.dispose(); + test('should iterate promises until there is no response.', function(assert) { + assert.expect(1); + const done = assert.async(); + const testem = this.testem; + const responses = ['a', 'b', 'c']; + + testem.on('next-module-request', () => { + testem.emit('next-module-response', { + done: responses.length === 0, + value: responses.shift() + }); + }); - assert.deepEqual(iteratorOfPromises.done, true); -}); + const iteratorOfPromises = new AsyncIterator(testem, { + request: 'next-module-request', + response: 'next-module-response' + }); -test('should dispose after iteration.', function(assert) { - assert.expect(4); - const done = assert.async(); - const testem = this.testem; - const responses = ['a', 'b', 'c']; + let values = []; + + iteratorOfPromises + .next() + .then(res => { + values.push(res.value); + return iteratorOfPromises.next(); + }) + .then(res => { + values.push(res.value); + return iteratorOfPromises.next(); + }) + .then(res => { + values.push(res.value); + assert.deepEqual(values, ['a', 'b', 'c']); + done(); + }); + }); - testem.on('next-module-request', () => { - testem.emit('next-module-response', { - done: responses.length === 0, - value: responses.shift() + test('should return false after disposing', function(assert) { + const iteratorOfPromises = new AsyncIterator(this.testem, { + request: 'next-module-request', + response: 'next-module-response' }); + + iteratorOfPromises.dispose(); + + assert.deepEqual(iteratorOfPromises.done, true); }); - const iteratorOfPromises = new AsyncIterator(testem, { - request: 'next-module-request', - response: 'next-module-response' + test('should dispose after iteration.', function(assert) { + assert.expect(4); + const done = assert.async(); + const testem = this.testem; + const responses = ['a', 'b', 'c']; + + testem.on('next-module-request', () => { + testem.emit('next-module-response', { + done: responses.length === 0, + value: responses.shift() + }); + }); + + const iteratorOfPromises = new AsyncIterator(testem, { + request: 'next-module-request', + response: 'next-module-response' + }); + + iteratorOfPromises + .next() + .then(res => { + assert.deepEqual(res.done, false); + return iteratorOfPromises.next(); + }) + .then(res => { + assert.deepEqual(res.done, false); + return iteratorOfPromises.next(); + }) + .then(res => { + assert.deepEqual(res.done, false); + return iteratorOfPromises.next(); + }) + .then(res => { + assert.deepEqual(res.done, true); + done(); + }); }); - iteratorOfPromises - .next() - .then(res => { - assert.deepEqual(res.done, false); - return iteratorOfPromises.next(); - }) - .then(res => { - assert.deepEqual(res.done, false); - return iteratorOfPromises.next(); - }) - .then(res => { - assert.deepEqual(res.done, false); - return iteratorOfPromises.next(); - }) - .then(res => { + test('should resolve with iterator finishing if request is not handled within 2s', function(assert) { + assert.expect(1); + const iteratorOfPromises = new AsyncIterator(this.testem, { + request: 'next-module-request', + response: 'next-module-response', + timeout: 2 + }); + + return iteratorOfPromises.next().then(res => { assert.deepEqual(res.done, true); - done(); }); -}); - -test('should resolve with iterator finishing if request is not handled within 2s', function(assert) { - assert.expect(1); - const iteratorOfPromises = new AsyncIterator(this.testem, { - request: 'next-module-request', - response: 'next-module-response', - timeout: 2 }); - return iteratorOfPromises.next().then(res => { - assert.deepEqual(res.done, true); - }); -}); - -test('should resolve a timeout error if request is not handled within 2s when emberExamExitOnError is true', function(assert) { - assert.expect(1); - const iteratorOfPromises = new AsyncIterator(this.testem, { - request: 'next-module-request', - response: 'next-module-response', - timeout: 2, - emberExamExitOnError: true, - }); + test('should resolve a timeout error if request is not handled within 2s when emberExamExitOnError is true', function(assert) { + assert.expect(1); + const iteratorOfPromises = new AsyncIterator(this.testem, { + request: 'next-module-request', + response: 'next-module-response', + timeout: 2, + emberExamExitOnError: true, + }); - return iteratorOfPromises.next().then(() => { - assert.ok(false, 'Promise should not resolve, expecting reject'); - },err => { - assert.deepEqual( - err.message, - 'EmberExam: Promise timed out after 2 s while waiting for response for next-module-request' - ); + return iteratorOfPromises.next().then(() => { + assert.ok(false, 'Promise should not resolve, expecting reject'); + },err => { + assert.deepEqual( + err.message, + 'EmberExam: Promise timed out after 2 s while waiting for response for next-module-request' + ); + }); }); -}); -test('should throw an error if handleResponse is invoked while not waiting for a response', function(assert) { - const iteratorOfPromises = new AsyncIterator(this.testem, { - request: 'next-module-request', - response: 'next-module-response' - }); + test('should throw an error if handleResponse is invoked while not waiting for a response', function(assert) { + const iteratorOfPromises = new AsyncIterator(this.testem, { + request: 'next-module-request', + response: 'next-module-response' + }); - assert.throws( - () => iteratorOfPromises.handleResponse({}), - /Was not expecting a response, but got a response/ - ); -}); + assert.throws( + () => iteratorOfPromises.handleResponse({}), + /Was not expecting a response, but got a response/ + ); + }); +} \ No newline at end of file diff --git a/tests/unit/qunit/filter-test-modules-test.js b/tests/unit/qunit/filter-test-modules-test.js index b61e210f..0de8d902 100644 --- a/tests/unit/qunit/filter-test-modules-test.js +++ b/tests/unit/qunit/filter-test-modules-test.js @@ -1,173 +1,178 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; -import { convertFilePathToModulePath, filterTestModules } from 'ember-exam/test-support/-private/filter-test-modules'; - -module('Unit | Qunit | filter-test-modules', function(hooks) { - setupTest(hooks); - - module('covertFilePathToModulePath', function(hooks) { - setupTest(hooks); - - test('should return an input string without file extension when the input contains file extension', function(assert) { - assert.equal(convertFilePathToModulePath('/tests/integration/foo.js'), '/tests/integration/foo'); - }); - test(`should return an input string without file extension when the input doesn't contain file extension`, function(assert) { - assert.equal(convertFilePathToModulePath('/tests/integration/foo'), '/tests/integration/foo'); - }); +import { convertFilePathToModulePath, filterTestModules } from 'ember-exam/test-support/-private/filter-test-modules'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; - test('should return an input string after `tests` when the input is a full test file path', function(assert) { - assert.equal(convertFilePathToModulePath('dummy/tests/integration/foo.js'), '/tests/integration/foo'); - }); - }), +if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { + let { module, test } = importSync('qunit'); + let { setupTest } = importSync('ember-qunit'); - module('modulePath | Qunit', function(hooks) { + module('Unit | Qunit | filter-test-modules', function(hooks) { setupTest(hooks); - hooks.beforeEach(function() { - this.modules = [ - 'foo-test', - 'foo-test.jshint', - 'bar-test', - 'bar-test.jshint', - ]; - }); - - hooks.afterEach(function() { - this.modules = []; - }); - test('should return a list of jshint tests', function(assert) { - assert.deepEqual( - [ - 'foo-test.jshint', - 'bar-test.jshint' - ], - filterTestModules(this.modules, 'jshint') - ); - }); + module('covertFilePathToModulePath', function(hooks) { + setupTest(hooks); - test('should return an empty list when there is no match', function(assert) { - assert.throws( - () => filterTestModules(this.modules, 'no-match'), - /No tests matched with the filter:/ - ); - }); + test('should return an input string without file extension when the input contains file extension', function(assert) { + assert.equal(convertFilePathToModulePath('/tests/integration/foo.js'), '/tests/integration/foo'); + }); - test('should return a list of tests matched with a regular expression', function(assert) { - assert.deepEqual( - [ - 'foo-test.jshint', - 'bar-test.jshint' - ], - filterTestModules(this.modules, '/jshint/') - ); - }); + test(`should return an input string without file extension when the input doesn't contain file extension`, function(assert) { + assert.equal(convertFilePathToModulePath('/tests/integration/foo'), '/tests/integration/foo'); + }); - test('should return a list of tests matched with a regular expression that excluse jshint', function(assert) { - assert.deepEqual( - [ - 'foo-test', - 'bar-test' - ], filterTestModules(this.modules, '!/jshint/') - ); - }); + test('should return an input string after `tests` when the input is a full test file path', function(assert) { + assert.equal(convertFilePathToModulePath('dummy/tests/integration/foo.js'), '/tests/integration/foo'); + }); + }), - test('should return a list of tests matches with a list of string options', function(assert) { - assert.deepEqual( - [ + module('modulePath | Qunit', function(hooks) { + setupTest(hooks); + hooks.beforeEach(function() { + this.modules = [ 'foo-test', 'foo-test.jshint', 'bar-test', - 'bar-test.jshint' - ], filterTestModules(this.modules, 'foo, bar') - ); - }); - - test('should return a list of unique tests matches when options are repeated', function(assert) { - assert.deepEqual( - [ - 'foo-test', - 'foo-test.jshint' - ], filterTestModules(this.modules, 'foo, foo') - ); - }); - }), - - module('filePath | Qunit', function(hooks) { - setupTest(hooks); - hooks.beforeEach(function() { - this.modules = [ - 'dummy/tests/integration/foo-test', - 'dummy/tests/unit/foo-test', - 'dummy/tests/unit/bar-test' - ]; - }); - - hooks.afterEach(function() { - this.modules = []; - }); - - test('should return a test module matched with full test file path', function(assert) { - assert.deepEqual( - [ + 'bar-test.jshint', + ]; + }); + + hooks.afterEach(function() { + this.modules = []; + }); + + test('should return a list of jshint tests', function(assert) { + assert.deepEqual( + [ + 'foo-test.jshint', + 'bar-test.jshint' + ], + filterTestModules(this.modules, 'jshint') + ); + }); + + test('should return an empty list when there is no match', function(assert) { + assert.throws( + () => filterTestModules(this.modules, 'no-match'), + /No tests matched with the filter:/ + ); + }); + + test('should return a list of tests matched with a regular expression', function(assert) { + assert.deepEqual( + [ + 'foo-test.jshint', + 'bar-test.jshint' + ], + filterTestModules(this.modules, '/jshint/') + ); + }); + + test('should return a list of tests matched with a regular expression that excluse jshint', function(assert) { + assert.deepEqual( + [ + 'foo-test', + 'bar-test' + ], filterTestModules(this.modules, '!/jshint/') + ); + }); + + test('should return a list of tests matches with a list of string options', function(assert) { + assert.deepEqual( + [ + 'foo-test', + 'foo-test.jshint', + 'bar-test', + 'bar-test.jshint' + ], filterTestModules(this.modules, 'foo, bar') + ); + }); + + test('should return a list of unique tests matches when options are repeated', function(assert) { + assert.deepEqual( + [ + 'foo-test', + 'foo-test.jshint' + ], filterTestModules(this.modules, 'foo, foo') + ); + }); + }), + + module('filePath | Qunit', function(hooks) { + setupTest(hooks); + hooks.beforeEach(function() { + this.modules = [ 'dummy/tests/integration/foo-test', - ], - filterTestModules(this.modules, null, 'app/tests/integration/foo-test.js') - ); - }); - - test('should return a test module matched with relative test file path', function(assert) { - assert.deepEqual( - [ - 'dummy/tests/unit/foo-test' - ], - filterTestModules(this.modules, null, '/unit/foo-test') - ); - }); - - test('should return a test module matched with test file path with wildcard', function(assert) { - assert.deepEqual( - [ 'dummy/tests/unit/foo-test', 'dummy/tests/unit/bar-test' - ], - filterTestModules(this.modules, null, '/unit/*') - ); - }); - - test('should return a test module matched with test file path with wildcard', function(assert) { - assert.deepEqual( - [ - 'dummy/tests/integration/foo-test', - 'dummy/tests/unit/foo-test' - ], - filterTestModules(this.modules, null, '/tests/*/foo*') - ); - }); - - test('should return an empty list when there is no match', function(assert) { - assert.throws( - () => filterTestModules(this.modules, null, 'no-match'), - /No tests matched with the filter:/ - ); - }); - - test('should return a list of tests matches with a list of string options', function(assert) { - assert.deepEqual( - [ - 'dummy/tests/integration/foo-test', - 'dummy/tests/unit/foo-test' - ], filterTestModules(this.modules, null, '/tests/integration/*, dummy/tests/unit/foo-test') - ); - }); - - test('should return a list of unique tests matches when options are repeated', function(assert) { - assert.deepEqual( - [ - 'dummy/tests/unit/bar-test', - 'dummy/tests/unit/foo-test' - ], filterTestModules(this.modules, null, 'app/tests/unit/bar-test.js, /tests/unit/*') - ); + ]; + }); + + hooks.afterEach(function() { + this.modules = []; + }); + + test('should return a test module matched with full test file path', function(assert) { + assert.deepEqual( + [ + 'dummy/tests/integration/foo-test', + ], + filterTestModules(this.modules, null, 'app/tests/integration/foo-test.js') + ); + }); + + test('should return a test module matched with relative test file path', function(assert) { + assert.deepEqual( + [ + 'dummy/tests/unit/foo-test' + ], + filterTestModules(this.modules, null, '/unit/foo-test') + ); + }); + + test('should return a test module matched with test file path with wildcard', function(assert) { + assert.deepEqual( + [ + 'dummy/tests/unit/foo-test', + 'dummy/tests/unit/bar-test' + ], + filterTestModules(this.modules, null, '/unit/*') + ); + }); + + test('should return a test module matched with test file path with wildcard', function(assert) { + assert.deepEqual( + [ + 'dummy/tests/integration/foo-test', + 'dummy/tests/unit/foo-test' + ], + filterTestModules(this.modules, null, '/tests/*/foo*') + ); + }); + + test('should return an empty list when there is no match', function(assert) { + assert.throws( + () => filterTestModules(this.modules, null, 'no-match'), + /No tests matched with the filter:/ + ); + }); + + test('should return a list of tests matches with a list of string options', function(assert) { + assert.deepEqual( + [ + 'dummy/tests/integration/foo-test', + 'dummy/tests/unit/foo-test' + ], filterTestModules(this.modules, null, '/tests/integration/*, dummy/tests/unit/foo-test') + ); + }); + + test('should return a list of unique tests matches when options are repeated', function(assert) { + assert.deepEqual( + [ + 'dummy/tests/unit/bar-test', + 'dummy/tests/unit/foo-test' + ], filterTestModules(this.modules, null, 'app/tests/unit/bar-test.js, /tests/unit/*') + ); + }); }); }); -}); +} \ No newline at end of file diff --git a/tests/unit/qunit/multiple-edge-cases-test.js b/tests/unit/qunit/multiple-edge-cases-test.js index 2af16a74..cdbeab9b 100644 --- a/tests/unit/qunit/multiple-edge-cases-test.js +++ b/tests/unit/qunit/multiple-edge-cases-test.js @@ -1,7 +1,11 @@ -import { module, test } from 'qunit'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; -module('Qunit | #3: Module With Multiple Edge Case Tests'); +if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { + let { module, test } = importSync('qunit'); -test('#1 RegExp test', function(assert) { - assert.ok(/derp/.test('derp')); -}); + module('Qunit | #3: Module With Multiple Edge Case Tests'); + + test('#1 RegExp test', function(assert) { + assert.ok(/derp/.test('derp')); + }); +} \ No newline at end of file diff --git a/tests/unit/qunit/multiple-ember-tests-test.js b/tests/unit/qunit/multiple-ember-tests-test.js index 83a3d224..379ae53d 100644 --- a/tests/unit/qunit/multiple-ember-tests-test.js +++ b/tests/unit/qunit/multiple-ember-tests-test.js @@ -1,34 +1,38 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; -module('Qunit | #1: Module-For With Multiple Tests', function(hooks) { - setupTest(hooks); +if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { + let { module, test } = importSync('qunit'); + let { setupTest } = importSync('ember-qunit'); - test('#1', function(assert) { - assert.ok(true); - }); - test('#2', function(assert) { - assert.ok(true); - }); - test('#3', function(assert) { - assert.ok(true); - }); - test('#4', function(assert) { - assert.ok(true); - }); - test('#5', function(assert) { - assert.ok(true); - }); - test('#6', function(assert) { - assert.ok(true); - }); - test('#7', function(assert) { - assert.ok(true); - }); - test('#8', function(assert) { - assert.ok(true); - }); - test('#9', function(assert) { - assert.ok(true); - }); -}); \ No newline at end of file + module('Qunit | #1: Module-For With Multiple Tests', function(hooks) { + setupTest(hooks); + + test('#1', function(assert) { + assert.ok(true); + }); + test('#2', function(assert) { + assert.ok(true); + }); + test('#3', function(assert) { + assert.ok(true); + }); + test('#4', function(assert) { + assert.ok(true); + }); + test('#5', function(assert) { + assert.ok(true); + }); + test('#6', function(assert) { + assert.ok(true); + }); + test('#7', function(assert) { + assert.ok(true); + }); + test('#8', function(assert) { + assert.ok(true); + }); + test('#9', function(assert) { + assert.ok(true); + }); + }); +} \ No newline at end of file diff --git a/tests/unit/qunit/multiple-tests-test.js b/tests/unit/qunit/multiple-tests-test.js index 4ad7135e..dd589ca3 100644 --- a/tests/unit/qunit/multiple-tests-test.js +++ b/tests/unit/qunit/multiple-tests-test.js @@ -1,31 +1,35 @@ -import { module, test } from 'qunit'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; -module('Qunit | #2: Module With Multiple Tests'); +if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { + let { module, test } = importSync('qunit'); -test('#1', function(assert) { - assert.ok(true); -}); -test('#2', function(assert) { - assert.ok(true); -}); -test('#3', function(assert) { - assert.ok(true); -}); -test('#4', function(assert) { - assert.ok(true); -}); -test('#5', function(assert) { - assert.ok(true); -}); -test('#6', function(assert) { - assert.ok(true); -}); -test('#7', function(assert) { - assert.ok(true); -}); -test('#8', function(assert) { - assert.ok(true); -}); -test('#9', function(assert) { - assert.ok(true); -}); + module('Qunit | #2: Module With Multiple Tests'); + + test('#1', function(assert) { + assert.ok(true); + }); + test('#2', function(assert) { + assert.ok(true); + }); + test('#3', function(assert) { + assert.ok(true); + }); + test('#4', function(assert) { + assert.ok(true); + }); + test('#5', function(assert) { + assert.ok(true); + }); + test('#6', function(assert) { + assert.ok(true); + }); + test('#7', function(assert) { + assert.ok(true); + }); + test('#8', function(assert) { + assert.ok(true); + }); + test('#9', function(assert) { + assert.ok(true); + }); +} diff --git a/tests/unit/qunit/test-loader-test.js b/tests/unit/qunit/test-loader-test.js index 01416f3f..78cd115a 100644 --- a/tests/unit/qunit/test-loader-test.js +++ b/tests/unit/qunit/test-loader-test.js @@ -1,279 +1,283 @@ import EmberExamTestLoader from 'ember-exam/test-support/-private/ember-exam-qunit-test-loader'; -import QUnit, { module, test } from 'qunit'; - -module('Unit | Qunit | test-loader', { - beforeEach() { - this.originalRequire = window.require; - this.requiredModules = []; - window.require = name => { - this.requiredModules.push(name); - }; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; + +if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { + let QUnit, { module, test } = importSync('qunit'); + + module('Unit | Qunit | test-loader', { + beforeEach() { + this.originalRequire = window.require; + this.requiredModules = []; + window.require = name => { + this.requiredModules.push(name); + }; + + window.requirejs.entries = { + 'test-1-test': true, + 'test-1-test.jshint': true, + 'test-2-test': true, + 'test-2-test.jshint': true, + 'test-3-test': true, + 'test-3-test.jshint': true, + 'test-4-test': true, + 'test-4-test.jshint': true + }; + this.testem = { + eventQueue: new Array(), + emit: function(event) { + this.eventQueue.push(event); + }, + on: () => {} + }; + this.qunit = { + config: { + queue: [] + }, + begin: () => {}, + moduleDone: () => {}, + testDone: () => {} + }; + }, + + afterEach() { + window.require = this.originalRequire; + } + }); + + test('loads all test modules by default', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map(), + this.qunit + ); + testLoader.loadModules(); + + assert.deepEqual(this.requiredModules, [ + 'test-1-test.jshint', + 'test-2-test.jshint', + 'test-3-test.jshint', + 'test-4-test.jshint', + 'test-1-test', + 'test-2-test', + 'test-3-test', + 'test-4-test' + ]); + }); + + test('loads all test modules when testem object is not available', function(assert) { + const undefinedTestem = undefined; + const testLoader = new EmberExamTestLoader( + undefinedTestem, + new Map(), + this.qunit + ); + testLoader.loadModules(); + + assert.deepEqual(this.requiredModules, [ + 'test-1-test.jshint', + 'test-2-test.jshint', + 'test-3-test.jshint', + 'test-4-test.jshint', + 'test-1-test', + 'test-2-test', + 'test-3-test', + 'test-4-test' + ]); + }); + + test('loads modules from a specified partition', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', 3).set('split', 4), + this.qunit + ); + testLoader.loadModules(); + + assert.deepEqual(this.requiredModules, ['test-3-test.jshint', 'test-3-test']); + }); + + test('loads modules from multiple specified partitions', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', [1, 3]).set('split', 4), + this.qunit + ); + testLoader.loadModules(); + + assert.deepEqual(this.requiredModules, [ + 'test-1-test.jshint', + 'test-1-test', + 'test-3-test.jshint', + 'test-3-test' + ]); + }); + + test('loads modules from the first partition by default', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 4), + this.qunit + ); + testLoader.loadModules(); + + assert.deepEqual(this.requiredModules, ['test-1-test.jshint', 'test-1-test']); + }); + + test('handles params as strings', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', 3).set('split', 4), + this.qunit + ); + testLoader.loadModules(); + + assert.deepEqual(this.requiredModules, ['test-3-test.jshint', 'test-3-test']); + }); + + test('throws an error if splitting less than one', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 0), + this.qunit + ); + + assert.throws(() => { + testLoader.loadModules(); + }, /You must specify a split greater than 0/); + }); + + test('throws an error if partition isn\'t a number', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', 'foo'), + this.qunit + ); + + assert.throws(() => { + testLoader.loadModules(); + }, /You must specify numbers for partition \(you specified 'foo'\)/); + }); + + test('throws an error if partition isn\'t a number with multiple partitions', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', [1, 'foo']), + this.qunit + ); + + assert.throws(() => { + testLoader.loadModules(); + }, /You must specify numbers for partition \(you specified '1,foo'\)/); + }); + + test('throws an error if loading partition greater than split number', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', 3), + this.qunit + ); + + assert.throws(() => { + testLoader.loadModules(); + }, /You must specify partitions numbered less than or equal to your split value/); + }); + + test('throws an error if loading partition greater than split number with multiple partitions', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', [2, 3]), + this.qunit + ); + + assert.throws(() => { + testLoader.loadModules(); + }, /You must specify partitions numbered less than or equal to your split value/); + }); + + test('throws an error if loading partition less than one', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('split', 2).set('partition', 0), + this.qunit + ); + + assert.throws(() => { + testLoader.loadModules(); + }, /You must specify partitions numbered greater than 0/); + }); + + test('load works without lint tests', function(assert) { + QUnit.urlParams.nolint = true; + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', 4).set('split', 4), + this.qunit + ); + + testLoader.loadModules(); + + assert.deepEqual(this.requiredModules, ['test-4-test']); + QUnit.urlParams.nolint = false; + }); + + test('load works without non-lint tests', function(assert) { window.requirejs.entries = { - 'test-1-test': true, 'test-1-test.jshint': true, - 'test-2-test': true, 'test-2-test.jshint': true, - 'test-3-test': true, 'test-3-test.jshint': true, - 'test-4-test': true, 'test-4-test.jshint': true }; - this.testem = { - eventQueue: new Array(), - emit: function(event) { - this.eventQueue.push(event); - }, - on: () => {} - }; - this.qunit = { - config: { - queue: [] - }, - begin: () => {}, - moduleDone: () => {}, - testDone: () => {} - }; - }, - - afterEach() { - window.require = this.originalRequire; - } -}); - -test('loads all test modules by default', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map(), - this.qunit - ); - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, [ - 'test-1-test.jshint', - 'test-2-test.jshint', - 'test-3-test.jshint', - 'test-4-test.jshint', - 'test-1-test', - 'test-2-test', - 'test-3-test', - 'test-4-test' - ]); -}); - -test('loads all test modules when testem object is not available', function(assert) { - const undefinedTestem = undefined; - const testLoader = new EmberExamTestLoader( - undefinedTestem, - new Map(), - this.qunit - ); - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, [ - 'test-1-test.jshint', - 'test-2-test.jshint', - 'test-3-test.jshint', - 'test-4-test.jshint', - 'test-1-test', - 'test-2-test', - 'test-3-test', - 'test-4-test' - ]); -}); - -test('loads modules from a specified partition', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', 3).set('split', 4), - this.qunit - ); - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, ['test-3-test.jshint', 'test-3-test']); -}); - -test('loads modules from multiple specified partitions', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', [1, 3]).set('split', 4), - this.qunit - ); - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, [ - 'test-1-test.jshint', - 'test-1-test', - 'test-3-test.jshint', - 'test-3-test' - ]); -}); - -test('loads modules from the first partition by default', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 4), - this.qunit - ); - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, ['test-1-test.jshint', 'test-1-test']); -}); - -test('handles params as strings', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', 3).set('split', 4), - this.qunit - ); - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, ['test-3-test.jshint', 'test-3-test']); -}); - -test('throws an error if splitting less than one', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 0), - this.qunit - ); - - assert.throws(() => { - testLoader.loadModules(); - }, /You must specify a split greater than 0/); -}); -test('throws an error if partition isn\'t a number', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', 'foo'), - this.qunit - ); + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', 4).set('split', 4), + this.qunit + ); - assert.throws(() => { testLoader.loadModules(); - }, /You must specify numbers for partition \(you specified 'foo'\)/); -}); -test('throws an error if partition isn\'t a number with multiple partitions', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', [1, 'foo']), - this.qunit - ); + assert.deepEqual(this.requiredModules, ['test-4-test.jshint']); + }); - assert.throws(() => { - testLoader.loadModules(); - }, /You must specify numbers for partition \(you specified '1,foo'\)/); -}); + test('load works with a double-digit single partition', function(assert) { + window.requirejs.entries = { + 'test-1-test': true, + 'test-2-test': true, + 'test-3-test': true, + 'test-4-test': true, + 'test-5-test': true, + 'test-6-test': true, + 'test-7-test': true, + 'test-8-test': true, + 'test-9-test': true, + 'test-10-test': true + }; -test('throws an error if loading partition greater than split number', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', 3), - this.qunit - ); + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('partition', '10').set('split', 10), + this.qunit + ); - assert.throws(() => { testLoader.loadModules(); - }, /You must specify partitions numbered less than or equal to your split value/); -}); - -test('throws an error if loading partition greater than split number with multiple partitions', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', [2, 3]), - this.qunit - ); - assert.throws(() => { - testLoader.loadModules(); - }, /You must specify partitions numbered less than or equal to your split value/); -}); + assert.deepEqual(this.requiredModules, ['test-10-test']); + }); -test('throws an error if loading partition less than one', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('split', 2).set('partition', 0), - this.qunit - ); + test('emit then `set-modules-queue` event when load balance option is true', function(assert) { + const testLoader = new EmberExamTestLoader( + this.testem, + new Map().set('loadBalance', true), + this.qunit + ); - assert.throws(() => { testLoader.loadModules(); - }, /You must specify partitions numbered greater than 0/); -}); - -test('load works without lint tests', function(assert) { - QUnit.urlParams.nolint = true; - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', 4).set('split', 4), - this.qunit - ); - - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, ['test-4-test']); - - QUnit.urlParams.nolint = false; -}); - -test('load works without non-lint tests', function(assert) { - window.requirejs.entries = { - 'test-1-test.jshint': true, - 'test-2-test.jshint': true, - 'test-3-test.jshint': true, - 'test-4-test.jshint': true - }; - - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', 4).set('split', 4), - this.qunit - ); - - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, ['test-4-test.jshint']); -}); - -test('load works with a double-digit single partition', function(assert) { - window.requirejs.entries = { - 'test-1-test': true, - 'test-2-test': true, - 'test-3-test': true, - 'test-4-test': true, - 'test-5-test': true, - 'test-6-test': true, - 'test-7-test': true, - 'test-8-test': true, - 'test-9-test': true, - 'test-10-test': true - }; - - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('partition', '10').set('split', 10), - this.qunit - ); - - testLoader.loadModules(); - - assert.deepEqual(this.requiredModules, ['test-10-test']); -}); - -test('emit then `set-modules-queue` event when load balance option is true', function(assert) { - const testLoader = new EmberExamTestLoader( - this.testem, - new Map().set('loadBalance', true), - this.qunit - ); - - testLoader.loadModules(); - - assert.deepEqual( - this.testem.eventQueue, - ['testem:set-modules-queue'], - 'testem:set-modules-queue event was fired' - ); -}); + + assert.deepEqual( + this.testem.eventQueue, + ['testem:set-modules-queue'], + 'testem:set-modules-queue event was fired' + ); + }); +} \ No newline at end of file diff --git a/tests/unit/qunit/testem-output-test.js b/tests/unit/qunit/testem-output-test.js index a6c24514..46f1ed4d 100644 --- a/tests/unit/qunit/testem-output-test.js +++ b/tests/unit/qunit/testem-output-test.js @@ -1,48 +1,52 @@ -import { module, test } from 'qunit'; import * as TestemOutput from 'ember-exam/test-support/-private/patch-testem-output'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; -module('Unit | Qunit | patch-testem-output', () => { - test('add partition number to test name when `split` is passed', function(assert) { - assert.deepEqual( - 'Exam Partition 1 - test_module | test_name', - TestemOutput.updateTestName( - new Map().set('split', 2), - 'test_module | test_name' - ) - ); - }); +if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { + let { module, test } = importSync('qunit'); - test('add partition number to test name when `split` and `partition` are passed', function(assert) { - assert.deepEqual( - 'Exam Partition 2 - test_module | test_name', - TestemOutput.updateTestName( - new Map().set('split', 2).set('partition', 2), - 'test_module | test_name' - ) - ); - }); + module('Unit | Qunit | patch-testem-output', () => { + test('add partition number to test name when `split` is passed', function(assert) { + assert.deepEqual( + 'Exam Partition 1 - test_module | test_name', + TestemOutput.updateTestName( + new Map().set('split', 2), + 'test_module | test_name' + ) + ); + }); - test('add browser number to test name when `loadBalance` and `browser` are passed', function(assert) { - assert.deepEqual( - 'Browser Id 1 - test_module | test_name', - TestemOutput.updateTestName( - new Map().set('loadBalance', 2).set('browser', 1), - 'test_module | test_name' - ) - ); - }); + test('add partition number to test name when `split` and `partition` are passed', function(assert) { + assert.deepEqual( + 'Exam Partition 2 - test_module | test_name', + TestemOutput.updateTestName( + new Map().set('split', 2).set('partition', 2), + 'test_module | test_name' + ) + ); + }); + + test('add browser number to test name when `loadBalance` and `browser` are passed', function(assert) { + assert.deepEqual( + 'Browser Id 1 - test_module | test_name', + TestemOutput.updateTestName( + new Map().set('loadBalance', 2).set('browser', 1), + 'test_module | test_name' + ) + ); + }); - test('add partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function(assert) { - assert.deepEqual( - 'Exam Partition 2 - Browser Id 1 - test_module | test_name', - TestemOutput.updateTestName( - new Map() - .set('split', 2) - .set('partition', 2) - .set('browser', 1) - .set('loadBalance', 2), - 'test_module | test_name' - ) - ); + test('add partition number, browser number to test name when `split`, `partition`, `browser`, and `loadBalance` are passed', function(assert) { + assert.deepEqual( + 'Exam Partition 2 - Browser Id 1 - test_module | test_name', + TestemOutput.updateTestName( + new Map() + .set('split', 2) + .set('partition', 2) + .set('browser', 1) + .set('loadBalance', 2), + 'test_module | test_name' + ) + ); + }); }); -}); +} \ No newline at end of file diff --git a/tests/unit/qunit/weight-test-modules-test.js b/tests/unit/qunit/weight-test-modules-test.js index 8f5e3c70..95c119e8 100644 --- a/tests/unit/qunit/weight-test-modules-test.js +++ b/tests/unit/qunit/weight-test-modules-test.js @@ -1,56 +1,60 @@ -import { module, test } from 'qunit'; import weightTestModules from 'ember-exam/test-support/-private/weight-test-modules'; +import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; -module('Unit | Qunit | weight-test-modules', () => { - test('should sort a list of file paths by weight', function(assert) { - const listOfModules = [ - '/eslint/test-1-test', - '/acceptance/test-1-test', - '/unit/test-1-test', - '/integration/test-1-test', - 'test-1-test' - ]; +if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { + let { module, test } = importSync('qunit'); - assert.deepEqual( - [ + module('Unit | Qunit | weight-test-modules', () => { + test('should sort a list of file paths by weight', function(assert) { + const listOfModules = [ + '/eslint/test-1-test', '/acceptance/test-1-test', - 'test-1-test', - '/integration/test-1-test', '/unit/test-1-test', - '/eslint/test-1-test' - ], - weightTestModules(listOfModules) - ); - }); + '/integration/test-1-test', + 'test-1-test' + ]; - test('should sort a list of file paths by weight and alphbetical order', function(assert) { - const listOfModules = [ - 'test-b-test', - 'test-a-test', - '/eslint/test-b-test', - '/integration/test-b-test', - '/integration/test-a-test', - '/unit/test-b-test', - '/acceptance/test-b-test', - '/acceptance/test-a-test', - '/unit/test-a-test', - '/eslint/test-a-test' - ]; + assert.deepEqual( + [ + '/acceptance/test-1-test', + 'test-1-test', + '/integration/test-1-test', + '/unit/test-1-test', + '/eslint/test-1-test' + ], + weightTestModules(listOfModules) + ); + }); - assert.deepEqual( - [ - '/acceptance/test-a-test', - '/acceptance/test-b-test', - 'test-a-test', + test('should sort a list of file paths by weight and alphbetical order', function(assert) { + const listOfModules = [ 'test-b-test', - '/integration/test-a-test', + 'test-a-test', + '/eslint/test-b-test', '/integration/test-b-test', - '/unit/test-a-test', + '/integration/test-a-test', '/unit/test-b-test', - '/eslint/test-a-test', - '/eslint/test-b-test' - ], - weightTestModules(listOfModules) - ); + '/acceptance/test-b-test', + '/acceptance/test-a-test', + '/unit/test-a-test', + '/eslint/test-a-test' + ]; + + assert.deepEqual( + [ + '/acceptance/test-a-test', + '/acceptance/test-b-test', + 'test-a-test', + 'test-b-test', + '/integration/test-a-test', + '/integration/test-b-test', + '/unit/test-a-test', + '/unit/test-b-test', + '/eslint/test-a-test', + '/eslint/test-b-test' + ], + weightTestModules(listOfModules) + ); + }); }); -}); +} \ No newline at end of file From aa0bae75ebfd7f2701e88d0a8530125b21a0f9aa Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 13:29:07 -0800 Subject: [PATCH 08/16] fixing wrapping issue --- tests/unit/qunit/test-loader-test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/unit/qunit/test-loader-test.js b/tests/unit/qunit/test-loader-test.js index 78cd115a..9c0306fc 100644 --- a/tests/unit/qunit/test-loader-test.js +++ b/tests/unit/qunit/test-loader-test.js @@ -2,7 +2,8 @@ import EmberExamTestLoader from 'ember-exam/test-support/-private/ember-exam-qun import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { - let QUnit, { module, test } = importSync('qunit'); + let QUnit = importSync('qunit'); + let { module, test } = QUnit; module('Unit | Qunit | test-loader', { beforeEach() { From adf907e31bba7c67218e6ad46ab7f125a5483f6e Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 14:25:38 -0800 Subject: [PATCH 09/16] fixing qunit vs mocha dep ordering resolution --- .../-private/get-test-loader.js | 8 +- addon-test-support/start.js | 6 +- package.json | 2 + tests/test-helper.js | 2 +- yarn.lock | 316 +++++++++++++++++- 5 files changed, 320 insertions(+), 14 deletions(-) diff --git a/addon-test-support/-private/get-test-loader.js b/addon-test-support/-private/get-test-loader.js index 0814d8b8..35c32774 100644 --- a/addon-test-support/-private/get-test-loader.js +++ b/addon-test-support/-private/get-test-loader.js @@ -8,12 +8,12 @@ import { dependencySatisfies, macroCondition, importSync } from '@embroider/macr * @return {Object} */ export default function getTestLoader() { - if (macroCondition(dependencySatisfies('ember-qunit', '*'))){ - const EmberExamQUnitTestLoader = importSync('./ember-exam-qunit-test-loader'); - return EmberExamQUnitTestLoader['default']; - } else if (macroCondition(dependencySatisfies('ember-mocha', '*'))){ + if (macroCondition(dependencySatisfies('ember-mocha', '*'))){ const EmberExamMochaTestLoader = importSync('./ember-exam-mocha-test-loader'); return EmberExamMochaTestLoader['default']; + } else if (macroCondition(dependencySatisfies('ember-qunit', '*'))){ + const EmberExamQUnitTestLoader = importSync('./ember-exam-qunit-test-loader'); + return EmberExamQUnitTestLoader['default']; } throw new Error( diff --git a/addon-test-support/start.js b/addon-test-support/start.js index 7e432b6e..c0011e53 100644 --- a/addon-test-support/start.js +++ b/addon-test-support/start.js @@ -32,10 +32,10 @@ export default function start(qunitOptions) { loadTests(testLoader); let emberTestFramework; - if (macroCondition(dependencySatisfies('ember-qunit', '*'))){ - emberTestFramework = importSync('ember-qunit'); - } else if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { emberTestFramework = importSync('ember-mocha'); + } else if (macroCondition(dependencySatisfies('ember-qunit', '*'))){ + emberTestFramework = importSync('ember-qunit'); } if (emberTestFramework.start) { diff --git a/package.json b/package.json index 133e00c2..12061895 100644 --- a/package.json +++ b/package.json @@ -58,10 +58,12 @@ "@ember/test-helpers": "^2.2.0", "@embroider/test-setup": "^0.36.0", "babel-eslint": "^10.1.0", + "chai-dom": "^1.8.2", "codeclimate-test-reporter": "^0.5.0", "ember-cli": "^3.21.2", "ember-cli-addon-docs": "^0.10.0", "ember-cli-addon-docs-yuidoc": "^0.2.4", + "ember-cli-chai": "^0.5.0", "ember-cli-dependency-checker": "^3.0.0", "ember-cli-deploy": "^1.0.2", "ember-cli-deploy-build": "^2.0.0", diff --git a/tests/test-helper.js b/tests/test-helper.js index cb52d0cc..50b81e4b 100644 --- a/tests/test-helper.js +++ b/tests/test-helper.js @@ -5,7 +5,7 @@ import resolver from './helpers/resolver'; import start from 'ember-exam/test-support/start'; import { macroCondition, dependencySatisfies } from '@embroider/macros'; -const oppositeFramework = macroCondition(dependencySatisfies('ember-qunit', '*')) ? 'mocha': 'qunit'; +const oppositeFramework = macroCondition(dependencySatisfies('ember-mocha', '*')) ? 'qunit': 'mocha'; Object.keys(require.entries).forEach((entry) => { if (entry.indexOf(oppositeFramework) !== -1) { diff --git a/yarn.lock b/yarn.lock index 651c3e66..97f0f662 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2283,6 +2283,11 @@ acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== +acorn@^5.2.1: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + acorn@^6.0.1, acorn@^6.0.2: version "6.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" @@ -2617,6 +2622,11 @@ assert@^1.1.1: object-assign "^4.1.1" util "0.10.3" +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2757,7 +2767,7 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.26.0, babel-core@^6.26.3: +babel-core@6, babel-core@^6.26.0, babel-core@^6.26.3: version "6.26.3" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== @@ -3093,7 +3103,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0: babel-types "^6.26.0" lodash "^4.17.4" -babel-plugin-transform-es2015-classes@^6.23.0: +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.9.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= @@ -3291,7 +3301,7 @@ babel-polyfill@^6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-env@^1.7.0: +babel-preset-env@^1.6.0, babel-preset-env@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== @@ -3842,7 +3852,7 @@ broccoli-funnel@2.0.1: symlink-or-copy "^1.0.0" walk-sync "^0.3.1" -broccoli-funnel@^1.0.1: +broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.9: version "1.2.0" resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296" integrity sha1-zdw6/F/xaFqAI0iP/3TOb7WlEpY= @@ -4126,6 +4136,23 @@ broccoli-postcss@^5.1.0: object-assign "^4.1.1" postcss "^7.0.5" +broccoli-rollup@^1.0.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-1.3.0.tgz#43a0a7798555bab54217009eb470a4ff5a056df0" + integrity sha1-Q6CneYVVurVCFwCetHCk/1oFbfA= + dependencies: + broccoli-plugin "^1.2.1" + es6-map "^0.1.4" + fs-extra "^0.30.0" + fs-tree-diff "^0.5.2" + heimdalljs "^0.2.1" + heimdalljs-logger "^0.1.7" + md5-hex "^1.3.0" + node-modules-path "^1.0.1" + rollup "^0.41.4" + symlink-or-copy "^1.1.8" + walk-sync "^0.3.1" + broccoli-rollup@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-2.1.1.tgz#0b77dc4b7560a53e998ea85f3b56772612d4988d" @@ -4391,6 +4418,11 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +builtin-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" + integrity sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg== + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -4605,6 +4637,23 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +chai-dom@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/chai-dom/-/chai-dom-1.8.2.tgz#e06353baeafa8fddaaabda96a67f859c111a3c7c" + integrity sha512-kk2SnCuJliouO5M58OjA7M8VXN338WAxHOm+LbpjeL09pJgRpXugSC5aj8uwFm/6Lmpcdtq7hf+DldTdBm5/Sw== + +chai@^4.1.2: + version "4.3.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.0.tgz#5523a5faf7f819c8a92480d70a8cccbadacfc25f" + integrity sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + chalk@4.1.0, "chalk@^3.0.0 || ^4.0.0", chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -4658,6 +4707,11 @@ charm@^1.0.0: dependencies: inherits "^2.0.1" +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + cheerio@^0.22.0: version "0.22.0" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" @@ -5492,6 +5546,14 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + dag-map@^2.0.1, dag-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/dag-map/-/dag-map-2.0.2.tgz#9714b472de82a1843de2fba9b6876938cab44c68" @@ -5593,6 +5655,13 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -6214,6 +6283,22 @@ ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.1.3, ember-cl rimraf "^3.0.1" semver "^5.5.0" +ember-cli-chai@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/ember-cli-chai/-/ember-cli-chai-0.5.0.tgz#8d9508c837bbcc9793aad8468e548d8a84f7bbd3" + integrity sha1-jZUIyDe7zJeTqthGjlSNioT3u9M= + dependencies: + babel-preset-env "^1.6.0" + broccoli-funnel "^1.0.9" + broccoli-merge-trees "^2.0.0" + broccoli-rollup "^1.0.3" + chai "^4.1.2" + ember-cli-version-checker "^2.0.0" + resolve "^1.1.7" + rollup-plugin-babel "^2.7.1" + rollup-plugin-commonjs "^8.0.2" + rollup-plugin-node-resolve "^3.0.0" + ember-cli-clipboard@^0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/ember-cli-clipboard/-/ember-cli-clipboard-0.15.0.tgz#3704baaeab1f0a2df13b3d77632dea7266aabe54" @@ -7233,11 +7318,41 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + es6-promise@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-1.0.0.tgz#f90d3629faa7c26166ae4df77c89bacdeb8dca7f" @@ -7255,6 +7370,33 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + escalade@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.1.tgz#52568a77443f6927cd0ab9c73129137533c965ed" @@ -7522,6 +7664,16 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +estree-walker@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" + integrity sha1-va/oCVOD2EFNXcLs9MkXO225QS4= + +estree-walker@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" + integrity sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -7537,6 +7689,14 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + eventemitter3@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" @@ -7688,6 +7848,13 @@ express@^4.10.7, express@^4.13.1, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -8163,6 +8330,17 @@ fs-extra@^0.24.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + fs-extra@^4.0.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" @@ -8346,6 +8524,11 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -8703,6 +8886,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +graceful-fs@^4.1.9: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -9418,6 +9606,13 @@ is-ci@2.0.0, is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -9543,6 +9738,11 @@ is-map@^2.0.1: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1" integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw== +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + is-npm@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" @@ -10196,6 +10396,13 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + optionalDependencies: + graceful-fs "^4.1.9" + latest-version@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -10697,6 +10904,13 @@ macos-release@^2.2.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== +magic-string@^0.22.4: + version "0.22.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" + integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== + dependencies: + vlq "^0.2.2" + magic-string@^0.24.0: version "0.24.1" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.24.1.tgz#7e38e5f126cae9f15e71f0cf8e450818ca7d5a8f" @@ -10828,6 +11042,18 @@ matcher-collection@^2.0.0, matcher-collection@^2.0.1: "@types/minimatch" "^3.0.3" minimatch "^3.0.2" +md5-hex@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + integrity sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ= + 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= + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -11302,6 +11528,11 @@ neo-async@^2.6.1: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -12152,6 +12383,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathval@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -13182,6 +13418,14 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12 dependencies: path-parse "^1.0.6" +resolve@^1.1.7: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + responselike@1.0.2, responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -13261,6 +13505,44 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rollup-plugin-babel@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz#16528197b0f938a1536f44683c7a93d573182f57" + integrity sha1-FlKBl7D5OKFTb0RoPHqT1XMYL1c= + dependencies: + babel-core "6" + babel-plugin-transform-es2015-classes "^6.9.0" + object-assign "^4.1.0" + rollup-pluginutils "^1.5.0" + +rollup-plugin-commonjs@^8.0.2: + version "8.4.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.4.1.tgz#5c9cea2b2c3de322f5fbccd147e07ed5e502d7a0" + integrity sha512-mg+WuD+jlwoo8bJtW3Mvx7Tz6TsIdMsdhuvCnDMoyjh0oxsVgsjB/N0X984RJCWwc5IIiqNVJhXeeITcc73++A== + dependencies: + acorn "^5.2.1" + estree-walker "^0.5.0" + magic-string "^0.22.4" + resolve "^1.4.0" + rollup-pluginutils "^2.0.1" + +rollup-plugin-node-resolve@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz#908585eda12e393caac7498715a01e08606abc89" + integrity sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg== + dependencies: + builtin-modules "^2.0.0" + is-module "^1.0.0" + resolve "^1.1.6" + +rollup-pluginutils@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" + integrity sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg= + dependencies: + estree-walker "^0.2.1" + minimatch "^3.0.2" + rollup-pluginutils@^2.0.1: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" @@ -13268,6 +13550,13 @@ rollup-pluginutils@^2.0.1: dependencies: estree-walker "^0.6.1" +rollup@^0.41.4: + version "0.41.6" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a" + integrity sha1-4NBUl4d6OYwQTYFtJzOnGKepTio= + dependencies: + source-map-support "^0.4.0" + rollup@^0.57.1: version "0.57.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.57.1.tgz#0bb28be6151d253f67cf4a00fea48fb823c74027" @@ -13787,7 +14076,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15: +source-map-support@^0.4.0, source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== @@ -14773,7 +15062,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.8: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -14796,6 +15085,16 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132" + integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -15144,6 +15443,11 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vlq@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== + vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" From 123173eac44eb2be4c881aa0ef0f3218b82da89d Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 15:45:34 -0800 Subject: [PATCH 10/16] Revert "fixing qunit vs mocha dep ordering resolution" This reverts commit adf907e31bba7c67218e6ad46ab7f125a5483f6e. --- .../-private/get-test-loader.js | 8 +- addon-test-support/start.js | 6 +- package.json | 2 - tests/test-helper.js | 2 +- yarn.lock | 316 +----------------- 5 files changed, 14 insertions(+), 320 deletions(-) diff --git a/addon-test-support/-private/get-test-loader.js b/addon-test-support/-private/get-test-loader.js index 35c32774..0814d8b8 100644 --- a/addon-test-support/-private/get-test-loader.js +++ b/addon-test-support/-private/get-test-loader.js @@ -8,12 +8,12 @@ import { dependencySatisfies, macroCondition, importSync } from '@embroider/macr * @return {Object} */ export default function getTestLoader() { - if (macroCondition(dependencySatisfies('ember-mocha', '*'))){ - const EmberExamMochaTestLoader = importSync('./ember-exam-mocha-test-loader'); - return EmberExamMochaTestLoader['default']; - } else if (macroCondition(dependencySatisfies('ember-qunit', '*'))){ + if (macroCondition(dependencySatisfies('ember-qunit', '*'))){ const EmberExamQUnitTestLoader = importSync('./ember-exam-qunit-test-loader'); return EmberExamQUnitTestLoader['default']; + } else if (macroCondition(dependencySatisfies('ember-mocha', '*'))){ + const EmberExamMochaTestLoader = importSync('./ember-exam-mocha-test-loader'); + return EmberExamMochaTestLoader['default']; } throw new Error( diff --git a/addon-test-support/start.js b/addon-test-support/start.js index c0011e53..7e432b6e 100644 --- a/addon-test-support/start.js +++ b/addon-test-support/start.js @@ -32,10 +32,10 @@ export default function start(qunitOptions) { loadTests(testLoader); let emberTestFramework; - if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { - emberTestFramework = importSync('ember-mocha'); - } else if (macroCondition(dependencySatisfies('ember-qunit', '*'))){ + if (macroCondition(dependencySatisfies('ember-qunit', '*'))){ emberTestFramework = importSync('ember-qunit'); + } else if (macroCondition(dependencySatisfies('ember-mocha', '*'))) { + emberTestFramework = importSync('ember-mocha'); } if (emberTestFramework.start) { diff --git a/package.json b/package.json index 12061895..133e00c2 100644 --- a/package.json +++ b/package.json @@ -58,12 +58,10 @@ "@ember/test-helpers": "^2.2.0", "@embroider/test-setup": "^0.36.0", "babel-eslint": "^10.1.0", - "chai-dom": "^1.8.2", "codeclimate-test-reporter": "^0.5.0", "ember-cli": "^3.21.2", "ember-cli-addon-docs": "^0.10.0", "ember-cli-addon-docs-yuidoc": "^0.2.4", - "ember-cli-chai": "^0.5.0", "ember-cli-dependency-checker": "^3.0.0", "ember-cli-deploy": "^1.0.2", "ember-cli-deploy-build": "^2.0.0", diff --git a/tests/test-helper.js b/tests/test-helper.js index 50b81e4b..cb52d0cc 100644 --- a/tests/test-helper.js +++ b/tests/test-helper.js @@ -5,7 +5,7 @@ import resolver from './helpers/resolver'; import start from 'ember-exam/test-support/start'; import { macroCondition, dependencySatisfies } from '@embroider/macros'; -const oppositeFramework = macroCondition(dependencySatisfies('ember-mocha', '*')) ? 'qunit': 'mocha'; +const oppositeFramework = macroCondition(dependencySatisfies('ember-qunit', '*')) ? 'mocha': 'qunit'; Object.keys(require.entries).forEach((entry) => { if (entry.indexOf(oppositeFramework) !== -1) { diff --git a/yarn.lock b/yarn.lock index 97f0f662..651c3e66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2283,11 +2283,6 @@ acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^5.2.1: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - acorn@^6.0.1, acorn@^6.0.2: version "6.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" @@ -2622,11 +2617,6 @@ assert@^1.1.1: object-assign "^4.1.1" util "0.10.3" -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2767,7 +2757,7 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@6, babel-core@^6.26.0, babel-core@^6.26.3: +babel-core@^6.26.0, babel-core@^6.26.3: version "6.26.3" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== @@ -3103,7 +3093,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0: babel-types "^6.26.0" lodash "^4.17.4" -babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.9.0: +babel-plugin-transform-es2015-classes@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= @@ -3301,7 +3291,7 @@ babel-polyfill@^6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-env@^1.6.0, babel-preset-env@^1.7.0: +babel-preset-env@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== @@ -3852,7 +3842,7 @@ broccoli-funnel@2.0.1: symlink-or-copy "^1.0.0" walk-sync "^0.3.1" -broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.9: +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= @@ -4136,23 +4126,6 @@ broccoli-postcss@^5.1.0: object-assign "^4.1.1" postcss "^7.0.5" -broccoli-rollup@^1.0.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-1.3.0.tgz#43a0a7798555bab54217009eb470a4ff5a056df0" - integrity sha1-Q6CneYVVurVCFwCetHCk/1oFbfA= - dependencies: - broccoli-plugin "^1.2.1" - es6-map "^0.1.4" - fs-extra "^0.30.0" - fs-tree-diff "^0.5.2" - heimdalljs "^0.2.1" - heimdalljs-logger "^0.1.7" - md5-hex "^1.3.0" - node-modules-path "^1.0.1" - rollup "^0.41.4" - symlink-or-copy "^1.1.8" - walk-sync "^0.3.1" - broccoli-rollup@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-2.1.1.tgz#0b77dc4b7560a53e998ea85f3b56772612d4988d" @@ -4418,11 +4391,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" - integrity sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg== - builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -4637,23 +4605,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chai-dom@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/chai-dom/-/chai-dom-1.8.2.tgz#e06353baeafa8fddaaabda96a67f859c111a3c7c" - integrity sha512-kk2SnCuJliouO5M58OjA7M8VXN338WAxHOm+LbpjeL09pJgRpXugSC5aj8uwFm/6Lmpcdtq7hf+DldTdBm5/Sw== - -chai@^4.1.2: - version "4.3.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.0.tgz#5523a5faf7f819c8a92480d70a8cccbadacfc25f" - integrity sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.0" - type-detect "^4.0.5" - chalk@4.1.0, "chalk@^3.0.0 || ^4.0.0", chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -4707,11 +4658,6 @@ charm@^1.0.0: dependencies: inherits "^2.0.1" -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - cheerio@^0.22.0: version "0.22.0" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" @@ -5546,14 +5492,6 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - dag-map@^2.0.1, dag-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/dag-map/-/dag-map-2.0.2.tgz#9714b472de82a1843de2fba9b6876938cab44c68" @@ -5655,13 +5593,6 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -6283,22 +6214,6 @@ ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.1.3, ember-cl rimraf "^3.0.1" semver "^5.5.0" -ember-cli-chai@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/ember-cli-chai/-/ember-cli-chai-0.5.0.tgz#8d9508c837bbcc9793aad8468e548d8a84f7bbd3" - integrity sha1-jZUIyDe7zJeTqthGjlSNioT3u9M= - dependencies: - babel-preset-env "^1.6.0" - broccoli-funnel "^1.0.9" - broccoli-merge-trees "^2.0.0" - broccoli-rollup "^1.0.3" - chai "^4.1.2" - ember-cli-version-checker "^2.0.0" - resolve "^1.1.7" - rollup-plugin-babel "^2.7.1" - rollup-plugin-commonjs "^8.0.2" - rollup-plugin-node-resolve "^3.0.0" - ember-cli-clipboard@^0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/ember-cli-clipboard/-/ember-cli-clipboard-0.15.0.tgz#3704baaeab1f0a2df13b3d77632dea7266aabe54" @@ -7318,41 +7233,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - es6-promise@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-1.0.0.tgz#f90d3629faa7c26166ae4df77c89bacdeb8dca7f" @@ -7370,33 +7255,6 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - escalade@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.1.tgz#52568a77443f6927cd0ab9c73129137533c965ed" @@ -7664,16 +7522,6 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== -estree-walker@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" - integrity sha1-va/oCVOD2EFNXcLs9MkXO225QS4= - -estree-walker@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" - integrity sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig== - estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -7689,14 +7537,6 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - eventemitter3@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" @@ -7848,13 +7688,6 @@ express@^4.10.7, express@^4.13.1, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -8330,17 +8163,6 @@ fs-extra@^0.24.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^4.0.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" @@ -8524,11 +8346,6 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -8886,11 +8703,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== -graceful-fs@^4.1.9: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -9606,13 +9418,6 @@ is-ci@2.0.0, is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -9738,11 +9543,6 @@ is-map@^2.0.1: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1" integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw== -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= - is-npm@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" @@ -10396,13 +10196,6 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= - optionalDependencies: - graceful-fs "^4.1.9" - latest-version@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -10904,13 +10697,6 @@ macos-release@^2.2.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== -magic-string@^0.22.4: - version "0.22.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" - integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== - dependencies: - vlq "^0.2.2" - magic-string@^0.24.0: version "0.24.1" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.24.1.tgz#7e38e5f126cae9f15e71f0cf8e450818ca7d5a8f" @@ -11042,18 +10828,6 @@ matcher-collection@^2.0.0, matcher-collection@^2.0.1: "@types/minimatch" "^3.0.3" minimatch "^3.0.2" -md5-hex@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" - integrity sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ= - 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= - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -11528,11 +11302,6 @@ neo-async@^2.6.1: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -12383,11 +12152,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathval@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -13418,14 +13182,6 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12 dependencies: path-parse "^1.0.6" -resolve@^1.1.7: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - responselike@1.0.2, responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -13505,44 +13261,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-babel@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz#16528197b0f938a1536f44683c7a93d573182f57" - integrity sha1-FlKBl7D5OKFTb0RoPHqT1XMYL1c= - dependencies: - babel-core "6" - babel-plugin-transform-es2015-classes "^6.9.0" - object-assign "^4.1.0" - rollup-pluginutils "^1.5.0" - -rollup-plugin-commonjs@^8.0.2: - version "8.4.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.4.1.tgz#5c9cea2b2c3de322f5fbccd147e07ed5e502d7a0" - integrity sha512-mg+WuD+jlwoo8bJtW3Mvx7Tz6TsIdMsdhuvCnDMoyjh0oxsVgsjB/N0X984RJCWwc5IIiqNVJhXeeITcc73++A== - dependencies: - acorn "^5.2.1" - estree-walker "^0.5.0" - magic-string "^0.22.4" - resolve "^1.4.0" - rollup-pluginutils "^2.0.1" - -rollup-plugin-node-resolve@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz#908585eda12e393caac7498715a01e08606abc89" - integrity sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg== - dependencies: - builtin-modules "^2.0.0" - is-module "^1.0.0" - resolve "^1.1.6" - -rollup-pluginutils@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" - integrity sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg= - dependencies: - estree-walker "^0.2.1" - minimatch "^3.0.2" - rollup-pluginutils@^2.0.1: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" @@ -13550,13 +13268,6 @@ rollup-pluginutils@^2.0.1: dependencies: estree-walker "^0.6.1" -rollup@^0.41.4: - version "0.41.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a" - integrity sha1-4NBUl4d6OYwQTYFtJzOnGKepTio= - dependencies: - source-map-support "^0.4.0" - rollup@^0.57.1: version "0.57.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.57.1.tgz#0bb28be6151d253f67cf4a00fea48fb823c74027" @@ -14076,7 +13787,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.0, source-map-support@^0.4.15: +source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== @@ -15062,7 +14773,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: +type-detect@4.0.8, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -15085,16 +14796,6 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132" - integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== - typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -15443,11 +15144,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vlq@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== - vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" From de30bfbeced0e86c828867523d8828ea7b387d45 Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 15:57:35 -0800 Subject: [PATCH 11/16] fixing ember try cases to remove qunit in mocha branch --- config/ember-try.js | 55 +++++++++++++++++++++------------------------ package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 31 insertions(+), 30 deletions(-) diff --git a/config/ember-try.js b/config/ember-try.js index 920cdd8e..a95aedc0 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -2,6 +2,18 @@ const getChannelURL = require('ember-source-channel-url'); const { embroiderSafe, embroiderOptimized } = require('@embroider/test-setup'); +const mergeWith = require('lodash.mergewith'); + +function mochaScenario(scenario = {}) { + return mergeWith({}, scenario, { + devDependencies: { + 'chai-dom': '*', + 'ember-cli-chai': '*', + 'ember-mocha': '*', + 'ember-qunit': null + } + }); +} const command = [ 'ember', @@ -88,14 +100,9 @@ module.exports = async function() { } } }, - { - name: 'ember-default-with-mocha', - npm: { - devDependencies: { - 'ember-mocha': '*' - } - } - }, + mochaScenario({ + name: 'ember-default-with-mocha' + }), { name: 'ember-classic', env: { @@ -112,29 +119,17 @@ module.exports = async function() { } }, embroiderSafe(), - embroiderSafe({ - name: 'embroider-safe-with-mocha', - env: { - EMBROIDER_TEST_SETUP_OPTIONS: 'safe' - }, - npm: { - devDependencies: { - 'ember-mocha': '*', - }, - }, - }), + embroiderSafe( + mochaScenario({ + name: 'embroider-safe-with-mocha' + }) + ), embroiderOptimized(), - embroiderOptimized({ - name: 'embroider-optimized-with-mocha', - env: { - EMBROIDER_TEST_SETUP_OPTIONS: 'optimized' - }, - npm: { - devDependencies: { - 'ember-mocha': '*', - }, - } - }), + embroiderOptimized( + mochaScenario({ + name: 'embroider-optimized-with-mocha' + }) + ) ] }; }; diff --git a/package.json b/package.json index 133e00c2..582f1883 100644 --- a/package.json +++ b/package.json @@ -86,6 +86,7 @@ "fixturify": "^1.2.0", "istanbul": "^0.4.3", "loader.js": "^4.7.0", + "lodash.mergewith": "^4.6.2", "mocha": "^8.1.0", "mocha-eslint": "^6.0.0", "npm-run-all": "^4.1.5", diff --git a/yarn.lock b/yarn.lock index 651c3e66..c482bea7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10540,6 +10540,11 @@ lodash.merge@^4.4.0, lodash.merge@^4.6.0, lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + lodash.omit@^4.1.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" From 7d7cd6d49100e3caddbe0a8da8557a6f5b543991 Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 16:17:22 -0800 Subject: [PATCH 12/16] adding ember-qunit-4 test case --- config/ember-try.js | 11 ++++++++++- package.json | 6 ++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/config/ember-try.js b/config/ember-try.js index a95aedc0..2bdbf97b 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -129,7 +129,16 @@ module.exports = async function() { mochaScenario({ name: 'embroider-optimized-with-mocha' }) - ) + ), + { + name: 'ember-qunit-4', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('release'), + 'ember-qunit': '^4.6.0' + } + } + }, ] }; }; diff --git a/package.json b/package.json index 582f1883..0edf90da 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,6 @@ "testdouble": "^3.16.1" }, "peerDependencies": { - "@ember/test-helpers": "*", "ember-mocha": "*", "ember-qunit": "*", "qunit": "*" @@ -110,6 +109,9 @@ }, "ember-qunit": { "optional": true + }, + "qunit": { + "optional": true } }, "engines": { @@ -140,4 +142,4 @@ "node": "10.23.0", "yarn": "1.22.10" } -} +} \ No newline at end of file From 44fb5411b8b7c7048504d5c52102986a0f080413 Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 16:19:24 -0800 Subject: [PATCH 13/16] adding ci test case for ember-qunit-4 --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0aa4d636..3b95b8f1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,6 +54,7 @@ jobs: - ember-release - ember-beta - ember-canary + - ember-qunit-4 steps: - uses: actions/checkout@v2 From 2a575228d890c85ea47a39a00043cc6ada55dcc1 Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 16:45:23 -0800 Subject: [PATCH 14/16] fixing ember-qunit-4 test --- config/ember-try.js | 1 - tests/unit/qunit/test-loader-test.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/config/ember-try.js b/config/ember-try.js index 2bdbf97b..a215b443 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -134,7 +134,6 @@ module.exports = async function() { name: 'ember-qunit-4', npm: { devDependencies: { - 'ember-source': await getChannelURL('release'), 'ember-qunit': '^4.6.0' } } diff --git a/tests/unit/qunit/test-loader-test.js b/tests/unit/qunit/test-loader-test.js index 9c0306fc..53ecf9e4 100644 --- a/tests/unit/qunit/test-loader-test.js +++ b/tests/unit/qunit/test-loader-test.js @@ -2,7 +2,7 @@ import EmberExamTestLoader from 'ember-exam/test-support/-private/ember-exam-qun import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { - let QUnit = importSync('qunit'); + let QUnit = importSync('qunit').default; let { module, test } = QUnit; module('Unit | Qunit | test-loader', { From 0afb285a49d0dce4f5303779547cd4c0e2fbfc7b Mon Sep 17 00:00:00 2001 From: Travis Hoover Date: Tue, 16 Feb 2021 16:55:42 -0800 Subject: [PATCH 15/16] handle different imports --- tests/unit/qunit/test-loader-test.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/unit/qunit/test-loader-test.js b/tests/unit/qunit/test-loader-test.js index 53ecf9e4..9dfe853f 100644 --- a/tests/unit/qunit/test-loader-test.js +++ b/tests/unit/qunit/test-loader-test.js @@ -2,7 +2,13 @@ import EmberExamTestLoader from 'ember-exam/test-support/-private/ember-exam-qun import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros'; if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { - let QUnit = importSync('qunit').default; + let QUnit; + if (dependencySatisfies('ember-qunit', '>=5')) { + QUnit = importSync('qunit'); + } else { + QUnit = importSync('qunit').default; + } + let { module, test } = QUnit; module('Unit | Qunit | test-loader', { From 512ad875e4c135d5003b14193dbd9642c5338a6f Mon Sep 17 00:00:00 2001 From: Robert Jackson Date: Tue, 16 Feb 2021 22:05:01 -0500 Subject: [PATCH 16/16] Remove redundant `setupTest` invocation. This resolves the error when using ember-destroyable-polyfill and calling `setupContext` (from `@ember/test-helpers`) multiple times with the same test context. --- tests/unit/qunit/filter-test-modules-test.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/unit/qunit/filter-test-modules-test.js b/tests/unit/qunit/filter-test-modules-test.js index 0de8d902..ea51ec24 100644 --- a/tests/unit/qunit/filter-test-modules-test.js +++ b/tests/unit/qunit/filter-test-modules-test.js @@ -6,9 +6,7 @@ if (macroCondition(dependencySatisfies('ember-qunit', '*'))) { let { module, test } = importSync('qunit'); let { setupTest } = importSync('ember-qunit'); - module('Unit | Qunit | filter-test-modules', function(hooks) { - setupTest(hooks); - + module('Unit | Qunit | filter-test-modules', function() { module('covertFilePathToModulePath', function(hooks) { setupTest(hooks);