diff --git a/.vscode/launch.json b/.vscode/launch.json
index b4c174c..eb4c617 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -4,7 +4,7 @@
"args": [
"run",
"${relativeFileDirname}/${fileBasenameNoExtension}",
- "--no-threads"
+ "--pool=forks"
],
"autoAttachChildProcesses": true,
"console": "integratedTerminal",
@@ -19,7 +19,7 @@
"args": [
"run",
"${relativeFileDirname}/${fileBasenameNoExtension}",
- "--no-threads"
+ "--pool=forks"
],
"autoAttachChildProcesses": true,
"console": "integratedTerminal",
@@ -37,7 +37,7 @@
"args": [
"run",
"${relativeFileDirname}/${fileBasenameNoExtension}",
- "--no-threads"
+ "--pool=forks"
],
"autoAttachChildProcesses": true,
"console": "integratedTerminal",
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 8d69b47..d6bb91e 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,26 +1,10 @@
{
// ESLint
- "[javascript]": {
+ "[javascript][json][json5][jsonc][typescript][html]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
- "[json]": {
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
- },
- "[json5]": {
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
- },
- "[jsonc]": {
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
- },
- "[typescript]": {
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
- },
- "[html]": {
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
- },
- "eslint.validate": ["javascript", "typescript", "json", "jsonc", "json5", "yaml", "html"],
- "eslint.experimental.useFlatConfig": true,
+ "eslint.validate": ["javascript", "typescript", "json", "jsonc", "json5", "yaml", "html", "github-actions-workflow"],
"eslint.debug": true,
"editor.formatOnSave": false,
diff --git a/docs/README.md b/docs/README.md
index 14bb4de..77d5541 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -33,4 +33,5 @@ SwissQRBill exposes different classes and functions that can be used to create a
- [SwissQRBill](./svg/index.md#class-swissqrbill)
- [SwissQRCode](./svg/index.md#class-swissqrcode)
- [utils](./utils/utils.md)
+- [errors](./errors/errors.md)
- [bundle](./bundle/index.md)
diff --git a/docs/bundle/index.md b/docs/bundle/index.md
index 5c18cf2..89f286b 100644
--- a/docs/bundle/index.md
+++ b/docs/bundle/index.md
@@ -25,12 +25,6 @@
- Method
- [attachTo(doc\[, x\]\[, y\])](#method-pdfswissqrcodeattachtodoc-x-y)
- - [PDFTable](#interface-pdfpdftable)
- - [PDFRow](#interface-pdfpdfrow)
- - [PDFColumn](#interface-pdfpdfcolumn)
- - [PDFBorderColor](#type-alias-pdfpdfbordercolor)
- - [PDFBorderWidth](#type-alias-pdfpdfborderwidth)
- - [PDFPadding](#type-alias-pdfpdfpadding)
- [Table](#class-pdftable)
- Constructor
@@ -38,6 +32,13 @@
- Method
- [attachTo(doc\[, x\]\[, y\])](#method-pdftableattachtodoc-x-y)
+ - [PDFBorderColor](#type-alias-pdfpdfbordercolor)
+ - [PDFBorderWidth](#type-alias-pdfpdfborderwidth)
+ - [PDFPadding](#type-alias-pdfpdfpadding)
+ - [PDFTable](#interface-pdfpdftable)
+ - [PDFRow](#interface-pdfpdfrow)
+ - [PDFColumn](#interface-pdfpdfcolumn)
+
- [svg](#namespace-svg)
- Classes
@@ -66,16 +67,16 @@
- [types](#namespace-types)
- - Interfaces
+ - Type aliases
+ - [Language](#type-alias-typeslanguage)
+ - [FontName](#type-alias-typesfontname)
+ - [Currency](#type-alias-typescurrency)
- [Data](#interface-typesdata)
- [Debtor](#interface-typesdebtor)
- [Creditor](#interface-typescreditor)
- [PDFOptions](#interface-typespdfoptions)
- [SVGOptions](#interface-typessvgoptions)
- - [Language](#type-alias-typeslanguage)
- - [FontName](#type-alias-typesfontname)
- - [Currency](#type-alias-typescurrency)
- [utils](#namespace-utils)
@@ -102,13 +103,12 @@
- [errors](#namespace-errors)
- - Functions
+ - Classes
- - [resolveMessageParams(message, params)](#function-errorsresolvemessageparamsmessage-params)
- [ValidationError](#class-errorsvalidationerror)
- - Constructor
- - [new ValidationError(message\[, params\])](#constructor-new-errorsvalidationerrormessage-params)
+ - Property
+ - [code](#property-errorsvalidationerrorcode)
- [ValidationErrors](#enum-errorsvalidationerrors)
@@ -320,75 +320,104 @@ Attaches the Swiss QR Code to a PDF document.
-#### Interface: pdf.PDFTable
+#### Class: pdf.Table
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L1C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L157C0)
-- **pdf.rows** [`Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Table rows.
+##### Description
- - [`PDFRow`](#interface-pdfpdfrow)
+The Table class is used to create tables for PDFKit documents. A table can be attached to any PDFKit document instance
+using the [`attachTo`](#method-pdftableattachtodoc-x-y) method.
-- **pdf.align** `"center"` | `"left"` | `"right"` Horizontal alignment of texts inside the table. `optional`
-- **pdf.backgroundColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Background color of the table. `optional`
-- **pdf.borderColor** [`PDFBorderColor`](#type-alias-pdfpdfbordercolor) The colors of the border. `optional`
-- **pdf.borderWidth** [`PDFBorderWidth`](#type-alias-pdfpdfborderwidth) Width of the borders of the row. `optional`
-- **pdf.fontName** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Font of the text inside the table. `optional`
-- **pdf.fontSize** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Font size of the text inside the table. `optional`
-- **pdf.padding** [`PDFPadding`](#type-alias-pdfpdfpadding) Cell padding of the table cells. `optional`
-- **pdf.textColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Text color of texts inside table. `optional`
-- **pdf.textOptions** `TextOptions` Same as text [PDFKit text options](http://pdfkit.org/docs/text.html#text_styling). `optional`
-- **pdf.verticalAlign** `"bottom"` | `"center"` | `"top"` Vertical alignment of texts inside the table. `optional`
-- **pdf.width** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Width of whole table. `optional`
+##### Example
+
+```ts
+const tableData = {
+ rows: [
+ {
+ backgroundColor: "#ECF0F1",
+ columns: [
+ {
+ text: "Row 1 cell 1"
+ }, {
+ text: "Row 1 cell 2"
+ }, {
+ text: "Row 1 cell 3"
+ }
+ ]
+ }, {
+ columns: [
+ {
+ text: "Row 2 cell 1"
+ }, {
+ text: "Row 2 cell 2"
+ }, {
+ text: "Row 2 cell 3"
+ }
+ ]
+ }
+ ]
+};
+const pdf = new PDFDocument();
+const table = new Table(tableData);
+
+const stream = createWriteStream("table.pdf");
+
+table.attachTo(pdf);
+pdf.pipe(stream);
+pdf.end();
+```
-#### Interface: pdf.PDFRow
+##### Constructor: new pdf.Table(data)
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L30C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L165C2)
-- **pdf.columns** [`Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Table columns.
+###### Parameter
- - [`PDFColumn`](#interface-pdfpdfcolumn)
+- **data** [`PDFTable`](#interface-pdfpdftable) The rows and columns for the table.
-- **pdf.align** `"center"` | `"left"` | `"right"` Horizontal alignment of texts inside the row. `optional`
-- **pdf.backgroundColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Background color of the row. `optional`
-- **pdf.borderColor** [`PDFBorderColor`](#type-alias-pdfpdfbordercolor) The colors of the border. `optional`
-- **pdf.borderWidth** [`PDFBorderWidth`](#type-alias-pdfpdfborderwidth) Width of the borders of the row. `optional`
-- **pdf.fontName** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Font of the text inside the row. `optional`
-- **pdf.fontSize** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Font size of the text inside the row. `optional`
-- **pdf.header** [`boolean`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean) A header row gets inserted automatically on new pages. Only one header row is allowed. `optional`
-- **pdf.height** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Height of the row. Overrides minHeight and maxHeight. `optional`
-- **pdf.maxHeight** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Maximum height of the row. `optional`
-- **pdf.minHeight** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Minimum height of the row. `optional`
-- **pdf.padding** [`PDFPadding`](#type-alias-pdfpdfpadding) Cell padding of the table cells inside the row. `optional`
-- **pdf.textColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Text color of texts inside the row. `optional`
-- **pdf.textOptions** `TextOptions` Same as text [PDFKit text options](http://pdfkit.org/docs/text.html#text_styling). `optional`
-- **pdf.verticalAlign** `"bottom"` | `"center"` | `"top"` Vertical alignment of texts inside the row. `optional`
+###### Return Type
+
+[`Table`](#class-pdftable) The Table instance.
+
+###### Description
+
+Creates a new Table instance.
-#### Interface: pdf.PDFColumn
+##### Method: pdf.Table.attachTo(doc\[, x\]\[, y\])
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L63C0)
+`public`
-- **pdf.text** [`boolean`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean) | [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) | [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Cell text.
-- **pdf.align** `"center"` | `"left"` | `"right"` Horizontal alignment of the text inside the cell. `optional`
-- **pdf.backgroundColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Background color of the cell. `optional`
-- **pdf.borderColor** [`PDFBorderColor`](#type-alias-pdfpdfbordercolor) The colors of the border. `optional`
-- **pdf.borderWidth** [`PDFBorderWidth`](#type-alias-pdfpdfborderwidth) Width of the borders of the row. `optional`
-- **pdf.fontName** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Font of the text inside the cell. `optional`
-- **pdf.fontSize** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Font size of the text inside the cell. `optional`
-- **pdf.padding** [`PDFPadding`](#type-alias-pdfpdfpadding) Cell padding of the table cell. `optional`
-- **pdf.textColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Text color of texts inside the cell. `optional`
-- **pdf.textOptions** `TextOptions` Same as text [PDFKit text options](http://pdfkit.org/docs/text.html#text_styling). `optional`
-- **pdf.verticalAlign** `"bottom"` | `"center"` | `"top"` Vertical alignment of the text inside the cell. `optional`
-- **pdf.width** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Width of the cell. `optional`
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L190C2)
+
+###### Parameters
+
+- **doc** `PDFDocument` The PDFKit document instance.
+- **x** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) The horizontal position in points where the table be placed. `optional` Default: [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)
+- **y** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) The vertical position in points where the table will be placed. `optional` Default: [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)
+
+###### Return Type
+
+`void`
+
+###### Throws
+
+- `Error` Throws an error if no table rows are provided.
+
+###### Description
+
+Attaches the table to a PDFKit document instance beginning on the current page. It will create a new page with for
+every row that no longer fits on a page.
#### Type alias: pdf.PDFBorderColor
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L91C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L90C0)
##### Type
@@ -415,7 +444,7 @@ Can be used to set the color of the border of a table, row or column.
#### Type alias: pdf.PDFBorderWidth
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L97C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L96C0)
##### Type
@@ -442,7 +471,7 @@ Can be used to set the width of the border of a table, row or column.
#### Type alias: pdf.PDFPadding
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L103C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L102C0)
##### Type
@@ -467,98 +496,69 @@ Can be used to set the padding of a table cell.
-#### Class: pdf.Table
-
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L158C0)
+#### Interface: pdf.PDFTable
-##### Description
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L1C0)
-The Table class is used to create tables for PDFKit documents. A table can be attached to any PDFKit document instance
-using the [`attachTo`](#method-pdftableattachtodoc-x-y) method.
+- **pdf.rows** [`Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Table rows.
-##### Example
+ - [`PDFRow`](#interface-pdfpdfrow)
-```ts
-const tableData = {
- rows: [
- {
- backgroundColor: "#ECF0F1",
- columns: [
- {
- text: "Row 1 cell 1"
- }, {
- text: "Row 1 cell 2"
- }, {
- text: "Row 1 cell 3"
- }
- ]
- }, {
- columns: [
- {
- text: "Row 2 cell 1"
- }, {
- text: "Row 2 cell 2"
- }, {
- text: "Row 2 cell 3"
- }
- ]
- }
- ]
-};
-const pdf = new PDFDocument();
-const table = new Table(tableData);
-
-const stream = createWriteStream("table.pdf");
-
-table.attachTo(pdf);
-pdf.pipe(stream);
-pdf.end();
-```
+- **pdf.align** `"center"` | `"left"` | `"right"` Horizontal alignment of texts inside the table. `optional`
+- **pdf.backgroundColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Background color of the table. `optional`
+- **pdf.borderColor** [`PDFBorderColor`](#type-alias-pdfpdfbordercolor) The colors of the border. `optional`
+- **pdf.borderWidth** [`PDFBorderWidth`](#type-alias-pdfpdfborderwidth) Width of the borders of the row. `optional`
+- **pdf.fontName** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Font of the text inside the table. `optional`
+- **pdf.fontSize** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Font size of the text inside the table. `optional`
+- **pdf.padding** [`PDFPadding`](#type-alias-pdfpdfpadding) Cell padding of the table cells. `optional`
+- **pdf.textColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Text color of texts inside table. `optional`
+- **pdf.textOptions** `TextOptions` Same as text [PDFKit text options](http://pdfkit.org/docs/text.html#text_styling). `optional`
+- **pdf.verticalAlign** `"bottom"` | `"center"` | `"top"` Vertical alignment of texts inside the table. `optional`
+- **pdf.width** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Width of whole table. `optional`
-##### Constructor: new pdf.Table(data)
-
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L166C2)
-
-###### Parameter
-
-- **data** [`PDFTable`](#interface-pdfpdftable) The rows and columns for the table.
+#### Interface: pdf.PDFRow
-###### Return Type
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L29C0)
-[`Table`](#class-pdftable) The Table instance.
+- **pdf.columns** [`Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Table columns.
-###### Description
+ - [`PDFColumn`](#interface-pdfpdfcolumn)
-Creates a new Table instance.
+- **pdf.align** `"center"` | `"left"` | `"right"` Horizontal alignment of texts inside the row. `optional`
+- **pdf.backgroundColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Background color of the row. `optional`
+- **pdf.borderColor** [`PDFBorderColor`](#type-alias-pdfpdfbordercolor) The colors of the border. `optional`
+- **pdf.borderWidth** [`PDFBorderWidth`](#type-alias-pdfpdfborderwidth) Width of the borders of the row. `optional`
+- **pdf.fontName** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Font of the text inside the row. `optional`
+- **pdf.fontSize** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Font size of the text inside the row. `optional`
+- **pdf.header** [`boolean`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean) A header row gets inserted automatically on new pages. Only one header row is allowed. `optional`
+- **pdf.height** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Height of the row. Overrides minHeight and maxHeight. `optional`
+- **pdf.maxHeight** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Maximum height of the row. `optional`
+- **pdf.minHeight** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Minimum height of the row. `optional`
+- **pdf.padding** [`PDFPadding`](#type-alias-pdfpdfpadding) Cell padding of the table cells inside the row. `optional`
+- **pdf.textColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Text color of texts inside the row. `optional`
+- **pdf.textOptions** `TextOptions` Same as text [PDFKit text options](http://pdfkit.org/docs/text.html#text_styling). `optional`
+- **pdf.verticalAlign** `"bottom"` | `"center"` | `"top"` Vertical alignment of texts inside the row. `optional`
-##### Method: pdf.Table.attachTo(doc\[, x\]\[, y\])
-
-`public`
-
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L191C2)
-
-###### Parameters
-
-- **doc** `PDFDocument` The PDFKit document instance.
-- **x** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) The horizontal position in points where the table be placed. `optional` Default: [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)
-- **y** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) The vertical position in points where the table will be placed. `optional` Default: [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)
-
-###### Return Type
-
-`void`
-
-###### Throws
-
-- `Error` Throws an error if no table rows are provided.
+#### Interface: pdf.PDFColumn
-###### Description
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L62C0)
-Attaches the table to a PDFKit document instance beginning on the current page. It will create a new page with for
-every row that no longer fits on a page.
+- **pdf.text** [`boolean`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean) | [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) | [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Cell text.
+- **pdf.align** `"center"` | `"left"` | `"right"` Horizontal alignment of the text inside the cell. `optional`
+- **pdf.backgroundColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Background color of the cell. `optional`
+- **pdf.borderColor** [`PDFBorderColor`](#type-alias-pdfpdfbordercolor) The colors of the border. `optional`
+- **pdf.borderWidth** [`PDFBorderWidth`](#type-alias-pdfpdfborderwidth) Width of the borders of the row. `optional`
+- **pdf.fontName** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Font of the text inside the cell. `optional`
+- **pdf.fontSize** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Font size of the text inside the cell. `optional`
+- **pdf.padding** [`PDFPadding`](#type-alias-pdfpdfpadding) Cell padding of the table cell. `optional`
+- **pdf.textColor** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Text color of texts inside the cell. `optional`
+- **pdf.textOptions** `TextOptions` Same as text [PDFKit text options](http://pdfkit.org/docs/text.html#text_styling). `optional`
+- **pdf.verticalAlign** `"bottom"` | `"center"` | `"top"` Vertical alignment of the text inside the cell. `optional`
+- **pdf.width** [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) Width of the cell. `optional`
@@ -746,6 +746,36 @@ Defined in: [src/bundle/index.ts](../../src/bundle/index.ts#L4C7)
+#### Type alias: types.Language
+
+Defined in: [src/shared/types.ts](../../src/shared/types.ts#L159C0)
+
+##### Type
+
+`"DE"` | `"EN"` | `"FR"` | `"IT"`
+
+
+
+#### Type alias: types.FontName
+
+Defined in: [src/shared/types.ts](../../src/shared/types.ts#L160C0)
+
+##### Type
+
+`"Arial"` | `"Frutiger"` | `"Helvetica"` | `"Liberation Sans"`
+
+
+
+#### Type alias: types.Currency
+
+Defined in: [src/shared/types.ts](../../src/shared/types.ts#L161C0)
+
+##### Type
+
+`"CHF"` | `"EUR"`
+
+
+
#### Interface: types.Data
Defined in: [src/shared/types.ts](../../src/shared/types.ts#L1C0)
@@ -845,36 +875,6 @@ Defined in: [src/shared/types.ts](../../src/shared/types.ts#L155C0)
-#### Type alias: types.Language
-
-Defined in: [src/shared/types.ts](../../src/shared/types.ts#L159C0)
-
-##### Type
-
-`"DE"` | `"EN"` | `"FR"` | `"IT"`
-
-
-
-#### Type alias: types.FontName
-
-Defined in: [src/shared/types.ts](../../src/shared/types.ts#L160C0)
-
-##### Type
-
-`"Arial"` | `"Frutiger"` | `"Helvetica"` | `"Liberation Sans"`
-
-
-
-#### Type alias: types.Currency
-
-Defined in: [src/shared/types.ts](../../src/shared/types.ts#L161C0)
-
-##### Type
-
-`"CHF"` | `"EUR"`
-
-
-
### Namespace: utils
Defined in: [src/bundle/index.ts](../../src/bundle/index.ts#L5C7)
@@ -1219,45 +1219,96 @@ Defined in: [src/bundle/index.ts](../../src/bundle/index.ts#L6C7)
-#### Function: errors.resolveMessageParams(message, params)
-
-Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L13C0)
-
-##### Parameters
+#### Class: errors.ValidationError
-- **message** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)
-- **params** [`type literal`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
+Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L2C0)
-##### Return Type
+##### Description
-[`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)
+A [`ValidationError`](#class-errorsvalidationerror) is thrown when the data provided to swissqrbill is invalid.
-#### Class: errors.ValidationError
-
-Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L1C0)
+##### Property: errors.ValidationError.code
-
+`public`
-##### Constructor: new errors.ValidationError(message\[, params\])
+Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L5C2)
-Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L2C2)
+###### Type
-###### Parameters
+`union`
-- **message** [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)
-- **params** [`type literal`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) `optional`
+- `"ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_MISSING"`
+- `"ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_REGULAR"`
+- `"ACCOUNT_IS_REGULAR_IBAN_BUT_REFERENCE_IS_QR"`
+- `"ACCOUNT_LENGTH_IS_INVALID"`
+- `"ADDITIONAL_INFORMATION_LENGTH_IS_INVALID"`
+- `"ADDITIONAL_INFORMATION_TYPE_IS_INVALID"`
+- `"ALTERNATIVE_SCHEME_LENGTH_IS_INVALID"`
+- `"ALTERNATIVE_SCHEME_TYPE_IS_INVALID"`
+- `"AMOUNT_LENGTH_IS_INVALID"`
+- `"AMOUNT_TYPE_IS_INVALID"`
+- `"CREDITOR_ACCOUNT_COUNTRY_IS_INVALID"`
+- `"CREDITOR_ACCOUNT_IS_INVALID"`
+- `"CREDITOR_ACCOUNT_IS_UNDEFINED"`
+- `"CREDITOR_ADDRESS_IS_UNDEFINED"`
+- `"CREDITOR_ADDRESS_LENGTH_IS_INVALID"`
+- `"CREDITOR_ADDRESS_TYPE_IS_INVALID"`
+- `"CREDITOR_BUILDING_NUMBER_LENGTH_IS_INVALID"`
+- `"CREDITOR_BUILDING_NUMBER_TYPE_IS_INVALID"`
+- `"CREDITOR_CITY_IS_UNDEFINED"`
+- `"CREDITOR_CITY_LENGTH_IS_INVALID"`
+- `"CREDITOR_CITY_TYPE_IS_INVALID"`
+- `"CREDITOR_COUNTRY_IS_UNDEFINED"`
+- `"CREDITOR_COUNTRY_LENGTH_IS_INVALID"`
+- `"CREDITOR_COUNTRY_TYPE_IS_INVALID"`
+- `"CREDITOR_IS_UNDEFINED"`
+- `"CREDITOR_NAME_IS_UNDEFINED"`
+- `"CREDITOR_NAME_LENGTH_IS_INVALID"`
+- `"CREDITOR_NAME_TYPE_IS_INVALID"`
+- `"CREDITOR_ZIP_IS_UNDEFINED"`
+- `"CREDITOR_ZIP_LENGTH_IS_INVALID"`
+- `"CREDITOR_ZIP_TYPE_IS_INVALID"`
+- `"CURRENCY_IS_UNDEFINED"`
+- `"CURRENCY_LENGTH_IS_INVALID"`
+- `"CURRENCY_STRING_IS_INVALID"`
+- `"CURRENCY_TYPE_IS_INVALID"`
+- `"DEBTOR_ADDRESS_IS_UNDEFINED"`
+- `"DEBTOR_ADDRESS_LENGTH_IS_INVALID"`
+- `"DEBTOR_ADDRESS_TYPE_IS_INVALID"`
+- `"DEBTOR_BUILDING_NUMBER_LENGTH_IS_INVALID"`
+- `"DEBTOR_BUILDING_NUMBER_TYPE_IS_INVALID"`
+- `"DEBTOR_CITY_IS_UNDEFINED"`
+- `"DEBTOR_CITY_LENGTH_IS_INVALID"`
+- `"DEBTOR_CITY_TYPE_IS_INVALID"`
+- `"DEBTOR_COUNTRY_IS_UNDEFINED"`
+- `"DEBTOR_COUNTRY_LENGTH_IS_INVALID"`
+- `"DEBTOR_COUNTRY_TYPE_IS_INVALID"`
+- `"DEBTOR_IS_UNDEFINED"`
+- `"DEBTOR_NAME_IS_UNDEFINED"`
+- `"DEBTOR_NAME_LENGTH_IS_INVALID"`
+- `"DEBTOR_NAME_TYPE_IS_INVALID"`
+- `"DEBTOR_ZIP_IS_UNDEFINED"`
+- `"DEBTOR_ZIP_LENGTH_IS_INVALID"`
+- `"DEBTOR_ZIP_TYPE_IS_INVALID"`
+- `"MESSAGE_AND_ADDITIONAL_INFORMATION_LENGTH_IS_INVALID"`
+- `"MESSAGE_LENGTH_IS_INVALID"`
+- `"MESSAGE_TYPE_IS_INVALID"`
+- `"QR_REFERENCE_IS_INVALID"`
+- `"QR_REFERENCE_LENGTH_IS_INVALID"`
+- `"REFERENCE_TYPE_IS_INVALID"`
+- `"REGULAR_REFERENCE_LENGTH_IS_INVALID"`
-###### Return Type
+###### Description
-[`ValidationError`](#class-errorsvalidationerror)
+A stable error code that can be used to identify the error programmatically.
#### Enum: errors.ValidationErrors
-Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L19C0)
+Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L37C0)
- ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_MISSING `"If there is no reference, a conventional IBAN must be used."`
- ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_REGULAR `"QR-IBAN requires the use of a QR-Reference."`
diff --git a/docs/errors/errors.md b/docs/errors/errors.md
new file mode 100644
index 0000000..5761fe6
--- /dev/null
+++ b/docs/errors/errors.md
@@ -0,0 +1,167 @@
+
+# Errors
+
+- Classes
+
+ - [ValidationError](#class-validationerror)
+
+ - Property
+ - [code](#property-validationerrorcode)
+
+ - [ValidationErrors](#enum-validationerrors)
+
+
+
+## Classes
+
+### Class: ValidationError
+
+Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L2C0)
+
+#### Description
+
+A [`ValidationError`](#class-validationerror) is thrown when the data provided to swissqrbill is invalid.
+
+
+
+#### Property: ValidationError.code
+
+`public`
+
+Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L5C2)
+
+##### Type
+
+`union`
+
+- `"ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_MISSING"`
+- `"ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_REGULAR"`
+- `"ACCOUNT_IS_REGULAR_IBAN_BUT_REFERENCE_IS_QR"`
+- `"ACCOUNT_LENGTH_IS_INVALID"`
+- `"ADDITIONAL_INFORMATION_LENGTH_IS_INVALID"`
+- `"ADDITIONAL_INFORMATION_TYPE_IS_INVALID"`
+- `"ALTERNATIVE_SCHEME_LENGTH_IS_INVALID"`
+- `"ALTERNATIVE_SCHEME_TYPE_IS_INVALID"`
+- `"AMOUNT_LENGTH_IS_INVALID"`
+- `"AMOUNT_TYPE_IS_INVALID"`
+- `"CREDITOR_ACCOUNT_COUNTRY_IS_INVALID"`
+- `"CREDITOR_ACCOUNT_IS_INVALID"`
+- `"CREDITOR_ACCOUNT_IS_UNDEFINED"`
+- `"CREDITOR_ADDRESS_IS_UNDEFINED"`
+- `"CREDITOR_ADDRESS_LENGTH_IS_INVALID"`
+- `"CREDITOR_ADDRESS_TYPE_IS_INVALID"`
+- `"CREDITOR_BUILDING_NUMBER_LENGTH_IS_INVALID"`
+- `"CREDITOR_BUILDING_NUMBER_TYPE_IS_INVALID"`
+- `"CREDITOR_CITY_IS_UNDEFINED"`
+- `"CREDITOR_CITY_LENGTH_IS_INVALID"`
+- `"CREDITOR_CITY_TYPE_IS_INVALID"`
+- `"CREDITOR_COUNTRY_IS_UNDEFINED"`
+- `"CREDITOR_COUNTRY_LENGTH_IS_INVALID"`
+- `"CREDITOR_COUNTRY_TYPE_IS_INVALID"`
+- `"CREDITOR_IS_UNDEFINED"`
+- `"CREDITOR_NAME_IS_UNDEFINED"`
+- `"CREDITOR_NAME_LENGTH_IS_INVALID"`
+- `"CREDITOR_NAME_TYPE_IS_INVALID"`
+- `"CREDITOR_ZIP_IS_UNDEFINED"`
+- `"CREDITOR_ZIP_LENGTH_IS_INVALID"`
+- `"CREDITOR_ZIP_TYPE_IS_INVALID"`
+- `"CURRENCY_IS_UNDEFINED"`
+- `"CURRENCY_LENGTH_IS_INVALID"`
+- `"CURRENCY_STRING_IS_INVALID"`
+- `"CURRENCY_TYPE_IS_INVALID"`
+- `"DEBTOR_ADDRESS_IS_UNDEFINED"`
+- `"DEBTOR_ADDRESS_LENGTH_IS_INVALID"`
+- `"DEBTOR_ADDRESS_TYPE_IS_INVALID"`
+- `"DEBTOR_BUILDING_NUMBER_LENGTH_IS_INVALID"`
+- `"DEBTOR_BUILDING_NUMBER_TYPE_IS_INVALID"`
+- `"DEBTOR_CITY_IS_UNDEFINED"`
+- `"DEBTOR_CITY_LENGTH_IS_INVALID"`
+- `"DEBTOR_CITY_TYPE_IS_INVALID"`
+- `"DEBTOR_COUNTRY_IS_UNDEFINED"`
+- `"DEBTOR_COUNTRY_LENGTH_IS_INVALID"`
+- `"DEBTOR_COUNTRY_TYPE_IS_INVALID"`
+- `"DEBTOR_IS_UNDEFINED"`
+- `"DEBTOR_NAME_IS_UNDEFINED"`
+- `"DEBTOR_NAME_LENGTH_IS_INVALID"`
+- `"DEBTOR_NAME_TYPE_IS_INVALID"`
+- `"DEBTOR_ZIP_IS_UNDEFINED"`
+- `"DEBTOR_ZIP_LENGTH_IS_INVALID"`
+- `"DEBTOR_ZIP_TYPE_IS_INVALID"`
+- `"MESSAGE_AND_ADDITIONAL_INFORMATION_LENGTH_IS_INVALID"`
+- `"MESSAGE_LENGTH_IS_INVALID"`
+- `"MESSAGE_TYPE_IS_INVALID"`
+- `"QR_REFERENCE_IS_INVALID"`
+- `"QR_REFERENCE_LENGTH_IS_INVALID"`
+- `"REFERENCE_TYPE_IS_INVALID"`
+- `"REGULAR_REFERENCE_LENGTH_IS_INVALID"`
+
+##### Description
+
+A stable error code that can be used to identify the error programmatically.
+
+
+
+### Enum: ValidationErrors
+
+Defined in: [src/shared/errors.ts](../../src/shared/errors.ts#L37C0)
+
+- ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_MISSING `"If there is no reference, a conventional IBAN must be used."`
+- ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_REGULAR `"QR-IBAN requires the use of a QR-Reference."`
+- ACCOUNT_IS_REGULAR_IBAN_BUT_REFERENCE_IS_QR `"QR-Reference requires the use of a QR-IBAN."`
+- ACCOUNT_LENGTH_IS_INVALID `"The provided IBAN number '{iban}' is either too long or too short."`
+- ADDITIONAL_INFORMATION_LENGTH_IS_INVALID `"Additional information must be a maximum of 140 characters."`
+- ADDITIONAL_INFORMATION_TYPE_IS_INVALID `"Additional information must be a string."`
+- ALTERNATIVE_SCHEME_LENGTH_IS_INVALID `"{scheme} must be a maximum of 100 characters."`
+- ALTERNATIVE_SCHEME_TYPE_IS_INVALID `"{scheme} must be a string."`
+- AMOUNT_LENGTH_IS_INVALID `"Amount must be a maximum of 12 digits."`
+- AMOUNT_TYPE_IS_INVALID `"Amount must be a number."`
+- CREDITOR_ACCOUNT_COUNTRY_IS_INVALID `"Only CH and LI IBAN numbers are allowed."`
+- CREDITOR_ACCOUNT_IS_INVALID `"The provided IBAN number '{iban}' is not valid."`
+- CREDITOR_ACCOUNT_IS_UNDEFINED `"Creditor account cannot be undefined."`
+- CREDITOR_ADDRESS_IS_UNDEFINED `"Creditor address cannot be undefined."`
+- CREDITOR_ADDRESS_LENGTH_IS_INVALID `"Creditor address must be a maximum of 70 characters."`
+- CREDITOR_ADDRESS_TYPE_IS_INVALID `"Creditor address TYPE must be a string."`
+- CREDITOR_BUILDING_NUMBER_LENGTH_IS_INVALID `"Creditor buildingNumber must be a maximum of 16 characters."`
+- CREDITOR_BUILDING_NUMBER_TYPE_IS_INVALID `"Creditor buildingNumber must be either a string or a number."`
+- CREDITOR_CITY_IS_UNDEFINED `"Creditor city cannot be undefined."`
+- CREDITOR_CITY_LENGTH_IS_INVALID `"Creditor city must be a maximum of 35 characters."`
+- CREDITOR_CITY_TYPE_IS_INVALID `"Creditor city must be a string."`
+- CREDITOR_COUNTRY_IS_UNDEFINED `"Creditor country cannot be undefined."`
+- CREDITOR_COUNTRY_LENGTH_IS_INVALID `"Creditor country must be 2 characters."`
+- CREDITOR_COUNTRY_TYPE_IS_INVALID `"Creditor country must be a string."`
+- CREDITOR_IS_UNDEFINED `"Creditor cannot be undefined."`
+- CREDITOR_NAME_IS_UNDEFINED `"Creditor name cannot be undefined."`
+- CREDITOR_NAME_LENGTH_IS_INVALID `"Creditor name must be a maximum of 70 characters."`
+- CREDITOR_NAME_TYPE_IS_INVALID `"Creditor name must be a string."`
+- CREDITOR_ZIP_IS_UNDEFINED `"Creditor zip cannot be undefined."`
+- CREDITOR_ZIP_LENGTH_IS_INVALID `"Creditor zip must be a maximum of 16 characters."`
+- CREDITOR_ZIP_TYPE_IS_INVALID `"Creditor zip must be either a string or a number."`
+- CURRENCY_IS_UNDEFINED `"Currency cannot be undefined."`
+- CURRENCY_LENGTH_IS_INVALID `"Currency must be a length of 3 characters."`
+- CURRENCY_STRING_IS_INVALID `"Currency must be either 'CHF' or 'EUR'"`
+- CURRENCY_TYPE_IS_INVALID `"Currency must be a string."`
+- DEBTOR_ADDRESS_IS_UNDEFINED `"Debtor address cannot be undefined."`
+- DEBTOR_ADDRESS_LENGTH_IS_INVALID `"Debtor address must be a maximum of 70 characters."`
+- DEBTOR_ADDRESS_TYPE_IS_INVALID `"Debtor address TYPE must be a string."`
+- DEBTOR_BUILDING_NUMBER_LENGTH_IS_INVALID `"Debtor buildingNumber must be a maximum of 16 characters."`
+- DEBTOR_BUILDING_NUMBER_TYPE_IS_INVALID `"Debtor buildingNumber must be either a string or a number."`
+- DEBTOR_CITY_IS_UNDEFINED `"Debtor city cannot be undefined."`
+- DEBTOR_CITY_LENGTH_IS_INVALID `"Debtor city must be a maximum of 35 characters."`
+- DEBTOR_CITY_TYPE_IS_INVALID `"Debtor city must be a string."`
+- DEBTOR_COUNTRY_IS_UNDEFINED `"Debtor country cannot be undefined."`
+- DEBTOR_COUNTRY_LENGTH_IS_INVALID `"Debtor country must be 2 characters."`
+- DEBTOR_COUNTRY_TYPE_IS_INVALID `"Debtor country must be a string."`
+- DEBTOR_IS_UNDEFINED `"Debtor cannot be undefined."`
+- DEBTOR_NAME_IS_UNDEFINED `"Debtor name cannot be undefined."`
+- DEBTOR_NAME_LENGTH_IS_INVALID `"Debtor name must be a maximum of 70 characters."`
+- DEBTOR_NAME_TYPE_IS_INVALID `"Debtor name must be a string."`
+- DEBTOR_ZIP_IS_UNDEFINED `"Debtor zip cannot be undefined."`
+- DEBTOR_ZIP_LENGTH_IS_INVALID `"Debtor zip must be a maximum of 16 characters."`
+- DEBTOR_ZIP_TYPE_IS_INVALID `"Debtor zip must be either a string or a number."`
+- MESSAGE_AND_ADDITIONAL_INFORMATION_LENGTH_IS_INVALID `"Message and additionalInformation combined must be a maximum of 140 characters."`
+- MESSAGE_LENGTH_IS_INVALID `"Message must be a maximum of 140 characters."`
+- MESSAGE_TYPE_IS_INVALID `"Message must be a string."`
+- QR_REFERENCE_IS_INVALID `"The provided QR-Reference '{reference}' is not valid."`
+- QR_REFERENCE_LENGTH_IS_INVALID `"QR-Reference must be a must be exactly 27 characters."`
+- REFERENCE_TYPE_IS_INVALID `"Reference must be a string."`
+- REGULAR_REFERENCE_LENGTH_IS_INVALID `"Creditor reference must be a maximum of 25 characters."`
diff --git a/docs/importing.md b/docs/importing.md
index aba33e1..474bb09 100644
--- a/docs/importing.md
+++ b/docs/importing.md
@@ -88,9 +88,9 @@ The bundle exposes all exports in the global variable `SwissQRBill`.
```ts
const SwissQRBill = {
+ errors,
PDF,
SVG,
- errors,
table,
types,
utils
diff --git a/docs/pdf/index.md b/docs/pdf/index.md
index f6fb6b4..df5fcd3 100644
--- a/docs/pdf/index.md
+++ b/docs/pdf/index.md
@@ -239,7 +239,7 @@ Attaches the Swiss QR Code to a PDF document.
### Class: Table
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L158C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L157C0)
#### Description
@@ -289,7 +289,7 @@ pdf.end();
#### Constructor: new Table(data)
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L166C2)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L165C2)
##### Parameter
@@ -309,7 +309,7 @@ Creates a new Table instance.
`public`
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L191C2)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L190C2)
##### Parameters
@@ -334,7 +334,7 @@ every row that no longer fits on a page.
### Type alias: PDFBorderColor
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L91C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L90C0)
#### Type
@@ -361,7 +361,7 @@ Can be used to set the color of the border of a table, row or column.
### Type alias: PDFBorderWidth
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L97C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L96C0)
#### Type
@@ -388,7 +388,7 @@ Can be used to set the width of the border of a table, row or column.
### Type alias: PDFPadding
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L103C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L102C0)
#### Type
@@ -437,7 +437,7 @@ Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L1C0)
### Interface: PDFRow
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L30C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L29C0)
- **columns** [`Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) Table columns.
@@ -462,7 +462,7 @@ Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L30C0)
### Interface: PDFColumn
-Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L63C0)
+Defined in: [src/pdf/table.ts](../../src/pdf/table.ts#L62C0)
- **text** [`boolean`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean) | [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) | [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) Cell text.
- **align** `"center"` | `"left"` | `"right"` Horizontal alignment of the text inside the cell. `optional`
diff --git a/eslint.config.js b/eslint.config.js
index e20c936..ad8aa3a 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -1,9 +1,8 @@
+import sharedRules from "@schoero/configs/eslint";
import eslintPluginTypeScript from "@typescript-eslint/eslint-plugin";
import eslintParserTypeScript from "@typescript-eslint/parser";
-import sharedRules from "@schoero/configs/eslint";
-
-/** @type { import("eslint").Linter.FlatConfig[] } */
+/** @type { import("eslint").Linter.Config[] } */
export default [
...sharedRules,
diff --git a/examples/browser-bundling-with-webpack/src/pdf.js b/examples/browser-bundling-with-webpack/src/pdf.js
index 7463c2c..63a42e2 100644
--- a/examples/browser-bundling-with-webpack/src/pdf.js
+++ b/examples/browser-bundling-with-webpack/src/pdf.js
@@ -1,8 +1,9 @@
-import BlobStream from "blob-stream";
import fs from "fs";
+
+import BlobStream from "blob-stream";
import PDFDocument from "pdfkit";
-import Helvetica from "pdfkit/js/data/Helvetica.afm";
import HelveticaBold from "pdfkit/js/data/Helvetica-Bold.afm";
+import Helvetica from "pdfkit/js/data/Helvetica.afm";
import { SwissQRBill } from "swissqrbill/pdf";
diff --git a/examples/how-to-create-a-complete-qr-bill/src/index.js b/examples/how-to-create-a-complete-qr-bill/src/index.js
index af36177..794bec4 100644
--- a/examples/how-to-create-a-complete-qr-bill/src/index.js
+++ b/examples/how-to-create-a-complete-qr-bill/src/index.js
@@ -1,4 +1,5 @@
import { createWriteStream } from "fs";
+
import PDFDocument from "pdfkit";
import { SwissQRBill, Table } from "swissqrbill/pdf";
import { mm2pt } from "swissqrbill/utils";
diff --git a/examples/node-cjs-javascript/src/pdf.js b/examples/node-cjs-javascript/src/pdf.js
index 04060d0..37582d1 100644
--- a/examples/node-cjs-javascript/src/pdf.js
+++ b/examples/node-cjs-javascript/src/pdf.js
@@ -1,4 +1,5 @@
const { createWriteStream } = require("fs");
+
const PDFDocument = require("pdfkit");
const { SwissQRBill } = require("swissqrbill/pdf");
diff --git a/examples/node-cjs-javascript/src/svg.js b/examples/node-cjs-javascript/src/svg.js
index 0fb8841..1d10a95 100644
--- a/examples/node-cjs-javascript/src/svg.js
+++ b/examples/node-cjs-javascript/src/svg.js
@@ -1,4 +1,5 @@
const { writeFileSync } = require("fs");
+
const { SwissQRBill } = require("swissqrbill/svg");
const data = require("./data.js");
diff --git a/examples/node-esm-javascript/src/pdf.js b/examples/node-esm-javascript/src/pdf.js
index e5e320e..b2ac376 100644
--- a/examples/node-esm-javascript/src/pdf.js
+++ b/examples/node-esm-javascript/src/pdf.js
@@ -1,4 +1,5 @@
import { createWriteStream } from "fs";
+
import PDFDocument from "pdfkit";
import { SwissQRBill } from "swissqrbill/pdf";
diff --git a/examples/node-esm-javascript/src/svg.js b/examples/node-esm-javascript/src/svg.js
index dce6bc0..c83aaed 100644
--- a/examples/node-esm-javascript/src/svg.js
+++ b/examples/node-esm-javascript/src/svg.js
@@ -1,4 +1,5 @@
import { writeFileSync } from "fs";
+
import { SwissQRBill } from "swissqrbill/svg";
import { data } from "./data.js";
diff --git a/package-lock.json b/package-lock.json
index 6fccf22..b9f31a8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,20 +14,20 @@
"devDependencies": {
"@cspell/dict-fr-fr": "^2.2.2",
"@cspell/dict-it-it": "^3.1.0",
- "@schoero/configs": "^1.0.33",
- "@types/node": "^22.2.0",
+ "@schoero/configs": "^1.1.1",
+ "@types/node": "^22.5.2",
"@types/pdfkit": "^0.13.4",
"@types/svg-parser": "^2.0.6",
"cross-env": "^7.0.3",
- "cspell": "^8.13.2",
- "eslint": "^9.9.0",
+ "cspell": "^8.14.2",
+ "eslint": "^9.9.1",
"glob": "^11.0.0",
"markdownlint": "^0.34.0",
"pdfkit": "^0.15.0",
"typescript": "^5.5.4",
- "unwritten": "^0.2.12",
- "vite": "^5.4.0",
- "vite-plugin-dts": "^4.0.2",
+ "unwritten": "^0.2.13",
+ "vite": "^5.4.2",
+ "vite-plugin-dts": "^4.1.0",
"vite-plugin-no-bundle": "^4.0.0",
"vitest": "^2.0.5"
},
@@ -58,9 +58,9 @@
}
},
"node_modules/@actions/http-client": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz",
- "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz",
+ "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==",
"dev": true,
"dependencies": {
"tunnel": "^0.0.6",
@@ -197,12 +197,12 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.25.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz",
- "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz",
+ "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.25.2"
+ "@babel/types": "^7.25.6"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -212,9 +212,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.25.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz",
- "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz",
+ "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
"dev": true,
"dependencies": {
"@babel/helper-string-parser": "^7.24.8",
@@ -226,9 +226,9 @@
}
},
"node_modules/@cspell/cspell-bundled-dicts": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.13.2.tgz",
- "integrity": "sha512-BLXah6gUvPeZM8bj1I0F5YJ0CzDZ3d3xpbDCrDB0NfHIsF9zn0la+ie0O15VcVWNBrNIToc6enjxWg1JSF3E5g==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.14.2.tgz",
+ "integrity": "sha512-Kv2Utj/RTSxfufGXkkoTZ/3ErCsYWpCijtDFr/FwSsM7mC0PzLpdlcD9xjtgrJO5Kwp7T47iTG21U4Mwddyi8Q==",
"dev": true,
"dependencies": {
"@cspell/dict-ada": "^4.0.2",
@@ -238,7 +238,7 @@
"@cspell/dict-cpp": "^5.1.12",
"@cspell/dict-cryptocurrencies": "^5.0.0",
"@cspell/dict-csharp": "^4.0.2",
- "@cspell/dict-css": "^4.0.12",
+ "@cspell/dict-css": "^4.0.13",
"@cspell/dict-dart": "^2.0.3",
"@cspell/dict-django": "^4.1.0",
"@cspell/dict-docker": "^1.1.7",
@@ -276,7 +276,7 @@
"@cspell/dict-ruby": "^5.0.2",
"@cspell/dict-rust": "^4.0.5",
"@cspell/dict-scala": "^5.0.3",
- "@cspell/dict-software-terms": "^4.0.5",
+ "@cspell/dict-software-terms": "^4.0.6",
"@cspell/dict-sql": "^2.1.5",
"@cspell/dict-svelte": "^1.0.2",
"@cspell/dict-swift": "^2.0.1",
@@ -289,30 +289,30 @@
}
},
"node_modules/@cspell/cspell-json-reporter": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.13.2.tgz",
- "integrity": "sha512-UOINJikJs9tRWc2RrFmXK4s3hpasAIbSq+6ed7NojY/2kYv6u0bHNhh4D+4DAroHcFsU24vl/PeTa9V4Z5CelA==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.14.2.tgz",
+ "integrity": "sha512-TZavcnNIZKX1xC/GNj80RgFVKHCT4pHT0qm9jCsQFH2QJfyCrUlkEvotKGSQ04lAyCwWg6Enq95qhouF8YbKUQ==",
"dev": true,
"dependencies": {
- "@cspell/cspell-types": "8.13.2"
+ "@cspell/cspell-types": "8.14.2"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@cspell/cspell-pipe": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.13.2.tgz",
- "integrity": "sha512-67N6UHaHRc3H9Nl5TKO/r1lCMgnMPQH+scR6aJxHjcwlKLSoNpGF9LiURhmYaItIhfTH4TDfB2hVPzsslRzaWg==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.14.2.tgz",
+ "integrity": "sha512-aWMoXZAXEre0/M9AYWOW33YyOJZ06i4vvsEpWBDWpHpWQEmsR/7cMMgld8Pp3wlEjIUclUAKTYmrZ61PFWU/og==",
"dev": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@cspell/cspell-resolver": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.13.2.tgz",
- "integrity": "sha512-SCAH4LbV0uFP9ldXB49mRGnAnPCKZV8W96EMHv9Tdh7Fp3btF5FFaVf0h3/ms1g3quzWJq1+EZvJCKCpm9JY5g==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.14.2.tgz",
+ "integrity": "sha512-pSyBsAvslaN0dx0pHdvECJEuFDDBJGAD6G8U4BVbIyj2OPk0Ox0HrZIj6csYxxoJERAgNO/q7yCPwa4j9NNFXg==",
"dev": true,
"dependencies": {
"global-directory": "^4.0.1"
@@ -322,18 +322,18 @@
}
},
"node_modules/@cspell/cspell-service-bus": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.13.2.tgz",
- "integrity": "sha512-lKgRzJlCPc4BLlqDjWQgIo0ikX4nQ04M1vu0H3CQjfcwr2PVEGLSlXXyJnA6S3A80WxVXhGehyMBhXzItmpKIQ==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.14.2.tgz",
+ "integrity": "sha512-WUF7xf3YgXYIqjmBwLcVugYIrYL4WfXchgSo9rmbbnOcAArzsK+HKfzb4AniZAJ1unxcIQ0JnVlRmnCAKPjjLg==",
"dev": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@cspell/cspell-types": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.13.2.tgz",
- "integrity": "sha512-0QFLcerzBapst1A729VTegeEcsHFK/YfDvOYWUwsZcmPrpacJ8qHmRPVyyFLvN5punXWwB7pIdtbrVRPDQT49w==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.14.2.tgz",
+ "integrity": "sha512-MRY8MjBNOKGMDSkxAKueYAgVL43miO+lDcLCBBP+7cNXqHiUFMIZteONcGp3kJT0dWS04dN6lKAXvaNF0aWcng==",
"dev": true,
"engines": {
"node": ">=18"
@@ -346,15 +346,15 @@
"dev": true
},
"node_modules/@cspell/dict-aws": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.3.tgz",
- "integrity": "sha512-0C0RQ4EM29fH0tIYv+EgDQEum0QI6OrmjENC9u98pB8UcnYxGG/SqinuPxo+TgcEuInj0Q73MsBpJ1l5xUnrsw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.4.tgz",
+ "integrity": "sha512-6AWI/Kkf+RcX/J81VX8+GKLeTgHWEr/OMhGk3dHQzWK66RaqDJCGDqi7494ghZKcBB7dGa3U5jcKw2FZHL/u3w==",
"dev": true
},
"node_modules/@cspell/dict-bash": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.3.tgz",
- "integrity": "sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==",
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.4.tgz",
+ "integrity": "sha512-W/AHoQcJYn3Vn/tUiXX2+6D/bhfzdDshwcbQWv9TdiNlXP9P6UJjDKWbxyA5ogJCsR2D0X9Kx11oV8E58siGKQ==",
"dev": true
},
"node_modules/@cspell/dict-companies": {
@@ -364,9 +364,9 @@
"dev": true
},
"node_modules/@cspell/dict-cpp": {
- "version": "5.1.12",
- "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.12.tgz",
- "integrity": "sha512-6lXLOFIa+k/qBcu0bjaE/Kc6v3sh9VhsDOXD1Dalm3zgd0QIMjp5XBmkpSdCAK3pWCPV0Se7ysVLDfCea1BuXg==",
+ "version": "5.1.16",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.16.tgz",
+ "integrity": "sha512-32fU5RkuOM55IRcxjByiSoKbjr+C4danDfYjHaQNRWdvjzJzci3fLDGA2wTXiclkgDODxGiV8LCTUwCz+3TNWA==",
"dev": true
},
"node_modules/@cspell/dict-cryptocurrencies": {
@@ -382,15 +382,15 @@
"dev": true
},
"node_modules/@cspell/dict-css": {
- "version": "4.0.12",
- "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.12.tgz",
- "integrity": "sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw==",
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.13.tgz",
+ "integrity": "sha512-WfOQkqlAJTo8eIQeztaH0N0P+iF5hsJVKFuhy4jmARPISy8Efcv8QXk2/IVbmjJH0/ZV7dKRdnY5JFVXuVz37g==",
"dev": true
},
"node_modules/@cspell/dict-dart": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.3.tgz",
- "integrity": "sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.2.1.tgz",
+ "integrity": "sha512-yriKm7QkoPx3JPSSOcw6iX9gOb2N50bOo/wqWviqPYbhpMRh9Xiv6dkUy3+ot+21GuShZazO8X6U5+Vw67XEwg==",
"dev": true
},
"node_modules/@cspell/dict-data-science": {
@@ -418,9 +418,9 @@
"dev": true
},
"node_modules/@cspell/dict-dotnet": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.2.tgz",
- "integrity": "sha512-UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.5.tgz",
+ "integrity": "sha512-gjg0L97ee146wX47dnA698cHm85e7EOpf9mVrJD8DmEaqoo/k1oPy2g7c7LgKxK9XnqwoXxhLNnngPrwXOoEtQ==",
"dev": true
},
"node_modules/@cspell/dict-elixir": {
@@ -490,9 +490,9 @@
"dev": true
},
"node_modules/@cspell/dict-golang": {
- "version": "6.0.9",
- "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.9.tgz",
- "integrity": "sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==",
+ "version": "6.0.12",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.12.tgz",
+ "integrity": "sha512-LEPeoqd+4O+vceHF73S7D7+LYfrAjOvp4Dqzh4MT30ruzlQ77yHRSuYOJtrFN1GK5ntAt/ILSVOKg9sgsz1Llg==",
"dev": true
},
"node_modules/@cspell/dict-google": {
@@ -586,33 +586,33 @@
"dev": true
},
"node_modules/@cspell/dict-npm": {
- "version": "5.0.18",
- "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.18.tgz",
- "integrity": "sha512-weMTyxWpzz19q4wv9n183BtFvdD5fCjtze+bFKpl+4rO/YlPhHL2cXLAeexJz/VDSBecwX4ybTZYoknd1h2J4w==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.1.4.tgz",
+ "integrity": "sha512-yzqVTY4P5neom4z9orV2IFOqDZ7fDotmisP7nwQkEmftoELgn5CUtNdnJhWDoDQQn6yrxOxA8jEqmyETIWzN4Q==",
"dev": true
},
"node_modules/@cspell/dict-php": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.8.tgz",
- "integrity": "sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA==",
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.10.tgz",
+ "integrity": "sha512-NfTZdp6kcZDF1PvgQ6cY0zE4FUO5rSwNmBH/iwCBuaLfJAFQ97rgjxo+D2bic4CFwNjyHutnHPtjJBRANO5XQw==",
"dev": true
},
"node_modules/@cspell/dict-powershell": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.5.tgz",
- "integrity": "sha512-3JVyvMoDJesAATYGOxcUWPbQPUvpZmkinV3m8HL1w1RrjeMVXXuK7U1jhopSneBtLhkU+9HKFwgh9l9xL9mY2Q==",
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.8.tgz",
+ "integrity": "sha512-Eg64BccQp5oEJ+V/O2G27KaLWmuOL2AWMOs2470adUihOleRfW8j9XwAEGCS+JKSnDb2mksWA72Z6kDqH138IQ==",
"dev": true
},
"node_modules/@cspell/dict-public-licenses": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.7.tgz",
- "integrity": "sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.8.tgz",
+ "integrity": "sha512-Sup+tFS7cDV0fgpoKtUqEZ6+fA/H+XUgBiqQ/Fbs6vUE3WCjJHOIVsP+udHuyMH7iBfJ4UFYOYeORcY4EaKdMg==",
"dev": true
},
"node_modules/@cspell/dict-python": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.4.tgz",
- "integrity": "sha512-sCtLBqMreb+8zRW2bXvFsfSnRUVU6IFm4mT6Dc4xbz0YajprbaPPh/kOUTw5IJRP8Uh+FFb7Xp2iH03CNWRq/A==",
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.6.tgz",
+ "integrity": "sha512-Hkz399qDGEbfXi9GYa2hDl7GahglI86JmS2F1KP8sfjLXofUgtnknyC5NWc86nzHcP38pZiPqPbTigyDYw5y8A==",
"dev": true,
"dependencies": {
"@cspell/dict-data-science": "^2.0.1"
@@ -625,9 +625,9 @@
"dev": true
},
"node_modules/@cspell/dict-ruby": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.2.tgz",
- "integrity": "sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.3.tgz",
+ "integrity": "sha512-V1xzv9hN6u8r6SM4CkYdsxs4ov8gjXXo0Twfx5kWhLXbEVxTXDMt7ohLTqpy2XlF5mutixZdbHMeFiAww8v+Ug==",
"dev": true
},
"node_modules/@cspell/dict-rust": {
@@ -643,9 +643,9 @@
"dev": true
},
"node_modules/@cspell/dict-software-terms": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-4.0.6.tgz",
- "integrity": "sha512-UDhUzNSf7GN529a0Ip9hlSoGbpscz0YlUYBEJmZBXi8otpkrbCJqs50T74Ppd+SWqNil04De8urv4af2c6SY5Q==",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-4.1.3.tgz",
+ "integrity": "sha512-5Wn5JG4IzCboX5pjISdkipsPKGaz1//iuBZdHl4US5x7mO4jOGXLpjzx6ZoPM4PXUlMEFz9NJRCDepAu8fXVtA==",
"dev": true
},
"node_modules/@cspell/dict-sql": {
@@ -667,9 +667,9 @@
"dev": true
},
"node_modules/@cspell/dict-terraform": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@cspell/dict-terraform/-/dict-terraform-1.0.0.tgz",
- "integrity": "sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-terraform/-/dict-terraform-1.0.1.tgz",
+ "integrity": "sha512-29lmUUnZgPh+ieZ5hunick8hzNIpNRtiJh9vAusNskPCrig3RTW6u7F+GG1a8uyslbzSw+Irjf40PTOan1OJJA==",
"dev": true
},
"node_modules/@cspell/dict-typescript": {
@@ -685,9 +685,9 @@
"dev": true
},
"node_modules/@cspell/dynamic-import": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.13.2.tgz",
- "integrity": "sha512-ckn9k7kW9Wv1kw8WltUGByQQzFFR9YITtnDQHHFI8yi9IQkSle4+KHLr9Y8uL6U8rtwP70edX4ese++yfnJr+Q==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.14.2.tgz",
+ "integrity": "sha512-5MbqtIligU7yPwHWU/5yFCgMvur4i1bRAF1Cy8y2dDtHsa204S/w/SaXs+51EFLp2eNbCiBisCBrwJFT7R1RxA==",
"dev": true,
"dependencies": {
"import-meta-resolve": "^4.1.0"
@@ -696,33 +696,42 @@
"node": ">=18.0"
}
},
+ "node_modules/@cspell/filetypes": {
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-8.14.2.tgz",
+ "integrity": "sha512-ZevArA0mWeVTTqHicxCPZIAeCibpY3NwWK/x6d1Lgu7RPk/daoGAM546Q2SLChFu+r10tIH7pRG212A6Q9ihPA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/@cspell/strong-weak-map": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.13.2.tgz",
- "integrity": "sha512-jVwlZnef8Q/x3MEg5ixRYYfV3BoI5ZOw0UZRianaM1GwsLCIW/mJ7ZIlIQF6N/exE1YWCpyRlCNgvTgUf7fc7w==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.14.2.tgz",
+ "integrity": "sha512-7sRzJc392CQYNNrtdPEfOHJdRqsqf6nASCtbS5A9hL2UrdWQ4uN7r/D+Y1HpuizwY9eOkZvarcFfsYt5wE0Pug==",
"dev": true,
"engines": {
"node": ">=18"
}
},
"node_modules/@cspell/url": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/@cspell/url/-/url-8.13.2.tgz",
- "integrity": "sha512-IFtiADDLGCp4QXPhsQ0F5/jbVQb0Loeum36wzGLiqXWYDjIA25W8miy0hyy/S8aZhzdEq2aUZjz9dTvkl+5ISQ==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/@cspell/url/-/url-8.14.2.tgz",
+ "integrity": "sha512-YmWW+B/2XQcCynLpiAQF77Bitm5Cynw3/BICZkbdveKjJkUzEmXB+U2qWuwXOyU8xUYuwkP63YM8McnI567rUA==",
"dev": true,
"engines": {
"node": ">=18.0"
}
},
"node_modules/@es-joy/jsdoccomment": {
- "version": "0.46.0",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.46.0.tgz",
- "integrity": "sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==",
+ "version": "0.48.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.48.0.tgz",
+ "integrity": "sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==",
"dev": true,
"dependencies": {
"comment-parser": "1.4.1",
"esquery": "^1.6.0",
- "jsdoc-type-pratt-parser": "~4.0.0"
+ "jsdoc-type-pratt-parser": "~4.1.0"
},
"engines": {
"node": ">=16"
@@ -1133,9 +1142,9 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz",
- "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz",
+ "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==",
"dev": true,
"dependencies": {
"@eslint/object-schema": "^2.1.4",
@@ -1214,9 +1223,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz",
- "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz",
+ "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1560,9 +1569,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz",
- "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz",
+ "integrity": "sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==",
"cpu": [
"arm"
],
@@ -1573,9 +1582,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz",
- "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz",
+ "integrity": "sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==",
"cpu": [
"arm64"
],
@@ -1586,9 +1595,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz",
- "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz",
+ "integrity": "sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==",
"cpu": [
"arm64"
],
@@ -1599,9 +1608,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz",
- "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz",
+ "integrity": "sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==",
"cpu": [
"x64"
],
@@ -1612,9 +1621,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz",
- "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz",
+ "integrity": "sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==",
"cpu": [
"arm"
],
@@ -1625,9 +1634,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz",
- "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz",
+ "integrity": "sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==",
"cpu": [
"arm"
],
@@ -1638,9 +1647,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz",
- "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz",
+ "integrity": "sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==",
"cpu": [
"arm64"
],
@@ -1651,9 +1660,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz",
- "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz",
+ "integrity": "sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==",
"cpu": [
"arm64"
],
@@ -1664,9 +1673,9 @@
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz",
- "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz",
+ "integrity": "sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==",
"cpu": [
"ppc64"
],
@@ -1677,9 +1686,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz",
- "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz",
+ "integrity": "sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==",
"cpu": [
"riscv64"
],
@@ -1690,9 +1699,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz",
- "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz",
+ "integrity": "sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==",
"cpu": [
"s390x"
],
@@ -1703,9 +1712,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz",
- "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz",
+ "integrity": "sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==",
"cpu": [
"x64"
],
@@ -1716,9 +1725,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz",
- "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz",
+ "integrity": "sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==",
"cpu": [
"x64"
],
@@ -1729,9 +1738,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz",
- "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz",
+ "integrity": "sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==",
"cpu": [
"arm64"
],
@@ -1742,9 +1751,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz",
- "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz",
+ "integrity": "sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==",
"cpu": [
"ia32"
],
@@ -1755,9 +1764,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz",
- "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz",
+ "integrity": "sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==",
"cpu": [
"x64"
],
@@ -1904,14 +1913,14 @@
}
},
"node_modules/@schoero/configs": {
- "version": "1.0.33",
- "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-1.0.33.tgz",
- "integrity": "sha512-sN7aNW32jHq52XIXjwO3PjRr6Aew2eh4mM0f5TW/WX9niAqwcjeJTyPrCXJCBjOcVm8kgxauO/xu2qw1je46cA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-1.1.1.tgz",
+ "integrity": "sha512-7gGkjv8z+7/TqRworVaK0yDGQKq9Ss7iMo7i/cqfmVVOXcmouDsxKvvWIuBYtp2IgBimp73FchO1TRK9Run5hg==",
"dev": true,
"dependencies": {
- "@cspell/dict-bash": "^4.1.3",
+ "@cspell/dict-bash": "^4.1.4",
"@cspell/dict-companies": "^3.1.4",
- "@cspell/dict-css": "^4.0.12",
+ "@cspell/dict-css": "^4.0.13",
"@cspell/dict-de-ch": "^1.2.0",
"@cspell/dict-en_us": "^4.3.23",
"@cspell/dict-fr-fr": "^2.2.2",
@@ -1922,34 +1931,33 @@
"@cspell/dict-lorem-ipsum": "^4.0.0",
"@cspell/dict-markdown": "^2.0.2",
"@cspell/dict-node": "^5.0.1",
- "@cspell/dict-npm": "^5.0.18",
- "@cspell/dict-public-licenses": "^2.0.7",
- "@cspell/dict-software-terms": "^4.0.6",
+ "@cspell/dict-npm": "^5.1.4",
+ "@cspell/dict-public-licenses": "^2.0.8",
+ "@cspell/dict-software-terms": "^4.1.3",
"@cspell/dict-typescript": "^3.1.6",
- "@stylistic/eslint-plugin-js": "^2.6.2",
- "@stylistic/eslint-plugin-jsx": "^2.6.2",
- "@stylistic/eslint-plugin-plus": "^2.6.2",
- "@stylistic/eslint-plugin-ts": "^2.6.2",
- "cspell-lib": "^8.13.2",
+ "@stylistic/eslint-plugin-js": "^2.7.2",
+ "@stylistic/eslint-plugin-jsx": "^2.7.2",
+ "@stylistic/eslint-plugin-plus": "^2.7.2",
+ "@stylistic/eslint-plugin-ts": "^2.7.2",
+ "@typescript-eslint/eslint-plugin": "^8.3.0",
+ "@typescript-eslint/parser": "^8.3.0",
+ "cspell-lib": "^8.14.2",
"eslint-plugin-import-newlines": "^1.4.0",
- "eslint-plugin-import-x": "^3.1.0",
- "eslint-plugin-jsdoc": "^50.0.0",
+ "eslint-plugin-import-x": "^4.1.1",
+ "eslint-plugin-jsdoc": "^50.2.2",
"eslint-plugin-jsonc": "^2.16.0",
"eslint-plugin-markdown": "^5.1.0",
- "eslint-plugin-simple-import-sort": "^12.1.1",
- "eslint-plugin-sort-destructure-keys": "^2.0.0",
- "eslint-plugin-sort-keys": "^2.3.5",
+ "eslint-plugin-perfectionist": "^3.3.0",
"eslint-plugin-unicorn": "^55.0.0",
- "eslint-plugin-unused-imports": "^4.1.2",
+ "eslint-plugin-unused-imports": "^4.1.3",
"eslint-plugin-vitest": "^0.5.4",
"eslint-plugin-yml": "^1.14.0",
"markdownlint-cli2": "^0.13.0",
- "typescript-eslint": "^8.0.1",
"vite-tsconfig-paths": "^5.0.1",
"vitest-github-actions-reporter": "^0.11.1"
},
"optionalDependencies": {
- "eslint-plugin-readable-tailwind": "^1.6.0",
+ "eslint-plugin-readable-tailwind": "^1.7.0",
"eslint-plugin-tailwindcss": "^3.17.4"
},
"peerDependencies": {
@@ -2002,13 +2010,12 @@
}
},
"node_modules/@stylistic/eslint-plugin-js": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.6.2.tgz",
- "integrity": "sha512-wCr/kVctAPayMU3pcOI1MKR7MoKIh6VKZU89lPklAqtJoxT+Em6RueiiARbpznUYG5eg3LymiU+aMD+aIZXdqA==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.7.2.tgz",
+ "integrity": "sha512-PkwTDduCY6+ILlHNEfVT3BtShrtqrDJmyW3BW53PvCb+SHu7z88iReXbN+/uCr39fcP6qH49RA7RFsKRlpyMEQ==",
"dev": true,
"dependencies": {
- "@types/eslint": "^9.6.0",
- "acorn": "^8.12.1",
+ "@types/eslint": "^9.6.1",
"eslint-visitor-keys": "^4.0.0",
"espree": "^10.1.0"
},
@@ -2020,13 +2027,14 @@
}
},
"node_modules/@stylistic/eslint-plugin-jsx": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.6.2.tgz",
- "integrity": "sha512-dSXK/fSPA938J1fBi10QmhzLKtZ/2TuyVNHQMk8jUhWfKJDleAogaSqcWNAbN8fwcoe9UWmt/3StiIf2oYC1aQ==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.7.2.tgz",
+ "integrity": "sha512-xe6scY5B4P0/eZIb9R5nAVjaP7UhNPYH3GE8pojrJIvJiRZ54rZwSBrFWHREP+EN4snCN/bKzNQMaFmQ7+OZbw==",
"dev": true,
"dependencies": {
- "@stylistic/eslint-plugin-js": "^2.6.2",
- "@types/eslint": "^9.6.0",
+ "@types/eslint": "^9.6.1",
+ "eslint-visitor-keys": "^4.0.0",
+ "espree": "^10.1.0",
"estraverse": "^5.3.0",
"picomatch": "^4.0.2"
},
@@ -2038,27 +2046,27 @@
}
},
"node_modules/@stylistic/eslint-plugin-plus": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.6.2.tgz",
- "integrity": "sha512-cANcPASfRvq3VTbbQCrSIXq+2AI0IW68PNYaZoXXS0ENlp7HDB8dmrsJnOgWCcoEvdCB8z/eWcG/eq/v5Qcl+Q==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.7.2.tgz",
+ "integrity": "sha512-Ualkhs6xxVooVAJHvdtJUo8Zg08cjhZdBTid/Ho5pb7EbkUg5Jhz6qbVgeEfd5/4E3h7kQNVezKZM2/JiX79Mw==",
"dev": true,
"dependencies": {
- "@types/eslint": "^9.6.0",
- "@typescript-eslint/utils": "^8.0.0"
+ "@types/eslint": "^9.6.1"
},
"peerDependencies": {
"eslint": "*"
}
},
"node_modules/@stylistic/eslint-plugin-ts": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.6.2.tgz",
- "integrity": "sha512-6OEN3VtUNxjgOvWPavnC10MByr1H4zsgwNND3rQXr5lDFv93MLUnTsH+/SH15OkuqdyJgrQILI6b9lYecb1vIg==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.7.2.tgz",
+ "integrity": "sha512-uf3hmqWLK1upUnTmUSn4XDvNu1o6b1nY+xdema8dGGY+zH663V+0cHN3xqexDuQ8do1f0wV3hChkfmz3jWC4Uw==",
"dev": true,
"dependencies": {
- "@stylistic/eslint-plugin-js": "2.6.2",
- "@types/eslint": "^9.6.0",
- "@typescript-eslint/utils": "^8.0.0"
+ "@types/eslint": "^9.6.1",
+ "@typescript-eslint/utils": "^8.3.0",
+ "eslint-visitor-keys": "^4.0.0",
+ "espree": "^10.1.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2083,9 +2091,9 @@
"dev": true
},
"node_modules/@types/eslint": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz",
- "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
+ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
"dev": true,
"dependencies": {
"@types/estree": "*",
@@ -2114,12 +2122,12 @@
}
},
"node_modules/@types/node": {
- "version": "22.2.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz",
- "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==",
+ "version": "22.5.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.2.tgz",
+ "integrity": "sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==",
"dev": true,
"dependencies": {
- "undici-types": "~6.13.0"
+ "undici-types": "~6.19.2"
}
},
"node_modules/@types/normalize-package-data": {
@@ -2144,22 +2152,22 @@
"dev": true
},
"node_modules/@types/unist": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz",
- "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.1.tgz",
- "integrity": "sha512-5g3Y7GDFsJAnY4Yhvk8sZtFfV6YNF2caLzjrRPUBzewjPCaj0yokePB4LJSobyCzGMzjZZYFbwuzbfDHlimXbQ==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz",
+ "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.0.1",
- "@typescript-eslint/type-utils": "8.0.1",
- "@typescript-eslint/utils": "8.0.1",
- "@typescript-eslint/visitor-keys": "8.0.1",
+ "@typescript-eslint/scope-manager": "8.3.0",
+ "@typescript-eslint/type-utils": "8.3.0",
+ "@typescript-eslint/utils": "8.3.0",
+ "@typescript-eslint/visitor-keys": "8.3.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -2183,15 +2191,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.0.1.tgz",
- "integrity": "sha512-5IgYJ9EO/12pOUwiBKFkpU7rS3IU21mtXzB81TNwq2xEybcmAZrE9qwDtsb5uQd9aVO9o0fdabFyAmKveXyujg==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz",
+ "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.0.1",
- "@typescript-eslint/types": "8.0.1",
- "@typescript-eslint/typescript-estree": "8.0.1",
- "@typescript-eslint/visitor-keys": "8.0.1",
+ "@typescript-eslint/scope-manager": "8.3.0",
+ "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/typescript-estree": "8.3.0",
+ "@typescript-eslint/visitor-keys": "8.3.0",
"debug": "^4.3.4"
},
"engines": {
@@ -2211,13 +2219,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.0.1.tgz",
- "integrity": "sha512-NpixInP5dm7uukMiRyiHjRKkom5RIFA4dfiHvalanD2cF0CLUuQqxfg8PtEUo9yqJI2bBhF+pcSafqnG3UBnRQ==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz",
+ "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.0.1",
- "@typescript-eslint/visitor-keys": "8.0.1"
+ "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/visitor-keys": "8.3.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2228,13 +2236,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.0.1.tgz",
- "integrity": "sha512-+/UT25MWvXeDX9YaHv1IS6KI1fiuTto43WprE7pgSMswHbn1Jm9GEM4Txp+X74ifOWV8emu2AWcbLhpJAvD5Ng==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz",
+ "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.0.1",
- "@typescript-eslint/utils": "8.0.1",
+ "@typescript-eslint/typescript-estree": "8.3.0",
+ "@typescript-eslint/utils": "8.3.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
@@ -2252,9 +2260,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.1.tgz",
- "integrity": "sha512-PpqTVT3yCA/bIgJ12czBuE3iBlM3g4inRSC5J0QOdQFAn07TYrYEQBBKgXH1lQpglup+Zy6c1fxuwTk4MTNKIw==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz",
+ "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2265,15 +2273,15 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.1.tgz",
- "integrity": "sha512-8V9hriRvZQXPWU3bbiUV4Epo7EvgM6RTs+sUmxp5G//dBGy402S7Fx0W0QkB2fb4obCF8SInoUzvTYtc3bkb5w==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz",
+ "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.0.1",
- "@typescript-eslint/visitor-keys": "8.0.1",
+ "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/visitor-keys": "8.3.0",
"debug": "^4.3.4",
- "globby": "^11.1.0",
+ "fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
"minimatch": "^9.0.4",
"semver": "^7.6.0",
@@ -2293,15 +2301,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.0.1.tgz",
- "integrity": "sha512-CBFR0G0sCt0+fzfnKaciu9IBsKvEKYwN9UZ+eeogK1fYHg4Qxk1yf/wLQkLXlq8wbU2dFlgAesxt8Gi76E8RTA==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz",
+ "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.0.1",
- "@typescript-eslint/types": "8.0.1",
- "@typescript-eslint/typescript-estree": "8.0.1"
+ "@typescript-eslint/scope-manager": "8.3.0",
+ "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/typescript-estree": "8.3.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2315,12 +2323,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.1.tgz",
- "integrity": "sha512-W5E+o0UfUcK5EgchLZsyVWqARmsM7v54/qEq6PY3YI5arkgmCzHiuk0zKSJJbm71V0xdRna4BGomkCTXz2/LkQ==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz",
+ "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.0.1",
+ "@typescript-eslint/types": "8.3.0",
"eslint-visitor-keys": "^3.4.3"
},
"engines": {
@@ -2434,64 +2442,52 @@
}
},
"node_modules/@volar/language-core": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz",
- "integrity": "sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.1.tgz",
+ "integrity": "sha512-9AKhC7Qn2mQYxj7Dz3bVxeOk7gGJladhWixUYKef/o0o7Bm4an+A3XvmcTHVqZ8stE6lBVH++g050tBtJ4TZPQ==",
"dev": true,
"dependencies": {
- "@volar/source-map": "2.3.4"
+ "@volar/source-map": "2.4.1"
}
},
"node_modules/@volar/source-map": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz",
- "integrity": "sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.1.tgz",
+ "integrity": "sha512-Xq6ep3OZg9xUqN90jEgB9ztX5SsTz1yiV8wiQbcYNjWkek+Ie3dc8l7AVt3EhDm9mSIR58oWczHkzM2H6HIsmQ==",
"dev": true
},
"node_modules/@volar/typescript": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.4.tgz",
- "integrity": "sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.1.tgz",
+ "integrity": "sha512-UoRzC0PXcwajFQTu8XxKSYNsWNBtVja6Y9gC8eLv7kYm+UEKJCcZ8g7dialsOYA0HKs3Vpg57MeCsawFLC6m9Q==",
"dev": true,
"dependencies": {
- "@volar/language-core": "2.3.4",
+ "@volar/language-core": "2.4.1",
"path-browserify": "^1.0.1",
"vscode-uri": "^3.0.8"
}
},
"node_modules/@vue/compiler-core": {
- "version": "3.4.37",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.37.tgz",
- "integrity": "sha512-ZDDT/KiLKuCRXyzWecNzC5vTcubGz4LECAtfGPENpo0nrmqJHwuWtRLxk/Sb9RAKtR9iFflFycbkjkY+W/PZUQ==",
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz",
+ "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==",
"dev": true,
"dependencies": {
"@babel/parser": "^7.24.7",
- "@vue/shared": "3.4.37",
- "entities": "^5.0.0",
+ "@vue/shared": "3.4.38",
+ "entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.0"
}
},
- "node_modules/@vue/compiler-core/node_modules/entities": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz",
- "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==",
- "dev": true,
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
"node_modules/@vue/compiler-dom": {
- "version": "3.4.37",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.37.tgz",
- "integrity": "sha512-rIiSmL3YrntvgYV84rekAtU/xfogMUJIclUMeIKEtVBFngOL3IeZHhsH3UaFEgB5iFGpj6IW+8YuM/2Up+vVag==",
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz",
+ "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==",
"dev": true,
"dependencies": {
- "@vue/compiler-core": "3.4.37",
- "@vue/shared": "3.4.37"
+ "@vue/compiler-core": "3.4.38",
+ "@vue/shared": "3.4.38"
}
},
"node_modules/@vue/compiler-vue2": {
@@ -2528,25 +2524,10 @@
}
}
},
- "node_modules/@vue/language-core/node_modules/@volar/language-core": {
- "version": "2.4.0-alpha.18",
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.18.tgz",
- "integrity": "sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==",
- "dev": true,
- "dependencies": {
- "@volar/source-map": "2.4.0-alpha.18"
- }
- },
- "node_modules/@vue/language-core/node_modules/@volar/source-map": {
- "version": "2.4.0-alpha.18",
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.18.tgz",
- "integrity": "sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==",
- "dev": true
- },
"node_modules/@vue/shared": {
- "version": "3.4.37",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.37.tgz",
- "integrity": "sha512-nIh8P2fc3DflG8+5Uw8PT/1i17ccFn0xxN/5oE9RfV5SVnd7G0XEFRwakrnNFE/jlS95fpGXDVG5zDETS26nmg==",
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz",
+ "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==",
"dev": true
},
"node_modules/acorn": {
@@ -2927,9 +2908,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001651",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz",
- "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==",
+ "version": "1.0.30001655",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz",
+ "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==",
"dev": true,
"funding": [
{
@@ -3154,9 +3135,9 @@
}
},
"node_modules/comment-json": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.4.tgz",
- "integrity": "sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ==",
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz",
+ "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==",
"dev": true,
"dependencies": {
"array-timsort": "^1.0.3",
@@ -3203,9 +3184,9 @@
"dev": true
},
"node_modules/core-js-compat": {
- "version": "3.38.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz",
- "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==",
+ "version": "3.38.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz",
+ "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==",
"dev": true,
"dependencies": {
"browserslist": "^4.23.3"
@@ -3260,24 +3241,24 @@
"dev": true
},
"node_modules/cspell": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.13.2.tgz",
- "integrity": "sha512-m+aA54r95QteZBPzZBR4bdld92TDV47/qoKhYt7+M8umcLZR3C2dfktEbVQGoAJokRgSQo9L4/fRF0skk+g5Mg==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.14.2.tgz",
+ "integrity": "sha512-ii/W7fwO4chNQVYl1C/8k7RW8EXzLb69rvg08p8mSJx8B2UasVJ9tuJpTH2Spo1jX6N3H0dKPWUbd1fAmdAhPg==",
"dev": true,
"dependencies": {
- "@cspell/cspell-json-reporter": "8.13.2",
- "@cspell/cspell-pipe": "8.13.2",
- "@cspell/cspell-types": "8.13.2",
- "@cspell/dynamic-import": "8.13.2",
- "@cspell/url": "8.13.2",
+ "@cspell/cspell-json-reporter": "8.14.2",
+ "@cspell/cspell-pipe": "8.14.2",
+ "@cspell/cspell-types": "8.14.2",
+ "@cspell/dynamic-import": "8.14.2",
+ "@cspell/url": "8.14.2",
"chalk": "^5.3.0",
"chalk-template": "^1.1.0",
"commander": "^12.1.0",
- "cspell-dictionary": "8.13.2",
- "cspell-gitignore": "8.13.2",
- "cspell-glob": "8.13.2",
- "cspell-io": "8.13.2",
- "cspell-lib": "8.13.2",
+ "cspell-dictionary": "8.14.2",
+ "cspell-gitignore": "8.14.2",
+ "cspell-glob": "8.14.2",
+ "cspell-io": "8.14.2",
+ "cspell-lib": "8.14.2",
"fast-glob": "^3.3.2",
"fast-json-stable-stringify": "^2.1.0",
"file-entry-cache": "^9.0.0",
@@ -3297,13 +3278,13 @@
}
},
"node_modules/cspell-config-lib": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.13.2.tgz",
- "integrity": "sha512-AkG5qWnmHxwEJqyLsraVVzEWGShICn533GdcbSHYYrLxEd9UromEjmFrMlgNomwj8SnJq4L9xq1LoWgRXa5jjg==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.14.2.tgz",
+ "integrity": "sha512-yHP1BdcH5dbjb8qiZr6+bxEnJ+rxTULQ00wBz3eBPWCghJywEAYYvMWoYuxVtPpndlkKYC1wJAHsyNkweQyepA==",
"dev": true,
"dependencies": {
- "@cspell/cspell-types": "8.13.2",
- "comment-json": "^4.2.4",
+ "@cspell/cspell-types": "8.14.2",
+ "comment-json": "^4.2.5",
"yaml": "^2.5.0"
},
"engines": {
@@ -3311,14 +3292,14 @@
}
},
"node_modules/cspell-dictionary": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.13.2.tgz",
- "integrity": "sha512-dvtb9fDHw3jEa5mGBmrDTRxlaXVccQ5LMYkosPcS+J5/iLrV0E3iQu3njFHBFXKsLqOwnd6GV9pd6fXkPEFdeQ==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.14.2.tgz",
+ "integrity": "sha512-gWuAvf6queGGUvGbfAxxUq55cZ0OevWPbjnCrSB0PpJ4tqdFd8dLcvVrIKzoE2sBXKPw2NDkmoEngs6iGavC0w==",
"dev": true,
"dependencies": {
- "@cspell/cspell-pipe": "8.13.2",
- "@cspell/cspell-types": "8.13.2",
- "cspell-trie-lib": "8.13.2",
+ "@cspell/cspell-pipe": "8.14.2",
+ "@cspell/cspell-types": "8.14.2",
+ "cspell-trie-lib": "8.14.2",
"fast-equals": "^5.0.1"
},
"engines": {
@@ -3326,14 +3307,14 @@
}
},
"node_modules/cspell-gitignore": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.13.2.tgz",
- "integrity": "sha512-eEDR0g2VQHVRg9mLXi6PUnjZzD1DYa2jkmiuj61ZEN9yEKZ3GKXlUTxlewIiMGN/fxIn5kHyjeMo+hbCHoYkGw==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.14.2.tgz",
+ "integrity": "sha512-lrO/49NaKBpkR7vFxv4OOY+oHmsG5+gNQejrBBWD9Nv9vvjJtz/G36X/rcN6M6tFcQQMWwa01kf04nxz8Ejuhg==",
"dev": true,
"dependencies": {
- "@cspell/url": "8.13.2",
- "cspell-glob": "8.13.2",
- "cspell-io": "8.13.2",
+ "@cspell/url": "8.14.2",
+ "cspell-glob": "8.14.2",
+ "cspell-io": "8.14.2",
"find-up-simple": "^1.0.0"
},
"bin": {
@@ -3344,12 +3325,12 @@
}
},
"node_modules/cspell-glob": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.13.2.tgz",
- "integrity": "sha512-zhWcfE4k1BVErVd36AMle9DE5W0bxI4OcM7/q3YxPQUdbsox/DihGXGQu+jld2LkUpDl0llIPVJ8OibKg9stcQ==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.14.2.tgz",
+ "integrity": "sha512-9Q1Kgoo1ev3fKTpp9y5n8M4RLxd8B0f5o4y5FQe4dBU0j/bt+/YDrLZNWDm77JViV606XQ6fimG1FTTq6pT9/g==",
"dev": true,
"dependencies": {
- "@cspell/url": "8.13.2",
+ "@cspell/url": "8.14.2",
"micromatch": "^4.0.7"
},
"engines": {
@@ -3357,13 +3338,13 @@
}
},
"node_modules/cspell-grammar": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.13.2.tgz",
- "integrity": "sha512-mdRNahGfY7BXg36PQcmeB8WQZETYB6W0A/+yMDgFg+YQX7UdJr8M5GVDFmIFRWyc7/cnv6GMiqdI64gmfCU8ww==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.14.2.tgz",
+ "integrity": "sha512-eYwceVP80FGYVJenE42ALnvEKOXaXjq4yVbb1Ni1umO/9qamLWNCQ1RP6rRACy5e/cXviAbhrQ5Mtw6n+pyPEQ==",
"dev": true,
"dependencies": {
- "@cspell/cspell-pipe": "8.13.2",
- "@cspell/cspell-types": "8.13.2"
+ "@cspell/cspell-pipe": "8.14.2",
+ "@cspell/cspell-types": "8.14.2"
},
"bin": {
"cspell-grammar": "bin.mjs"
@@ -3373,39 +3354,40 @@
}
},
"node_modules/cspell-io": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.13.2.tgz",
- "integrity": "sha512-Jf5LL1TEXPvKH0iabIr8BLK/Hc6crPCdsWM3CbZydp/fDU6rpbaApzSVQ376JlAaLMLpEP7s5oVh9WC4wIE5Bw==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.14.2.tgz",
+ "integrity": "sha512-uaKpHiY3DAgfdzgKMQml6U8F8o9udMuYxGqYa5FVfN7D5Ap7B2edQzSLTUYwxrFEn4skSfp6XY73+nzJvxzH4Q==",
"dev": true,
"dependencies": {
- "@cspell/cspell-service-bus": "8.13.2",
- "@cspell/url": "8.13.2"
+ "@cspell/cspell-service-bus": "8.14.2",
+ "@cspell/url": "8.14.2"
},
"engines": {
"node": ">=18"
}
},
"node_modules/cspell-lib": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.13.2.tgz",
- "integrity": "sha512-qWX4B0Nwo6Souoi8/hLEohSLQEeeh1mWIiQDDJ43w+zmzzzmHZ8+tAeJJ2eAGgOKVqfjcyefH5y7Py2TQrn3xg==",
- "dev": true,
- "dependencies": {
- "@cspell/cspell-bundled-dicts": "8.13.2",
- "@cspell/cspell-pipe": "8.13.2",
- "@cspell/cspell-resolver": "8.13.2",
- "@cspell/cspell-types": "8.13.2",
- "@cspell/dynamic-import": "8.13.2",
- "@cspell/strong-weak-map": "8.13.2",
- "@cspell/url": "8.13.2",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.14.2.tgz",
+ "integrity": "sha512-d2oiIXHXnADmnhIuFLOdNE63L7OUfzgpLbYaqAWbkImCUDkevfGrOgnX8TJ03fUgZID4nvQ+3kgu/n2j4eLZjQ==",
+ "dev": true,
+ "dependencies": {
+ "@cspell/cspell-bundled-dicts": "8.14.2",
+ "@cspell/cspell-pipe": "8.14.2",
+ "@cspell/cspell-resolver": "8.14.2",
+ "@cspell/cspell-types": "8.14.2",
+ "@cspell/dynamic-import": "8.14.2",
+ "@cspell/filetypes": "8.14.2",
+ "@cspell/strong-weak-map": "8.14.2",
+ "@cspell/url": "8.14.2",
"clear-module": "^4.1.2",
- "comment-json": "^4.2.4",
- "cspell-config-lib": "8.13.2",
- "cspell-dictionary": "8.13.2",
- "cspell-glob": "8.13.2",
- "cspell-grammar": "8.13.2",
- "cspell-io": "8.13.2",
- "cspell-trie-lib": "8.13.2",
+ "comment-json": "^4.2.5",
+ "cspell-config-lib": "8.14.2",
+ "cspell-dictionary": "8.14.2",
+ "cspell-glob": "8.14.2",
+ "cspell-grammar": "8.14.2",
+ "cspell-io": "8.14.2",
+ "cspell-trie-lib": "8.14.2",
"env-paths": "^3.0.0",
"fast-equals": "^5.0.1",
"gensequence": "^7.0.0",
@@ -3420,13 +3402,13 @@
}
},
"node_modules/cspell-trie-lib": {
- "version": "8.13.2",
- "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.13.2.tgz",
- "integrity": "sha512-JYpxU6mN0W9cp5g6QN4TXz0S3zzcmGpVJf1fka7tuWHY1e62Gs0qIIL2LjTHYW9wlRFYyrqPnN5opfwuEZCCMg==",
+ "version": "8.14.2",
+ "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.14.2.tgz",
+ "integrity": "sha512-rZMbaEBGoyy4/zxKECaMyVyGLbuUxYmZ5jlEgiA3xPtEdWwJ4iWRTo5G6dWbQsXoxPYdAXXZ0/q0GQ2y6Jt0kw==",
"dev": true,
"dependencies": {
- "@cspell/cspell-pipe": "8.13.2",
- "@cspell/cspell-types": "8.13.2",
+ "@cspell/cspell-pipe": "8.14.2",
+ "@cspell/cspell-types": "8.14.2",
"gensequence": "^7.0.0"
},
"engines": {
@@ -3577,6 +3559,15 @@
"node": ">=8"
}
},
+ "node_modules/dir-glob/node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/dlv": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
@@ -3604,9 +3595,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz",
- "integrity": "sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==",
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz",
+ "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -3734,9 +3725,9 @@
}
},
"node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
"engines": {
"node": ">=6"
@@ -3755,16 +3746,16 @@
}
},
"node_modules/eslint": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz",
- "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.1.tgz",
+ "integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.11.0",
- "@eslint/config-array": "^0.17.1",
+ "@eslint/config-array": "^0.18.0",
"@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.9.0",
+ "@eslint/js": "9.9.1",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.3.0",
"@nodelib/fs.walk": "^1.2.8",
@@ -3864,148 +3855,40 @@
}
},
"node_modules/eslint-plugin-import-x": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-3.1.0.tgz",
- "integrity": "sha512-/UbPA+bYY7nIxcjL3kpcDY3UNdoLHFhyBFzHox2M0ypcUoueTn6woZUUmzzi5et/dXChksasYYFeKE2wshOrhg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.1.1.tgz",
+ "integrity": "sha512-dBEM8fACIFNt4H7GoOaRmnH6evJW6JSTJTYYgmRd3vI4geBTjgDM/JyUDKUwIw0HDSyI+u7Vs3vFRXUo/BOAtA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/utils": "^7.4.0",
+ "@typescript-eslint/typescript-estree": "^8.1.0",
+ "@typescript-eslint/utils": "^8.1.0",
"debug": "^4.3.4",
"doctrine": "^3.0.0",
"eslint-import-resolver-node": "^0.3.9",
"get-tsconfig": "^4.7.3",
"is-glob": "^4.0.3",
"minimatch": "^9.0.3",
- "semver": "^7.6.0",
+ "semver": "^7.6.3",
"stable-hash": "^0.0.4",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "eslint": "^8.56.0 || ^9.0.0-0"
- }
- },
- "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/scope-manager": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
- "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0"
+ "tslib": "^2.6.3"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/types": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
- "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
- "dev": true,
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/typescript-estree": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
- "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/utils": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz",
- "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
- "dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/typescript-estree": "7.18.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"peerDependencies": {
- "eslint": "^8.56.0"
- }
- },
- "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/visitor-keys": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
- "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "eslint-visitor-keys": "^3.4.3"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/eslint-plugin-import-x/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "eslint": "^8.57.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "50.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.0.1.tgz",
- "integrity": "sha512-UayhAysIk1Du8InV27WMbV4AMSJSu60+bekmeuGK2OUy4QJSFPr1srYT6AInykGkmMdRuHfDX6Q0tJEr8BtDtg==",
+ "version": "50.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.2.2.tgz",
+ "integrity": "sha512-i0ZMWA199DG7sjxlzXn5AeYZxpRfMJjDPUl7lL9eJJX8TPRoIaxJU4ys/joP5faM5AXE1eqW/dslCj3uj4Nqpg==",
"dev": true,
"dependencies": {
- "@es-joy/jsdoccomment": "~0.46.0",
+ "@es-joy/jsdoccomment": "~0.48.0",
"are-docs-informative": "^0.0.2",
"comment-parser": "1.4.1",
- "debug": "^4.3.5",
+ "debug": "^4.3.6",
"escape-string-regexp": "^4.0.0",
"espree": "^10.1.0",
"esquery": "^1.6.0",
@@ -4101,51 +3984,69 @@
"eslint": ">=8"
}
},
- "node_modules/eslint-plugin-readable-tailwind": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-1.6.0.tgz",
- "integrity": "sha512-PqI8/eHVNTrDa7slAW13D6nTv6CFLqdd4iKxhuGHHcaEnG/k+lCFR0zG0GCDvbQ7vzVcIfpPsM/9/c4wnlw7fg==",
+ "node_modules/eslint-plugin-perfectionist": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-3.3.0.tgz",
+ "integrity": "sha512-sGgShkEqDBqIZ3WlenGHwLe1cl3vHKTfeh9b1XXAamaxSC7AY4Os0jdNCXnGJW4l0TlpismT5t2r7CXY7sfKlw==",
"dev": true,
- "optional": true,
+ "dependencies": {
+ "@typescript-eslint/types": "^8.3.0",
+ "@typescript-eslint/utils": "^8.3.0",
+ "minimatch": "^10.0.1",
+ "natural-compare-lite": "^1.4.0"
+ },
"engines": {
- "node": ">=16"
+ "node": "^18.0.0 || >=20.0.0"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0",
- "tailwindcss": ">=3.3.0"
- }
- },
- "node_modules/eslint-plugin-simple-import-sort": {
- "version": "12.1.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz",
- "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==",
- "dev": true,
- "peerDependencies": {
- "eslint": ">=5.0.0"
+ "astro-eslint-parser": "^1.0.2",
+ "eslint": ">=8.0.0",
+ "svelte": ">=3.0.0",
+ "svelte-eslint-parser": "^0.41.0",
+ "vue-eslint-parser": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "astro-eslint-parser": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "svelte-eslint-parser": {
+ "optional": true
+ },
+ "vue-eslint-parser": {
+ "optional": true
+ }
}
},
- "node_modules/eslint-plugin-sort-destructure-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-sort-destructure-keys/-/eslint-plugin-sort-destructure-keys-2.0.0.tgz",
- "integrity": "sha512-4w1UQCa3o/YdfWaLr9jY8LfGowwjwjmwClyFLxIsToiyIdZMq3x9Ti44nDn34DtTPP7PWg96tUONKVmATKhYGQ==",
+ "node_modules/eslint-plugin-perfectionist/node_modules/minimatch": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
+ "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
"dev": true,
"dependencies": {
- "natural-compare-lite": "^1.4.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=12"
+ "node": "20 || >=22"
},
- "peerDependencies": {
- "eslint": "5 - 9"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/eslint-plugin-sort-keys": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-sort-keys/-/eslint-plugin-sort-keys-2.3.5.tgz",
- "integrity": "sha512-2j/XKQ9sNJwK8kIp/U0EvuF6stS6/8aIc53/NskE4C5NRNh4dt3xzbZyOdrVC11cTH6Zo59/pdzA0Kb+2fQGWg==",
+ "node_modules/eslint-plugin-readable-tailwind": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-1.7.0.tgz",
+ "integrity": "sha512-AEXpU93j4mz81PEFyGNDhvqGb+o8gElcrNXRvQkA12mSTcxDo+7j+9Co8KjOX1dwd+/1+HodnE0w3F+uCLLYGA==",
"dev": true,
- "dependencies": {
- "natural-compare": "1.4.0"
+ "optional": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0",
+ "tailwindcss": ">=3.3.0"
}
},
"node_modules/eslint-plugin-tailwindcss": {
@@ -4358,6 +4259,35 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/eslint-plugin-vitest/node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-vitest/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/eslint-plugin-yml": {
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
@@ -4709,9 +4639,9 @@
}
},
"node_modules/file-entry-cache": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz",
- "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
+ "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==",
"dev": true,
"dependencies": {
"flat-cache": "^5.0.0"
@@ -4929,9 +4859,9 @@
}
},
"node_modules/get-tsconfig": {
- "version": "4.7.6",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz",
- "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==",
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.0.tgz",
+ "integrity": "sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==",
"dev": true,
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
@@ -5018,20 +4948,20 @@
}
},
"node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz",
+ "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
"dev": true,
"dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "@sindresorhus/merge-streams": "^2.1.0",
+ "fast-glob": "^3.3.2",
+ "ignore": "^5.2.4",
+ "path-type": "^5.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.1.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -5182,9 +5112,9 @@
}
},
"node_modules/ignore": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"engines": {
"node": ">= 4"
@@ -5419,9 +5349,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
- "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
"dev": true,
"dependencies": {
"hasown": "^2.0.2"
@@ -5728,9 +5658,9 @@
}
},
"node_modules/jsdoc-type-pratt-parser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
- "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz",
+ "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==",
"dev": true,
"engines": {
"node": ">=12.0.0"
@@ -6042,26 +5972,6 @@
"markdownlint-cli2": ">=0.0.4"
}
},
- "node_modules/markdownlint-cli2/node_modules/globby": {
- "version": "14.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz",
- "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
- "dev": true,
- "dependencies": {
- "@sindresorhus/merge-streams": "^2.1.0",
- "fast-glob": "^3.3.2",
- "ignore": "^5.2.4",
- "path-type": "^5.0.0",
- "slash": "^5.1.0",
- "unicorn-magic": "^0.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/markdownlint-cli2/node_modules/micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
@@ -6075,18 +5985,6 @@
"node": ">=8.6"
}
},
- "node_modules/markdownlint-cli2/node_modules/path-type": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
- "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/markdownlint-cli2/node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -6099,18 +5997,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/markdownlint-cli2/node_modules/slash": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/markdownlint-micromark": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz",
@@ -6192,9 +6078,9 @@
}
},
"node_modules/micromatch": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
- "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"dependencies": {
"braces": "^3.0.3",
@@ -6661,12 +6547,15 @@
}
},
"node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
+ "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/pathe": {
@@ -6738,9 +6627,9 @@
}
},
"node_modules/pkg-types": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz",
- "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.0.tgz",
+ "integrity": "sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==",
"dev": true,
"dependencies": {
"confbox": "^0.1.7",
@@ -6773,9 +6662,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.41",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
- "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
+ "version": "8.4.42",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.42.tgz",
+ "integrity": "sha512-hywKUQB9Ra4dR1mGhldy5Aj1X3MWDSIA1cEi+Uy0CjheLvP6Ual5RlwMCh8i/X121yEDLDIKBsrCQ8ba3FDMfQ==",
"dev": true,
"funding": [
{
@@ -6919,9 +6808,9 @@
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz",
- "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
"dev": true,
"optional": true,
"peer": true,
@@ -7238,9 +7127,9 @@
}
},
"node_modules/rollup": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz",
- "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.2.tgz",
+ "integrity": "sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==",
"dev": true,
"dependencies": {
"@types/estree": "1.0.5"
@@ -7253,22 +7142,22 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.20.0",
- "@rollup/rollup-android-arm64": "4.20.0",
- "@rollup/rollup-darwin-arm64": "4.20.0",
- "@rollup/rollup-darwin-x64": "4.20.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.20.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.20.0",
- "@rollup/rollup-linux-arm64-gnu": "4.20.0",
- "@rollup/rollup-linux-arm64-musl": "4.20.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.20.0",
- "@rollup/rollup-linux-s390x-gnu": "4.20.0",
- "@rollup/rollup-linux-x64-gnu": "4.20.0",
- "@rollup/rollup-linux-x64-musl": "4.20.0",
- "@rollup/rollup-win32-arm64-msvc": "4.20.0",
- "@rollup/rollup-win32-ia32-msvc": "4.20.0",
- "@rollup/rollup-win32-x64-msvc": "4.20.0",
+ "@rollup/rollup-android-arm-eabi": "4.21.2",
+ "@rollup/rollup-android-arm64": "4.21.2",
+ "@rollup/rollup-darwin-arm64": "4.21.2",
+ "@rollup/rollup-darwin-x64": "4.21.2",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.21.2",
+ "@rollup/rollup-linux-arm-musleabihf": "4.21.2",
+ "@rollup/rollup-linux-arm64-gnu": "4.21.2",
+ "@rollup/rollup-linux-arm64-musl": "4.21.2",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2",
+ "@rollup/rollup-linux-riscv64-gnu": "4.21.2",
+ "@rollup/rollup-linux-s390x-gnu": "4.21.2",
+ "@rollup/rollup-linux-x64-gnu": "4.21.2",
+ "@rollup/rollup-linux-x64-musl": "4.21.2",
+ "@rollup/rollup-win32-arm64-msvc": "4.21.2",
+ "@rollup/rollup-win32-ia32-msvc": "4.21.2",
+ "@rollup/rollup-win32-x64-msvc": "4.21.2",
"fsevents": "~2.3.2"
}
},
@@ -7397,12 +7286,15 @@
}
},
"node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/slashes": {
@@ -7466,9 +7358,9 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.18",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
- "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
+ "version": "3.0.20",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz",
+ "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==",
"dev": true
},
"node_modules/sprintf-js": {
@@ -7797,9 +7689,9 @@
}
},
"node_modules/tailwindcss": {
- "version": "3.4.9",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.9.tgz",
- "integrity": "sha512-1SEOvRr6sSdV5IDf9iC+NU4dhwdqzF4zKKq3sAbasUWHEM6lsMhX+eNN5gkPx1BvLFEnZQEUFbXnGj8Qlp83Pg==",
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
+ "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
"dev": true,
"optional": true,
"peer": true,
@@ -7905,9 +7797,9 @@
"dev": true
},
"node_modules/tinypool": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.0.tgz",
- "integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz",
+ "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==",
"dev": true,
"engines": {
"node": "^18.0.0 || >=20.0.0"
@@ -7973,9 +7865,9 @@
"peer": true
},
"node_modules/tsconfck": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.1.tgz",
- "integrity": "sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.3.tgz",
+ "integrity": "sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==",
"dev": true,
"bin": {
"tsconfck": "bin/tsconfck.js"
@@ -7993,9 +7885,9 @@
}
},
"node_modules/tslib": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
"dev": true
},
"node_modules/tunnel": {
@@ -8041,29 +7933,6 @@
"node": ">=14.17"
}
},
- "node_modules/typescript-eslint": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.0.1.tgz",
- "integrity": "sha512-V3Y+MdfhawxEjE16dWpb7/IOgeXnLwAEEkS7v8oDqNcR1oYlqWhGH/iHqHdKVdpWme1VPZ0SoywXAkCqawj2eQ==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/eslint-plugin": "8.0.1",
- "@typescript-eslint/parser": "8.0.1",
- "@typescript-eslint/utils": "8.0.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
"node_modules/uc.micro": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
@@ -8089,9 +7958,9 @@
}
},
"node_modules/undici-types": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz",
- "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==",
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
"dev": true
},
"node_modules/unicode-properties": {
@@ -8149,15 +8018,15 @@
}
},
"node_modules/unwritten": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/unwritten/-/unwritten-0.2.12.tgz",
- "integrity": "sha512-qsr7wHtXUOor/CBIvmj7tJv2c3jGE/GgrraFyorWblaAmSTv4yycfihAW26LIV7rTYxsSBkibEAcWB/ghQpDzg==",
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/unwritten/-/unwritten-0.2.13.tgz",
+ "integrity": "sha512-/1bLv2/X7aabL2EP8rVWpWDcp5NToalUYapmUkkK1vZ0Ocn0LC9SSb2dPo9X8uClYUZ6uFBRrxcoXK/qopIVlQ==",
"dev": true,
"dependencies": {
"cac": "^6.7.14",
- "minimatch": "^9.0.4",
+ "minimatch": "^10.0.1",
"tinyhighlight": "^0.3.2",
- "typescript": "^5.5.2"
+ "typescript": "^5.5.4"
},
"bin": {
"unwritten": "lib/node/bin/index.js"
@@ -8166,6 +8035,21 @@
"node": ">=16.9.0"
}
},
+ "node_modules/unwritten/node_modules/minimatch": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
+ "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/update-browserslist-db": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
@@ -8243,14 +8127,14 @@
}
},
"node_modules/vite": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz",
- "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==",
+ "version": "5.4.2",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.2.tgz",
+ "integrity": "sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==",
"dev": true,
"dependencies": {
"esbuild": "^0.21.3",
- "postcss": "^8.4.40",
- "rollup": "^4.13.0"
+ "postcss": "^8.4.41",
+ "rollup": "^4.20.0"
},
"bin": {
"vite": "bin/vite.js"
@@ -8324,9 +8208,9 @@
}
},
"node_modules/vite-plugin-dts": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.0.2.tgz",
- "integrity": "sha512-Ni3EPG8yeLc5ivEzT4szreJ0rXpEQgvdYq3PaZ7OMoHc8uET4/HRUfzVPejJaUAojbxsKgaZbp6Zgm41sxb86Q==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.1.0.tgz",
+ "integrity": "sha512-sRlmt9k2q8MrX4F2058N3KmB6WyJ3Ao6QaExOv1X99F3j0GhPziEz1zscWQ1q2r1PeFc96L7GIUu8Pl2DPr2Hg==",
"dev": true,
"dependencies": {
"@microsoft/api-extractor": "7.47.4",
@@ -8490,32 +8374,6 @@
"typescript": ">=5.0.0"
}
},
- "node_modules/vue-tsc/node_modules/@volar/language-core": {
- "version": "2.4.0-alpha.18",
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.18.tgz",
- "integrity": "sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==",
- "dev": true,
- "dependencies": {
- "@volar/source-map": "2.4.0-alpha.18"
- }
- },
- "node_modules/vue-tsc/node_modules/@volar/source-map": {
- "version": "2.4.0-alpha.18",
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.18.tgz",
- "integrity": "sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==",
- "dev": true
- },
- "node_modules/vue-tsc/node_modules/@volar/typescript": {
- "version": "2.4.0-alpha.18",
- "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.0-alpha.18.tgz",
- "integrity": "sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==",
- "dev": true,
- "dependencies": {
- "@volar/language-core": "2.4.0-alpha.18",
- "path-browserify": "^1.0.1",
- "vscode-uri": "^3.0.8"
- }
- },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
diff --git a/package.json b/package.json
index 1816fe9..060392a 100644
--- a/package.json
+++ b/package.json
@@ -63,11 +63,12 @@
"build:bundle": "vite build --config vite.config.bundle.ts",
"build:cjs": "vite build --config vite.config.cjs.ts && echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json",
"build:esm": "vite build --config vite.config.ts && echo '{ \"type\": \"module\" }' > lib/esm/package.json",
- "docs": "npm run docs:pdf && npm run docs:svg && npm run docs:shared && npm run docs:bundle",
+ "docs": "npm run docs:pdf && npm run docs:svg && npm run docs:utils && npm run docs:errors && npm run docs:bundle",
"docs:bundle": "unwritten src/bundle/index.ts -t tsconfig.docs.json -o docs/bundle/ ",
+ "docs:errors": "unwritten src/shared/errors.ts -t tsconfig.docs.json -o docs/errors/",
"docs:pdf": "unwritten src/pdf/index.ts src/shared/types.ts -t tsconfig.docs.json -o docs/pdf/",
- "docs:shared": "unwritten src/shared/utils.ts -t tsconfig.docs.json -o docs/utils/",
"docs:svg": "unwritten src/svg/index.ts src/shared/types.ts -t tsconfig.docs.json -o docs/svg/",
+ "docs:utils": "unwritten src/shared/utils.ts -t tsconfig.docs.json -o docs/utils/",
"eslint": "eslint .",
"eslint:ci": "npm run eslint -- --max-warnings 0",
"eslint:fix": "npm run eslint -- --fix",
@@ -79,7 +80,7 @@
"markdownlint:fix": "npm run markdownlint -- --fix",
"postrelease:alpha": "npm run postrelease",
"postrelease:beta": "npm run postrelease",
- "postrelease:latest": "eslint --fix package.json && markdownlint-cli2-fix 'CHANGELOG.md'",
+ "postrelease:latest": "eslint --fix package.json && markdownlint-cli2 --fix 'CHANGELOG.md'",
"prebuild": "npm run typecheck && npm run lint && npm run spellcheck",
"prerelease:alpha": "npm run test -- --run && npm run build",
"prerelease:beta": "npm run test -- --run && npm run build",
@@ -121,20 +122,20 @@
"devDependencies": {
"@cspell/dict-fr-fr": "^2.2.2",
"@cspell/dict-it-it": "^3.1.0",
- "@schoero/configs": "^1.0.33",
- "@types/node": "^22.2.0",
+ "@schoero/configs": "^1.1.1",
+ "@types/node": "^22.5.2",
"@types/pdfkit": "^0.13.4",
"@types/svg-parser": "^2.0.6",
"cross-env": "^7.0.3",
- "cspell": "^8.13.2",
- "eslint": "^9.9.0",
+ "cspell": "^8.14.2",
+ "eslint": "^9.9.1",
"glob": "^11.0.0",
"markdownlint": "^0.34.0",
"pdfkit": "^0.15.0",
"typescript": "^5.5.4",
- "unwritten": "^0.2.12",
- "vite": "^5.4.0",
- "vite-plugin-dts": "^4.0.2",
+ "unwritten": "^0.2.13",
+ "vite": "^5.4.2",
+ "vite-plugin-dts": "^4.1.0",
"vite-plugin-no-bundle": "^4.0.0",
"vitest": "^2.0.5"
},
diff --git a/src/bundle/index.ts b/src/bundle/index.ts
index f4e2a54..f8b92ce 100644
--- a/src/bundle/index.ts
+++ b/src/bundle/index.ts
@@ -1,4 +1,4 @@
-/* eslint-disable eslint-plugin-simple-import-sort/exports */
+/* eslint-disable eslint-plugin-perfectionist/sort-exports */
export * as pdf from "swissqrbill:pdf";
export * as svg from "swissqrbill:svg";
export * as types from "swissqrbill:types";
diff --git a/src/pdf/table.ts b/src/pdf/table.ts
index ff41266..9ac1caf 100644
--- a/src/pdf/table.ts
+++ b/src/pdf/table.ts
@@ -26,7 +26,6 @@ export interface PDFTable {
/** Horizontal start position of the table. */
}
-
export interface PDFRow {
/** Table columns. */
columns: PDFColumn[];
diff --git a/src/shared/errors.test.ts b/src/shared/errors.test.ts
new file mode 100644
index 0000000..8715bcc
--- /dev/null
+++ b/src/shared/errors.test.ts
@@ -0,0 +1,15 @@
+import { describe, expect, it } from "vitest";
+
+import { getErrorCodeByMessage, ValidationErrors } from "swissqrbill:errors";
+import { } from "swissqrbill:shared:cleaner.js";
+
+
+describe("getErrorCodeByMessage", () => {
+
+ it("should return the correct error code", () => {
+ const key = "ACCOUNT_IS_QR_IBAN_BUT_REFERENCE_IS_MISSING";
+ expect(getErrorCodeByMessage(ValidationErrors[key])).toBe(key);
+ });
+
+
+});
diff --git a/src/shared/errors.ts b/src/shared/errors.ts
index 5cb8900..e763fa9 100644
--- a/src/shared/errors.ts
+++ b/src/shared/errors.ts
@@ -1,15 +1,33 @@
+/** A {@link ValidationError} is thrown when the data provided to swissqrbill is invalid. */
export class ValidationError extends Error {
- constructor(message: string, params?: { [name: string]: string; }) {
+
+ /** A stable error code that can be used to identify the error programmatically. */
+ public code: keyof typeof ValidationErrors;
+
+ /** @internal */
+ constructor(message: ValidationErrors, params?: { [name: string]: string; }) {
const messageWithParams = params
? resolveMessageParams(message, params)
: message;
super(messageWithParams);
+
this.name = "ValidationError";
+ this.code = getErrorCodeByMessage(message);
+
}
}
+/** @internal */
+export function getErrorCodeByMessage(message: string): keyof typeof ValidationErrors {
+ const errorCodes = Object.keys(ValidationErrors);
+ const errorCode = errorCodes.find(key => ValidationErrors[key] === message);
+
+ return errorCode as keyof typeof ValidationErrors;
+}
+
+/** @internal */
export function resolveMessageParams(message: string, params: { [name: string]: string; }): string {
return Object.entries(params).reduce((message, [key, value]) => {
return message.replace(`{${key}}`, value);
diff --git a/src/svg/character-width.ts b/src/svg/character-width.ts
index 6b07e58..4b7907f 100644
--- a/src/svg/character-width.ts
+++ b/src/svg/character-width.ts
@@ -384,7 +384,7 @@ export const arial10pt = {
99: 6.5
};
-export function calculateTextWidth(text: string, size: "8pt" | "10pt") {
+export function calculateTextWidth(text: string, size: "10pt" | "8pt") {
let width = 0;
if(size === "8pt"){
for(let c = 0; c < text.length; c++){
diff --git a/src/svg/swissqrbill.ts b/src/svg/swissqrbill.ts
index 3d12d4f..17e33c0 100644
--- a/src/svg/swissqrbill.ts
+++ b/src/svg/swissqrbill.ts
@@ -575,7 +575,7 @@ export class SwissQRBill {
}
- private _getLineCountOfText(text: string | undefined, lengthInPixel: number, size: "8pt" | "10pt") {
+ private _getLineCountOfText(text: string | undefined, lengthInPixel: number, size: "10pt" | "8pt") {
if(text === undefined){
return 0;
} else {
@@ -590,7 +590,7 @@ export class SwissQRBill {
}
- private _fitTextToWidth(text: string, lengthInPixel: number, maxLines: number, size: "8pt" | "10pt"): string[] {
+ private _fitTextToWidth(text: string, lengthInPixel: number, maxLines: number, size: "10pt" | "8pt"): string[] {
const remainder = text.split(/([ |-])/g);
let lines: string[] = [];
@@ -654,7 +654,7 @@ export class SwissQRBill {
}
- private _ellipsis(text: string, lengthInPixel: number, size: "8pt" | "10pt"): string {
+ private _ellipsis(text: string, lengthInPixel: number, size: "10pt" | "8pt"): string {
let result = "";
diff --git a/tests/integration/validation-error.test.ts b/tests/integration/validation-error.test.ts
new file mode 100644
index 0000000..f55b19d
--- /dev/null
+++ b/tests/integration/validation-error.test.ts
@@ -0,0 +1,29 @@
+import { describe, expect, it } from "vitest";
+
+import { ValidationError, ValidationErrors } from "swissqrbill:errors";
+import { cleanData } from "swissqrbill:shared:cleaner";
+import { validateData } from "swissqrbill:shared:validator";
+import { missingCreditor } from "swissqrbill:tests:data/invalid-data";
+import { getValidationError } from "swissqrbill:tests:utils/errors";
+
+
+describe("errors", () => {
+
+ it("should be of instance 'Error' and 'ValidationError'", async () => {
+ expect(getValidationError(() => validateData(cleanData(missingCreditor)))).toBeInstanceOf(Error);
+ expect(getValidationError(() => validateData(cleanData(missingCreditor)))).toBeInstanceOf(ValidationError);
+ });
+
+ it("should have an error code", async () => {
+ const code = "CREDITOR_IS_UNDEFINED";
+ expect(getValidationError(() => validateData(cleanData(missingCreditor)))?.code).toBeDefined();
+ expect(getValidationError(() => validateData(cleanData(missingCreditor)))?.code).toBe(code);
+ });
+
+ it("should have an error message", async () => {
+ const code = "CREDITOR_IS_UNDEFINED";
+ expect(getValidationError(() => validateData(cleanData(missingCreditor)))?.message).toBeDefined();
+ expect(getValidationError(() => validateData(cleanData(missingCreditor)))?.message).toBe(ValidationErrors[code]);
+ });
+
+});
diff --git a/tests/utils/errors.test.ts b/tests/utils/errors.test.ts
new file mode 100644
index 0000000..31afda6
--- /dev/null
+++ b/tests/utils/errors.test.ts
@@ -0,0 +1,15 @@
+import { describe, expect, it } from "vitest";
+
+import { ValidationError, ValidationErrors } from "swissqrbill:errors";
+
+import { getValidationError } from "./errors";
+
+
+describe("error", () => {
+
+ it("should return the caught error", () => {
+ expect(getValidationError(() => { throw new ValidationError(ValidationErrors.ACCOUNT_LENGTH_IS_INVALID); })).toBeInstanceOf(Error);
+ expect(getValidationError(() => { throw new ValidationError(ValidationErrors.ACCOUNT_LENGTH_IS_INVALID); })?.message).toBe(ValidationErrors.ACCOUNT_LENGTH_IS_INVALID);
+ });
+
+});
diff --git a/tests/utils/errors.ts b/tests/utils/errors.ts
new file mode 100644
index 0000000..e669f49
--- /dev/null
+++ b/tests/utils/errors.ts
@@ -0,0 +1,12 @@
+import { ValidationError } from "swissqrbill:errors";
+
+
+export function getValidationError(fn: (...params: unknown[]) => unknown): ValidationError | undefined {
+ try {
+ fn();
+ } catch (error){
+ if(error instanceof ValidationError){
+ return error;
+ }
+ }
+}
diff --git a/vite.config.cjs.ts b/vite.config.cjs.ts
index 47c4947..b812a64 100644
--- a/vite.config.cjs.ts
+++ b/vite.config.cjs.ts
@@ -1,9 +1,8 @@
+import { config, defineConfig } from "@schoero/configs/vite";
import { sync } from "glob";
import dts from "vite-plugin-dts";
import noBundlePlugin from "vite-plugin-no-bundle";
-import { config, defineConfig } from "@schoero/configs/vite";
-
import type { UserConfig } from "vite";
diff --git a/vite.config.ts b/vite.config.ts
index af781a1..2e0da63 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,9 +1,8 @@
+import { config, defineConfig } from "@schoero/configs/vite";
import { sync } from "glob";
import dts from "vite-plugin-dts";
import noBundlePlugin from "vite-plugin-no-bundle";
-import { config, defineConfig } from "@schoero/configs/vite";
-
import type { UserConfig } from "vite";