{props.canCreateNew ? (
-
+
{
+ window.alert("You created " + newOption.label);
+ }}
+ >
) : (
)}
diff --git a/src/components/Notes.tsx b/src/components/Notes.tsx
index 5c337df7..461d242a 100644
--- a/src/components/Notes.tsx
+++ b/src/components/Notes.tsx
@@ -5,7 +5,7 @@ import { TextFieldEdit } from "./TextFieldEdit";
import { InfoIndicator } from "./FieldIndicators";
import { css } from "@emotion/react";
import { Trans, t } from "@lingui/macro";
-import { Project } from "../model/Project/Project";
+import { GetOtherConfigurationSettings } from "../model/Project/OtherConfigurationSettings";
export const Notes: React.FunctionComponent<{
field: Field;
@@ -19,7 +19,7 @@ export const Notes: React.FunctionComponent<{
overflow: auto;
`}
>
- {Project.OtherConfigurationSettings.showImdiPreview && (
+ {GetOtherConfigurationSettings().showImdiPreview && (
= (props) => {
+ const [xml, setXml] = React.useState("");
+
+ React.useEffect(() => {
+ if (props.target instanceof Project) {
+ setXml(props.project.metadataFile?.getXml(false) || "");
+ }
+ }, [props.target, props.project, props.folder]);
+
+ return (
+
+
+ {xml}
+
+
+ );
+};
diff --git a/src/components/project/ProjectTab.tsx b/src/components/project/ProjectTab.tsx
index dd1751a6..dd6b4197 100644
--- a/src/components/project/ProjectTab.tsx
+++ b/src/components/project/ProjectTab.tsx
@@ -10,10 +10,13 @@ import { AuthorityLists } from "../../model/Project/AuthorityLists/AuthorityList
import { ArchiveConfigurationForm } from "./ArchiveConfigurationForm";
import { ImdiView } from "../ImdiView";
import "./ProjectTab.scss";
-import { ParadisecView } from "../ParadisecView";
+import userSettings from "../../other/UserSettings";
import { ThemeProvider } from "@mui/material";
import { useState } from "react";
import { createProjectTheme } from "../../containers/theme";
+import { ParadisecView } from "../ParadisecView";
+import { LametaXmlView } from "../lametaXmlView";
+import { GetOtherConfigurationSettings } from "../../model/Project/OtherConfigurationSettings";
interface IProps {
project: Project;
@@ -71,20 +74,27 @@ export const ProjectTab: React.FunctionComponent = observer((props) => {
Other Documents
- {Project.OtherConfigurationSettings.showImdiPreview ? (
+ {GetOtherConfigurationSettings().showImdiPreview ? (
IMDI {/* don't translate */}
) : (
<>>
)}
- {Project.OtherConfigurationSettings.showParadisec ? (
+ {GetOtherConfigurationSettings().showParadisec ? (
PARADISEC {/* don't translate */}
) : (
<>>
)}
+ {userSettings.DeveloperMode ? (
+
+ LaMeta {/* don't translate */}
+
+ ) : (
+ <>>
+ )}
= observer((props) => {
- {Project.OtherConfigurationSettings.showImdiPreview ? (
+ {GetOtherConfigurationSettings().showImdiPreview ? (
= observer((props) => {
) : (
<>>
)}
- {Project.OtherConfigurationSettings.showParadisec ? (
+ {GetOtherConfigurationSettings().showParadisec ? (
= observer((props) => {
) : (
<>>
)}
+ {/* if in developer mode, show LametaXmlView */}
+ {userSettings.DeveloperMode ? (
+
+
+
+ ) : (
+ <>>
+ )}
);
diff --git a/src/export/ImdiBundler.ts b/src/export/ImdiBundler.ts
index c7bc3382..21b3b727 100644
--- a/src/export/ImdiBundler.ts
+++ b/src/export/ImdiBundler.ts
@@ -157,7 +157,7 @@ export default class ImdiBundler {
imdiMode === IMDIMode.OPEX
? Path.basename(session.directory)
: "", // with opex, the metadata file goes into the folder it describes. Else, on the level above.
- sanitizeForArchive(imdiFileName, true)
+ sanitizeForArchive(imdiFileName, "ASCII")
),
sessionImdi
);
@@ -234,7 +234,7 @@ export default class ImdiBundler {
// that renames that change the link name are used.
sanitizeForArchive(
f.getNameToUseWhenExportingUsingTheActualFile(),
- true
+ "ASCII"
)
),
(progressMessage) => {}
@@ -327,7 +327,7 @@ export default class ImdiBundler {
fs.writeFileSync(
Path.join(
directoryForMetadataXmlFile,
- sanitizeForArchive(imdiFileName, true)
+ sanitizeForArchive(imdiFileName, "ASCII")
),
imdiXml
);
diff --git a/src/export/corpusImdi.spec.ts b/src/export/ImdiGenerator-corpus-corpusLink.spec.ts
similarity index 100%
rename from src/export/corpusImdi.spec.ts
rename to src/export/ImdiGenerator-corpus-corpusLink.spec.ts
diff --git a/src/export/ImdiGenerator-corpus-metadata.spec.ts b/src/export/ImdiGenerator-corpus-metadata.spec.ts
new file mode 100644
index 00000000..0ecd1364
--- /dev/null
+++ b/src/export/ImdiGenerator-corpus-metadata.spec.ts
@@ -0,0 +1,67 @@
+import ImdiGenerator, { IMDIMode } from "./ImdiGenerator";
+import { Project } from "../model/Project/Project";
+import {
+ setResultXml,
+ xexpect as expect,
+ count,
+ value,
+ xexpect
+} from "../other/xmlUnitTestUtils";
+import temp from "temp";
+import * as fs from "fs-extra";
+import assert from "assert";
+import {
+ describe,
+ it,
+ vi,
+ beforeAll,
+ afterAll,
+ test,
+ afterEach,
+ beforeEach
+} from "vitest";
+import { GetProjectFileWithOneField } from "../model/Project/WriteProject.spec";
+
+temp.track(); // cleanup on exit: doesn't work
+
+let project: Project;
+let projectDir: string;
+
+describe("Imdi generation for images", () => {
+ beforeEach(() => {
+ projectDir = temp.mkdirSync("lameta imdi actor generator test");
+ project = Project.fromDirectory(projectDir);
+ });
+
+ afterEach(() => {
+ fs.emptyDirSync(projectDir);
+ fs.removeSync(projectDir);
+ });
+
+ test("fundingProjectTitle goes to the right place", () => {
+ // NB: in ELAR, at least, this will appear as "Collection Title"
+ project.properties.setText("fundingProjectTitle", "my title");
+ project.properties.setText("projectDescription", "my description");
+ project.properties.setText("collectionSteward", "my steward");
+ const x = ImdiGenerator.generateCorpus(
+ IMDIMode.RAW_IMDI,
+ project,
+ [],
+ true
+ );
+
+ setResultXml(x);
+
+ // From Hanna: Collection Title = Corpus/Title
+ // From Hanna: Collection Key = Corpus/MDGroup/Keys/Key[@Name='CorpusId']
+ // The ELAR fields.json renames the label for fundingProjectTitle to "Collection Title"
+ expect("//Corpus/Title").toMatch("my title");
+
+ // From Hanna: Collection Description= Corpus/Description[@Name='short_description']
+ // The ELAR fields.json renames the label for projectDescription to "Collection Description"
+ expect('//Corpus/Description[@Name="short_description"]').toMatch(
+ "my description"
+ );
+ // From Hanna: Collection Steward = Corpus/MDGroup/Actors/Actor[@Role='Collection Steward']
+ });
+});
diff --git a/src/export/ImdiGenerator.ts b/src/export/ImdiGenerator.ts
index 005dbbd6..7fae9b06 100644
--- a/src/export/ImdiGenerator.ts
+++ b/src/export/ImdiGenerator.ts
@@ -115,7 +115,7 @@ export default class ImdiGenerator {
}
return this.makeString();
}
- private projectXmlForPreview(): string {
+ public projectXmlForPreview(): string {
this.tail = XmlBuilder.create("Project");
this.addProjectInfo();
return this.makeString();
@@ -595,7 +595,7 @@ export default class ImdiGenerator {
// files as they get copied to the export, regardless of that setting. This is because this is a *requirement* of
// IMDI archives. Anyhow, since the bundler would have (or will have) export the sanitized version, we need to do
// that to the file name we use for it in the xml.
- const filename = sanitizeForArchive(Path.basename(path), true);
+ const filename = sanitizeForArchive(Path.basename(path), "ASCII");
const immediateParentDirectoryName = Path.basename(Path.dirname(path));
const relativePath = Path.join(immediateParentDirectoryName, filename)
diff --git a/src/model/Project/OtherConfigurationSettings.ts b/src/model/Project/OtherConfigurationSettings.ts
new file mode 100644
index 00000000..725d02bd
--- /dev/null
+++ b/src/model/Project/OtherConfigurationSettings.ts
@@ -0,0 +1,30 @@
+export type OtherConfigurationSettings = {
+ configurationFullName: string;
+ showImdiPreview: boolean;
+ showParadisec: boolean;
+ fileNameRules: "ASCII" | "unicode";
+};
+
+let otherConfigurationSettings: OtherConfigurationSettings = {
+ configurationFullName: "",
+ showImdiPreview: false,
+ showParadisec: false,
+ fileNameRules: "ASCII"
+};
+
+export function SetOtherConfigurationSettings(
+ settings: OtherConfigurationSettings
+) {
+ otherConfigurationSettings = settings;
+}
+export function GetOtherConfigurationSettings(): OtherConfigurationSettings {
+ return otherConfigurationSettings;
+}
+export function resetOtherConfigurationSettings() {
+ otherConfigurationSettings = {
+ showImdiPreview: false,
+ showParadisec: false,
+ configurationFullName: "",
+ fileNameRules: "ASCII"
+ };
+}
diff --git a/src/model/Project/Person/Person.ts b/src/model/Project/Person/Person.ts
index a47cbf9d..c6521257 100644
--- a/src/model/Project/Person/Person.ts
+++ b/src/model/Project/Person/Person.ts
@@ -17,7 +17,6 @@ import {
} from "./PersonMigration";
import xmlbuilder from "xmlbuilder";
import { makeObservable, observable } from "mobx";
-import { Project } from "../Project";
export type idChangeHandler = (oldId: string, newId: string) => void;
export const maxOtherLanguages = 10;
diff --git a/src/model/Project/Project.ts b/src/model/Project/Project.ts
index b987af08..d8e35020 100644
--- a/src/model/Project/Project.ts
+++ b/src/model/Project/Project.ts
@@ -43,6 +43,10 @@ import { setCurrentProjectId } from "./MediaFolderAccess";
import { CapitalCase } from "../../other/case";
import { IChoice } from "../field/Field";
import { locateDependencyForFilesystemCall } from "../../other/locateDependency";
+import {
+ GetOtherConfigurationSettings,
+ SetOtherConfigurationSettings
+} from "./OtherConfigurationSettings";
let sCurrentProject: Project | null = null;
@@ -72,12 +76,7 @@ export class ProjectHolder {
sCurrentProject = p;
}
}
-type OtherConfigurationSettings = {
- configurationFullName: string;
- showImdiPreview: boolean;
- showParadisec: boolean;
- fileNameRules: "ASCII" | "unicode";
-};
+
export class Project extends Folder {
public loadingError: string;
@@ -93,28 +92,10 @@ export class Project extends Folder {
public authorityLists: AuthorityLists;
public languageFinder: LanguageFinder;
- public otherConfigurationSettings: OtherConfigurationSettings = {
- configurationFullName: "",
- showImdiPreview: false,
- showParadisec: false,
- fileNameRules: "ASCII"
- };
-
public get folderType(): IFolderType {
return "project";
}
- public static get OtherConfigurationSettings(): OtherConfigurationSettings {
- return sCurrentProject === null
- ? {
- showImdiPreview: false,
- showParadisec: false,
- configurationFullName: "",
- fileNameRules: "ASCII"
- }
- : sCurrentProject.otherConfigurationSettings;
- }
-
public static getDefaultContentLanguageCode() {
const codeAndName =
sCurrentProject === null
@@ -157,8 +138,9 @@ export class Project extends Folder {
return this[folderType + "s"];
}
public migrateFromPreviousVersions(): void {
- //nothing to do, yet
+ // nothing here but see migrate() on ProjectMetadataFile
}
+
public findFolderById(
folderType: IFolderType,
id: string
@@ -961,8 +943,8 @@ export class Project extends Folder {
const factoryPath = locateDependencyForFilesystemCall(
`archive-configurations/lameta/settings.json5`
);
- this.otherConfigurationSettings = JSON5.parse(
- fs.readFileSync(factoryPath, "utf8")
+ SetOtherConfigurationSettings(
+ JSON5.parse(fs.readFileSync(factoryPath, "utf8"))
);
// now see if there are any settings in the confuration that
@@ -987,10 +969,10 @@ export class Project extends Folder {
}
// read in these settings and merge them with the defaults
const settings = JSON5.parse(fs.readFileSync(path, "utf8"));
- this.otherConfigurationSettings = {
- ...this.otherConfigurationSettings,
+ SetOtherConfigurationSettings({
+ ...GetOtherConfigurationSettings(),
...settings
- };
+ });
}
}
@@ -1030,7 +1012,7 @@ export class ProjectMetadataFile extends FolderMetadataFile {
// the fields.json5 sets the default to "unknown"
if (
archiveConfigurationName.length === 0 ||
- archiveConfigurationName === "unknown"
+ archiveConfigurationName === "default"
) {
const archiveProtocol =
this.properties.getTextStringOrEmpty("AccessProtocol");
@@ -1040,6 +1022,35 @@ export class ProjectMetadataFile extends FolderMetadataFile {
this.properties.removeProperty("AccessProtocol");
}
}
+
+ // Before lameta 3, we could store a single language for the vernacular. If we
+ // find a file using that but no modern collectionSubjectLanguage, collectionSubjectLanguage
+ // should be loaded with the value from vernacularIso3CodeAndName.
+ // If instead we do have a non-empty collectionSubjectLanguage, then we should set
+ // vernacularIso3CodeAndName to the first item in it.
+ this.migrateLanguageFields(
+ "vernacularIso3CodeAndName",
+ "collectionSubjectLanguages"
+ );
+ // same for the anlysis language
+ this.migrateLanguageFields(
+ "analysisIso3CodeAndName",
+ "collectionWorkingLanguages"
+ );
+ }
+
+ private migrateLanguageFields(legacySingle: string, modernMultiple: string) {
+ if (this.properties.getTextStringOrEmpty(modernMultiple).length === 0) {
+ this.properties.setText(
+ modernMultiple,
+ this.properties.getTextStringOrEmpty(legacySingle)
+ );
+ } else {
+ const parts = this.properties
+ .getTextStringOrEmpty(modernMultiple)
+ .split(";");
+ this.properties.setText(legacySingle, parts[0] || "");
+ }
}
// peek into the xml to get the configuration we're supposed to be using
diff --git a/src/model/Project/ReadProject.spec.ts b/src/model/Project/ReadProject.spec.ts
index 54ffd5d8..a9fd0cbb 100644
--- a/src/model/Project/ReadProject.spec.ts
+++ b/src/model/Project/ReadProject.spec.ts
@@ -35,6 +35,45 @@ describe("Project Read", () => {
"dde: Doondo"
);
});
+
+ // Before lameta 3, we could store a single language for the vernacular. If we
+ // find a file using that but no modern collectionSubjectLanguage, collectionSubjectLanguage
+ // should be loaded with the value from vernacularIso3CodeAndName.
+ it("should load vernacularIso3CodeAndName into collectionSubjectLanguage if missing or empty", () => {
+ const f = GetProjectFileWithOneField(
+ "VernacularISO3CodeAndName",
+ "abc:Abracadabra"
+ );
+ expect(
+ f.properties.getTextStringOrEmpty("collectionSubjectLanguages")
+ ).toBe("abc:Abracadabra");
+ // do same for AnaylsisISO3CodeAndName and collectionWorkingLanguages
+ const f2 = GetProjectFileWithOneField(
+ "AnalysisISO3CodeAndName",
+ "abc:Abracadabra"
+ );
+ expect(
+ f2.properties.getTextStringOrEmpty("collectionWorkingLanguages")
+ ).toBe("abc:Abracadabra");
+ });
+ it("fill legacy language fields from modern collectionLanguages", () => {
+ const f = GetProjectFileWithOneField(
+ "CollectionSubjectLanguages",
+ "foo:FooBar;abc:Abracadabra"
+ );
+ expect(f.properties.getTextStringOrEmpty("vernacularIso3CodeAndName")).toBe(
+ "foo:FooBar"
+ );
+ // do same for AnaylsisISO3CodeAndName and collectionWorkingLanguages
+ const f2 = GetProjectFileWithOneField(
+ "CollectionWorkingLanguages",
+ "foo:FooBar;aby:Abracadabra"
+ );
+ expect(f2.properties.getTextStringOrEmpty("analysisIso3CodeAndName")).toBe(
+ "foo:FooBar"
+ );
+ });
+
it("should read archiveConfigurationName", () => {
const f = GetProjectFileWithOneField("ArchiveConfigurationName", "ELAR");
expect(f.properties.getTextStringOrEmpty("archiveConfigurationName")).toBe(
@@ -50,7 +89,7 @@ describe("Project Read", () => {
it("archiveConfigurationName should be 'unknown' if missing configurationName & accessProtocol", () => {
const f = GetProjectFileWithOneField("Foo", "bar");
expect(f.properties.getTextStringOrEmpty("archiveConfigurationName")).toBe(
- "unknown"
+ "default"
);
});
it("should read AnalysisISO3CodeAndName", () => {
diff --git a/src/model/Project/Session/ReadSession.spec.ts b/src/model/Project/Session/ReadSession.spec.ts
index 6121f8c4..3768cb02 100644
--- a/src/model/Project/Session/ReadSession.spec.ts
+++ b/src/model/Project/Session/ReadSession.spec.ts
@@ -1,3 +1,4 @@
+import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { SessionMetadataFile } from "./Session";
import * as temp from "temp";
import fs from "fs";
diff --git a/src/model/Project/WriteProject.spec.ts b/src/model/Project/WriteProject.spec.ts
index be348306..ee7790d7 100644
--- a/src/model/Project/WriteProject.spec.ts
+++ b/src/model/Project/WriteProject.spec.ts
@@ -4,6 +4,12 @@ import fs from "fs";
import Path from "path";
import { EncounteredVocabularyRegistry } from "./EncounteredVocabularyRegistry";
import { describe, expect, it, beforeEach, afterEach } from "vitest";
+import {
+ setResultXml,
+ xexpect,
+ count,
+ value
+} from "../../other/xmlUnitTestUtils";
let projectDirectory;
let projectName;
@@ -51,6 +57,25 @@ describe("Project Write", () => {
)
).toBeGreaterThan(-1);
});
+ it("should write languages", () => {
+ const f = GetProjectFileWithOneField("unused", "x");
+ f.properties.setText("collectionSubjectLanguages", "ab;cd;ef");
+ f.properties.setText("collectionWorkingLanguages", "gh;ij");
+ setResultXml(f.getXml());
+ xexpect("Project/CollectionSubjectLanguages").toHaveCount(1);
+ xexpect(
+ "Project/CollectionSubjectLanguages[text()='ab;cd;ef']"
+ ).toHaveCount(1);
+ xexpect("Project/CollectionWorkingLanguages").toHaveCount(1);
+ xexpect("Project/CollectionWorkingLanguages[text()='gh;ij']").toHaveCount(
+ 1
+ );
+ // and these we output for backwards compatibility
+ xexpect("Project/VernacularISO3CodeAndName").toHaveCount(1);
+ xexpect("Project/VernacularISO3CodeAndName[text()='ab']").toHaveCount(1);
+ xexpect("Project/AnalysisISO3CodeAndName").toHaveCount(1);
+ xexpect("Project/AnalysisISO3CodeAndName[text()='gh']").toHaveCount(1);
+ });
});
function AttemptRoundTripOfOneField(
@@ -83,7 +108,7 @@ function AttemptRoundTripOfOneField(
}
}
-function GetProjectFileWithOneField(
+export function GetProjectFileWithOneField(
tag: string,
content: string
): ProjectMetadataFile {
diff --git a/src/model/field/ConfiguredFieldDefinitions.spec.ts b/src/model/field/ConfiguredFieldDefinitions.spec.ts
index 68cef95a..56fe2457 100644
--- a/src/model/field/ConfiguredFieldDefinitions.spec.ts
+++ b/src/model/field/ConfiguredFieldDefinitions.spec.ts
@@ -19,7 +19,7 @@ describe("computeMergedCatalog", () => {
{ key: "region", show: "never" }
]
};
- const mergedCatalog = computeMergedCatalog(ourCatalog);
+ const { mergedCatalog } = computeMergedCatalog(ourCatalog);
expect(mergedCatalog.project.find((f) => f.key == "title")).toEqual({
key: "title",
englishLabel: "Project ID", // changed to Project ID at ELAR request Dec 2019
diff --git a/src/model/file/File.spec.ts b/src/model/file/File.spec.ts
index dca12ec7..35134ee1 100644
--- a/src/model/file/File.spec.ts
+++ b/src/model/file/File.spec.ts
@@ -1,4 +1,3 @@
-import { beforeEach, afterEach, describe, it } from "vitest";
import { OtherFile } from "./File";
import * as fs from "fs-extra";
import * as Path from "path";
@@ -156,6 +155,11 @@ describe("FolderMetadataFile", () => {
expect(newXml).toBe(originalXml);
});
it("can roundtrip sample project file", () => {
+ // TODO: this is broken because we are migrating from single language to multiple project languages.
+ // How to make a reasonable test? Maybe get
+ // all the properties of the original and then verify
+ // that after writing and reading back in, they are the same?
+
const originalPath = "./sample data/Edolo sample/Edolo sample.sprj";
const originalXml: string = fs.readFileSync(originalPath, "utf8");
const newDir = Path.join(temp.dir, "Edolo sample");
diff --git a/src/model/file/GetSayMoreXml.ts b/src/model/file/GetSayMoreXml.ts
index fdd54125..1a1cbd52 100644
--- a/src/model/file/GetSayMoreXml.ts
+++ b/src/model/file/GetSayMoreXml.ts
@@ -80,7 +80,7 @@ export default function getSayMoreXml(
throw error;
}
}
-//function writeElementsWeDontUnderstand() {}
+
function writeSimplePropertyElements(
root: xmlbuilder.XMLElementOrXMLNode,
properties: Field[],
@@ -103,7 +103,23 @@ function writeSimplePropertyElements(
doOutputTypeInXmlTags,
false,
"AccessProtocol",
- "lameta 3 and following prefer ArchiveConfigurationName, this is written for compatibility with SayMore and older versions of lameta"
+ "lameta 3 and following use as that matches what we're actually doing with it now. We still emit for compatibility with SayMore and older versions of lameta"
+ );
+ }
+ if (field.key === "collectionSubjectLanguages") {
+ writeLanguageFieldForBackwardsCompat(
+ root,
+ field,
+ "VernacularISO3CodeAndName",
+ "lameta 3 and following use to store multiple languages. We still emit the first language as for compatibility with SayMore and older versions of lameta"
+ );
+ }
+ if (field.key === "collectionWorkingLanguages") {
+ writeLanguageFieldForBackwardsCompat(
+ root,
+ field,
+ "AnalysisISO3CodeAndName",
+ "lameta 3 and following use to store multiple languages. We still emit the first language as for compatibility with SayMore and older versions of lameta"
);
}
});
@@ -180,6 +196,30 @@ function writeContributions(
});
}
+function writeLanguageFieldForBackwardsCompat(
+ root: xmlbuilder.XMLElementOrXMLNode,
+ field: Field,
+ overrideTag?: string,
+ comment?: string
+) {
+ const { type, value } = field.typeAndValueEscapedForXml();
+
+ // SayMore Windows, at least through version 3.3, has inconsistent capitalization...
+ // for now we just use those same tags when writing so that the file can be opened in that SM
+ const tag =
+ overrideTag ||
+ (field.definition && field.definition.xmlTag
+ ? field.definition.xmlTag
+ : field.key);
+
+ if (comment) {
+ root.comment(comment);
+ }
+ const attributes: any = {};
+
+ root.element(tag, attributes, value.split(";")[0] || "").up();
+}
+
function writeField(
root: xmlbuilder.XMLElementOrXMLNode,
field: Field,
diff --git a/src/other/sanitizeForArchive.spec.ts b/src/other/sanitizeForArchive.spec.ts
index b16cab7b..0a35d893 100644
--- a/src/other/sanitizeForArchive.spec.ts
+++ b/src/other/sanitizeForArchive.spec.ts
@@ -3,11 +3,11 @@ import { describe, it, expect } from "vitest";
describe("SanitizeForArchive", () => {
it("in IMDI mode, it replaces ! with underscores", () => {
- const name = sanitizeForArchive("foo!bar!bas", true);
+ const name = sanitizeForArchive("foo!bar!bas", "ASCII");
expect(name).toBe("foo_bar_bas");
});
it("in IMDI mode, it doesn't leave trailing underscores", () => {
- const name = sanitizeForArchive("foo!", true);
+ const name = sanitizeForArchive("foo!", "ASCII");
expect(name).toBe("foo");
});
});
diff --git a/src/other/sanitizeForArchive.ts b/src/other/sanitizeForArchive.ts
index 48983baf..44dc4f13 100644
--- a/src/other/sanitizeForArchive.ts
+++ b/src/other/sanitizeForArchive.ts
@@ -1,11 +1,11 @@
-import { Project } from "../model/Project/Project";
+import { GetOtherConfigurationSettings } from "../model/Project/OtherConfigurationSettings";
const sanitizeFilename = require("sanitize-filename");
const ASCIIFolder = require("fold-to-ascii");
-export function sanitizeForArchive(name: string): string {
+export function sanitizeForArchive(name: string, forceRules?: "ASCII"): string {
let n = name;
- switch (Project.OtherConfigurationSettings.fileNameRules) {
+ switch (forceRules || GetOtherConfigurationSettings().fileNameRules) {
case "ASCII": {
// first, get to ascii only
n = ASCIIFolder.foldReplacing(n, "X");
@@ -19,14 +19,14 @@ export function sanitizeForArchive(name: string): string {
n = n.replace(regex, "_");
break;
}
- case "unicode": {
+ case "unicode":
// nothing more to do?
break;
- }
+
default:
throw new Error(
"Unknown fileNameRules: " +
- Project.OtherConfigurationSettings.fileNameRules
+ GetOtherConfigurationSettings().fileNameRules
);
}
// finally, make sure it is safe for filesystems
diff --git a/src/other/xmlUnitTestUtils.ts b/src/other/xmlUnitTestUtils.ts
index 57d638d9..28e1bc2f 100644
--- a/src/other/xmlUnitTestUtils.ts
+++ b/src/other/xmlUnitTestUtils.ts
@@ -147,7 +147,7 @@ expect.extend({
toHaveCount(xpath, expectedValue) {
const matchCount = select(xpath).length;
if (matchCount !== expectedValue) {
- // console.log(resultXml);
+ console.log(resultXml);
return {
message: () =>
`expected ${xpath} to have ${expectedValue} matches, but got ${matchCount}`,
diff --git a/yarn.lock b/yarn.lock
index 2a6b68e1..034b91db 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1535,116 +1535,231 @@
resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f"
integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==
+"@esbuild/aix-ppc64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537"
+ integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==
+
"@esbuild/android-arm64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4"
integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==
+"@esbuild/android-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9"
+ integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==
+
"@esbuild/android-arm@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824"
integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==
+"@esbuild/android-arm@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995"
+ integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==
+
"@esbuild/android-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d"
integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==
+"@esbuild/android-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98"
+ integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==
+
"@esbuild/darwin-arm64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e"
integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==
+"@esbuild/darwin-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb"
+ integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==
+
"@esbuild/darwin-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd"
integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==
+"@esbuild/darwin-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0"
+ integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==
+
"@esbuild/freebsd-arm64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487"
integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==
+"@esbuild/freebsd-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911"
+ integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==
+
"@esbuild/freebsd-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c"
integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==
+"@esbuild/freebsd-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c"
+ integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==
+
"@esbuild/linux-arm64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b"
integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==
+"@esbuild/linux-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5"
+ integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==
+
"@esbuild/linux-arm@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef"
integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==
+"@esbuild/linux-arm@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c"
+ integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==
+
"@esbuild/linux-ia32@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601"
integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==
+"@esbuild/linux-ia32@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa"
+ integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==
+
"@esbuild/linux-loong64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299"
integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==
+"@esbuild/linux-loong64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5"
+ integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==
+
"@esbuild/linux-mips64el@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec"
integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==
+"@esbuild/linux-mips64el@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa"
+ integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==
+
"@esbuild/linux-ppc64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8"
integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==
+"@esbuild/linux-ppc64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20"
+ integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==
+
"@esbuild/linux-riscv64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf"
integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==
+"@esbuild/linux-riscv64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300"
+ integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==
+
"@esbuild/linux-s390x@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8"
integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==
+"@esbuild/linux-s390x@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685"
+ integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==
+
"@esbuild/linux-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78"
integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==
+"@esbuild/linux-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff"
+ integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==
+
"@esbuild/netbsd-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b"
integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==
+"@esbuild/netbsd-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6"
+ integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==
+
"@esbuild/openbsd-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0"
integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==
+"@esbuild/openbsd-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf"
+ integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==
+
"@esbuild/sunos-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30"
integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==
+"@esbuild/sunos-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f"
+ integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==
+
"@esbuild/win32-arm64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae"
integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==
+"@esbuild/win32-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90"
+ integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==
+
"@esbuild/win32-ia32@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67"
integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==
+"@esbuild/win32-ia32@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23"
+ integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==
+
"@esbuild/win32-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae"
integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==
+"@esbuild/win32-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc"
+ integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==
+
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
@@ -2239,66 +2354,146 @@
estree-walker "^2.0.2"
picomatch "^2.3.1"
+"@rollup/rollup-android-arm-eabi@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.2.tgz#29b7b3c70ddf532fe6dcf859cbfc3e4714c34842"
+ integrity sha512-VGodkwtEuZ+ENPz/CpDSl091koMv8ao5jHVMbG1vNK+sbx/48/wVzP84M5xSfDAC69mAKKoEkSo+ym9bXYRK9w==
+
"@rollup/rollup-android-arm-eabi@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496"
integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==
+"@rollup/rollup-android-arm64@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.2.tgz#f50f65d0c3b8b30d070d8616b2dfc0978dd588bd"
+ integrity sha512-5/W1xyIdc7jw6c/f1KEtg1vYDBWnWCsLiipK41NiaWGLG93eH2edgE6EgQJ3AGiPERhiOLUqlDSfjRK08C9xFg==
+
"@rollup/rollup-android-arm64@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d"
integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==
+"@rollup/rollup-darwin-arm64@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.2.tgz#be3d9fffbf6fc5b9d5f0642f1f0250e0ecab8d3e"
+ integrity sha512-vOAKMqZSTbPfyPVu1jBiy+YniIQd3MG7LUnqV0dA6Q5tyhdqYtxacTHP1+S/ksKl6qCtMG1qQ0grcIgk/19JEA==
+
"@rollup/rollup-darwin-arm64@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90"
integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==
+"@rollup/rollup-darwin-x64@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.2.tgz#fe45a772526b2c03d545e20f97a1e5cd60a46e52"
+ integrity sha512-aIJVRUS3Dnj6MqocBMrcXlatKm64O3ITeQAdAxVSE9swyhNyV1dwnRgw7IGKIkDQofatd8UqMSyUxuFEa42EcA==
+
"@rollup/rollup-darwin-x64@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274"
integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==
+"@rollup/rollup-linux-arm-gnueabihf@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.2.tgz#450ecf66f30a51514413aafa79d28561db73151c"
+ integrity sha512-/bjfUiXwy3P5vYr6/ezv//Yle2Y0ak3a+Av/BKoi76nFryjWCkki8AuVoPR7ZU/ckcvAWFo77OnFK14B9B5JsA==
+
"@rollup/rollup-linux-arm-gnueabihf@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515"
integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==
+"@rollup/rollup-linux-arm-musleabihf@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.2.tgz#1e8807d220047084579cd01499c5476a325e0700"
+ integrity sha512-S24b+tJHwpq2TNRz9T+r71FjMvyBBApY8EkYxz8Cwi/rhH6h+lu/iDUxyc9PuHf9UvyeBFYkWWcrDahai/NCGw==
+
+"@rollup/rollup-linux-arm64-gnu@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.2.tgz#128adb9dbf0057b989127d2e7fd73931a6729410"
+ integrity sha512-UN7VAXLyeyGbCQWiOtQN7BqmjTDw1ON2Oos4lfk0YR7yNhFEJWZiwGtvj9Ay4lsT/ueT04sh80Sg2MlWVVZ+Ug==
+
"@rollup/rollup-linux-arm64-gnu@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9"
integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==
+"@rollup/rollup-linux-arm64-musl@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.2.tgz#fddc7730045301a7fb0132532890e5edcb23d2bc"
+ integrity sha512-ZBKvz3+rIhQjusKMccuJiPsStCrPOtejCHxTe+yWp3tNnuPWtyCh9QLGPKz6bFNFbwbw28E2T6zDgzJZ05F1JQ==
+
"@rollup/rollup-linux-arm64-musl@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850"
integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==
+"@rollup/rollup-linux-powerpc64le-gnu@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.2.tgz#7154fe9ffc6405b2a6555ca931c42c0aa5198c2a"
+ integrity sha512-LjMMFiVBRL3wOe095vHAekL4b7nQqf4KZEpdMWd3/W+nIy5o9q/8tlVKiqMbfieDypNXLsxM9fexOxd9Qcklyg==
+
+"@rollup/rollup-linux-riscv64-gnu@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.2.tgz#7a7d091a94fa7c50ebf72d5578475093e01c739e"
+ integrity sha512-ohkPt0lKoCU0s4B6twro2aft+QROPdUiWwOjPNTzwTsBK5w+2+iT9kySdtOdq0gzWJAdiqsV4NFtXOwGZmIsHA==
+
"@rollup/rollup-linux-riscv64-gnu@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880"
integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==
+"@rollup/rollup-linux-s390x-gnu@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.2.tgz#39b87bd355dfafbc062ca856d3d6bc5aa1905d89"
+ integrity sha512-jm2lvLc+/gqXfndlpDw05jKvsl/HKYxUEAt1h5UXcMFVpO4vGpoWmJVUfKDtTqSaHcCNw1his1XjkgR9aort3w==
+
+"@rollup/rollup-linux-x64-gnu@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.2.tgz#30b88169db18dec202ab9662d5148523d59da553"
+ integrity sha512-oc5/SlITI/Vj/qL4UM+lXN7MERpiy1HEOnrE+SegXwzf7WP9bzmZd6+MDljCEZTdSY84CpvUv9Rq7bCaftn1+g==
+
"@rollup/rollup-linux-x64-gnu@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98"
integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==
+"@rollup/rollup-linux-x64-musl@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.2.tgz#d4fd52a28d5ce4aaed436311d89a9a1eaff87c2d"
+ integrity sha512-/2VWEBG6mKbS2itm7hzPwhIPaxfZh/KLWrYg20pCRLHhNFtF+epLgcBtwy3m07bl/k86Q3PFRAf2cX+VbZbwzQ==
+
"@rollup/rollup-linux-x64-musl@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d"
integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==
+"@rollup/rollup-win32-arm64-msvc@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.2.tgz#edd352302e3fa6a2d612447590b0a0887cdbf762"
+ integrity sha512-Wg7ANh7+hSilF0lG3e/0Oy8GtfTIfEk1327Bw8juZOMOoKmJLs3R+a4JDa/4cHJp2Gs7QfCDTepXXcyFD0ubBg==
+
"@rollup/rollup-win32-arm64-msvc@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e"
integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==
+"@rollup/rollup-win32-ia32-msvc@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.2.tgz#f17cc1db108f364bf6ef427f98844b5f742d31f0"
+ integrity sha512-J/jCDKVMWp0Y2ELnTjpQFYUCUWv1Jr+LdFrJVZtdqGyjDo0PHPa7pCamjHvJel6zBFM3doFFqAr7cmXYWBAbfw==
+
"@rollup/rollup-win32-ia32-msvc@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461"
integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==
+"@rollup/rollup-win32-x64-msvc@4.16.2":
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.2.tgz#98fb87589960075d39c44784e3a99f67138602f4"
+ integrity sha512-3nIf+SJMs2ZzrCh+SKNqgLVV9hS/UY0UjT1YU8XQYFGLiUfmHYJ/5trOU1XSvmHjV5gTF/K3DjrWxtyzKKcAHA==
+
"@rollup/rollup-win32-x64-msvc@4.9.6":
version "4.9.6"
resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6"
@@ -3333,14 +3528,7 @@
resolved "https://registry.npmjs.org/@types/camelcase/-/camelcase-4.1.0.tgz#e054f7986f31658d49936261b5cd4588ef29d1ee"
integrity sha512-nsaprOtNLvUrLyFX5+mRpE9h2Q0d5YzQRr+Lav3fxdYtc1/E/U7G+Ld861NWBDDtWY3MnwKoUOhCrE1nrVxUQA==
-"@types/chai-subset@^1.3.3":
- version "1.3.5"
- resolved "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz#3fc044451f26985f45625230a7f22284808b0a9a"
- integrity sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==
- dependencies:
- "@types/chai" "*"
-
-"@types/chai@*", "@types/chai@^4.1.2", "@types/chai@^4.3.5":
+"@types/chai@^4.1.2":
version "4.3.11"
resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c"
integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==
@@ -3929,70 +4117,62 @@
"@types/babel__core" "^7.20.5"
react-refresh "^0.14.0"
-"@vitest/expect@0.34.6":
- version "0.34.6"
- resolved "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz#608a7b7a9aa3de0919db99b4cc087340a03ea77e"
- integrity sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==
+"@vitest/expect@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz#0b3ba0914f738508464983f4d811bc122b51fb30"
+ integrity sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==
dependencies:
- "@vitest/spy" "0.34.6"
- "@vitest/utils" "0.34.6"
+ "@vitest/spy" "1.6.0"
+ "@vitest/utils" "1.6.0"
chai "^4.3.10"
-"@vitest/runner@0.34.6":
- version "0.34.6"
- resolved "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz#6f43ca241fc96b2edf230db58bcde5b974b8dcaf"
- integrity sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==
+"@vitest/runner@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz#a6de49a96cb33b0e3ba0d9064a3e8d6ce2f08825"
+ integrity sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==
dependencies:
- "@vitest/utils" "0.34.6"
- p-limit "^4.0.0"
+ "@vitest/utils" "1.6.0"
+ p-limit "^5.0.0"
pathe "^1.1.1"
-"@vitest/snapshot@0.34.6":
- version "0.34.6"
- resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz#b4528cf683b60a3e8071cacbcb97d18b9d5e1d8b"
- integrity sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==
+"@vitest/snapshot@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz#deb7e4498a5299c1198136f56e6e0f692e6af470"
+ integrity sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==
dependencies:
- magic-string "^0.30.1"
+ magic-string "^0.30.5"
pathe "^1.1.1"
- pretty-format "^29.5.0"
+ pretty-format "^29.7.0"
-"@vitest/spy@0.34.6":
- version "0.34.6"
- resolved "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz#b5e8642a84aad12896c915bce9b3cc8cdaf821df"
- integrity sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==
+"@vitest/spy@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz#362cbd42ccdb03f1613798fde99799649516906d"
+ integrity sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==
dependencies:
- tinyspy "^2.1.1"
+ tinyspy "^2.2.0"
-"@vitest/ui@^0.34.6":
- version "0.34.7"
- resolved "https://registry.npmjs.org/@vitest/ui/-/ui-0.34.7.tgz#9ca5704025bcab7c7852e800d3765103edb60059"
- integrity sha512-iizUu9R5Rsvsq8FtdJ0suMqEfIsIIzziqnasMHe4VH8vG+FnZSA3UAtCHx6rLeRupIFVAVg7bptMmuvMcsn8WQ==
+"@vitest/ui@^1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@vitest/ui/-/ui-1.6.0.tgz#ffcc97ebcceca7fec840c29ab68632d0cd01db93"
+ integrity sha512-k3Lyo+ONLOgylctiGovRKy7V4+dIN2yxstX3eY5cWFXH6WP+ooVX79YSyi0GagdTQzLmT43BF27T0s6dOIPBXA==
dependencies:
- "@vitest/utils" "0.34.7"
- fast-glob "^3.3.0"
- fflate "^0.8.0"
- flatted "^3.2.7"
+ "@vitest/utils" "1.6.0"
+ fast-glob "^3.3.2"
+ fflate "^0.8.1"
+ flatted "^3.2.9"
pathe "^1.1.1"
picocolors "^1.0.0"
- sirv "^2.0.3"
-
-"@vitest/utils@0.34.6":
- version "0.34.6"
- resolved "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz#38a0a7eedddb8e7291af09a2409cb8a189516968"
- integrity sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==
- dependencies:
- diff-sequences "^29.4.3"
- loupe "^2.3.6"
- pretty-format "^29.5.0"
+ sirv "^2.0.4"
-"@vitest/utils@0.34.7":
- version "0.34.7"
- resolved "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.7.tgz#46d0d27cd0f6ca1894257d4e141c5c48d7f50295"
- integrity sha512-ziAavQLpCYS9sLOorGrFFKmy2gnfiNU0ZJ15TsMz/K92NAPS/rp9K4z6AJQQk5Y8adCy4Iwpxy7pQumQ/psnRg==
+"@vitest/utils@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz#5c5675ca7d6f546a7b4337de9ae882e6c57896a1"
+ integrity sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==
dependencies:
- diff-sequences "^29.4.3"
- loupe "^2.3.6"
- pretty-format "^29.5.0"
+ diff-sequences "^29.6.3"
+ estree-walker "^3.0.3"
+ loupe "^2.3.7"
+ pretty-format "^29.7.0"
"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5":
version "1.11.6"
@@ -4303,7 +4483,7 @@ acorn-walk@^7.2.0:
resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
-acorn-walk@^8.1.1, acorn-walk@^8.2.0:
+acorn-walk@^8.1.1, acorn-walk@^8.3.2:
version "8.3.2"
resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
@@ -4318,7 +4498,7 @@ acorn@^7.4.1:
resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-acorn@^8.10.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
+acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
version "8.11.3"
resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
@@ -6857,6 +7037,11 @@ conf@^10.2.0:
pkg-up "^3.1.0"
semver "^7.3.5"
+confbox@^0.1.7:
+ version "0.1.7"
+ resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579"
+ integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==
+
config-chain@^1.1.11:
version "1.1.13"
resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"
@@ -7568,7 +7753,7 @@ detect-port@^1.3.0:
address "^1.0.1"
debug "4"
-diff-sequences@^29.4.3:
+diff-sequences@^29.6.3:
version "29.6.3"
resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
@@ -8332,6 +8517,35 @@ esbuild@^0.19.3, esbuild@~0.19.10:
"@esbuild/win32-ia32" "0.19.12"
"@esbuild/win32-x64" "0.19.12"
+esbuild@^0.20.1:
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1"
+ integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.20.2"
+ "@esbuild/android-arm" "0.20.2"
+ "@esbuild/android-arm64" "0.20.2"
+ "@esbuild/android-x64" "0.20.2"
+ "@esbuild/darwin-arm64" "0.20.2"
+ "@esbuild/darwin-x64" "0.20.2"
+ "@esbuild/freebsd-arm64" "0.20.2"
+ "@esbuild/freebsd-x64" "0.20.2"
+ "@esbuild/linux-arm" "0.20.2"
+ "@esbuild/linux-arm64" "0.20.2"
+ "@esbuild/linux-ia32" "0.20.2"
+ "@esbuild/linux-loong64" "0.20.2"
+ "@esbuild/linux-mips64el" "0.20.2"
+ "@esbuild/linux-ppc64" "0.20.2"
+ "@esbuild/linux-riscv64" "0.20.2"
+ "@esbuild/linux-s390x" "0.20.2"
+ "@esbuild/linux-x64" "0.20.2"
+ "@esbuild/netbsd-x64" "0.20.2"
+ "@esbuild/openbsd-x64" "0.20.2"
+ "@esbuild/sunos-x64" "0.20.2"
+ "@esbuild/win32-arm64" "0.20.2"
+ "@esbuild/win32-ia32" "0.20.2"
+ "@esbuild/win32-x64" "0.20.2"
+
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@@ -8574,6 +8788,13 @@ estree-walker@^2.0.2:
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+estree-walker@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d"
+ integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
+ dependencies:
+ "@types/estree" "^1.0.0"
+
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -8648,6 +8869,21 @@ execa@^5.1.1:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
+execa@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c"
+ integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^8.0.1"
+ human-signals "^5.0.0"
+ is-stream "^3.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^5.1.0"
+ onetime "^6.0.0"
+ signal-exit "^4.1.0"
+ strip-final-newline "^3.0.0"
+
exenv@^1.2.0:
version "1.2.2"
resolved "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d"
@@ -8825,7 +9061,7 @@ fast-glob@^2.2.6:
merge2 "^1.2.3"
micromatch "^3.1.10"
-fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0:
+fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.2:
version "3.3.2"
resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
@@ -8894,10 +9130,10 @@ fetch-retry@^5.0.2:
resolved "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz#17d0bc90423405b7a88b74355bf364acd2a7fa56"
integrity sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==
-fflate@^0.8.0:
- version "0.8.1"
- resolved "https://registry.npmjs.org/fflate/-/fflate-0.8.1.tgz#1ed92270674d2ad3c73f077cd0acf26486dae6c9"
- integrity sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==
+fflate@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea"
+ integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==
ffprobe-static@^3.1.0:
version "3.1.0"
@@ -9088,7 +9324,7 @@ flat-cache@^3.0.4:
keyv "^4.5.3"
rimraf "^3.0.2"
-flatted@^3.1.0, flatted@^3.2.7, flatted@^3.2.9:
+flatted@^3.1.0, flatted@^3.2.9:
version "3.2.9"
resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf"
integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==
@@ -9476,6 +9712,11 @@ get-stream@^6.0.0:
resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+get-stream@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2"
+ integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
+
get-symbol-description@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
@@ -10201,6 +10442,11 @@ human-signals@^2.1.0:
resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+human-signals@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
+ integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
+
humanize-duration@^3.15.3:
version "3.31.0"
resolved "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.31.0.tgz#a0384d22555024cd17e6e9f8561540d37756bf4c"
@@ -10865,6 +11111,11 @@ is-stream@^2.0.0:
resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+is-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
+ integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
+
is-string@^1.0.5, is-string@^1.0.7:
version "1.0.7"
resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
@@ -11224,6 +11475,11 @@ js-tokens@^3.0.2:
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==
+js-tokens@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz#0f893996d6f3ed46df7f0a3b12a03f5fd84223c1"
+ integrity sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==
+
js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.9.0:
version "3.14.1"
resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
@@ -11330,11 +11586,6 @@ json5@^1.0.1, json5@^1.0.2:
dependencies:
minimist "^1.2.0"
-jsonc-parser@^3.2.0:
- version "3.2.1"
- resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a"
- integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
-
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -11743,10 +11994,13 @@ loader-utils@^2.0.0, loader-utils@^2.0.4:
emojis-list "^3.0.0"
json5 "^2.1.2"
-local-pkg@^0.4.3:
- version "0.4.3"
- resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
- integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
+local-pkg@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c"
+ integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==
+ dependencies:
+ mlly "^1.4.2"
+ pkg-types "^1.0.3"
localforage@^1.8.1:
version "1.10.0"
@@ -11921,7 +12175,7 @@ loud-rejection@^1.0.0:
currently-unhandled "^0.4.1"
signal-exit "^3.0.0"
-loupe@^2.3.6:
+loupe@^2.3.6, loupe@^2.3.7:
version "2.3.7"
resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697"
integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==
@@ -11980,10 +12234,10 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
-magic-string@^0.30.1:
- version "0.30.6"
- resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.6.tgz#996e21b42f944e45591a68f0905d6a740a12506c"
- integrity sha512-n62qCLbPjNjyo+owKtveQxZFZTBm+Ms6YoGD23Wew6Vw337PElFNifQpknPruVRQV57kVShPnLGo9vWxVhpPvA==
+magic-string@^0.30.5:
+ version "0.30.10"
+ resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e"
+ integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
@@ -12432,6 +12686,11 @@ mimic-fn@^3.0.0:
resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74"
integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==
+mimic-fn@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
+ integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+
mimic-response@^1.0.0, mimic-response@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
@@ -12615,10 +12874,10 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-mlly@^1.2.0, mlly@^1.4.0:
- version "1.5.0"
- resolved "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz#8428a4617d54cc083d3009030ac79739a0e5447a"
- integrity sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==
+mlly@^1.4.2, mlly@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz#0983067dc3366d6314fc5e12712884e6978d028f"
+ integrity sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==
dependencies:
acorn "^8.11.3"
pathe "^1.1.2"
@@ -12952,6 +13211,13 @@ npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
+npm-run-path@^5.1.0:
+ version "5.3.0"
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f"
+ integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==
+ dependencies:
+ path-key "^4.0.0"
+
npm-which@^3.0.1:
version "3.0.1"
resolved "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
@@ -13165,6 +13431,13 @@ onetime@^5.1.0, onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
+onetime@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
+ integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
+ dependencies:
+ mimic-fn "^4.0.0"
+
open@^7.0.3, open@^7.4.2:
version "7.4.2"
resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
@@ -13287,10 +13560,10 @@ p-limit@^3.0.2:
dependencies:
yocto-queue "^0.1.0"
-p-limit@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644"
- integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==
+p-limit@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985"
+ integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==
dependencies:
yocto-queue "^1.0.0"
@@ -13558,6 +13831,11 @@ path-key@^3.0.0, path-key@^3.1.0:
resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+path-key@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
+ integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
+
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
@@ -13620,7 +13898,7 @@ path@^0.12.7:
process "^0.11.1"
util "^0.10.3"
-pathe@^1.1.0, pathe@^1.1.1, pathe@^1.1.2:
+pathe@^1.1.1, pathe@^1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec"
integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
@@ -13720,13 +13998,13 @@ pkg-dir@^5.0.0:
find-up "^5.0.0"
pkg-types@^1.0.3:
- version "1.0.3"
- resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868"
- integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.0.tgz#3ec1bf33379030fd0a34c227b6c650e8ea7ca271"
+ integrity sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==
dependencies:
- jsonc-parser "^3.2.0"
- mlly "^1.2.0"
- pathe "^1.1.0"
+ confbox "^0.1.7"
+ mlly "^1.6.1"
+ pathe "^1.1.2"
pkg-up@^3.1.0:
version "3.1.0"
@@ -13922,6 +14200,15 @@ postcss@^8.4.32:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+postcss@^8.4.38:
+ version "8.4.38"
+ resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
+ integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
+ dependencies:
+ nanoid "^3.3.7"
+ picocolors "^1.0.0"
+ source-map-js "^1.2.0"
+
postinstall-postinstall@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3"
@@ -13968,7 +14255,7 @@ pretty-format@^26.6.2:
ansi-styles "^4.0.0"
react-is "^17.0.1"
-pretty-format@^29.5.0:
+pretty-format@^29.7.0:
version "29.7.0"
resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
@@ -15173,6 +15460,31 @@ roarr@^2.15.3:
semver-compare "^1.0.0"
sprintf-js "^1.1.2"
+rollup@^4.13.0:
+ version "4.16.2"
+ resolved "https://registry.npmjs.org/rollup/-/rollup-4.16.2.tgz#43bcbd225d0a6bc68df97a6e41c45003188a3845"
+ integrity sha512-sxDP0+pya/Yi5ZtptF4p3avI+uWCIf/OdrfdH2Gbv1kWddLKk0U7WE3PmQokhi5JrektxsK3sK8s4hzAmjqahw==
+ dependencies:
+ "@types/estree" "1.0.5"
+ optionalDependencies:
+ "@rollup/rollup-android-arm-eabi" "4.16.2"
+ "@rollup/rollup-android-arm64" "4.16.2"
+ "@rollup/rollup-darwin-arm64" "4.16.2"
+ "@rollup/rollup-darwin-x64" "4.16.2"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.16.2"
+ "@rollup/rollup-linux-arm-musleabihf" "4.16.2"
+ "@rollup/rollup-linux-arm64-gnu" "4.16.2"
+ "@rollup/rollup-linux-arm64-musl" "4.16.2"
+ "@rollup/rollup-linux-powerpc64le-gnu" "4.16.2"
+ "@rollup/rollup-linux-riscv64-gnu" "4.16.2"
+ "@rollup/rollup-linux-s390x-gnu" "4.16.2"
+ "@rollup/rollup-linux-x64-gnu" "4.16.2"
+ "@rollup/rollup-linux-x64-musl" "4.16.2"
+ "@rollup/rollup-win32-arm64-msvc" "4.16.2"
+ "@rollup/rollup-win32-ia32-msvc" "4.16.2"
+ "@rollup/rollup-win32-x64-msvc" "4.16.2"
+ fsevents "~2.3.2"
+
rollup@^4.2.0:
version "4.9.6"
resolved "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0"
@@ -15649,7 +15961,7 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-signal-exit@^4.0.1:
+signal-exit@^4.0.1, signal-exit@^4.1.0:
version "4.1.0"
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
@@ -15681,7 +15993,7 @@ sinon@^4.0.0:
supports-color "^5.1.0"
type-detect "^4.0.5"
-sirv@^2.0.3:
+sirv@^2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0"
integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==
@@ -15786,6 +16098,11 @@ source-list-map@^2.0.0:
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+source-map-js@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
+ integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
+
source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
version "0.5.3"
resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -15967,7 +16284,7 @@ statuses@2.0.1:
resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
-std-env@^3.3.3:
+std-env@^3.5.0:
version "3.7.0"
resolved "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2"
integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==
@@ -16196,6 +16513,11 @@ strip-final-newline@^2.0.0:
resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+strip-final-newline@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
+ integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
+
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
@@ -16220,12 +16542,12 @@ strip-json-comments@^3.1.1:
resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-strip-literal@^1.0.1:
- version "1.3.0"
- resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07"
- integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==
+strip-literal@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz#6d82ade5e2e74f5c7e8739b6c84692bd65f0bd2a"
+ integrity sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==
dependencies:
- acorn "^8.10.0"
+ js-tokens "^9.0.0"
strtok2@~1.0.0:
version "1.0.4"
@@ -16532,20 +16854,20 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.2:
resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
-tinybench@^2.5.0:
- version "2.6.0"
- resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz#1423284ee22de07c91b3752c048d2764714b341b"
- integrity sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==
+tinybench@^2.5.1:
+ version "2.8.0"
+ resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz#30e19ae3a27508ee18273ffed9ac7018949acd7b"
+ integrity sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==
-tinypool@^0.7.0:
- version "0.7.0"
- resolved "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz#88053cc99b4a594382af23190c609d93fddf8021"
- integrity sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==
+tinypool@^0.8.3:
+ version "0.8.4"
+ resolved "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz#e217fe1270d941b39e98c625dcecebb1408c9aa8"
+ integrity sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==
-tinyspy@^2.1.1:
- version "2.2.0"
- resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz#9dc04b072746520b432f77ea2c2d17933de5d6ce"
- integrity sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==
+tinyspy@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1"
+ integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==
title-case@^4.1.2:
version "4.3.1"
@@ -16910,9 +17232,9 @@ typescript@^5.3.3:
integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==
ufo@^1.3.2:
- version "1.3.2"
- resolved "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496"
- integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==
+ version "1.5.3"
+ resolved "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344"
+ integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==
uglify-js@^3.1.4:
version "3.17.4"
@@ -17335,17 +17657,16 @@ vite-electron-plugin@^0.8.3:
notbundle "~0.4.0"
vite-plugin-electron "~0.14.1"
-vite-node@0.34.6:
- version "0.34.6"
- resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz#34d19795de1498562bf21541a58edcd106328a17"
- integrity sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==
+vite-node@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz#2c7e61129bfecc759478fa592754fd9704aaba7f"
+ integrity sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==
dependencies:
cac "^6.7.14"
debug "^4.3.4"
- mlly "^1.4.0"
pathe "^1.1.1"
picocolors "^1.0.0"
- vite "^3.0.0 || ^4.0.0 || ^5.0.0-0"
+ vite "^5.0.0"
vite-plugin-electron-renderer@^0.12.1:
version "0.12.1"
@@ -17369,7 +17690,18 @@ vite-plugin-time-reporter@^2.1.0:
resolved "https://registry.npmjs.org/vite-plugin-time-reporter/-/vite-plugin-time-reporter-2.3.0.tgz#7f5644252a439bfd1723d259447ae8a13d93991e"
integrity sha512-I/EfaCmuZ5tDoWkrhGXOPPZB/AZsto2prqGxRTke3ATGMHM3a7xceuUGZQ6V7pG4xoiVRypkKL9XyDomELycKQ==
-"vite@^3.0.0 || ^4.0.0 || ^5.0.0-0", "vite@^3.1.0 || ^4.0.0 || ^5.0.0-0", vite@^5.0.12:
+vite@^5.0.0:
+ version "5.2.10"
+ resolved "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz#2ac927c91e99d51b376a5c73c0e4b059705f5bd7"
+ integrity sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==
+ dependencies:
+ esbuild "^0.20.1"
+ postcss "^8.4.38"
+ rollup "^4.13.0"
+ optionalDependencies:
+ fsevents "~2.3.3"
+
+vite@^5.0.12:
version "5.0.12"
resolved "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47"
integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==
@@ -17380,34 +17712,30 @@ vite-plugin-time-reporter@^2.1.0:
optionalDependencies:
fsevents "~2.3.3"
-vitest@^0.34.6:
- version "0.34.6"
- resolved "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz#44880feeeef493c04b7f795ed268f24a543250d7"
- integrity sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==
- dependencies:
- "@types/chai" "^4.3.5"
- "@types/chai-subset" "^1.3.3"
- "@types/node" "*"
- "@vitest/expect" "0.34.6"
- "@vitest/runner" "0.34.6"
- "@vitest/snapshot" "0.34.6"
- "@vitest/spy" "0.34.6"
- "@vitest/utils" "0.34.6"
- acorn "^8.9.0"
- acorn-walk "^8.2.0"
- cac "^6.7.14"
+vitest@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz#9d5ad4752a3c451be919e412c597126cffb9892f"
+ integrity sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==
+ dependencies:
+ "@vitest/expect" "1.6.0"
+ "@vitest/runner" "1.6.0"
+ "@vitest/snapshot" "1.6.0"
+ "@vitest/spy" "1.6.0"
+ "@vitest/utils" "1.6.0"
+ acorn-walk "^8.3.2"
chai "^4.3.10"
debug "^4.3.4"
- local-pkg "^0.4.3"
- magic-string "^0.30.1"
+ execa "^8.0.1"
+ local-pkg "^0.5.0"
+ magic-string "^0.30.5"
pathe "^1.1.1"
picocolors "^1.0.0"
- std-env "^3.3.3"
- strip-literal "^1.0.1"
- tinybench "^2.5.0"
- tinypool "^0.7.0"
- vite "^3.1.0 || ^4.0.0 || ^5.0.0-0"
- vite-node "0.34.6"
+ std-env "^3.5.0"
+ strip-literal "^2.0.0"
+ tinybench "^2.5.1"
+ tinypool "^0.8.3"
+ vite "^5.0.0"
+ vite-node "1.6.0"
why-is-node-running "^2.2.2"
vm-browserify@^1.0.1: