diff --git a/.github/workflows/demos.yml b/.github/workflows/demos.yml
index 90968eef2a..8f9675f05e 100644
--- a/.github/workflows/demos.yml
+++ b/.github/workflows/demos.yml
@@ -688,4 +688,31 @@ jobs:
uses: ChristophWurst/xmllint-action@v1
with:
xml-file: build/extracted-doc/word/document.xml
- xml-schema-file: ooxml-schemas/microsoft/wml-2010.xsd
\ No newline at end of file
+ xml-schema-file: ooxml-schemas/microsoft/wml-2010.xsd
+ - name: Run Demo
+ run: npm run ts-node -- ./demo/72-word-wrap.ts
+ - name: Extract Word Document
+ run: npm run extract
+ - name: Validate XML
+ uses: ChristophWurst/xmllint-action@v1
+ with:
+ xml-file: build/extracted-doc/word/document.xml
+ xml-schema-file: ooxml-schemas/microsoft/wml-2010.xsd
+ - name: Run Demo
+ run: npm run ts-node -- ./demo/73-comments.ts
+ - name: Extract Word Document
+ run: npm run extract
+ - name: Validate XML
+ uses: ChristophWurst/xmllint-action@v1
+ with:
+ xml-file: build/extracted-doc/word/document.xml
+ xml-schema-file: ooxml-schemas/microsoft/wml-2010.xsd
+ - name: Run Demo
+ run: npm run ts-node -- ./demo/73-comments.ts
+ - name: Extract Word Document
+ run: npm run extract
+ - name: Validate XML
+ uses: ChristophWurst/xmllint-action@v1
+ with:
+ xml-file: build/extracted-doc/word/document.xml
+ xml-schema-file: ooxml-schemas/microsoft/wml-2010.xsd
diff --git a/.nycrc b/.nycrc
index 87728e5edb..3dc8ad302a 100644
--- a/.nycrc
+++ b/.nycrc
@@ -1,9 +1,9 @@
{
"check-coverage": true,
- "statements": 99.72,
- "branches": 97.95,
- "functions": 99.82,
- "lines": 99.71,
+ "statements": 99.79,
+ "branches": 98.41,
+ "functions": 100,
+ "lines": 99.73,
"include": [
"src/**/*.ts"
],
diff --git a/demo/1-basic.ts b/demo/1-basic.ts
index da44119bbf..925883dd6f 100644
--- a/demo/1-basic.ts
+++ b/demo/1-basic.ts
@@ -1,7 +1,7 @@
// Simple example to add text to a document
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
-import { Document, Packer, Paragraph, TextRun } from "../build";
+import { Document, Packer, Paragraph, Tab, TextRun } from "../build";
const doc = new Document({
sections: [
@@ -16,7 +16,7 @@ const doc = new Document({
bold: true,
}),
new TextRun({
- text: "\tGithub is the best",
+ children: [new Tab(), "Github is the best"],
bold: true,
}),
],
diff --git a/demo/10-my-cv.ts b/demo/10-my-cv.ts
index ef766d6656..ad36f4ef08 100644
--- a/demo/10-my-cv.ts
+++ b/demo/10-my-cv.ts
@@ -1,7 +1,7 @@
// Generate a CV
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
-import { AlignmentType, Document, HeadingLevel, Packer, Paragraph, TabStopPosition, TabStopType, TextRun } from "../build";
+import { AlignmentType, Document, HeadingLevel, Packer, Paragraph, Tab, TabStopPosition, TabStopType, TextRun } from "../build";
// tslint:disable:no-shadowed-variable
@@ -284,7 +284,7 @@ class DocumentCreator {
bold: true,
}),
new TextRun({
- text: `\t${dateText}`,
+ children: [new Tab(), dateText],
bold: true,
}),
],
diff --git a/demo/19-export-to-base64.ts b/demo/19-export-to-base64.ts
index f9e871353e..3d54e9ee38 100644
--- a/demo/19-export-to-base64.ts
+++ b/demo/19-export-to-base64.ts
@@ -1,7 +1,7 @@
// Export to base64 string - Useful in a browser environment.
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
-import { Document, Packer, Paragraph, TextRun } from "../build";
+import { Document, Packer, Paragraph, Tab, TextRun } from "../build";
const doc = new Document({
sections: [
@@ -15,7 +15,7 @@ const doc = new Document({
bold: true,
}),
new TextRun({
- text: "\tBar",
+ children: [new Tab(), "Bar"],
bold: true,
}),
],
diff --git a/demo/2-declaritive-styles.ts b/demo/2-declaritive-styles.ts
index 11e306b07e..352edca043 100644
--- a/demo/2-declaritive-styles.ts
+++ b/demo/2-declaritive-styles.ts
@@ -82,6 +82,32 @@ const doc = new Document({
spacing: { line: 276, before: 20 * 72 * 0.1, after: 20 * 72 * 0.05 },
},
},
+ {
+ id: "strikeUnderline",
+ name: "Strike Underline",
+ basedOn: "Normal",
+ quickFormat: true,
+ run: {
+ strike: true,
+ underline: {
+ type: UnderlineType.SINGLE,
+ },
+ },
+ },
+ ],
+ characterStyles: [
+ {
+ id: "strikeUnderlineCharacter",
+ name: "Strike Underline",
+ basedOn: "Normal",
+ quickFormat: true,
+ run: {
+ strike: true,
+ underline: {
+ type: UnderlineType.SINGLE,
+ },
+ },
+ },
],
},
numbering: {
@@ -169,6 +195,14 @@ const doc = new Document({
new TextRun({
text: "and back to normal.",
}),
+ new TextRun({
+ text: "This text will be invisible!",
+ vanish: true,
+ }),
+ new TextRun({
+ text: "This text will be VERY invisible! Word processors cannot override this!",
+ specVanish: true,
+ }),
],
}),
new Paragraph({
@@ -182,6 +216,40 @@ const doc = new Document({
}),
],
}),
+ new Paragraph({
+ style: "strikeUnderline",
+ children: [
+ new TextRun({
+ text: "Underline and Strike",
+ }),
+ ],
+ }),
+ new Paragraph({
+ children: [
+ new TextRun({
+ text: "Hello World ",
+ }),
+ new TextRun({
+ style: "strikeUnderlineCharacter",
+ text: "Underline and Strike",
+ }),
+ new TextRun({
+ text: " Another Hello World",
+ }),
+ new TextRun({
+ scale: 50,
+ text: " Scaled text",
+ }),
+ ],
+ }),
+ new Paragraph({
+ scale: 200,
+ children: [
+ new TextRun({
+ text: "Scaled paragraph",
+ }),
+ ],
+ }),
],
},
],
diff --git a/demo/48-vertical-align.ts b/demo/48-vertical-align.ts
index 36400de154..6e9aba0438 100644
--- a/demo/48-vertical-align.ts
+++ b/demo/48-vertical-align.ts
@@ -1,7 +1,7 @@
// Example of making content of section vertically aligned
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
-import { Document, Packer, Paragraph, VerticalAlign, TextRun } from "../build";
+import { Document, Packer, Paragraph, VerticalAlign, TextRun, Tab } from "../build";
const doc = new Document({
sections: [
@@ -18,7 +18,7 @@ const doc = new Document({
bold: true,
}),
new TextRun({
- text: "\tGithub is the best",
+ children: [new Tab(), "Github is the best"],
bold: true,
}),
],
diff --git a/demo/5-images.ts b/demo/5-images.ts
index 3d1da1633c..e6496266fe 100644
--- a/demo/5-images.ts
+++ b/demo/5-images.ts
@@ -25,6 +25,11 @@ const doc = new Document({
width: 100,
height: 100,
},
+ altText: {
+ title: "This is an ultimate title",
+ description: "This is an ultimate image",
+ name: "My Ultimate Image",
+ },
}),
],
}),
diff --git a/demo/55-math.ts b/demo/55-math.ts
index e818d13e3b..887921900a 100644
--- a/demo/55-math.ts
+++ b/demo/55-math.ts
@@ -16,6 +16,7 @@ import {
MathSubScript,
MathSubSuperScript,
MathSum,
+ MathIntegral,
MathSuperScript,
Packer,
Paragraph,
@@ -90,6 +91,35 @@ const doc = new Document({
}),
],
}),
+ new Paragraph({
+ children: [
+ new Math({
+ children: [
+ new MathIntegral({
+ children: [new MathRun("test")],
+ }),
+ new MathIntegral({
+ children: [
+ new MathSuperScript({
+ children: [new MathRun("e")],
+ superScript: [new MathRun("2")],
+ }),
+ ],
+ subScript: [new MathRun("i")],
+ }),
+ new MathIntegral({
+ children: [
+ new MathRadical({
+ children: [new MathRun("i")],
+ }),
+ ],
+ subScript: [new MathRun("i")],
+ superScript: [new MathRun("10")],
+ }),
+ ],
+ }),
+ ],
+ }),
new Paragraph({
children: [
new Math({
diff --git a/demo/56-background-color.ts b/demo/56-background-color.ts
index 23eb077cfd..3f290f6170 100644
--- a/demo/56-background-color.ts
+++ b/demo/56-background-color.ts
@@ -1,7 +1,7 @@
// Change background colour of whole document
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
-import { Document, Packer, Paragraph, TextRun } from "../build";
+import { Document, Packer, Paragraph, Tab, TextRun } from "../build";
const doc = new Document({
background: {
@@ -19,7 +19,7 @@ const doc = new Document({
bold: true,
}),
new TextRun({
- text: "\tGithub is the best",
+ children: [new Tab(), "Github is the best"],
bold: true,
}),
],
diff --git a/demo/6-page-borders.ts b/demo/6-page-borders.ts
index 999c5011e5..79758e88e8 100644
--- a/demo/6-page-borders.ts
+++ b/demo/6-page-borders.ts
@@ -1,7 +1,7 @@
// Example of how to change page borders
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
-import { Document, HeadingLevel, Packer, Paragraph, TextRun } from "../build";
+import { Document, HeadingLevel, Packer, Paragraph, Tab, TextRun } from "../build";
const doc = new Document({
sections: [
@@ -25,7 +25,7 @@ const doc = new Document({
bold: true,
}),
new TextRun({
- text: "\tGithub is the best",
+ children: [new Tab(), "Github is the best"],
bold: true,
}),
],
diff --git a/demo/60-track-revisions.ts b/demo/60-track-revisions.ts
index e4cdd15575..d6b2e3a36c 100644
--- a/demo/60-track-revisions.ts
+++ b/demo/60-track-revisions.ts
@@ -12,6 +12,7 @@ import {
PageNumber,
Paragraph,
ShadingType,
+ Tab,
TextRun,
} from "../build";
@@ -111,7 +112,7 @@ const doc = new Document({
}),
new TextRun({
bold: true,
- children: ["\tuse Inserted and Deleted TextRuns.", new FootnoteReferenceRun(1)],
+ children: [new Tab(), "use Inserted and Deleted TextRuns.", new FootnoteReferenceRun(1)],
}),
new TextRun({
bold: true,
diff --git a/demo/61-text-frame.ts b/demo/61-text-frame.ts
index d6563418cf..e36ac3e4ab 100644
--- a/demo/61-text-frame.ts
+++ b/demo/61-text-frame.ts
@@ -8,6 +8,7 @@ import {
HorizontalPositionAlign,
Packer,
Paragraph,
+ Tab,
TextRun,
VerticalPositionAlign,
} from "../build";
@@ -67,7 +68,7 @@ const doc = new Document({
bold: true,
}),
new TextRun({
- text: "\tGithub is the best",
+ children: [new Tab(), "Github is the best"],
bold: true,
}),
],
diff --git a/demo/72-word-wrap.ts b/demo/72-word-wrap.ts
index 95b8b41d01..74c4b2bebe 100644
--- a/demo/72-word-wrap.ts
+++ b/demo/72-word-wrap.ts
@@ -7,12 +7,31 @@ const doc = new Document({
sections: [
{
children: [
+ new Paragraph({
+ wordWrap: true,
+ children: [
+ new TextRun("我今天遛狗去公园"),
+ new TextRun({
+ text: "456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345",
+ }),
+ ],
+ }),
+ new Paragraph({
+ wordWrap: true,
+ children: [
+ new TextRun(
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",
+ ),
+ new TextRun({
+ text: "456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345",
+ }),
+ ],
+ }),
new Paragraph({
children: [
new TextRun("我今天遛狗去公园"),
new TextRun({
text: "456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345",
- space: SpaceType.PRESERVE,
}),
],
}),
@@ -23,7 +42,6 @@ const doc = new Document({
),
new TextRun({
text: "456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345456435234523456435564745673456345",
- space: SpaceType.PRESERVE,
}),
],
}),
diff --git a/demo/74-nodejs-stream.ts b/demo/74-nodejs-stream.ts
index 0a73bd0508..fc4eae605b 100644
--- a/demo/74-nodejs-stream.ts
+++ b/demo/74-nodejs-stream.ts
@@ -1,7 +1,7 @@
// Exporting the document as a stream
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
-import { Document, Packer, Paragraph, TextRun } from "../build";
+import { Document, Packer, Paragraph, Tab, TextRun } from "../build";
const doc = new Document({
sections: [
@@ -16,7 +16,7 @@ const doc = new Document({
bold: true,
}),
new TextRun({
- text: "\tGithub is the best",
+ children: [new Tab(), "Github is the best"],
bold: true,
}),
],
diff --git a/demo/75-tab-stops.ts b/demo/75-tab-stops.ts
new file mode 100644
index 0000000000..a2257419d8
--- /dev/null
+++ b/demo/75-tab-stops.ts
@@ -0,0 +1,80 @@
+// Exporting the document as a stream
+// Import from 'docx' rather than '../build' if you install from npm
+import * as fs from "fs";
+import { Document, HeadingLevel, Packer, Paragraph, TabStopPosition, TabStopType, TextRun } from "../build";
+
+const columnWidth = TabStopPosition.MAX / 4;
+const receiptTabStops = [
+ // no need to define first left tab column
+ // the right aligned tab column position should point to the end of column
+ // i.e. in this case
+ // (end position of 1st) + (end position of current)
+ // columnWidth + columnWidth = columnWidth * 2
+
+ { type: TabStopType.RIGHT, position: columnWidth * 2 },
+ { type: TabStopType.RIGHT, position: columnWidth * 3 },
+ { type: TabStopType.RIGHT, position: TabStopPosition.MAX },
+ ],
+ twoTabStops = [{ type: TabStopType.RIGHT, position: TabStopPosition.MAX }];
+
+const doc = new Document({
+ sections: [
+ {
+ properties: {},
+ children: [
+ new Paragraph({
+ heading: HeadingLevel.HEADING_1,
+ children: [new TextRun("Receipt 001")],
+ }),
+ new Paragraph({
+ tabStops: twoTabStops,
+ children: [
+ new TextRun({
+ text: "To Bob.\tBy Alice.",
+ bold: true,
+ }),
+ ],
+ }),
+ new Paragraph({
+ tabStops: twoTabStops,
+ children: [new TextRun("Foo Inc\tBar Inc")],
+ }),
+ new Paragraph({ text: "" }),
+ new Paragraph({
+ tabStops: receiptTabStops,
+
+ children: [
+ new TextRun({
+ text: "Item\tPrice\tQuantity\tSub-total",
+ bold: true,
+ }),
+ ],
+ }),
+ new Paragraph({
+ tabStops: receiptTabStops,
+ text: "Item 3\t10\t5\t50",
+ }),
+ new Paragraph({
+ tabStops: receiptTabStops,
+ text: "Item 3\t10\t5\t50",
+ }),
+ new Paragraph({
+ tabStops: receiptTabStops,
+ text: "Item 3\t10\t5\t50",
+ }),
+ new Paragraph({
+ tabStops: receiptTabStops,
+ children: [
+ new TextRun({
+ text: "\t\t\tTotal: 200",
+ bold: true,
+ }),
+ ],
+ }),
+ ],
+ },
+ ],
+});
+
+const stream = Packer.toStream(doc);
+stream.pipe(fs.createWriteStream("My Document.docx"));
diff --git a/demo/76-compatibility.ts b/demo/76-compatibility.ts
new file mode 100644
index 0000000000..69916ba484
--- /dev/null
+++ b/demo/76-compatibility.ts
@@ -0,0 +1,87 @@
+// Add compatibility options
+// Import from 'docx' rather than '../build' if you install from npm
+import * as fs from "fs";
+import { Document, Packer, Paragraph, TextRun } from "../build";
+
+const doc = new Document({
+ compatibility: {
+ useSingleBorderforContiguousCells: true,
+ wordPerfectJustification: true,
+ noTabStopForHangingIndent: true,
+ noLeading: true,
+ spaceForUnderline: true,
+ noColumnBalance: true,
+ balanceSingleByteDoubleByteWidth: true,
+ noExtraLineSpacing: true,
+ doNotLeaveBackslashAlone: true,
+ underlineTrailingSpaces: true,
+ doNotExpandShiftReturn: true,
+ spacingInWholePoints: true,
+ lineWrapLikeWord6: true,
+ printBodyTextBeforeHeader: true,
+ printColorsBlack: true,
+ spaceWidth: true,
+ showBreaksInFrames: true,
+ subFontBySize: true,
+ suppressBottomSpacing: true,
+ suppressTopSpacing: true,
+ suppressSpacingAtTopOfPage: true,
+ suppressTopSpacingWP: true,
+ suppressSpBfAfterPgBrk: true,
+ swapBordersFacingPages: true,
+ convertMailMergeEsc: true,
+ truncateFontHeightsLikeWP6: true,
+ macWordSmallCaps: true,
+ usePrinterMetrics: true,
+ doNotSuppressParagraphBorders: true,
+ wrapTrailSpaces: true,
+ footnoteLayoutLikeWW8: true,
+ shapeLayoutLikeWW8: true,
+ alignTablesRowByRow: true,
+ forgetLastTabAlignment: true,
+ adjustLineHeightInTable: true,
+ autoSpaceLikeWord95: true,
+ noSpaceRaiseLower: true,
+ doNotUseHTMLParagraphAutoSpacing: true,
+ layoutRawTableWidth: true,
+ layoutTableRowsApart: true,
+ useWord97LineBreakRules: true,
+ doNotBreakWrappedTables: true,
+ doNotSnapToGridInCell: true,
+ selectFieldWithFirstOrLastCharacter: true,
+ applyBreakingRules: true,
+ doNotWrapTextWithPunctuation: true,
+ doNotUseEastAsianBreakRules: true,
+ useWord2002TableStyleRules: true,
+ growAutofit: true,
+ useFELayout: true,
+ useNormalStyleForList: true,
+ doNotUseIndentAsNumberingTabStop: true,
+ useAlternateEastAsianLineBreakRules: true,
+ allowSpaceOfSameStyleInTable: true,
+ doNotSuppressIndentation: true,
+ doNotAutofitConstrainedTables: true,
+ autofitToFirstFixedWidthCell: true,
+ underlineTabInNumberingList: true,
+ displayHangulFixedWidth: true,
+ splitPgBreakAndParaMark: true,
+ doNotVerticallyAlignCellWithSp: true,
+ doNotBreakConstrainedForcedTable: true,
+ ignoreVerticalAlignmentInTextboxes: true,
+ useAnsiKerningPairs: true,
+ cachedColumnBalance: true,
+ },
+ sections: [
+ {
+ children: [
+ new Paragraph({
+ children: [new TextRun("Hello World")],
+ }),
+ ],
+ },
+ ],
+});
+
+Packer.toBuffer(doc).then((buffer) => {
+ fs.writeFileSync("My Document.docx", buffer);
+});
diff --git a/demo/77-side-by-side-tables.ts b/demo/77-side-by-side-tables.ts
new file mode 100644
index 0000000000..64b4bfd854
--- /dev/null
+++ b/demo/77-side-by-side-tables.ts
@@ -0,0 +1,116 @@
+// Exporting the document as a stream
+// Import from 'docx' rather than '../build' if you install from npm
+import * as fs from "fs";
+import { Document, Packer, Paragraph, Table, TableBorders, TableCell, TableRow, WidthType } from "../build";
+
+const table1 = new Table({
+ columnWidths: [3505, 5505],
+ rows: [
+ new TableRow({
+ children: [
+ new TableCell({
+ width: {
+ size: 3505,
+ type: WidthType.DXA,
+ },
+ children: [new Paragraph("Hello")],
+ }),
+ new TableCell({
+ width: {
+ size: 5505,
+ type: WidthType.DXA,
+ },
+ children: [],
+ }),
+ ],
+ }),
+ new TableRow({
+ children: [
+ new TableCell({
+ width: {
+ size: 3505,
+ type: WidthType.DXA,
+ },
+ children: [],
+ }),
+ new TableCell({
+ width: {
+ size: 5505,
+ type: WidthType.DXA,
+ },
+ children: [new Paragraph("World")],
+ }),
+ ],
+ }),
+ ],
+});
+
+const table2 = new Table({
+ columnWidths: [3505, 5505],
+ rows: [
+ new TableRow({
+ children: [
+ new TableCell({
+ width: {
+ size: 3505,
+ type: WidthType.DXA,
+ },
+ children: [new Paragraph("Foo")],
+ }),
+ new TableCell({
+ width: {
+ size: 5505,
+ type: WidthType.DXA,
+ },
+ children: [],
+ }),
+ ],
+ }),
+ new TableRow({
+ children: [
+ new TableCell({
+ width: {
+ size: 3505,
+ type: WidthType.DXA,
+ },
+ children: [],
+ }),
+ new TableCell({
+ width: {
+ size: 5505,
+ type: WidthType.DXA,
+ },
+ children: [new Paragraph("Bar")],
+ }),
+ ],
+ }),
+ ],
+});
+
+const noBorderTable = new Table({
+ borders: TableBorders.NONE,
+ rows: [
+ new TableRow({
+ children: [
+ new TableCell({
+ children: [table1],
+ }),
+ new TableCell({
+ children: [table2],
+ }),
+ ],
+ }),
+ ],
+});
+
+const doc = new Document({
+ sections: [
+ {
+ properties: {},
+ children: [noBorderTable],
+ },
+ ],
+});
+
+const stream = Packer.toStream(doc);
+stream.pipe(fs.createWriteStream("My Document.docx"));
diff --git a/demo/browser-demo.html b/demo/browser-demo.html
index cb3c2484ba..d73bdc0b84 100644
--- a/demo/browser-demo.html
+++ b/demo/browser-demo.html
@@ -24,7 +24,7 @@
bold: true,
}),
new docx.TextRun({
- text: "\tGithub is the best",
+ children: [new docx.Tab(), "Github is the best"],
bold: true,
}),
],
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index 959b96aa94..cebe089854 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -11,8 +11,10 @@
- [Document](usage/document.md)
- [Sections](usage/sections.md)
- [Paragraph](usage/paragraph.md)
+ - [Text Frames](usage/text-frames.md)
+ - [Symbols](usage/symbols.md)
- [Text](usage/text.md)
- - [Image](usage/images.md)
+ - [Images](usage/images.md)
- [Headers & Footers](usage/headers-and-footers.md)
- [Bullet Points](usage/bullet-points.md)
- [Hyperlinks](usage/hyperlinks.md)
@@ -23,10 +25,12 @@
- [Page Numbers](usage/page-numbers.md)
- [Change Tracking](usage/change-tracking.md)
- [Math](usage/math.md)
- - [Text Frames](usage/text-frames.md)
+ - [Comments](usage/comments.md)
+ - [Footnotes](usage/footnotes.md)
+ - [Fields](usage/fields.md)
- Styling
- _ [Styling with JS](usage/styling-with-js.md)
- _ [Styling with XML](usage/styling-with-xml.md)
+ - [Styling with JS](usage/styling-with-js.md)
+ - [Styling with XML](usage/styling-with-xml.md)
- Exporting
diff --git a/docs/usage/document.md b/docs/usage/document.md
index 0f1a12486a..818930e00e 100644
--- a/docs/usage/document.md
+++ b/docs/usage/document.md
@@ -22,20 +22,19 @@ const doc = new docx.Document({
### Full list of options:
-
-* creator
-* description
-* title
-* subject
-* keywords
-* lastModifiedBy
-* revision
-* externalStyles
-* styles
-* numbering
-* footnotes
-* hyperlinks
-* background
+- creator
+- description
+- title
+- subject
+- keywords
+- lastModifiedBy
+- revision
+- externalStyles
+- styles
+- numbering
+- footnotes
+- hyperlinks
+- background
### Change background color of Document
@@ -55,3 +54,87 @@ You can mix and match whatever properties you want, or provide no properties.
Various parts of the API require positioning arguments. The units are "20ths of a point" from the [OOXML](http://officeopenxml.com/index.php) specification.
See [Lars Corneliussen's blog post](https://startbigthinksmall.wordpress.com/2010/01/04/points-inches-and-emus-measuring-units-in-office-open-xml/) for more information and how to convert units.
+
+## Compatibility
+
+Compatibility Settings are optional settings used to preserve visual fidelity of documents created in earlier word processing applications. Some of these settings provide ability for specific behaviors, described in detail below; and others simply instruct applications to mimic the behavior of an existing word processing application.
+
+```ts
+const doc = new docx.Document({
+ compatibility: {
+ version: 15,
+ doNotExpandShiftReturn: true,
+ },
+});
+```
+
+### Compatibility Options
+
+| Property | Type | Notes | Possible Values |
+| ----------------------------------- | --------- | -------- | ---------------------------- |
+| version | `number` | Optional | `15`, `16`, `17` |
+| useSingleBorderforContiguousCells | `boolean` | Optional | `true`, `false`, `undefined` |
+| wordPerfectJustification | `boolean` | Optional | `true`, `false`, `undefined` |
+| noTabStopForHangingIndent | `boolean` | Optional | `true`, `false`, `undefined` |
+| noLeading | `boolean` | Optional | `true`, `false`, `undefined` |
+| spaceForUnderline | `boolean` | Optional | `true`, `false`, `undefined` |
+| noColumnBalance | `boolean` | Optional | `true`, `false`, `undefined` |
+| balanceSingleByteDoubleByteWidth | `boolean` | Optional | `true`, `false`, `undefined` |
+| noExtraLineSpacing | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotLeaveBackslashAlone | `boolean` | Optional | `true`, `false`, `undefined` |
+| underlineTrailingSpaces | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotExpandShiftReturn | `boolean` | Optional | `true`, `false`, `undefined` |
+| spacingInWholePoints | `boolean` | Optional | `true`, `false`, `undefined` |
+| lineWrapLikeWord6 | `boolean` | Optional | `true`, `false`, `undefined` |
+| printBodyTextBeforeHeader | `boolean` | Optional | `true`, `false`, `undefined` |
+| printColorsBlack | `boolean` | Optional | `true`, `false`, `undefined` |
+| spaceWidth | `boolean` | Optional | `true`, `false`, `undefined` |
+| showBreaksInFrames | `boolean` | Optional | `true`, `false`, `undefined` |
+| subFontBySize | `boolean` | Optional | `true`, `false`, `undefined` |
+| suppressBottomSpacing | `boolean` | Optional | `true`, `false`, `undefined` |
+| suppressTopSpacing | `boolean` | Optional | `true`, `false`, `undefined` |
+| suppressSpacingAtTopOfPage | `boolean` | Optional | `true`, `false`, `undefined` |
+| suppressTopSpacingWP | `boolean` | Optional | `true`, `false`, `undefined` |
+| suppressSpBfAfterPgBrk | `boolean` | Optional | `true`, `false`, `undefined` |
+| swapBordersFacingPages | `boolean` | Optional | `true`, `false`, `undefined` |
+| convertMailMergeEsc | `boolean` | Optional | `true`, `false`, `undefined` |
+| truncateFontHeightsLikeWP6 | `boolean` | Optional | `true`, `false`, `undefined` |
+| macWordSmallCaps | `boolean` | Optional | `true`, `false`, `undefined` |
+| usePrinterMetrics | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotSuppressParagraphBorders | `boolean` | Optional | `true`, `false`, `undefined` |
+| wrapTrailSpaces | `boolean` | Optional | `true`, `false`, `undefined` |
+| footnoteLayoutLikeWW8 | `boolean` | Optional | `true`, `false`, `undefined` |
+| shapeLayoutLikeWW8 | `boolean` | Optional | `true`, `false`, `undefined` |
+| alignTablesRowByRow | `boolean` | Optional | `true`, `false`, `undefined` |
+| forgetLastTabAlignment | `boolean` | Optional | `true`, `false`, `undefined` |
+| adjustLineHeightInTable | `boolean` | Optional | `true`, `false`, `undefined` |
+| autoSpaceLikeWord95 | `boolean` | Optional | `true`, `false`, `undefined` |
+| noSpaceRaiseLower | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotUseHTMLParagraphAutoSpacing | `boolean` | Optional | `true`, `false`, `undefined` |
+| layoutRawTableWidth | `boolean` | Optional | `true`, `false`, `undefined` |
+| layoutTableRowsApart | `boolean` | Optional | `true`, `false`, `undefined` |
+| useWord97LineBreakRules | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotBreakWrappedTables | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotSnapToGridInCell | `boolean` | Optional | `true`, `false`, `undefined` |
+| selectFieldWithFirstOrLastCharacter | `boolean` | Optional | `true`, `false`, `undefined` |
+| applyBreakingRules | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotWrapTextWithPunctuation | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotUseEastAsianBreakRules | `boolean` | Optional | `true`, `false`, `undefined` |
+| useWord2002TableStyleRules | `boolean` | Optional | `true`, `false`, `undefined` |
+| growAutofit | `boolean` | Optional | `true`, `false`, `undefined` |
+| useFELayout | `boolean` | Optional | `true`, `false`, `undefined` |
+| useNormalStyleForList | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotUseIndentAsNumberingTabStop | `boolean` | Optional | `true`, `false`, `undefined` |
+| useAlternateEastAsianLineBreakRules | `boolean` | Optional | `true`, `false`, `undefined` |
+| allowSpaceOfSameStyleInTable | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotSuppressIndentation | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotAutofitConstrainedTables | `boolean` | Optional | `true`, `false`, `undefined` |
+| autofitToFirstFixedWidthCell | `boolean` | Optional | `true`, `false`, `undefined` |
+| underlineTabInNumberingList | `boolean` | Optional | `true`, `false`, `undefined` |
+| displayHangulFixedWidth | `boolean` | Optional | `true`, `false`, `undefined` |
+| splitPgBreakAndParaMark | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotVerticallyAlignCellWithSp | `boolean` | Optional | `true`, `false`, `undefined` |
+| doNotBreakConstrainedForcedTable | `boolean` | Optional | `true`, `false`, `undefined` |
+| ignoreVerticalAlignmentInTextboxes | `boolean` | Optional | `true`, `false`, `undefined` |
+| useAnsiKerningPairs | `boolean` | Optional | `true`, `false`, `undefined` |
+| cachedColumnBalance | `boolean` | Optional | `true`, `false`, `undefined` |
diff --git a/docs/usage/images.md b/docs/usage/images.md
index 218d4e260c..1326a780b2 100644
--- a/docs/usage/images.md
+++ b/docs/usage/images.md
@@ -252,13 +252,36 @@ const image = new ImageRun({
});
```
+## Alternative Text
+
+Specifies common non-visual DrawingML properties. A name, title and description for a picture can be specified.
+
+```ts
+const image = new ImageRun({
+ data: fs.readFileSync("./demo/images/pizza.gif"),
+ altText: {
+ title: "This is an ultimate title",
+ description: "This is an ultimate image",
+ name: "My Ultimate Image",
+ },
+});
+```
+
+### Options
+
+| Property | Type | Notes | Possible Values |
+| ----------- | -------- | -------- | ------------------------------------ |
+| name | `string` | Required | `Specimen A` |
+| title | `string` | Required | `My awesome title of my image` |
+| description | `string` | Required | `My awesome description of my image` |
+
## Examples
### Add image to the document
Importing Images from file system path
-[Example](https://raw.githubusercontent.com/dolanmiu/docx/master/demo/5-images.ts ':include')
+[Example](https://raw.githubusercontent.com/dolanmiu/docx/master/demo/5-images.ts ":include")
_Source: https://github.com/dolanmiu/docx/blob/master/demo/5-images.ts_
@@ -266,7 +289,7 @@ _Source: https://github.com/dolanmiu/docx/blob/master/demo/5-images.ts_
Example showing how to add image to headers and footers
-[Example](https://raw.githubusercontent.com/dolanmiu/docx/master/demo/9-images-in-header-and-footer.ts ':include')
+[Example](https://raw.githubusercontent.com/dolanmiu/docx/master/demo/9-images-in-header-and-footer.ts ":include")
_Source: https://github.com/dolanmiu/docx/blob/master/demo/9-images-in-header-and-footer.ts_
@@ -274,6 +297,6 @@ _Source: https://github.com/dolanmiu/docx/blob/master/demo/9-images-in-header-an
Example showing how to float images on top of text and optimally give a `margin`
-[Example](https://raw.githubusercontent.com/dolanmiu/docx/master/demo/38-text-wrapping.ts ':include')
+[Example](https://raw.githubusercontent.com/dolanmiu/docx/master/demo/38-text-wrapping.ts ":include")
_Source: https://github.com/dolanmiu/docx/blob/master/demo/38-text-wrapping.ts_
diff --git a/docs/usage/numbering.md b/docs/usage/numbering.md
index 6203c3bb4b..ac3dfccde5 100644
--- a/docs/usage/numbering.md
+++ b/docs/usage/numbering.md
@@ -86,3 +86,34 @@ topLevelP.setNumbering(concrete, 0);
subP.setNumbering(concrete, 1);
subSubP.setNumbering(concrete, 2);
```
+
+## Unindent numbering
+
+Default:1. test
+
+After:1.test
+
+Use default numbering have indent,If you want unindent numbering
+
+How to custom number see the demo:
+https://runkit.com/dolanmiu/docx-demo3
+
+```ts
+
+enum LevelSuffix {
+ NOTHING = "nothing",
+ SPACE = "space",
+ TAB = "tab"
+}
+
+// custom numbering
+const levels=[
+{
+ level: 0,
+ format: "decimal",
+ text: "%1.",
+ alignment: AlignmentType.START,
+ suffix: LevelSuffix.NOTHING, // Cancel intent
+}]
+
+```
diff --git a/docs/usage/paragraph.md b/docs/usage/paragraph.md
index 29356854d9..65b7cc3eeb 100644
--- a/docs/usage/paragraph.md
+++ b/docs/usage/paragraph.md
@@ -60,29 +60,29 @@ const doc = new Document({
This is the list of options for a paragraph. A detailed explanation is below:
-| Property | Type | Mandatory? | Possible Values |
-| ------------------------------ | ------------------------------------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------- |
-| [text](#text) | `string` | Optional | |
-| [heading](#heading) | `HeadingLevel` | Optional | `HEADING_1`, `HEADING_2`, `HEADING_3`, `HEADING_4`, `HEADING_5`, `HEADING_6`, `TITLE` |
-| [border](#border) | `IBorderOptions` | Optional | `top`, `bottom`, `left`, `right`. Each of these are of type IBorderPropertyOptions. Click here for Example |
-| [spacing](#spacing) | `ISpacingProperties` | Optional | See below for ISpacingProperties |
-| [outlineLevel](#outline-level) | `number` | Optional | |
-| alignment | `AlignmentType` | Optional | |
-| heading | `HeadingLevel` | Optional | |
-| bidirectional | `boolean` | Optional | |
-| thematicBreak | `boolean` | Optional | |
-| pageBreakBefore | `boolean` | Optional | |
-| contextualSpacing | `boolean` | Optional | |
-| indent | `IIndentAttributesProperties` | Optional | |
-| keepLines | `boolean` | Optional | |
-| keepNext | `boolean` | Optional | |
-| children | `(TextRun or ImageRun or Hyperlink)[]` | Optional | |
-| style | `string` | Optional | |
-| [tabStop](usage/tab-stops) | `{ left?: ITabStopOptions; right?: ITabStopOptions; maxRight?: { leader: LeaderType; }; center?: ITabStopOptions }` | Optional | |
-| [bullet](usage/bullet-points) | `{ level: number }` | Optional | |
-| [numbering](usage/numbering) | `{ num: ConcreteNumbering; level: number; custom?: boolean }` | Optional | |
-| [widowControl](#widow-control) | `boolean` | Optional | |
-| [frame](usage/text-frames.md) | `IFrameOptions` | Optional | |
+| Property | Type | Mandatory? | Possible Values |
+| ------------------------------ | ------------------------------------------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [text](#text) | `string` | Optional | |
+| [heading](#heading) | `HeadingLevel` | Optional | `HEADING_1`, `HEADING_2`, `HEADING_3`, `HEADING_4`, `HEADING_5`, `HEADING_6`, `TITLE` |
+| [border](#border) | `IBorderOptions` | Optional | `top`, `bottom`, `left`, `right`. Each of these are of type IBorderPropertyOptions. Click here for Example |
+| [spacing](#spacing) | `ISpacingProperties` | Optional | See below for ISpacingProperties |
+| [outlineLevel](#outline-level) | `number` | Optional | |
+| alignment | `AlignmentType` | Optional | `START`, `CENTER`, `END`, `BOTH`, `MEDIUM_KASHIDA`, `DISTRIBUTE`, `NUM_TAB`, `HIGH_KASHIDA`, `LOW_KASHIDA`, `THAI_DISTRIBUTE`, `LEFT`, `RIGHT`, `JUSTIFIED` |
+| heading | `HeadingLevel` | Optional | |
+| bidirectional | `boolean` | Optional | |
+| thematicBreak | `boolean` | Optional | |
+| pageBreakBefore | `boolean` | Optional | |
+| contextualSpacing | `boolean` | Optional | |
+| indent | `IIndentAttributesProperties` | Optional | |
+| keepLines | `boolean` | Optional | |
+| keepNext | `boolean` | Optional | |
+| children | `(TextRun or ImageRun or Hyperlink)[]` | Optional | |
+| style | `string` | Optional | |
+| [tabStop](usage/tab-stops) | `{ left?: ITabStopOptions; right?: ITabStopOptions; maxRight?: { leader: LeaderType; }; center?: ITabStopOptions }` | Optional | |
+| [bullet](usage/bullet-points) | `{ level: number }` | Optional | |
+| [numbering](usage/numbering) | `{ num: ConcreteNumbering; level: number; custom?: boolean }` | Optional | |
+| [widowControl](#widow-control) | `boolean` | Optional | |
+| [frame](usage/text-frames.md) | `IFrameOptions` | Optional | |
## Text
@@ -180,12 +180,14 @@ Adding spacing between paragraphs
### ISpacingProperties
-| Property | Type | Notes | Possible Values |
-| -------- | -------------- | -------- | ----------------------------- |
-| after | `number` | Optional | |
-| before | `number` | Optional | |
-| line | `number` | Optional | |
-| lineRule | `LineRuleType` | Optional | `AT_LEAST`, `EXACTLY`, `AUTO` |
+| Property | Type | Notes | Possible Values |
+| -------- | -------------- | -------- | -------------------------------------- |
+| after | `number` | Optional | |
+| before | `number` | Optional | |
+| line | `number` | Optional | |
+| lineRule | `LineRuleType` | Optional | `AT_LEAST`, `EXACTLY`, `EXACT`, `AUTO` |
+
+Note: The `lineRule` property has different values depending on the version of Word you are using. The `EXACTLY` value is only available in Word 2016 and above. Use `EXACT` for greater support, including LibreOffice etc. Read this issue for more information: https://github.com/dolanmiu/docx/issues/1773.
**Example:**
diff --git a/docs/usage/text.md b/docs/usage/text.md
index 0b7b88686b..173aeabb74 100644
--- a/docs/usage/text.md
+++ b/docs/usage/text.md
@@ -151,6 +151,28 @@ const text = new TextRun({
});
```
+### Vanish and SpecVanish
+
+You may want to hide your text in your document.
+
+`Vanish` should affect the normal display of text, but an application may have settings to force hidden text to be displayed.
+
+```ts
+const text = new TextRun({
+ text: "This text will be hidden",
+ vanish: true,
+});
+```
+
+`SpecVanish` was typically used to ensure that a paragraph style can be applied to a part of a paragraph, and still appear as in the Table of Contents (which in previous word processors would ignore the use of the style if it were being used as a character style).
+
+```ts
+const text = new TextRun({
+ text: "This text will be hidden forever.",
+ specVanish: true,
+});
+```
+
## Break
Sometimes you would want to put text underneath another line of text but inside the same paragraph.
diff --git a/package-lock.json b/package-lock.json
index 53887b6ebc..0953680791 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
- "name": "@contractmill/docx",
- "version": "7.5.1",
+ "name": "docx",
+ "version": "7.7.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "@contractmill/docx",
- "version": "7.5.1",
+ "name": "docx",
+ "version": "7.7.0",
"license": "MIT",
"dependencies": {
"@types/node": "^18.0.0",
@@ -28,7 +28,7 @@
"@typescript-eslint/eslint-plugin": "^5.36.1",
"@typescript-eslint/parser": "^5.36.1",
"buffer": "^6.0.3",
- "chai": "^3.5.0",
+ "chai": "^4.3.6",
"cspell": "^6.2.2",
"docsify-cli": "^4.3.0",
"eslint": "^8.23.0",
@@ -58,10 +58,10 @@
"tsconfig-paths": "^4.0.0",
"tsconfig-paths-webpack-plugin": "^4.0.0",
"typedoc": "^0.23.2",
- "typescript": "4.8.4",
+ "typescript": "4.9.3",
"unzipper": "^0.10.11",
"webpack": "^5.28.0",
- "webpack-cli": "^4.6.0"
+ "webpack-cli": "^5.0.0"
},
"engines": {
"node": ">=10"
@@ -398,167 +398,167 @@
}
},
"node_modules/@cspell/cspell-bundled-dicts": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.12.0.tgz",
- "integrity": "sha512-myfsDwSJcAMjKbztKBG424wIp/YV9/lvxsgHFKxBGPi+nNx1p7TbOjAAO9EWk0mZVHyGKZwCFJS2ohkoqxJWoQ==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.14.3.tgz",
+ "integrity": "sha512-bgPBduoDi1jkrcLkmAwRG1c6F1iprF2yfBgEDT19dRG1kYuq/fLGNOcSmEp4CbApn8m0MmxsrhEp8O0Q9owQRQ==",
"dev": true,
"dependencies": {
- "@cspell/dict-ada": "^2.0.1",
- "@cspell/dict-aws": "^2.0.0",
- "@cspell/dict-bash": "^2.0.4",
- "@cspell/dict-companies": "^2.0.14",
- "@cspell/dict-cpp": "^3.2.1",
- "@cspell/dict-cryptocurrencies": "^2.0.0",
- "@cspell/dict-csharp": "^3.0.1",
- "@cspell/dict-css": "^2.1.0",
- "@cspell/dict-dart": "^1.1.1",
- "@cspell/dict-django": "^2.0.0",
- "@cspell/dict-docker": "^1.1.1",
- "@cspell/dict-dotnet": "^2.0.1",
- "@cspell/dict-elixir": "^2.0.1",
- "@cspell/dict-en_us": "^2.3.3",
- "@cspell/dict-en-gb": "^1.1.33",
- "@cspell/dict-filetypes": "^2.1.1",
- "@cspell/dict-fonts": "^2.1.0",
- "@cspell/dict-fullstack": "^2.0.6",
- "@cspell/dict-git": "^1.0.1",
- "@cspell/dict-golang": "^3.0.1",
- "@cspell/dict-haskell": "^2.0.1",
- "@cspell/dict-html": "^3.3.2",
- "@cspell/dict-html-symbol-entities": "^3.0.0",
- "@cspell/dict-java": "^3.0.7",
- "@cspell/dict-latex": "^2.0.9",
- "@cspell/dict-lorem-ipsum": "^2.0.1",
- "@cspell/dict-lua": "^2.0.0",
- "@cspell/dict-node": "^3.0.1",
- "@cspell/dict-npm": "^3.1.2",
- "@cspell/dict-php": "^2.0.0",
- "@cspell/dict-powershell": "^2.0.0",
- "@cspell/dict-public-licenses": "^1.0.6",
- "@cspell/dict-python": "^3.0.6",
- "@cspell/dict-r": "^1.0.3",
- "@cspell/dict-ruby": "^2.0.2",
- "@cspell/dict-rust": "^2.0.1",
- "@cspell/dict-scala": "^2.0.0",
- "@cspell/dict-software-terms": "^2.2.11",
- "@cspell/dict-sql": "^1.0.4",
- "@cspell/dict-swift": "^1.0.3",
- "@cspell/dict-typescript": "^2.0.2",
- "@cspell/dict-vue": "^2.0.2"
+ "@cspell/dict-ada": "^4.0.0",
+ "@cspell/dict-aws": "^3.0.0",
+ "@cspell/dict-bash": "^4.1.0",
+ "@cspell/dict-companies": "^3.0.3",
+ "@cspell/dict-cpp": "^4.0.0",
+ "@cspell/dict-cryptocurrencies": "^3.0.1",
+ "@cspell/dict-csharp": "^4.0.1",
+ "@cspell/dict-css": "^4.0.0",
+ "@cspell/dict-dart": "^2.0.0",
+ "@cspell/dict-django": "^4.0.0",
+ "@cspell/dict-docker": "^1.1.3",
+ "@cspell/dict-dotnet": "^4.0.0",
+ "@cspell/dict-elixir": "^4.0.0",
+ "@cspell/dict-en_us": "^4.1.0",
+ "@cspell/dict-en-gb": "1.1.33",
+ "@cspell/dict-filetypes": "^3.0.0",
+ "@cspell/dict-fonts": "^3.0.0",
+ "@cspell/dict-fullstack": "^3.0.0",
+ "@cspell/dict-git": "^2.0.0",
+ "@cspell/dict-golang": "^5.0.0",
+ "@cspell/dict-haskell": "^4.0.0",
+ "@cspell/dict-html": "^4.0.1",
+ "@cspell/dict-html-symbol-entities": "^4.0.0",
+ "@cspell/dict-java": "^5.0.2",
+ "@cspell/dict-latex": "^3.0.0",
+ "@cspell/dict-lorem-ipsum": "^3.0.0",
+ "@cspell/dict-lua": "^3.0.0",
+ "@cspell/dict-node": "^4.0.1",
+ "@cspell/dict-npm": "^4.0.1",
+ "@cspell/dict-php": "^3.0.3",
+ "@cspell/dict-powershell": "^3.0.0",
+ "@cspell/dict-public-licenses": "^2.0.0",
+ "@cspell/dict-python": "^4.0.0",
+ "@cspell/dict-r": "^2.0.0",
+ "@cspell/dict-ruby": "^3.0.0",
+ "@cspell/dict-rust": "^3.0.0",
+ "@cspell/dict-scala": "^3.0.0",
+ "@cspell/dict-software-terms": "^3.0.5",
+ "@cspell/dict-sql": "^2.0.0",
+ "@cspell/dict-swift": "^2.0.0",
+ "@cspell/dict-typescript": "^3.0.1",
+ "@cspell/dict-vue": "^3.0.0"
},
"engines": {
"node": ">=14"
}
},
"node_modules/@cspell/cspell-pipe": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.12.0.tgz",
- "integrity": "sha512-Nkm+tIJ5k+jZPovZCdmZhrWrwRFwnDq+7yCxhov0C7UX3hsSNtTJIpFuaCNEQJ+Whpvxdh1YKflvHiHYygEgTg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.14.3.tgz",
+ "integrity": "sha512-/mLZxJOK3/UFpnR4jrImKY5W4cn5XWjvQPXnFCEzpU0tAAF6GboJgWl30TegqFJjLVCKTNRMOtT1r6kgvb66zw==",
"dev": true,
"engines": {
"node": ">=14"
}
},
"node_modules/@cspell/cspell-service-bus": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.12.0.tgz",
- "integrity": "sha512-GgvciSeMUekl8z8vP8//cs5/qRQJSLz9IVREf6fxQW4upjw6zXZ1KonwPqOF5uLocIMAr8eCdrJzHKuKvigJIA==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.14.3.tgz",
+ "integrity": "sha512-89OWGBzhorhiWcFqFTeHl9Y6WTdd5MGC2XNNCVZLM3VTYaFx4DVkiyxWdkE7gHjYxvNdGSH54/fE18TqLc//dQ==",
"dev": true,
"engines": {
"node": ">=14"
}
},
"node_modules/@cspell/cspell-types": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.12.0.tgz",
- "integrity": "sha512-BcZTt05fNy9SGXfbPgUyxS4FfIaUpcVq8IOJ0noN+jsKsmlbssOUgJOB2ApN1h66FfWcKuFy/uNrjfcrQ7PTqg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.14.3.tgz",
+ "integrity": "sha512-u4Hun0vOQVkk3tJ6VzPjHVmv2dq0D6jYqX8pWLKWRwo38rdoIkdWseN359sWCz96tDM8g5rpSFdmecbWLU7BYg==",
"dev": true,
"engines": {
"node": ">=14"
}
},
"node_modules/@cspell/dict-ada": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-2.0.1.tgz",
- "integrity": "sha512-vopTJ1oHrrFYV5GU55Sr+AzItR78Uj5YbCaspYABmYKlq4NRrcUAUsr4bWgymDcspMIHO7e7IFcj48OKs1fndA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.0.tgz",
+ "integrity": "sha512-M0n4ZYmpLOXbDD07Qb/Ekk0K5pX2C+mCuJ2ZxPgbTq9HGlrN43PmqrGJHWcgtVHE3fd1D4VxS85QcQP6r1Y+KQ==",
"dev": true
},
"node_modules/@cspell/dict-aws": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-2.0.0.tgz",
- "integrity": "sha512-NKz7pDZ7pwj/b33i3f4WLpC1rOOUMmENwYgftxU+giU2YBeKM2wZbMTSEIzsrel56r0UlQYmdIVlP/B4nnVaoQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-3.0.0.tgz",
+ "integrity": "sha512-O1W6nd5y3Z00AMXQMzfiYrIJ1sTd9fB1oLr+xf/UD7b3xeHeMeYE2OtcWbt9uyeHim4tk+vkSTcmYEBKJgS5bQ==",
"dev": true
},
"node_modules/@cspell/dict-bash": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-2.0.4.tgz",
- "integrity": "sha512-uK/ehmp5LYrmRH2Gv3nbvdPswpkybJUn34WYKLpeuYHQktmi+pOI1A9uPdBPnSbMDffSvwQlQohIyKawz+X8Ag==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.0.tgz",
+ "integrity": "sha512-8pFL03ZKejynfbsa2UZ3iZ7BrT1TAGTD8ZlK822ioAb7aoDvQhYao2Bjz5cXU0uk7CyrlgsSnYX94sLfqDfTxQ==",
"dev": true
},
"node_modules/@cspell/dict-companies": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-2.0.14.tgz",
- "integrity": "sha512-Sq1X29Z05OZ/UNqTwVhf3/WaqvJQy4/S6gS8qYI5AQRX45gVe8CPhNBLmZOTC6z8m716bfQCxa5rRT9YNSdTZg==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.3.tgz",
+ "integrity": "sha512-qBWdwA97HdnLbxPLOUTZ+/mg9eYhi14hM7PEUM1PZ004MEIxQHum0IQpypKAwP3teR1KEsyxEPHp8v24Dw45Zg==",
"dev": true
},
"node_modules/@cspell/dict-cpp": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-3.2.1.tgz",
- "integrity": "sha512-XcmzrKIghqFfrYLLaHtWKOp9rupiuGdc5ODONk+emsq0W5CIc3Abn27IQHwUzxzF+Cm5IfKAIJ5Kpe6hkzm0HQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-4.0.0.tgz",
+ "integrity": "sha512-NrCmer14tTSbPs1TwqyCjFEmWCBw0UFvAn4O3pdWuxktArHxRJ5vUQOoL2Gus2H9s3ihhOJZkcuJ47Kd21E7BQ==",
"dev": true
},
"node_modules/@cspell/dict-cryptocurrencies": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-2.0.0.tgz",
- "integrity": "sha512-nREysmmfOp7L2YCRAUufQahwD5/Punzb5AZ6eyg4zUamdRWHgBFphb5/9h2flt1vgdUfhc6hZcML21Ci7iXjaA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-3.0.1.tgz",
+ "integrity": "sha512-Tdlr0Ahpp5yxtwM0ukC13V6+uYCI0p9fCRGMGZt36rWv8JQZHIuHfehNl7FB/Qc09NCF7p5ep0GXbL+sVTd/+w==",
"dev": true
},
"node_modules/@cspell/dict-csharp": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-3.0.1.tgz",
- "integrity": "sha512-xkfQu03F388w4sdVQSSjrVMkxAxpTYB2yW7nw0XYtTjl3L/jBgvTr/j1BTjdFbQhdNf10Lg0Ak1kXOjmHodVqA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.1.tgz",
+ "integrity": "sha512-BkfT6S790FcyWLTWYBwkj9dKxuNz4pHFDrj9GFrmqXd2HWzfSa944S0NJhal42TnW30JJljQY5P1ZYau+s2Pbg==",
"dev": true
},
"node_modules/@cspell/dict-css": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-2.1.0.tgz",
- "integrity": "sha512-glASAELcGhh4Ru0rTQ4G9mTQxSyPwsZOON/5BYflB6Kks8YC8nUvKrtMCoo5W7CPKPfSEa8zUNctFQ1+IUYDHA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.0.tgz",
+ "integrity": "sha512-ieSeG9KAJGIr5eK0JRWqD5KXstPPUw6JUTmGWc7P/qiqj/sjmhWqWKEt7HhoSNcb8uQxAkAoxhrNpfbKzqnKAw==",
"dev": true
},
"node_modules/@cspell/dict-dart": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-1.1.1.tgz",
- "integrity": "sha512-XBOCpezXrgFN18kGEwqMpTUGZdw4BjCoJrNOo6qBdcdZySCrEHLwELraLOkcSba2kM4stmTp0t59FkwtP8TKOA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.0.tgz",
+ "integrity": "sha512-p7vHszsu2uJt+F04gvNy1e5okypFfVEYHBWgpOV/Jrvs0F5A+gUzFTG2Ix9b1jkCigAULYKQkIGue+qlhSoK5Q==",
"dev": true
},
"node_modules/@cspell/dict-django": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-2.0.0.tgz",
- "integrity": "sha512-GkJdJv6cmzrKcmq2/oxTXjKF5uv71r4eTqnFmgPbNBW1t+G4VYpzOf0QrVQrhx2RC4DdW5XfcTf+iS0FxHOTmw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.0.0.tgz",
+ "integrity": "sha512-k0npSzQrPQSqjR2XtumV14sv9waTRMUzPx0UfOuJZcnCCZY8ofPeqFYoku+O+9Kc9etFOziOxnScshKVDzYWOQ==",
"dev": true
},
"node_modules/@cspell/dict-docker": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.1.tgz",
- "integrity": "sha512-UEYoeRDm7oUN9yz1mYSozz6D4+2N14S/cd2Re9et6Xzq6yi62s4ky3knF92Of2weelADjnN41UA22VBhRAf7Sw==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.3.tgz",
+ "integrity": "sha512-Iz7EQGnLBgnnmzCC8iLQ7JssCCQlCjZLiCs0qhooETWLifob3nzsI9AVBh3gkYLhISLIIjBpfa4LTknskT7LzA==",
"dev": true
},
"node_modules/@cspell/dict-dotnet": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-2.0.1.tgz",
- "integrity": "sha512-b1n4crJRW0WZVf9Gp/52j/tDtjYiZ3N81fIyfqPlBrjsh/5AivfA697DYwQ2mr8ngNX7RsqRtYNQjealA1rEnQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-4.0.0.tgz",
+ "integrity": "sha512-biZiTWyDqwVV2m+c17lLIliPDXPjOR1VwwmyMxvb3nFS84aP9x52SAVCf0w7Io1CIpUiY7XnG6/xeI7esYU78w==",
"dev": true
},
"node_modules/@cspell/dict-elixir": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-2.0.1.tgz",
- "integrity": "sha512-eTTTxZt1FqGkM780yFDxsGHvTbWqvlK8YISSccK8FyrB6ULW+uflQlNS5AnWg3uWKC48b7pQott+odYCsPJ+Ow==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.0.tgz",
+ "integrity": "sha512-0TqqdQjg/zu3wAjk2FQkZ87pPIS9tA9kl6he5NJB729ysrWhND/7aSPC48QrP46VZ+oFrvFZK8DC8ZlYs16cjQ==",
"dev": true
},
"node_modules/@cspell/dict-en_us": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-2.3.3.tgz",
- "integrity": "sha512-csyKeaNktfpvMkmE2GOPTwsrQm3wWhLKVaDRaGU0qTcIjDiCvqv/iYgrVrKRkoddA3kdNTZ8YNCcix7lb6VkOg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.1.0.tgz",
+ "integrity": "sha512-EnfxP/5U3kDhmTWcHV7Xs2Fxa9KAE5fbHm+4u8LGBOUZvSkZC5+ayjQ50CfEyTGuaI/946ITQYPRNxUZ7oqOiQ==",
"dev": true
},
"node_modules/@cspell/dict-en-gb": {
@@ -568,167 +568,176 @@
"dev": true
},
"node_modules/@cspell/dict-filetypes": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-2.1.1.tgz",
- "integrity": "sha512-Oo0/mUbFHzsaATqRLdkV1RMoYns3aGzeKFIpVJg415GYtJ8EABXtEArYTXeMwlboyGTPvEk+PR2hBSTSfQTqmg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.0.tgz",
+ "integrity": "sha512-Fiyp0z5uWaK0d2TfR9GMUGDKmUMAsOhGD5A0kHoqnNGswL2iw0KB0mFBONEquxU65fEnQv4R+jdM2d9oucujuA==",
"dev": true
},
"node_modules/@cspell/dict-fonts": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-2.1.0.tgz",
- "integrity": "sha512-hk7xsbfWEUhc136Xj7I2TD7ouKAfWwzCVAQaHBxcVXAsVxu7bDOGj4FvE2jBzlkSUY8A9Ww8qS0GOFvowJshVg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-3.0.0.tgz",
+ "integrity": "sha512-zTZni0AbwBVG1MKA0WpwPyIJPVF+gp6neXDQzHcu4RUnuQ4uDu0PVEuZjGHCJWwwFoR5JmkqZxVSg1y3ufJODA==",
"dev": true
},
"node_modules/@cspell/dict-fullstack": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-2.0.6.tgz",
- "integrity": "sha512-R2E2xvbHvvRwwurxfpBJDRIJjXBMfEPF5WNV3LTOEMRqkZtoYCeJK9aqc8LHlmJMtAbnN1cx//BCDIyTJ0rO0A==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.0.0.tgz",
+ "integrity": "sha512-BMQRTaeReLufjMwgWqqwPdrXQ7jkVGTv7/YvOLsHFZvcAP3eM7WqX+rvdXckLhJmuuzbceFRDKs5F/9Ig2x/tQ==",
"dev": true
},
"node_modules/@cspell/dict-git": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-1.0.1.tgz",
- "integrity": "sha512-Rk+eTof/9inF11lvxmkCRK+gODatA3qai8kSASv6OG/JfPvpj7fTHErx/rdgPw/LOTDUafnoTjTYmj7B2MOQXg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz",
+ "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==",
"dev": true
},
"node_modules/@cspell/dict-golang": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-3.0.1.tgz",
- "integrity": "sha512-0KNfXTbxHW2l8iVjxeOf+KFv9Qrw3z5cyKnkuYJWlBTSB5KcUBfeKCb4fsds26VdANqiy6U91b4gDx5kNEmBjQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-5.0.0.tgz",
+ "integrity": "sha512-Cbx4mVHsGbr5D+wlT0yU3n/0c5iLvciU48rSOQR7SCAzu5mTXyM1mqRu6nqnRiMv6G6mO50EL2LCTq6RZrlIOg==",
"dev": true
},
"node_modules/@cspell/dict-haskell": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-2.0.1.tgz",
- "integrity": "sha512-ooA23qIG7InOOxlLm67CNH5O2J85QsPHEAzEU9KEqVfYG5ovFs5tx6n9pHekDVk3MpQULpqfNUYDR0KigPLg5g==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.0.tgz",
+ "integrity": "sha512-U/DPpDoitGeUvduM9teDkDc1zs4Plgh0pNONDP3YbsEICErSlp1NfatD0i35Z6cR0C7I8uEe4gG2phG00zrSqw==",
"dev": true
},
"node_modules/@cspell/dict-html": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-3.3.2.tgz",
- "integrity": "sha512-cM5pQSEiqjrdk6cRFLrlLdWNT/J8399f/A6DjwjfYhHrGy0e/Rsjv76HZT0GlE1OqMoq9eG9jdQsfoYYgWTIpQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.1.tgz",
+ "integrity": "sha512-q5fCzkoOz+8BW79qLrnANEDnG+Jb2WS2fXERxg9xwgKBXwXUxH8ttGVNhfkLpNWe/UMm00U1IZMnVGyYLNTO5w==",
"dev": true
},
"node_modules/@cspell/dict-html-symbol-entities": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-3.0.0.tgz",
- "integrity": "sha512-04K7cPTcbYXmHICfiob4gZA1yaj4hpfM+Nl5WIJ1EAZsSGHdqmGEF28GuCjyQ8ZeKiJAsPt/vXuLBbjxkHqZyQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz",
+ "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==",
"dev": true
},
"node_modules/@cspell/dict-java": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-3.0.7.tgz",
- "integrity": "sha512-IL7ubsRvKX6dZSx++TplJCfhiS7kkEGpbTPG0gMEP50DTNAVM4icZS8zmer2UBCU5PTwF85abJjdX7mRADWKVg==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.2.tgz",
+ "integrity": "sha512-HWgdp8plZOdYjOkndwmgHGVxoewylZcl886PqSL6TMcDshyI0+2nePft31nIuALRvt7HL8IX++DM1uk4UfY4kg==",
"dev": true
},
"node_modules/@cspell/dict-latex": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-2.0.9.tgz",
- "integrity": "sha512-d1kTK6dJb5z6UcfASQWjqQlsjZvnoVOvMWxYtLpGksYf6gM4IgqoPVNMLYYK6xBS4T/uAnLIj975A6YuAeyZpg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-3.0.0.tgz",
+ "integrity": "sha512-QsRWj+Jll4ueVbce8ofKa743oQ2exmbVNZN70MaMbmu8PSbjW2+Rj3OdExVStesANMj7qc20inS/TgPr8DrInQ==",
"dev": true
},
"node_modules/@cspell/dict-lorem-ipsum": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-2.0.1.tgz",
- "integrity": "sha512-s7Ft8UiloUJwgz4z8uLeFvCkeTcZ43HQl7mSAlZd76eW+keLSsdeGmLDx2zaciqo+MftPGyzygVCwaJjTGxiew==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-3.0.0.tgz",
+ "integrity": "sha512-msEV24qEpzWZs2kcEicqYlhyBpR0amfDkJOs+iffC07si9ftqtQ+yP3lf1VFLpgqw3SQh1M1vtU7RD4sPrNlcQ==",
"dev": true
},
"node_modules/@cspell/dict-lua": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-2.0.0.tgz",
- "integrity": "sha512-7WUEBEspSKtsq104WdIys1+DLqAxpJPzw74Py1TuE3fI5GvlzeSZkRFP2ya54GB2lCO4C3mq4M8EnitpibVDfw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-3.0.0.tgz",
+ "integrity": "sha512-WOhSCgS5wMxkGQJ8siB90iTB9ElquJB7FeqYSbJqqs6cUwH8G7MM/CEDPL6h7vCo0+v3GuxQ8yKWDSUcUhz9Lg==",
"dev": true
},
"node_modules/@cspell/dict-node": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-3.0.1.tgz",
- "integrity": "sha512-sK2cpuV0EAc43Amd5xeQXkI9MeRTECMw+yjap06gKSModbgI7BqJUHeKZed+0Hii+LpaJ4TYpLGiRVsO+qSk0w==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.1.tgz",
+ "integrity": "sha512-4EmT5yZFitdwnG0hYEd+Ek19zzD81Bp+n7w0kglZKldS5AvapwW6GM/SAps5YMQQc5zZMi+bMgV7NIzapREqUg==",
"dev": true
},
"node_modules/@cspell/dict-npm": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-3.1.2.tgz",
- "integrity": "sha512-dg4M38nrCCeBOYKVqPG91JPJ67j9LygPeNnu5fa7E9Z1eho3fkYHvfKlF3t4EZyAOxEobp0ZB0iXaCuX2YknlA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-4.0.1.tgz",
+ "integrity": "sha512-jNKImVG5ZX+Pp6PhbSR3TmC9+0ROx09dGhSgUsZyvXV5CGEr+OQGJtNL98TGwU3pP2Xjc++qnHA/XPwB5WvLfA==",
"dev": true
},
"node_modules/@cspell/dict-php": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-2.0.0.tgz",
- "integrity": "sha512-29WgU77eTO985LvMHwPi1pcpfopfCWfTdffDyqya0JIfOSaFUrlYKzGPkE4mRxcz2G3hXsaM0SRvBNdIRwEdUg==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-3.0.3.tgz",
+ "integrity": "sha512-7dvXdPTfbIF2xEob9w94/eV5SU8BkYoN0R7EQghXi0fcF7T1unK+JwDgfoEs6wqApB5aCVYwguiaj8HGX2IRIQ==",
"dev": true
},
"node_modules/@cspell/dict-powershell": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-2.0.0.tgz",
- "integrity": "sha512-6uvEhLiGmG3u9TFkM1TYcky6aL9Yk7Sk3KJwoTYBaQJY2KqrprgyQtW6yxIw9oU52VRHlq3KKvSAA9Q26+SIkQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-3.0.0.tgz",
+ "integrity": "sha512-pkztY9Ak4oc33q+Qxcn9/CTOKo4N8YIRRE6v67WwQOncA5QIJfcOPUrjfR3Z8SpzElXhu3s9qtWWSqbCy6qmcA==",
"dev": true
},
"node_modules/@cspell/dict-public-licenses": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-1.0.6.tgz",
- "integrity": "sha512-Z9IUFPkkOpOsEdgPUfQOJNQ+qU6+iBAZWS/CR5sUqTX+s5VkPNVwQyVC2kdmgmE2U5qwzAPewG6nVKr2MVogwg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.0.tgz",
+ "integrity": "sha512-NdMHnS6xiYJKlzVoTV5CBhMiDpXMZ/PDcvXiOpxeR50xkjR18O/XFP4f4eDZpxGiBSUCMFRWf4JjILJ04Rpcfg==",
"dev": true
},
"node_modules/@cspell/dict-python": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-3.0.6.tgz",
- "integrity": "sha512-tzxJ4sd9ZGhAUKg/WJJpQGDNtoHvM8Wn+iS2+PnQj2/LTHBW4mnaCogsGsBtYu8C4b2+BEQs+tc5808AeEfLug==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.0.0.tgz",
+ "integrity": "sha512-MC6CKbYOly3Ig25ZnhlCzPbE/QozqfQv4VYW6HcoMQ5IbHu33ddf2lzkZ89qTXlxsF5NT5qfZEkQYHYuhuL6AQ==",
"dev": true
},
"node_modules/@cspell/dict-r": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-1.0.3.tgz",
- "integrity": "sha512-u2qeXd4cx/TvTVcmkvA+sK6f4K1uMAMO6QPMSr1pSvqGElPRP1mIBXmuiSuBzLO3LbsJuUEHw5Cp3/bxIB6rNA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.0.tgz",
+ "integrity": "sha512-rdt1cKc3VL2uXJ2X088gRhTFreN/MkJWK1jccW1EWdFHLzDwhKfrlAkoLCp0paD6HvmloLQ+eSR09D58DdsYfA==",
"dev": true
},
"node_modules/@cspell/dict-ruby": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-2.0.2.tgz",
- "integrity": "sha512-vVnUpSmGDbPjs7MHq741DsLHhQcoA4CnUCM9wsTorQ9AQRDAkDTbK/LcY8nM19MoXCb3eF8PFku5Jq+gqH0u7w==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-3.0.0.tgz",
+ "integrity": "sha512-sA98T8Y1Pmq3RStVkO14E8vTWkq6JUn8c8PldiMyYgV0yfQgwhQfFAzlSfF3Gg2B0VkIdqt2et2SPN7f9wp7fQ==",
"dev": true
},
"node_modules/@cspell/dict-rust": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-2.0.1.tgz",
- "integrity": "sha512-ATDpIh0VWpQdUIZa8zqqJY4wQz3q00BTXlQCodeOmObYSb23+L6KWWzJ8mKLgpbc1lqTkogWrqxiCxlrCmqNmg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-3.0.0.tgz",
+ "integrity": "sha512-L1T1IBsYJZVDmfOGAbVLcpc6arWxRRCSJYvHSwEDBGrNuMyJ4jx/NvBEz5crcKf4vVKgwVlXgzQlJJZ8AVxU9w==",
"dev": true
},
"node_modules/@cspell/dict-scala": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-2.0.0.tgz",
- "integrity": "sha512-MUwA2YKpqaQOSR4V1/CVGRNk8Ii5kf6I8Ch+4/BhRZRQXuwWbi21rDRYWPqdQWps7VNzAbbMA+PQDWsD5YY38g==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-3.0.0.tgz",
+ "integrity": "sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==",
"dev": true
},
"node_modules/@cspell/dict-software-terms": {
- "version": "2.2.11",
- "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-2.2.11.tgz",
- "integrity": "sha512-PZ8EqFSCEoJzcH/bp/+c2ze6aCK/8u5b7Qt1+O2Cwzmr8VLVZIVcpHpELnh4IvT4MRvzfa2WCDoUSofPwAfrsg==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.0.5.tgz",
+ "integrity": "sha512-xZVcX1zsIUbLvUc/RX+YgJRvbHaGMcdkRR+Vw8UoLjmhnT0yXWLds5uwRwAVjlQIrIcHylfDWuG70Cq5nmJHfA==",
"dev": true
},
"node_modules/@cspell/dict-sql": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-1.0.4.tgz",
- "integrity": "sha512-+9nMcwsCzdYH0tyv2LeuVvQ+DdecS2C1N+hw6sl0FTHWI5GwULHAGW840RBwcKw0s+dl7sc0WpZhS1EW7b0pXg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.0.0.tgz",
+ "integrity": "sha512-J3X8VSgWpc/4McQEs138abtBw/SO3Z+vGaYi5X7XV1pKPBxjupHTTNQHSS/HWUDmVWj6fR3OV+ZGptcmvv3Clg==",
"dev": true
},
"node_modules/@cspell/dict-swift": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-1.0.3.tgz",
- "integrity": "sha512-yOBLSaRD0AnkkkndJ8PuB82Evp6lA2xItf2AWsnPfCCgxp5Ojk6uUBC/WQBSkzkCAOGbXyHsu9D97tsOx2c6cw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.0.tgz",
+ "integrity": "sha512-VStJ0fKPPNIXKmxJrbGH6vKNtJCwAnQatfSH0fVj+Unf3QHHlmuLKRG0cN0aVgEIolpRkxNXJcSB3CPbYr0Xhw==",
"dev": true
},
"node_modules/@cspell/dict-typescript": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-2.0.2.tgz",
- "integrity": "sha512-OIoSJsCw9WHX4eDikoF5/0QbptMPZjElOcMYdYCyV03nqV5n4ot72ysTexW95yW4+fQU6uDPNQvnrUnhXXEkTA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.0.1.tgz",
+ "integrity": "sha512-nKEtOpj+rJNIUK268/mCFDCIv1MWFdK1efm9YL4q1q3NHT+qCKhkXoA0eG8k4AaDIpsvebB8CgNIYFPxY92r4A==",
"dev": true
},
"node_modules/@cspell/dict-vue": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-2.0.2.tgz",
- "integrity": "sha512-/MB0RS0Gn01s4pgmjy0FvsLfr3RRMrRphEuvTRserNcM8XVtoIVAtrjig/Gg0DPwDrN8Clm0L1j7iQay6S8D0g==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz",
+ "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==",
"dev": true
},
+ "node_modules/@cspell/strong-weak-map": {
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.14.3.tgz",
+ "integrity": "sha512-/FTvcywuwfFTMEpRabL8+rqB/ezSjvMp6todO0SwL/agYQmRIuTvTYLh0Ikq430oVnjo7LDgztW0tHq38UlFLw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.6"
+ }
+ },
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
@@ -751,9 +760,9 @@
}
},
"node_modules/@es-joy/jsdoccomment": {
- "version": "0.31.0",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz",
- "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==",
+ "version": "0.36.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.0.tgz",
+ "integrity": "sha512-u0XZyvUF6Urb2cSivSXA8qXIpT/CxkHcdtZKoWusAzgzmsTWpg0F2FpWXsolHmMUyVY3dLWaoy+0ccJ5uf2QjA==",
"dev": true,
"dependencies": {
"comment-parser": "1.3.1",
@@ -761,13 +770,13 @@
"jsdoc-type-pratt-parser": "~3.1.0"
},
"engines": {
- "node": "^14 || ^16 || ^17 || ^18"
+ "node": "^14 || ^16 || ^17 || ^18 || ^19"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz",
- "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
+ "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
@@ -841,9 +850,9 @@
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.5.tgz",
- "integrity": "sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==",
+ "version": "0.11.6",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
+ "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
"dev": true,
"dependencies": {
"@humanwhocodes/object-schema": "^1.2.1",
@@ -877,16 +886,6 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
- "node_modules/@humanwhocodes/gitignore-to-minimatch": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz",
- "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -1047,23 +1046,14 @@
}
},
"node_modules/@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
+ "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
"dev": true,
"dependencies": {
"type-detect": "4.0.8"
}
},
- "node_modules/@sinonjs/commons/node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@sinonjs/fake-timers": {
"version": "9.1.2",
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
@@ -1073,30 +1063,30 @@
"@sinonjs/commons": "^1.7.0"
}
},
- "node_modules/@sinonjs/samsam": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz",
- "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==",
+ "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz",
+ "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==",
"dev": true,
"dependencies": {
- "@sinonjs/commons": "^1.6.0",
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/samsam": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz",
+ "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^2.0.0",
"lodash.get": "^4.4.2",
"type-detect": "^4.0.8"
}
},
- "node_modules/@sinonjs/samsam/node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@sinonjs/text-encoding": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
- "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
+ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
"dev": true
},
"node_modules/@szmarczak/http-timer": {
@@ -1148,9 +1138,9 @@
"dev": true
},
"node_modules/@types/chai": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz",
- "integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz",
+ "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==",
"dev": true
},
"node_modules/@types/color-name": {
@@ -1220,9 +1210,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "18.7.23",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz",
- "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg=="
+ "version": "18.11.9",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
+ "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg=="
},
"node_modules/@types/normalize-package-data": {
"version": "2.4.1",
@@ -1237,9 +1227,9 @@
"dev": true
},
"node_modules/@types/prompt": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@types/prompt/-/prompt-1.1.3.tgz",
- "integrity": "sha512-y1fMzb7a/mQs4tynU8agMmV8ptbT0dkgNafrdsoEyLtbCggK5COJ/r5DGcaAHB5kdXTGh+8trHlENlsZkm+tOQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@types/prompt/-/prompt-1.1.4.tgz",
+ "integrity": "sha512-FLMcf+ol+eUJALeIYWLjQl0hYw86G0PIg7D5+4jJHwr/wKI8p3R0u+oKLbyRkzCxb7e0pHixyCj7UgSv7I/TJQ==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -1288,6 +1278,12 @@
"integrity": "sha512-q6KSi3PklLGQ0CesZ/XuLwly4DXXlnJuucYOG9lrBqrP8rKiuPZThav2h2+pFjaheNpnT0qKK3i304QWIePeJw==",
"dev": true
},
+ "node_modules/@types/semver": {
+ "version": "7.3.12",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz",
+ "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==",
+ "dev": true
+ },
"node_modules/@types/shelljs": {
"version": "0.8.11",
"resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.11.tgz",
@@ -1340,16 +1336,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.1.tgz",
- "integrity": "sha512-ky7EFzPhqz3XlhS7vPOoMDaQnQMn+9o5ICR9CPr/6bw8HrFkzhMSxuA3gRfiJVvs7geYrSeawGJjZoZQKCOglQ==",
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz",
+ "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/type-utils": "5.38.1",
- "@typescript-eslint/utils": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.43.0",
+ "@typescript-eslint/type-utils": "5.43.0",
+ "@typescript-eslint/utils": "5.43.0",
"debug": "^4.3.4",
"ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
"regexpp": "^3.2.0",
"semver": "^7.3.7",
"tsutils": "^3.21.0"
@@ -1371,6 +1368,53 @@
}
}
},
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz",
+ "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz",
+ "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz",
+ "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.43.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -1428,14 +1472,14 @@
"dev": true
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.38.1.tgz",
- "integrity": "sha512-LDqxZBVFFQnQRz9rUZJhLmox+Ep5kdUmLatLQnCRR6523YV+XhRjfYzStQ4MheFA8kMAfUlclHSbu+RKdRwQKw==",
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz",
+ "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/typescript-estree": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.43.0",
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/typescript-estree": "5.43.0",
"debug": "^4.3.4"
},
"engines": {
@@ -1454,37 +1498,14 @@
}
}
},
- "node_modules/@typescript-eslint/parser/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz",
+ "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==",
"dev": true,
"dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.38.1.tgz",
- "integrity": "sha512-BfRDq5RidVU3RbqApKmS7RFMtkyWMM50qWnDAkKgQiezRtLKsoyRKIvz1Ok5ilRWeD9IuHvaidaLxvGx/2eqTQ==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/visitor-keys": "5.38.1"
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1494,60 +1515,10 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.38.1.tgz",
- "integrity": "sha512-UU3j43TM66gYtzo15ivK2ZFoDFKKP0k03MItzLdq0zV92CeGCXRfXlfQX5ILdd4/DSpHkSjIgLLLh1NtkOJOAw==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/typescript-estree": "5.38.1",
- "@typescript-eslint/utils": "5.38.1",
- "debug": "^4.3.4",
- "tsutils": "^3.21.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/type-utils/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/type-utils/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@typescript-eslint/types": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.38.1.tgz",
- "integrity": "sha512-QTW1iHq1Tffp9lNfbfPm4WJabbvpyaehQ0SrvVK2yfV79SytD9XDVxqiPvdrv2LK7DGSFo91TB2FgWanbJAZXg==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz",
+ "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1557,14 +1528,14 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.1.tgz",
- "integrity": "sha512-99b5e/Enoe8fKMLdSuwrfH/C0EIbpUWmeEKHmQlGZb8msY33qn1KlkFww0z26o5Omx7EVjzVDCWEfrfCDHfE7g==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz",
+ "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/visitor-keys": "5.38.1",
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -1584,7 +1555,24 @@
}
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": {
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz",
+ "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.43.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
@@ -1601,7 +1589,7 @@
}
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
+ "node_modules/@typescript-eslint/parser/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
@@ -1613,16 +1601,16 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": {
+ "node_modules/@typescript-eslint/parser/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "node_modules/@typescript-eslint/parser/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -1634,24 +1622,166 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
+ "node_modules/@typescript-eslint/parser/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz",
+ "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.43.0",
+ "@typescript-eslint/utils": "5.43.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz",
+ "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz",
+ "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz",
+ "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.43.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/@typescript-eslint/utils": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.38.1.tgz",
- "integrity": "sha512-oIuUiVxPBsndrN81oP8tXnFa/+EcZ03qLqPDfSZ5xIJVm7A9V0rlkQwwBOAGtrdN70ZKDlKv+l1BeT4eSFxwXA==",
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz",
+ "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/typescript-estree": "5.38.1",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.43.0",
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/typescript-estree": "5.43.0",
"eslint-scope": "^5.1.1",
- "eslint-utils": "^3.0.0"
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1664,13 +1794,70 @@
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.1.tgz",
- "integrity": "sha512-bSHr1rRxXt54+j2n4k54p4fj8AHJ49VDWtjpImOpzQj4qjAiOpPni+V1Tyajh19Api1i844F757cur8wH3YvOA==",
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz",
+ "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.38.1",
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz",
+ "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz",
+ "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz",
+ "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.43.0",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -1681,10 +1868,60 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
+ "node_modules/@typescript-eslint/utils/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/@webassemblyjs/ast": {
@@ -1834,34 +2071,42 @@
}
},
"node_modules/@webpack-cli/configtest": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz",
- "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.0.tgz",
+ "integrity": "sha512-war4OU8NGjBqU3DP3bx6ciODXIh7dSXcpQq+P4K2Tqyd8L5OjZ7COx9QXx/QdCIwL2qoX09Wr4Cwf7uS4qdEng==",
"dev": true,
+ "engines": {
+ "node": ">=14.15.0"
+ },
"peerDependencies": {
- "webpack": "4.x.x || 5.x.x",
- "webpack-cli": "4.x.x"
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
}
},
"node_modules/@webpack-cli/info": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz",
- "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.0.tgz",
+ "integrity": "sha512-NNxDgbo4VOkNhOlTgY0Elhz3vKpOJq4/PKeKg7r8cmYM+GQA9vDofLYyup8jS6EpUvhNmR30cHTCEIyvXpskwA==",
"dev": true,
- "dependencies": {
- "envinfo": "^7.7.3"
+ "engines": {
+ "node": ">=14.15.0"
},
"peerDependencies": {
- "webpack-cli": "4.x.x"
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
}
},
"node_modules/@webpack-cli/serve": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz",
- "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.0.tgz",
+ "integrity": "sha512-Rumq5mHvGXamnOh3O8yLk1sjx8dB30qF1OeR6VC00DIR6SLJ4bwwUGKC4pE7qBFoQyyh0H9sAg3fikYgAqVR0w==",
"dev": true,
+ "engines": {
+ "node": ">=14.15.0"
+ },
"peerDependencies": {
- "webpack-cli": "4.x.x"
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
},
"peerDependenciesMeta": {
"webpack-dev-server": {
@@ -2526,17 +2771,21 @@
"dev": true
},
"node_modules/chai": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
- "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
+ "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
"dev": true,
"dependencies": {
- "assertion-error": "^1.0.1",
- "deep-eql": "^0.1.3",
- "type-detect": "^1.0.0"
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^4.1.2",
+ "get-func-name": "^2.0.0",
+ "loupe": "^2.3.1",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
},
"engines": {
- "node": ">= 0.4.0"
+ "node": ">=4"
}
},
"node_modules/chainsaw": {
@@ -2565,6 +2814,15 @@
"node": ">=4"
}
},
+ "node_modules/check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -2753,6 +3011,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/commander": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
"node_modules/comment-json": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz",
@@ -2868,9 +3135,9 @@
"dev": true
},
"node_modules/cosmiconfig": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
- "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"dev": true,
"dependencies": {
"@types/parse-json": "^4.0.0",
@@ -2925,24 +3192,24 @@
}
},
"node_modules/cspell": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.12.0.tgz",
- "integrity": "sha512-ny4xVEPYFP2jVf5w71Mnk4HKj6RbPH+CMSzUrOMbYVVNnQUj3GLfzy5DrSFLG0zGa353ZRC4/s9MsEvnAL8mkA==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.14.3.tgz",
+ "integrity": "sha512-DimVpUiw2iOSvO1daOTtOWjmryVZdFnPmjPhyhWZUqakOEgE2MgoBuk3cFzXqb8GsGXHQh5PqiWr1rqIkQ99qA==",
"dev": true,
"dependencies": {
- "@cspell/cspell-pipe": "^6.12.0",
+ "@cspell/cspell-pipe": "6.14.3",
"chalk": "^4.1.2",
- "commander": "^9.4.0",
- "cspell-gitignore": "^6.12.0",
- "cspell-glob": "^6.12.0",
- "cspell-lib": "^6.12.0",
+ "commander": "^9.4.1",
+ "cspell-gitignore": "6.14.3",
+ "cspell-glob": "6.14.3",
+ "cspell-lib": "6.14.3",
"fast-json-stable-stringify": "^2.1.0",
"file-entry-cache": "^6.0.1",
"fs-extra": "^10.1.0",
"get-stdin": "^8.0.0",
"glob": "^8.0.3",
"imurmurhash": "^0.1.4",
- "semver": "^7.3.7",
+ "semver": "^7.3.8",
"strip-ansi": "^6.0.1",
"vscode-uri": "^3.0.6"
},
@@ -2957,14 +3224,14 @@
}
},
"node_modules/cspell-dictionary": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.12.0.tgz",
- "integrity": "sha512-I2cXSdXndt9H7yXmJzLTjgui/SAPGghXwxFeibTbvF68gyQYD5fUXvOygEIPrOEySKlAIb+aouV77SgoURxMHw==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.14.3.tgz",
+ "integrity": "sha512-yIqJEZZj36j1CmmjAiuQOYZM6T62Ih7k35DhAU1hYVARUEEnFN/Uz72UkDj2SAmURVn2On+bAmZ5zCx0JZzf2g==",
"dev": true,
"dependencies": {
- "@cspell/cspell-pipe": "^6.12.0",
- "@cspell/cspell-types": "^6.12.0",
- "cspell-trie-lib": "^6.12.0",
+ "@cspell/cspell-pipe": "6.14.3",
+ "@cspell/cspell-types": "6.14.3",
+ "cspell-trie-lib": "6.14.3",
"fast-equals": "^4.0.3",
"gensequence": "^4.0.2"
},
@@ -2973,12 +3240,12 @@
}
},
"node_modules/cspell-gitignore": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.12.0.tgz",
- "integrity": "sha512-gtsN2AAvqdE8CHVzpxsQcd/Wn5GAMTjzHpDXX71g/k8IJn743poGU06O0O1WSVAgK0fWTRsfg+V5OegA1TAo7A==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.14.3.tgz",
+ "integrity": "sha512-CZTGxx3msF6p1Z0xgLe5LXXvve7DooSuRMBMdGn230usce1nKoxpPoPxgs+zXeCpi+FanykKnoZkdRvjolMpOA==",
"dev": true,
"dependencies": {
- "cspell-glob": "^6.12.0",
+ "cspell-glob": "6.14.3",
"find-up": "^5.0.0"
},
"bin": {
@@ -2989,9 +3256,9 @@
}
},
"node_modules/cspell-glob": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.12.0.tgz",
- "integrity": "sha512-Q0rMGTxDyFFPm1LmHYM0ziuxQt2aXgr8Oi1glA2s0dBs0hg1DexlAEoLwLiMDUwSTvibEKIidPzlrmZ1AUDWEg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.14.3.tgz",
+ "integrity": "sha512-ISwCK8GqM/dnvtaxA17w1MPmMzFLOqdTz+JWIcR4at47T9qd8bNB0X0P4eqyuqgsbKkWbfnSlsYlEjRHTi4a7A==",
"dev": true,
"dependencies": {
"micromatch": "^4.0.5"
@@ -3001,13 +3268,13 @@
}
},
"node_modules/cspell-grammar": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.12.0.tgz",
- "integrity": "sha512-WXcDiWJ2pTW0jHY0Bf0DW5s8A9S0a+2tsVZsNxE/0CR5P/8yDSnznE+59uok/JN+GXOKQ6VIaqAZA3/XjDZuuA==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.14.3.tgz",
+ "integrity": "sha512-Nz8tYUmstyKcFlXbxdw4N8NsQ2ZY/5ztNfouokk47LKaTAS0LyWlLSkZUxN016fMY2h+C+3dI+jaut2H/rtNew==",
"dev": true,
"dependencies": {
- "@cspell/cspell-pipe": "^6.12.0",
- "@cspell/cspell-types": "^6.12.0"
+ "@cspell/cspell-pipe": "6.14.3",
+ "@cspell/cspell-types": "6.14.3"
},
"bin": {
"cspell-grammar": "bin.js"
@@ -3017,12 +3284,12 @@
}
},
"node_modules/cspell-io": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.12.0.tgz",
- "integrity": "sha512-1faxDj2OMgq61w7GaiXZD7ytks6PksJlG484LMl2USv58jDky4i2lujJs1C/+aP97Box9EcdwzydHX9GpnqqCw==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.14.3.tgz",
+ "integrity": "sha512-EbH+qopgWIzr9SZCGDsF4AWYgucN4QzYeAgyXjTbV9RnNIGKOKovMe3vN9nxjOZyPKv2TvmgU+uMXDM61iObRw==",
"dev": true,
"dependencies": {
- "@cspell/cspell-service-bus": "^6.12.0",
+ "@cspell/cspell-service-bus": "6.14.3",
"node-fetch": "^2.6.7"
},
"engines": {
@@ -3030,23 +3297,24 @@
}
},
"node_modules/cspell-lib": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.12.0.tgz",
- "integrity": "sha512-IKd2MzH/zoiXohc26Lqb1b8i+41Y2xGreyAe9ihv/7Z2dscGGVy7F/2taZvZK9kJIhaz33Yatxfx3htT6w0hqg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.14.3.tgz",
+ "integrity": "sha512-RJT5Tbe0UCMCtqDWRujjxq9u23sc2XylIpDP7MnpLx8wLVgFv2WPzESYNRGZqceqZYwBAPnpqS9h2ANxXSi8UQ==",
"dev": true,
"dependencies": {
- "@cspell/cspell-bundled-dicts": "^6.12.0",
- "@cspell/cspell-pipe": "^6.12.0",
- "@cspell/cspell-types": "^6.12.0",
+ "@cspell/cspell-bundled-dicts": "6.14.3",
+ "@cspell/cspell-pipe": "6.14.3",
+ "@cspell/cspell-types": "6.14.3",
+ "@cspell/strong-weak-map": "6.14.3",
"clear-module": "^4.1.2",
"comment-json": "^4.2.3",
"configstore": "^5.0.1",
- "cosmiconfig": "^7.0.1",
- "cspell-dictionary": "^6.12.0",
- "cspell-glob": "^6.12.0",
- "cspell-grammar": "^6.12.0",
- "cspell-io": "^6.12.0",
- "cspell-trie-lib": "^6.12.0",
+ "cosmiconfig": "^7.1.0",
+ "cspell-dictionary": "6.14.3",
+ "cspell-glob": "6.14.3",
+ "cspell-grammar": "6.14.3",
+ "cspell-io": "6.14.3",
+ "cspell-trie-lib": "6.14.3",
"fast-equals": "^4.0.3",
"find-up": "^5.0.0",
"fs-extra": "^10.1.0",
@@ -3058,7 +3326,7 @@
"vscode-uri": "^3.0.6"
},
"engines": {
- "node": ">=14"
+ "node": ">=14.6"
}
},
"node_modules/cspell-lib/node_modules/fs-extra": {
@@ -3097,13 +3365,13 @@
}
},
"node_modules/cspell-trie-lib": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.12.0.tgz",
- "integrity": "sha512-SJOdb51Wy3ewaKfttZwc9NYOIXaKlhyr+ykYKBExj3qMfV1J4d4iDLE95FriaRcqnq6X/qEM9jUvZHlvadDk3A==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.14.3.tgz",
+ "integrity": "sha512-WVa5gbD9glsZ4c60qPD5RTwojKc5ooxw/Gn+HC9CBdWv5rE1AmM1V3yVWhYx2ZMbJufboBrzmSjJB9qdmUl3oA==",
"dev": true,
"dependencies": {
- "@cspell/cspell-pipe": "^6.12.0",
- "@cspell/cspell-types": "^6.12.0",
+ "@cspell/cspell-pipe": "6.14.3",
+ "@cspell/cspell-types": "6.14.3",
"fs-extra": "^10.1.0",
"gensequence": "^4.0.2"
},
@@ -3204,15 +3472,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "node_modules/cspell/node_modules/commander": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
- "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || >=14"
- }
- },
"node_modules/cspell/node_modules/fs-extra": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
@@ -3261,9 +3520,9 @@
}
},
"node_modules/cspell/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -3366,24 +3625,15 @@
}
},
"node_modules/deep-eql": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
- "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.2.tgz",
+ "integrity": "sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==",
"dev": true,
"dependencies": {
- "type-detect": "0.1.1"
+ "type-detect": "^4.0.0"
},
"engines": {
- "node": "*"
- }
- },
- "node_modules/deep-eql/node_modules/type-detect": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
- "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
- "dev": true,
- "engines": {
- "node": "*"
+ "node": ">=6"
}
},
"node_modules/deep-extend": {
@@ -3964,15 +4214,15 @@
}
},
"node_modules/eslint": {
- "version": "8.24.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz",
- "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==",
+ "version": "8.27.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz",
+ "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==",
"dev": true,
"dependencies": {
- "@eslint/eslintrc": "^1.3.2",
- "@humanwhocodes/config-array": "^0.10.5",
- "@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
+ "@eslint/eslintrc": "^1.3.3",
+ "@humanwhocodes/config-array": "^0.11.6",
"@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -3988,14 +4238,14 @@
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
- "glob-parent": "^6.0.1",
+ "glob-parent": "^6.0.2",
"globals": "^13.15.0",
- "globby": "^11.1.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
"js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
@@ -4077,9 +4327,9 @@
"dev": true
},
"node_modules/eslint-plugin-functional": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-functional/-/eslint-plugin-functional-4.4.0.tgz",
- "integrity": "sha512-DY/Iax9knIgzvxhVeSe+KoF9e4imLvzCvUEN1a+bWciDiBi3s1CG/1fw7AQVXoAqoNw9eYuP7C2u3OtHzMFy+A==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-functional/-/eslint-plugin-functional-4.4.1.tgz",
+ "integrity": "sha512-YhSfHS52Si62Sn126g9wGx+XnWMoWhwEt6ctVXfcJj+xMUiggjOqUVMca7fuLNzX8jYiNBIeU1Y0teHGePZ3NA==",
"dev": true,
"dependencies": {
"@typescript-eslint/utils": "^5.10.2",
@@ -4213,21 +4463,21 @@
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "39.3.6",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.6.tgz",
- "integrity": "sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==",
+ "version": "39.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.6.2.tgz",
+ "integrity": "sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A==",
"dev": true,
"dependencies": {
- "@es-joy/jsdoccomment": "~0.31.0",
+ "@es-joy/jsdoccomment": "~0.36.0",
"comment-parser": "1.3.1",
"debug": "^4.3.4",
"escape-string-regexp": "^4.0.0",
"esquery": "^1.4.0",
- "semver": "^7.3.7",
+ "semver": "^7.3.8",
"spdx-expression-parse": "^3.0.1"
},
"engines": {
- "node": "^14 || ^16 || ^17 || ^18"
+ "node": "^14 || ^16 || ^17 || ^18 || ^19"
},
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0"
@@ -4281,9 +4531,9 @@
"dev": true
},
"node_modules/eslint-plugin-jsdoc/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -4323,9 +4573,9 @@
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "44.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-44.0.0.tgz",
- "integrity": "sha512-GbkxkdNzY7wNEfZnraAP+oA+aqqzSrNZmO37kjW1DyqnSK/ah08ySDdIecObpx46twv+zcQvH8i0CHP98Wo64w==",
+ "version": "44.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-44.0.2.tgz",
+ "integrity": "sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.19.1",
@@ -5281,6 +5531,15 @@
"node": "6.* || 8.* || >= 10.*"
}
},
+ "node_modules/get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/get-intrinsic": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
@@ -6755,7 +7014,7 @@
"node_modules/lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
"dev": true
},
"node_modules/lodash.merge": {
@@ -6850,6 +7109,15 @@
"node": ">=8"
}
},
+ "node_modules/loupe": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
+ "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
+ "dev": true,
+ "dependencies": {
+ "get-func-name": "^2.0.0"
+ }
+ },
"node_modules/lowercase-keys": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
@@ -7045,12 +7313,11 @@
}
},
"node_modules/mocha": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz",
- "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz",
+ "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==",
"dev": true,
"dependencies": {
- "@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
"chokidar": "3.5.3",
@@ -7283,6 +7550,12 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
+ "node_modules/natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
@@ -7296,18 +7569,36 @@
"dev": true
},
"node_modules/nise": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz",
- "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.2.tgz",
+ "integrity": "sha512-+gQjFi8v+tkfCuSCxfURHLhRhniE/+IaYbIphxAN2JRR9SHKhY8hgXpaXiYfHdw+gcGe4buxgbprBQFab9FkhA==",
"dev": true,
"dependencies": {
- "@sinonjs/commons": "^1.8.3",
- "@sinonjs/fake-timers": ">=5",
+ "@sinonjs/commons": "^2.0.0",
+ "@sinonjs/fake-timers": "^7.0.4",
"@sinonjs/text-encoding": "^0.7.1",
"just-extend": "^4.0.2",
"path-to-regexp": "^1.7.0"
}
},
+ "node_modules/nise/node_modules/@sinonjs/fake-timers": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz",
+ "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz",
+ "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
"node_modules/node-fetch": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
@@ -7958,7 +8249,7 @@
"node_modules/path-to-regexp/node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
"dev": true
},
"node_modules/path-type": {
@@ -7970,6 +8261,15 @@
"node": ">=8"
}
},
+ "node_modules/pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -9057,16 +9357,16 @@
"dev": true
},
"node_modules/sinon": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz",
- "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==",
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz",
+ "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==",
"dev": true,
"dependencies": {
- "@sinonjs/commons": "^1.8.3",
+ "@sinonjs/commons": "^2.0.0",
"@sinonjs/fake-timers": "^9.1.2",
- "@sinonjs/samsam": "^6.1.1",
+ "@sinonjs/samsam": "^7.0.1",
"diff": "^5.0.0",
- "nise": "^5.1.1",
+ "nise": "^5.1.2",
"supports-color": "^7.2.0"
},
"funding": {
@@ -9955,12 +10255,12 @@
}
},
"node_modules/type-detect": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
- "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
"engines": {
- "node": "*"
+ "node": ">=4"
}
},
"node_modules/type-fest": {
@@ -9988,9 +10288,9 @@
}
},
"node_modules/typedoc": {
- "version": "0.23.15",
- "resolved": "http://registry.npmjs.org/typedoc/-/typedoc-0.23.15.tgz",
- "integrity": "sha512-x9Zu+tTnwxb9YdVr+zvX7LYzyBl1nieOr6lrSHbHsA22/RJK2m4Y525WIg5Mj4jWCmfL47v6f4hUzY7EIuwS5w==",
+ "version": "0.23.21",
+ "resolved": "http://registry.npmjs.org/typedoc/-/typedoc-0.23.21.tgz",
+ "integrity": "sha512-VNE9Jv7BgclvyH9moi2mluneSviD43dCE9pY8RWkO88/DrEgJZk9KpUk7WO468c9WWs/+aG6dOnoH7ccjnErhg==",
"dev": true,
"dependencies": {
"lunr": "^2.3.9",
@@ -10005,7 +10305,7 @@
"node": ">= 14.14"
},
"peerDependencies": {
- "typescript": "4.6.x || 4.7.x || 4.8.x"
+ "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x"
}
},
"node_modules/typedoc/node_modules/brace-expansion": {
@@ -10030,9 +10330,9 @@
}
},
"node_modules/typescript": {
- "version": "4.8.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
- "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
+ "version": "4.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
+ "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -10325,9 +10625,9 @@
"dev": true
},
"node_modules/webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
+ "version": "5.75.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
+ "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
"dev": true,
"dependencies": {
"@types/eslint-scope": "^3.7.3",
@@ -10372,44 +10672,42 @@
}
},
"node_modules/webpack-cli": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz",
- "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.0.tgz",
+ "integrity": "sha512-AACDTo20yG+xn6HPW5xjbn2Be4KUzQPebWXsDMHwPPyKh9OnTOJgZN2Nc+g/FZKV3ObRTYsGvibAvc+5jAUrVA==",
"dev": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.2.0",
- "@webpack-cli/info": "^1.5.0",
- "@webpack-cli/serve": "^1.7.0",
+ "@webpack-cli/configtest": "^2.0.0",
+ "@webpack-cli/info": "^2.0.0",
+ "@webpack-cli/serve": "^2.0.0",
"colorette": "^2.0.14",
- "commander": "^7.0.0",
+ "commander": "^9.4.1",
"cross-spawn": "^7.0.3",
+ "envinfo": "^7.7.3",
"fastest-levenshtein": "^1.0.12",
"import-local": "^3.0.2",
- "interpret": "^2.2.0",
- "rechoir": "^0.7.0",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
"webpack-merge": "^5.7.3"
},
"bin": {
"webpack-cli": "bin/cli.js"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">=14.15.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "webpack": "4.x.x || 5.x.x"
+ "webpack": "5.x.x"
},
"peerDependenciesMeta": {
"@webpack-cli/generators": {
"optional": true
},
- "@webpack-cli/migrate": {
- "optional": true
- },
"webpack-bundle-analyzer": {
"optional": true
},
@@ -10418,15 +10716,6 @@
}
}
},
- "node_modules/webpack-cli/node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
"node_modules/webpack-cli/node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -10442,24 +10731,24 @@
}
},
"node_modules/webpack-cli/node_modules/interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
+ "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
"dev": true,
"engines": {
- "node": ">= 0.10"
+ "node": ">=10.13.0"
}
},
"node_modules/webpack-cli/node_modules/rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
"dev": true,
"dependencies": {
- "resolve": "^1.9.0"
+ "resolve": "^1.20.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/webpack-cli/node_modules/shebang-command": {
@@ -11234,155 +11523,155 @@
"dev": true
},
"@cspell/cspell-bundled-dicts": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.12.0.tgz",
- "integrity": "sha512-myfsDwSJcAMjKbztKBG424wIp/YV9/lvxsgHFKxBGPi+nNx1p7TbOjAAO9EWk0mZVHyGKZwCFJS2ohkoqxJWoQ==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.14.3.tgz",
+ "integrity": "sha512-bgPBduoDi1jkrcLkmAwRG1c6F1iprF2yfBgEDT19dRG1kYuq/fLGNOcSmEp4CbApn8m0MmxsrhEp8O0Q9owQRQ==",
"dev": true,
"requires": {
- "@cspell/dict-ada": "^2.0.1",
- "@cspell/dict-aws": "^2.0.0",
- "@cspell/dict-bash": "^2.0.4",
- "@cspell/dict-companies": "^2.0.14",
- "@cspell/dict-cpp": "^3.2.1",
- "@cspell/dict-cryptocurrencies": "^2.0.0",
- "@cspell/dict-csharp": "^3.0.1",
- "@cspell/dict-css": "^2.1.0",
- "@cspell/dict-dart": "^1.1.1",
- "@cspell/dict-django": "^2.0.0",
- "@cspell/dict-docker": "^1.1.1",
- "@cspell/dict-dotnet": "^2.0.1",
- "@cspell/dict-elixir": "^2.0.1",
- "@cspell/dict-en_us": "^2.3.3",
- "@cspell/dict-en-gb": "^1.1.33",
- "@cspell/dict-filetypes": "^2.1.1",
- "@cspell/dict-fonts": "^2.1.0",
- "@cspell/dict-fullstack": "^2.0.6",
- "@cspell/dict-git": "^1.0.1",
- "@cspell/dict-golang": "^3.0.1",
- "@cspell/dict-haskell": "^2.0.1",
- "@cspell/dict-html": "^3.3.2",
- "@cspell/dict-html-symbol-entities": "^3.0.0",
- "@cspell/dict-java": "^3.0.7",
- "@cspell/dict-latex": "^2.0.9",
- "@cspell/dict-lorem-ipsum": "^2.0.1",
- "@cspell/dict-lua": "^2.0.0",
- "@cspell/dict-node": "^3.0.1",
- "@cspell/dict-npm": "^3.1.2",
- "@cspell/dict-php": "^2.0.0",
- "@cspell/dict-powershell": "^2.0.0",
- "@cspell/dict-public-licenses": "^1.0.6",
- "@cspell/dict-python": "^3.0.6",
- "@cspell/dict-r": "^1.0.3",
- "@cspell/dict-ruby": "^2.0.2",
- "@cspell/dict-rust": "^2.0.1",
- "@cspell/dict-scala": "^2.0.0",
- "@cspell/dict-software-terms": "^2.2.11",
- "@cspell/dict-sql": "^1.0.4",
- "@cspell/dict-swift": "^1.0.3",
- "@cspell/dict-typescript": "^2.0.2",
- "@cspell/dict-vue": "^2.0.2"
+ "@cspell/dict-ada": "^4.0.0",
+ "@cspell/dict-aws": "^3.0.0",
+ "@cspell/dict-bash": "^4.1.0",
+ "@cspell/dict-companies": "^3.0.3",
+ "@cspell/dict-cpp": "^4.0.0",
+ "@cspell/dict-cryptocurrencies": "^3.0.1",
+ "@cspell/dict-csharp": "^4.0.1",
+ "@cspell/dict-css": "^4.0.0",
+ "@cspell/dict-dart": "^2.0.0",
+ "@cspell/dict-django": "^4.0.0",
+ "@cspell/dict-docker": "^1.1.3",
+ "@cspell/dict-dotnet": "^4.0.0",
+ "@cspell/dict-elixir": "^4.0.0",
+ "@cspell/dict-en_us": "^4.1.0",
+ "@cspell/dict-en-gb": "1.1.33",
+ "@cspell/dict-filetypes": "^3.0.0",
+ "@cspell/dict-fonts": "^3.0.0",
+ "@cspell/dict-fullstack": "^3.0.0",
+ "@cspell/dict-git": "^2.0.0",
+ "@cspell/dict-golang": "^5.0.0",
+ "@cspell/dict-haskell": "^4.0.0",
+ "@cspell/dict-html": "^4.0.1",
+ "@cspell/dict-html-symbol-entities": "^4.0.0",
+ "@cspell/dict-java": "^5.0.2",
+ "@cspell/dict-latex": "^3.0.0",
+ "@cspell/dict-lorem-ipsum": "^3.0.0",
+ "@cspell/dict-lua": "^3.0.0",
+ "@cspell/dict-node": "^4.0.1",
+ "@cspell/dict-npm": "^4.0.1",
+ "@cspell/dict-php": "^3.0.3",
+ "@cspell/dict-powershell": "^3.0.0",
+ "@cspell/dict-public-licenses": "^2.0.0",
+ "@cspell/dict-python": "^4.0.0",
+ "@cspell/dict-r": "^2.0.0",
+ "@cspell/dict-ruby": "^3.0.0",
+ "@cspell/dict-rust": "^3.0.0",
+ "@cspell/dict-scala": "^3.0.0",
+ "@cspell/dict-software-terms": "^3.0.5",
+ "@cspell/dict-sql": "^2.0.0",
+ "@cspell/dict-swift": "^2.0.0",
+ "@cspell/dict-typescript": "^3.0.1",
+ "@cspell/dict-vue": "^3.0.0"
}
},
"@cspell/cspell-pipe": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.12.0.tgz",
- "integrity": "sha512-Nkm+tIJ5k+jZPovZCdmZhrWrwRFwnDq+7yCxhov0C7UX3hsSNtTJIpFuaCNEQJ+Whpvxdh1YKflvHiHYygEgTg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.14.3.tgz",
+ "integrity": "sha512-/mLZxJOK3/UFpnR4jrImKY5W4cn5XWjvQPXnFCEzpU0tAAF6GboJgWl30TegqFJjLVCKTNRMOtT1r6kgvb66zw==",
"dev": true
},
"@cspell/cspell-service-bus": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.12.0.tgz",
- "integrity": "sha512-GgvciSeMUekl8z8vP8//cs5/qRQJSLz9IVREf6fxQW4upjw6zXZ1KonwPqOF5uLocIMAr8eCdrJzHKuKvigJIA==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.14.3.tgz",
+ "integrity": "sha512-89OWGBzhorhiWcFqFTeHl9Y6WTdd5MGC2XNNCVZLM3VTYaFx4DVkiyxWdkE7gHjYxvNdGSH54/fE18TqLc//dQ==",
"dev": true
},
"@cspell/cspell-types": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.12.0.tgz",
- "integrity": "sha512-BcZTt05fNy9SGXfbPgUyxS4FfIaUpcVq8IOJ0noN+jsKsmlbssOUgJOB2ApN1h66FfWcKuFy/uNrjfcrQ7PTqg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.14.3.tgz",
+ "integrity": "sha512-u4Hun0vOQVkk3tJ6VzPjHVmv2dq0D6jYqX8pWLKWRwo38rdoIkdWseN359sWCz96tDM8g5rpSFdmecbWLU7BYg==",
"dev": true
},
"@cspell/dict-ada": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-2.0.1.tgz",
- "integrity": "sha512-vopTJ1oHrrFYV5GU55Sr+AzItR78Uj5YbCaspYABmYKlq4NRrcUAUsr4bWgymDcspMIHO7e7IFcj48OKs1fndA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.0.tgz",
+ "integrity": "sha512-M0n4ZYmpLOXbDD07Qb/Ekk0K5pX2C+mCuJ2ZxPgbTq9HGlrN43PmqrGJHWcgtVHE3fd1D4VxS85QcQP6r1Y+KQ==",
"dev": true
},
"@cspell/dict-aws": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-2.0.0.tgz",
- "integrity": "sha512-NKz7pDZ7pwj/b33i3f4WLpC1rOOUMmENwYgftxU+giU2YBeKM2wZbMTSEIzsrel56r0UlQYmdIVlP/B4nnVaoQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-3.0.0.tgz",
+ "integrity": "sha512-O1W6nd5y3Z00AMXQMzfiYrIJ1sTd9fB1oLr+xf/UD7b3xeHeMeYE2OtcWbt9uyeHim4tk+vkSTcmYEBKJgS5bQ==",
"dev": true
},
"@cspell/dict-bash": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-2.0.4.tgz",
- "integrity": "sha512-uK/ehmp5LYrmRH2Gv3nbvdPswpkybJUn34WYKLpeuYHQktmi+pOI1A9uPdBPnSbMDffSvwQlQohIyKawz+X8Ag==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.0.tgz",
+ "integrity": "sha512-8pFL03ZKejynfbsa2UZ3iZ7BrT1TAGTD8ZlK822ioAb7aoDvQhYao2Bjz5cXU0uk7CyrlgsSnYX94sLfqDfTxQ==",
"dev": true
},
"@cspell/dict-companies": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-2.0.14.tgz",
- "integrity": "sha512-Sq1X29Z05OZ/UNqTwVhf3/WaqvJQy4/S6gS8qYI5AQRX45gVe8CPhNBLmZOTC6z8m716bfQCxa5rRT9YNSdTZg==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.3.tgz",
+ "integrity": "sha512-qBWdwA97HdnLbxPLOUTZ+/mg9eYhi14hM7PEUM1PZ004MEIxQHum0IQpypKAwP3teR1KEsyxEPHp8v24Dw45Zg==",
"dev": true
},
"@cspell/dict-cpp": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-3.2.1.tgz",
- "integrity": "sha512-XcmzrKIghqFfrYLLaHtWKOp9rupiuGdc5ODONk+emsq0W5CIc3Abn27IQHwUzxzF+Cm5IfKAIJ5Kpe6hkzm0HQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-4.0.0.tgz",
+ "integrity": "sha512-NrCmer14tTSbPs1TwqyCjFEmWCBw0UFvAn4O3pdWuxktArHxRJ5vUQOoL2Gus2H9s3ihhOJZkcuJ47Kd21E7BQ==",
"dev": true
},
"@cspell/dict-cryptocurrencies": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-2.0.0.tgz",
- "integrity": "sha512-nREysmmfOp7L2YCRAUufQahwD5/Punzb5AZ6eyg4zUamdRWHgBFphb5/9h2flt1vgdUfhc6hZcML21Ci7iXjaA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-3.0.1.tgz",
+ "integrity": "sha512-Tdlr0Ahpp5yxtwM0ukC13V6+uYCI0p9fCRGMGZt36rWv8JQZHIuHfehNl7FB/Qc09NCF7p5ep0GXbL+sVTd/+w==",
"dev": true
},
"@cspell/dict-csharp": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-3.0.1.tgz",
- "integrity": "sha512-xkfQu03F388w4sdVQSSjrVMkxAxpTYB2yW7nw0XYtTjl3L/jBgvTr/j1BTjdFbQhdNf10Lg0Ak1kXOjmHodVqA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.1.tgz",
+ "integrity": "sha512-BkfT6S790FcyWLTWYBwkj9dKxuNz4pHFDrj9GFrmqXd2HWzfSa944S0NJhal42TnW30JJljQY5P1ZYau+s2Pbg==",
"dev": true
},
"@cspell/dict-css": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-2.1.0.tgz",
- "integrity": "sha512-glASAELcGhh4Ru0rTQ4G9mTQxSyPwsZOON/5BYflB6Kks8YC8nUvKrtMCoo5W7CPKPfSEa8zUNctFQ1+IUYDHA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.0.tgz",
+ "integrity": "sha512-ieSeG9KAJGIr5eK0JRWqD5KXstPPUw6JUTmGWc7P/qiqj/sjmhWqWKEt7HhoSNcb8uQxAkAoxhrNpfbKzqnKAw==",
"dev": true
},
"@cspell/dict-dart": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-1.1.1.tgz",
- "integrity": "sha512-XBOCpezXrgFN18kGEwqMpTUGZdw4BjCoJrNOo6qBdcdZySCrEHLwELraLOkcSba2kM4stmTp0t59FkwtP8TKOA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.0.tgz",
+ "integrity": "sha512-p7vHszsu2uJt+F04gvNy1e5okypFfVEYHBWgpOV/Jrvs0F5A+gUzFTG2Ix9b1jkCigAULYKQkIGue+qlhSoK5Q==",
"dev": true
},
"@cspell/dict-django": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-2.0.0.tgz",
- "integrity": "sha512-GkJdJv6cmzrKcmq2/oxTXjKF5uv71r4eTqnFmgPbNBW1t+G4VYpzOf0QrVQrhx2RC4DdW5XfcTf+iS0FxHOTmw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.0.0.tgz",
+ "integrity": "sha512-k0npSzQrPQSqjR2XtumV14sv9waTRMUzPx0UfOuJZcnCCZY8ofPeqFYoku+O+9Kc9etFOziOxnScshKVDzYWOQ==",
"dev": true
},
"@cspell/dict-docker": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.1.tgz",
- "integrity": "sha512-UEYoeRDm7oUN9yz1mYSozz6D4+2N14S/cd2Re9et6Xzq6yi62s4ky3knF92Of2weelADjnN41UA22VBhRAf7Sw==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.3.tgz",
+ "integrity": "sha512-Iz7EQGnLBgnnmzCC8iLQ7JssCCQlCjZLiCs0qhooETWLifob3nzsI9AVBh3gkYLhISLIIjBpfa4LTknskT7LzA==",
"dev": true
},
"@cspell/dict-dotnet": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-2.0.1.tgz",
- "integrity": "sha512-b1n4crJRW0WZVf9Gp/52j/tDtjYiZ3N81fIyfqPlBrjsh/5AivfA697DYwQ2mr8ngNX7RsqRtYNQjealA1rEnQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-4.0.0.tgz",
+ "integrity": "sha512-biZiTWyDqwVV2m+c17lLIliPDXPjOR1VwwmyMxvb3nFS84aP9x52SAVCf0w7Io1CIpUiY7XnG6/xeI7esYU78w==",
"dev": true
},
"@cspell/dict-elixir": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-2.0.1.tgz",
- "integrity": "sha512-eTTTxZt1FqGkM780yFDxsGHvTbWqvlK8YISSccK8FyrB6ULW+uflQlNS5AnWg3uWKC48b7pQott+odYCsPJ+Ow==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.0.tgz",
+ "integrity": "sha512-0TqqdQjg/zu3wAjk2FQkZ87pPIS9tA9kl6he5NJB729ysrWhND/7aSPC48QrP46VZ+oFrvFZK8DC8ZlYs16cjQ==",
"dev": true
},
"@cspell/dict-en_us": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-2.3.3.tgz",
- "integrity": "sha512-csyKeaNktfpvMkmE2GOPTwsrQm3wWhLKVaDRaGU0qTcIjDiCvqv/iYgrVrKRkoddA3kdNTZ8YNCcix7lb6VkOg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.1.0.tgz",
+ "integrity": "sha512-EnfxP/5U3kDhmTWcHV7Xs2Fxa9KAE5fbHm+4u8LGBOUZvSkZC5+ayjQ50CfEyTGuaI/946ITQYPRNxUZ7oqOiQ==",
"dev": true
},
"@cspell/dict-en-gb": {
@@ -11392,165 +11681,171 @@
"dev": true
},
"@cspell/dict-filetypes": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-2.1.1.tgz",
- "integrity": "sha512-Oo0/mUbFHzsaATqRLdkV1RMoYns3aGzeKFIpVJg415GYtJ8EABXtEArYTXeMwlboyGTPvEk+PR2hBSTSfQTqmg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.0.tgz",
+ "integrity": "sha512-Fiyp0z5uWaK0d2TfR9GMUGDKmUMAsOhGD5A0kHoqnNGswL2iw0KB0mFBONEquxU65fEnQv4R+jdM2d9oucujuA==",
"dev": true
},
"@cspell/dict-fonts": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-2.1.0.tgz",
- "integrity": "sha512-hk7xsbfWEUhc136Xj7I2TD7ouKAfWwzCVAQaHBxcVXAsVxu7bDOGj4FvE2jBzlkSUY8A9Ww8qS0GOFvowJshVg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-3.0.0.tgz",
+ "integrity": "sha512-zTZni0AbwBVG1MKA0WpwPyIJPVF+gp6neXDQzHcu4RUnuQ4uDu0PVEuZjGHCJWwwFoR5JmkqZxVSg1y3ufJODA==",
"dev": true
},
"@cspell/dict-fullstack": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-2.0.6.tgz",
- "integrity": "sha512-R2E2xvbHvvRwwurxfpBJDRIJjXBMfEPF5WNV3LTOEMRqkZtoYCeJK9aqc8LHlmJMtAbnN1cx//BCDIyTJ0rO0A==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.0.0.tgz",
+ "integrity": "sha512-BMQRTaeReLufjMwgWqqwPdrXQ7jkVGTv7/YvOLsHFZvcAP3eM7WqX+rvdXckLhJmuuzbceFRDKs5F/9Ig2x/tQ==",
"dev": true
},
"@cspell/dict-git": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-1.0.1.tgz",
- "integrity": "sha512-Rk+eTof/9inF11lvxmkCRK+gODatA3qai8kSASv6OG/JfPvpj7fTHErx/rdgPw/LOTDUafnoTjTYmj7B2MOQXg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz",
+ "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==",
"dev": true
},
"@cspell/dict-golang": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-3.0.1.tgz",
- "integrity": "sha512-0KNfXTbxHW2l8iVjxeOf+KFv9Qrw3z5cyKnkuYJWlBTSB5KcUBfeKCb4fsds26VdANqiy6U91b4gDx5kNEmBjQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-5.0.0.tgz",
+ "integrity": "sha512-Cbx4mVHsGbr5D+wlT0yU3n/0c5iLvciU48rSOQR7SCAzu5mTXyM1mqRu6nqnRiMv6G6mO50EL2LCTq6RZrlIOg==",
"dev": true
},
"@cspell/dict-haskell": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-2.0.1.tgz",
- "integrity": "sha512-ooA23qIG7InOOxlLm67CNH5O2J85QsPHEAzEU9KEqVfYG5ovFs5tx6n9pHekDVk3MpQULpqfNUYDR0KigPLg5g==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.0.tgz",
+ "integrity": "sha512-U/DPpDoitGeUvduM9teDkDc1zs4Plgh0pNONDP3YbsEICErSlp1NfatD0i35Z6cR0C7I8uEe4gG2phG00zrSqw==",
"dev": true
},
"@cspell/dict-html": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-3.3.2.tgz",
- "integrity": "sha512-cM5pQSEiqjrdk6cRFLrlLdWNT/J8399f/A6DjwjfYhHrGy0e/Rsjv76HZT0GlE1OqMoq9eG9jdQsfoYYgWTIpQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.1.tgz",
+ "integrity": "sha512-q5fCzkoOz+8BW79qLrnANEDnG+Jb2WS2fXERxg9xwgKBXwXUxH8ttGVNhfkLpNWe/UMm00U1IZMnVGyYLNTO5w==",
"dev": true
},
"@cspell/dict-html-symbol-entities": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-3.0.0.tgz",
- "integrity": "sha512-04K7cPTcbYXmHICfiob4gZA1yaj4hpfM+Nl5WIJ1EAZsSGHdqmGEF28GuCjyQ8ZeKiJAsPt/vXuLBbjxkHqZyQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz",
+ "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==",
"dev": true
},
"@cspell/dict-java": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-3.0.7.tgz",
- "integrity": "sha512-IL7ubsRvKX6dZSx++TplJCfhiS7kkEGpbTPG0gMEP50DTNAVM4icZS8zmer2UBCU5PTwF85abJjdX7mRADWKVg==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.2.tgz",
+ "integrity": "sha512-HWgdp8plZOdYjOkndwmgHGVxoewylZcl886PqSL6TMcDshyI0+2nePft31nIuALRvt7HL8IX++DM1uk4UfY4kg==",
"dev": true
},
"@cspell/dict-latex": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-2.0.9.tgz",
- "integrity": "sha512-d1kTK6dJb5z6UcfASQWjqQlsjZvnoVOvMWxYtLpGksYf6gM4IgqoPVNMLYYK6xBS4T/uAnLIj975A6YuAeyZpg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-3.0.0.tgz",
+ "integrity": "sha512-QsRWj+Jll4ueVbce8ofKa743oQ2exmbVNZN70MaMbmu8PSbjW2+Rj3OdExVStesANMj7qc20inS/TgPr8DrInQ==",
"dev": true
},
"@cspell/dict-lorem-ipsum": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-2.0.1.tgz",
- "integrity": "sha512-s7Ft8UiloUJwgz4z8uLeFvCkeTcZ43HQl7mSAlZd76eW+keLSsdeGmLDx2zaciqo+MftPGyzygVCwaJjTGxiew==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-3.0.0.tgz",
+ "integrity": "sha512-msEV24qEpzWZs2kcEicqYlhyBpR0amfDkJOs+iffC07si9ftqtQ+yP3lf1VFLpgqw3SQh1M1vtU7RD4sPrNlcQ==",
"dev": true
},
"@cspell/dict-lua": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-2.0.0.tgz",
- "integrity": "sha512-7WUEBEspSKtsq104WdIys1+DLqAxpJPzw74Py1TuE3fI5GvlzeSZkRFP2ya54GB2lCO4C3mq4M8EnitpibVDfw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-3.0.0.tgz",
+ "integrity": "sha512-WOhSCgS5wMxkGQJ8siB90iTB9ElquJB7FeqYSbJqqs6cUwH8G7MM/CEDPL6h7vCo0+v3GuxQ8yKWDSUcUhz9Lg==",
"dev": true
},
"@cspell/dict-node": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-3.0.1.tgz",
- "integrity": "sha512-sK2cpuV0EAc43Amd5xeQXkI9MeRTECMw+yjap06gKSModbgI7BqJUHeKZed+0Hii+LpaJ4TYpLGiRVsO+qSk0w==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.1.tgz",
+ "integrity": "sha512-4EmT5yZFitdwnG0hYEd+Ek19zzD81Bp+n7w0kglZKldS5AvapwW6GM/SAps5YMQQc5zZMi+bMgV7NIzapREqUg==",
"dev": true
},
"@cspell/dict-npm": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-3.1.2.tgz",
- "integrity": "sha512-dg4M38nrCCeBOYKVqPG91JPJ67j9LygPeNnu5fa7E9Z1eho3fkYHvfKlF3t4EZyAOxEobp0ZB0iXaCuX2YknlA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-4.0.1.tgz",
+ "integrity": "sha512-jNKImVG5ZX+Pp6PhbSR3TmC9+0ROx09dGhSgUsZyvXV5CGEr+OQGJtNL98TGwU3pP2Xjc++qnHA/XPwB5WvLfA==",
"dev": true
},
"@cspell/dict-php": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-2.0.0.tgz",
- "integrity": "sha512-29WgU77eTO985LvMHwPi1pcpfopfCWfTdffDyqya0JIfOSaFUrlYKzGPkE4mRxcz2G3hXsaM0SRvBNdIRwEdUg==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-3.0.3.tgz",
+ "integrity": "sha512-7dvXdPTfbIF2xEob9w94/eV5SU8BkYoN0R7EQghXi0fcF7T1unK+JwDgfoEs6wqApB5aCVYwguiaj8HGX2IRIQ==",
"dev": true
},
"@cspell/dict-powershell": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-2.0.0.tgz",
- "integrity": "sha512-6uvEhLiGmG3u9TFkM1TYcky6aL9Yk7Sk3KJwoTYBaQJY2KqrprgyQtW6yxIw9oU52VRHlq3KKvSAA9Q26+SIkQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-3.0.0.tgz",
+ "integrity": "sha512-pkztY9Ak4oc33q+Qxcn9/CTOKo4N8YIRRE6v67WwQOncA5QIJfcOPUrjfR3Z8SpzElXhu3s9qtWWSqbCy6qmcA==",
"dev": true
},
"@cspell/dict-public-licenses": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-1.0.6.tgz",
- "integrity": "sha512-Z9IUFPkkOpOsEdgPUfQOJNQ+qU6+iBAZWS/CR5sUqTX+s5VkPNVwQyVC2kdmgmE2U5qwzAPewG6nVKr2MVogwg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.0.tgz",
+ "integrity": "sha512-NdMHnS6xiYJKlzVoTV5CBhMiDpXMZ/PDcvXiOpxeR50xkjR18O/XFP4f4eDZpxGiBSUCMFRWf4JjILJ04Rpcfg==",
"dev": true
},
"@cspell/dict-python": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-3.0.6.tgz",
- "integrity": "sha512-tzxJ4sd9ZGhAUKg/WJJpQGDNtoHvM8Wn+iS2+PnQj2/LTHBW4mnaCogsGsBtYu8C4b2+BEQs+tc5808AeEfLug==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.0.0.tgz",
+ "integrity": "sha512-MC6CKbYOly3Ig25ZnhlCzPbE/QozqfQv4VYW6HcoMQ5IbHu33ddf2lzkZ89qTXlxsF5NT5qfZEkQYHYuhuL6AQ==",
"dev": true
},
"@cspell/dict-r": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-1.0.3.tgz",
- "integrity": "sha512-u2qeXd4cx/TvTVcmkvA+sK6f4K1uMAMO6QPMSr1pSvqGElPRP1mIBXmuiSuBzLO3LbsJuUEHw5Cp3/bxIB6rNA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.0.tgz",
+ "integrity": "sha512-rdt1cKc3VL2uXJ2X088gRhTFreN/MkJWK1jccW1EWdFHLzDwhKfrlAkoLCp0paD6HvmloLQ+eSR09D58DdsYfA==",
"dev": true
},
"@cspell/dict-ruby": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-2.0.2.tgz",
- "integrity": "sha512-vVnUpSmGDbPjs7MHq741DsLHhQcoA4CnUCM9wsTorQ9AQRDAkDTbK/LcY8nM19MoXCb3eF8PFku5Jq+gqH0u7w==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-3.0.0.tgz",
+ "integrity": "sha512-sA98T8Y1Pmq3RStVkO14E8vTWkq6JUn8c8PldiMyYgV0yfQgwhQfFAzlSfF3Gg2B0VkIdqt2et2SPN7f9wp7fQ==",
"dev": true
},
"@cspell/dict-rust": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-2.0.1.tgz",
- "integrity": "sha512-ATDpIh0VWpQdUIZa8zqqJY4wQz3q00BTXlQCodeOmObYSb23+L6KWWzJ8mKLgpbc1lqTkogWrqxiCxlrCmqNmg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-3.0.0.tgz",
+ "integrity": "sha512-L1T1IBsYJZVDmfOGAbVLcpc6arWxRRCSJYvHSwEDBGrNuMyJ4jx/NvBEz5crcKf4vVKgwVlXgzQlJJZ8AVxU9w==",
"dev": true
},
"@cspell/dict-scala": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-2.0.0.tgz",
- "integrity": "sha512-MUwA2YKpqaQOSR4V1/CVGRNk8Ii5kf6I8Ch+4/BhRZRQXuwWbi21rDRYWPqdQWps7VNzAbbMA+PQDWsD5YY38g==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-3.0.0.tgz",
+ "integrity": "sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==",
"dev": true
},
"@cspell/dict-software-terms": {
- "version": "2.2.11",
- "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-2.2.11.tgz",
- "integrity": "sha512-PZ8EqFSCEoJzcH/bp/+c2ze6aCK/8u5b7Qt1+O2Cwzmr8VLVZIVcpHpELnh4IvT4MRvzfa2WCDoUSofPwAfrsg==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.0.5.tgz",
+ "integrity": "sha512-xZVcX1zsIUbLvUc/RX+YgJRvbHaGMcdkRR+Vw8UoLjmhnT0yXWLds5uwRwAVjlQIrIcHylfDWuG70Cq5nmJHfA==",
"dev": true
},
"@cspell/dict-sql": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-1.0.4.tgz",
- "integrity": "sha512-+9nMcwsCzdYH0tyv2LeuVvQ+DdecS2C1N+hw6sl0FTHWI5GwULHAGW840RBwcKw0s+dl7sc0WpZhS1EW7b0pXg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.0.0.tgz",
+ "integrity": "sha512-J3X8VSgWpc/4McQEs138abtBw/SO3Z+vGaYi5X7XV1pKPBxjupHTTNQHSS/HWUDmVWj6fR3OV+ZGptcmvv3Clg==",
"dev": true
},
"@cspell/dict-swift": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-1.0.3.tgz",
- "integrity": "sha512-yOBLSaRD0AnkkkndJ8PuB82Evp6lA2xItf2AWsnPfCCgxp5Ojk6uUBC/WQBSkzkCAOGbXyHsu9D97tsOx2c6cw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.0.tgz",
+ "integrity": "sha512-VStJ0fKPPNIXKmxJrbGH6vKNtJCwAnQatfSH0fVj+Unf3QHHlmuLKRG0cN0aVgEIolpRkxNXJcSB3CPbYr0Xhw==",
"dev": true
},
"@cspell/dict-typescript": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-2.0.2.tgz",
- "integrity": "sha512-OIoSJsCw9WHX4eDikoF5/0QbptMPZjElOcMYdYCyV03nqV5n4ot72ysTexW95yW4+fQU6uDPNQvnrUnhXXEkTA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.0.1.tgz",
+ "integrity": "sha512-nKEtOpj+rJNIUK268/mCFDCIv1MWFdK1efm9YL4q1q3NHT+qCKhkXoA0eG8k4AaDIpsvebB8CgNIYFPxY92r4A==",
"dev": true
},
"@cspell/dict-vue": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-2.0.2.tgz",
- "integrity": "sha512-/MB0RS0Gn01s4pgmjy0FvsLfr3RRMrRphEuvTRserNcM8XVtoIVAtrjig/Gg0DPwDrN8Clm0L1j7iQay6S8D0g==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz",
+ "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==",
+ "dev": true
+ },
+ "@cspell/strong-weak-map": {
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.14.3.tgz",
+ "integrity": "sha512-/FTvcywuwfFTMEpRabL8+rqB/ezSjvMp6todO0SwL/agYQmRIuTvTYLh0Ikq430oVnjo7LDgztW0tHq38UlFLw==",
"dev": true
},
"@cspotcode/source-map-support": {
@@ -11569,9 +11864,9 @@
"dev": true
},
"@es-joy/jsdoccomment": {
- "version": "0.31.0",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz",
- "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==",
+ "version": "0.36.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.0.tgz",
+ "integrity": "sha512-u0XZyvUF6Urb2cSivSXA8qXIpT/CxkHcdtZKoWusAzgzmsTWpg0F2FpWXsolHmMUyVY3dLWaoy+0ccJ5uf2QjA==",
"dev": true,
"requires": {
"comment-parser": "1.3.1",
@@ -11580,9 +11875,9 @@
}
},
"@eslint/eslintrc": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz",
- "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
+ "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
@@ -11635,9 +11930,9 @@
}
},
"@humanwhocodes/config-array": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.5.tgz",
- "integrity": "sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==",
+ "version": "0.11.6",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
+ "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
"dev": true,
"requires": {
"@humanwhocodes/object-schema": "^1.2.1",
@@ -11662,12 +11957,6 @@
}
}
},
- "@humanwhocodes/gitignore-to-minimatch": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz",
- "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==",
- "dev": true
- },
"@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -11793,20 +12082,12 @@
"dev": true
},
"@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
+ "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
"dev": true,
"requires": {
"type-detect": "4.0.8"
- },
- "dependencies": {
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
- }
}
},
"@sinonjs/fake-timers": {
@@ -11816,31 +12097,34 @@
"dev": true,
"requires": {
"@sinonjs/commons": "^1.7.0"
- }
- },
- "@sinonjs/samsam": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz",
- "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.6.0",
- "lodash.get": "^4.4.2",
- "type-detect": "^4.0.8"
},
"dependencies": {
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
+ "@sinonjs/commons": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz",
+ "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
}
}
},
+ "@sinonjs/samsam": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz",
+ "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^2.0.0",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.0.8"
+ }
+ },
"@sinonjs/text-encoding": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
- "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
+ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
"dev": true
},
"@szmarczak/http-timer": {
@@ -11889,9 +12173,9 @@
"dev": true
},
"@types/chai": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz",
- "integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz",
+ "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==",
"dev": true
},
"@types/color-name": {
@@ -11961,9 +12245,9 @@
"dev": true
},
"@types/node": {
- "version": "18.7.23",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz",
- "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg=="
+ "version": "18.11.9",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
+ "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg=="
},
"@types/normalize-package-data": {
"version": "2.4.1",
@@ -11978,9 +12262,9 @@
"dev": true
},
"@types/prompt": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@types/prompt/-/prompt-1.1.3.tgz",
- "integrity": "sha512-y1fMzb7a/mQs4tynU8agMmV8ptbT0dkgNafrdsoEyLtbCggK5COJ/r5DGcaAHB5kdXTGh+8trHlENlsZkm+tOQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@types/prompt/-/prompt-1.1.4.tgz",
+ "integrity": "sha512-FLMcf+ol+eUJALeIYWLjQl0hYw86G0PIg7D5+4jJHwr/wKI8p3R0u+oKLbyRkzCxb7e0pHixyCj7UgSv7I/TJQ==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -12028,6 +12312,12 @@
"integrity": "sha512-q6KSi3PklLGQ0CesZ/XuLwly4DXXlnJuucYOG9lrBqrP8rKiuPZThav2h2+pFjaheNpnT0qKK3i304QWIePeJw==",
"dev": true
},
+ "@types/semver": {
+ "version": "7.3.12",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz",
+ "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==",
+ "dev": true
+ },
"@types/shelljs": {
"version": "0.8.11",
"resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.11.tgz",
@@ -12080,21 +12370,48 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.1.tgz",
- "integrity": "sha512-ky7EFzPhqz3XlhS7vPOoMDaQnQMn+9o5ICR9CPr/6bw8HrFkzhMSxuA3gRfiJVvs7geYrSeawGJjZoZQKCOglQ==",
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz",
+ "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/type-utils": "5.38.1",
- "@typescript-eslint/utils": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.43.0",
+ "@typescript-eslint/type-utils": "5.43.0",
+ "@typescript-eslint/utils": "5.43.0",
"debug": "^4.3.4",
"ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
"regexpp": "^3.2.0",
"semver": "^7.3.7",
"tsutils": "^3.21.0"
},
"dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz",
+ "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz",
+ "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==",
+ "dev": true
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz",
+ "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.43.0",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -12137,94 +12454,58 @@
}
},
"@typescript-eslint/parser": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.38.1.tgz",
- "integrity": "sha512-LDqxZBVFFQnQRz9rUZJhLmox+Ep5kdUmLatLQnCRR6523YV+XhRjfYzStQ4MheFA8kMAfUlclHSbu+RKdRwQKw==",
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz",
+ "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/typescript-estree": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.43.0",
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/typescript-estree": "5.43.0",
"debug": "^4.3.4"
},
"dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "@typescript-eslint/scope-manager": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz",
+ "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "@typescript-eslint/types": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz",
+ "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==",
"dev": true
- }
- }
- },
- "@typescript-eslint/scope-manager": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.38.1.tgz",
- "integrity": "sha512-BfRDq5RidVU3RbqApKmS7RFMtkyWMM50qWnDAkKgQiezRtLKsoyRKIvz1Ok5ilRWeD9IuHvaidaLxvGx/2eqTQ==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/visitor-keys": "5.38.1"
- }
- },
- "@typescript-eslint/type-utils": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.38.1.tgz",
- "integrity": "sha512-UU3j43TM66gYtzo15ivK2ZFoDFKKP0k03MItzLdq0zV92CeGCXRfXlfQX5ILdd4/DSpHkSjIgLLLh1NtkOJOAw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/typescript-estree": "5.38.1",
- "@typescript-eslint/utils": "5.38.1",
- "debug": "^4.3.4",
- "tsutils": "^3.21.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz",
+ "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz",
+ "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.43.0",
+ "eslint-visitor-keys": "^3.3.0"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "@typescript-eslint/types": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.38.1.tgz",
- "integrity": "sha512-QTW1iHq1Tffp9lNfbfPm4WJabbvpyaehQ0SrvVK2yfV79SytD9XDVxqiPvdrv2LK7DGSFo91TB2FgWanbJAZXg==",
- "dev": true
- },
- "@typescript-eslint/typescript-estree": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.1.tgz",
- "integrity": "sha512-99b5e/Enoe8fKMLdSuwrfH/C0EIbpUWmeEKHmQlGZb8msY33qn1KlkFww0z26o5Omx7EVjzVDCWEfrfCDHfE7g==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/visitor-keys": "5.38.1",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
- },
- "dependencies": {
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -12250,9 +12531,93 @@
"dev": true
},
"semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/type-utils": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz",
+ "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/typescript-estree": "5.43.0",
+ "@typescript-eslint/utils": "5.43.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "@typescript-eslint/types": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz",
+ "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz",
+ "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz",
+ "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.43.0",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -12267,35 +12632,103 @@
}
},
"@typescript-eslint/utils": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.38.1.tgz",
- "integrity": "sha512-oIuUiVxPBsndrN81oP8tXnFa/+EcZ03qLqPDfSZ5xIJVm7A9V0rlkQwwBOAGtrdN70ZKDlKv+l1BeT4eSFxwXA==",
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz",
+ "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/typescript-estree": "5.38.1",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.43.0",
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/typescript-estree": "5.43.0",
"eslint-scope": "^5.1.1",
- "eslint-utils": "^3.0.0"
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
+ },
+ "dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz",
+ "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz",
+ "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz",
+ "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/visitor-keys": "5.43.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.43.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz",
+ "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.43.0",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
}
},
- "@typescript-eslint/visitor-keys": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.1.tgz",
- "integrity": "sha512-bSHr1rRxXt54+j2n4k54p4fj8AHJ49VDWtjpImOpzQj4qjAiOpPni+V1Tyajh19Api1i844F757cur8wH3YvOA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "5.38.1",
- "eslint-visitor-keys": "^3.3.0"
- }
- },
- "@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
- "dev": true
- },
"@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@@ -12443,25 +12876,23 @@
}
},
"@webpack-cli/configtest": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz",
- "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.0.tgz",
+ "integrity": "sha512-war4OU8NGjBqU3DP3bx6ciODXIh7dSXcpQq+P4K2Tqyd8L5OjZ7COx9QXx/QdCIwL2qoX09Wr4Cwf7uS4qdEng==",
"dev": true,
"requires": {}
},
"@webpack-cli/info": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz",
- "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.0.tgz",
+ "integrity": "sha512-NNxDgbo4VOkNhOlTgY0Elhz3vKpOJq4/PKeKg7r8cmYM+GQA9vDofLYyup8jS6EpUvhNmR30cHTCEIyvXpskwA==",
"dev": true,
- "requires": {
- "envinfo": "^7.7.3"
- }
+ "requires": {}
},
"@webpack-cli/serve": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz",
- "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.0.tgz",
+ "integrity": "sha512-Rumq5mHvGXamnOh3O8yLk1sjx8dB30qF1OeR6VC00DIR6SLJ4bwwUGKC4pE7qBFoQyyh0H9sAg3fikYgAqVR0w==",
"dev": true,
"requires": {}
},
@@ -12945,14 +13376,18 @@
"dev": true
},
"chai": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
- "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
+ "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
"dev": true,
"requires": {
- "assertion-error": "^1.0.1",
- "deep-eql": "^0.1.3",
- "type-detect": "^1.0.0"
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^4.1.2",
+ "get-func-name": "^2.0.0",
+ "loupe": "^2.3.1",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
}
},
"chainsaw": {
@@ -12975,6 +13410,12 @@
"supports-color": "^5.3.0"
}
},
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
+ "dev": true
+ },
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -13118,6 +13559,12 @@
"delayed-stream": "~1.0.0"
}
},
+ "commander": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
+ "dev": true
+ },
"comment-json": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz",
@@ -13214,9 +13661,9 @@
"dev": true
},
"cosmiconfig": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
- "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"dev": true,
"requires": {
"@types/parse-json": "^4.0.0",
@@ -13262,24 +13709,24 @@
"dev": true
},
"cspell": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.12.0.tgz",
- "integrity": "sha512-ny4xVEPYFP2jVf5w71Mnk4HKj6RbPH+CMSzUrOMbYVVNnQUj3GLfzy5DrSFLG0zGa353ZRC4/s9MsEvnAL8mkA==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.14.3.tgz",
+ "integrity": "sha512-DimVpUiw2iOSvO1daOTtOWjmryVZdFnPmjPhyhWZUqakOEgE2MgoBuk3cFzXqb8GsGXHQh5PqiWr1rqIkQ99qA==",
"dev": true,
"requires": {
- "@cspell/cspell-pipe": "^6.12.0",
+ "@cspell/cspell-pipe": "6.14.3",
"chalk": "^4.1.2",
- "commander": "^9.4.0",
- "cspell-gitignore": "^6.12.0",
- "cspell-glob": "^6.12.0",
- "cspell-lib": "^6.12.0",
+ "commander": "^9.4.1",
+ "cspell-gitignore": "6.14.3",
+ "cspell-glob": "6.14.3",
+ "cspell-lib": "6.14.3",
"fast-json-stable-stringify": "^2.1.0",
"file-entry-cache": "^6.0.1",
"fs-extra": "^10.1.0",
"get-stdin": "^8.0.0",
"glob": "^8.0.3",
"imurmurhash": "^0.1.4",
- "semver": "^7.3.7",
+ "semver": "^7.3.8",
"strip-ansi": "^6.0.1",
"vscode-uri": "^3.0.6"
},
@@ -13324,12 +13771,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "commander": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
- "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==",
- "dev": true
- },
"fs-extra": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
@@ -13367,9 +13808,9 @@
}
},
"semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -13408,75 +13849,76 @@
}
},
"cspell-dictionary": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.12.0.tgz",
- "integrity": "sha512-I2cXSdXndt9H7yXmJzLTjgui/SAPGghXwxFeibTbvF68gyQYD5fUXvOygEIPrOEySKlAIb+aouV77SgoURxMHw==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.14.3.tgz",
+ "integrity": "sha512-yIqJEZZj36j1CmmjAiuQOYZM6T62Ih7k35DhAU1hYVARUEEnFN/Uz72UkDj2SAmURVn2On+bAmZ5zCx0JZzf2g==",
"dev": true,
"requires": {
- "@cspell/cspell-pipe": "^6.12.0",
- "@cspell/cspell-types": "^6.12.0",
- "cspell-trie-lib": "^6.12.0",
+ "@cspell/cspell-pipe": "6.14.3",
+ "@cspell/cspell-types": "6.14.3",
+ "cspell-trie-lib": "6.14.3",
"fast-equals": "^4.0.3",
"gensequence": "^4.0.2"
}
},
"cspell-gitignore": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.12.0.tgz",
- "integrity": "sha512-gtsN2AAvqdE8CHVzpxsQcd/Wn5GAMTjzHpDXX71g/k8IJn743poGU06O0O1WSVAgK0fWTRsfg+V5OegA1TAo7A==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.14.3.tgz",
+ "integrity": "sha512-CZTGxx3msF6p1Z0xgLe5LXXvve7DooSuRMBMdGn230usce1nKoxpPoPxgs+zXeCpi+FanykKnoZkdRvjolMpOA==",
"dev": true,
"requires": {
- "cspell-glob": "^6.12.0",
+ "cspell-glob": "6.14.3",
"find-up": "^5.0.0"
}
},
"cspell-glob": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.12.0.tgz",
- "integrity": "sha512-Q0rMGTxDyFFPm1LmHYM0ziuxQt2aXgr8Oi1glA2s0dBs0hg1DexlAEoLwLiMDUwSTvibEKIidPzlrmZ1AUDWEg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.14.3.tgz",
+ "integrity": "sha512-ISwCK8GqM/dnvtaxA17w1MPmMzFLOqdTz+JWIcR4at47T9qd8bNB0X0P4eqyuqgsbKkWbfnSlsYlEjRHTi4a7A==",
"dev": true,
"requires": {
"micromatch": "^4.0.5"
}
},
"cspell-grammar": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.12.0.tgz",
- "integrity": "sha512-WXcDiWJ2pTW0jHY0Bf0DW5s8A9S0a+2tsVZsNxE/0CR5P/8yDSnznE+59uok/JN+GXOKQ6VIaqAZA3/XjDZuuA==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.14.3.tgz",
+ "integrity": "sha512-Nz8tYUmstyKcFlXbxdw4N8NsQ2ZY/5ztNfouokk47LKaTAS0LyWlLSkZUxN016fMY2h+C+3dI+jaut2H/rtNew==",
"dev": true,
"requires": {
- "@cspell/cspell-pipe": "^6.12.0",
- "@cspell/cspell-types": "^6.12.0"
+ "@cspell/cspell-pipe": "6.14.3",
+ "@cspell/cspell-types": "6.14.3"
}
},
"cspell-io": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.12.0.tgz",
- "integrity": "sha512-1faxDj2OMgq61w7GaiXZD7ytks6PksJlG484LMl2USv58jDky4i2lujJs1C/+aP97Box9EcdwzydHX9GpnqqCw==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.14.3.tgz",
+ "integrity": "sha512-EbH+qopgWIzr9SZCGDsF4AWYgucN4QzYeAgyXjTbV9RnNIGKOKovMe3vN9nxjOZyPKv2TvmgU+uMXDM61iObRw==",
"dev": true,
"requires": {
- "@cspell/cspell-service-bus": "^6.12.0",
+ "@cspell/cspell-service-bus": "6.14.3",
"node-fetch": "^2.6.7"
}
},
"cspell-lib": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.12.0.tgz",
- "integrity": "sha512-IKd2MzH/zoiXohc26Lqb1b8i+41Y2xGreyAe9ihv/7Z2dscGGVy7F/2taZvZK9kJIhaz33Yatxfx3htT6w0hqg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.14.3.tgz",
+ "integrity": "sha512-RJT5Tbe0UCMCtqDWRujjxq9u23sc2XylIpDP7MnpLx8wLVgFv2WPzESYNRGZqceqZYwBAPnpqS9h2ANxXSi8UQ==",
"dev": true,
"requires": {
- "@cspell/cspell-bundled-dicts": "^6.12.0",
- "@cspell/cspell-pipe": "^6.12.0",
- "@cspell/cspell-types": "^6.12.0",
+ "@cspell/cspell-bundled-dicts": "6.14.3",
+ "@cspell/cspell-pipe": "6.14.3",
+ "@cspell/cspell-types": "6.14.3",
+ "@cspell/strong-weak-map": "6.14.3",
"clear-module": "^4.1.2",
"comment-json": "^4.2.3",
"configstore": "^5.0.1",
- "cosmiconfig": "^7.0.1",
- "cspell-dictionary": "^6.12.0",
- "cspell-glob": "^6.12.0",
- "cspell-grammar": "^6.12.0",
- "cspell-io": "^6.12.0",
- "cspell-trie-lib": "^6.12.0",
+ "cosmiconfig": "^7.1.0",
+ "cspell-dictionary": "6.14.3",
+ "cspell-glob": "6.14.3",
+ "cspell-grammar": "6.14.3",
+ "cspell-io": "6.14.3",
+ "cspell-trie-lib": "6.14.3",
"fast-equals": "^4.0.3",
"find-up": "^5.0.0",
"fs-extra": "^10.1.0",
@@ -13518,13 +13960,13 @@
}
},
"cspell-trie-lib": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.12.0.tgz",
- "integrity": "sha512-SJOdb51Wy3ewaKfttZwc9NYOIXaKlhyr+ykYKBExj3qMfV1J4d4iDLE95FriaRcqnq6X/qEM9jUvZHlvadDk3A==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.14.3.tgz",
+ "integrity": "sha512-WVa5gbD9glsZ4c60qPD5RTwojKc5ooxw/Gn+HC9CBdWv5rE1AmM1V3yVWhYx2ZMbJufboBrzmSjJB9qdmUl3oA==",
"dev": true,
"requires": {
- "@cspell/cspell-pipe": "^6.12.0",
- "@cspell/cspell-types": "^6.12.0",
+ "@cspell/cspell-pipe": "6.14.3",
+ "@cspell/cspell-types": "6.14.3",
"fs-extra": "^10.1.0",
"gensequence": "^4.0.2"
},
@@ -13598,20 +14040,12 @@
}
},
"deep-eql": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
- "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.2.tgz",
+ "integrity": "sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==",
"dev": true,
"requires": {
- "type-detect": "0.1.1"
- },
- "dependencies": {
- "type-detect": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
- "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
- "dev": true
- }
+ "type-detect": "^4.0.0"
}
},
"deep-extend": {
@@ -14082,15 +14516,15 @@
"dev": true
},
"eslint": {
- "version": "8.24.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz",
- "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==",
+ "version": "8.27.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz",
+ "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==",
"dev": true,
"requires": {
- "@eslint/eslintrc": "^1.3.2",
- "@humanwhocodes/config-array": "^0.10.5",
- "@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
+ "@eslint/eslintrc": "^1.3.3",
+ "@humanwhocodes/config-array": "^0.11.6",
"@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -14106,14 +14540,14 @@
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
- "glob-parent": "^6.0.1",
+ "glob-parent": "^6.0.2",
"globals": "^13.15.0",
- "globby": "^11.1.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
"js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
@@ -14350,9 +14784,9 @@
}
},
"eslint-plugin-functional": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-functional/-/eslint-plugin-functional-4.4.0.tgz",
- "integrity": "sha512-DY/Iax9knIgzvxhVeSe+KoF9e4imLvzCvUEN1a+bWciDiBi3s1CG/1fw7AQVXoAqoNw9eYuP7C2u3OtHzMFy+A==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-functional/-/eslint-plugin-functional-4.4.1.tgz",
+ "integrity": "sha512-YhSfHS52Si62Sn126g9wGx+XnWMoWhwEt6ctVXfcJj+xMUiggjOqUVMca7fuLNzX8jYiNBIeU1Y0teHGePZ3NA==",
"dev": true,
"requires": {
"@typescript-eslint/utils": "^5.10.2",
@@ -14447,17 +14881,17 @@
}
},
"eslint-plugin-jsdoc": {
- "version": "39.3.6",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.6.tgz",
- "integrity": "sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==",
+ "version": "39.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.6.2.tgz",
+ "integrity": "sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A==",
"dev": true,
"requires": {
- "@es-joy/jsdoccomment": "~0.31.0",
+ "@es-joy/jsdoccomment": "~0.36.0",
"comment-parser": "1.3.1",
"debug": "^4.3.4",
"escape-string-regexp": "^4.0.0",
"esquery": "^1.4.0",
- "semver": "^7.3.7",
+ "semver": "^7.3.8",
"spdx-expression-parse": "^3.0.1"
},
"dependencies": {
@@ -14492,9 +14926,9 @@
"dev": true
},
"semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -14523,9 +14957,9 @@
"requires": {}
},
"eslint-plugin-unicorn": {
- "version": "44.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-44.0.0.tgz",
- "integrity": "sha512-GbkxkdNzY7wNEfZnraAP+oA+aqqzSrNZmO37kjW1DyqnSK/ah08ySDdIecObpx46twv+zcQvH8i0CHP98Wo64w==",
+ "version": "44.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-44.0.2.tgz",
+ "integrity": "sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.19.1",
@@ -15046,6 +15480,12 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
+ "dev": true
+ },
"get-intrinsic": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
@@ -16144,7 +16584,7 @@
"lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
"dev": true
},
"lodash.merge": {
@@ -16214,6 +16654,15 @@
}
}
},
+ "loupe": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
+ "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
+ "dev": true,
+ "requires": {
+ "get-func-name": "^2.0.0"
+ }
+ },
"lowercase-keys": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
@@ -16359,12 +16808,11 @@
}
},
"mocha": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz",
- "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz",
+ "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==",
"dev": true,
"requires": {
- "@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
"chokidar": "3.5.3",
@@ -16535,6 +16983,12 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
+ "natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
"neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
@@ -16548,16 +17002,38 @@
"dev": true
},
"nise": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz",
- "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.2.tgz",
+ "integrity": "sha512-+gQjFi8v+tkfCuSCxfURHLhRhniE/+IaYbIphxAN2JRR9SHKhY8hgXpaXiYfHdw+gcGe4buxgbprBQFab9FkhA==",
"dev": true,
"requires": {
- "@sinonjs/commons": "^1.8.3",
- "@sinonjs/fake-timers": ">=5",
+ "@sinonjs/commons": "^2.0.0",
+ "@sinonjs/fake-timers": "^7.0.4",
"@sinonjs/text-encoding": "^0.7.1",
"just-extend": "^4.0.2",
"path-to-regexp": "^1.7.0"
+ },
+ "dependencies": {
+ "@sinonjs/fake-timers": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz",
+ "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ },
+ "dependencies": {
+ "@sinonjs/commons": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz",
+ "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ }
+ }
+ }
}
},
"node-fetch": {
@@ -17053,7 +17529,7 @@
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
"dev": true
}
}
@@ -17064,6 +17540,12 @@
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true
},
+ "pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true
+ },
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -17886,16 +18368,16 @@
"dev": true
},
"sinon": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz",
- "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==",
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz",
+ "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==",
"dev": true,
"requires": {
- "@sinonjs/commons": "^1.8.3",
+ "@sinonjs/commons": "^2.0.0",
"@sinonjs/fake-timers": "^9.1.2",
- "@sinonjs/samsam": "^6.1.1",
+ "@sinonjs/samsam": "^7.0.1",
"diff": "^5.0.0",
- "nise": "^5.1.1",
+ "nise": "^5.1.2",
"supports-color": "^7.2.0"
},
"dependencies": {
@@ -18555,9 +19037,9 @@
}
},
"type-detect": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
- "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true
},
"type-fest": {
@@ -18582,9 +19064,9 @@
}
},
"typedoc": {
- "version": "0.23.15",
- "resolved": "http://registry.npmjs.org/typedoc/-/typedoc-0.23.15.tgz",
- "integrity": "sha512-x9Zu+tTnwxb9YdVr+zvX7LYzyBl1nieOr6lrSHbHsA22/RJK2m4Y525WIg5Mj4jWCmfL47v6f4hUzY7EIuwS5w==",
+ "version": "0.23.21",
+ "resolved": "http://registry.npmjs.org/typedoc/-/typedoc-0.23.21.tgz",
+ "integrity": "sha512-VNE9Jv7BgclvyH9moi2mluneSviD43dCE9pY8RWkO88/DrEgJZk9KpUk7WO468c9WWs/+aG6dOnoH7ccjnErhg==",
"dev": true,
"requires": {
"lunr": "^2.3.9",
@@ -18614,9 +19096,9 @@
}
},
"typescript": {
- "version": "4.8.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
- "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
+ "version": "4.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
+ "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
"dev": true
},
"unbox-primitive": {
@@ -18854,9 +19336,9 @@
"dev": true
},
"webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
+ "version": "5.75.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
+ "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.3",
@@ -18886,31 +19368,26 @@
}
},
"webpack-cli": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz",
- "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.0.tgz",
+ "integrity": "sha512-AACDTo20yG+xn6HPW5xjbn2Be4KUzQPebWXsDMHwPPyKh9OnTOJgZN2Nc+g/FZKV3ObRTYsGvibAvc+5jAUrVA==",
"dev": true,
"requires": {
"@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.2.0",
- "@webpack-cli/info": "^1.5.0",
- "@webpack-cli/serve": "^1.7.0",
+ "@webpack-cli/configtest": "^2.0.0",
+ "@webpack-cli/info": "^2.0.0",
+ "@webpack-cli/serve": "^2.0.0",
"colorette": "^2.0.14",
- "commander": "^7.0.0",
+ "commander": "^9.4.1",
"cross-spawn": "^7.0.3",
+ "envinfo": "^7.7.3",
"fastest-levenshtein": "^1.0.12",
"import-local": "^3.0.2",
- "interpret": "^2.2.0",
- "rechoir": "^0.7.0",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
"webpack-merge": "^5.7.3"
},
"dependencies": {
- "commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "dev": true
- },
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -18923,18 +19400,18 @@
}
},
"interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
+ "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
"dev": true
},
"rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
"dev": true,
"requires": {
- "resolve": "^1.9.0"
+ "resolve": "^1.20.0"
}
},
"shebang-command": {
diff --git a/package.json b/package.json
index b2efb871b8..22132c1de7 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
- "name": "@contractmill/docx",
- "version": "7.5.2",
+ "name": "docx",
+ "version": "7.7.0",
"description": "Easily generate .docx files with JS/TS with a nice declarative API. Works for Node and on the Browser.",
"main": "build/index.js",
"scripts": {
@@ -75,7 +75,7 @@
"@typescript-eslint/eslint-plugin": "^5.36.1",
"@typescript-eslint/parser": "^5.36.1",
"buffer": "^6.0.3",
- "chai": "^3.5.0",
+ "chai": "^4.3.6",
"cspell": "^6.2.2",
"docsify-cli": "^4.3.0",
"eslint": "^8.23.0",
@@ -105,10 +105,10 @@
"tsconfig-paths": "^4.0.0",
"tsconfig-paths-webpack-plugin": "^4.0.0",
"typedoc": "^0.23.2",
- "typescript": "4.8.4",
+ "typescript": "4.9.3",
"unzipper": "^0.10.11",
"webpack": "^5.28.0",
- "webpack-cli": "^4.6.0"
+ "webpack-cli": "^5.0.0"
},
"engines": {
"node": ">=10"
diff --git a/src/file/core-properties/properties.ts b/src/file/core-properties/properties.ts
index 264203f753..b09b2d97d0 100644
--- a/src/file/core-properties/properties.ts
+++ b/src/file/core-properties/properties.ts
@@ -1,4 +1,5 @@
import { ICommentsOptions } from "@file/paragraph/run/comment-run";
+import { ICompatibilityOptions } from "@file/settings/compatibility";
import { StringContainer, XmlComponent } from "@file/xml-components";
import { dateTimeValue } from "@util/values";
@@ -35,6 +36,7 @@ export interface IPropertiesOptions {
readonly updateFields?: boolean;
};
readonly compatabilityModeVersion?: number;
+ readonly compatibility?: ICompatibilityOptions;
readonly customProperties?: readonly ICustomPropertyOptions[];
readonly evenAndOddHeaderAndFooters?: boolean;
}
diff --git a/src/file/drawing/anchor/anchor.spec.ts b/src/file/drawing/anchor/anchor.spec.ts
index 17ccb0f165..d2da912761 100644
--- a/src/file/drawing/anchor/anchor.spec.ts
+++ b/src/file/drawing/anchor/anchor.spec.ts
@@ -1,4 +1,8 @@
-import { assert } from "chai";
+import { assert, expect } from "chai";
+import { SinonStub, stub } from "sinon";
+
+import { Formatter } from "@export/formatter";
+import * as convenienceFunctions from "@util/convenience-functions";
import { Utility } from "tests/utility";
@@ -36,6 +40,14 @@ const createAnchor = (drawingOptions: IDrawingOptions): Anchor =>
);
describe("Anchor", () => {
+ before(() => {
+ stub(convenienceFunctions, "uniqueNumericId").callsFake(() => 0);
+ });
+
+ after(() => {
+ (convenienceFunctions.uniqueNumericId as SinonStub).restore();
+ });
+
let anchor: Anchor;
describe("#constructor()", () => {
@@ -362,5 +374,236 @@ describe("Anchor", () => {
relativeHeight: 120,
});
});
+
+ it("should create a Drawing with doc properties", () => {
+ anchor = createAnchor({
+ floating: {
+ verticalPosition: {
+ offset: 0,
+ },
+ horizontalPosition: {
+ offset: 0,
+ },
+ zIndex: 120,
+ },
+ docProperties: {
+ name: "test",
+ description: "test",
+ title: "test",
+ },
+ });
+ const tree = new Formatter().format(anchor);
+ expect(tree).to.deep.equal({
+ "wp:anchor": [
+ {
+ _attr: {
+ allowOverlap: "1",
+ behindDoc: "0",
+ distB: 0,
+ distL: 0,
+ distR: 0,
+ distT: 0,
+ layoutInCell: "1",
+ locked: "0",
+ relativeHeight: 120,
+ simplePos: "0",
+ },
+ },
+ {
+ "wp:simplePos": {
+ _attr: {
+ x: 0,
+ y: 0,
+ },
+ },
+ },
+ {
+ "wp:positionH": [
+ {
+ _attr: {
+ relativeFrom: "page",
+ },
+ },
+ {
+ "wp:posOffset": ["0"],
+ },
+ ],
+ },
+ {
+ "wp:positionV": [
+ {
+ _attr: {
+ relativeFrom: "page",
+ },
+ },
+ {
+ "wp:posOffset": ["0"],
+ },
+ ],
+ },
+ {
+ "wp:extent": {
+ _attr: {
+ cx: 952500,
+ cy: 952500,
+ },
+ },
+ },
+ {
+ "wp:effectExtent": {
+ _attr: {
+ b: 0,
+ l: 0,
+ r: 0,
+ t: 0,
+ },
+ },
+ },
+ {
+ "wp:wrapNone": {},
+ },
+ {
+ "wp:docPr": {
+ _attr: {
+ descr: "test",
+ id: 0,
+ name: "test",
+ title: "test",
+ },
+ },
+ },
+ {
+ "wp:cNvGraphicFramePr": [
+ {
+ "a:graphicFrameLocks": {
+ _attr: {
+ noChangeAspect: 1,
+ "xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
+ },
+ },
+ },
+ ],
+ },
+ {
+ "a:graphic": [
+ {
+ _attr: {
+ "xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
+ },
+ },
+ {
+ "a:graphicData": [
+ {
+ _attr: {
+ uri: "http://schemas.openxmlformats.org/drawingml/2006/picture",
+ },
+ },
+ {
+ "pic:pic": [
+ {
+ _attr: {
+ "xmlns:pic": "http://schemas.openxmlformats.org/drawingml/2006/picture",
+ },
+ },
+ {
+ "pic:nvPicPr": [
+ {
+ "pic:cNvPr": {
+ _attr: {
+ descr: "",
+ id: 0,
+ name: "",
+ },
+ },
+ },
+ {
+ "pic:cNvPicPr": [
+ {
+ "a:picLocks": {
+ _attr: {
+ noChangeArrowheads: 1,
+ noChangeAspect: 1,
+ },
+ },
+ },
+ ],
+ },
+ ],
+ },
+ {
+ "pic:blipFill": [
+ {
+ "a:blip": {
+ _attr: {
+ cstate: "none",
+ "r:embed": "rId{test.png}",
+ },
+ },
+ },
+ {
+ "a:srcRect": {},
+ },
+ {
+ "a:stretch": [
+ {
+ "a:fillRect": {},
+ },
+ ],
+ },
+ ],
+ },
+ {
+ "pic:spPr": [
+ {
+ _attr: {
+ bwMode: "auto",
+ },
+ },
+ {
+ "a:xfrm": [
+ {
+ _attr: {},
+ },
+ {
+ "a:off": {
+ _attr: {
+ x: 0,
+ y: 0,
+ },
+ },
+ },
+ {
+ "a:ext": {
+ _attr: {
+ cx: 952500,
+ cy: 952500,
+ },
+ },
+ },
+ ],
+ },
+ {
+ "a:prstGeom": [
+ {
+ _attr: {
+ prst: "rect",
+ },
+ },
+ {
+ "a:avLst": {},
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ });
+ });
});
});
diff --git a/src/file/drawing/anchor/anchor.ts b/src/file/drawing/anchor/anchor.ts
index 154965cdd7..d316c26162 100644
--- a/src/file/drawing/anchor/anchor.ts
+++ b/src/file/drawing/anchor/anchor.ts
@@ -90,7 +90,7 @@ export class Anchor extends XmlComponent {
this.root.push(new WrapNone());
}
- this.root.push(new DocProperties());
+ this.root.push(new DocProperties(drawingOptions.docProperties));
this.root.push(new GraphicFrameProperties());
this.root.push(new Graphic(mediaData, transform));
}
diff --git a/src/file/drawing/doc-properties/doc-properties-attributes.ts b/src/file/drawing/doc-properties/doc-properties-attributes.ts
deleted file mode 100644
index a65aa9352b..0000000000
--- a/src/file/drawing/doc-properties/doc-properties-attributes.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { XmlAttributeComponent } from "@file/xml-components";
-
-export class DocPropertiesAttributes extends XmlAttributeComponent<{
- readonly id?: number;
- readonly name?: string;
- readonly descr?: string;
-}> {
- protected readonly xmlKeys = {
- id: "id",
- name: "name",
- descr: "descr",
- };
-}
diff --git a/src/file/drawing/doc-properties/doc-properties.ts b/src/file/drawing/doc-properties/doc-properties.ts
index 45aaf919b6..0724cd9513 100644
--- a/src/file/drawing/doc-properties/doc-properties.ts
+++ b/src/file/drawing/doc-properties/doc-properties.ts
@@ -1,15 +1,36 @@
-import { XmlComponent } from "@file/xml-components";
-import { DocPropertiesAttributes } from "./doc-properties-attributes";
+import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
+import { uniqueNumericId } from "@util/convenience-functions";
+
+class DocPropertiesAttributes extends XmlAttributeComponent<{
+ readonly id?: number;
+ readonly name?: string;
+ readonly description?: string;
+ readonly title?: string;
+}> {
+ protected readonly xmlKeys = {
+ id: "id",
+ name: "name",
+ description: "descr",
+ title: "title",
+ };
+}
+
+export interface DocPropertiesOptions {
+ readonly name: string;
+ readonly description: string;
+ readonly title: string;
+}
export class DocProperties extends XmlComponent {
- public constructor() {
+ public constructor({ name, description, title }: DocPropertiesOptions = { name: "", description: "", title: "" }) {
super("wp:docPr");
this.root.push(
new DocPropertiesAttributes({
- id: 0,
- name: "",
- descr: "",
+ id: uniqueNumericId(),
+ name,
+ description,
+ title,
}),
);
}
diff --git a/src/file/drawing/drawing.spec.ts b/src/file/drawing/drawing.spec.ts
index b5b48d80bd..4b01e84a81 100644
--- a/src/file/drawing/drawing.spec.ts
+++ b/src/file/drawing/drawing.spec.ts
@@ -1,6 +1,8 @@
import { expect } from "chai";
+import { SinonStub, stub } from "sinon";
import { Formatter } from "@export/formatter";
+import * as convenienceFunctions from "@util/convenience-functions";
import { Drawing, IDrawingOptions } from "./drawing";
@@ -26,6 +28,14 @@ const createDrawing = (drawingOptions?: IDrawingOptions): Drawing =>
);
describe("Drawing", () => {
+ before(() => {
+ stub(convenienceFunctions, "uniqueNumericId").callsFake(() => 0);
+ });
+
+ after(() => {
+ (convenienceFunctions.uniqueNumericId as SinonStub).restore();
+ });
+
let currentBreak: Drawing;
describe("#constructor()", () => {
@@ -68,6 +78,7 @@ describe("Drawing", () => {
descr: "",
id: 0,
name: "",
+ title: "",
},
},
},
@@ -298,6 +309,7 @@ describe("Drawing", () => {
descr: "",
id: 0,
name: "",
+ title: "",
},
},
},
diff --git a/src/file/drawing/drawing.ts b/src/file/drawing/drawing.ts
index 8fc08ff454..4bb83a9462 100644
--- a/src/file/drawing/drawing.ts
+++ b/src/file/drawing/drawing.ts
@@ -1,6 +1,8 @@
import { IMediaData } from "@file/media";
import { XmlComponent } from "@file/xml-components";
+
import { Anchor } from "./anchor";
+import { DocPropertiesOptions } from "./doc-properties/doc-properties";
import { IFloating } from "./floating";
import { Inline } from "./inline";
@@ -13,6 +15,7 @@ export interface IDistance {
export interface IDrawingOptions {
readonly floating?: IFloating;
+ readonly docProperties?: DocPropertiesOptions;
}
//
@@ -29,7 +32,11 @@ export class Drawing extends XmlComponent {
super("w:drawing");
if (!drawingOptions.floating) {
- this.inline = new Inline(imageData, imageData.transformation);
+ this.inline = new Inline({
+ mediaData: imageData,
+ transform: imageData.transformation,
+ docProperties: drawingOptions.docProperties,
+ });
this.root.push(this.inline);
} else {
this.root.push(new Anchor(imageData, imageData.transformation, drawingOptions));
diff --git a/src/file/drawing/inline/inline.ts b/src/file/drawing/inline/inline.ts
index b76781d465..b5689b05e8 100644
--- a/src/file/drawing/inline/inline.ts
+++ b/src/file/drawing/inline/inline.ts
@@ -1,13 +1,19 @@
// http://officeopenxml.com/drwPicInline.php
import { IMediaData, IMediaDataTransformation } from "@file/media";
import { XmlComponent } from "@file/xml-components";
-import { DocProperties } from "./../doc-properties/doc-properties";
+import { DocProperties, DocPropertiesOptions } from "./../doc-properties/doc-properties";
import { EffectExtent } from "./../effect-extent/effect-extent";
import { Extent } from "./../extent/extent";
import { GraphicFrameProperties } from "./../graphic-frame/graphic-frame-properties";
import { Graphic } from "./../inline/graphic";
import { InlineAttributes } from "./inline-attributes";
+interface InlineOptions {
+ readonly mediaData: IMediaData;
+ readonly transform: IMediaDataTransformation;
+ readonly docProperties?: DocPropertiesOptions;
+}
+
//
//
//
@@ -26,7 +32,7 @@ export class Inline extends XmlComponent {
private readonly extent: Extent;
private readonly graphic: Graphic;
- public constructor(mediaData: IMediaData, transform: IMediaDataTransformation) {
+ public constructor({ mediaData, transform, docProperties }: InlineOptions) {
super("wp:inline");
this.root.push(
@@ -43,7 +49,7 @@ export class Inline extends XmlComponent {
this.root.push(this.extent);
this.root.push(new EffectExtent());
- this.root.push(new DocProperties());
+ this.root.push(new DocProperties(docProperties));
this.root.push(new GraphicFrameProperties());
this.root.push(this.graphic);
}
diff --git a/src/file/file.ts b/src/file/file.ts
index 0f170d7d7f..383babc378 100644
--- a/src/file/file.ts
+++ b/src/file/file.ts
@@ -75,7 +75,8 @@ export class File {
this.contentTypes = new ContentTypes();
this.documentWrapper = new DocumentWrapper({ background: options.background || {} });
this.settings = new Settings({
- compatabilityModeVersion: options.compatabilityModeVersion,
+ compatibilityModeVersion: options.compatabilityModeVersion,
+ compatibility: options.compatibility,
evenAndOddHeaders: options.evenAndOddHeaderAndFooters ? true : false,
trackRevisions: options.features?.trackRevisions,
updateFields: options.features?.updateFields,
diff --git a/src/file/index.ts b/src/file/index.ts
index 309a3c2d56..23fdcbc4e4 100644
--- a/src/file/index.ts
+++ b/src/file/index.ts
@@ -18,4 +18,3 @@ export * from "./track-revision";
export * from "./shared";
export * from "./border";
export * from "./vertical-align";
-export * from "./space-type";
diff --git a/src/file/numbering/abstract-numbering.spec.ts b/src/file/numbering/abstract-numbering.spec.ts
index e17c826c2d..98569ede5a 100644
--- a/src/file/numbering/abstract-numbering.spec.ts
+++ b/src/file/numbering/abstract-numbering.spec.ts
@@ -1,7 +1,6 @@
import { expect } from "chai";
import { Formatter } from "@export/formatter";
-import { EMPTY_OBJECT } from "@file/xml-components";
import { AlignmentType, EmphasisMarkType, TabStopPosition } from "../paragraph";
import { UnderlineType } from "../paragraph/run/underline";
@@ -26,11 +25,61 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ _attr: { "w:ilvl": 3, "w15:tentative": 1 } });
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:start": { _attr: { "w:val": 1 } } });
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:lvlJc": { _attr: { "w:val": "end" } } });
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:numFmt": { _attr: { "w:val": LevelFormat.LOWER_LETTER } } });
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:lvlText": { _attr: { "w:val": "%1)" } } });
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": LevelFormat.LOWER_LETTER,
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%1)",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "end",
+ },
+ },
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 3,
+ },
+ },
+ ],
+ },
+ ],
+ });
});
it("uses 'start' as the default alignment", () => {
@@ -42,11 +91,61 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ _attr: { "w:ilvl": 3, "w15:tentative": 1 } });
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:start": { _attr: { "w:val": 1 } } });
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:lvlJc": { _attr: { "w:val": "start" } } });
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:numFmt": { _attr: { "w:val": LevelFormat.LOWER_LETTER } } });
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:lvlText": { _attr: { "w:val": "%1)" } } });
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": LevelFormat.LOWER_LETTER,
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%1)",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 3,
+ },
+ },
+ ],
+ },
+ ],
+ });
});
it("has suffix", () => {
@@ -60,7 +159,69 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:suff": { _attr: { "w:val": "space" } } });
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerLetter",
+ },
+ },
+ },
+ {
+ "w:suff": {
+ _attr: {
+ "w:val": "space",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%1)",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "end",
+ },
+ },
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 3,
+ },
+ },
+ ],
+ },
+ ],
+ });
+ // expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:suff": { _attr: { "w:val": "space" } } });
});
describe("formatting methods: paragraph properties", () => {
@@ -78,8 +239,71 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [{ "w:ind": { _attr: { "w:left": 720 } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:ind": {
+ _attr: {
+ "w:left": 720,
+ },
+ },
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -97,8 +321,72 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [{ "w:spacing": { _attr: { "w:before": 50, "w:after": 150 } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:spacing": {
+ _attr: {
+ "w:after": 150,
+ "w:before": 50,
+ },
+ },
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -116,8 +404,71 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "center" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:jc": {
+ _attr: {
+ "w:val": "center",
+ },
+ },
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -135,8 +486,71 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "left" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:jc": {
+ _attr: {
+ "w:val": "left",
+ },
+ },
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -154,8 +568,71 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "right" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:jc": {
+ _attr: {
+ "w:val": "right",
+ },
+ },
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -173,8 +650,71 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "both" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:jc": {
+ _attr: {
+ "w:val": "both",
+ },
+ },
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -192,20 +732,75 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
{
- "w:pBdr": [
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
{
- "w:bottom": {
+ "w:start": {
_attr: {
- "w:color": "auto",
- "w:space": 1,
- "w:val": "single",
- "w:sz": 6,
+ "w:val": 1,
},
},
},
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:pBdr": [
+ {
+ "w:bottom": {
+ _attr: {
+ "w:color": "auto",
+ "w:space": 1,
+ "w:sz": 6,
+ "w:val": "single",
+ },
+ },
+ },
+ ],
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
],
},
],
@@ -226,10 +821,74 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
{
- "w:tabs": [{ "w:tab": { _attr: { "w:val": "left", "w:pos": 1200 } } }],
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:tabs": [
+ {
+ "w:tab": {
+ _attr: {
+ "w:pos": 1200,
+ "w:val": "left",
+ },
+ },
+ },
+ ],
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
},
],
});
@@ -249,10 +908,74 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
{
- "w:tabs": [{ "w:tab": { _attr: { "w:val": "right", "w:pos": 9026 } } }],
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:tabs": [
+ {
+ "w:tab": {
+ _attr: {
+ "w:pos": 9026,
+ "w:val": "right",
+ },
+ },
+ },
+ ],
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
},
],
});
@@ -272,8 +995,67 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [{ "w:keepLines": EMPTY_OBJECT }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:keepLines": {},
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -291,8 +1073,67 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:pPr": [{ "w:keepNext": EMPTY_OBJECT }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:pPr": [
+ {
+ "w:keepNext": {},
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
});
@@ -332,7 +1173,64 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:rPr": expected });
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": expected,
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
+ });
});
});
@@ -350,8 +1248,67 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:smallCaps": {} }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [
+ {
+ "w:smallCaps": {},
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -369,8 +1326,67 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:caps": {} }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [
+ {
+ "w:caps": {},
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -389,8 +1405,67 @@ describe("AbstractNumbering", () => {
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:strike": {} }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [
+ {
+ "w:strike": {},
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -408,8 +1483,67 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:dstrike": {} }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [
+ {
+ "w:dstrike": {},
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -427,8 +1561,63 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:vertAlign": { _attr: { "w:val": "subscript" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [{ "w:vertAlign": { _attr: { "w:val": "subscript" } } }],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -446,8 +1635,63 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:vertAlign": { _attr: { "w:val": "superscript" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [{ "w:vertAlign": { _attr: { "w:val": "superscript" } } }],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -465,18 +1709,73 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
{
- "w:rFonts": {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
_attr: {
- "w:ascii": "Times",
- "w:cs": "Times",
- "w:eastAsia": "Times",
- "w:hAnsi": "Times",
+ "w:val": "hybridMultilevel",
},
},
},
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [
+ {
+ "w:rFonts": {
+ _attr: {
+ "w:ascii": "Times",
+ "w:cs": "Times",
+ "w:eastAsia": "Times",
+ "w:hAnsi": "Times",
+ },
+ },
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
],
});
});
@@ -498,16 +1797,71 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
{
- "w:rFonts": {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
_attr: {
- "w:ascii": "Times",
- "w:eastAsia": "KaiTi",
+ "w:val": "hybridMultilevel",
},
},
},
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [
+ {
+ "w:rFonts": {
+ _attr: {
+ "w:ascii": "Times",
+ "w:eastAsia": "KaiTi",
+ },
+ },
+ },
+ ],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
],
});
});
@@ -541,7 +1895,64 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:rPr": expected });
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": expected,
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
+ });
});
});
@@ -574,7 +1985,64 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:rPr": expected });
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": expected,
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
+ });
});
});
@@ -612,7 +2080,64 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:rPr": expected });
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": expected,
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
+ });
});
});
@@ -647,7 +2172,64 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({ "w:rPr": expected });
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": expected,
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
+ });
});
});
@@ -666,8 +2248,63 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:u": { _attr: { "w:val": "single" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [{ "w:u": { _attr: { "w:val": "single" } } }],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -687,8 +2324,63 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:u": { _attr: { "w:val": "double" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [{ "w:u": { _attr: { "w:val": "double" } } }],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -709,8 +2401,63 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:u": { _attr: { "w:val": "double", "w:color": "005599" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [{ "w:u": { _attr: { "w:val": "double", "w:color": "005599" } } }],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
});
@@ -730,8 +2477,63 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:em": { _attr: { "w:val": "dot" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [{ "w:em": { _attr: { "w:val": "dot" } } }],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
@@ -751,8 +2553,63 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:em": { _attr: { "w:val": "dot" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [{ "w:em": { _attr: { "w:val": "dot" } } }],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
});
@@ -771,8 +2628,63 @@ describe("AbstractNumbering", () => {
},
]);
const tree = new Formatter().format(abstractNumbering);
- expect(tree["w:abstractNum"][2]["w:lvl"]).to.include({
- "w:rPr": [{ "w:color": { _attr: { "w:val": "123456" } } }],
+ expect(tree).to.deep.equal({
+ "w:abstractNum": [
+ {
+ _attr: {
+ "w15:restartNumberingAfterBreak": 0,
+ "w:abstractNumId": 1,
+ },
+ },
+ {
+ "w:multiLevelType": {
+ _attr: {
+ "w:val": "hybridMultilevel",
+ },
+ },
+ },
+ {
+ "w:lvl": [
+ {
+ "w:start": {
+ _attr: {
+ "w:val": 1,
+ },
+ },
+ },
+ {
+ "w:numFmt": {
+ _attr: {
+ "w:val": "lowerRoman",
+ },
+ },
+ },
+ {
+ "w:lvlText": {
+ _attr: {
+ "w:val": "%0.",
+ },
+ },
+ },
+ {
+ "w:lvlJc": {
+ _attr: {
+ "w:val": "start",
+ },
+ },
+ },
+ {
+ "w:rPr": [{ "w:color": { _attr: { "w:val": "123456" } } }],
+ },
+ {
+ _attr: {
+ "w15:tentative": 1,
+ "w:ilvl": 0,
+ },
+ },
+ ],
+ },
+ ],
});
});
});
diff --git a/src/file/numbering/concrete-numbering.spec.ts b/src/file/numbering/concrete-numbering.spec.ts
index 4e0e6e03ad..ef73d18983 100644
--- a/src/file/numbering/concrete-numbering.spec.ts
+++ b/src/file/numbering/concrete-numbering.spec.ts
@@ -56,20 +56,36 @@ describe("ConcreteNumbering", () => {
},
});
const tree = new Formatter().format(concreteNumbering);
- expect(tree["w:num"]).to.include({
- "w:lvlOverride": [
+ expect(tree).to.deep.equal({
+ "w:num": [
{
_attr: {
- "w:ilvl": 1,
+ "w:numId": 0,
},
},
{
- "w:startOverride": {
+ "w:abstractNumId": {
_attr: {
- "w:val": 9,
+ "w:val": 1,
},
},
},
+ {
+ "w:lvlOverride": [
+ {
+ _attr: {
+ "w:ilvl": 1,
+ },
+ },
+ {
+ "w:startOverride": {
+ _attr: {
+ "w:val": 9,
+ },
+ },
+ },
+ ],
+ },
],
});
});
diff --git a/src/file/paragraph/formatting/alignment.ts b/src/file/paragraph/formatting/alignment.ts
index 5684509066..05b4f2a6d3 100644
--- a/src/file/paragraph/formatting/alignment.ts
+++ b/src/file/paragraph/formatting/alignment.ts
@@ -1,16 +1,51 @@
// http://officeopenxml.com/WPalignment.php
// http://officeopenxml.com/WPtableAlignment.php
+// http://www.datypic.com/sc/ooxml/t-w_ST_Jc.html
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
export enum AlignmentType {
+ /** Align Start */
START = "start",
- END = "end",
+ /** Align Center */
CENTER = "center",
+ /** End */
+ END = "end",
+ /** Justified */
BOTH = "both",
- JUSTIFIED = "both",
+ /** Medium Kashida Length */
+ MEDIUM_KASHIDA = "mediumKashida",
+ /** Distribute All Characters Equally */
DISTRIBUTE = "distribute",
+ /** Align to List Tab */
+ NUM_TAB = "numTab",
+ /** Widest Kashida Length */
+ HIGH_KASHIDA = "highKashida",
+ /** Low Kashida Length */
+ LOW_KASHIDA = "lowKashida",
+ /** Thai Language Justification */
+ THAI_DISTRIBUTE = "thaiDistribute",
+ /** Align Left */
LEFT = "left",
+ /** Align Right */
RIGHT = "right",
+ /** Justified */
+ JUSTIFIED = "both",
}
export class AlignmentAttributes extends XmlAttributeComponent<{ readonly val: AlignmentType }> {
diff --git a/src/file/paragraph/formatting/spacing.ts b/src/file/paragraph/formatting/spacing.ts
index 70bace1fcc..1d9c0f080c 100644
--- a/src/file/paragraph/formatting/spacing.ts
+++ b/src/file/paragraph/formatting/spacing.ts
@@ -4,6 +4,7 @@ import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
export enum LineRuleType {
AT_LEAST = "atLeast",
EXACTLY = "exactly",
+ EXACT = "exact",
AUTO = "auto",
}
export interface ISpacingProperties {
diff --git a/src/file/paragraph/formatting/tab-stop.spec.ts b/src/file/paragraph/formatting/tab-stop.spec.ts
index 377e7bb060..40afd9965a 100644
--- a/src/file/paragraph/formatting/tab-stop.spec.ts
+++ b/src/file/paragraph/formatting/tab-stop.spec.ts
@@ -8,7 +8,7 @@ describe("LeftTabStop", () => {
let tabStop: TabStop;
beforeEach(() => {
- tabStop = new TabStop(TabStopType.LEFT, 100);
+ tabStop = new TabStop([{ type: TabStopType.LEFT, position: 100 }]);
});
describe("#constructor()", () => {
@@ -32,7 +32,7 @@ describe("RightTabStop", () => {
let tabStop: TabStop;
beforeEach(() => {
- tabStop = new TabStop(TabStopType.RIGHT, 100, LeaderType.DOT);
+ tabStop = new TabStop([{ type: TabStopType.RIGHT, position: 100, leader: LeaderType.DOT }]);
});
describe("#constructor()", () => {
diff --git a/src/file/paragraph/formatting/tab-stop.ts b/src/file/paragraph/formatting/tab-stop.ts
index 4e8fe3436f..3d7b81474f 100644
--- a/src/file/paragraph/formatting/tab-stop.ts
+++ b/src/file/paragraph/formatting/tab-stop.ts
@@ -1,10 +1,19 @@
// http://officeopenxml.com/WPtab.php
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
+export interface TabStopDefinition {
+ readonly type: TabStopType;
+ readonly position: number | TabStopPosition;
+ readonly leader?: LeaderType;
+}
+
export class TabStop extends XmlComponent {
- public constructor(type: TabStopType, position: number, leader?: LeaderType) {
+ public constructor(tabDefinitions: readonly TabStopDefinition[]) {
super("w:tabs");
- this.root.push(new TabStopItem(type, position, leader));
+
+ for (const tabDefinition of tabDefinitions) {
+ this.root.push(new TabStopItem(tabDefinition));
+ }
}
}
@@ -41,13 +50,13 @@ export class TabAttributes extends XmlAttributeComponent<{
}
export class TabStopItem extends XmlComponent {
- public constructor(value: TabStopType, position: string | number, leader?: LeaderType) {
+ public constructor({ type, position, leader }: TabStopDefinition) {
super("w:tab");
this.root.push(
new TabAttributes({
- val: value,
+ val: type,
pos: position,
- leader,
+ leader: leader,
}),
);
}
diff --git a/src/file/paragraph/formatting/width.ts b/src/file/paragraph/formatting/width.ts
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/file/paragraph/formatting/word-wrap.spec.ts b/src/file/paragraph/formatting/word-wrap.spec.ts
new file mode 100644
index 0000000000..acf8b7de1f
--- /dev/null
+++ b/src/file/paragraph/formatting/word-wrap.spec.ts
@@ -0,0 +1,20 @@
+import { expect } from "chai";
+
+import { Formatter } from "@export/formatter";
+
+import { WordWrap } from "./word-wrap";
+
+describe("WordWrap", () => {
+ it("should create", () => {
+ const wordWrap = new WordWrap();
+ const tree = new Formatter().format(wordWrap);
+
+ expect(tree).to.deep.equal({
+ "w:wordWrap": {
+ _attr: {
+ "w:val": 0,
+ },
+ },
+ });
+ });
+});
diff --git a/src/file/paragraph/formatting/word-wrap.ts b/src/file/paragraph/formatting/word-wrap.ts
new file mode 100644
index 0000000000..3fd6e02775
--- /dev/null
+++ b/src/file/paragraph/formatting/word-wrap.ts
@@ -0,0 +1,14 @@
+// http://officeopenxml.com/WPalignment.php
+// http://officeopenxml.com/WPtableAlignment.php
+import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
+
+export class WordWrapAttributes extends XmlAttributeComponent<{ readonly val: 0 }> {
+ protected readonly xmlKeys = { val: "w:val" };
+}
+
+export class WordWrap extends XmlComponent {
+ public constructor() {
+ super("w:wordWrap");
+ this.root.push(new WordWrapAttributes({ val: 0 }));
+ }
+}
diff --git a/src/file/paragraph/links/pageref-field-instruction.ts b/src/file/paragraph/links/pageref-field-instruction.ts
index 8163418ea2..ca5dc4f4dd 100644
--- a/src/file/paragraph/links/pageref-field-instruction.ts
+++ b/src/file/paragraph/links/pageref-field-instruction.ts
@@ -1,4 +1,4 @@
-import { SpaceType } from "@file/space-type";
+import { SpaceType } from "@file/shared";
import { XmlComponent } from "@file/xml-components";
import { TextAttributes } from "../run/text-attributes";
diff --git a/src/file/paragraph/math/math-component.ts b/src/file/paragraph/math/math-component.ts
index 8251235455..ae30a7d3c6 100644
--- a/src/file/paragraph/math/math-component.ts
+++ b/src/file/paragraph/math/math-component.ts
@@ -2,7 +2,7 @@ import { MathAngledBrackets, MathCurlyBrackets, MathRoundBrackets, MathSquareBra
import { MathFraction } from "./fraction";
import { MathFunction } from "./function";
import { MathRun } from "./math-run";
-import { MathSum } from "./n-ary";
+import { MathSum, MathIntegral } from "./n-ary";
import { MathRadical } from "./radical";
import { MathSubScript, MathSubSuperScript, MathSuperScript } from "./script";
@@ -10,6 +10,7 @@ export type MathComponent =
| MathRun
| MathFraction
| MathSum
+ | MathIntegral
| MathSuperScript
| MathSubScript
| MathSubSuperScript
diff --git a/src/file/paragraph/math/n-ary/index.ts b/src/file/paragraph/math/n-ary/index.ts
index 59df698e9c..b255d17e21 100644
--- a/src/file/paragraph/math/n-ary/index.ts
+++ b/src/file/paragraph/math/n-ary/index.ts
@@ -4,4 +4,5 @@ export * from "./math-limit-location";
export * from "./math-n-ary-properties";
export * from "./math-sub-script";
export * from "./math-sum";
+export * from "./math-integral";
export * from "./math-super-script";
diff --git a/src/file/paragraph/math/n-ary/math-integral.spec.ts b/src/file/paragraph/math/n-ary/math-integral.spec.ts
new file mode 100644
index 0000000000..a5f776cc42
--- /dev/null
+++ b/src/file/paragraph/math/n-ary/math-integral.spec.ts
@@ -0,0 +1,116 @@
+import { expect } from "chai";
+
+import { Formatter } from "@export/formatter";
+
+import { MathRun } from "../math-run";
+import { MathIntegral } from "./math-integral";
+
+describe("MathIntegral", () => {
+ describe("#constructor()", () => {
+ it("should create a MathIntegral with correct root key", () => {
+ const mathIntegral = new MathIntegral({
+ children: [new MathRun("1")],
+ subScript: [new MathRun("2")],
+ superScript: [new MathRun("3")],
+ });
+
+ const tree = new Formatter().format(mathIntegral);
+ expect(tree).to.deep.equal({
+ "m:nary": [
+ {
+ "m:naryPr": [
+ {
+ "m:limLoc": {
+ _attr: {
+ "m:val": "undOvr",
+ },
+ },
+ },
+ ],
+ },
+ {
+ "m:sub": [
+ {
+ "m:r": [
+ {
+ "m:t": ["2"],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ "m:sup": [
+ {
+ "m:r": [
+ {
+ "m:t": ["3"],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ "m:e": [
+ {
+ "m:r": [
+ {
+ "m:t": ["1"],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ });
+ });
+
+ it("should create a MathIntegral with correct root key without sub-script and super-scripts", () => {
+ const mathIntegral = new MathIntegral({
+ children: [new MathRun("1")],
+ });
+
+ const tree = new Formatter().format(mathIntegral);
+ expect(tree).to.deep.equal({
+ "m:nary": [
+ {
+ "m:naryPr": [
+ {
+ "m:limLoc": {
+ _attr: {
+ "m:val": "undOvr",
+ },
+ },
+ },
+ {
+ "m:supHide": {
+ _attr: {
+ "m:val": 1,
+ },
+ },
+ },
+ {
+ "m:subHide": {
+ _attr: {
+ "m:val": 1,
+ },
+ },
+ },
+ ],
+ },
+ {
+ "m:e": [
+ {
+ "m:r": [
+ {
+ "m:t": ["1"],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ });
+ });
+ });
+});
diff --git a/src/file/paragraph/math/n-ary/math-integral.ts b/src/file/paragraph/math/n-ary/math-integral.ts
new file mode 100644
index 0000000000..3189d31c08
--- /dev/null
+++ b/src/file/paragraph/math/n-ary/math-integral.ts
@@ -0,0 +1,31 @@
+import { XmlComponent } from "@file/xml-components";
+
+import { MathComponent } from "../math-component";
+import { MathBase } from "./math-base";
+import { MathNAryProperties } from "./math-n-ary-properties";
+import { MathSubScriptElement } from "./math-sub-script";
+import { MathSuperScriptElement } from "./math-super-script";
+
+export interface IMathIntegralOptions {
+ readonly children: readonly MathComponent[];
+ readonly subScript?: readonly MathComponent[];
+ readonly superScript?: readonly MathComponent[];
+}
+
+export class MathIntegral extends XmlComponent {
+ public constructor(options: IMathIntegralOptions) {
+ super("m:nary");
+
+ this.root.push(new MathNAryProperties("", !!options.superScript, !!options.subScript));
+
+ if (!!options.subScript) {
+ this.root.push(new MathSubScriptElement(options.subScript));
+ }
+
+ if (!!options.superScript) {
+ this.root.push(new MathSuperScriptElement(options.superScript));
+ }
+
+ this.root.push(new MathBase(options.children));
+ }
+}
diff --git a/src/file/paragraph/math/n-ary/math-n-ary-properties.ts b/src/file/paragraph/math/n-ary/math-n-ary-properties.ts
index c3f9d42912..b8a491df39 100644
--- a/src/file/paragraph/math/n-ary/math-n-ary-properties.ts
+++ b/src/file/paragraph/math/n-ary/math-n-ary-properties.ts
@@ -10,7 +10,9 @@ export class MathNAryProperties extends XmlComponent {
public constructor(accent: string, hasSuperScript: boolean, hasSubScript: boolean) {
super("m:naryPr");
- this.root.push(new MathAccentCharacter(accent));
+ if (!!accent) {
+ this.root.push(new MathAccentCharacter(accent));
+ }
this.root.push(new MathLimitLocation());
if (!hasSuperScript) {
diff --git a/src/file/paragraph/paragraph.spec.ts b/src/file/paragraph/paragraph.spec.ts
index 327ebf381f..c8b4135288 100644
--- a/src/file/paragraph/paragraph.spec.ts
+++ b/src/file/paragraph/paragraph.spec.ts
@@ -3,6 +3,7 @@ import { SinonStub, stub } from "sinon";
import * as convenienceFunctions from "@util/convenience-functions";
+import { HorizontalPositionAlign, VerticalPositionAlign } from "@file/shared";
import { Formatter } from "@export/formatter";
import { BorderStyle } from "@file/border";
import { EMPTY_OBJECT } from "@file/xml-components";
@@ -10,7 +11,6 @@ import { EMPTY_OBJECT } from "@file/xml-components";
import { IViewWrapper } from "../document-wrapper";
import { File } from "../file";
import { ShadingType } from "../shading";
-import { HorizontalPositionAlign, VerticalPositionAlign } from "../shared";
import { AlignmentType, HeadingLevel, LeaderType, PageBreak, TabStopPosition, TabStopType } from "./formatting";
import { FrameAnchorType } from "./frame";
import { Bookmark, ExternalHyperlink } from "./links";
@@ -25,6 +25,7 @@ describe("Paragraph", () => {
after(() => {
(convenienceFunctions.uniqueId as SinonStub).restore();
+ (convenienceFunctions.uniqueNumericId as SinonStub).restore();
});
describe("#constructor()", () => {
diff --git a/src/file/paragraph/properties.spec.ts b/src/file/paragraph/properties.spec.ts
index 86ecbbf62b..0890d65f5b 100644
--- a/src/file/paragraph/properties.spec.ts
+++ b/src/file/paragraph/properties.spec.ts
@@ -123,5 +123,24 @@ describe("ParagraphProperties", () => {
],
});
});
+
+ it("should create with the wordWrap property", () => {
+ const properties = new ParagraphProperties({
+ wordWrap: true,
+ });
+ const tree = new Formatter().format(properties);
+
+ expect(tree).to.deep.equal({
+ "w:pPr": [
+ {
+ "w:wordWrap": {
+ _attr: {
+ "w:val": 0,
+ },
+ },
+ },
+ ],
+ });
+ });
});
});
diff --git a/src/file/paragraph/properties.ts b/src/file/paragraph/properties.ts
index 6f0088ac98..48bcf242b0 100644
--- a/src/file/paragraph/properties.ts
+++ b/src/file/paragraph/properties.ts
@@ -9,8 +9,9 @@ import { PageBreakBefore } from "./formatting/break";
import { IIndentAttributesProperties, Indent } from "./formatting/indent";
import { ISpacingProperties, Spacing } from "./formatting/spacing";
import { HeadingLevel, Style } from "./formatting/style";
-import { LeaderType, TabStop, TabStopPosition, TabStopType } from "./formatting/tab-stop";
+import { TabStop, TabStopDefinition, TabStopType } from "./formatting/tab-stop";
import { NumberProperties } from "./formatting/unordered-list";
+import { WordWrap } from "./formatting/word-wrap";
import { FrameProperties, IFrameOptions } from "./frame/frame-properties";
import { OutlineLevel } from "./links";
@@ -41,11 +42,7 @@ export interface IParagraphPropertiesOptions extends IParagraphStylePropertiesOp
readonly heading?: HeadingLevel;
readonly bidirectional?: boolean;
readonly pageBreakBefore?: boolean;
- readonly tabStops?: readonly {
- readonly position: number | TabStopPosition;
- readonly type: TabStopType;
- readonly leader?: LeaderType;
- }[];
+ readonly tabStops?: readonly TabStopDefinition[];
readonly style?: string;
readonly bullet?: {
readonly level: number;
@@ -54,6 +51,8 @@ export interface IParagraphPropertiesOptions extends IParagraphStylePropertiesOp
readonly widowControl?: boolean;
readonly frame?: IFrameOptions;
readonly suppressLineNumbers?: boolean;
+ readonly wordWrap?: boolean;
+ readonly scale?: number;
}
export class ParagraphProperties extends IgnoreIfEmptyXmlComponent {
@@ -132,19 +131,26 @@ export class ParagraphProperties extends IgnoreIfEmptyXmlComponent {
this.push(new Shading(options.shading));
}
- if (options.rightTabStop) {
- this.push(new TabStop(TabStopType.RIGHT, options.rightTabStop));
+ if (options.wordWrap) {
+ this.push(new WordWrap());
}
- if (options.tabStops) {
- for (const tabStop of options.tabStops) {
- this.push(new TabStop(tabStop.type, tabStop.position, tabStop.leader));
- }
- }
+ /**
+ * FIX: Multitab support for Libre Writer
+ * Ensure there is only one w:tabs tag with multiple w:tab
+ */
+ const tabDefinitions: readonly TabStopDefinition[] = [
+ ...(options.rightTabStop ? [{ type: TabStopType.RIGHT, position: options.rightTabStop }] : []),
+ ...(options.tabStops ? options.tabStops : []),
+ ...(options.leftTabStop ? [{ type: TabStopType.LEFT, position: options.leftTabStop }] : []),
+ ];
- if (options.leftTabStop) {
- this.push(new TabStop(TabStopType.LEFT, options.leftTabStop));
+ if (tabDefinitions.length > 0) {
+ this.push(new TabStop(tabDefinitions));
}
+ /**
+ * FIX - END
+ */
if (options.bidirectional !== undefined) {
this.push(new OnOffElement("w:bidi", options.bidirectional));
diff --git a/src/file/paragraph/run/comment-run.spec.ts b/src/file/paragraph/run/comment-run.spec.ts
index 4f19d8b28d..1900f31c03 100644
--- a/src/file/paragraph/run/comment-run.spec.ts
+++ b/src/file/paragraph/run/comment-run.spec.ts
@@ -1,4 +1,5 @@
import { expect } from "chai";
+import * as sinon from "sinon";
import { Formatter } from "@export/formatter";
import { Comment, CommentRangeEnd, CommentRangeStart, CommentReference, Comments } from "./comment-run";
@@ -40,6 +41,17 @@ describe("CommentReference", () => {
});
describe("Comment", () => {
+ let clock: sinon.SinonFakeTimers;
+
+ beforeEach(() => {
+ const now = new Date(1999, 0, 1);
+ clock = sinon.useFakeTimers(now.getTime());
+ });
+
+ afterEach(() => {
+ clock.restore();
+ });
+
describe("#constructor()", () => {
it("should create", () => {
const component = new Comment({
@@ -72,6 +84,37 @@ describe("Comment", () => {
],
});
});
+
+ it("should create by using default date", () => {
+ const component = new Comment({
+ id: 0,
+ text: "test-comment",
+ });
+ const tree = new Formatter().format(component);
+ expect(tree).to.deep.equal({
+ "w:comment": [
+ { _attr: { "w:id": 0, "w:date": "1999-01-01T00:00:00.000Z" } },
+ {
+ "w:p": [
+ {
+ "w:r": [
+ {
+ "w:t": [
+ {
+ _attr: {
+ "xml:space": "preserve",
+ },
+ },
+ "test-comment",
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ });
+ });
});
});
diff --git a/src/file/paragraph/run/image-run.spec.ts b/src/file/paragraph/run/image-run.spec.ts
index c59ddd1ff4..37bd72d753 100644
--- a/src/file/paragraph/run/image-run.spec.ts
+++ b/src/file/paragraph/run/image-run.spec.ts
@@ -11,10 +11,12 @@ import { ImageRun } from "./image-run";
describe("ImageRun", () => {
before(() => {
stub(convenienceFunctions, "uniqueId").callsFake(() => "test-unique-id");
+ stub(convenienceFunctions, "uniqueNumericId").callsFake(() => 0);
});
after(() => {
(convenienceFunctions.uniqueId as SinonStub).restore();
+ (convenienceFunctions.uniqueNumericId as SinonStub).restore();
});
describe("#constructor()", () => {
@@ -125,6 +127,7 @@ describe("ImageRun", () => {
descr: "",
id: 0,
name: "",
+ title: "",
},
},
},
@@ -375,6 +378,7 @@ describe("ImageRun", () => {
descr: "",
id: 0,
name: "",
+ title: "",
},
},
},
@@ -629,6 +633,7 @@ describe("ImageRun", () => {
descr: "",
id: 0,
name: "",
+ title: "",
},
},
},
@@ -886,6 +891,7 @@ describe("ImageRun", () => {
descr: "",
id: 0,
name: "",
+ title: "",
},
},
},
diff --git a/src/file/paragraph/run/image-run.ts b/src/file/paragraph/run/image-run.ts
index 849f7c6306..df8dcda705 100644
--- a/src/file/paragraph/run/image-run.ts
+++ b/src/file/paragraph/run/image-run.ts
@@ -1,6 +1,7 @@
import { uniqueId } from "@util/convenience-functions";
import { IContext, IXmlableObject } from "@file/xml-components";
+import { DocPropertiesOptions } from "@file/drawing/doc-properties/doc-properties";
import { Drawing, IFloating } from "../../drawing";
import { IMediaTransformation } from "../../media";
@@ -11,6 +12,7 @@ export interface IImageOptions {
readonly data: Buffer | string | Uint8Array | ArrayBuffer;
readonly transformation: IMediaTransformation;
readonly floating?: IFloating;
+ readonly altText?: DocPropertiesOptions;
}
export class ImageRun extends Run {
@@ -37,7 +39,7 @@ export class ImageRun extends Run {
rotation: options.transformation.rotation ? options.transformation.rotation * 60000 : undefined,
},
};
- const drawing = new Drawing(this.imageData, { floating: options.floating });
+ const drawing = new Drawing(this.imageData, { floating: options.floating, docProperties: options.altText });
this.root.push(drawing);
}
@@ -49,15 +51,16 @@ export class ImageRun extends Run {
}
private convertDataURIToBinary(dataURI: string): Uint8Array {
- // https://gist.github.com/borismus/1032746
- // https://github.com/mafintosh/base64-to-uint8array
- const BASE64_MARKER = ";base64,";
-
- const base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
-
if (typeof atob === "function") {
+ // https://gist.github.com/borismus/1032746
+ // https://github.com/mafintosh/base64-to-uint8array
+ const BASE64_MARKER = ";base64,";
+ const base64Index = dataURI.indexOf(BASE64_MARKER);
+
+ const base64IndexWithOffset = base64Index === -1 ? 0 : base64Index + BASE64_MARKER.length;
+
return new Uint8Array(
- atob(dataURI.substring(base64Index))
+ atob(dataURI.substring(base64IndexWithOffset))
.split("")
.map((c) => c.charCodeAt(0)),
);
diff --git a/src/file/paragraph/run/page-number.ts b/src/file/paragraph/run/page-number.ts
index 5b25763a10..cab81614ca 100644
--- a/src/file/paragraph/run/page-number.ts
+++ b/src/file/paragraph/run/page-number.ts
@@ -1,4 +1,4 @@
-import { SpaceType } from "@file/space-type";
+import { SpaceType } from "@file/shared";
import { XmlComponent } from "@file/xml-components";
import { TextAttributes } from "./text-attributes";
diff --git a/src/file/paragraph/run/properties.ts b/src/file/paragraph/run/properties.ts
index e24b8648d1..19593b62dd 100644
--- a/src/file/paragraph/run/properties.ts
+++ b/src/file/paragraph/run/properties.ts
@@ -1,8 +1,14 @@
import { BorderElement, IBorderOptions } from "@file/border";
import { IShadingAttributesProperties, Shading } from "@file/shading";
-import { SpaceType } from "@file/space-type";
import { ChangeAttributes, IChangedAttributesProperties } from "@file/track-revision/track-revision";
-import { HpsMeasureElement, IgnoreIfEmptyXmlComponent, OnOffElement, StringValueElement, XmlComponent } from "@file/xml-components";
+import {
+ HpsMeasureElement,
+ IgnoreIfEmptyXmlComponent,
+ NumberValueElement,
+ OnOffElement,
+ StringValueElement,
+ XmlComponent,
+} from "@file/xml-components";
import { EmphasisMark, EmphasisMarkType } from "./emphasis-mark";
import { CharacterSpacing, Color, Highlight, HighlightComplexScript } from "./formatting";
@@ -46,7 +52,9 @@ export interface IRunStylePropertiesOptions {
readonly imprint?: boolean;
readonly revision?: IRunPropertiesChangeOptions;
readonly border?: IBorderOptions;
- readonly space?: SpaceType;
+ readonly vanish?: boolean;
+ readonly specVanish?: boolean;
+ readonly scale?: number;
}
export interface IRunPropertiesOptions extends IRunStylePropertiesOptions {
@@ -217,6 +225,21 @@ export class RunProperties extends IgnoreIfEmptyXmlComponent {
if (options.border) {
this.push(new BorderElement("w:bdr", options.border));
}
+
+ if (options.vanish) {
+ // https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_vanish_topic_ID0E6W3O.html
+ // http://www.datypic.com/sc/ooxml/e-w_vanish-1.html
+ this.push(new OnOffElement("w:vanish", options.vanish));
+ }
+
+ if (options.specVanish) {
+ // https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_specVanish_topic_ID0EIE1O.html
+ this.push(new OnOffElement("w:specVanish", options.vanish));
+ }
+
+ if (options.scale !== undefined) {
+ this.push(new NumberValueElement("w:w", options.scale));
+ }
}
public push(item: XmlComponent): void {
diff --git a/src/file/paragraph/run/run-components/text.ts b/src/file/paragraph/run/run-components/text.ts
index 3d402038a1..94b71073c9 100644
--- a/src/file/paragraph/run/run-components/text.ts
+++ b/src/file/paragraph/run/run-components/text.ts
@@ -1,4 +1,4 @@
-import { SpaceType } from "@file/space-type";
+import { SpaceType } from "@file/shared";
import { XmlComponent } from "@file/xml-components";
import { TextAttributes } from "../text-attributes";
diff --git a/src/file/paragraph/run/run.spec.ts b/src/file/paragraph/run/run.spec.ts
index 2604d8ffca..b178536435 100644
--- a/src/file/paragraph/run/run.spec.ts
+++ b/src/file/paragraph/run/run.spec.ts
@@ -3,7 +3,6 @@ import { expect } from "chai";
import { Formatter } from "@export/formatter";
import { BorderStyle } from "@file/border";
import { ShadingType } from "@file/shading";
-import { SpaceType } from "@file/space-type";
import { EmphasisMarkType } from "./emphasis-mark";
import { PageNumber, Run } from "./run";
@@ -521,18 +520,64 @@ describe("Run", () => {
});
});
- describe("#space", () => {
- it("should correctly set the border", () => {
+ describe("#vanish and #specVanish", () => {
+ it("should correctly set vanish", () => {
const run = new Run({
- space: SpaceType.PRESERVE,
+ vanish: true,
});
const tree = new Formatter().format(run);
expect(tree).to.deep.equal({
- "w:r": {
- _attr: {
- "xml:space": "preserve",
+ "w:r": [
+ {
+ "w:rPr": [
+ {
+ "w:vanish": {},
+ },
+ ],
},
- },
+ ],
+ });
+ });
+
+ it("should correctly set specVanish", () => {
+ const run = new Run({
+ specVanish: true,
+ });
+ const tree = new Formatter().format(run);
+ expect(tree).to.deep.equal({
+ "w:r": [
+ {
+ "w:rPr": [
+ {
+ "w:specVanish": {},
+ },
+ ],
+ },
+ ],
+ });
+ });
+
+ describe("#scale", () => {
+ it("should correctly set the border", () => {
+ const run = new Run({
+ scale: 200,
+ });
+ const tree = new Formatter().format(run);
+ expect(tree).to.deep.equal({
+ "w:r": [
+ {
+ "w:rPr": [
+ {
+ "w:w": {
+ _attr: {
+ "w:val": 200,
+ },
+ },
+ },
+ ],
+ },
+ ],
+ });
});
});
});
diff --git a/src/file/paragraph/run/run.ts b/src/file/paragraph/run/run.ts
index e5344e0e54..4fb047e0c7 100644
--- a/src/file/paragraph/run/run.ts
+++ b/src/file/paragraph/run/run.ts
@@ -9,10 +9,10 @@ import { Begin, End, Separate } from "./field";
import { NumberOfPages, NumberOfPagesSection, Page } from "./page-number";
import { IRunPropertiesOptions, RunProperties } from "./properties";
import { Text } from "./run-components/text";
-import { TextAttributes } from "./text-attributes";
+import { Tab } from "./tab";
export interface IRunOptions extends IRunPropertiesOptions {
- readonly children?: readonly (Begin | FieldInstruction | Separate | End | PageNumber | FootnoteReferenceRun | string)[];
+ readonly children?: readonly (Begin | FieldInstruction | Separate | End | PageNumber | FootnoteReferenceRun | Tab | string)[];
readonly break?: number;
readonly text?: string;
}
@@ -37,10 +37,6 @@ export class Run extends XmlComponent {
}
}
- if (options.space) {
- this.root.push(new TextAttributes({ space: options.space }));
- }
-
if (options.children) {
for (const child of options.children) {
if (typeof child === "string") {
diff --git a/src/file/paragraph/run/sequential-identifier-instruction.ts b/src/file/paragraph/run/sequential-identifier-instruction.ts
index e1742a5c33..4de568aebc 100644
--- a/src/file/paragraph/run/sequential-identifier-instruction.ts
+++ b/src/file/paragraph/run/sequential-identifier-instruction.ts
@@ -1,5 +1,5 @@
// http://officeopenxml.com/WPfieldInstructions.php
-import { SpaceType } from "@file/space-type";
+import { SpaceType } from "@file/shared";
import { XmlComponent } from "@file/xml-components";
import { TextAttributes } from "./text-attributes";
diff --git a/src/file/paragraph/run/tab.ts b/src/file/paragraph/run/tab.ts
index eed0ad21f1..061e3deb3a 100644
--- a/src/file/paragraph/run/tab.ts
+++ b/src/file/paragraph/run/tab.ts
@@ -1,3 +1,4 @@
+// https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_tab_topic_ID0EM6AO.html
import { XmlComponent } from "@file/xml-components";
//
diff --git a/src/file/paragraph/run/text-attributes.ts b/src/file/paragraph/run/text-attributes.ts
index 742f640002..e56d091126 100644
--- a/src/file/paragraph/run/text-attributes.ts
+++ b/src/file/paragraph/run/text-attributes.ts
@@ -1,4 +1,4 @@
-import { SpaceType } from "@file/space-type";
+import { SpaceType } from "@file/shared";
import { XmlAttributeComponent } from "@file/xml-components";
export class TextAttributes extends XmlAttributeComponent<{ readonly space: SpaceType }> {
diff --git a/src/file/settings/compatibility.spec.ts b/src/file/settings/compatibility.spec.ts
index c264ad70bf..102f7375d0 100644
--- a/src/file/settings/compatibility.spec.ts
+++ b/src/file/settings/compatibility.spec.ts
@@ -1,7 +1,6 @@
import { expect } from "chai";
import { Formatter } from "@export/formatter";
-import { EMPTY_OBJECT } from "@file/xml-components";
import { Compatibility } from "./compatibility";
@@ -11,7 +10,140 @@ describe("Compatibility", () => {
const compatibility = new Compatibility({});
const tree = new Formatter().format(compatibility);
- expect(tree).to.deep.equal({ "w:compat": EMPTY_OBJECT });
+ expect(tree).to.deep.equal({ "w:compat": {} });
+ });
+ });
+
+ describe("#version", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ version: 10,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({
+ "w:compat": [
+ {
+ "w:compatSetting": {
+ _attr: {
+ "w:name": "compatibilityMode",
+ "w:uri": "http://schemas.microsoft.com/office/word",
+ "w:val": 10,
+ },
+ },
+ },
+ ],
+ });
+ });
+ });
+
+ describe("#useSingleBorderforContiguousCells", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ useSingleBorderforContiguousCells: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:useSingleBorderforContiguousCells": {} }] });
+ });
+ });
+
+ describe("#wordPerfectJustification", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ wordPerfectJustification: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:wpJustification": {} }] });
+ });
+ });
+
+ describe("#noTabStopForHangingIndent", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ noTabStopForHangingIndent: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:noTabHangInd": {} }] });
+ });
+ });
+
+ describe("#noLeading", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ noLeading: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:noLeading": {} }] });
+ });
+ });
+
+ describe("#spaceForUnderline", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ spaceForUnderline: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:spaceForUL": {} }] });
+ });
+ });
+
+ describe("#noColumnBalance", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ noColumnBalance: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:noColumnBalance": {} }] });
+ });
+ });
+
+ describe("#balanceSingleByteDoubleByteWidth", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ balanceSingleByteDoubleByteWidth: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:balanceSingleByteDoubleByteWidth": {} }] });
+ });
+ });
+
+ describe("#noExtraLineSpacing", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ noExtraLineSpacing: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:noExtraLineSpacing": {} }] });
+ });
+ });
+
+ describe("#doNotLeaveBackslashAlone", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotLeaveBackslashAlone: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotLeaveBackslashAlone": {} }] });
+ });
+ });
+
+ describe("#underlineTrailingSpaces", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ underlineTrailingSpaces: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:ulTrailSpace": {} }] });
});
});
@@ -22,7 +154,601 @@ describe("Compatibility", () => {
});
const tree = new Formatter().format(compatibility);
- expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotExpandShiftReturn": EMPTY_OBJECT }] });
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotExpandShiftReturn": {} }] });
+ });
+ });
+
+ describe("#spacingInWholePoints", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ spacingInWholePoints: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:spacingInWholePoints": {} }] });
+ });
+ });
+
+ describe("#lineWrapLikeWord6", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ lineWrapLikeWord6: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:lineWrapLikeWord6": {} }] });
+ });
+ });
+
+ describe("#printBodyTextBeforeHeader", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ printBodyTextBeforeHeader: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:printBodyTextBeforeHeader": {} }] });
+ });
+ });
+
+ describe("#printColorsBlack", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ printColorsBlack: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:printColBlack": {} }] });
+ });
+ });
+
+ describe("#spaceWidth", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ spaceWidth: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:wpSpaceWidth": {} }] });
+ });
+ });
+
+ describe("#showBreaksInFrames", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ showBreaksInFrames: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:showBreaksInFrames": {} }] });
+ });
+ });
+
+ describe("#subFontBySize", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ subFontBySize: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:subFontBySize": {} }] });
+ });
+ });
+
+ describe("#suppressBottomSpacing", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ suppressBottomSpacing: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:suppressBottomSpacing": {} }] });
+ });
+ });
+
+ describe("#suppressTopSpacing", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ suppressTopSpacing: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:suppressTopSpacing": {} }] });
+ });
+ });
+
+ describe("#suppressSpacingAtTopOfPage", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ suppressSpacingAtTopOfPage: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:suppressSpacingAtTopOfPage": {} }] });
+ });
+ });
+
+ describe("#suppressTopSpacingWP", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ suppressTopSpacingWP: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:suppressTopSpacingWP": {} }] });
+ });
+ });
+
+ describe("#suppressSpBfAfterPgBrk", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ suppressSpBfAfterPgBrk: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:suppressSpBfAfterPgBrk": {} }] });
+ });
+ });
+
+ describe("#swapBordersFacingPages", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ swapBordersFacingPages: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:swapBordersFacingPages": {} }] });
+ });
+ });
+
+ describe("#convertMailMergeEsc", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ convertMailMergeEsc: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:convMailMergeEsc": {} }] });
+ });
+ });
+
+ describe("#truncateFontHeightsLikeWP6", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ truncateFontHeightsLikeWP6: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:truncateFontHeightsLikeWP6": {} }] });
+ });
+ });
+
+ describe("#macWordSmallCaps", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ macWordSmallCaps: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:mwSmallCaps": {} }] });
+ });
+ });
+
+ describe("#usePrinterMetrics", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ usePrinterMetrics: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:usePrinterMetrics": {} }] });
+ });
+ });
+
+ describe("#doNotSuppressParagraphBorders", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotSuppressParagraphBorders: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotSuppressParagraphBorders": {} }] });
+ });
+ });
+
+ describe("#wrapTrailSpaces", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ wrapTrailSpaces: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:wrapTrailSpaces": {} }] });
+ });
+ });
+
+ describe("#footnoteLayoutLikeWW8", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ footnoteLayoutLikeWW8: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:footnoteLayoutLikeWW8": {} }] });
+ });
+ });
+
+ describe("#shapeLayoutLikeWW8", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ shapeLayoutLikeWW8: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:shapeLayoutLikeWW8": {} }] });
+ });
+ });
+
+ describe("#alignTablesRowByRow", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ alignTablesRowByRow: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:alignTablesRowByRow": {} }] });
+ });
+ });
+
+ describe("#forgetLastTabAlignment", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ forgetLastTabAlignment: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:forgetLastTabAlignment": {} }] });
+ });
+ });
+
+ describe("#adjustLineHeightInTable", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ adjustLineHeightInTable: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:adjustLineHeightInTable": {} }] });
+ });
+ });
+
+ describe("#autoSpaceLikeWord95", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ autoSpaceLikeWord95: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:autoSpaceLikeWord95": {} }] });
+ });
+ });
+
+ describe("#noSpaceRaiseLower", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ noSpaceRaiseLower: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:noSpaceRaiseLower": {} }] });
+ });
+ });
+
+ describe("#doNotUseHTMLParagraphAutoSpacing", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotUseHTMLParagraphAutoSpacing: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotUseHTMLParagraphAutoSpacing": {} }] });
+ });
+ });
+
+ describe("#layoutRawTableWidth", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ layoutRawTableWidth: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:layoutRawTableWidth": {} }] });
+ });
+ });
+
+ describe("#layoutTableRowsApart", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ layoutTableRowsApart: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:layoutTableRowsApart": {} }] });
+ });
+ });
+
+ describe("#useWord97LineBreakRules", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ useWord97LineBreakRules: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:useWord97LineBreakRules": {} }] });
+ });
+ });
+
+ describe("#doNotBreakWrappedTables", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotBreakWrappedTables: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotBreakWrappedTables": {} }] });
+ });
+ });
+
+ describe("#doNotSnapToGridInCell", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotSnapToGridInCell: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotSnapToGridInCell": {} }] });
+ });
+ });
+
+ describe("#selectFieldWithFirstOrLastCharacter", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ selectFieldWithFirstOrLastCharacter: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:selectFldWithFirstOrLastChar": {} }] });
+ });
+ });
+
+ describe("#applyBreakingRules", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ applyBreakingRules: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:applyBreakingRules": {} }] });
+ });
+ });
+
+ describe("#doNotWrapTextWithPunctuation", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotWrapTextWithPunctuation: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotWrapTextWithPunct": {} }] });
+ });
+ });
+
+ describe("#doNotUseEastAsianBreakRules", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotUseEastAsianBreakRules: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotUseEastAsianBreakRules": {} }] });
+ });
+ });
+
+ describe("#useWord2002TableStyleRules", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ useWord2002TableStyleRules: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:useWord2002TableStyleRules": {} }] });
+ });
+ });
+
+ describe("#growAutofit", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ growAutofit: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:growAutofit": {} }] });
+ });
+ });
+
+ describe("#useFELayout", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ useFELayout: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:useFELayout": {} }] });
+ });
+ });
+
+ describe("#useNormalStyleForList", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ useNormalStyleForList: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:useNormalStyleForList": {} }] });
+ });
+ });
+
+ describe("#doNotUseIndentAsNumberingTabStop", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotUseIndentAsNumberingTabStop: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotUseIndentAsNumberingTabStop": {} }] });
+ });
+ });
+
+ describe("#useAlternateEastAsianLineBreakRules", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ useAlternateEastAsianLineBreakRules: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:useAltKinsokuLineBreakRules": {} }] });
+ });
+ });
+
+ describe("#allowSpaceOfSameStyleInTable", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ allowSpaceOfSameStyleInTable: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:allowSpaceOfSameStyleInTable": {} }] });
+ });
+ });
+
+ describe("#doNotSuppressIndentation", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotSuppressIndentation: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotSuppressIndentation": {} }] });
+ });
+ });
+
+ describe("#doNotAutofitConstrainedTables", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotAutofitConstrainedTables: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotAutofitConstrainedTables": {} }] });
+ });
+ });
+
+ describe("#autofitToFirstFixedWidthCell", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ autofitToFirstFixedWidthCell: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:autofitToFirstFixedWidthCell": {} }] });
+ });
+ });
+
+ describe("#underlineTabInNumberingList", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ underlineTabInNumberingList: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:underlineTabInNumList": {} }] });
+ });
+ });
+
+ describe("#displayHangulFixedWidth", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ displayHangulFixedWidth: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:displayHangulFixedWidth": {} }] });
+ });
+ });
+
+ describe("#splitPgBreakAndParaMark", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ splitPgBreakAndParaMark: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:splitPgBreakAndParaMark": {} }] });
+ });
+ });
+
+ describe("#doNotVerticallyAlignCellWithSp", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotVerticallyAlignCellWithSp: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotVertAlignCellWithSp": {} }] });
+ });
+ });
+
+ describe("#doNotBreakConstrainedForcedTable", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ doNotBreakConstrainedForcedTable: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotBreakConstrainedForcedTable": {} }] });
+ });
+ });
+
+ describe("#ignoreVerticalAlignmentInTextboxes", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ ignoreVerticalAlignmentInTextboxes: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:doNotVertAlignInTxbx": {} }] });
+ });
+ });
+
+ describe("#useAnsiKerningPairs", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ useAnsiKerningPairs: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:useAnsiKerningPairs": {} }] });
+ });
+ });
+
+ describe("#cachedColumnBalance", () => {
+ it("should create a setting for not justifying lines ending in soft line break", () => {
+ const compatibility = new Compatibility({
+ cachedColumnBalance: true,
+ });
+
+ const tree = new Formatter().format(compatibility);
+ expect(tree).to.deep.equal({ "w:compat": [{ "w:cachedColBalance": {} }] });
});
});
});
diff --git a/src/file/settings/compatibility.ts b/src/file/settings/compatibility.ts
index 713a8b8777..1f2160c91a 100644
--- a/src/file/settings/compatibility.ts
+++ b/src/file/settings/compatibility.ts
@@ -1,3 +1,4 @@
+// http://www.datypic.com/sc/ooxml/e-w_compat-1.html
import { OnOffElement, XmlComponent } from "@file/xml-components";
import { CompatibilitySetting } from "./compatibility-setting/compatibility-setting";
@@ -74,21 +75,405 @@ import { CompatibilitySetting } from "./compatibility-setting/compatibility-sett
//
export interface ICompatibilityOptions {
- readonly doNotExpandShiftReturn?: boolean;
readonly version?: number;
+ /** Use Simplified Rules For Table Border Conflicts */
+ readonly useSingleBorderforContiguousCells?: boolean;
+ /** Emulate WordPerfect 6.x Paragraph Justification */
+ readonly wordPerfectJustification?: boolean;
+ /** Do Not Create Custom Tab Stop for Hanging Indent */
+ readonly noTabStopForHangingIndent?: boolean;
+ /** Do Not Add Leading Between Lines of Text */
+ readonly noLeading?: boolean;
+ /** Add Additional Space Below Baseline For Underlined East Asian Text */
+ readonly spaceForUnderline?: boolean;
+ /** Do Not Balance Text Columns within a Section */
+ readonly noColumnBalance?: boolean;
+ /** Balance Single Byte and Double Byte Characters */
+ readonly balanceSingleByteDoubleByteWidth?: boolean;
+ /** Do Not Center Content on Lines With Exact Line Height */
+ readonly noExtraLineSpacing?: boolean;
+ /** Convert Backslash To Yen Sign When Entered */
+ readonly doNotLeaveBackslashAlone?: boolean;
+ /** Underline All Trailing Spaces */
+ readonly underlineTrailingSpaces?: boolean;
+ /** Don't Justify Lines Ending in Soft Line Break */
+ readonly doNotExpandShiftReturn?: boolean;
+ /** Only Expand/Condense Text By Whole Points */
+ readonly spacingInWholePoints?: boolean;
+ /** Emulate Word 6.0 Line Wrapping for East Asian Text */
+ readonly lineWrapLikeWord6?: boolean;
+ /** Print Body Text before Header/Footer Contents */
+ readonly printBodyTextBeforeHeader?: boolean;
+ /** Print Colors as Black And White without Dithering */
+ readonly printColorsBlack?: boolean;
+ /** Space width */
+ readonly spaceWidth?: boolean;
+ /** Display Page/Column Breaks Present in Frames */
+ readonly showBreaksInFrames?: boolean;
+ /** Increase Priority Of Font Size During Font Substitution */
+ readonly subFontBySize?: boolean;
+ /** Ignore Exact Line Height for Last Line on Page */
+ readonly suppressBottomSpacing?: boolean;
+ /** Ignore Minimum and Exact Line Height for First Line on Page */
+ readonly suppressTopSpacing?: boolean;
+ /** Ignore Minimum Line Height for First Line on Page */
+ readonly suppressSpacingAtTopOfPage?: boolean;
+ /** Emulate WordPerfect 5.x Line Spacing */
+ readonly suppressTopSpacingWP?: boolean;
+ /** Do Not Use Space Before On First Line After a Page Break */
+ readonly suppressSpBfAfterPgBrk?: boolean;
+ /** Swap Paragraph Borders on Odd Numbered Pages */
+ readonly swapBordersFacingPages?: boolean;
+ /** Treat Backslash Quotation Delimiter as Two Quotation Marks */
+ readonly convertMailMergeEsc?: boolean;
+ /** Emulate WordPerfect 6.x Font Height Calculation */
+ readonly truncateFontHeightsLikeWP6?: boolean;
+ /** Emulate Word 5.x for the Macintosh Small Caps Formatting */
+ readonly macWordSmallCaps?: boolean;
+ /** Use Printer Metrics To Display Documents */
+ readonly usePrinterMetrics?: boolean;
+ /** Do Not Suppress Paragraph Borders Next To Frames */
+ readonly doNotSuppressParagraphBorders?: boolean;
+ /** Line Wrap Trailing Spaces */
+ readonly wrapTrailSpaces?: boolean;
+ /** Emulate Word 6.x/95/97 Footnote Placement */
+ readonly footnoteLayoutLikeWW8?: boolean;
+ /** Emulate Word 97 Text Wrapping Around Floating Objects */
+ readonly shapeLayoutLikeWW8?: boolean;
+ /** Align Table Rows Independently */
+ readonly alignTablesRowByRow?: boolean;
+ /** Ignore Width of Last Tab Stop When Aligning Paragraph If It Is Not Left Aligned */
+ readonly forgetLastTabAlignment?: boolean;
+ /** Add Document Grid Line Pitch To Lines in Table Cells */
+ readonly adjustLineHeightInTable?: boolean;
+ /** Emulate Word 95 Full-Width Character Spacing */
+ readonly autoSpaceLikeWord95?: boolean;
+ /** Do Not Increase Line Height for Raised/Lowered Text */
+ readonly noSpaceRaiseLower?: boolean;
+ /** Use Fixed Paragraph Spacing for HTML Auto Setting */
+ readonly doNotUseHTMLParagraphAutoSpacing?: boolean;
+ /** Ignore Space Before Table When Deciding If Table Should Wrap Floating Object */
+ readonly layoutRawTableWidth?: boolean;
+ /** Allow Table Rows to Wrap Inline Objects Independently */
+ readonly layoutTableRowsApart?: boolean;
+ /** Emulate Word 97 East Asian Line Breaking */
+ readonly useWord97LineBreakRules?: boolean;
+ /** Do Not Allow Floating Tables To Break Across Pages */
+ readonly doNotBreakWrappedTables?: boolean;
+ /** Do Not Snap to Document Grid in Table Cells with Objects */
+ readonly doNotSnapToGridInCell?: boolean;
+ /** Select Field When First or Last Character Is Selected */
+ readonly selectFieldWithFirstOrLastCharacter?: boolean;
+ /** Use Legacy Ethiopic and Amharic Line Breaking Rules */
+ readonly applyBreakingRules?: boolean;
+ /** Do Not Allow Hanging Punctuation With Character Grid */
+ readonly doNotWrapTextWithPunctuation?: boolean;
+ /** Do Not Compress Compressible Characters When Using Document Grid */
+ readonly doNotUseEastAsianBreakRules?: boolean;
+ /** Emulate Word 2002 Table Style Rules */
+ readonly useWord2002TableStyleRules?: boolean;
+ /** Allow Tables to AutoFit Into Page Margins */
+ readonly growAutofit?: boolean;
+ /** Do Not Bypass East Asian/Complex Script Layout Code */
+ readonly useFELayout?: boolean;
+ /** Do Not Automatically Apply List Paragraph Style To Bulleted/Numbered Text */
+ readonly useNormalStyleForList?: boolean;
+ /** Ignore Hanging Indent When Creating Tab Stop After Numbering */
+ readonly doNotUseIndentAsNumberingTabStop?: boolean;
+ /** Use Alternate Set of East Asian Line Breaking Rules */
+ readonly useAlternateEastAsianLineBreakRules?: boolean;
+ /** Allow Contextual Spacing of Paragraphs in Tables */
+ readonly allowSpaceOfSameStyleInTable?: boolean;
+ /** Do Not Ignore Floating Objects When Calculating Paragraph Indentation */
+ readonly doNotSuppressIndentation?: boolean;
+ /** Do Not AutoFit Tables To Fit Next To Wrapped Objects */
+ readonly doNotAutofitConstrainedTables?: boolean;
+ /** Allow Table Columns To Exceed Preferred Widths of Constituent Cells */
+ readonly autofitToFirstFixedWidthCell?: boolean;
+ /** Underline Following Character Following Numbering */
+ readonly underlineTabInNumberingList?: boolean;
+ /** Always Use Fixed Width for Hangul Characters */
+ readonly displayHangulFixedWidth?: boolean;
+ /** Always Move Paragraph Mark to Page after a Page Break */
+ readonly splitPgBreakAndParaMark?: boolean;
+ /** Don't Vertically Align Cells Containing Floating Objects */
+ readonly doNotVerticallyAlignCellWithSp?: boolean;
+ /** Don't Break Table Rows Around Floating Tables */
+ readonly doNotBreakConstrainedForcedTable?: boolean;
+ /** Ignore Vertical Alignment in Textboxes */
+ readonly ignoreVerticalAlignmentInTextboxes?: boolean;
+ /** Use ANSI Kerning Pairs from Fonts */
+ readonly useAnsiKerningPairs?: boolean;
+ /** Use Cached Paragraph Information for Column Balancing */
+ readonly cachedColumnBalance?: boolean;
}
export class Compatibility extends XmlComponent {
public constructor(options: ICompatibilityOptions) {
super("w:compat");
- // Don't justify lines ending in soft line break setting
- if (options.doNotExpandShiftReturn !== undefined) {
- this.root.push(new OnOffElement("w:doNotExpandShiftReturn", options.doNotExpandShiftReturn));
- }
-
if (options.version) {
this.root.push(new CompatibilitySetting(options.version));
}
+
+ if (options.useSingleBorderforContiguousCells) {
+ this.root.push(new OnOffElement("w:useSingleBorderforContiguousCells", options.useSingleBorderforContiguousCells));
+ }
+
+ if (options.wordPerfectJustification) {
+ this.root.push(new OnOffElement("w:wpJustification", options.wordPerfectJustification));
+ }
+
+ if (options.noTabStopForHangingIndent) {
+ this.root.push(new OnOffElement("w:noTabHangInd", options.noTabStopForHangingIndent));
+ }
+
+ if (options.noLeading) {
+ this.root.push(new OnOffElement("w:noLeading", options.noLeading));
+ }
+
+ if (options.spaceForUnderline) {
+ this.root.push(new OnOffElement("w:spaceForUL", options.spaceForUnderline));
+ }
+
+ if (options.noColumnBalance) {
+ this.root.push(new OnOffElement("w:noColumnBalance", options.noColumnBalance));
+ }
+
+ if (options.balanceSingleByteDoubleByteWidth) {
+ this.root.push(new OnOffElement("w:balanceSingleByteDoubleByteWidth", options.balanceSingleByteDoubleByteWidth));
+ }
+
+ if (options.noExtraLineSpacing) {
+ this.root.push(new OnOffElement("w:noExtraLineSpacing", options.noExtraLineSpacing));
+ }
+
+ if (options.doNotLeaveBackslashAlone) {
+ this.root.push(new OnOffElement("w:doNotLeaveBackslashAlone", options.doNotLeaveBackslashAlone));
+ }
+
+ if (options.underlineTrailingSpaces) {
+ this.root.push(new OnOffElement("w:ulTrailSpace", options.underlineTrailingSpaces));
+ }
+
+ if (options.doNotExpandShiftReturn) {
+ this.root.push(new OnOffElement("w:doNotExpandShiftReturn", options.doNotExpandShiftReturn));
+ }
+
+ if (options.spacingInWholePoints) {
+ this.root.push(new OnOffElement("w:spacingInWholePoints", options.spacingInWholePoints));
+ }
+
+ if (options.lineWrapLikeWord6) {
+ this.root.push(new OnOffElement("w:lineWrapLikeWord6", options.lineWrapLikeWord6));
+ }
+
+ if (options.printBodyTextBeforeHeader) {
+ this.root.push(new OnOffElement("w:printBodyTextBeforeHeader", options.printBodyTextBeforeHeader));
+ }
+
+ if (options.printColorsBlack) {
+ this.root.push(new OnOffElement("w:printColBlack", options.printColorsBlack));
+ }
+
+ if (options.spaceWidth) {
+ this.root.push(new OnOffElement("w:wpSpaceWidth", options.spaceWidth));
+ }
+
+ if (options.showBreaksInFrames) {
+ this.root.push(new OnOffElement("w:showBreaksInFrames", options.showBreaksInFrames));
+ }
+
+ if (options.subFontBySize) {
+ this.root.push(new OnOffElement("w:subFontBySize", options.subFontBySize));
+ }
+
+ if (options.suppressBottomSpacing) {
+ this.root.push(new OnOffElement("w:suppressBottomSpacing", options.suppressBottomSpacing));
+ }
+
+ if (options.suppressTopSpacing) {
+ this.root.push(new OnOffElement("w:suppressTopSpacing", options.suppressTopSpacing));
+ }
+
+ if (options.suppressSpacingAtTopOfPage) {
+ this.root.push(new OnOffElement("w:suppressSpacingAtTopOfPage", options.suppressSpacingAtTopOfPage));
+ }
+
+ if (options.suppressTopSpacingWP) {
+ this.root.push(new OnOffElement("w:suppressTopSpacingWP", options.suppressTopSpacingWP));
+ }
+
+ if (options.suppressSpBfAfterPgBrk) {
+ this.root.push(new OnOffElement("w:suppressSpBfAfterPgBrk", options.suppressSpBfAfterPgBrk));
+ }
+
+ if (options.swapBordersFacingPages) {
+ this.root.push(new OnOffElement("w:swapBordersFacingPages", options.swapBordersFacingPages));
+ }
+
+ if (options.convertMailMergeEsc) {
+ this.root.push(new OnOffElement("w:convMailMergeEsc", options.convertMailMergeEsc));
+ }
+
+ if (options.truncateFontHeightsLikeWP6) {
+ this.root.push(new OnOffElement("w:truncateFontHeightsLikeWP6", options.truncateFontHeightsLikeWP6));
+ }
+
+ if (options.macWordSmallCaps) {
+ this.root.push(new OnOffElement("w:mwSmallCaps", options.macWordSmallCaps));
+ }
+
+ if (options.usePrinterMetrics) {
+ this.root.push(new OnOffElement("w:usePrinterMetrics", options.usePrinterMetrics));
+ }
+
+ if (options.doNotSuppressParagraphBorders) {
+ this.root.push(new OnOffElement("w:doNotSuppressParagraphBorders", options.doNotSuppressParagraphBorders));
+ }
+
+ if (options.wrapTrailSpaces) {
+ this.root.push(new OnOffElement("w:wrapTrailSpaces", options.wrapTrailSpaces));
+ }
+
+ if (options.footnoteLayoutLikeWW8) {
+ this.root.push(new OnOffElement("w:footnoteLayoutLikeWW8", options.footnoteLayoutLikeWW8));
+ }
+
+ if (options.shapeLayoutLikeWW8) {
+ this.root.push(new OnOffElement("w:shapeLayoutLikeWW8", options.shapeLayoutLikeWW8));
+ }
+
+ if (options.alignTablesRowByRow) {
+ this.root.push(new OnOffElement("w:alignTablesRowByRow", options.alignTablesRowByRow));
+ }
+
+ if (options.forgetLastTabAlignment) {
+ this.root.push(new OnOffElement("w:forgetLastTabAlignment", options.forgetLastTabAlignment));
+ }
+
+ if (options.adjustLineHeightInTable) {
+ this.root.push(new OnOffElement("w:adjustLineHeightInTable", options.adjustLineHeightInTable));
+ }
+
+ if (options.autoSpaceLikeWord95) {
+ this.root.push(new OnOffElement("w:autoSpaceLikeWord95", options.autoSpaceLikeWord95));
+ }
+
+ if (options.noSpaceRaiseLower) {
+ this.root.push(new OnOffElement("w:noSpaceRaiseLower", options.noSpaceRaiseLower));
+ }
+
+ if (options.doNotUseHTMLParagraphAutoSpacing) {
+ this.root.push(new OnOffElement("w:doNotUseHTMLParagraphAutoSpacing", options.doNotUseHTMLParagraphAutoSpacing));
+ }
+
+ if (options.layoutRawTableWidth) {
+ this.root.push(new OnOffElement("w:layoutRawTableWidth", options.layoutRawTableWidth));
+ }
+
+ if (options.layoutTableRowsApart) {
+ this.root.push(new OnOffElement("w:layoutTableRowsApart", options.layoutTableRowsApart));
+ }
+
+ if (options.useWord97LineBreakRules) {
+ this.root.push(new OnOffElement("w:useWord97LineBreakRules", options.useWord97LineBreakRules));
+ }
+
+ if (options.doNotBreakWrappedTables) {
+ this.root.push(new OnOffElement("w:doNotBreakWrappedTables", options.doNotBreakWrappedTables));
+ }
+
+ if (options.doNotSnapToGridInCell) {
+ this.root.push(new OnOffElement("w:doNotSnapToGridInCell", options.doNotSnapToGridInCell));
+ }
+
+ if (options.selectFieldWithFirstOrLastCharacter) {
+ this.root.push(new OnOffElement("w:selectFldWithFirstOrLastChar", options.selectFieldWithFirstOrLastCharacter));
+ }
+
+ if (options.applyBreakingRules) {
+ this.root.push(new OnOffElement("w:applyBreakingRules", options.applyBreakingRules));
+ }
+
+ if (options.doNotWrapTextWithPunctuation) {
+ this.root.push(new OnOffElement("w:doNotWrapTextWithPunct", options.doNotWrapTextWithPunctuation));
+ }
+
+ if (options.doNotUseEastAsianBreakRules) {
+ this.root.push(new OnOffElement("w:doNotUseEastAsianBreakRules", options.doNotUseEastAsianBreakRules));
+ }
+
+ if (options.useWord2002TableStyleRules) {
+ this.root.push(new OnOffElement("w:useWord2002TableStyleRules", options.useWord2002TableStyleRules));
+ }
+
+ if (options.growAutofit) {
+ this.root.push(new OnOffElement("w:growAutofit", options.growAutofit));
+ }
+
+ if (options.useFELayout) {
+ this.root.push(new OnOffElement("w:useFELayout", options.useFELayout));
+ }
+
+ if (options.useNormalStyleForList) {
+ this.root.push(new OnOffElement("w:useNormalStyleForList", options.useNormalStyleForList));
+ }
+
+ if (options.doNotUseIndentAsNumberingTabStop) {
+ this.root.push(new OnOffElement("w:doNotUseIndentAsNumberingTabStop", options.doNotUseIndentAsNumberingTabStop));
+ }
+
+ if (options.useAlternateEastAsianLineBreakRules) {
+ this.root.push(new OnOffElement("w:useAltKinsokuLineBreakRules", options.useAlternateEastAsianLineBreakRules));
+ }
+
+ if (options.allowSpaceOfSameStyleInTable) {
+ this.root.push(new OnOffElement("w:allowSpaceOfSameStyleInTable", options.allowSpaceOfSameStyleInTable));
+ }
+
+ if (options.doNotSuppressIndentation) {
+ this.root.push(new OnOffElement("w:doNotSuppressIndentation", options.doNotSuppressIndentation));
+ }
+
+ if (options.doNotAutofitConstrainedTables) {
+ this.root.push(new OnOffElement("w:doNotAutofitConstrainedTables", options.doNotAutofitConstrainedTables));
+ }
+
+ if (options.autofitToFirstFixedWidthCell) {
+ this.root.push(new OnOffElement("w:autofitToFirstFixedWidthCell", options.autofitToFirstFixedWidthCell));
+ }
+
+ if (options.underlineTabInNumberingList) {
+ this.root.push(new OnOffElement("w:underlineTabInNumList", options.underlineTabInNumberingList));
+ }
+
+ if (options.displayHangulFixedWidth) {
+ this.root.push(new OnOffElement("w:displayHangulFixedWidth", options.displayHangulFixedWidth));
+ }
+
+ if (options.splitPgBreakAndParaMark) {
+ this.root.push(new OnOffElement("w:splitPgBreakAndParaMark", options.splitPgBreakAndParaMark));
+ }
+
+ if (options.doNotVerticallyAlignCellWithSp) {
+ this.root.push(new OnOffElement("w:doNotVertAlignCellWithSp", options.doNotVerticallyAlignCellWithSp));
+ }
+
+ if (options.doNotBreakConstrainedForcedTable) {
+ this.root.push(new OnOffElement("w:doNotBreakConstrainedForcedTable", options.doNotBreakConstrainedForcedTable));
+ }
+
+ if (options.ignoreVerticalAlignmentInTextboxes) {
+ this.root.push(new OnOffElement("w:doNotVertAlignInTxbx", options.ignoreVerticalAlignmentInTextboxes));
+ }
+
+ if (options.useAnsiKerningPairs) {
+ this.root.push(new OnOffElement("w:useAnsiKerningPairs", options.useAnsiKerningPairs));
+ }
+
+ if (options.cachedColumnBalance) {
+ this.root.push(new OnOffElement("w:cachedColBalance", options.cachedColumnBalance));
+ }
}
}
diff --git a/src/file/settings/settings.spec.ts b/src/file/settings/settings.spec.ts
index 7bd473bdbf..8ee5b728f2 100644
--- a/src/file/settings/settings.spec.ts
+++ b/src/file/settings/settings.spec.ts
@@ -61,5 +61,80 @@ describe("Settings", () => {
"w:trackRevisions": {},
});
});
+
+ it("should add compatibility setting with default compatability version", () => {
+ const settings = new Settings({
+ compatibility: {},
+ });
+
+ const tree = new Formatter().format(settings);
+ expect(Object.keys(tree)).has.length(1);
+ expect(tree["w:settings"]).to.be.an("array");
+
+ expect(tree["w:settings"]).to.deep.include({
+ "w:compat": [
+ {
+ "w:compatSetting": {
+ _attr: {
+ "w:name": "compatibilityMode",
+ "w:uri": "http://schemas.microsoft.com/office/word",
+ "w:val": 15,
+ },
+ },
+ },
+ ],
+ });
+ });
+
+ it("should add compatibility setting with version", () => {
+ const settings = new Settings({
+ compatibility: {
+ version: 99,
+ },
+ });
+
+ const tree = new Formatter().format(settings);
+ expect(Object.keys(tree)).has.length(1);
+ expect(tree["w:settings"]).to.be.an("array");
+
+ expect(tree["w:settings"]).to.deep.include({
+ "w:compat": [
+ {
+ "w:compatSetting": {
+ _attr: {
+ "w:name": "compatibilityMode",
+ "w:uri": "http://schemas.microsoft.com/office/word",
+ "w:val": 99,
+ },
+ },
+ },
+ ],
+ });
+ });
+
+ // TODO: Remove when deprecating compatibilityModeVersion
+ it("should add compatibility setting with legacy version", () => {
+ const settings = new Settings({
+ compatibilityModeVersion: 99,
+ });
+
+ const tree = new Formatter().format(settings);
+ expect(Object.keys(tree)).has.length(1);
+ expect(tree["w:settings"]).to.be.an("array");
+
+ expect(tree["w:settings"]).to.deep.include({
+ "w:compat": [
+ {
+ "w:compatSetting": {
+ _attr: {
+ "w:name": "compatibilityMode",
+ "w:uri": "http://schemas.microsoft.com/office/word",
+ "w:val": 99,
+ },
+ },
+ },
+ ],
+ });
+ });
});
});
diff --git a/src/file/settings/settings.ts b/src/file/settings/settings.ts
index ceb0e11c4e..76fe4c51fb 100644
--- a/src/file/settings/settings.ts
+++ b/src/file/settings/settings.ts
@@ -1,6 +1,6 @@
import { OnOffElement, XmlAttributeComponent, XmlComponent } from "@file/xml-components";
-import { Compatibility } from "./compatibility";
+import { Compatibility, ICompatibilityOptions } from "./compatibility";
export class SettingsAttributes extends XmlAttributeComponent<{
readonly wpc?: string;
@@ -147,10 +147,11 @@ export class SettingsAttributes extends XmlAttributeComponent<{
//
export interface ISettingsOptions {
- readonly compatabilityModeVersion?: number;
+ readonly compatibilityModeVersion?: number;
readonly evenAndOddHeaders?: boolean;
readonly trackRevisions?: boolean;
readonly updateFields?: boolean;
+ readonly compatibility?: ICompatibilityOptions;
}
export class Settings extends XmlComponent {
@@ -199,7 +200,8 @@ export class Settings extends XmlComponent {
this.root.push(
new Compatibility({
- version: options.compatabilityModeVersion || 15,
+ ...(options.compatibility ?? {}),
+ version: options.compatibility?.version ?? options.compatibilityModeVersion ?? 15,
}),
);
}
diff --git a/src/file/shared/index.ts b/src/file/shared/index.ts
index 6abfbc0a8e..7edbd8d752 100644
--- a/src/file/shared/index.ts
+++ b/src/file/shared/index.ts
@@ -1,2 +1,3 @@
export * from "./alignment";
export * from "./number-format";
+export * from "./space-type";
diff --git a/src/file/space-type.ts b/src/file/shared/space-type.ts
similarity index 100%
rename from src/file/space-type.ts
rename to src/file/shared/space-type.ts
diff --git a/src/file/table-of-contents/alias.ts b/src/file/table-of-contents/alias.ts
deleted file mode 100644
index 3bcdabc1eb..0000000000
--- a/src/file/table-of-contents/alias.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
-
-class AliasAttributes extends XmlAttributeComponent<{ readonly alias: string }> {
- protected readonly xmlKeys = { alias: "w:val" };
-}
-
-export class Alias extends XmlComponent {
- public constructor(alias: string) {
- super("w:alias");
- this.root.push(new AliasAttributes({ alias }));
- }
-}
diff --git a/src/file/table-of-contents/field-instruction.ts b/src/file/table-of-contents/field-instruction.ts
index 759e502dc1..e902febeb6 100644
--- a/src/file/table-of-contents/field-instruction.ts
+++ b/src/file/table-of-contents/field-instruction.ts
@@ -1,6 +1,6 @@
// http://officeopenxml.com/WPfieldInstructions.php
import { TextAttributes } from "@file/paragraph/run/text-attributes";
-import { SpaceType } from "@file/space-type";
+import { SpaceType } from "@file/shared";
import { XmlComponent } from "@file/xml-components";
import { ITableOfContentsOptions } from "./table-of-contents-properties";
diff --git a/src/file/table-of-contents/sdt-properties.ts b/src/file/table-of-contents/sdt-properties.ts
index b94407400c..f1f2c56304 100644
--- a/src/file/table-of-contents/sdt-properties.ts
+++ b/src/file/table-of-contents/sdt-properties.ts
@@ -1,10 +1,9 @@
// http://www.datypic.com/sc/ooxml/e-w_sdtPr-1.html
-import { XmlComponent } from "@file/xml-components";
-import { Alias } from "./alias";
+import { StringValueElement, XmlComponent } from "@file/xml-components";
export class StructuredDocumentTagProperties extends XmlComponent {
public constructor(alias: string) {
super("w:sdtPr");
- this.root.push(new Alias(alias));
+ this.root.push(new StringValueElement("w:alias", alias));
}
}
diff --git a/src/file/table/table-properties/index.ts b/src/file/table/table-properties/index.ts
index c5b5935d7f..aefcc9e0aa 100644
--- a/src/file/table/table-properties/index.ts
+++ b/src/file/table/table-properties/index.ts
@@ -2,4 +2,3 @@ export * from "./table-properties";
export * from "./table-float-properties";
export * from "./table-layout";
export * from "./table-borders";
-export * from "./table-overlap";
diff --git a/src/file/table/table-properties/table-float-properties.spec.ts b/src/file/table/table-properties/table-float-properties.spec.ts
index 88efe2821f..ccc8cb77ef 100644
--- a/src/file/table/table-properties/table-float-properties.spec.ts
+++ b/src/file/table/table-properties/table-float-properties.spec.ts
@@ -2,8 +2,13 @@ import { expect } from "chai";
import { Formatter } from "@export/formatter";
-import { RelativeHorizontalPosition, RelativeVerticalPosition, TableAnchorType, TableFloatProperties } from "./table-float-properties";
-import { OverlapType } from "./table-overlap";
+import {
+ OverlapType,
+ RelativeHorizontalPosition,
+ RelativeVerticalPosition,
+ TableAnchorType,
+ TableFloatProperties,
+} from "./table-float-properties";
describe("Table Float Properties", () => {
describe("#constructor", () => {
diff --git a/src/file/table/table-properties/table-float-properties.ts b/src/file/table/table-properties/table-float-properties.ts
index d2ec4d3ab1..fdcf696d07 100644
--- a/src/file/table/table-properties/table-float-properties.ts
+++ b/src/file/table/table-properties/table-float-properties.ts
@@ -1,8 +1,6 @@
-import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
+import { StringEnumValueElement, XmlAttributeComponent, XmlComponent } from "@file/xml-components";
import { signedTwipsMeasureValue, twipsMeasureValue } from "@util/values";
-import { OverlapType, TableOverlap } from "./table-overlap";
-
export enum TableAnchorType {
MARGIN = "margin",
PAGE = "page",
@@ -26,6 +24,17 @@ export enum RelativeVerticalPosition {
TOP = "top",
}
+//
+//
+//
+//
+//
+//
+export enum OverlapType {
+ NEVER = "never",
+ OVERLAP = "overlap",
+}
+
export interface ITableFloatOptions {
/* cSpell:disable */
/**
@@ -171,7 +180,10 @@ export class TableFloatProperties extends XmlComponent {
);
if (options.overlap) {
- this.root.push(new TableOverlap(options.overlap));
+ //
+ //
+ //
+ this.root.push(new StringEnumValueElement("w:tblOverlap", options.overlap));
}
}
}
diff --git a/src/file/table/table-properties/table-overlap.spec.ts b/src/file/table/table-properties/table-overlap.spec.ts
deleted file mode 100644
index c4d3830c5e..0000000000
--- a/src/file/table/table-properties/table-overlap.spec.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { expect } from "chai";
-
-import { Formatter } from "@export/formatter";
-
-import { OverlapType, TableOverlap } from "./table-overlap";
-
-describe("TableOverlap", () => {
- describe("#constructor", () => {
- it("sets the width attribute to the value given", () => {
- const tableOverlap = new TableOverlap(OverlapType.OVERLAP);
- const tree = new Formatter().format(tableOverlap);
-
- expect(tree).to.deep.equal({
- "w:tblOverlap": {
- _attr: {
- "w:val": "overlap",
- },
- },
- });
- });
- });
-});
diff --git a/src/file/table/table-properties/table-overlap.ts b/src/file/table/table-properties/table-overlap.ts
deleted file mode 100644
index 42e8d4ce75..0000000000
--- a/src/file/table/table-properties/table-overlap.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
-
-//
-//
-//
-//
-//
-//
-export enum OverlapType {
- NEVER = "never",
- OVERLAP = "overlap",
-}
-
-//
-//
-//
-class TableOverlapAttributes extends XmlAttributeComponent<{ readonly val: OverlapType }> {
- protected readonly xmlKeys = { val: "w:val" };
-}
-
-export class TableOverlap extends XmlComponent {
- public constructor(type: OverlapType) {
- super("w:tblOverlap");
- this.root.push(new TableOverlapAttributes({ val: type }));
- }
-}
diff --git a/src/file/track-revision/track-revision-components/deleted-page-number.ts b/src/file/track-revision/track-revision-components/deleted-page-number.ts
index 83971df259..034335179b 100644
--- a/src/file/track-revision/track-revision-components/deleted-page-number.ts
+++ b/src/file/track-revision/track-revision-components/deleted-page-number.ts
@@ -1,5 +1,5 @@
import { TextAttributes } from "@file/paragraph/run/text-attributes";
-import { SpaceType } from "@file/space-type";
+import { SpaceType } from "@file/shared";
import { XmlComponent } from "@file/xml-components";
export class DeletedPage extends XmlComponent {
diff --git a/src/file/track-revision/track-revision-components/deleted-text.ts b/src/file/track-revision/track-revision-components/deleted-text.ts
index e6c3e33c2a..7245a151d3 100644
--- a/src/file/track-revision/track-revision-components/deleted-text.ts
+++ b/src/file/track-revision/track-revision-components/deleted-text.ts
@@ -1,5 +1,5 @@
import { TextAttributes } from "@file/paragraph/run/text-attributes";
-import { SpaceType } from "@file/space-type";
+import { SpaceType } from "@file/shared";
import { XmlComponent } from "@file/xml-components";
export class DeletedText extends XmlComponent {
diff --git a/src/file/xml-components/imported-xml-component.spec.ts b/src/file/xml-components/imported-xml-component.spec.ts
index a031409a00..ae0440d662 100644
--- a/src/file/xml-components/imported-xml-component.spec.ts
+++ b/src/file/xml-components/imported-xml-component.spec.ts
@@ -3,7 +3,7 @@ import { Element, xml2js } from "xml-js";
import { EMPTY_OBJECT } from "@file/xml-components";
-import { convertToXmlComponent, ImportedXmlComponent } from "./imported-xml-component";
+import { convertToXmlComponent, ImportedRootElementAttributes, ImportedXmlComponent } from "./imported-xml-component";
import { IContext } from "./base";
const xmlString = `
@@ -90,5 +90,29 @@ describe("ImportedXmlComponent", () => {
const converted = convertToXmlComponent(xmlObj);
expect(converted).to.deep.equal(convertedXmlElement);
});
+
+ it("should return undefined if xml type is invalid", () => {
+ const xmlObj = { type: "invalid" } as Element;
+ const converted = convertToXmlComponent(xmlObj);
+ expect(converted).to.equal(undefined);
+ });
+ });
+});
+
+describe("ImportedRootElementAttributes", () => {
+ let attributes: ImportedRootElementAttributes;
+
+ beforeEach(() => {
+ attributes = new ImportedRootElementAttributes({});
+ });
+
+ describe("#prepForXml()", () => {
+ it("should work", () => {
+ // tslint:disable-next-line: no-object-literal-type-assertion
+ const converted = attributes.prepForXml({} as IContext);
+ expect(converted).to.deep.equal({
+ _attr: {},
+ });
+ });
});
});
diff --git a/src/file/xml-components/simple-elements.ts b/src/file/xml-components/simple-elements.ts
index 73bac12d05..aca3355c28 100644
--- a/src/file/xml-components/simple-elements.ts
+++ b/src/file/xml-components/simple-elements.ts
@@ -53,6 +53,13 @@ export class NumberValueElement extends XmlComponent {
}
}
+export class StringEnumValueElement extends XmlComponent {
+ public constructor(name: string, val: T) {
+ super(name);
+ this.root.push(new Attributes({ val }));
+ }
+}
+
// Simple nodes containing text.
//
// new StringContainer("hello", "world")
diff --git a/tsconfig.json b/tsconfig.json
index f56947caa9..53cf5a12fe 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -16,7 +16,8 @@
"paths": {
"@util/*": ["./util/*"],
"@export/*": ["./export/*"],
- "@file/*": ["./file/*"]
+ "@file/*": ["./file/*"],
+ "@shared": ["./shared/index.ts"]
}
},
"include": ["src"]
diff --git a/webpack.config.ts b/webpack.config.ts
index 5871440f3f..4842297f3a 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -12,7 +12,7 @@ const configuration = {
filename: "index.js",
libraryTarget: "umd",
library: "docx",
- globalObject: "this",
+ globalObject: "globalThis",
},
resolve: {