From 5bbdb64384616d42c0bd4746d887f599842546a4 Mon Sep 17 00:00:00 2001 From: Jonas Metzener Date: Thu, 4 May 2023 16:08:24 +0200 Subject: [PATCH] feat(deps): add support for ember-data 4 --- addon/components/document-card.js | 4 +- addon/components/document-view.js | 4 +- addon/components/multi-document-details.js | 2 +- addon/models/category.js | 2 +- addon/models/document.js | 6 +- addon/models/file.js | 6 +- addon/models/tag.js | 2 +- addon/serializers/application.js | 3 + addon/serializers/file.js | 3 - addon/services/documents.js | 2 +- addon/services/tags.js | 10 +- package.json | 5 +- tests/acceptance/documents-test.js | 3 +- tests/helpers/index.js | 23 +- .../components/category-nav-test.js | 2 - .../components/category-nav/category-test.js | 2 - .../components/document-delete-button-test.js | 2 - .../components/document-list-item-test.js | 2 - .../integration/components/empty-icon-test.js | 2 - .../single-document-details-test.js | 2 - tests/unit/serializers/application-test.js | 13 + tests/unit/services/documents-test.js | 24 +- tests/unit/services/tags-test.js | 8 +- yarn.lock | 427 +++++++++++++----- 24 files changed, 379 insertions(+), 180 deletions(-) create mode 100644 addon/serializers/application.js delete mode 100644 addon/serializers/file.js create mode 100644 tests/unit/serializers/application-test.js diff --git a/addon/components/document-card.js b/addon/components/document-card.js index 5fa0c362..b98e6d56 100644 --- a/addon/components/document-card.js +++ b/addon/components/document-card.js @@ -35,9 +35,7 @@ export default class DocumentCardComponent extends Component { // Compile an array of original file PKs const originalFilePKs = encodeURIComponent( this.args.documents - .map((doc) => - doc.files.toArray().find((file) => file.variant === "original") - ) + .map((doc) => doc.files.find((file) => file.variant === "original")) .map((f) => f.id) .join(",") ); diff --git a/addon/components/document-view.js b/addon/components/document-view.js index 7adfafc7..ed5563e0 100644 --- a/addon/components/document-view.js +++ b/addon/components/document-view.js @@ -70,7 +70,7 @@ export default class DocumentViewComponent extends Component { filter: this.args.filters || {}, sort: this.sort ? `${this.sortDirection}${this.sort}` : "", }); - const selectedDocs = docs.filter((doc) => docIds.includes(doc.id)); + const selectedDocs = [...docs].filter((doc) => docIds.includes(doc.id)); selectedDocs.forEach((doc) => this.documents.selectDocument(doc)); } } @@ -176,7 +176,7 @@ export default class DocumentViewComponent extends Component { this.documents.clearDocumentSelection(); for (let i = startIndex; i <= endIndex; i++) { - this.documents.selectDocument(this.fetchedDocuments.toArray()[i]); + this.documents.selectDocument(this.fetchedDocuments[i]); } } } diff --git a/addon/components/multi-document-details.js b/addon/components/multi-document-details.js index 73217f69..558a76f9 100644 --- a/addon/components/multi-document-details.js +++ b/addon/components/multi-document-details.js @@ -7,7 +7,7 @@ export default class MultiDocumentDetailsComponent extends Component { const tags = []; const nrOfDocs = this.args.selectedDocuments.length; const allTags = this.args.selectedDocuments - .map((d) => d.tags.toArray()) // all the tags for a document + .map((d) => d.tags) // all the tags for a document .flat() .map((t) => t.name); // produces one large array of all tags diff --git a/addon/models/category.js b/addon/models/category.js index 95c5f77e..93d6b244 100644 --- a/addon/models/category.js +++ b/addon/models/category.js @@ -7,5 +7,5 @@ export default class CategoryModel extends LocalizedModel { @attr color; @attr metainfo; - @hasMany documents; + @hasMany("document", { inverse: "category", async: true }) documents; } diff --git a/addon/models/document.js b/addon/models/document.js index 54ce2a53..bfebbbcb 100644 --- a/addon/models/document.js +++ b/addon/models/document.js @@ -13,9 +13,9 @@ export default class DocumentModel extends LocalizedModel { @attr modifiedByUser; @attr modifiedByGroup; - @belongsTo category; - @hasMany tags; - @hasMany files; + @belongsTo("category", { inverse: "documents", async: true }) category; + @hasMany("tag", { inverse: "documents", async: true }) tags; + @hasMany("file", { inverse: "document", async: true }) files; get thumbnail() { const thumbnail = this.files.filter( diff --git a/addon/models/file.js b/addon/models/file.js index 972b012d..e25df9d2 100644 --- a/addon/models/file.js +++ b/addon/models/file.js @@ -15,8 +15,8 @@ export default class FileModel extends Model { @attr modifiedByUser; @attr modifiedByGroup; - @belongsTo document; + @belongsTo("document", { inverse: "files", async: true }) document; - @belongsTo("file", { inverse: "renderings" }) original; - @hasMany("file", { inverse: "original" }) renderings; + @belongsTo("file", { inverse: "renderings", async: true }) original; + @hasMany("file", { inverse: "original", async: true }) renderings; } diff --git a/addon/models/tag.js b/addon/models/tag.js index c78f1139..a9d2c564 100644 --- a/addon/models/tag.js +++ b/addon/models/tag.js @@ -13,5 +13,5 @@ export default class TagModel extends LocalizedModel { @attr modifiedByUser; @attr modifiedByGroup; - @hasMany documents; + @hasMany("document", { inverse: "tags", async: true }) documents; } diff --git a/addon/serializers/application.js b/addon/serializers/application.js new file mode 100644 index 00000000..e6db5247 --- /dev/null +++ b/addon/serializers/application.js @@ -0,0 +1,3 @@ +import JSONAPISerializer from "@ember-data/serializer/json-api"; + +export default class ApplicationSerializer extends JSONAPISerializer {} diff --git a/addon/serializers/file.js b/addon/serializers/file.js deleted file mode 100644 index 1e669412..00000000 --- a/addon/serializers/file.js +++ /dev/null @@ -1,3 +0,0 @@ -import JSONAPISerializer from "@ember-data/serializer/json-api"; - -export default class FileSerializer extends JSONAPISerializer {} diff --git a/addon/services/documents.js b/addon/services/documents.js index 8ab61fe5..ac2c6133 100644 --- a/addon/services/documents.js +++ b/addon/services/documents.js @@ -17,7 +17,7 @@ export default class DocumentsService extends Service { this.router.externalRouter?.currentRoute?.queryParams?.document; if (documentQueryParam) { documentQueryParam.split(",").map(async (id) => { - this.selectDocument(await this.store.find("document", id)); + this.selectDocument(await this.store.findRecord("document", id)); }); } } diff --git a/addon/services/tags.js b/addon/services/tags.js index 766d27d9..e5f1dcfa 100644 --- a/addon/services/tags.js +++ b/addon/services/tags.js @@ -50,7 +50,7 @@ export default class TagsService extends Service { let tag = tagInput; if (typeof tagInput === "string") { const tagId = dasherize(tagInput.trim()); - const existing = this.allTags.findBy("id", tagId); + const existing = this.allTags.find((tag) => tag.id === tagId); if (existing) { tag = existing; } else { @@ -64,11 +64,11 @@ export default class TagsService extends Service { } } - if (document.tags.findBy("id", tag.id)) { + if ((await document.tags).find((t) => t.id === tag.id)) { return tag; } - document.tags.pushObject(tag); + (await document.tags).push(tag); await document.save(); await this.fetchAllTags.perform(); @@ -85,10 +85,10 @@ export default class TagsService extends Service { */ @action async remove(document, tag) { if (typeof tag === "string") { - tag = this.allTags.findBy("name", tag); + tag = this.allTags.find((t) => t.name === tag); } - document.tags.removeObject(tag); + document.tags = (await document.tags).filter((t) => t !== tag); await document.save(); this.fetchSearchTags.perform(); diff --git a/package.json b/package.json index dbd633da..254bff74 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "ember-cli-htmlbars": "^6.2.0", "ember-composable-helpers": "^5.0.0", "ember-concurrency": "^3.0.0", - "ember-data": "^3.28.13", + "ember-data": "^3.28.13 || ^4.12.3", "ember-engines-router-service": "^0.3.0", "ember-fetch": "^8.1.2", "ember-intl": "^5.7.2", @@ -108,9 +108,6 @@ "stylelint-scss": "5.0.1", "webpack": "5.88.2" }, - "resolutions": { - "ember-data": "^3.28.13" - }, "ember": { "edition": "octane" }, diff --git a/tests/acceptance/documents-test.js b/tests/acceptance/documents-test.js index 215dd32f..1d7f8144 100644 --- a/tests/acceptance/documents-test.js +++ b/tests/acceptance/documents-test.js @@ -8,7 +8,7 @@ import { } from "@ember/test-helpers"; import { setupApplicationTest } from "dummy/tests/helpers"; import { setupMirage } from "ember-cli-mirage/test-support"; -import { setupIntl, setLocale } from "ember-intl/test-support"; +import { setLocale } from "ember-intl/test-support"; import { module, test } from "qunit"; import setupRequestAssertions from "../helpers/assert-request"; @@ -17,7 +17,6 @@ module("Acceptance | documents", function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); setupRequestAssertions(hooks); - setupIntl(hooks, ["en"]); test("document grid displays documents", async function (assert) { const documents = this.server.createList("document", 5); diff --git a/tests/helpers/index.js b/tests/helpers/index.js index 62516aac..60d6f0a9 100644 --- a/tests/helpers/index.js +++ b/tests/helpers/index.js @@ -1,5 +1,6 @@ import makeServer from "dummy/mirage/config"; import engineResolverFor from "ember-engines/test-support/engine-resolver-for"; +import { setupIntl } from "ember-intl/test-support"; import { setupApplicationTest as upstreamSetupApplicationTest, setupRenderingTest as upstreamSetupRenderingTest, @@ -42,32 +43,20 @@ function setupEnginesRouter(hooks) { function setupApplicationTest(hooks, options) { upstreamSetupApplicationTest(hooks, options); - - // Additional setup for application tests can be done here. - // - // For example, if you need an authenticated session for each - // application test, you could do: - // - // hooks.beforeEach(async function () { - // await authenticateSession(); // ember-simple-auth - // }); - // - // This is also a good place to call test setup functions coming - // from other addons: - // - // setupIntl(hooks); // ember-intl - // setupMirage(hooks); // ember-cli-mirage + setupIntl(hooks, "en"); } function setupRenderingTest(hooks, options = {}) { - upstreamSetupRenderingTest(hooks, { ...options, resolver }); + upstreamSetupRenderingTest(hooks, { resolver, ...options }); setupMirageServer(hooks); + setupIntl(hooks, "en"); setupEnginesRouter(hooks); } function setupTest(hooks, options = {}) { - upstreamSetupTest(hooks, { ...options, resolver }); + upstreamSetupTest(hooks, { resolver, ...options }); setupMirageServer(hooks); + setupIntl(hooks, "en"); setupEnginesRouter(hooks); } diff --git a/tests/integration/components/category-nav-test.js b/tests/integration/components/category-nav-test.js index 983da279..3b9d1acb 100644 --- a/tests/integration/components/category-nav-test.js +++ b/tests/integration/components/category-nav-test.js @@ -2,12 +2,10 @@ import { render } from "@ember/test-helpers"; import { setupRenderingTest } from "dummy/tests/helpers"; import { hbs } from "ember-cli-htmlbars"; import { setupMirage } from "ember-cli-mirage/test-support"; -import { setupIntl } from "ember-intl/test-support"; import { module, test } from "qunit"; module("Integration | Component | category-nav", function (hooks) { setupRenderingTest(hooks); - setupIntl(hooks, "en"); setupMirage(hooks); test("it renders category nav", async function (assert) { diff --git a/tests/integration/components/category-nav/category-test.js b/tests/integration/components/category-nav/category-test.js index 7c1eeb1b..a77885ec 100644 --- a/tests/integration/components/category-nav/category-test.js +++ b/tests/integration/components/category-nav/category-test.js @@ -1,12 +1,10 @@ import { render } from "@ember/test-helpers"; import { setupRenderingTest } from "dummy/tests/helpers"; import { hbs } from "ember-cli-htmlbars"; -import { setupIntl } from "ember-intl/test-support"; import { module, test } from "qunit"; module("Integration | Component | category-nav/category", function (hooks) { setupRenderingTest(hooks); - setupIntl(hooks, "en"); test("it renders a category", async function (assert) { this.category = { name: "test", color: "#f00", id: 1 }; diff --git a/tests/integration/components/document-delete-button-test.js b/tests/integration/components/document-delete-button-test.js index b89ca195..971975bc 100644 --- a/tests/integration/components/document-delete-button-test.js +++ b/tests/integration/components/document-delete-button-test.js @@ -1,12 +1,10 @@ import { render, click } from "@ember/test-helpers"; import { setupRenderingTest } from "dummy/tests/helpers"; import { hbs } from "ember-cli-htmlbars"; -import { setupIntl } from "ember-intl/test-support"; import { module, test } from "qunit"; module("Integration | Component | document-delete-button", function (hooks) { setupRenderingTest(hooks); - setupIntl(hooks, "en"); test("delete document", async function (assert) { this.document = { diff --git a/tests/integration/components/document-list-item-test.js b/tests/integration/components/document-list-item-test.js index 373a7b20..a320ed4a 100644 --- a/tests/integration/components/document-list-item-test.js +++ b/tests/integration/components/document-list-item-test.js @@ -2,12 +2,10 @@ import { click, render } from "@ember/test-helpers"; import { setupRenderingTest } from "dummy/tests/helpers"; import { hbs } from "ember-cli-htmlbars"; import { setupMirage } from "ember-cli-mirage/test-support"; -import { setupIntl } from "ember-intl/test-support"; import { module, test } from "qunit"; module("Integration | Component | document-list-item", function (hooks) { setupRenderingTest(hooks); - setupIntl(hooks, "en"); setupMirage(hooks); hooks.beforeEach(async function () { diff --git a/tests/integration/components/empty-icon-test.js b/tests/integration/components/empty-icon-test.js index 5e4919eb..bee69bbb 100644 --- a/tests/integration/components/empty-icon-test.js +++ b/tests/integration/components/empty-icon-test.js @@ -1,12 +1,10 @@ import { render } from "@ember/test-helpers"; import { setupRenderingTest } from "dummy/tests/helpers"; import { hbs } from "ember-cli-htmlbars"; -import { setupIntl } from "ember-intl/test-support"; import { module, test } from "qunit"; module("Integration | Component | empty-icon", function (hooks) { setupRenderingTest(hooks); - setupIntl(hooks, "en"); test("it renders", async function (assert) { await render(hbs``); diff --git a/tests/integration/components/single-document-details-test.js b/tests/integration/components/single-document-details-test.js index 5192db01..4e5faf09 100644 --- a/tests/integration/components/single-document-details-test.js +++ b/tests/integration/components/single-document-details-test.js @@ -5,7 +5,6 @@ import { tracked } from "@glimmer/tracking"; import { setupRenderingTest } from "dummy/tests/helpers"; import { hbs } from "ember-cli-htmlbars"; import { setupMirage } from "ember-cli-mirage/test-support"; -import { setupIntl } from "ember-intl/test-support"; import { module, test } from "qunit"; import sinon from "sinon"; @@ -18,7 +17,6 @@ const mockDocumentsService = class DocumentsService extends Service { module("Integration | Component | single-document-details", function (hooks) { setupRenderingTest(hooks); - setupIntl(hooks, "en"); setupMirage(hooks); hooks.beforeEach(function () { diff --git a/tests/unit/serializers/application-test.js b/tests/unit/serializers/application-test.js new file mode 100644 index 00000000..34c4c2ab --- /dev/null +++ b/tests/unit/serializers/application-test.js @@ -0,0 +1,13 @@ +import { setupTest } from "dummy/tests/helpers"; +import { module, test } from "qunit"; + +module("Unit | Serializer | application", function (hooks) { + setupTest(hooks); + + test("it exists", function (assert) { + const store = this.owner.lookup("service:store"); + const serializer = store.serializerFor("application"); + + assert.ok(serializer); + }); +}); diff --git a/tests/unit/services/documents-test.js b/tests/unit/services/documents-test.js index ad859e28..74bb76a7 100644 --- a/tests/unit/services/documents-test.js +++ b/tests/unit/services/documents-test.js @@ -12,11 +12,13 @@ module("Unit | Service | documents", function (hooks) { }); test("it uploads documents", async function (assert) { - const requests = this.server.pretender.handledRequests; - const service = this.owner.lookup("service:documents"); + const store = this.owner.lookup("service:store"); - const category = this.server.create("category"); + const category = await store.findRecord( + "category", + this.server.create("category").id + ); const files = [ new File(["1"], "test1.docx"), new File(["2"], "test2.docx"), @@ -25,6 +27,10 @@ module("Unit | Service | documents", function (hooks) { await service.upload(category, files); + const requests = this.server.pretender.handledRequests.filter( + (request) => !request.url.includes("categories") + ); + // Each file generates three requests. assert.strictEqual(requests.length, files.length * 3); @@ -45,15 +51,21 @@ module("Unit | Service | documents", function (hooks) { }); test("it replaces documents", async function (assert) { - const requests = this.server.pretender.handledRequests; - const service = this.owner.lookup("service:documents"); + const store = this.owner.lookup("service:store"); - const document = this.server.create("document"); + const document = await store.findRecord( + "document", + this.server.create("document").id + ); const file = new File([""], "test.docx"); await service.replace(document, file); + const requests = this.server.pretender.handledRequests.filter( + (request) => !request.url.includes("documents") + ); + assert.strictEqual(requests.length, 2); assert.ok(requests[0].url.endsWith("files")); assert.ok(requests[1].url.endsWith("file-upload")); diff --git a/tests/unit/services/tags-test.js b/tests/unit/services/tags-test.js index 87787449..049afe38 100644 --- a/tests/unit/services/tags-test.js +++ b/tests/unit/services/tags-test.js @@ -36,7 +36,7 @@ module("Unit | Service | tags", function (hooks) { ] ); - assert.ok(document.tags.includes(tag)); + assert.ok((await document.tags).includes(tag)); }); test("it adds new tags", async function (assert) { @@ -64,7 +64,7 @@ module("Unit | Service | tags", function (hooks) { ] ); - assert.ok(document.tags.findBy("name", tag)); + assert.ok((await document.tags).find((t) => t.name === tag)); }); test("it removes tags", async function (assert) { @@ -76,7 +76,7 @@ module("Unit | Service | tags", function (hooks) { await service.fetchAllTags.perform(); const document = await store.createRecord("document").save(); - const tag = document.tags.firstObject; + const tag = (await document.tags)[0]; await service.remove(document, tag); @@ -90,6 +90,6 @@ module("Unit | Service | tags", function (hooks) { ] ); - assert.notOk(document.tags.includes(tag)); + assert.notOk((await document.tags).includes(tag)); }); }); diff --git a/yarn.lock b/yarn.lock index 3475bc3f..b6d180ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -66,6 +66,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA== +"@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + "@babel/core@^7.0.0", "@babel/core@^7.1.6", "@babel/core@^7.12.0", "@babel/core@^7.16.10", "@babel/core@^7.16.7", "@babel/core@^7.21.0", "@babel/core@^7.3.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89" @@ -87,6 +92,27 @@ json5 "^2.2.2" semver "^6.3.0" +"@babel/core@^7.21.4": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" + integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.8" + "@babel/types" "^7.22.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.1" + "@babel/eslint-parser@7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.5.tgz#fa032503b9e2d188e25b1b95d29e8b8431042d78" @@ -106,6 +132,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.22.7", "@babel/generator@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" + integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== + dependencies: + "@babel/types" "^7.22.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -131,6 +167,17 @@ lru-cache "^5.1.1" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" + integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.5" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.5.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" @@ -215,6 +262,17 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-module-transforms@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" + integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -270,6 +328,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-string-parser@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" @@ -304,6 +369,15 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helpers@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" + integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== + dependencies: + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.6" + "@babel/types" "^7.22.5" + "@babel/highlight@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" @@ -318,6 +392,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== +"@babel/parser@^7.22.7": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" @@ -558,7 +637,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.20.5", "@babel/plugin-transform-block-scoping@^7.22.5", "@babel/plugin-transform-block-scoping@^7.8.3": +"@babel/plugin-transform-block-scoping@^7.20.5", "@babel/plugin-transform-block-scoping@^7.21.0", "@babel/plugin-transform-block-scoping@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== @@ -1101,6 +1180,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": + version "7.22.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" + integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.7" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/types" "^7.22.5" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.1.6", "@babel/types@^7.12.13", "@babel/types@^7.22.5", "@babel/types@^7.4.4", "@babel/types@^7.7.2": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" @@ -1311,131 +1406,144 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz#798622546b63847e82389e473fd67f2707d82247" integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g== -"@ember-data/adapter@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.28.13.tgz#3b921365046a329f3eb1c72fc4964c6aff06e53b" - integrity sha512-AwLJTs+GvxX72vfP3edV0hoMLD9oPWJNbnqxakXVN9xGTuk6/TeGQLMrVU3222GCoMMNrJ357Nip7kZeFo4IdA== +"@ember-data/adapter@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-4.12.3.tgz#7e768ad900160552800ff8816a1afcfa80130434" + integrity sha512-8XFAV/J6MbaDC8mQ9omOpbAHJ0ywOlDofEA1P1bgX9hHF0AKzuxosUU/KBtcvLjurFO4G8Ir/L7rus8sgWQRpA== dependencies: - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/store" "3.28.13" - "@ember/edition-utils" "^1.2.0" - "@ember/string" "^3.0.0" - ember-cli-babel "^7.26.6" + "@ember-data/private-build-infra" "4.12.3" + "@embroider/macros" "^1.10.0" + ember-cli-babel "^7.26.11" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^4.1.0" -"@ember-data/canary-features@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.28.13.tgz#59cd75b94bfff86f85affb42e66016c71f45f02e" - integrity sha512-fgpcB0wmtUjZeqcIKkfP/MclQjY5r8ft8YZhPlvQh2MIx+3d3nCNRXB6lEUdRdQphFEag2towONFEIsiOAgs3Q== +"@ember-data/debug@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-4.12.3.tgz#d67293407cb679f539fda597b6956019415a9c03" + integrity sha512-nZ5e5zDpSY8Tcc2shimX7CezgBbDnb7m6/RLgCWWzQpmMz9IoZhs0ZqrfvgObIsiMmYZWJCiXjP3kedSHQe+KA== dependencies: - ember-cli-babel "^7.26.6" - ember-cli-typescript "^4.1.0" + "@ember-data/private-build-infra" "4.12.3" + "@ember/edition-utils" "^1.2.0" + "@embroider/macros" "^1.10.0" + ember-auto-import "^2.6.1" + ember-cli-babel "^7.26.11" -"@ember-data/debug@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.28.13.tgz#eb20779de83429f5d493d3c8e81ced468fa5974d" - integrity sha512-ofny/Grpqx1lM6KWy5q75/b2/B+zQ4B4Ynk7SrQ//sFvpX3gjuP8iN07SKTHSN07vedlC+7QNhNJdCQwyqK1Fg== +"@ember-data/graph@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/graph/-/graph-4.12.3.tgz#e6a814b7ab94a6c57894986d91f7bded145581b2" + integrity sha512-KWKzInXGgrLZ92owzbu12DEVY56+Td+5E49v5apksK0JE6QPt/CEyNHVomJskDz2zS5beEbt5iskEZ2pMXGT5g== dependencies: - "@ember-data/private-build-infra" "3.28.13" + "@ember-data/private-build-infra" "4.12.3" "@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" + "@embroider/macros" "^1.10.0" + ember-cli-babel "^7.26.11" -"@ember-data/model@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.28.13.tgz#50ac1bd5783e7cc51344767d5ff46f84198f4d1a" - integrity sha512-V5Hgzz5grNWTSrKGksY9xeOsTDLN/d3qsVMu26FWWHP5uqyWT0Cd4LSRpNxs14PsTFDcbrtGKaZv3YVksZfFEQ== +"@ember-data/json-api@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/json-api/-/json-api-4.12.3.tgz#1b2177381c0f5bf4df8a90a9a65f107d4157305f" + integrity sha512-b7NI/ykzKm6M2gcYI0deFnkoUarRG9yBworlv9WAZL+Z3+fwV6xS7bfTERt9a102hT1GxIefoYq6tQpHHyZylw== dependencies: - "@ember-data/canary-features" "3.28.13" - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/store" "3.28.13" + "@ember-data/private-build-infra" "4.12.3" "@ember/edition-utils" "^1.2.0" - "@ember/string" "^3.0.0" - ember-cached-decorator-polyfill "^0.1.4" - ember-cli-babel "^7.26.6" + "@embroider/macros" "^1.10.0" + ember-cli-babel "^7.26.11" + +"@ember-data/legacy-compat@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/legacy-compat/-/legacy-compat-4.12.3.tgz#12b9edbed59f74e0af3ce765c17bd8544ea6bef0" + integrity sha512-tPInbZFxlAXxtSC+JCgDeqp47au9gprZ1OZTIDhhoHCerU4OWVXTnd5+yDf21Q58vWwKxJAZuT54xiRgouE4jw== + dependencies: + "@ember-data/private-build-infra" "4.12.3" + "@embroider/macros" "^1.10.0" + ember-cli-babel "^7.26.11" + +"@ember-data/model@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-4.12.3.tgz#15e6bbbd2a2bf35b39d26ef4e5df49ebf0c506bb" + integrity sha512-ygVkv3NT/PweY3/RlN4zjF64Drl2dgcN/OLDnk71CW7OcW0k3Im0f1hXyiPDsHKWYxs05rND/JxuN2kXaDksog== + dependencies: + "@ember-data/private-build-infra" "4.12.3" + "@ember/edition-utils" "^1.2.0" + "@embroider/macros" "^1.10.0" + ember-cached-decorator-polyfill "^1.0.1" + ember-cli-babel "^7.26.11" 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" + inflection "~2.0.1" -"@ember-data/private-build-infra@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.28.13.tgz#828a27e724240b1ef70ae5dd8ab8be1f61275929" - integrity sha512-8gT3/gnmbNgFIMVdHBpl3xFGJefJE26VUIidFHTF1/N1aumVUlEhnXH0BSPxvxTnFXz/klGSTOMs+sDsx3jw6A== +"@ember-data/private-build-infra@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-4.12.3.tgz#08432c7f2717aef3577bc2ba8411506c06d1eaea" + integrity sha512-i2bWz319iIrNdl/BUDXX9a+E/6zP/2mYle6Tk3F0nqiDB3410y61pdRwnuZT1pchM04hcw4TS7Ye2/DmAuoW2g== dependencies: - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@ember-data/canary-features" "3.28.13" + "@babel/core" "^7.21.4" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/runtime" "^7.21.0" "@ember/edition-utils" "^1.2.0" - babel-plugin-debug-macros "^0.3.3" + "@embroider/macros" "^1.10.0" + babel-import-util "^1.3.0" + babel-plugin-debug-macros "^0.3.4" 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 "^3.0.3" + broccoli-funnel "^3.0.8" broccoli-merge-trees "^4.2.0" broccoli-rollup "^5.0.0" calculate-cache-key-for-tree "^2.0.0" - chalk "^4.0.0" - ember-cli-babel "^7.26.6" + chalk "^4.1.2" + ember-cli-babel "^7.26.11" ember-cli-path-utils "^1.0.0" ember-cli-string-utils "^1.1.0" - ember-cli-typescript "^4.1.0" - ember-cli-version-checker "^5.1.1" - esm "^3.2.25" + ember-cli-version-checker "^5.1.2" git-repo-info "^2.1.1" - glob "^7.1.6" + glob "^9.3.4" npm-git-info "^1.0.3" - rimraf "^3.0.2" - rsvp "^4.8.5" - semver "^7.1.3" + semver "^7.3.8" silent-error "^1.1.1" -"@ember-data/record-data@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.28.13.tgz#2bf169404732e126489d3b3a8dc6c0dfca8b5f5f" - integrity sha512-0qYOxQr901eZ0JoYVt/IiszZYuNefqO6yiwKw0VH2dmWhVniQSp+Da9YnoKN9U2KgR4NdxKiUs2j9ZLNZ+bH7g== +"@ember-data/request@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/request/-/request-4.12.3.tgz#698cc1ca341281d8a4ac0cf511ed83a217db9805" + integrity sha512-SRBNsXfgWTNyGCJVpvl1TQjSsXZ8McIM6jojXIGsJeGh3IsSJM5sLoDAA/iwqAltEYD3kcFhJUb2SHpyv+2AxA== dependencies: - "@ember-data/canary-features" "3.28.13" - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/store" "3.28.13" - "@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/private-build-infra" "4.12.3" + "@ember/test-waiters" "^3.0.2" + "@embroider/macros" "^1.10.0" + ember-cli-babel "^7.26.11" "@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" integrity sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ== -"@ember-data/serializer@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.28.13.tgz#6dfa8ba17c0ea192313134643dbe56adf45a722a" - integrity sha512-BlYXi8ObH0B5G7QeWtkf9u8PrhdlfAxOAsOuOPZPCTzWsQlmyzV6M9KvBmIAvJtM2IQ3a5BX2o71eP6/7MJDUg== +"@ember-data/serializer@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-4.12.3.tgz#635af73b2831cdf2965046c8c0d79155117a5e89" + integrity sha512-Zt/4vC+6zDwRX60tYRF+B01W77Vez74SEoTN9Q3jRH2i3LChzosLlea8ElsbuJguTkeprS80F0MboauRIrE+JQ== dependencies: - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/store" "3.28.13" - ember-cli-babel "^7.26.6" + "@ember-data/private-build-infra" "4.12.3" + "@embroider/macros" "^1.10.0" + ember-cli-babel "^7.26.11" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^4.1.0" -"@ember-data/store@3.28.13": - version "3.28.13" - resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.28.13.tgz#be3c3fca03d155767af72422f6a3c6dcd6147be8" - integrity sha512-y1ddWLfR20l3NN9fNfIAFWCmREnC6hjKCZERDgkvBgZOCAKcs+6bVJGyMmKBcsp4W7kanqKn71tX7Y63jp+jXQ== +"@ember-data/store@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-4.12.3.tgz#328862cb40781ae5a4387a8b2d354bc208118d87" + integrity sha512-PtsXffYry9ZHXdaPvJf/+NX8Boe371WLwgiboZ6DI/E2MzAhobO6JT4lvK/YMUJpJ9qtjuFYUli5xVVXlc3Sxg== dependencies: - "@ember-data/canary-features" "3.28.13" - "@ember-data/private-build-infra" "3.28.13" - "@ember/string" "^3.0.0" - "@glimmer/tracking" "^1.0.4" - ember-cached-decorator-polyfill "^0.1.4" - ember-cli-babel "^7.26.6" - ember-cli-path-utils "^1.0.0" - ember-cli-typescript "^4.1.0" + "@ember-data/private-build-infra" "4.12.3" + "@embroider/macros" "^1.10.0" + ember-cached-decorator-polyfill "^1.0.1" + ember-cli-babel "^7.26.11" + +"@ember-data/tracking@4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/@ember-data/tracking/-/tracking-4.12.3.tgz#86fb083893f927ce85016bee1018859161fc30a3" + integrity sha512-wgyjeGJXnwmgXHwFkIqPzBhy0piSwrt4OtwOAVCVVetiHI3M7Cr1soC3FFvsge7X7B2WPcIweFt8lURq5XyniA== + dependencies: + "@ember-data/private-build-infra" "4.12.3" + "@embroider/macros" "^1.10.0" + ember-cli-babel "^7.26.11" "@ember/edition-utils@^1.2.0": version "1.2.0" @@ -1473,7 +1581,7 @@ ember-cli-babel "^7.26.11" ember-modifier-manager-polyfill "^1.2.0" -"@ember/string@3.1.1", "@ember/string@^3.0.0", "@ember/string@^3.0.1": +"@ember/string@3.1.1", "@ember/string@^3.0.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@ember/string/-/string-3.1.1.tgz#0a5ac0d1e4925259e41d5c8d55ef616117d47ff0" integrity sha512-UbXJ+k3QOrYN4SRPHgXCqYIJ+yWWUg1+vr0H4DhdQPTy8LJfyqwZ2tc5uqpSSnEXE+/1KopHBE5J8GDagAg5cg== @@ -1527,6 +1635,20 @@ resolve "^1.20.0" semver "^7.3.2" +"@embroider/macros@^1.8.3": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-1.13.0.tgz#84d46bfcb7a8afbb52048e7bef9c3c7c0ee2d020" + integrity sha512-V89lvlNPIjcvbuew+FLxcCcgdPO0cZrgHHmX6dHO3TpiweC5G6DN4/QogvdnSprPvWOMQS9u3bSFmR7DBkmSgg== + dependencies: + "@embroider/shared-internals" "2.3.0" + assert-never "^1.2.1" + babel-import-util "^2.0.0" + ember-cli-babel "^7.26.6" + find-up "^5.0.0" + lodash "^4.17.21" + resolve "^1.20.0" + semver "^7.3.2" + "@embroider/shared-internals@2.2.3", "@embroider/shared-internals@^2.0.0", "@embroider/shared-internals@^2.1.0": version "2.2.3" resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-2.2.3.tgz#2c7ffaa42066906bfc30c766450c199d9602cdd9" @@ -1541,6 +1663,21 @@ semver "^7.3.5" typescript-memoize "^1.0.1" +"@embroider/shared-internals@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-2.3.0.tgz#97215f6263a4013fbdb3d1e4890cc069f2d9df12" + integrity sha512-5h7hUcci10ixXecJj/peqNQJO8kWe4b4tRx7mZjf7I6+P6zDcdVk3QxQZ+/gwrG6cbEfpLzEGKIEiLjZvPtqIA== + dependencies: + babel-import-util "^2.0.0" + debug "^4.3.2" + ember-rfc176-data "^0.3.17" + fs-extra "^9.1.0" + js-string-escape "^1.0.1" + lodash "^4.17.21" + resolve-package-path "^4.0.1" + semver "^7.3.5" + typescript-memoize "^1.0.1" + "@embroider/shared-internals@^1.0.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-1.8.3.tgz#52d868dc80016e9fe983552c0e516f437bf9b9f9" @@ -3819,6 +3956,16 @@ babel-import-util@^1.1.0, babel-import-util@^1.3.0: resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-1.3.0.tgz#dc9251ea39a7747bd586c1c13b8d785a42797f8e" integrity sha512-PPzUT17eAI18zn6ek1R3sB4Krc/MbnmT1MkZQFmyhjoaEGBVwNABhfVU9+EKcDSKrrOm9OIpGhjxukx1GCiy1g== +babel-import-util@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-1.4.1.tgz#1df6fd679845df45494bac9ca12461d49497fdd4" + integrity sha512-TNdiTQdPhXlx02pzG//UyVPSKE7SNWjY0n4So/ZnjQpWwaM5LvWBLkWa1JKll5u06HNscHD91XZPuwrMg1kadQ== + +babel-import-util@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/babel-import-util/-/babel-import-util-2.0.0.tgz#99a2e7424bcde01898bc61bb19700ff4c74379a3" + integrity sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw== + babel-loader@^8.0.6: version "8.3.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" @@ -3848,7 +3995,7 @@ babel-plugin-debug-macros@^0.2.0: dependencies: semver "^5.3.0" -babel-plugin-debug-macros@^0.3.3, babel-plugin-debug-macros@^0.3.4: +babel-plugin-debug-macros@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.3.4.tgz#22961d0cb851a80654cece807a8b4b73d85c6075" integrity sha512-wfel/vb3pXfwIDZUrkoDrn5FHmlWI96PCJ3UCDv2a86poJ3EQrnArNW5KfHSVJ9IOgxHbo748cQt7sDU+0KCEw== @@ -4845,7 +4992,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.5: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.5, browserslist@^4.21.9: version "4.21.9" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== @@ -6335,6 +6482,18 @@ ember-cached-decorator-polyfill@^0.1.4: ember-cli-babel "^7.21.0" ember-cli-babel-plugin-helpers "^1.1.1" +ember-cached-decorator-polyfill@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ember-cached-decorator-polyfill/-/ember-cached-decorator-polyfill-1.0.2.tgz#26445056ebee3776c340e28652ce59be73dd3958" + integrity sha512-hUX6OYTKltAPAu8vsVZK02BfMTV0OUXrPqvRahYPhgS7D0I6joLjlskd7mhqJMcaXLywqceIy8/s+x8bxF8bpQ== + dependencies: + "@embroider/macros" "^1.8.3" + "@glimmer/tracking" "^1.1.2" + babel-import-util "^1.2.2" + ember-cache-primitive-polyfill "^1.0.1" + ember-cli-babel "^7.26.11" + ember-cli-babel-plugin-helpers "^1.1.1" + ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879" @@ -6799,25 +6958,29 @@ ember-cookies@^0.5.0: ember-cli-babel "^7.1.0" ember-getowner-polyfill "^1.1.0 || ^2.0.0" -ember-data@^3.28.13: - version "3.28.13" - resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.28.13.tgz#68668d84924453c2baeeb0cf7d25f75b2c07e8b9" - integrity sha512-j1YjPl2JNHxQwQW6Bgfis44XSr4WCtdwMXr/SPpLsF1oVeTWIn3kwefcDnbuCI8Spmt1B9ab3ZLKzf2KkGN/7g== - dependencies: - "@ember-data/adapter" "3.28.13" - "@ember-data/debug" "3.28.13" - "@ember-data/model" "3.28.13" - "@ember-data/private-build-infra" "3.28.13" - "@ember-data/record-data" "3.28.13" - "@ember-data/serializer" "3.28.13" - "@ember-data/store" "3.28.13" +"ember-data@^3.28.13 || ^4.12.3": + version "4.12.3" + resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-4.12.3.tgz#9e4b4ac00a552f411cf96702a3076dd568f188c1" + integrity sha512-MCQV6RllCZCkwNAIk0MVFSQa6o1n8w1TipaDomumpR/xY69zm2zQ6guXfhOZfMA7ef5OpVpVcYpUoReFTMvqww== + dependencies: + "@ember-data/adapter" "4.12.3" + "@ember-data/debug" "4.12.3" + "@ember-data/graph" "4.12.3" + "@ember-data/json-api" "4.12.3" + "@ember-data/legacy-compat" "4.12.3" + "@ember-data/model" "4.12.3" + "@ember-data/private-build-infra" "4.12.3" + "@ember-data/request" "4.12.3" + "@ember-data/serializer" "4.12.3" + "@ember-data/store" "4.12.3" + "@ember-data/tracking" "4.12.3" "@ember/edition-utils" "^1.2.0" - "@ember/string" "^3.0.0" + "@embroider/macros" "^1.10.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-auto-import "^2.6.1" + ember-cli-babel "^7.26.11" + ember-inflector "^4.0.2" ember-destroyable-polyfill@^2.0.2, ember-destroyable-polyfill@^2.0.3: version "2.0.3" @@ -6927,7 +7090,7 @@ ember-get-config@^2.0.0: ember-cli-version-checker "^2.1.0" ember-factory-for-polyfill "^1.3.1" -"ember-inflector@^2.0.0 || ^3.0.0 || ^4.0.2", ember-inflector@^4.0.1: +"ember-inflector@^2.0.0 || ^3.0.0 || ^4.0.2", ember-inflector@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/ember-inflector/-/ember-inflector-4.0.2.tgz#4494f1a5f61c1aca7702d59d54024cc92211d8ec" integrity sha512-+oRstEa52mm0jAFzhr51/xtEWpCEykB3SEBr7vUg8YnXUZJ5hKNBppP938q8Zzr9XfJEbzrtDSGjhKwJCJv6FQ== @@ -7705,7 +7868,7 @@ eslint@8.45.0: strip-ansi "^6.0.1" text-table "^0.2.0" -esm@^3.2.25, esm@^3.2.4: +esm@^3.2.4: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== @@ -8837,6 +9000,16 @@ glob@^8.1.0: minimatch "^5.0.1" once "^1.3.0" +glob@^9.3.4: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" @@ -9454,12 +9627,12 @@ inflected@^2.0.4: resolved "https://registry.yarnpkg.com/inflected/-/inflected-2.1.0.tgz#2816ac17a570bbbc8303ca05bca8bf9b3f959687" integrity sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w== -inflection@^1.13.2, inflection@~1.13.1: +inflection@^1.13.2: version "1.13.4" resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.4.tgz#65aa696c4e2da6225b148d7a154c449366633a32" integrity sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw== -inflection@^2.0.1: +inflection@^2.0.1, inflection@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inflection/-/inflection-2.0.1.tgz#bdf3a4c05d4275f41234910cbbe9a102ac72c99b" integrity sha512-wzkZHqpb4eGrOKBl34xy3umnYHx8Si5R1U4fwmdxLo5gdH6mEK8gclckTj/qWqy4Je0bsDYe/qazZYuO7xe3XQ== @@ -10995,6 +11168,11 @@ lru-cache@^9.1.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.2.tgz#255fdbc14b75589d6d0e73644ca167a8db506835" integrity sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ== +"lru-cache@^9.1.1 || ^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" + integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== + magic-string@^0.24.0: version "0.24.1" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.24.1.tgz#7e38e5f126cae9f15e71f0cf8e450818ca7d5a8f" @@ -11390,6 +11568,13 @@ minimatch@^7.4.1: dependencies: brace-expansion "^2.0.1" +minimatch@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== + dependencies: + brace-expansion "^2.0.1" + minimatch@^9.0.0, minimatch@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" @@ -11478,6 +11663,11 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + minipass@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" @@ -11488,6 +11678,11 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.2.tgz#58a82b7d81c7010da5bd4b2c0c85ac4b4ec5131e" + integrity sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA== + minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -12651,6 +12846,14 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-scurry@^1.6.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry@^1.7.0: version "1.9.2" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" @@ -13938,12 +14141,12 @@ semver@7.5.0: dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3: +semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==