diff --git a/packages/compat/package.json b/packages/compat/package.json index 99c7a97bc..1288db083 100644 --- a/packages/compat/package.json +++ b/packages/compat/package.json @@ -49,7 +49,6 @@ "debug": "^4.3.2", "fs-extra": "^9.1.0", "fs-tree-diff": "^2.0.1", - "heimdalljs": "^0.2.6", "jsdom": "^16.6.0", "lodash": "^4.17.21", "pkg-up": "^3.1.0", diff --git a/packages/compat/src/addon-dependency-rules/ember-data.ts b/packages/compat/src/addon-dependency-rules/ember-data.ts index 6c5b01771..b0de7993b 100644 --- a/packages/compat/src/addon-dependency-rules/ember-data.ts +++ b/packages/compat/src/addon-dependency-rules/ember-data.ts @@ -7,6 +7,9 @@ let rules: PackageRules[] = [ '-private.js': { dependsOnModules: ['@ember-data/record-data/-private'], }, + '-private/system/core-store.js': { + dependsOnModules: ['@ember-data/record-data/-private'], + }, }, }, ]; diff --git a/packages/compat/src/build-compat-addon.ts b/packages/compat/src/build-compat-addon.ts index 451bc9b2d..3e33ef354 100644 --- a/packages/compat/src/build-compat-addon.ts +++ b/packages/compat/src/build-compat-addon.ts @@ -3,20 +3,11 @@ import { Package } from '@embroider/core'; import SmooshPackageJSON from './smoosh-package-json'; import broccoliMergeTrees from 'broccoli-merge-trees'; import { Node } from 'broccoli-node-api'; -import OneShot from './one-shot'; import buildFunnel from 'broccoli-funnel'; import { UnwatchedDir, WatchedDir } from 'broccoli-source'; import EmptyPackageTree from './empty-package-tree'; -export default function cachedBuildCompatAddon(originalPackage: Package, v1Cache: V1InstanceCache): Node { - let tree = buildCompatAddon(originalPackage, v1Cache); - if (!originalPackage.mayRebuild) { - tree = new OneShot(tree, originalPackage.name); - } - return tree; -} - -function buildCompatAddon(originalPackage: Package, v1Cache: V1InstanceCache): Node { +export default function buildCompatAddon(originalPackage: Package, v1Cache: V1InstanceCache): Node { if (originalPackage.isV2Addon()) { // this case is needed when a native-v2 addon depends on a // non-native-v2 addon. (The non-native one will get rewritten and diff --git a/packages/compat/src/compat-addons.ts b/packages/compat/src/compat-addons.ts index 499441b58..18a94ed61 100644 --- a/packages/compat/src/compat-addons.ts +++ b/packages/compat/src/compat-addons.ts @@ -11,6 +11,17 @@ import V1App from './v1-app'; import TreeSync from 'tree-sync'; import { WatchedDir } from 'broccoli-source'; +// This build stage expects to be run with broccoli memoization enabled in order +// to get good rebuild performance. We turn it on by default here, but you can +// still explicitly turn it off by setting the env var to "false". +// +// As for safetly mutating process.env: broccoli doesn't read this until a Node +// executes its build hook, so as far as I can tell there's no way we could set +// this too late. +if (typeof process.env.BROCCOLI_ENABLED_MEMOIZE === 'undefined') { + process.env.BROCCOLI_ENABLED_MEMOIZE = 'true'; +} + export default class CompatAddons implements Stage { private didBuild = false; private destDir: string; diff --git a/packages/compat/src/one-shot.ts b/packages/compat/src/one-shot.ts deleted file mode 100644 index 11564c682..000000000 --- a/packages/compat/src/one-shot.ts +++ /dev/null @@ -1,60 +0,0 @@ -import Plugin from 'broccoli-plugin'; -import { Node } from 'broccoli-node-api'; -import { Builder } from 'broccoli'; -import { copySync } from 'fs-extra'; -import heimdall from 'heimdalljs'; - -class NerfHeimdallBuilder extends Builder { - /* - Replace the code used to track heimdall nodes: https://github.com/broccolijs/broccoli/blob/v3.5.2/lib/builder.ts#L463-L503 - - This reduces the amount of memory that these one-shot's create by: - - - Avoiding creating Heimdall nodes for each broccoli plugin - - Disabling the "re-parenting" process done by Broccoli builder (which ends up creating **double** the heimdall nodes) - */ - setupHeimdall() {} - buildHeimdallTree() {} -} - -// Wraps a broccoli tree such that it (and everything it depends on) will only -// build a single time. -export default class OneShot extends Plugin { - constructor(private inner: Node | null, private addonName: string) { - // from broccoli's perspective, we don't depend on any input trees! - super([], { - annotation: `@embroider/compat: ${addonName}`, - persistentOutput: true, - needsCache: false, - }); - } - - async build() { - const { inner } = this; - if (inner === null) return; - this.inner = null; - - await suppressNestedHeimdall(`OneShot(${this.addonName})`, async () => { - const builder = new NerfHeimdallBuilder(inner); - try { - await builder.build(); - copySync(builder.outputPath, this.outputPath, { dereference: true }); - } finally { - await builder.cleanup(); - } - }); - } -} - -async function suppressNestedHeimdall(name: string, using: () => Promise): Promise { - // Make a heimdall node so that we know for sure, all nodes created during our - // inner builder can be remove easily - const token = heimdall.start({ name }); - const node = heimdall.current; - try { - await using(); - } finally { - token.stop(); - node.remove(); - } -} diff --git a/packages/compat/tests/dummy-app.test.ts b/packages/compat/tests/dummy-app.test.ts index 45b907298..576ae4f37 100644 --- a/packages/compat/tests/dummy-app.test.ts +++ b/packages/compat/tests/dummy-app.test.ts @@ -123,6 +123,7 @@ describe('dummy app tests', function () { test('rebuilds addon code', async function () { expectFile('../../components/example.hbs').matches(/hello/); writeFileSync(join(project.baseDir, 'addon/components/example.hbs'), 'goodbye'); + build.didChange(project.baseDir); await build.rebuild(); expectFile('../../components/example.hbs').matches(/goodbye/); }); diff --git a/packages/compat/tests/stage2.test.ts b/packages/compat/tests/stage2.test.ts index 23f2164a9..be8b3406e 100644 --- a/packages/compat/tests/stage2.test.ts +++ b/packages/compat/tests/stage2.test.ts @@ -547,6 +547,7 @@ describe('stage2 build', function () { test(`changes in app.css are propagated at rebuild`, async function () { expectFile('assets/my-app.css').doesNotMatch('newly-added-class'); writeFileSync(join(app.baseDir, 'app/styles/app.css'), `.newly-added-class { color: red }`); + build.didChange(join(app.baseDir, 'app/styles')); await build.rebuild(); expectFile('assets/my-app.css').matches('newly-added-class'); }); @@ -558,12 +559,14 @@ describe('stage2 build', function () { test(`updated public asset`, async function () { writeFileSync(join(app.baseDir, 'public/public-file-1.txt'), `updated state`); + build.didChange(join(app.baseDir, 'app')); await build.rebuild(); expectFile('public-file-1.txt').matches(/updated state/); }); test(`added public asset`, async function () { writeFileSync(join(app.baseDir, 'public/public-file-2.txt'), `added`); + build.didChange(join(app.baseDir, 'app')); await build.rebuild(); expectFile('public-file-2.txt').matches(/added/); expectFile('package.json').json().get('ember-addon.assets').includes('public-file-2.txt'); @@ -571,6 +574,7 @@ describe('stage2 build', function () { test(`removed public asset`, async function () { unlinkSync(join(app.baseDir, 'public/public-file-1.txt')); + build.didChange(join(app.baseDir, 'app')); await build.rebuild(); expectFile('public-file-1.txt').doesNotExist(); expectFile('package.json').json().get('ember-addon.assets').doesNotInclude('public-file-1.txt'); diff --git a/test-packages/support/build.ts b/test-packages/support/build.ts index 890d9c6dc..bfe0367d3 100644 --- a/test-packages/support/build.ts +++ b/test-packages/support/build.ts @@ -89,6 +89,20 @@ export default class BuildResult { } } + // This allows our tests to simulate what a real Watcher would do, without + // managing all the asynchrony of a real Watcher. + // + // This is necessary once you have BROCCOLI_ENABLED_MEMOIZE=true. + async didChange(dir: string) { + let node = this.builder.watchedSourceNodeWrappers.find(nw => nw.nodeInfo.sourceDirectory === dir); + if (!node) { + throw new Error( + `test tried to simulated a watched file change in ${dir}, but we could not find the corresponding watched broccoli node` + ); + } + node.revise(); + } + async rebuild() { let origDir = process.cwd(); try { diff --git a/tests/scenarios/package.json b/tests/scenarios/package.json index 28a77a1de..8b9dc915c 100644 --- a/tests/scenarios/package.json +++ b/tests/scenarios/package.json @@ -30,8 +30,8 @@ "broccoli-persistent-filter": "^3.1.2", "ember-bootstrap": "^4.6.3", "ember-cli-3.16": "npm:ember-cli@~3.16.0", - "ember-cli-3.20": "npm:ember-cli@~3.20.0", "ember-cli-3.24": "npm:ember-cli@~3.24.0", + "ember-cli-3.28": "npm:ember-cli@~3.28.0", "ember-cli-beta": "npm:ember-cli@beta", "ember-cli-htmlbars-inline-precompile": "^2.1.0", "ember-cli-htmlbars-3": "npm:ember-cli-htmlbars@3", @@ -39,16 +39,16 @@ "ember-cli-fastboot": "^2.2.3", "ember-composable-helpers": "^4.4.1", "ember-data-3.16": "npm:ember-data@~3.16.0", - "ember-data-3.20": "npm:ember-data@~3.20.0", "ember-data-3.24": "npm:ember-data@~3.24.0", + "ember-data-3.28": "npm:ember-data@~3.28.0", "ember-data-latest": "npm:ember-data@latest", "ember-engines": "^0.8.17", "ember-inline-svg": "^0.2.1", "ember-source-latest": "npm:ember-source@latest", "ember-source-beta": "npm:ember-source@beta", "ember-source-3.16": "npm:ember-source@~3.16.0", - "ember-source-3.20": "npm:ember-source@~3.20.0", "ember-source-3.24": "npm:ember-source@~3.24.0", + "ember-source-3.28": "npm:ember-source@~3.28.0", "ember-truth-helpers": "^3.0.0" }, "volta": { diff --git a/tests/scenarios/scenarios.ts b/tests/scenarios/scenarios.ts index ce803985e..8b1b474eb 100644 --- a/tests/scenarios/scenarios.ts +++ b/tests/scenarios/scenarios.ts @@ -24,15 +24,6 @@ async function lts_3_16(project: Project) { project.linkDevDependency('@ember/string', { baseDir: __dirname }); } -async function lts_3_20(project: Project) { - project.linkDevDependency('ember-source', { baseDir: __dirname, resolveName: 'ember-source-3.20' }); - project.linkDevDependency('ember-cli', { baseDir: __dirname, resolveName: 'ember-cli-3.20' }); - project.linkDevDependency('ember-data', { baseDir: __dirname, resolveName: 'ember-data-3.20' }); - - // needed because the ember-inflector used by this ember-data version blows up without it - project.linkDevDependency('@ember/string', { baseDir: __dirname }); -} - async function lts_3_24(project: Project) { project.linkDevDependency('ember-source', { baseDir: __dirname, resolveName: 'ember-source-3.24' }); project.linkDevDependency('ember-cli', { baseDir: __dirname, resolveName: 'ember-cli-3.24' }); @@ -42,6 +33,12 @@ async function lts_3_24(project: Project) { project.linkDevDependency('@ember/string', { baseDir: __dirname }); } +async function lts_3_28(project: Project) { + project.linkDevDependency('ember-source', { baseDir: __dirname, resolveName: 'ember-source-3.28' }); + project.linkDevDependency('ember-cli', { baseDir: __dirname, resolveName: 'ember-cli-3.28' }); + project.linkDevDependency('ember-data', { baseDir: __dirname, resolveName: 'ember-data-3.28' }); +} + async function release(project: Project) { project.linkDevDependency('ember-source', { baseDir: __dirname, resolveName: 'ember-source-latest' }); project.linkDevDependency('ember-cli', { baseDir: __dirname, resolveName: 'ember-cli-latest' }); @@ -51,8 +48,8 @@ async function release(project: Project) { export function supportMatrix(scenarios: Scenarios) { return scenarios.expand({ lts_3_16, - lts_3_20, lts_3_24, + lts_3_28, release, }); } diff --git a/types/broccoli/index.d.ts b/types/broccoli/index.d.ts index 1094d10b5..bafe7f2a4 100644 --- a/types/broccoli/index.d.ts +++ b/types/broccoli/index.d.ts @@ -1,8 +1,14 @@ declare module 'broccoli' { + import type { SourceNodeInfo } from 'broccoli-node-api'; + export class Builder { constructor(tree: unknown); build(): Promise; cleanup(): Promise; outputPath: string; + readonly watchedSourceNodeWrappers: { + nodeInfo: SourceNodeInfo; + revise(): void; + }[]; } } diff --git a/types/heimdalljs/index.d.ts b/types/heimdalljs/index.d.ts deleted file mode 100644 index 44fbad03f..000000000 --- a/types/heimdalljs/index.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare module 'heimdalljs' { - export interface HeimdallOptions { - name: string; - } - export interface HeimdallNode { - remove(): void; - } - export interface HeimdallCookie { - stop(): void; - } - const heimdall: { - current: HeimdallNode; - start(HeimdallOptions): HeimdallCookie; - }; - export default heimdall; -} diff --git a/yarn.lock b/yarn.lock index 2502e350b..8aaa0aa73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,7 +21,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea" integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== -"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.10.2", "@babel/core@^7.12.0", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.13.8", "@babel/core@^7.14.5", "@babel/core@^7.3.4", "@babel/core@^7.7.7", "@babel/core@^7.8.7": +"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.12.0", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.13.8", "@babel/core@^7.14.5", "@babel/core@^7.3.4", "@babel/core@^7.7.7", "@babel/core@^7.8.7": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.5.tgz#d281f46a9905f07d1b3bf71ead54d9c7d89cb1e3" integrity sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg== @@ -630,7 +630,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-modules-amd@^7.10.4", "@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.14.5", "@babel/plugin-transform-modules-amd@^7.7.5": +"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.14.5", "@babel/plugin-transform-modules-amd@^7.7.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== @@ -987,18 +987,6 @@ ember-cli-test-info "^1.0.0" ember-cli-typescript "^3.1.3" -"@ember-data/adapter@3.20.5": - version "3.20.5" - resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.20.5.tgz#2348cc0a6a46d5b25f6e356802f05ce0db5c75a0" - integrity sha512-J/tyinlUW+lQCcHomJkPpiu4PHEqDiVzsrQ8AgKPk6UgPTz4h1oTo8bxJvfC8xfCRGGBSZ/sTT8mrOtyIn0GWg== - dependencies: - "@ember-data/private-build-infra" "3.20.5" - "@ember-data/store" "3.20.5" - "@ember/edition-utils" "^1.2.0" - ember-cli-babel "^7.18.0" - ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" - "@ember-data/adapter@3.24.2": version "3.24.2" resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.24.2.tgz#dd0b0f4f3c6e83dcba8c1a65d799a4c737f5eeec" @@ -1038,6 +1026,19 @@ ember-cli-test-info "^1.0.0" ember-cli-typescript "^4.1.0" +"@ember-data/adapter@3.28.7": + version "3.28.7" + resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.28.7.tgz#a804972be7342f52cb57b10c94c36fc336777d8f" + integrity sha512-0Pz0aoWSueuBDhqrY5ql5+GoOGUdtGXvjVqwtwJgw132ZrEDZQdSfta6pWV4cXVtIs0NtEmpXM6alyZMsBfLmw== + dependencies: + "@ember-data/private-build-infra" "3.28.7" + "@ember-data/store" "3.28.7" + "@ember/edition-utils" "^1.2.0" + "@ember/string" "^3.0.0" + ember-cli-babel "^7.26.6" + ember-cli-test-info "^1.0.0" + ember-cli-typescript "^4.1.0" + "@ember-data/canary-features@3.16.9": version "3.16.9" resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.16.9.tgz#f68eec8cf73ccf8b9cbfe9e163313251144cd958" @@ -1046,14 +1047,6 @@ ember-cli-babel "^7.20.5" ember-cli-typescript "^3.1.3" -"@ember-data/canary-features@3.20.5": - version "3.20.5" - resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.20.5.tgz#7856b84498498b3fed32ddbe7ac5e59a7ce4c70d" - integrity sha512-UGAojn6uAr1yVHiTQ3Zy9W3pfrib+c8BXx7pZ2j1y71ztIMAJ6kNB8h6Gl+Ms1OxEMElnjBEJrfaoV8U1MLY2A== - dependencies: - ember-cli-babel "^7.18.0" - ember-cli-typescript "^3.1.3" - "@ember-data/canary-features@3.24.2": version "3.24.2" resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.24.2.tgz#bd91beda313fc4d7ef3d8fc5dc709d53350c246c" @@ -1078,6 +1071,14 @@ ember-cli-babel "^7.26.6" ember-cli-typescript "^4.1.0" +"@ember-data/canary-features@3.28.7": + version "3.28.7" + resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.28.7.tgz#4d27b81cdfffb6231b75a4b906c8c7e0fd5dd2db" + integrity sha512-qB/+u9/if2NUFHXRp0RT/cY3GVsfJKfCGtkje/De24IfeJVx3pV0Zf+rMGUN2rZ1fbNHK+uFeZc4ofMSkVnVug== + dependencies: + ember-cli-babel "^7.26.6" + ember-cli-typescript "^4.1.0" + "@ember-data/debug@3.16.9": version "3.16.9" resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.16.9.tgz#598247819f85bda371f46438d6c807c8c72e5475" @@ -1089,17 +1090,6 @@ ember-cli-test-info "^1.0.0" ember-cli-typescript "^3.1.3" -"@ember-data/debug@3.20.5": - version "3.20.5" - resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.20.5.tgz#a3af700f82ba01a40290db706ce607e51ecf5141" - integrity sha512-psG8y6CgWTehelWXp14XOc4dOEJmrnbF+E7Myy/eHXTv7Hyri0iLw0R2WrlO0QjTC8RehgRO4LhRpa0i3VxIlw== - dependencies: - "@ember-data/private-build-infra" "3.20.5" - "@ember/edition-utils" "^1.2.0" - ember-cli-babel "^7.18.0" - ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" - "@ember-data/debug@3.24.2": version "3.24.2" resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.24.2.tgz#6b96fb9cd0914071efb9ac3c6befc1a3a55f5d38" @@ -1136,6 +1126,18 @@ ember-cli-test-info "^1.0.0" ember-cli-typescript "^4.1.0" +"@ember-data/debug@3.28.7": + version "3.28.7" + resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.28.7.tgz#9b428c86b495db2c295e9d6b73adabee378e9b58" + integrity sha512-TjOjjwyUo+Gv916J6ut7v9Kz6+NOepQ5g2Uk94Kd4jZR/ZlXULFts/2Vf3ambZaffZqfrCQjPDDZJVK8yCMehQ== + dependencies: + "@ember-data/private-build-infra" "3.28.7" + "@ember/edition-utils" "^1.2.0" + "@ember/string" "^3.0.0" + ember-cli-babel "^7.26.6" + ember-cli-test-info "^1.0.0" + ember-cli-typescript "^4.1.0" + "@ember-data/model@3.16.9": version "3.16.9" resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.16.9.tgz#de002feedf100acd47b93916a7dbef436e9b770a" @@ -1152,22 +1154,6 @@ ember-compatibility-helpers "^1.2.0" inflection "1.12.0" -"@ember-data/model@3.20.5": - version "3.20.5" - resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.20.5.tgz#522008a6b3c6334792cb3674cd19c8972d5bbbf9" - integrity sha512-d5FToKjtjkSKnoOAqFS/IWtyGxag2RDsOk/j+VNQPFQITlrcDV/j2LeF82laXpF04SfCWyenvXxjqCIEsbeZVQ== - dependencies: - "@ember-data/canary-features" "3.20.5" - "@ember-data/private-build-infra" "3.20.5" - "@ember-data/store" "3.20.5" - "@ember/edition-utils" "^1.2.0" - ember-cli-babel "^7.18.0" - ember-cli-string-utils "^1.1.0" - ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" - ember-compatibility-helpers "^1.2.0" - inflection "1.12.0" - "@ember-data/model@3.24.2": version "3.24.2" resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.24.2.tgz#8d718b8151eb2489328c5957d9ffc367b5b9a512" @@ -1220,6 +1206,24 @@ ember-compatibility-helpers "^1.2.0" inflection "~1.13.1" +"@ember-data/model@3.28.7": + version "3.28.7" + resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.28.7.tgz#fecfffd869763a91ea51f95fab585f53b0e2208f" + integrity sha512-SsFu936Imgcwh/0tXWioDtk1Iwd5ADJ3hyaGIxS/QTCXdf/GyO2YlUJ7BYEIG9/n3XxBdIy5dVGbhPDrX9j/UQ== + dependencies: + "@ember-data/canary-features" "3.28.7" + "@ember-data/private-build-infra" "3.28.7" + "@ember-data/store" "3.28.7" + "@ember/edition-utils" "^1.2.0" + "@ember/string" "^3.0.0" + ember-cached-decorator-polyfill "^0.1.4" + ember-cli-babel "^7.26.6" + ember-cli-string-utils "^1.1.0" + ember-cli-test-info "^1.0.0" + ember-cli-typescript "^4.1.0" + ember-compatibility-helpers "^1.2.0" + inflection "~1.13.1" + "@ember-data/private-build-infra@3.16.9": version "3.16.9" resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.16.9.tgz#992bff2ff2fdcb5db1b147f723830b2a2a4b1369" @@ -1252,13 +1256,13 @@ semver "^6.3.0" silent-error "^1.1.1" -"@ember-data/private-build-infra@3.20.5": - version "3.20.5" - resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.20.5.tgz#92d52dfcc35c25a3c0fad7d27a4f8d2a9cf04451" - integrity sha512-9qS8VC2ZQwN/aD6RGO9FNWzdVHFUvjNgXfk1PYPo6QDmLwU/3m+WqXO0ZkhQx6hjHjGWi5HOu+vjUwdO8nghfg== +"@ember-data/private-build-infra@3.24.2": + version "3.24.2" + resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.24.2.tgz#2b77fb4490a6c657d9f82ce8c54fe22157e03963" + integrity sha512-uYv9BOGaNxsSacE0jFRFhrs/Xg6f8Rma2Ap/mVjwouBvu+DV2cl5E2zIMalygu/ngIiGhiNUeUp2RpjSpR054w== dependencies: "@babel/plugin-transform-block-scoping" "^7.8.3" - "@ember-data/canary-features" "3.20.5" + "@ember-data/canary-features" "3.24.2" "@ember/edition-utils" "^1.2.0" babel-plugin-debug-macros "^0.3.3" babel-plugin-filter-imports "^4.0.0" @@ -1284,13 +1288,13 @@ semver "^7.1.3" silent-error "^1.1.1" -"@ember-data/private-build-infra@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.24.2.tgz#2b77fb4490a6c657d9f82ce8c54fe22157e03963" - integrity sha512-uYv9BOGaNxsSacE0jFRFhrs/Xg6f8Rma2Ap/mVjwouBvu+DV2cl5E2zIMalygu/ngIiGhiNUeUp2RpjSpR054w== +"@ember-data/private-build-infra@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.27.1.tgz#040a9f646a1ca2764e67bf1108dc489d2008e7d5" + integrity sha512-Cox/CRovg1gFGuO2zn64JSAezbbO1XHP+tLWDXRIiB2Oqlk3CtNxEs9K02DxMCojK4C8itFDOVpBKLYCB5MbYQ== dependencies: "@babel/plugin-transform-block-scoping" "^7.8.3" - "@ember-data/canary-features" "3.24.2" + "@ember-data/canary-features" "3.27.1" "@ember/edition-utils" "^1.2.0" babel-plugin-debug-macros "^0.3.3" babel-plugin-filter-imports "^4.0.0" @@ -1302,7 +1306,7 @@ broccoli-rollup "^4.1.1" calculate-cache-key-for-tree "^2.0.0" chalk "^4.0.0" - ember-cli-babel "^7.18.0" + ember-cli-babel "^7.26.6" ember-cli-path-utils "^1.0.0" ember-cli-string-utils "^1.1.0" ember-cli-typescript "^3.1.3" @@ -1316,20 +1320,20 @@ semver "^7.1.3" silent-error "^1.1.1" -"@ember-data/private-build-infra@3.27.1": - version "3.27.1" - resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.27.1.tgz#040a9f646a1ca2764e67bf1108dc489d2008e7d5" - integrity sha512-Cox/CRovg1gFGuO2zn64JSAezbbO1XHP+tLWDXRIiB2Oqlk3CtNxEs9K02DxMCojK4C8itFDOVpBKLYCB5MbYQ== +"@ember-data/private-build-infra@3.28.3": + version "3.28.3" + resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.28.3.tgz#1169d8885a9d1abc671552ac80136b857785d491" + integrity sha512-aFeZJe+aa7ETaWdsrXAq63e3a9InYacGyp9xxDM37x6TENZ9Z/hdSKf9nOXYqiMuFzcNy5i1a7RUM0z1HWV1vQ== dependencies: "@babel/plugin-transform-block-scoping" "^7.8.3" - "@ember-data/canary-features" "3.27.1" + "@ember-data/canary-features" "3.28.3" "@ember/edition-utils" "^1.2.0" babel-plugin-debug-macros "^0.3.3" babel-plugin-filter-imports "^4.0.0" babel6-plugin-strip-class-callcheck "^6.0.0" broccoli-debug "^0.6.5" broccoli-file-creator "^2.1.1" - broccoli-funnel "^2.0.2" + broccoli-funnel "^3.0.3" broccoli-merge-trees "^4.2.0" broccoli-rollup "^4.1.1" calculate-cache-key-for-tree "^2.0.0" @@ -1337,7 +1341,7 @@ ember-cli-babel "^7.26.6" ember-cli-path-utils "^1.0.0" ember-cli-string-utils "^1.1.0" - ember-cli-typescript "^3.1.3" + ember-cli-typescript "^4.1.0" ember-cli-version-checker "^5.1.1" esm "^3.2.25" git-repo-info "^2.1.1" @@ -1348,13 +1352,13 @@ semver "^7.1.3" silent-error "^1.1.1" -"@ember-data/private-build-infra@3.28.3": - version "3.28.3" - resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.28.3.tgz#1169d8885a9d1abc671552ac80136b857785d491" - integrity sha512-aFeZJe+aa7ETaWdsrXAq63e3a9InYacGyp9xxDM37x6TENZ9Z/hdSKf9nOXYqiMuFzcNy5i1a7RUM0z1HWV1vQ== +"@ember-data/private-build-infra@3.28.7": + version "3.28.7" + resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.28.7.tgz#0a393f69e68e84b0a1ce9b4e566e308407c733f5" + integrity sha512-Qzk8VBjurlvxEY8gyIKP3qu0Lz9MOo997LproN9EHslm6UP0eYzZUHRBvqfqbkVDVCqwfUZi55E8ycaqxZWu0Q== dependencies: "@babel/plugin-transform-block-scoping" "^7.8.3" - "@ember-data/canary-features" "3.28.3" + "@ember-data/canary-features" "3.28.7" "@ember/edition-utils" "^1.2.0" babel-plugin-debug-macros "^0.3.3" babel-plugin-filter-imports "^4.0.0" @@ -1363,7 +1367,7 @@ broccoli-file-creator "^2.1.1" broccoli-funnel "^3.0.3" broccoli-merge-trees "^4.2.0" - broccoli-rollup "^4.1.1" + broccoli-rollup "^5.0.0" calculate-cache-key-for-tree "^2.0.0" chalk "^4.0.0" ember-cli-babel "^7.26.6" @@ -1394,20 +1398,6 @@ ember-cli-test-info "^1.0.0" ember-cli-typescript "^3.1.3" -"@ember-data/record-data@3.20.5": - version "3.20.5" - resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.20.5.tgz#c4a27226449d7be01bdf5752518cd5c01dd7a0a9" - integrity sha512-lYkfptsbMc/FAvMKH3M6mMq6DLXUTNFIOBejC76EKNa9+Alxl84QiNxO4kpZdAsZGzT9gJLsWQ/0TXQlk44gyQ== - dependencies: - "@ember-data/canary-features" "3.20.5" - "@ember-data/private-build-infra" "3.20.5" - "@ember-data/store" "3.20.5" - "@ember/edition-utils" "^1.2.0" - "@ember/ordered-set" "^2.0.3" - ember-cli-babel "^7.18.0" - ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" - "@ember-data/record-data@3.24.2": version "3.24.2" resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.24.2.tgz#cf07dd13c74d02046af2dc4a9102f9f6cb897184" @@ -1449,6 +1439,19 @@ ember-cli-test-info "^1.0.0" ember-cli-typescript "^4.1.0" +"@ember-data/record-data@3.28.7": + version "3.28.7" + resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.28.7.tgz#65ee8f5f54b94c17aa76a851615afb37717d4ec2" + integrity sha512-btNfMpUw9/Fbf0TD/xqQFHvXq+IGqbaEbso/vr3krBcrRGhUqfDYXynjSWLhuHgy/zQ1ULRLSBstmKXqaQ+Srw== + dependencies: + "@ember-data/canary-features" "3.28.7" + "@ember-data/private-build-infra" "3.28.7" + "@ember-data/store" "3.28.7" + "@ember/edition-utils" "^1.2.0" + ember-cli-babel "^7.26.6" + ember-cli-test-info "^1.0.0" + ember-cli-typescript "^4.1.0" + "@ember-data/rfc395-data@^0.0.4": version "0.0.4" resolved "https://registry.yarnpkg.com/@ember-data/rfc395-data/-/rfc395-data-0.0.4.tgz#ecb86efdf5d7733a76ff14ea651a1b0ed1f8a843" @@ -1465,17 +1468,6 @@ ember-cli-test-info "^1.0.0" ember-cli-typescript "^3.1.3" -"@ember-data/serializer@3.20.5": - version "3.20.5" - resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.20.5.tgz#7977ee5178a377f30743460f29d973aa17656ff4" - integrity sha512-eNxw9vPSFfiA97I4yURteUM5WgtRjrDVNRPhVDEU7OOHDAa6Q9P/7ASJCTp7SNxI+pqAWgobRWyDH7tE7LMRRg== - dependencies: - "@ember-data/private-build-infra" "3.20.5" - "@ember-data/store" "3.20.5" - ember-cli-babel "^7.18.0" - ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" - "@ember-data/serializer@3.24.2": version "3.24.2" resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.24.2.tgz#d95816f4af4b9d3031bdd198cd10e6bde3fa8b17" @@ -1509,6 +1501,17 @@ ember-cli-test-info "^1.0.0" ember-cli-typescript "^4.1.0" +"@ember-data/serializer@3.28.7": + version "3.28.7" + resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.28.7.tgz#6e9601afc61ea35847cd8c5f46c59d338ed4e87c" + integrity sha512-quEkFEJfpT05xXqwOZTKbmRClueOguGZm5YwRHCmSIcYVML2mCgmTmkQeg5aXURiBlV5OPRZrBLHVHWysnTYHA== + dependencies: + "@ember-data/private-build-infra" "3.28.7" + "@ember-data/store" "3.28.7" + ember-cli-babel "^7.26.6" + ember-cli-test-info "^1.0.0" + ember-cli-typescript "^4.1.0" + "@ember-data/store@3.16.9": version "3.16.9" resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.16.9.tgz#4336ea1d0b6b597df85573bbd87ebc9889cf4fa6" @@ -1521,18 +1524,6 @@ ember-cli-typescript "^3.1.3" heimdalljs "^0.3.0" -"@ember-data/store@3.20.5": - version "3.20.5" - resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.20.5.tgz#9855ac3ac24c780a05941b2ecf47c0be4f52ebdc" - integrity sha512-Ti5npYeORvis5TzsIIhSlXi5tbFaRixVad3BpI6PRZn4hXskrIBAVlLIAd0vbpj+kIprFrwe5NsMJTR11jU/Pw== - dependencies: - "@ember-data/canary-features" "3.20.5" - "@ember-data/private-build-infra" "3.20.5" - ember-cli-babel "^7.18.0" - ember-cli-path-utils "^1.0.0" - ember-cli-typescript "^3.1.3" - heimdalljs "^0.3.0" - "@ember-data/store@3.24.2": version "3.24.2" resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.24.2.tgz#2583e03f8c51c5b049a29bbed304ae78085e8b9b" @@ -1573,6 +1564,19 @@ ember-cli-path-utils "^1.0.0" ember-cli-typescript "^4.1.0" +"@ember-data/store@3.28.7": + version "3.28.7" + resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.28.7.tgz#c8d8e8189a829e4267a34ef1b05a37d120c4ad91" + integrity sha512-/IGnIAPGQTsOV9yEEbC+2HR/aYn9EjiJunBBXRzottphOh4JyQ3QqdZcTiIplSACk0UfhCM8P9icWN7brbS+SQ== + dependencies: + "@ember-data/canary-features" "3.28.7" + "@ember-data/private-build-infra" "3.28.7" + "@ember/string" "^3.0.0" + "@glimmer/tracking" "^1.0.4" + ember-cli-babel "^7.26.6" + ember-cli-path-utils "^1.0.0" + ember-cli-typescript "^4.1.0" + "@ember-decorators/component@^6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/@ember-decorators/component/-/component-6.1.1.tgz#b360dc4fa8e576ee1c840879399ef1745fd96e06" @@ -2553,6 +2557,13 @@ resolved "https://registry.yarnpkg.com/@types/broccoli-plugin/-/broccoli-plugin-1.3.0.tgz#38f8462fecaebc4e09a32e4d4ed1b9808f75bbca" integrity sha512-SLk4/hFc2kGvgwNFrpn2O1juxFOllcHAywvlo7VwxfExLzoz1GGJ0oIZCwj5fwSpvHw4AWpZjJ1fUvb62PDayQ== +"@types/broccoli-plugin@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/broccoli-plugin/-/broccoli-plugin-3.0.0.tgz#290fda2270c47a568edfd0cefab8bb840d8bb7b2" + integrity sha512-f+TcsARR2PovfFRKFdCX0kfH/QoM3ZVD2h1rl2mNvrKO0fq2uBNCBsTU3JanfU4COCt5cXpTfARyUsERlC8vIw== + dependencies: + broccoli-plugin "*" + "@types/cacheable-request@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" @@ -4909,7 +4920,7 @@ broccoli-babel-transpiler@^6.5.0: rsvp "^4.8.2" workerpool "^2.3.0" -broccoli-babel-transpiler@^7.2.0, broccoli-babel-transpiler@^7.3.0, broccoli-babel-transpiler@^7.6.0, broccoli-babel-transpiler@^7.8.0: +broccoli-babel-transpiler@^7.2.0, broccoli-babel-transpiler@^7.3.0, broccoli-babel-transpiler@^7.8.0: version "7.8.0" resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-7.8.0.tgz#7e0f01fce5739f49bbadeee7f1e625ca51cad66e" integrity sha512-dv30Td5uL7dO3NzQUqQKQs+Iq7JGKnCNtvc6GBO76uVPqGnRlsQZcYqdBVr33JrctR+ZrpTUf7TjsFKeDRFA8Q== @@ -5356,6 +5367,19 @@ broccoli-persistent-filter@^3.1.2: symlink-or-copy "^1.0.1" sync-disk-cache "^2.0.0" +broccoli-plugin@*, broccoli-plugin@^4.0.0, broccoli-plugin@^4.0.1, broccoli-plugin@^4.0.2, broccoli-plugin@^4.0.3, broccoli-plugin@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-4.0.7.tgz#dd176a85efe915ed557d913744b181abe05047db" + integrity sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg== + dependencies: + broccoli-node-api "^1.7.0" + broccoli-output-wrapper "^3.2.5" + fs-merger "^3.2.1" + promise-map-series "^0.3.0" + quick-temp "^0.1.8" + rimraf "^3.0.2" + symlink-or-copy "^1.3.1" + broccoli-plugin@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.1.0.tgz#73e2cfa05f8ea1e3fc1420c40c3d9e7dc724bf02" @@ -5399,19 +5423,6 @@ broccoli-plugin@^3.1.0: rimraf "^2.3.4" symlink-or-copy "^1.1.8" -broccoli-plugin@^4.0.0, broccoli-plugin@^4.0.1, broccoli-plugin@^4.0.2, broccoli-plugin@^4.0.3, broccoli-plugin@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-4.0.7.tgz#dd176a85efe915ed557d913744b181abe05047db" - integrity sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg== - dependencies: - broccoli-node-api "^1.7.0" - broccoli-output-wrapper "^3.2.5" - fs-merger "^3.2.1" - promise-map-series "^0.3.0" - quick-temp "^0.1.8" - rimraf "^3.0.2" - symlink-or-copy "^1.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" @@ -5444,6 +5455,21 @@ broccoli-rollup@^4.1.1: symlink-or-copy "^1.2.0" walk-sync "^1.1.3" +broccoli-rollup@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-5.0.0.tgz#a77b53bcef1b70e988913fee82265c0a4ca530da" + integrity sha512-QdMuXHwsdz/LOS8zu4HP91Sfi4ofimrOXoYP/lrPdRh7lJYD87Lfq4WzzUhGHsxMfzANIEvl/7qVHKD3cFJ4tA== + dependencies: + "@types/broccoli-plugin" "^3.0.0" + broccoli-plugin "^4.0.7" + fs-tree-diff "^2.0.1" + heimdalljs "^0.2.6" + node-modules-path "^1.0.1" + rollup "^2.50.0" + rollup-pluginutils "^2.8.1" + symlink-or-copy "^1.2.0" + walk-sync "^2.2.0" + broccoli-slow-trees@^3.0.1, broccoli-slow-trees@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/broccoli-slow-trees/-/broccoli-slow-trees-3.1.0.tgz#8e48903f59e061bf1213963733b9e61dec2ee5d7" @@ -7442,20 +7468,20 @@ ember-cached-decorator-polyfill@^0.1.4: watch-detector "^1.0.0" yam "^1.0.0" -"ember-cli-3.20@npm:ember-cli@~3.20.0": - version "3.20.2" - resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.20.2.tgz#4a5411afc32a91eb81e4fa1e6f4bc950e838c132" - integrity sha512-8ggRX+NXD9VkQt/9/GSMLcnswWNYTgE7Aw1uelexHdxGA1TqcjOjQ07ljVmgRwYVieknhDzhK3M0u3Xoa3x0HA== +"ember-cli-3.24@npm:ember-cli@~3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.24.0.tgz#dbda4938e74fdafe4da1c42b49356f9d14c10697" + integrity sha512-dLurYpluRcE+XjCHy/JzUBcW4dBKhjmXH3zUjyof89gFjj+8EFjB0b2tqyS6buKqBasinVaX8lZZVIXYCdFtNA== dependencies: - "@babel/core" "^7.10.2" - "@babel/plugin-transform-modules-amd" "^7.10.4" + "@babel/core" "^7.12.9" + "@babel/plugin-transform-modules-amd" "^7.12.1" amd-name-resolver "^1.3.1" babel-plugin-module-resolver "^4.0.0" bower-config "^1.4.3" bower-endpoint-parser "0.2.2" - broccoli "^3.4.2" + broccoli "^3.5.0" broccoli-amd-funnel "^2.0.1" - broccoli-babel-transpiler "^7.6.0" + broccoli-babel-transpiler "^7.8.0" broccoli-builder "^0.18.14" broccoli-concat "^4.2.4" broccoli-config-loader "^1.0.1" @@ -7470,12 +7496,12 @@ ember-cached-decorator-polyfill@^0.1.4: broccoli-stew "^3.0.0" calculate-cache-key-for-tree "^2.0.0" capture-exit "^2.0.0" - chalk "^4.0.0" + chalk "^4.1.0" ci-info "^2.0.0" clean-base-url "^1.0.0" compression "^1.7.4" configstore "^5.0.1" - console-ui "^3.1.1" + console-ui "^3.1.2" core-object "^3.1.5" dag-map "^2.0.2" diff "^4.0.2" @@ -7484,79 +7510,81 @@ ember-cached-decorator-polyfill@^0.1.4: ember-cli-normalize-entity-name "^1.0.0" ember-cli-preprocess-registry "^3.3.0" ember-cli-string-utils "^1.1.0" - ember-source-channel-url "^2.0.1" + ember-source-channel-url "^3.0.0" ensure-posix-path "^1.1.1" - execa "^1.0.0" + execa "^4.1.0" exit "^0.1.2" express "^4.17.1" filesize "^6.1.0" - find-up "^4.1.0" - find-yarn-workspace-root "^1.2.1" + find-up "^5.0.0" + find-yarn-workspace-root "^2.0.0" fixturify-project "^2.1.0" - fs-extra "^9.0.0" + fs-extra "^9.0.1" fs-tree-diff "^2.0.1" get-caller-file "^2.0.5" git-repo-info "^2.1.1" glob "^7.1.6" heimdalljs "^0.2.6" - heimdalljs-fs-monitor "^0.2.3" + heimdalljs-fs-monitor "^1.1.0" heimdalljs-graph "^1.0.0" heimdalljs-logger "^0.1.10" http-proxy "^1.18.1" inflection "^1.12.0" is-git-url "^1.0.0" + is-language-code "^2.0.0" isbinaryfile "^4.0.6" - js-yaml "^3.13.1" + js-yaml "^3.14.0" json-stable-stringify "^1.0.1" leek "0.0.24" lodash.template "^4.5.0" - markdown-it "^11.0.0" + markdown-it "^12.0.2" markdown-it-terminal "0.2.1" minimatch "^3.0.4" morgan "^1.10.0" nopt "^3.0.6" - npm-package-arg "^8.0.1" + npm-package-arg "^8.1.0" p-defer "^3.0.0" - portfinder "^1.0.26" + portfinder "^1.0.28" promise-map-series "^0.3.0" - promise.hash.helper "^1.0.6" + promise.hash.helper "^1.0.7" quick-temp "^0.1.8" - resolve "^1.17.0" - resolve-package-path "^2.0.0" + resolve "^1.19.0" + resolve-package-path "^3.1.0" sane "^4.1.0" semver "^7.3.2" silent-error "^1.1.1" - sort-package-json "^1.44.0" + sort-package-json "^1.48.0" symlink-or-copy "^1.3.1" - temp "0.9.1" - testem "^3.1.0" - tiny-lr "^1.1.1" + temp "0.9.4" + testem "^3.2.0" + tiny-lr "^2.0.0" tree-sync "^2.1.0" - uuid "^8.1.0" + uuid "^8.3.1" walk-sync "^2.2.0" watch-detector "^1.0.0" + workerpool "^6.0.3" yam "^1.0.0" -"ember-cli-3.24@npm:ember-cli@~3.24.0": - version "3.24.0" - resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.24.0.tgz#dbda4938e74fdafe4da1c42b49356f9d14c10697" - integrity sha512-dLurYpluRcE+XjCHy/JzUBcW4dBKhjmXH3zUjyof89gFjj+8EFjB0b2tqyS6buKqBasinVaX8lZZVIXYCdFtNA== +"ember-cli-3.28@npm:ember-cli@~3.28.0": + version "3.28.5" + resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.5.tgz#9c91266e412f6d537b47a88e4b63a2b56db35483" + integrity sha512-Y/UdbUOTeKHGMCP3XtE5g14JUTYyeQTdjPvHuv11FFx5HQBtHqqWLY6U1ivMDukDkQ4i2v6TyaUcKVo4e8PtyQ== dependencies: - "@babel/core" "^7.12.9" + "@babel/core" "^7.13.8" "@babel/plugin-transform-modules-amd" "^7.12.1" amd-name-resolver "^1.3.1" - babel-plugin-module-resolver "^4.0.0" + babel-plugin-module-resolver "^4.1.0" bower-config "^1.4.3" bower-endpoint-parser "0.2.2" - broccoli "^3.5.0" + broccoli "^3.5.1" broccoli-amd-funnel "^2.0.1" broccoli-babel-transpiler "^7.8.0" broccoli-builder "^0.18.14" - broccoli-concat "^4.2.4" + broccoli-concat "^4.2.5" broccoli-config-loader "^1.0.1" broccoli-config-replace "^1.1.2" broccoli-debug "^0.6.5" - broccoli-funnel "^2.0.2" + broccoli-funnel "^3.0.5" broccoli-funnel-reducer "^1.0.0" broccoli-merge-trees "^3.0.2" broccoli-middleware "^2.1.1" @@ -7573,7 +7601,7 @@ ember-cached-decorator-polyfill@^0.1.4: console-ui "^3.1.2" core-object "^3.1.5" dag-map "^2.0.2" - diff "^4.0.2" + diff "^5.0.0" ember-cli-is-package-missing "^1.0.0" ember-cli-lodash-subset "^2.0.1" ember-cli-normalize-entity-name "^1.0.0" @@ -7581,14 +7609,14 @@ ember-cached-decorator-polyfill@^0.1.4: ember-cli-string-utils "^1.1.0" ember-source-channel-url "^3.0.0" ensure-posix-path "^1.1.1" - execa "^4.1.0" + execa "^5.0.0" exit "^0.1.2" express "^4.17.1" filesize "^6.1.0" find-up "^5.0.0" find-yarn-workspace-root "^2.0.0" - fixturify-project "^2.1.0" - fs-extra "^9.0.1" + fixturify-project "^2.1.1" + fs-extra "^9.1.0" fs-tree-diff "^2.0.1" get-caller-file "^2.0.5" git-repo-info "^2.1.1" @@ -7606,32 +7634,32 @@ ember-cached-decorator-polyfill@^0.1.4: json-stable-stringify "^1.0.1" leek "0.0.24" lodash.template "^4.5.0" - markdown-it "^12.0.2" + markdown-it "^12.0.4" markdown-it-terminal "0.2.1" minimatch "^3.0.4" morgan "^1.10.0" nopt "^3.0.6" - npm-package-arg "^8.1.0" + npm-package-arg "^8.1.1" p-defer "^3.0.0" portfinder "^1.0.28" promise-map-series "^0.3.0" promise.hash.helper "^1.0.7" quick-temp "^0.1.8" - resolve "^1.19.0" + resolve "^1.20.0" resolve-package-path "^3.1.0" sane "^4.1.0" - semver "^7.3.2" + semver "^7.3.4" silent-error "^1.1.1" - sort-package-json "^1.48.0" + sort-package-json "^1.49.0" symlink-or-copy "^1.3.1" temp "0.9.4" testem "^3.2.0" tiny-lr "^2.0.0" tree-sync "^2.1.0" - uuid "^8.3.1" + uuid "^8.3.2" walk-sync "^2.2.0" watch-detector "^1.0.0" - workerpool "^6.0.3" + workerpool "^6.1.4" yam "^1.0.0" ember-cli-app-version@^5.0.0: @@ -8471,26 +8499,6 @@ ember-composable-helpers@^4.4.1: ember-cli-typescript "^3.1.3" ember-inflector "^3.0.1" -"ember-data-3.20@npm:ember-data@~3.20.0": - version "3.20.5" - resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.20.5.tgz#1d0968983e1b6e71ba1539b623c1cd112c14ea20" - integrity sha512-rYcW7NkLT8bXec2Z1ODbrO9y/pdpk5ICn63aRA1UDL3nZ6hijowa9vNr+SnkzdLIDrfF40rP+f1N/oTkuqgwjw== - dependencies: - "@ember-data/adapter" "3.20.5" - "@ember-data/debug" "3.20.5" - "@ember-data/model" "3.20.5" - "@ember-data/private-build-infra" "3.20.5" - "@ember-data/record-data" "3.20.5" - "@ember-data/serializer" "3.20.5" - "@ember-data/store" "3.20.5" - "@ember/edition-utils" "^1.2.0" - "@ember/ordered-set" "^2.0.3" - "@glimmer/env" "^0.1.7" - broccoli-merge-trees "^4.2.0" - ember-cli-babel "^7.18.0" - ember-cli-typescript "^3.1.3" - ember-inflector "^3.0.1" - "ember-data-3.24@npm:ember-data@~3.24.0": version "3.24.2" resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.24.2.tgz#34d72b0bc83fce1791bf09a8391425717b9c3f55" @@ -8512,6 +8520,26 @@ ember-composable-helpers@^4.4.1: ember-cli-typescript "^3.1.3" ember-inflector "^3.0.1" +"ember-data-3.28@npm:ember-data@~3.28.0": + version "3.28.7" + resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.28.7.tgz#25fc858ca0da9c4120a8723b19bbfdd5756600c7" + integrity sha512-6nGwC7ihqNCiSY+ELKAWycTino0bJRtjn/hG5FhHhj7mxz60i6BOxAnq8nJOfjW9RRIOLoqH8y0gHpme4c3Xqw== + dependencies: + "@ember-data/adapter" "3.28.7" + "@ember-data/debug" "3.28.7" + "@ember-data/model" "3.28.7" + "@ember-data/private-build-infra" "3.28.7" + "@ember-data/record-data" "3.28.7" + "@ember-data/serializer" "3.28.7" + "@ember-data/store" "3.28.7" + "@ember/edition-utils" "^1.2.0" + "@ember/string" "^3.0.0" + "@glimmer/env" "^0.1.7" + broccoli-merge-trees "^4.2.0" + ember-cli-babel "^7.26.6" + ember-cli-typescript "^4.1.0" + ember-inflector "^4.0.1" + "ember-data-latest@npm:ember-data@latest": version "3.27.1" resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.27.1.tgz#02d6b76c1d5de0f50d24274147b8711f6ca4f28d" @@ -8882,10 +8910,10 @@ ember-router-generator@^2.0.0: semver "^6.1.1" silent-error "^1.1.1" -"ember-source-3.20@npm:ember-source@~3.20.0": - version "3.20.7" - resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.20.7.tgz#090e8f7f3e669b3f48ed9fee2ec5e6a50fe695e4" - integrity sha512-WeZ55BRi2kwFQCHydwLfbqJx04ONSrVsGs6IxK0VxNSgtSyQZ0ENLG5O9pad3uR7VeVhspazNPobaY38V8tEow== +"ember-source-3.24@npm:ember-source@~3.24.0": + version "3.24.4" + resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.4.tgz#db3f70cbe4155d48474177f1564627a1fc980f64" + integrity sha512-C5sFGxT743n2PCaTnpvy3GWHdPz+/Ve9qjcSdfRjUvFCSYNhsRkxkpXRvXEU8WoUXY35Pm4vV9RsiorX1M+/Tw== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" @@ -8898,7 +8926,7 @@ ember-router-generator@^2.0.0: broccoli-funnel "^2.0.2" broccoli-merge-trees "^4.2.0" chalk "^4.0.0" - ember-cli-babel "^7.19.0" + ember-cli-babel "^7.23.0" ember-cli-get-component-path-option "^1.0.0" ember-cli-is-package-missing "^1.0.0" ember-cli-normalize-entity-name "^1.0.0" @@ -8912,19 +8940,21 @@ ember-router-generator@^2.0.0: semver "^6.1.1" silent-error "^1.1.1" -"ember-source-3.24@npm:ember-source@~3.24.0": - version "3.24.4" - resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.4.tgz#db3f70cbe4155d48474177f1564627a1fc980f64" - integrity sha512-C5sFGxT743n2PCaTnpvy3GWHdPz+/Ve9qjcSdfRjUvFCSYNhsRkxkpXRvXEU8WoUXY35Pm4vV9RsiorX1M+/Tw== +"ember-source-3.28@npm:ember-source@~3.28.0": + version "3.28.8" + resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.28.8.tgz#c58fd4a1538d6c4b9aebe76c764cabf5396c64d9" + integrity sha512-hA15oYzbRdi9983HIemeVzzX2iLcMmSPp6akUiMQhFZYWPrKksbPyLrO6YpZ4hNM8yBjQSDXEkZ1V3yxBRKjUA== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" "@babel/plugin-transform-object-assign" "^7.8.3" "@ember/edition-utils" "^1.2.0" - babel-plugin-debug-macros "^0.3.3" + "@glimmer/vm-babel-plugins" "0.80.3" + babel-plugin-debug-macros "^0.3.4" babel-plugin-filter-imports "^4.0.0" broccoli-concat "^4.2.4" broccoli-debug "^0.6.4" + broccoli-file-creator "^2.1.1" broccoli-funnel "^2.0.2" broccoli-merge-trees "^4.2.0" chalk "^4.0.0" @@ -8937,9 +8967,9 @@ ember-router-generator@^2.0.0: ember-cli-version-checker "^5.1.1" ember-router-generator "^2.0.0" inflection "^1.12.0" - jquery "^3.5.0" + jquery "^3.5.1" resolve "^1.17.0" - semver "^6.1.1" + semver "^7.3.4" silent-error "^1.1.1" "ember-source-beta@npm:ember-source@beta": @@ -9307,11 +9337,6 @@ entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -entities@~2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== - entities@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" @@ -10698,7 +10723,7 @@ fs-extra@^8.0.0, fs-extra@^8.0.1, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -13536,17 +13561,6 @@ markdown-it-terminal@0.2.1: lodash.merge "^4.6.2" markdown-it "^8.3.1" -markdown-it@^11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.1.tgz#b54f15ec2a2193efa66dda1eb4173baea08993d6" - integrity sha512-aU1TzmBKcWNNYvH9pjq6u92BML+Hz3h5S/QpfTFwiQF852pLT+9qHsrhM9JYipkOXZxGn+sGH8oyJE9FD9WezQ== - dependencies: - argparse "^1.0.7" - entities "~2.0.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" - markdown-it@^12.0.2, markdown-it@^12.0.4: version "12.0.6" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.6.tgz#adcc8e5fe020af292ccbdf161fe84f1961516138" @@ -14247,7 +14261,7 @@ npm-package-arg@^6.1.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.1: +npm-package-arg@^8.1.0, npm-package-arg@^8.1.1: version "8.1.4" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.4.tgz#8001cdbc4363997b8ef6c6cf7aaf543c5805879d" integrity sha512-xLokoCFqj/rPdr3LvcdDL6Kj6ipXGEDHD/QGpzwU6/pibYUOXmp5DBmg76yukFyx4ZDbrXNOTn+BPyd8TD4Jlw== @@ -14978,7 +14992,7 @@ popper.js@^1.14.1: resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== -portfinder@^1.0.25, portfinder@^1.0.26, portfinder@^1.0.28: +portfinder@^1.0.25, portfinder@^1.0.28: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== @@ -15153,7 +15167,7 @@ promise-retry@^1.1.1: err-code "^1.0.0" retry "^0.10.0" -promise.hash.helper@^1.0.6, promise.hash.helper@^1.0.7: +promise.hash.helper@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/promise.hash.helper/-/promise.hash.helper-1.0.7.tgz#2f39d8495df40dcdfbc1d5be9e9e56efeae7f180" integrity sha512-0qhWYyCV9TYDMSooYw1fShIb7R6hsWYja7JLqbeb1MvHqDTvP/uy/R1RsyVqDi6GCiHOI4G5p2Hpr3IA+/l/+Q== @@ -16050,6 +16064,13 @@ rollup@^1.12.0: "@types/node" "*" acorn "^7.1.0" +rollup@^2.50.0: + version "2.66.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.66.0.tgz#ee529ea15a20485d579039637fec3050bad03bbb" + integrity sha512-L6mKOkdyP8HK5kKJXaiWG7KZDumPJjuo1P+cfyHOJPNNTK3Moe7zCH5+fy7v8pVmHXtlxorzaBjvkBMB23s98g== + optionalDependencies: + fsevents "~2.3.2" + rollup@^2.58.0: version "2.58.0" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.58.0.tgz#a643983365e7bf7f5b7c62a8331b983b7c4c67fb" @@ -16530,7 +16551,7 @@ sort-object-keys@^1.1.3: resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== -sort-package-json@^1.39.1, sort-package-json@^1.44.0, sort-package-json@^1.48.0, sort-package-json@^1.49.0: +sort-package-json@^1.39.1, sort-package-json@^1.48.0, sort-package-json@^1.49.0: version "1.50.0" resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-1.50.0.tgz#19fc109fe23bd157bd03c8e572fa3251a52467d8" integrity sha512-qZpqhMU9XTntebgAgc4hv/D6Fzhh7kFnwvV6a7+q8y8J5JoaDqPYQnvXPf7BBqG95tdE8X6JVNo7/jDzcbdfUg== @@ -17210,7 +17231,7 @@ test-exclude@^5.2.3: read-pkg-up "^4.0.0" require-main-filename "^2.0.0" -testem@^3.0.1, testem@^3.1.0, testem@^3.2.0: +testem@^3.0.1, testem@^3.2.0: version "3.4.2" resolved "https://registry.yarnpkg.com/testem/-/testem-3.4.2.tgz#0ee3ca4025a9085d47230b0c797c815882d4029e" integrity sha512-5undkzAltqE9fuLHy7c6Co/+pQWt0+03tsLpE97bx6ufymV9lJ1VkSO/tEfvQXk6XpLFcKTmbN/EM0RoK8FIOg== @@ -17919,7 +17940,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@8.3.2, uuid@^8.1.0, uuid@^8.3.0, uuid@^8.3.1, uuid@^8.3.2: +uuid@8.3.2, uuid@^8.3.0, uuid@^8.3.1, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==