From 8e5f55fb716b627fa70b588157398ec465a3b3f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Tue, 14 Nov 2023 22:49:53 +0100 Subject: [PATCH 01/42] test: disable multi threading in debugger for a linear stack history --- .vscode/launch.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index e8ae7ea2..1544a737 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,7 +1,11 @@ { "configurations": [ { - "args": ["run", "${relativeFileDirname}/${fileBasenameNoExtension}"], + "args": [ + "run", + "${relativeFileDirname}/${fileBasenameNoExtension}", + "--no-threads" + ], "autoAttachChildProcesses": true, "console": "integratedTerminal", "name": "debug current test file", @@ -12,7 +16,11 @@ "type": "node" }, { - "args": ["run", "${relativeFileDirname}/${fileBasenameNoExtension}"], + "args": [ + "run", + "${relativeFileDirname}/${fileBasenameNoExtension}", + "--no-threads" + ], "autoAttachChildProcesses": true, "console": "integratedTerminal", "name": "debug current test file with node internals", From 60d03a49a1fa649c1bdc7e2ed303c78a61ff6ebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sat, 18 Nov 2023 21:28:29 +0100 Subject: [PATCH 02/42] refactor: browser api --- package-lock.json | 821 +++++++++++------- package.json | 25 +- src/api/browser.entry.ts | 14 +- src/compiler/browser.ts | 62 -- src/compiler/node.ts | 10 +- src/config/config.test.ts | 2 +- src/config/config.ts | 34 +- src/config/generator.entry.test.ts | 2 +- src/config/generator.entry.ts | 3 +- src/interpreter/ast/symbol.ts | 6 +- src/interpreter/utils/context.ts | 11 +- src/interpreter/utils/ts.ts | 6 +- src/platform/file-system/browser.ts | 31 - src/platform/file-system/node.ts | 2 +- src/platform/os/browser.ts | 2 +- src/platform/os/node.ts | 2 +- src/platform/path/browser.ts | 2 +- src/platform/path/node.ts | 2 +- src/platform/process/browser.ts | 2 +- src/platform/process/node.ts | 2 +- .../json/type-definitions/renderer.ts | 7 +- src/renderer/markup/registry/registry.ts | 2 +- .../markup/types-definitions/markup.ts | 27 +- src/renderer/markup/utils/file.test.ts | 2 +- src/renderer/markup/utils/file.ts | 2 +- src/renderer/utils/context.ts | 17 +- src/type-definitions/config.ts | 24 +- src/type-definitions/context.ts | 63 +- src/type-definitions/file-system.ts | 13 - src/type-definitions/logger.ts | 20 - src/type-definitions/options.ts | 2 - src/type-definitions/os.ts | 4 - src/type-definitions/path.ts | 23 - src/type-definitions/platform.ts | 75 ++ src/type-definitions/process.ts | 4 - src/type-definitions/renderer.ts | 2 +- src/type-definitions/utils.ts | 5 +- src/utils/context.ts | 9 +- src/utils/finder.test.ts | 2 +- src/utils/finder.ts | 4 +- tests/utils/compile.ts | 19 +- tests/utils/context.ts | 2 - .../utils}/virtual-fs.test.ts | 2 +- .../file-system => tests/utils}/virtual-fs.ts | 0 tsconfig.json | 5 +- vite.config.browser.ts | 39 + vite.config.ts | 10 +- 47 files changed, 834 insertions(+), 591 deletions(-) delete mode 100644 src/compiler/browser.ts delete mode 100644 src/platform/file-system/browser.ts delete mode 100644 src/type-definitions/file-system.ts delete mode 100644 src/type-definitions/logger.ts delete mode 100644 src/type-definitions/os.ts delete mode 100644 src/type-definitions/path.ts create mode 100644 src/type-definitions/platform.ts delete mode 100644 src/type-definitions/process.ts rename {src/platform/file-system => tests/utils}/virtual-fs.test.ts (98%) rename {src/platform/file-system => tests/utils}/virtual-fs.ts (100%) create mode 100644 vite.config.browser.ts diff --git a/package-lock.json b/package-lock.json index c4b9b0dc..c3c8a620 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "unwritten", - "version": "0.2.5", + "version": "0.2.8-beta.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "unwritten", - "version": "0.2.5", + "version": "0.2.8-beta.5", "license": "MIT", "dependencies": { "cac": "^6.7.14", @@ -14,21 +14,22 @@ "typescript": "^5.2.2" }, "bin": { - "unwritten": "lib/bin/index.js" + "unwritten": "lib/node/bin/index.js" }, "devDependencies": { - "@schoero/changelog-config": "^0.0.2", - "@schoero/cspell-config": "^1.8.2", + "@schoero/changelog-config": "^0.0.3", + "@schoero/cspell-config": "^1.9.0", "@schoero/eslint-config": "^1.42.0", "@schoero/markdownlint-config": "^1.1.7", "@schoero/ts-config": "^0.3.7", "@schoero/vite-config": "^0.0.28", "@types/minimatch": "^5.1.2", - "@types/node": "^20.8.10", + "@types/node": "^20.9.1", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", "ts-json-schema-generator": "^1.4.0", + "vite": "^5.0.0", "vite-plugin-dts": "^3.6.3", "vite-plugin-no-bundle": "^3.0.0", "vitest": "^0.34.6" @@ -198,9 +199,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -210,17 +211,17 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-7.3.8.tgz", - "integrity": "sha512-Dj8iSGQyfgIsCjmXk9D/SjV7EpbpQSogeaGcBM66H33pd0GyGmLhn3biRN+vqi/vqWmsp75rT3kd5MKa8X5W9Q==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-7.3.9.tgz", + "integrity": "sha512-ebfrf5Zaw33bcqT80Qrkv7IGT7GI/CDp15bSk2EUmdORzk1SCKZl6L4vUo3NLMmxVwYioS+OQmsW8E88sJNyGg==", "dev": true, "peer": true, "dependencies": { "@cspell/dict-ada": "^4.0.2", "@cspell/dict-aws": "^4.0.0", "@cspell/dict-bash": "^4.1.2", - "@cspell/dict-companies": "^3.0.26", - "@cspell/dict-cpp": "^5.0.8", + "@cspell/dict-companies": "^3.0.27", + "@cspell/dict-cpp": "^5.0.9", "@cspell/dict-cryptocurrencies": "^4.0.0", "@cspell/dict-csharp": "^4.0.2", "@cspell/dict-css": "^4.0.12", @@ -229,35 +230,36 @@ "@cspell/dict-docker": "^1.1.7", "@cspell/dict-dotnet": "^5.0.0", "@cspell/dict-elixir": "^4.0.3", - "@cspell/dict-en_us": "^4.3.9", + "@cspell/dict-en_us": "^4.3.11", "@cspell/dict-en-common-misspellings": "^1.0.2", "@cspell/dict-en-gb": "1.1.33", - "@cspell/dict-filetypes": "^3.0.1", + "@cspell/dict-filetypes": "^3.0.2", "@cspell/dict-fonts": "^4.0.0", - "@cspell/dict-fsharp": "^1.0.0", + "@cspell/dict-fsharp": "^1.0.1", "@cspell/dict-fullstack": "^3.1.5", "@cspell/dict-gaming-terms": "^1.0.4", "@cspell/dict-git": "^2.0.0", - "@cspell/dict-golang": "^6.0.3", + "@cspell/dict-golang": "^6.0.4", "@cspell/dict-haskell": "^4.0.1", "@cspell/dict-html": "^4.0.5", "@cspell/dict-html-symbol-entities": "^4.0.0", "@cspell/dict-java": "^5.0.6", - "@cspell/dict-k8s": "^1.0.1", + "@cspell/dict-k8s": "^1.0.2", "@cspell/dict-latex": "^4.0.0", "@cspell/dict-lorem-ipsum": "^4.0.0", "@cspell/dict-lua": "^4.0.2", + "@cspell/dict-makefile": "^1.0.0", "@cspell/dict-node": "^4.0.3", "@cspell/dict-npm": "^5.0.12", - "@cspell/dict-php": "^4.0.3", + "@cspell/dict-php": "^4.0.4", "@cspell/dict-powershell": "^5.0.2", "@cspell/dict-public-licenses": "^2.0.5", - "@cspell/dict-python": "^4.1.9", + "@cspell/dict-python": "^4.1.10", "@cspell/dict-r": "^2.0.1", "@cspell/dict-ruby": "^5.0.1", "@cspell/dict-rust": "^4.0.1", "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.3.6", + "@cspell/dict-software-terms": "^3.3.9", "@cspell/dict-sql": "^2.1.2", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", @@ -269,22 +271,22 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-7.3.8.tgz", - "integrity": "sha512-FxYJWtDgxIQYxdP0RWwRV8nzLfxVx8D8D5L2sbbP/0NFczDbq/zWYep4nSAHJT10aUJrogsVUYwNwdkr562wKA==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-7.3.9.tgz", + "integrity": "sha512-QHsem5OZXshFX+Wdlx3VpdPi9WS7KgoBMGGJ4zQZ3lp81Rb1tRj0Ij/98whq882QOmAVQfr+uOHANHLnyPr0LQ==", "dev": true, "peer": true, "dependencies": { - "@cspell/cspell-types": "7.3.8" + "@cspell/cspell-types": "7.3.9" }, "engines": { "node": ">=16" } }, "node_modules/@cspell/cspell-pipe": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-7.3.8.tgz", - "integrity": "sha512-/vKPfiHM5bJUkNX12w9j533Lm2JvvSMKUCChM2AxYjy6vL8prc/7ei++4g2xAWwRxLZPg2OfpDJS5EirZNBJdA==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-7.3.9.tgz", + "integrity": "sha512-gKYTHcryKOaTmr6t+M5h1sZnQ42eHeumBJejovphipXfdivedUnuYyQrrQGFAlUKzfEOWcOPME1nm17xsaX5Ww==", "dev": true, "peer": true, "engines": { @@ -292,9 +294,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-7.3.8.tgz", - "integrity": "sha512-CeyQmhqZI5a+T7a6oiVN90TFlzU3qVVYqCaZ9grFrVOsmzY9ipH5gmqfgMavaBOqb0di/+VZS8d02suMOXcKLQ==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-7.3.9.tgz", + "integrity": "sha512-2slYAGvi7EFLKyJ5hrYBNaFT2iyOEQM1pEIzm+PDuhNJE/9wuBY5pBVqIgFSPz53vsQvW9GJThNY8h1/2EH3ZA==", "dev": true, "peer": true, "dependencies": { @@ -305,9 +307,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-7.3.8.tgz", - "integrity": "sha512-3E7gwY6QILrZH83p69i9CERbRBEqeBiKCIKnAd7U2PbxfFqG/P47fqpnarzSWFwFpU92oyGsYry+wC8TEGISRQ==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-7.3.9.tgz", + "integrity": "sha512-VyfK3qWtJZag4Fe/x1Oh/tqCNVGKGlQ2ArX1fVdmTVGQtZcbXuMKdZI80t4b8SGtzGINHufAdakpu3xucX/FrQ==", "dev": true, "peer": true, "engines": { @@ -315,9 +317,9 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-7.3.8.tgz", - "integrity": "sha512-hsOtaULDnawEL4pU0fga941GhvE8mbTbywrJBx+eGX3fnJsaUr8XQzCtnLsW2ko7WCLWFItNEhSSTPQHBFRLsw==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-7.3.9.tgz", + "integrity": "sha512-p7s8yEV6ASz0HjiArH11yjNj3vXzK2Ep94GrpdtYJxSxFC2w1mXAVUaJB/5+jC4+1YeYsmcBFTXmZ1rGMyTv3g==", "dev": true, "peer": true, "engines": { @@ -555,6 +557,13 @@ "dev": true, "peer": true }, + "node_modules/@cspell/dict-makefile": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-makefile/-/dict-makefile-1.0.0.tgz", + "integrity": "sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==", + "dev": true, + "peer": true + }, "node_modules/@cspell/dict-markdown": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.1.tgz", @@ -678,22 +687,22 @@ "peer": true }, "node_modules/@cspell/dynamic-import": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-7.3.8.tgz", - "integrity": "sha512-s8x7dH/ScfW0pFEIvNFo4JOR7YmvM2wZSHOykmWTJCQ8k2EQ/+uECPp6ZxkoJoukTz8sj+3KzF0fRl5mKxPd6g==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-7.3.9.tgz", + "integrity": "sha512-P6tAmDVhrW03hmhetxhBKlNTYwL2lk8ZehYQwSpXaLnaFrS3xrQvfUaJ3Mj9W2CIMzSYXlLmPO2FLRhXK2dnEw==", "dev": true, "peer": true, "dependencies": { - "import-meta-resolve": "^3.0.0" + "import-meta-resolve": "^3.1.1" }, "engines": { "node": ">=16" } }, "node_modules/@cspell/strong-weak-map": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-7.3.8.tgz", - "integrity": "sha512-qNnt2wG45wb8JP54mENarnQgxfSYKPp3zlYID/2przbMNmVJRqUlcIBOdLI6plCgGeNkzJTl3T9T1ATbnN+LLw==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-7.3.9.tgz", + "integrity": "sha512-XKpw/p3+EN+PWiFAWc45RJPI9zQRkPSVdUFeZb0YLseWF/CkogScgIe4CLfMLITiVbP0X/FKk90+aTPfAU38kg==", "dev": true, "peer": true, "engines": { @@ -701,13 +710,13 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", - "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==", + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", + "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", "dev": true, "peer": true, "dependencies": { - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, @@ -716,9 +725,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", "cpu": [ "arm" ], @@ -732,9 +741,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", "cpu": [ "arm64" ], @@ -748,9 +757,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", "cpu": [ "x64" ], @@ -764,9 +773,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", "cpu": [ "arm64" ], @@ -780,9 +789,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", "cpu": [ "x64" ], @@ -796,9 +805,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", "cpu": [ "arm64" ], @@ -812,9 +821,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", "cpu": [ "x64" ], @@ -828,9 +837,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", "cpu": [ "arm" ], @@ -844,9 +853,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", "cpu": [ "arm64" ], @@ -860,9 +869,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", "cpu": [ "ia32" ], @@ -876,9 +885,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", "cpu": [ "loong64" ], @@ -892,9 +901,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", "cpu": [ "mips64el" ], @@ -908,9 +917,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", "cpu": [ "ppc64" ], @@ -924,9 +933,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", "cpu": [ "riscv64" ], @@ -940,9 +949,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", "cpu": [ "s390x" ], @@ -956,9 +965,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", "cpu": [ "x64" ], @@ -972,9 +981,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", "cpu": [ "x64" ], @@ -988,9 +997,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", "cpu": [ "x64" ], @@ -1004,9 +1013,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", "cpu": [ "x64" ], @@ -1020,9 +1029,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", "cpu": [ "arm64" ], @@ -1036,9 +1045,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", "cpu": [ "ia32" ], @@ -1052,9 +1061,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", "cpu": [ "x64" ], @@ -1142,9 +1151,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", "dev": true, "peer": true, "engines": { @@ -1152,9 +1161,9 @@ } }, "node_modules/@fastify/busboy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", - "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", "dev": true, "peer": true, "engines": { @@ -1286,9 +1295,9 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.38.2", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.2.tgz", - "integrity": "sha512-JOARuhTwOcOMIU0O2czscoJy3ddVzIRhSA9/7T1ALuZSNphgWsPk+Bv4E7AnBDmTV4pP4lBNLtCxEHjjpWaytQ==", + "version": "7.38.3", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.3.tgz", + "integrity": "sha512-xt9iYyC5f39281j77JTA9C3ISJpW1XWkCcnw+2vM78CPnro6KhPfwQdPDfwS5JCPNuq0grm8cMdPUOPvrchDWw==", "dev": true, "dependencies": { "@microsoft/api-extractor-model": "7.28.2", @@ -1420,6 +1429,162 @@ } } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.1.tgz", + "integrity": "sha512-Ss4suS/sd+6xLRu+MLCkED2mUrAyqHmmvZB+zpzZ9Znn9S8wCkTQCJaQ8P8aHofnvG5L16u9MVnJjCqioPErwQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.1.tgz", + "integrity": "sha512-sRSkGTvGsARwWd7TzC8LKRf8FiPn7257vd/edzmvG4RIr9x68KBN0/Ek48CkuUJ5Pj/Dp9vKWv6PEupjKWjTYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.1.tgz", + "integrity": "sha512-nz0AiGrrXyaWpsmBXUGOBiRDU0wyfSXbFuF98pPvIO8O6auQsPG6riWsfQqmCCC5FNd8zKQ4JhgugRNAkBJ8mQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.1.tgz", + "integrity": "sha512-Ogqvf4/Ve/faMaiPRvzsJEqajbqs00LO+8vtrPBVvLgdw4wBg6ZDXdkDAZO+4MLnrc8mhGV6VJAzYScZdPLtJg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.1.tgz", + "integrity": "sha512-9zc2tqlr6HfO+hx9+wktUlWTRdje7Ub15iJqKcqg5uJZ+iKqmd2CMxlgPpXi7+bU7bjfDIuvCvnGk7wewFEhCg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.1.tgz", + "integrity": "sha512-phLb1fN3rq2o1j1v+nKxXUTSJnAhzhU0hLrl7Qzb0fLpwkGMHDem+o6d+ZI8+/BlTXfMU4kVWGvy6g9k/B8L6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.1.tgz", + "integrity": "sha512-M2sDtw4tf57VPSjbTAN/lz1doWUqO2CbQuX3L9K6GWIR5uw9j+ROKCvvUNBY8WUbMxwaoc8mH9HmmBKsLht7+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.1.tgz", + "integrity": "sha512-mHIlRLX+hx+30cD6c4BaBOsSqdnCE4ok7/KDvjHYAHoSuveoMMxIisZFvcLhUnyZcPBXDGZTuBoalcuh43UfQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.1.tgz", + "integrity": "sha512-tB+RZuDi3zxFx7vDrjTNGVLu2KNyzYv+UY8jz7e4TMEoAj7iEt8Qk6xVu6mo3pgjnsHj6jnq3uuRsHp97DLwOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.1.tgz", + "integrity": "sha512-Hdn39PzOQowK/HZzYpCuZdJC91PE6EaGbTe2VCA9oq2u18evkisQfws0Smh9QQGNNRa/T7MOuGNQoLeXhhE3PQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.1.tgz", + "integrity": "sha512-tLpKb1Elm9fM8c5w3nl4N1eLTP4bCqTYw9tqUBxX8/hsxqHO3dxc2qPbZ9PNkdK4tg4iLEYn0pOUnVByRd2CbA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.1.tgz", + "integrity": "sha512-eAhItDX9yQtZVM3yvXS/VR3qPqcnXvnLyx1pLXl4JzyNMBNO3KC986t/iAg2zcMzpAp9JSvxB5VZGnBiNoA98w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rushstack/node-core-library": { "version": "3.61.0", "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.61.0.tgz", @@ -1475,18 +1640,18 @@ } }, "node_modules/@schoero/changelog-config": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@schoero/changelog-config/-/changelog-config-0.0.2.tgz", - "integrity": "sha512-nYqUfJmNkHWxz8l+8rMc7zBnZjwERT0I2/qd5XM82eECDqRLWhv05giBX9g8iLiH5PXYAJhlpq7koxOFjy/p6A==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@schoero/changelog-config/-/changelog-config-0.0.3.tgz", + "integrity": "sha512-Zly0rLXnHfGCPDjX+QsF8LBymIvcCHY3gtxz9CYjR1nA59vD8AHvqvIhTeSfdC+cG02Hka3s2vxZTlnJuk1l+Q==", "dev": true, "peerDependencies": { "changelogen": "^0.5.3" } }, "node_modules/@schoero/cspell-config": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@schoero/cspell-config/-/cspell-config-1.8.2.tgz", - "integrity": "sha512-VKorG4yO5K8V1z5pOR5f80e//KK5ayurVY4JslNcg5uMyNNGp0/bnAf6cVwfqOuv5BpA0gXf1M69+CZAGCFe9A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@schoero/cspell-config/-/cspell-config-1.9.0.tgz", + "integrity": "sha512-yOMNT1bITWUNRP2zhdlrRJZn/d9k8lc+3OmAI+cP4eaQizgNwdn4ShSE4ncW1YIE/W78SiCGspzwgzmqbsmO8A==", "dev": true, "peerDependencies": { "@cspell/dict-bash": "^4.1.2", @@ -1574,36 +1739,36 @@ "dev": true }, "node_modules/@types/chai": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.9.tgz", - "integrity": "sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==", "dev": true }, "node_modules/@types/chai-subset": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.4.tgz", - "integrity": "sha512-CCWNXrJYSUIojZ1149ksLl3AN9cmZ5djf+yUoVVV+NuYrtydItQVlL2ZDqyC6M6O9LWRnVf8yYDxbXHO2TfQZg==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", + "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", "dev": true, "dependencies": { "@types/chai": "*" } }, "node_modules/@types/estree": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", - "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/mdast": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.14.tgz", - "integrity": "sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw==", + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dev": true, "peer": true, "dependencies": { @@ -1617,47 +1782,47 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "version": "20.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.1.tgz", + "integrity": "sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/normalize-package-data": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz", - "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true, "peer": true }, "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", + "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", "dev": true, "peer": true }, "node_modules/@types/unist": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.9.tgz", - "integrity": "sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", "dev": true, "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", - "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", + "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", "dev": true, "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/type-utils": "6.10.0", - "@typescript-eslint/utils": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/type-utils": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1832,16 +1997,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", - "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", + "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4" }, "engines": { @@ -1861,14 +2026,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", - "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0" + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1879,14 +2044,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", - "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", + "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/utils": "6.11.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1907,9 +2072,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", "dev": true, "peer": true, "engines": { @@ -1921,14 +2086,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", - "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1949,18 +2114,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", - "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", "semver": "^7.5.4" }, "engines": { @@ -1975,13 +2140,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/types": "6.11.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -2739,9 +2904,9 @@ } }, "node_modules/comment-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz", - "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "peer": true, "engines": { @@ -2863,24 +3028,24 @@ } }, "node_modules/cspell": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-7.3.8.tgz", - "integrity": "sha512-8AkqsBQAMsKYV5XyJLB6rBs5hgspL4+MPOg6mBKG2j5EvQgRVc6dIfAPWDNLpIeW2a3+7K5BIWqKHapKPeiknQ==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-7.3.9.tgz", + "integrity": "sha512-QzunjO9CmV5+98UfG4ONhvPtrcAC6Y2pEKeOrp5oPeyAI7HwgxmfsR3ybHRlMPAGcwKtDOurBKxM7jqXNwkzmA==", "dev": true, "peer": true, "dependencies": { - "@cspell/cspell-json-reporter": "7.3.8", - "@cspell/cspell-pipe": "7.3.8", - "@cspell/cspell-types": "7.3.8", - "@cspell/dynamic-import": "7.3.8", + "@cspell/cspell-json-reporter": "7.3.9", + "@cspell/cspell-pipe": "7.3.9", + "@cspell/cspell-types": "7.3.9", + "@cspell/dynamic-import": "7.3.9", "chalk": "^5.3.0", "chalk-template": "^1.1.0", "commander": "^11.1.0", - "cspell-gitignore": "7.3.8", - "cspell-glob": "7.3.8", - "cspell-io": "7.3.8", - "cspell-lib": "7.3.8", - "fast-glob": "^3.3.1", + "cspell-gitignore": "7.3.9", + "cspell-glob": "7.3.9", + "cspell-io": "7.3.9", + "cspell-lib": "7.3.9", + "fast-glob": "^3.3.2", "fast-json-stable-stringify": "^2.1.0", "file-entry-cache": "^7.0.1", "get-stdin": "^9.0.0", @@ -2900,15 +3065,15 @@ } }, "node_modules/cspell-dictionary": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-7.3.8.tgz", - "integrity": "sha512-gkq4t78eLR0xC3P0vDDHPeNY4iZRd5YE6Z8uDJ7RM4UaX/TSdVUN9KNFr34RnJ119NYVHujpL9+uW7wPSAe8Eg==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-7.3.9.tgz", + "integrity": "sha512-lkWfX5QNbs4yKqD9wa+G+NHRWmLgFdyposgJOyd/ojDbx99CDPMhMhg9pyMKdYl6Yt8kjMow58/i12EYvD8wnA==", "dev": true, "peer": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.8", - "@cspell/cspell-types": "7.3.8", - "cspell-trie-lib": "7.3.8", + "@cspell/cspell-pipe": "7.3.9", + "@cspell/cspell-types": "7.3.9", + "cspell-trie-lib": "7.3.9", "fast-equals": "^4.0.3", "gensequence": "^6.0.0" }, @@ -2924,13 +3089,13 @@ "peer": true }, "node_modules/cspell-gitignore": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-7.3.8.tgz", - "integrity": "sha512-vJzCOUEiw6/MwV/U4Ux3bgSdj9mXB+X5eHL+qzVoyFI7ArlvrkuGTL+iFJThQcS8McM3SGqtvaBNCiKBmAeCkA==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-7.3.9.tgz", + "integrity": "sha512-DLuu+K2q4xYNL4DpLyysUeiGU/NYYoObzfOYiISzOKYpi3aFLiUaiyfF6xWGsahmlijif+8bwSsIMmcvGa5dgA==", "dev": true, "peer": true, "dependencies": { - "cspell-glob": "7.3.8", + "cspell-glob": "7.3.9", "find-up": "^5.0.0" }, "bin": { @@ -2941,9 +3106,9 @@ } }, "node_modules/cspell-glob": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-7.3.8.tgz", - "integrity": "sha512-wUZC6znyxEs0wlhzGfZ4XHkATPJyazJIFi/VvAdj+KHe7U8SoSgitJVDQqdgectI2y3MxR7lQdVLX9dONFh+7A==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-7.3.9.tgz", + "integrity": "sha512-7PaTkCzJWjQex3men857v3ExF7Q10jbQkfD+wdln2te9iNFd+HEkstA173vb828D9yeib1q1of8oONr2SeGycg==", "dev": true, "peer": true, "dependencies": { @@ -2954,14 +3119,14 @@ } }, "node_modules/cspell-grammar": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-7.3.8.tgz", - "integrity": "sha512-nTjAlMAZAVSFhBd9U3MB9l5FfC5JCCr9DTOA2wWxusVOm+36MbSEH90ucLPkhPa9/+0HtbpDhqVMwXCZllRpsg==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-7.3.9.tgz", + "integrity": "sha512-s1QOPg4AxWE8XBewDQLe14j0uDyWGjREfm4dZFTrslAZUrQ8/df5s152M5LtgOEza33FrkKKE2axbGvgS9O7sQ==", "dev": true, "peer": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.8", - "@cspell/cspell-types": "7.3.8" + "@cspell/cspell-pipe": "7.3.9", + "@cspell/cspell-types": "7.3.9" }, "bin": { "cspell-grammar": "bin.mjs" @@ -2971,13 +3136,13 @@ } }, "node_modules/cspell-io": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-7.3.8.tgz", - "integrity": "sha512-XrxPbaiek7EZh+26k9RYVz2wKclaMqM6mXBiu/kpFAHRHHfz91ado6xWvyxZ7UAxQ8ixEwZ+oz9TU+k21gHzyw==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-7.3.9.tgz", + "integrity": "sha512-IbXOYaDxLg94uijv13kqb+6PQjEwGboQYtABuZs2+HuUVW89K2tE+fQcEhkAsrZ11sDj5lUqgEQj9omvknZSuA==", "dev": true, "peer": true, "dependencies": { - "@cspell/cspell-service-bus": "7.3.8", + "@cspell/cspell-service-bus": "7.3.9", "node-fetch": "^2.7.0" }, "engines": { @@ -2985,27 +3150,27 @@ } }, "node_modules/cspell-lib": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-7.3.8.tgz", - "integrity": "sha512-2L770sI5DdsAKVzO3jxmfP2fz4LryW6dzL93BpN7WU+ebFC6rg4ioa5liOJV4WoDo2fNQMSeqfW4Aawu9zWR7A==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-7.3.9.tgz", + "integrity": "sha512-eFYYs8XoYmdu78UxrPisD+hAoXOLaLzcevKf9+oDPDgJmHpkGoFgbIBnHMRIsAM1e+QDS6OlWG/rybhZTqanCQ==", "dev": true, "peer": true, "dependencies": { - "@cspell/cspell-bundled-dicts": "7.3.8", - "@cspell/cspell-pipe": "7.3.8", - "@cspell/cspell-resolver": "7.3.8", - "@cspell/cspell-types": "7.3.8", - "@cspell/dynamic-import": "7.3.8", - "@cspell/strong-weak-map": "7.3.8", + "@cspell/cspell-bundled-dicts": "7.3.9", + "@cspell/cspell-pipe": "7.3.9", + "@cspell/cspell-resolver": "7.3.9", + "@cspell/cspell-types": "7.3.9", + "@cspell/dynamic-import": "7.3.9", + "@cspell/strong-weak-map": "7.3.9", "clear-module": "^4.1.2", "comment-json": "^4.2.3", "configstore": "^6.0.0", "cosmiconfig": "8.0.0", - "cspell-dictionary": "7.3.8", - "cspell-glob": "7.3.8", - "cspell-grammar": "7.3.8", - "cspell-io": "7.3.8", - "cspell-trie-lib": "7.3.8", + "cspell-dictionary": "7.3.9", + "cspell-glob": "7.3.9", + "cspell-grammar": "7.3.9", + "cspell-io": "7.3.9", + "cspell-trie-lib": "7.3.9", "fast-equals": "^5.0.1", "find-up": "^6.3.0", "gensequence": "^6.0.0", @@ -3107,14 +3272,14 @@ } }, "node_modules/cspell-trie-lib": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-7.3.8.tgz", - "integrity": "sha512-UQx1Bazbyz2eQJ/EnMohINnUdZvAQL+OcQU3EPPbNWM1DWF4bJGgmFXKNCRYfJk6wtOZVXG5g5AZXx9KnHeN9A==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-7.3.9.tgz", + "integrity": "sha512-aTWm2KYXjQ+MlM6kB37wmTV9RU8+fgZYkiFfMc48M0MhBc6XkHUibMGrFAS29gp+B70kWPxe+VHLmFIk9pRPyg==", "dev": true, "peer": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.8", - "@cspell/cspell-types": "7.3.8", + "@cspell/cspell-pipe": "7.3.9", + "@cspell/cspell-types": "7.3.9", "gensequence": "^6.0.0" }, "engines": { @@ -3385,9 +3550,9 @@ } }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", "dev": true, "hasInstallScript": true, "bin": { @@ -3397,28 +3562,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" } }, "node_modules/escape-string-regexp": { @@ -3435,16 +3600,16 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", + "@eslint/js": "8.54.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3645,15 +3810,15 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.8.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz", - "integrity": "sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==", + "version": "46.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz", + "integrity": "sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==", "dev": true, "peer": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.40.1", + "@es-joy/jsdoccomment": "~0.41.0", "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", @@ -4242,13 +4407,13 @@ } }, "node_modules/file-entry-cache": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz", - "integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", + "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", "dev": true, "peer": true, "dependencies": { - "flat-cache": "^3.1.1" + "flat-cache": "^3.2.0" }, "engines": { "node": ">=12.0.0" @@ -4293,9 +4458,9 @@ } }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "peer": true, "dependencies": { @@ -4304,7 +4469,7 @@ "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { @@ -4657,9 +4822,9 @@ } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "peer": true, "engines": { @@ -6507,18 +6672,30 @@ } }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.4.1.tgz", + "integrity": "sha512-idZzrUpWSblPJX66i+GzrpjKE3vbYrlWirUHteoAbjKReZwa0cohAErOYA5efoMmNCdvG9yrJS+w9Kl6csaH4w==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.4.1", + "@rollup/rollup-android-arm64": "4.4.1", + "@rollup/rollup-darwin-arm64": "4.4.1", + "@rollup/rollup-darwin-x64": "4.4.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.4.1", + "@rollup/rollup-linux-arm64-gnu": "4.4.1", + "@rollup/rollup-linux-arm64-musl": "4.4.1", + "@rollup/rollup-linux-x64-gnu": "4.4.1", + "@rollup/rollup-linux-x64-musl": "4.4.1", + "@rollup/rollup-win32-arm64-msvc": "4.4.1", + "@rollup/rollup-win32-ia32-msvc": "4.4.1", + "@rollup/rollup-win32-x64-msvc": "4.4.1", "fsevents": "~2.3.2" } }, @@ -6686,9 +6863,9 @@ } }, "node_modules/scule": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/scule/-/scule-1.0.0.tgz", - "integrity": "sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.1.0.tgz", + "integrity": "sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g==", "dev": true }, "node_modules/semver": { @@ -6829,9 +7006,9 @@ "dev": true }, "node_modules/std-env": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz", - "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", + "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", "dev": true }, "node_modules/string-argv": { @@ -7355,9 +7532,9 @@ "peer": true }, "node_modules/ufo": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.1.tgz", - "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", "dev": true }, "node_modules/undici": { @@ -7474,29 +7651,29 @@ } }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.0.tgz", + "integrity": "sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==", "dev": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.19.3", + "postcss": "^8.4.31", + "rollup": "^4.2.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", diff --git a/package.json b/package.json index 3cdc9282..0360c86e 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "0.2.7", + "version": "0.2.8-beta.5", "type": "module", "name": "unwritten", "description": "unwritten is a cli tool that auto generates documentation from your JavaScript or TypeScript project by utilizing TSDoc or JSDoc comments.", @@ -13,12 +13,18 @@ "bugs": { "url": "https://github.com/schoero/unwritten/issues" }, - "main": "./lib/api/node.entry.js", - "browser": "./lib/api/browser.entry.js", - "bin": "./lib/bin/index.js", + "sideEffects": false, + "exports": { + ".": "./lib/browser/api/node.entry.js", + "./custom": "./lib/node/api/custom.entry.js", + "./node": "./lib/node/api/node.entry.js" + }, + "bin": "./lib/node/bin/index.js", "scripts": { - "build": "vite build", - "build:dev": "vite build", + "build": "npm run build:browser && npm run build:node", + "build:browser": "vite build --config vite.config.browser.ts", + "build:dev": "npm run build:browser && npm run build:node", + "build:node": "vite build", "eslint": "eslint --ext .ts,.tsx,.js,.jsx,.json,.jsonc,.yml,.md ./", "eslint:ci": "npm run eslint -- --max-warnings 0", "eslint:fix": "npm run eslint -- --fix", @@ -61,18 +67,19 @@ "typescript": "^5.2.2" }, "devDependencies": { - "@schoero/changelog-config": "^0.0.2", - "@schoero/cspell-config": "^1.8.2", + "@schoero/changelog-config": "^0.0.3", + "@schoero/cspell-config": "^1.9.0", "@schoero/eslint-config": "^1.42.0", "@schoero/markdownlint-config": "^1.1.7", "@schoero/ts-config": "^0.3.7", "@schoero/vite-config": "^0.0.28", "@types/minimatch": "^5.1.2", - "@types/node": "^20.8.10", + "@types/node": "^20.9.1", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", "ts-json-schema-generator": "^1.4.0", + "vite": "^5.0.0", "vite-plugin-dts": "^3.6.3", "vite-plugin-no-bundle": "^3.0.0", "vitest": "^0.34.6" diff --git a/src/api/browser.entry.ts b/src/api/browser.entry.ts index 04d6537e..bc2cde4f 100644 --- a/src/api/browser.entry.ts +++ b/src/api/browser.entry.ts @@ -1,11 +1,10 @@ import ts from "typescript"; -import { compile } from "unwritten:compiler:browser"; +import { reportCompilerDiagnostics } from "unwritten:compiler/shared"; import { createConfig } from "unwritten:config/config"; import { interpret } from "unwritten:interpreter/ast/symbol"; import { createContext as createInterpreterContext } from "unwritten:interpreter:utils/context"; import { getEntryFileSymbolsFromProgram } from "unwritten:interpreter:utils/ts"; -import fs from "unwritten:platform/file-system/browser"; import os from "unwritten:platform/os/browser"; import path from "unwritten:platform/path/browser"; import process from "unwritten:platform/process/browser"; @@ -13,25 +12,28 @@ import { getRenderer } from "unwritten:renderer:index"; import { createContext as createRenderContext } from "unwritten:renderer:utils/context"; import { createContext as createDefaultContext } from "unwritten:utils:context"; +import type { Program } from "typescript"; + import type { BrowserAPIOptions } from "unwritten:type-definitions/options"; import type { RenderOutput } from "unwritten:type-definitions/renderer"; -export async function unwritten(code: string, options?: BrowserAPIOptions): Promise { +export async function unwritten(program: Program, options?: BrowserAPIOptions): Promise { // Dependencies const { logger } = options?.silent ? { logger: undefined } : await import("unwritten:platform/logger/browser.js"); const defaultContext = createDefaultContext({ - fs, logger, os, path, process, ts - }); + } as const); // Compile - const { checker, program } = compile(defaultContext, code, options?.tsconfig); + const checker = program.getTypeChecker(); + const diagnostics = program.getSemanticDiagnostics(); + void reportCompilerDiagnostics(defaultContext, diagnostics); // Parse const config = await createConfig(defaultContext, options?.config); diff --git a/src/compiler/browser.ts b/src/compiler/browser.ts deleted file mode 100644 index 923eb2e1..00000000 --- a/src/compiler/browser.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { reportCompilerDiagnostics } from "unwritten:compiler/shared"; - -import type { CompilerHost, CompilerOptions } from "typescript"; - -import type { DefaultContext } from "unwritten:type-definitions/context"; - - -export function compile(ctx: DefaultContext, code: string, tsconfig?: CompilerOptions) { - - const ts = ctx.dependencies.ts; - const logger = ctx.dependencies.logger; - const { lineEndings } = ctx.dependencies.os; - - logger?.info("Invoking the TypeScript compiler to compile the provided code..."); - - const compilerOptions = getCompilerOptions(ctx, tsconfig); - const dummyFilePath = "/index.ts"; - const sourceFile = ts.createSourceFile(dummyFilePath, code.trim(), ts.ScriptTarget.Latest); - - const compilerHost: CompilerHost = { - directoryExists: dirPath => dirPath === "/", - fileExists: filePath => filePath === dummyFilePath, - getCanonicalFileName: fileName => fileName, - getCurrentDirectory: () => "/", - getDefaultLibFileName: () => "node_modules/typescript/lib/lib.esnext.d.ts", - getDirectories: () => [], - getNewLine: () => lineEndings, - getSourceFile: filePath => - filePath === dummyFilePath - ? sourceFile - : undefined, - readFile: filePath => filePath === dummyFilePath ? code : undefined, - useCaseSensitiveFileNames: () => true, - writeFile: () => {} - }; - - const program = ts.createProgram({ - host: compilerHost, - options: compilerOptions, - rootNames: [dummyFilePath] - }); - - const checker = program.getTypeChecker(); - - - // Report any compiler messages - void reportCompilerDiagnostics(ctx, program.getSemanticDiagnostics()); - - return { checker, program }; - -} - -function getCompilerOptions(ctx: DefaultContext, tsconfig?: CompilerOptions): CompilerOptions { - - const { ts } = ctx.dependencies; - const { errors, options } = ts.convertCompilerOptionsFromJson(tsconfig, "."); - - void reportCompilerDiagnostics(ctx, errors); - - return options;// ?? getDefaultCompilerOptions(); - -} diff --git a/src/compiler/node.ts b/src/compiler/node.ts index ccb7a1c6..d2673fab 100644 --- a/src/compiler/node.ts +++ b/src/compiler/node.ts @@ -3,10 +3,10 @@ import { findFile } from "unwritten:utils:finder"; import type { CompilerOptions } from "typescript"; -import type { DefaultContext } from "unwritten:type-definitions/context"; +import type { DefaultNodeContext } from "unwritten:type-definitions/context"; -export function compile(ctx: DefaultContext, entryFilePaths: string[], tsConfigOrFilePath?: CompilerOptions | string) { +export function compile(ctx: DefaultNodeContext, entryFilePaths: string[], tsConfigOrFilePath?: CompilerOptions | string) { const ts = ctx.dependencies.ts; const logger = ctx.dependencies.logger; @@ -42,13 +42,13 @@ export function compile(ctx: DefaultContext, entryFilePaths: string[], tsConfigO } -function getCompilerHost(ctx: DefaultContext, compilerOptions: CompilerOptions) { +function getCompilerHost(ctx: DefaultNodeContext, compilerOptions: CompilerOptions) { const ts = ctx.dependencies.ts; return ts.createCompilerHost(compilerOptions, true); } -function getCompilerOptions(ctx: DefaultContext, entryFilePaths: string[], tsConfigOrFilePath?: CompilerOptions | string): CompilerOptions { +function getCompilerOptions(ctx: DefaultNodeContext, entryFilePaths: string[], tsConfigOrFilePath?: CompilerOptions | string): CompilerOptions { const ts = ctx.dependencies.ts; const logger = ctx.dependencies.logger; @@ -123,7 +123,7 @@ function getCompilerOptions(ctx: DefaultContext, entryFilePaths: string[], tsCon } -function readConfigFile(ctx: DefaultContext, path: string): CompilerOptions | undefined { +function readConfigFile(ctx: DefaultNodeContext, path: string): CompilerOptions | undefined { const ts = ctx.dependencies.ts; const logger = ctx.dependencies.logger; diff --git a/src/config/config.test.ts b/src/config/config.test.ts index e14a4a21..75fc6d84 100644 --- a/src/config/config.test.ts +++ b/src/config/config.test.ts @@ -3,7 +3,7 @@ import { beforeAll, expect, it, vitest } from "vitest"; import { createConfig } from "unwritten:config/config"; import { mkdirSync, readFileSync, writeFileSync } from "unwritten:platform/file-system/browser"; -import { } from "unwritten:platform/file-system/virtual-fs"; +import { } from "unwritten:tests:utils/virtual-fs"; import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; diff --git a/src/config/config.ts b/src/config/config.ts index 68f462a4..12d6935d 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -1,13 +1,20 @@ import { BuiltInRenderers } from "unwritten:renderer/enums/renderer"; import { defaultJSONRenderConfig } from "unwritten:renderer:json/config/default"; import { defaultHTMLRenderConfig, defaultMarkdownRenderConfig } from "unwritten:renderer:markup/config/default"; +import { isNodeContext } from "unwritten:utils/context"; import { findFile } from "unwritten:utils:finder"; import { override } from "unwritten:utils:override"; import { defaultExternalTypes, defaultInterpreterConfig, defaultOutputPath } from "./default"; -import type { CompleteConfig, Config } from "unwritten:type-definitions/config"; -import type { DefaultContext } from "unwritten:type-definitions/context"; +import type { + CompleteBrowserConfig, + CompleteConfig, + CompleteNodeConfig, + Config, + NodeConfig +} from "unwritten:type-definitions/config"; +import type { DefaultBrowserContext, DefaultContext, DefaultNodeContext } from "unwritten:type-definitions/context"; const CONFIG_NAMES = [ @@ -17,10 +24,17 @@ const CONFIG_NAMES = [ ".unwritten.cjs" ]; +export async function createConfig(ctx: DefaultBrowserContext, config: Config | undefined): Promise; +export async function createConfig(ctx: DefaultNodeContext, configOrPath: Config | string | undefined, output?: string): Promise; export async function createConfig(ctx: DefaultContext, configOrPath: Config | string | undefined, output?: string): Promise { const logger = ctx.dependencies.logger; const { absolute, getDirectory } = ctx.dependencies.path; + + if(!isNodeContext(ctx)){ + return createConfigForBrowser(ctx, configOrPath as Config | undefined); + } + const { existsSync } = ctx.dependencies.fs; const defaultConfig = getDefaultConfig(); @@ -69,7 +83,12 @@ export async function createConfig(ctx: DefaultContext, configOrPath: Config | s } -async function importFile(ctx: DefaultContext, path: string) { +async function createConfigForBrowser(ctx: DefaultBrowserContext, config: Config | undefined): Promise { + const defaultConfig = getDefaultConfig(); + return override(defaultConfig, config); +} + +async function importFile(ctx: DefaultNodeContext, path: string) { const { getFileExtension } = ctx.dependencies.path; const { readFileSync } = ctx.dependencies.fs; @@ -84,7 +103,7 @@ async function importFile(ctx: DefaultContext, path: string) { } -async function getExtendConfig(ctx: DefaultContext, config: Config): Promise { +async function getExtendConfig(ctx: DefaultNodeContext, config: NodeConfig): Promise { const { cwd } = ctx.dependencies.process; const { join } = ctx.dependencies.path; @@ -98,7 +117,7 @@ async function getExtendConfig(ctx: DefaultContext, config: Config): Promise virtualReadFileSync(path, "utf-8"), - readdirSync: virtualReaddirSync, - rmSync: virtualRmSync, - writeFileSync: virtualWriteFileSync -}; - -export const { - existsSync, - mkdirSync, - readFileSync, - readdirSync, - rmSync, - writeFileSync -} = fileSystem; - -export default fileSystem; diff --git a/src/platform/file-system/node.ts b/src/platform/file-system/node.ts index fd2a7d82..cc19e19c 100644 --- a/src/platform/file-system/node.ts +++ b/src/platform/file-system/node.ts @@ -7,7 +7,7 @@ import { writeFileSync as nodeWriteFileSync } from "node:fs"; -import type { FileSystem } from "unwritten:types:file-system"; +import type { FileSystem } from "unwritten:type-definitions/platform"; const fileSystem: FileSystem = { diff --git a/src/platform/os/browser.ts b/src/platform/os/browser.ts index 31b4d05e..2ed8b273 100644 --- a/src/platform/os/browser.ts +++ b/src/platform/os/browser.ts @@ -1,4 +1,4 @@ -import type { OS } from "unwritten:type-definitions/os"; +import type { OS } from "unwritten:type-definitions/platform"; function getEOL(): string { diff --git a/src/platform/os/node.ts b/src/platform/os/node.ts index 9d007809..94460bd8 100644 --- a/src/platform/os/node.ts +++ b/src/platform/os/node.ts @@ -1,6 +1,6 @@ import { EOL as nodeEOL, homedir } from "node:os"; -import type { OS } from "unwritten:type-definitions/os"; +import type { OS } from "unwritten:type-definitions/platform"; const os: OS = { diff --git a/src/platform/path/browser.ts b/src/platform/path/browser.ts index b4953244..2a355f83 100644 --- a/src/platform/path/browser.ts +++ b/src/platform/path/browser.ts @@ -2,7 +2,7 @@ import { homeDirectory } from "unwritten:platform/os/browser"; import sharedPath from "unwritten:platform/path/shared"; import { cwd } from "unwritten:platform/process/browser"; -import type { Path } from "unwritten:type-definitions/path"; +import type { Path } from "unwritten:type-definitions/platform"; const deps = { cwd, homeDirectory, isAbsolute: (path: string) => path.startsWith("/"), separator: "/" }; diff --git a/src/platform/path/node.ts b/src/platform/path/node.ts index c69cc3e1..7b51102c 100644 --- a/src/platform/path/node.ts +++ b/src/platform/path/node.ts @@ -4,7 +4,7 @@ import { homeDirectory } from "unwritten:platform/os/node"; import sharedPath from "unwritten:platform/path/shared"; import { cwd } from "unwritten:platform/process/node"; -import type { Path } from "unwritten:type-definitions/path"; +import type { Path } from "unwritten:type-definitions/platform"; const deps = { cwd, homeDirectory, isAbsolute, separator: sep }; diff --git a/src/platform/process/browser.ts b/src/platform/process/browser.ts index 292be214..82372645 100644 --- a/src/platform/process/browser.ts +++ b/src/platform/process/browser.ts @@ -1,4 +1,4 @@ -import type { Process } from "unwritten:type-definitions/process"; +import type { Process } from "unwritten:type-definitions/platform"; const process: Process = { diff --git a/src/platform/process/node.ts b/src/platform/process/node.ts index dd797098..9e2c7640 100644 --- a/src/platform/process/node.ts +++ b/src/platform/process/node.ts @@ -1,7 +1,7 @@ import { sep } from "node:path"; import { cwd as nodeCWD } from "node:process"; -import type { Process } from "unwritten:type-definitions/process"; +import type { Process } from "unwritten:type-definitions/platform"; const process: Process = { diff --git a/src/renderer/json/type-definitions/renderer.ts b/src/renderer/json/type-definitions/renderer.ts index a79d4139..7234c8bb 100644 --- a/src/renderer/json/type-definitions/renderer.ts +++ b/src/renderer/json/type-definitions/renderer.ts @@ -1,5 +1,5 @@ import type { BuiltInRenderers } from "unwritten:renderer/enums/renderer"; -import type { RenderContext } from "unwritten:type-definitions/context"; +import type { RenderBrowserContext, RenderNodeContext } from "unwritten:type-definitions/context"; import type { Renderer } from "unwritten:type-definitions/renderer"; @@ -8,5 +8,6 @@ export interface JSONRenderer extends Renderer { name: BuiltInRenderers.JSON; } -export interface JSONRenderContext extends RenderContext { -} +export interface JSONRenderNodeContext extends RenderNodeContext {} +export interface JSONRenderBrowserContext extends RenderBrowserContext {} +export type JSONRenderContext = JSONRenderBrowserContext | JSONRenderNodeContext; diff --git a/src/renderer/markup/registry/registry.ts b/src/renderer/markup/registry/registry.ts index 306cd0ad..a2769c45 100644 --- a/src/renderer/markup/registry/registry.ts +++ b/src/renderer/markup/registry/registry.ts @@ -4,7 +4,7 @@ import type { MarkupRenderContexts } from "../types-definitions/markup"; import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; import type { ID, Name } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { FilePath } from "unwritten:type-definitions/file-system"; +import type { FilePath } from "unwritten:type-definitions/platform"; export const MAX_ANONYMOUS_ID = -10; diff --git a/src/renderer/markup/types-definitions/markup.ts b/src/renderer/markup/types-definitions/markup.ts index 547d7bc9..7b7dc8b7 100644 --- a/src/renderer/markup/types-definitions/markup.ts +++ b/src/renderer/markup/types-definitions/markup.ts @@ -1,6 +1,6 @@ import type { BuiltInRenderers } from "unwritten:renderer/enums/renderer"; import type { LinkRegistry, SourceFile } from "unwritten:renderer/markup/registry/registry"; -import type { RenderContext } from "unwritten:type-definitions/context"; +import type { RenderBrowserContext, RenderNodeContext } from "unwritten:type-definitions/context"; import type { Renderer } from "unwritten:type-definitions/renderer"; @@ -11,7 +11,7 @@ export interface MarkupRenderer extends Renderer { name: BuiltInRenderers.HTML | BuiltInRenderers.Markdown; } -export interface MarkupRenderContext extends RenderContext { +export interface MarkupRenderBaseContext { currentFile: SourceFile; set indentation(value: number); get indentation(): number; @@ -23,6 +23,19 @@ export interface MarkupRenderContext extends + MarkupRenderBaseContext, + RenderNodeContext {} + +export interface MarkupRenderBrowserContext extends + MarkupRenderBaseContext, + RenderBrowserContext {} + +export type MarkupRenderContext = + | MarkupRenderBrowserContext + | MarkupRenderNodeContext; + + export type MarkupRenderers = HTMLRenderer | MarkdownRenderer; export type MarkupRenderContexts = HTMLRenderContext | MarkdownRenderContext; @@ -33,8 +46,9 @@ export interface HTMLRenderer extends MarkupRenderer { name: BuiltInRenderers.HTML; } -export interface HTMLRenderContext extends MarkupRenderContext { -} +export interface HTMLRenderNodeContext extends MarkupRenderNodeContext {} +export interface HTMLRenderBrowserContext extends MarkupRenderBrowserContext {} +export type HTMLRenderContext = HTMLRenderBrowserContext | HTMLRenderNodeContext; // Markdown @@ -43,5 +57,6 @@ export interface MarkdownRenderer extends MarkupRenderer { name: BuiltInRenderers.Markdown; } -export interface MarkdownRenderContext extends MarkupRenderContext { -} +export interface MarkdownNodeRenderContext extends MarkupRenderNodeContext {} +export interface MarkdownBrowserRenderContext extends MarkupRenderBrowserContext {} +export type MarkdownRenderContext = MarkdownBrowserRenderContext | MarkdownNodeRenderContext; diff --git a/src/renderer/markup/utils/file.test.ts b/src/renderer/markup/utils/file.test.ts index 75b8f280..a2606867 100644 --- a/src/renderer/markup/utils/file.test.ts +++ b/src/renderer/markup/utils/file.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, it } from "vitest"; -import { clearVirtualFS } from "unwritten:platform/file-system/virtual-fs"; +import { clearVirtualFS } from "unwritten:tests:utils/virtual-fs"; import { getAvailableFileName } from "unwritten:renderer/markup/utils/file"; import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; diff --git a/src/renderer/markup/utils/file.ts b/src/renderer/markup/utils/file.ts index 2503322f..e2725bd7 100644 --- a/src/renderer/markup/utils/file.ts +++ b/src/renderer/markup/utils/file.ts @@ -1,6 +1,6 @@ import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; import type { RenderContext } from "unwritten:type-definitions/context"; -import type { FilePath } from "unwritten:type-definitions/file-system"; +import type { FilePath } from "unwritten:type-definitions/platform"; const MAX_IDENTICAL_FILE_NAMES = 10; diff --git a/src/renderer/utils/context.ts b/src/renderer/utils/context.ts index 761e2e7f..88b8188a 100644 --- a/src/renderer/utils/context.ts +++ b/src/renderer/utils/context.ts @@ -1,13 +1,18 @@ import type { CompleteConfig } from "unwritten:type-definitions/config"; -import type { DefaultContext, RenderContext } from "unwritten:type-definitions/context"; +import type { + DefaultBrowserContext, + DefaultContext, + DefaultNodeContext, + RenderBrowserContext, + RenderContext, + RenderNodeContext +} from "unwritten:type-definitions/context"; import type { Renderer } from "unwritten:type-definitions/renderer"; -export function createContext( - defaultContext: DefaultContext, - renderer: CustomRenderer, - config: CompleteConfig -): RenderContext { +export function createContext(defaultContext: DefaultNodeContext, renderer: CustomRenderer, config: CompleteConfig): RenderNodeContext; +export function createContext(defaultContext: DefaultBrowserContext, renderer: CustomRenderer, config: CompleteConfig): RenderBrowserContext; +export function createContext(defaultContext: DefaultContext, renderer: CustomRenderer, config: CompleteConfig): RenderContext { const ctx: RenderContext = { config, renderer, diff --git a/src/type-definitions/config.ts b/src/type-definitions/config.ts index 843bdbb3..b285c44b 100644 --- a/src/type-definitions/config.ts +++ b/src/type-definitions/config.ts @@ -4,12 +4,10 @@ import type { TypeKind } from "unwritten:interpreter/enums/type"; import type { JSONRenderConfig } from "unwritten:renderer:json/type-definitions/config"; import type { HTMLRenderConfig, MarkdownRenderConfig } from "unwritten:renderer:markup/types-definitions/config"; -import type { Complete } from "./utils"; +import type { Complete, PartialByKey } from "./utils"; -export interface Config { - /** Extend another config */ - extends?: string; +export interface BaseConfig { /** Links to external documentation of native types. */ externalTypes?: ExternalTypes; /** Interpreter configuration. */ @@ -20,13 +18,19 @@ export interface Config { renderConfig?: RenderConfig; } -export interface CompleteConfig extends Config { - externalTypes: ExternalTypes; - interpreterConfig: Complete; - outputDir: string; - renderConfig: CompleteRenderConfig; +export interface BrowserConfig extends BaseConfig {} + +export interface NodeConfig extends BaseConfig { + /** Extend another config */ + extends?: string; } +export type Config = BrowserConfig | NodeConfig; + +export type CompleteNodeConfig = PartialByKey, "extends">; +export type CompleteBrowserConfig = Required; +export type CompleteConfig = Required; + export interface CompleteRenderConfig { [BuiltInRenderers.Markdown]: Complete; [BuiltInRenderers.HTML]: Complete; @@ -42,7 +46,7 @@ export interface RenderConfig { }; } -export interface ConfigForSchema extends Config { +export interface ConfigForSchema extends NodeConfig { $schema?: string; interpreterConfig?: InterpreterConfig; renderConfig?: { diff --git a/src/type-definitions/context.ts b/src/type-definitions/context.ts index 3ec7bf5c..2f57f87b 100644 --- a/src/type-definitions/context.ts +++ b/src/type-definitions/context.ts @@ -1,28 +1,38 @@ import type { TypeChecker } from "typescript"; import type ts from "typescript"; -import type { FileSystem } from "unwritten:type-definitions/file-system"; -import type { Logger } from "unwritten:type-definitions/logger"; -import type { OS } from "unwritten:type-definitions/os"; -import type { Path } from "unwritten:type-definitions/path"; -import type { Process } from "unwritten:type-definitions/process"; +import type { OS } from "unwritten:type-definitions/platform"; import type { CompleteConfig } from "./config"; +import type { FileSystem, Logger, Path, Process } from "./platform"; import type { Renderer } from "./renderer"; -export interface DefaultContext { - dependencies: { - fs: FileSystem; - os: OS; - path: Path; - process: Process; - ts: typeof ts; - logger?: Logger; - }; +export type DefaultContext = DefaultBrowserContext | DefaultNodeContext; + +type BaseDependencies = { + os: OS; + path: Path; + process: Process; + ts: typeof ts; + logger?: Logger; +}; + +export interface NodeDependencies extends BaseDependencies { + fs: FileSystem; +} + +export interface BrowserDependencies extends BaseDependencies {} + +export interface DefaultBrowserContext { + dependencies: BrowserDependencies; +} + +export interface DefaultNodeContext { + dependencies: NodeDependencies; } -export interface InterpreterContext extends DefaultContext { +interface BaseInterpreterContext { checker: TypeChecker; config: CompleteConfig; /** @@ -35,7 +45,28 @@ export interface InterpreterContext extends DefaultContext { typeLocker?: Set; } -export interface RenderContext extends DefaultContext { +export interface InterpreterBrowserContext extends BaseInterpreterContext, DefaultBrowserContext { +} + +export interface InterpreterNodeContext extends BaseInterpreterContext, DefaultNodeContext { +} + +export type InterpreterContext = InterpreterBrowserContext | InterpreterNodeContext; + + +interface BaseRenderContext { config: CompleteConfig; renderer: CustomRenderer; } + +export interface RenderBrowserContext extends + BaseRenderContext, + DefaultBrowserContext {} + +export interface RenderNodeContext extends + BaseRenderContext, + DefaultNodeContext {} + +export type RenderContext = + | RenderBrowserContext + | RenderNodeContext; diff --git a/src/type-definitions/file-system.ts b/src/type-definitions/file-system.ts deleted file mode 100644 index 5b55758d..00000000 --- a/src/type-definitions/file-system.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type FileExtension = `.${string}`; -export type FileName = `${string}${FileExtension}`; -export type FilePath = `${Directory}${FileName}` | `${FileName}`; -export type Directory = `${string}/`; - -export interface FileSystem { - existsSync(path: string): boolean; - mkdirSync(path: string, options?: { recursive: boolean; }): void; - readFileSync(path: string): string; - readdirSync(path: string, options?: { recursive: boolean; }): string[]; - rmSync(path: string, options?: { recursive: boolean; }): void; - writeFileSync(path: string, data: string): void; -} diff --git a/src/type-definitions/logger.ts b/src/type-definitions/logger.ts deleted file mode 100644 index 6b9fc9bf..00000000 --- a/src/type-definitions/logger.ts +++ /dev/null @@ -1,20 +0,0 @@ -export type Logger = { - bold(message: string): string; - cyan(message: string): string; - filePath(path: string): string; - gray(message: string): string ; - green(message: string): string; - info(title: string, body: string[]): void; - info(title: string, badge: string, body: string[]): void; - info(message: string): void; - italic(message: string): string; - log(message: string): void; - red(message: string): string; - strikethrough(message: string): string; - underline(message: string): string; - warn(message: string): void; - warn(title: string, badge: string, body: string[]): void; - warn(title: string, body: string[]): void; - white(message: string): string ; - yellow(message: string): string ; -}; diff --git a/src/type-definitions/options.ts b/src/type-definitions/options.ts index 0011db3e..a679f712 100644 --- a/src/type-definitions/options.ts +++ b/src/type-definitions/options.ts @@ -28,8 +28,6 @@ export interface BrowserAPIOptions extends Options { * You can also provide a path to a custom renderer that implements the Renderer interface. */ renderer?: BuiltInRenderers | Renderer; - /** tsconfig */ - tsconfig?: ts.CompilerOptions; } export interface APIOptions extends Options { diff --git a/src/type-definitions/os.ts b/src/type-definitions/os.ts deleted file mode 100644 index 2aa768c6..00000000 --- a/src/type-definitions/os.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface OS { - homeDirectory(): string; - lineEndings: string; -} diff --git a/src/type-definitions/path.ts b/src/type-definitions/path.ts deleted file mode 100644 index 693bf265..00000000 --- a/src/type-definitions/path.ts +++ /dev/null @@ -1,23 +0,0 @@ -export interface Path { - /** Resolves the absolute path based on the base path */ - absolute(to: string): string; - absolute(from: string, to: string): string; - /** Returns the directory including a trailing slash */ - getDirectory(path: string): string; - /** - * Returns the file extension including the period - * Returns an empty string if the path doesn't contain a file - */ - getFileExtension(path: string): string; - /** - * Returns the file name including the extension by default. - * Returns an empty string if the path doesn't contain a file - */ - getFileName(path: string, includeExtension?: boolean): string; - /** Joins multiple segments */ - join(...segments: string[]): string; - /** Strips file protocol prefix and converts windows style paths to posix style paths */ - normalize(path: string): string; - /** Returns the relative path from one path to the other */ - relative(from: string, to: string): string; -} diff --git a/src/type-definitions/platform.ts b/src/type-definitions/platform.ts new file mode 100644 index 00000000..6f5904c4 --- /dev/null +++ b/src/type-definitions/platform.ts @@ -0,0 +1,75 @@ +export type Platform = "browser" | "node"; + +// os +export interface OS { + homeDirectory(): string; + lineEndings: string; +} + +// process +export interface Process { + /** Returns the current working directory */ + cwd(): string; +} + +// path +export interface Path { + /** Resolves the absolute path based on the base path */ + absolute(to: string): string; + absolute(from: string, to: string): string; + /** Returns the directory including a trailing slash */ + getDirectory(path: string): string; + /** + * Returns the file extension including the period + * Returns an empty string if the path doesn't contain a file + */ + getFileExtension(path: string): string; + /** + * Returns the file name including the extension by default. + * Returns an empty string if the path doesn't contain a file + */ + getFileName(path: string, includeExtension?: boolean): string; + /** Joins multiple segments */ + join(...segments: string[]): string; + /** Strips file protocol prefix and converts windows style paths to posix style paths */ + normalize(path: string): string; + /** Returns the relative path from one path to the other */ + relative(from: string, to: string): string; +} + +// logger +export type Logger = { + bold(message: string): string; + cyan(message: string): string; + filePath(path: string): string; + gray(message: string): string; + green(message: string): string; + info(title: string, body: string[]): void; + info(title: string, badge: string, body: string[]): void; + info(message: string): void; + italic(message: string): string; + log(message: string): void; + red(message: string): string; + strikethrough(message: string): string; + underline(message: string): string; + warn(message: string): void; + warn(title: string, badge: string, body: string[]): void; + warn(title: string, body: string[]): void; + white(message: string): string; + yellow(message: string): string; +}; + +// fs +export type FileExtension = `.${string}`; +export type FileName = `${string}${FileExtension}`; +export type FilePath = `${Directory}${FileName}` | `${FileName}`; +export type Directory = `${string}/`; + +export interface FileSystem { + existsSync(path: string): boolean; + mkdirSync(path: string, options?: { recursive: boolean; }): void; + readFileSync(path: string): string; + readdirSync(path: string, options?: { recursive: boolean; }): string[]; + rmSync(path: string, options?: { recursive: boolean; }): void; + writeFileSync(path: string, data: string): void; +} diff --git a/src/type-definitions/process.ts b/src/type-definitions/process.ts deleted file mode 100644 index 0b2fab77..00000000 --- a/src/type-definitions/process.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface Process { - /** Returns the current working directory */ - cwd(): string; -} diff --git a/src/type-definitions/renderer.ts b/src/type-definitions/renderer.ts index 56628aeb..82ad5a13 100644 --- a/src/type-definitions/renderer.ts +++ b/src/type-definitions/renderer.ts @@ -1,7 +1,7 @@ import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; -import type { FileExtension, FilePath } from "unwritten:type-definitions/file-system"; import type { RenderContext } from "./context"; +import type { FileExtension, FilePath } from "./platform"; export interface RenderOutput { diff --git a/src/type-definitions/utils.ts b/src/type-definitions/utils.ts index f787b35a..60e606f1 100644 --- a/src/type-definitions/utils.ts +++ b/src/type-definitions/utils.ts @@ -20,8 +20,7 @@ export type TranslationWithoutSuffixes = RemoveTranslationsSuf // DeepPartialByKey export type DeepPartial = DeepPartialByKey; -export type Partial = DeepPartialByKey; -export type PartialByKey = DeepPartialByKey; +export type PartialByKey = DeepPartialByKey; export type DeepPartialByKey = Type extends Function @@ -54,7 +53,7 @@ type DeepPartialByKeyObject = DeepRequiredByKey; export type Required = DeepRequiredByKey; -export type RequiredByKey = DeepRequiredByKey; +export type RequiredByKey = DeepRequiredByKey; export type DeepRequiredByKey = Type extends Function diff --git a/src/utils/context.ts b/src/utils/context.ts index 81db41ef..430f1332 100644 --- a/src/utils/context.ts +++ b/src/utils/context.ts @@ -1,8 +1,15 @@ -import type { DefaultContext } from "unwritten:type-definitions/context"; +import type { DefaultBrowserContext, DefaultContext, DefaultNodeContext } from "unwritten:type-definitions/context"; +export function createContext(dependencies: DefaultBrowserContext["dependencies"]): DefaultBrowserContext; +export function createContext(dependencies: DefaultNodeContext["dependencies"]): DefaultNodeContext; export function createContext(dependencies: DefaultContext["dependencies"]): DefaultContext { return { dependencies }; } + + +export function isNodeContext(ctx: DefaultContext): ctx is DefaultNodeContext { + return "fs" in ctx.dependencies; +} diff --git a/src/utils/finder.test.ts b/src/utils/finder.test.ts index 4ca32368..c2da83f5 100644 --- a/src/utils/finder.test.ts +++ b/src/utils/finder.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeAll, expect, it, vitest } from "vitest"; -import { clearVirtualFS } from "unwritten:platform/file-system/virtual-fs"; +import { clearVirtualFS } from "unwritten:tests:utils/virtual-fs"; import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; import { findFile } from "unwritten:utils/finder"; diff --git a/src/utils/finder.ts b/src/utils/finder.ts index 2724b670..af1e617b 100644 --- a/src/utils/finder.ts +++ b/src/utils/finder.ts @@ -1,6 +1,6 @@ import { assert } from "./general"; -import type { DefaultContext } from "unwritten:type-definitions/context"; +import type { DefaultNodeContext } from "unwritten:type-definitions/context"; /** @@ -11,7 +11,7 @@ import type { DefaultContext } from "unwritten:type-definitions/context"; * @returns The absolute file path of the first file found, otherwise undefined. * @throws { Error } Throws an error if the entry path does not exist. */ -export function findFile(ctx: DefaultContext, fileName: string[] | string, entryPath?: string): string | undefined { +export function findFile(ctx: DefaultNodeContext, fileName: string[] | string, entryPath?: string): string | undefined { const { existsSync } = ctx.dependencies.fs; const { absolute, join } = ctx.dependencies.path; diff --git a/tests/utils/compile.ts b/tests/utils/compile.ts index c92cd871..6735b9ec 100644 --- a/tests/utils/compile.ts +++ b/tests/utils/compile.ts @@ -3,12 +3,12 @@ import ts, { ModuleResolutionKind } from "typescript"; import { getDefaultCompilerOptions, reportCompilerDiagnostics } from "unwritten:compiler:shared"; import { getDefaultConfig } from "unwritten:config/config"; import { createContext } from "unwritten:interpreter/utils/context"; -import * as fs from "unwritten:platform/file-system/browser"; import { readFileSync as readFileSyncOriginal } from "unwritten:platform/file-system/node"; import { logger } from "unwritten:platform/logger/node"; import os from "unwritten:platform/os/node"; import path from "unwritten:platform/path/browser"; import process from "unwritten:platform/process/browser"; +import * as fs from "unwritten:tests:utils/virtual-fs"; import { createContext as createDefaultContext } from "unwritten:utils/context"; import { override } from "unwritten:utils/override"; import { assert } from "unwritten:utils:general"; @@ -20,7 +20,7 @@ type CompilerInput = { [filePath: string]: string; }; -export function compile(code: CompilerInput | string, compilerOptions?: ts.CompilerOptions, config?: Config) { +export function compile(code: CompilerInput | string, tsconfig?: ts.CompilerOptions, config?: Config) { const defaultContext = createDefaultContext({ fs, @@ -49,12 +49,19 @@ export function compile(code: CompilerInput | string, compilerOptions?: ts.Compi return acc; }, {}); + + const compilerOptions = { + ...getDefaultCompilerOptions(defaultContext), + moduleResolution: ModuleResolutionKind.Bundler, + target: ts.ScriptTarget.ESNext + }; + const compilerHost: ts.CompilerHost = { directoryExists: dirPath => dirPath === "/", fileExists: existsSync, getCanonicalFileName: fileName => fileName, getCurrentDirectory: () => "/", - getDefaultLibFileName: () => "node_modules/typescript/lib/lib.esnext.d.ts", + getDefaultLibFileName: () => ts.getDefaultLibFilePath(compilerOptions), getDirectories: () => [], getNewLine: () => "\n", getSourceFile: filePath => @@ -78,11 +85,7 @@ export function compile(code: CompilerInput | string, compilerOptions?: ts.Compi const program = ts.createProgram({ host: compilerHost, - options: compilerOptions ?? { - ...getDefaultCompilerOptions(defaultContext), - moduleResolution: ModuleResolutionKind.Bundler, - target: ts.ScriptTarget.ESNext - }, + options: compilerOptions, rootNames: Object.keys(sourceFiles) }); diff --git a/tests/utils/context.ts b/tests/utils/context.ts index 9c560fe3..eb087494 100644 --- a/tests/utils/context.ts +++ b/tests/utils/context.ts @@ -1,7 +1,6 @@ import ts from "typescript"; import { getDefaultConfig } from "unwritten:config/config"; -import fs from "unwritten:platform/file-system/browser"; import { logger } from "unwritten:platform/logger/node"; import os from "unwritten:platform/os/node"; import path from "unwritten:platform/path/browser"; @@ -50,7 +49,6 @@ export function createRenderContext(rendererName?: BuiltInRenderers.JSON): JSONR export function createRenderContext(rendererName: BuiltInRenderers = BuiltInRenderers.HTML): RenderContext { const defaultContext = createDefaultContext({ - fs, logger, os, path, diff --git a/src/platform/file-system/virtual-fs.test.ts b/tests/utils/virtual-fs.test.ts similarity index 98% rename from src/platform/file-system/virtual-fs.test.ts rename to tests/utils/virtual-fs.test.ts index 9eed8c75..3e31e29c 100644 --- a/src/platform/file-system/virtual-fs.test.ts +++ b/tests/utils/virtual-fs.test.ts @@ -8,7 +8,7 @@ import { rmSync, writeFileSync } from "unwritten:platform/file-system/node"; -import { clearVirtualFS } from "unwritten:platform/file-system/virtual-fs"; +import { clearVirtualFS } from "unwritten:tests:utils/virtual-fs.js"; describe("virtual fs", () => { diff --git a/src/platform/file-system/virtual-fs.ts b/tests/utils/virtual-fs.ts similarity index 100% rename from src/platform/file-system/virtual-fs.ts rename to tests/utils/virtual-fs.ts diff --git a/tsconfig.json b/tsconfig.json index 7aa51393..07a74897 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "compilerOptions": { "baseUrl": ".", "lib": ["ESNext", "DOM"], + "noImplicitAny": false, "paths": { "unwritten:*": ["src/*"], "unwritten:api:*": ["src/api/*"], @@ -25,7 +26,9 @@ }, "include": [ "src/**/*.ts", - "tests/**/*.ts" + "tests/**/*.ts", + "vite.config.ts", + "vite.config.browser.ts" ], "exclude": [ "node_modules", diff --git a/vite.config.browser.ts b/vite.config.browser.ts new file mode 100644 index 00000000..fd36800b --- /dev/null +++ b/vite.config.browser.ts @@ -0,0 +1,39 @@ +import dts from "vite-plugin-dts"; +import noBundlePlugin from "vite-plugin-no-bundle"; + +import { config, defineConfig } from "@schoero/vite-config"; + +import type { UserConfig } from "vitest"; + + +export default defineConfig({ + ...config, + build: { + emptyOutDir: true, + lib: { + entry: ["/src/api/browser.entry.ts"], + formats: ["es"] + }, + minify: false, + outDir: "lib/browser", + rollupOptions: { + external: [ + "minimatch", + "typescript", + /node_modules/, + /^node:.*/ + ] + }, + target: "es6" + }, + plugins: [ + ...config.plugins ?? [], + noBundlePlugin(), + dts({ + entryRoot: "./src", + exclude: ["src/**/*.test.ts", "test/**"], + pathsToAliases: true, + strictOutput: true + }) + ] +}); diff --git a/vite.config.ts b/vite.config.ts index d6317311..5e3a3ba6 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,17 +4,19 @@ import noBundlePlugin from "vite-plugin-no-bundle"; import { config, defineConfig } from "@schoero/vite-config"; -/** @type {import('vitest/config').UserConfig} */ -export default defineConfig({ +import type { UserConfig } from "vitest"; + + +export default defineConfig({ ...config, build: { emptyOutDir: true, lib: { - entry: ["/src/bin/index.ts", "/src/api/browser.entry.ts"], + entry: ["/src/bin/index.ts"], formats: ["es"] }, minify: false, - outDir: "lib", + outDir: "lib/node", rollupOptions: { external: [ /node_modules/, From ef9e74cdd78cae698dc97790b4f27d8483810052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sun, 19 Nov 2023 07:18:57 +0100 Subject: [PATCH 03/42] fix: testing issues --- src/config/config.test.ts | 3 +- src/config/generator.entry.test.ts | 5 +- .../markup/types-definitions/markup.ts | 4 +- src/utils/finder.test.ts | 2 +- tests/utils/context.ts | 74 ++++++++++++------- 5 files changed, 55 insertions(+), 33 deletions(-) diff --git a/src/config/config.test.ts b/src/config/config.test.ts index 75fc6d84..5f22450b 100644 --- a/src/config/config.test.ts +++ b/src/config/config.test.ts @@ -2,10 +2,9 @@ import { beforeAll, expect, it, vitest } from "vitest"; import { createConfig } from "unwritten:config/config"; -import { mkdirSync, readFileSync, writeFileSync } from "unwritten:platform/file-system/browser"; -import { } from "unwritten:tests:utils/virtual-fs"; import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; +import { mkdirSync, readFileSync, writeFileSync } from "unwritten:tests:utils/virtual-fs"; scope("Integration", "Config", async () => { diff --git a/src/config/generator.entry.test.ts b/src/config/generator.entry.test.ts index 4b44894d..35b787cb 100644 --- a/src/config/generator.entry.test.ts +++ b/src/config/generator.entry.test.ts @@ -1,15 +1,14 @@ import { afterEach, beforeAll, expect, it, vitest } from "vitest"; import { generateConfig } from "unwritten:config/generator.entry"; -import { existsSync } from "unwritten:platform/file-system/browser"; -import { clearVirtualFS } from "unwritten:tests:utils/virtual-fs"; import { scope } from "unwritten:tests:utils/scope"; +import { clearVirtualFS, existsSync } from "unwritten:tests:utils/virtual-fs"; scope("Integration", "generateConfig", () => { beforeAll(() => { - vitest.mock("unwritten:platform/file-system/node.js", async () => import("unwritten:platform/file-system/browser.js")); + vitest.mock("unwritten:platform/file-system/node.js", async () => import("unwritten:tests:utils/virtual-fs")); vitest.mock("unwritten:platform/path/node.js", async () => import("unwritten:platform/path/browser.js")); vitest.mock("unwritten:platform/process/node.js", async () => import("unwritten:platform/process/browser.js")); return () => vitest.restoreAllMocks(); diff --git a/src/renderer/markup/types-definitions/markup.ts b/src/renderer/markup/types-definitions/markup.ts index 7b7dc8b7..41284bb0 100644 --- a/src/renderer/markup/types-definitions/markup.ts +++ b/src/renderer/markup/types-definitions/markup.ts @@ -57,6 +57,6 @@ export interface MarkdownRenderer extends MarkupRenderer { name: BuiltInRenderers.Markdown; } -export interface MarkdownNodeRenderContext extends MarkupRenderNodeContext {} +export interface MarkdownRenderNodeContext extends MarkupRenderNodeContext {} export interface MarkdownBrowserRenderContext extends MarkupRenderBrowserContext {} -export type MarkdownRenderContext = MarkdownBrowserRenderContext | MarkdownNodeRenderContext; +export type MarkdownRenderContext = MarkdownBrowserRenderContext | MarkdownRenderNodeContext; diff --git a/src/utils/finder.test.ts b/src/utils/finder.test.ts index c2da83f5..ef26d2e8 100644 --- a/src/utils/finder.test.ts +++ b/src/utils/finder.test.ts @@ -1,8 +1,8 @@ import { afterEach, beforeAll, expect, it, vitest } from "vitest"; -import { clearVirtualFS } from "unwritten:tests:utils/virtual-fs"; import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; +import { clearVirtualFS } from "unwritten:tests:utils/virtual-fs"; import { findFile } from "unwritten:utils/finder"; diff --git a/tests/utils/context.ts b/tests/utils/context.ts index eb087494..24e389a3 100644 --- a/tests/utils/context.ts +++ b/tests/utils/context.ts @@ -10,12 +10,16 @@ import jsonRenderer from "unwritten:renderer:json/index"; import htmlRenderer, { isHTMLRenderContext } from "unwritten:renderer:markup/html/index"; import markdownRenderer, { isMarkdownRenderContext } from "unwritten:renderer:markup/markdown/index"; import { attachTestRegistry } from "unwritten:tests:utils/registry"; +import * as fs from "unwritten:tests:utils/virtual-fs"; import { createContext as createDefaultContext } from "unwritten:utils/context"; import { assert } from "unwritten:utils/general"; import { override } from "unwritten:utils:override"; import type { JSONRenderContext } from "unwritten:renderer:json/type-definitions/renderer"; -import type { HTMLRenderContext, MarkdownRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; +import type { + HTMLRenderNodeContext, + MarkdownRenderNodeContext +} from "unwritten:renderer:markup/types-definitions/markup"; import type { CompleteConfig } from "unwritten:type-definitions/config"; import type { RenderContext } from "unwritten:type-definitions/context"; @@ -43,12 +47,13 @@ const testConfig: CompleteConfig = override(getDefaultConfig(), { }); -export function createRenderContext(rendererName?: BuiltInRenderers.HTML): HTMLRenderContext; -export function createRenderContext(rendererName?: BuiltInRenderers.Markdown): MarkdownRenderContext; +export function createRenderContext(rendererName?: BuiltInRenderers.HTML): HTMLRenderNodeContext; +export function createRenderContext(rendererName?: BuiltInRenderers.Markdown): MarkdownRenderNodeContext; export function createRenderContext(rendererName?: BuiltInRenderers.JSON): JSONRenderContext; export function createRenderContext(rendererName: BuiltInRenderers = BuiltInRenderers.HTML): RenderContext { const defaultContext = createDefaultContext({ + fs, logger, os, path, @@ -56,28 +61,47 @@ export function createRenderContext(rendererName: BuiltInRenderers = BuiltInRend ts }); - const ctx: RenderContext = { - ...defaultContext, - config: JSON.parse(JSON.stringify(testConfig)), - renderer: htmlRenderer - }; - - if(rendererName === BuiltInRenderers.HTML){ - ctx.renderer = htmlRenderer; - assert(isHTMLRenderContext(ctx)); - ctx.renderer.initializeContext(ctx); - void attachTestRegistry(ctx); - ctx.currentFile = ctx.links.at(0)!; - } else if(rendererName === BuiltInRenderers.Markdown){ - ctx.renderer = markdownRenderer; - assert(isMarkdownRenderContext(ctx)); - ctx.renderer.initializeContext(ctx); - void attachTestRegistry(ctx); - ctx.currentFile = ctx.links.at(0)!; - } else { - ctx.renderer = jsonRenderer; - } + switch (rendererName){ + case BuiltInRenderers.HTML: { + + const ctx = { + ...defaultContext, + config: JSON.parse(JSON.stringify(testConfig)), + renderer: htmlRenderer + } satisfies RenderContext; + + assert(isHTMLRenderContext(ctx)); + ctx.renderer.initializeContext(ctx); + void attachTestRegistry(ctx); + ctx.currentFile = ctx.links.at(0)!; + + return ctx; + } + case BuiltInRenderers.Markdown: { + + const ctx = { + ...defaultContext, + config: JSON.parse(JSON.stringify(testConfig)), + renderer: markdownRenderer + } satisfies RenderContext; - return ctx; + assert(isMarkdownRenderContext(ctx)); + ctx.renderer.initializeContext(ctx); + void attachTestRegistry(ctx); + ctx.currentFile = ctx.links.at(0)!; + + return ctx; + } + case BuiltInRenderers.JSON: { + + const ctx = { + ...defaultContext, + config: JSON.parse(JSON.stringify(testConfig)), + renderer: jsonRenderer + } satisfies RenderContext; + + return ctx; + } + } } From eecfff0fe74f2334560be6cb3810197e5db3bf5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sun, 19 Nov 2023 07:21:21 +0100 Subject: [PATCH 04/42] style: fix eslint issues --- src/renderer/markup/utils/file.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/markup/utils/file.test.ts b/src/renderer/markup/utils/file.test.ts index a2606867..feb6d778 100644 --- a/src/renderer/markup/utils/file.test.ts +++ b/src/renderer/markup/utils/file.test.ts @@ -1,9 +1,9 @@ import { afterEach, describe, expect, it } from "vitest"; -import { clearVirtualFS } from "unwritten:tests:utils/virtual-fs"; import { getAvailableFileName } from "unwritten:renderer/markup/utils/file"; import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; +import { clearVirtualFS } from "unwritten:tests:utils/virtual-fs"; scope("Renderer", "File utilities", () => { From 5ef2607a76e5bf9ef78a779f44f6af469e324344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sun, 19 Nov 2023 07:41:09 +0100 Subject: [PATCH 05/42] chore: update dependencies --- package-lock.json | 292 +++++++++++++++++++++------------------------- package.json | 6 +- 2 files changed, 137 insertions(+), 161 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3c8a620..49ec4939 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,9 +22,9 @@ "@schoero/eslint-config": "^1.42.0", "@schoero/markdownlint-config": "^1.1.7", "@schoero/ts-config": "^0.3.7", - "@schoero/vite-config": "^0.0.28", + "@schoero/vite-config": "^0.0.29", "@types/minimatch": "^5.1.2", - "@types/node": "^20.9.1", + "@types/node": "^20.9.2", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", @@ -32,7 +32,7 @@ "vite": "^5.0.0", "vite-plugin-dts": "^3.6.3", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^0.34.6" + "vitest": "^1.0.0-beta.5" }, "engines": { "node": ">=16.9.0" @@ -1430,9 +1430,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.1.tgz", - "integrity": "sha512-Ss4suS/sd+6xLRu+MLCkED2mUrAyqHmmvZB+zpzZ9Znn9S8wCkTQCJaQ8P8aHofnvG5L16u9MVnJjCqioPErwQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz", + "integrity": "sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==", "cpu": [ "arm" ], @@ -1443,9 +1443,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.1.tgz", - "integrity": "sha512-sRSkGTvGsARwWd7TzC8LKRf8FiPn7257vd/edzmvG4RIr9x68KBN0/Ek48CkuUJ5Pj/Dp9vKWv6PEupjKWjTYA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.0.tgz", + "integrity": "sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==", "cpu": [ "arm64" ], @@ -1456,9 +1456,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.1.tgz", - "integrity": "sha512-nz0AiGrrXyaWpsmBXUGOBiRDU0wyfSXbFuF98pPvIO8O6auQsPG6riWsfQqmCCC5FNd8zKQ4JhgugRNAkBJ8mQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.0.tgz", + "integrity": "sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==", "cpu": [ "arm64" ], @@ -1469,9 +1469,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.1.tgz", - "integrity": "sha512-Ogqvf4/Ve/faMaiPRvzsJEqajbqs00LO+8vtrPBVvLgdw4wBg6ZDXdkDAZO+4MLnrc8mhGV6VJAzYScZdPLtJg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.0.tgz", + "integrity": "sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==", "cpu": [ "x64" ], @@ -1482,9 +1482,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.1.tgz", - "integrity": "sha512-9zc2tqlr6HfO+hx9+wktUlWTRdje7Ub15iJqKcqg5uJZ+iKqmd2CMxlgPpXi7+bU7bjfDIuvCvnGk7wewFEhCg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.0.tgz", + "integrity": "sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==", "cpu": [ "arm" ], @@ -1495,9 +1495,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.1.tgz", - "integrity": "sha512-phLb1fN3rq2o1j1v+nKxXUTSJnAhzhU0hLrl7Qzb0fLpwkGMHDem+o6d+ZI8+/BlTXfMU4kVWGvy6g9k/B8L6Q==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.0.tgz", + "integrity": "sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==", "cpu": [ "arm64" ], @@ -1508,9 +1508,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.1.tgz", - "integrity": "sha512-M2sDtw4tf57VPSjbTAN/lz1doWUqO2CbQuX3L9K6GWIR5uw9j+ROKCvvUNBY8WUbMxwaoc8mH9HmmBKsLht7+w==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.0.tgz", + "integrity": "sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==", "cpu": [ "arm64" ], @@ -1521,9 +1521,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.1.tgz", - "integrity": "sha512-mHIlRLX+hx+30cD6c4BaBOsSqdnCE4ok7/KDvjHYAHoSuveoMMxIisZFvcLhUnyZcPBXDGZTuBoalcuh43UfQQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.0.tgz", + "integrity": "sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==", "cpu": [ "x64" ], @@ -1534,9 +1534,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.1.tgz", - "integrity": "sha512-tB+RZuDi3zxFx7vDrjTNGVLu2KNyzYv+UY8jz7e4TMEoAj7iEt8Qk6xVu6mo3pgjnsHj6jnq3uuRsHp97DLwOA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.0.tgz", + "integrity": "sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==", "cpu": [ "x64" ], @@ -1547,9 +1547,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.1.tgz", - "integrity": "sha512-Hdn39PzOQowK/HZzYpCuZdJC91PE6EaGbTe2VCA9oq2u18evkisQfws0Smh9QQGNNRa/T7MOuGNQoLeXhhE3PQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.0.tgz", + "integrity": "sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==", "cpu": [ "arm64" ], @@ -1560,9 +1560,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.1.tgz", - "integrity": "sha512-tLpKb1Elm9fM8c5w3nl4N1eLTP4bCqTYw9tqUBxX8/hsxqHO3dxc2qPbZ9PNkdK4tg4iLEYn0pOUnVByRd2CbA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.0.tgz", + "integrity": "sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==", "cpu": [ "ia32" ], @@ -1573,9 +1573,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.1.tgz", - "integrity": "sha512-eAhItDX9yQtZVM3yvXS/VR3qPqcnXvnLyx1pLXl4JzyNMBNO3KC986t/iAg2zcMzpAp9JSvxB5VZGnBiNoA98w==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.0.tgz", + "integrity": "sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==", "cpu": [ "x64" ], @@ -1716,14 +1716,13 @@ } }, "node_modules/@schoero/vite-config": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/@schoero/vite-config/-/vite-config-0.0.28.tgz", - "integrity": "sha512-A+S/oCC7sR6QVwRfiP5N7b8FSTzB+whLvE+xV3hw9Zvqk+QZND9jIjHTBCY3HoLaJ3J++4d3mgYUe5spvoQjpw==", + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@schoero/vite-config/-/vite-config-0.0.29.tgz", + "integrity": "sha512-s16VfamZ3Gll5+i6x9mtjSc8+S79+fA0wDGRSaquT+jYj1TcTkCxPcshzJQDCwa9OQeG64JlLBDsXzt4miu8xQ==", "dev": true, "peerDependencies": { "vite-tsconfig-paths": "^4.2.1", - "vitest": "^0.34.6", - "vitest-github-actions-reporter": "^0.10.0" + "vitest-github-actions-reporter": "^0.11.0" } }, "node_modules/@sinclair/typebox": { @@ -1738,21 +1737,6 @@ "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", "dev": true }, - "node_modules/@types/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==", - "dev": true - }, - "node_modules/@types/chai-subset": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", - "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -1782,9 +1766,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.1.tgz", - "integrity": "sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==", + "version": "20.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", + "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -2165,13 +2149,13 @@ "peer": true }, "node_modules/@vitest/expect": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz", - "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==", + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.0-beta.5.tgz", + "integrity": "sha512-q/TPdbXuEZZNFKILEVicojSWEq1y8qPLcAiZRQD8DsYUAV2cIjsD5lJWYaAjjUAV4lzovSci3KeISQdjUdfxQQ==", "dev": true, "dependencies": { - "@vitest/spy": "0.34.6", - "@vitest/utils": "0.34.6", + "@vitest/spy": "1.0.0-beta.5", + "@vitest/utils": "1.0.0-beta.5", "chai": "^4.3.10" }, "funding": { @@ -2179,13 +2163,13 @@ } }, "node_modules/@vitest/runner": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz", - "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==", + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.0-beta.5.tgz", + "integrity": "sha512-o/6ZqQoKCIdI4dmdc4Yb1u3n56dU69SABXyO5yhFZTDjEMJs1DdCQ68JK+UcrpJMQndr6q5lTFrfHEhj4XJy6w==", "dev": true, "dependencies": { - "@vitest/utils": "0.34.6", - "p-limit": "^4.0.0", + "@vitest/utils": "1.0.0-beta.5", + "p-limit": "^5.0.0", "pathe": "^1.1.1" }, "funding": { @@ -2193,15 +2177,15 @@ } }, "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", "dev": true, "dependencies": { "yocto-queue": "^1.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2220,14 +2204,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz", - "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==", + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.0-beta.5.tgz", + "integrity": "sha512-fsWoc/mokLawqrLFqK9MHEyzJaGeDzU5gAgky2yZJR58VSsSvW+cesvmdv9ch39xHlTzFTRPgrWkNsmbdm2gbg==", "dev": true, "dependencies": { - "magic-string": "^0.30.1", + "magic-string": "^0.30.5", "pathe": "^1.1.1", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -2246,26 +2230,26 @@ } }, "node_modules/@vitest/spy": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz", - "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==", + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.0-beta.5.tgz", + "integrity": "sha512-B5dx87eCiJidWGdURMS/etHE9P3JRdFEQj8HQRGI3OhMy5XcSrdAwg5oEADoqXm32GUGc7bC8Dw/q9PiCJSBIQ==", "dev": true, "dependencies": { - "tinyspy": "^2.1.1" + "tinyspy": "^2.2.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz", - "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==", + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.0-beta.5.tgz", + "integrity": "sha512-5ippiVcc6KjnAZiMc5Gz5g1tWTG+21g5scr+cedYC+YxAjqZzOG/ncJuM/Eqq9a+/MAJJc5zOGBcDYl27x62jg==", "dev": true, "dependencies": { - "diff-sequences": "^29.4.3", - "loupe": "^2.3.6", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -5363,10 +5347,14 @@ } }, "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, "engines": { "node": ">=14" }, @@ -6672,9 +6660,9 @@ } }, "node_modules/rollup": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.4.1.tgz", - "integrity": "sha512-idZzrUpWSblPJX66i+GzrpjKE3vbYrlWirUHteoAbjKReZwa0cohAErOYA5efoMmNCdvG9yrJS+w9Kl6csaH4w==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.0.tgz", + "integrity": "sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -6684,18 +6672,18 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.4.1", - "@rollup/rollup-android-arm64": "4.4.1", - "@rollup/rollup-darwin-arm64": "4.4.1", - "@rollup/rollup-darwin-x64": "4.4.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.4.1", - "@rollup/rollup-linux-arm64-gnu": "4.4.1", - "@rollup/rollup-linux-arm64-musl": "4.4.1", - "@rollup/rollup-linux-x64-gnu": "4.4.1", - "@rollup/rollup-linux-x64-musl": "4.4.1", - "@rollup/rollup-win32-arm64-msvc": "4.4.1", - "@rollup/rollup-win32-ia32-msvc": "4.4.1", - "@rollup/rollup-win32-x64-msvc": "4.4.1", + "@rollup/rollup-android-arm-eabi": "4.5.0", + "@rollup/rollup-android-arm64": "4.5.0", + "@rollup/rollup-darwin-arm64": "4.5.0", + "@rollup/rollup-darwin-x64": "4.5.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.5.0", + "@rollup/rollup-linux-arm64-gnu": "4.5.0", + "@rollup/rollup-linux-arm64-musl": "4.5.0", + "@rollup/rollup-linux-x64-gnu": "4.5.0", + "@rollup/rollup-linux-x64-musl": "4.5.0", + "@rollup/rollup-win32-arm64-msvc": "4.5.0", + "@rollup/rollup-win32-ia32-msvc": "4.5.0", + "@rollup/rollup-win32-x64-msvc": "4.5.0", "fsevents": "~2.3.2" } }, @@ -7293,9 +7281,9 @@ "dev": true }, "node_modules/tinypool": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz", - "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz", + "integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==", "dev": true, "engines": { "node": ">=14.0.0" @@ -7706,23 +7694,22 @@ } }, "node_modules/vite-node": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz", - "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==", + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.0-beta.5.tgz", + "integrity": "sha512-iXm+GTJbR9R6V/bCM1+LQqIohL/tncZVNGIcTtzpYThBD8yiTkDPvEjy1Mf7KFACtG3qY/0VDMrkuMtqG/JFhg==", "dev": true, "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", - "mlly": "^1.4.0", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + "vite": "^5.0.0-beta.15 || ^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -7785,59 +7772,57 @@ } }, "node_modules/vitest": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", - "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.5", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.34.6", - "@vitest/runner": "0.34.6", - "@vitest/snapshot": "0.34.6", - "@vitest/spy": "0.34.6", - "@vitest/utils": "0.34.6", - "acorn": "^8.9.0", - "acorn-walk": "^8.2.0", + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.0-beta.5.tgz", + "integrity": "sha512-wmrGmXMKysR+JBvIwy0COgLrRSsZTR00dN+IpWBxGC4ACF5Mt/uYyrPLJZ0ixK4P3bxI16vd92JXMsuGnm9gQQ==", + "dev": true, + "dependencies": { + "@vitest/expect": "1.0.0-beta.5", + "@vitest/runner": "1.0.0-beta.5", + "@vitest/snapshot": "1.0.0-beta.5", + "@vitest/spy": "1.0.0-beta.5", + "@vitest/utils": "1.0.0-beta.5", + "acorn-walk": "^8.3.0", "cac": "^6.7.14", "chai": "^4.3.10", "debug": "^4.3.4", - "local-pkg": "^0.4.3", - "magic-string": "^0.30.1", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "std-env": "^3.3.3", - "strip-literal": "^1.0.1", - "tinybench": "^2.5.0", - "tinypool": "^0.7.0", - "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0", - "vite-node": "0.34.6", + "std-env": "^3.4.3", + "strip-literal": "^1.3.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.1", + "vite": "^5.0.0-beta.19 || ^5.0.0", + "vite-node": "1.0.0-beta.5", "why-is-node-running": "^2.2.2" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", "@vitest/browser": "*", "@vitest/ui": "*", "happy-dom": "*", - "jsdom": "*", - "playwright": "*", - "safaridriver": "*", - "webdriverio": "*" + "jsdom": "*" }, "peerDependenciesMeta": { "@edge-runtime/vm": { "optional": true }, + "@types/node": { + "optional": true + }, "@vitest/browser": { "optional": true }, @@ -7849,22 +7834,13 @@ }, "jsdom": { "optional": true - }, - "playwright": { - "optional": true - }, - "safaridriver": { - "optional": true - }, - "webdriverio": { - "optional": true } } }, "node_modules/vitest-github-actions-reporter": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.10.0.tgz", - "integrity": "sha512-ctFM1xlOVsXCNp5+LkaBZBhN1Iq5y9vVMZ9+Czls2CimOUKt0lH24MV1S0EzKysNUT7efs2OOSdmc6lgR8hqXg==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.11.0.tgz", + "integrity": "sha512-zvWOGyGmyZUIJ/veyRkfiMaiktZYfiBsRVdkOP0CiZDhQPZYhoFO/nFwBPn3LLIlBROFfLT+QjRtivocwuyPww==", "dev": true, "peer": true, "dependencies": { diff --git a/package.json b/package.json index 0360c86e..ef58afde 100644 --- a/package.json +++ b/package.json @@ -72,9 +72,9 @@ "@schoero/eslint-config": "^1.42.0", "@schoero/markdownlint-config": "^1.1.7", "@schoero/ts-config": "^0.3.7", - "@schoero/vite-config": "^0.0.28", + "@schoero/vite-config": "^0.0.29", "@types/minimatch": "^5.1.2", - "@types/node": "^20.9.1", + "@types/node": "^20.9.2", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", @@ -82,7 +82,7 @@ "vite": "^5.0.0", "vite-plugin-dts": "^3.6.3", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^0.34.6" + "vitest": "^1.0.0-beta.5" }, "keywords": [ "documentation", From 161b3d294c990436bf4d019c44702defd5d4199c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sun, 19 Nov 2023 07:43:02 +0100 Subject: [PATCH 06/42] ci: ignore invalid peerDependency from `github-actions-reporter` --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f9d7d04a..6b63c9c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: node-version: 20 - name: Install dependencies - run: npm ci + run: npm ci --force - name: Lint run: npm run lint:ci @@ -43,7 +43,7 @@ jobs: node-version: ${{ matrix.node }} - name: Install dependencies - run: npm ci + run: npm ci --force - name: Run tests run: npm test From 9bdad6c5dbd0597bd533fefe675eb1011d3ddccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sun, 19 Nov 2023 08:29:29 +0100 Subject: [PATCH 07/42] fix: entry point --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ef58afde..23849809 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "sideEffects": false, "exports": { ".": "./lib/browser/api/node.entry.js", - "./custom": "./lib/node/api/custom.entry.js", + "./browser": "./lib/browser/api/browser.entry.js", "./node": "./lib/node/api/node.entry.js" }, "bin": "./lib/node/bin/index.js", From d4f3a59a89c1d744879ddab5211318f291030b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sun, 19 Nov 2023 08:29:49 +0100 Subject: [PATCH 08/42] build: enforce strict `.dts` output --- vite.config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vite.config.ts b/vite.config.ts index 5e3a3ba6..82d82627 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -32,7 +32,8 @@ export default defineConfig({ dts({ entryRoot: "./src", exclude: ["src/**/*.test.ts", "test/**"], - pathsToAliases: true + pathsToAliases: true, + strictOutput: true }) ] }); From 048a952600896c33ae9c3ac66ff90b2fef0b9478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Tue, 21 Nov 2023 18:19:55 +0100 Subject: [PATCH 09/42] refactor: type cleanup --- .vscode/launch.json | 6 ++-- package-lock.json | 25 ++++++++++---- package.json | 15 ++++---- src/config/config.ts | 2 +- src/interpreter/ast/types/class.ts | 5 +-- src/interpreter/ast/types/interface.ts | 3 -- src/renderer/index.ts | 4 +-- .../markup/ast-converter/entities/circular.ts | 6 ++-- .../markup/ast-converter/entities/class.ts | 8 ++--- .../markup/ast-converter/entities/enum.ts | 10 +++--- .../markup/ast-converter/entities/event.ts | 10 +++--- .../entities/export-assignment.ts | 8 ++--- .../ast-converter/entities/function-like.ts | 8 ++--- .../ast-converter/entities/interface.ts | 8 ++--- .../markup/ast-converter/entities/module.ts | 8 ++--- .../ast-converter/entities/namespace.ts | 8 ++--- .../ast-converter/entities/parameter.ts | 14 ++++---- .../markup/ast-converter/entities/property.ts | 10 +++--- .../ast-converter/entities/signature.test.ts | 3 +- .../ast-converter/entities/signature.ts | 16 ++++----- .../ast-converter/entities/type-alias.ts | 10 +++--- .../ast-converter/entities/type-parameter.ts | 16 ++++----- .../markup/ast-converter/entities/variable.ts | 8 ++--- src/renderer/markup/ast-converter/index.ts | 14 ++++---- .../markup/ast-converter/jsdoc/generic.ts | 4 +-- .../markup/ast-converter/jsdoc/link.ts | 4 +-- .../markup/ast-converter/jsdoc/reference.ts | 4 +-- .../markup/ast-converter/jsdoc/see.ts | 4 +-- .../markup/ast-converter/jsdoc/text.ts | 4 +-- .../markup/ast-converter/jsdoc/throws.ts | 4 +-- .../markup/ast-converter/jsdoc/type.ts | 4 +-- .../markup/ast-converter/shared/constraint.ts | 4 +-- .../ast-converter/shared/description.ts | 6 ++-- .../markup/ast-converter/shared/example.ts | 6 ++-- .../ast-converter/shared/initializer.ts | 4 +-- .../markup/ast-converter/shared/jsdoc.ts | 6 ++-- .../markup/ast-converter/shared/modifiers.ts | 4 +-- .../markup/ast-converter/shared/optional.ts | 4 +-- .../markup/ast-converter/shared/position.ts | 4 +-- .../markup/ast-converter/shared/remarks.ts | 6 ++-- .../markup/ast-converter/shared/rest.ts | 4 +-- .../markup/ast-converter/shared/see.ts | 6 ++-- .../markup/ast-converter/shared/tags.test.ts | 6 ++-- .../markup/ast-converter/shared/tags.ts | 6 ++-- .../markup/ast-converter/shared/throws.ts | 6 ++-- .../markup/ast-converter/shared/type.ts | 10 +++--- .../markup/ast-converter/types/any.ts | 4 +-- .../markup/ast-converter/types/array.ts | 6 ++-- .../ast-converter/types/bigint-literal.ts | 4 +-- .../markup/ast-converter/types/bigint.ts | 4 +-- .../ast-converter/types/boolean-literal.ts | 4 +-- .../markup/ast-converter/types/boolean.ts | 4 +-- .../markup/ast-converter/types/circular.ts | 4 +-- .../markup/ast-converter/types/class.ts | 6 ++-- .../markup/ast-converter/types/conditional.ts | 6 ++-- .../markup/ast-converter/types/function.ts | 6 ++-- .../ast-converter/types/indexed-access.ts | 6 ++-- .../markup/ast-converter/types/interface.ts | 6 ++-- .../ast-converter/types/intersection.ts | 6 ++-- .../markup/ast-converter/types/mapped.ts | 6 ++-- .../markup/ast-converter/types/never.ts | 4 +-- .../markup/ast-converter/types/null.ts | 4 +-- .../ast-converter/types/number-literal.ts | 4 +-- .../markup/ast-converter/types/number.ts | 4 +-- .../ast-converter/types/object-literal.ts | 6 ++-- .../markup/ast-converter/types/object.ts | 8 ++--- .../ast-converter/types/string-literal.ts | 4 +-- .../markup/ast-converter/types/string.ts | 4 +-- .../markup/ast-converter/types/symbol.ts | 4 +-- .../ast-converter/types/template-literal.ts | 4 +-- .../markup/ast-converter/types/tuple.ts | 8 ++--- .../ast-converter/types/type-literal.ts | 6 ++-- .../ast-converter/types/type-parameter.ts | 4 +-- .../ast-converter/types/type-reference.ts | 6 ++-- .../markup/ast-converter/types/undefined.ts | 4 +-- .../markup/ast-converter/types/union.ts | 6 ++-- .../markup/ast-converter/types/unknown.ts | 4 +-- .../markup/ast-converter/types/unresolved.ts | 6 ++-- .../markup/ast-converter/types/void.ts | 4 +-- src/renderer/markup/html/ast/anchor.test.ts | 6 ++-- .../markup/markdown/ast/anchor.test.ts | 6 ++-- src/renderer/markup/registry/registry.ts | 22 ++++++------ .../markup/types-definitions/markup.ts | 27 ++++++--------- src/renderer/markup/utils/context.ts | 12 +++---- src/renderer/markup/utils/renderer.ts | 10 +++--- src/renderer/markup/utils/sort.ts | 4 +-- .../markup/utils/translations.test-d.ts | 21 ++++++++++++ src/renderer/markup/utils/translations.ts | 34 +++++++++++-------- src/renderer/utils/config.ts | 8 ++--- src/renderer/utils/context.ts | 6 ++-- src/renderer/utils/indentation.ts | 6 ++-- src/renderer/utils/new-line.ts | 4 +-- src/type-definitions/config.ts | 12 +++++-- src/type-definitions/utils.test-d.ts | 23 +------------ src/type-definitions/utils.ts | 8 ----- tests/utils/registry.ts | 4 +-- tsconfig.json | 3 +- ...ig.production.json => tsconfig.schema.json | 0 vite.config.ts | 2 +- 99 files changed, 363 insertions(+), 356 deletions(-) create mode 100644 src/renderer/markup/utils/translations.test-d.ts rename tsconfig.production.json => tsconfig.schema.json (100%) diff --git a/.vscode/launch.json b/.vscode/launch.json index 1544a737..d28e6b7d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -3,8 +3,7 @@ { "args": [ "run", - "${relativeFileDirname}/${fileBasenameNoExtension}", - "--no-threads" + "${relativeFileDirname}/${fileBasenameNoExtension}" ], "autoAttachChildProcesses": true, "console": "integratedTerminal", @@ -18,8 +17,7 @@ { "args": [ "run", - "${relativeFileDirname}/${fileBasenameNoExtension}", - "--no-threads" + "${relativeFileDirname}/${fileBasenameNoExtension}" ], "autoAttachChildProcesses": true, "console": "integratedTerminal", diff --git a/package-lock.json b/package-lock.json index 49ec4939..4a131e18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "unwritten", - "version": "0.2.8-beta.5", + "version": "0.2.8-beta.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "unwritten", - "version": "0.2.8-beta.5", + "version": "0.2.8-beta.6", "license": "MIT", "dependencies": { "cac": "^6.7.14", "minimatch": "^9.0.3", - "typescript": "^5.2.2" + "typescript": "^5.3.2" }, "bin": { "unwritten": "lib/node/bin/index.js" @@ -7401,6 +7401,19 @@ "node": ">=10" } }, + "node_modules/ts-json-schema-generator/node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/tsconfck": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.2.tgz", @@ -7501,9 +7514,9 @@ } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", + "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/package.json b/package.json index 23849809..2ab148c8 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "0.2.8-beta.5", + "version": "0.2.8-beta.6", "type": "module", "name": "unwritten", "description": "unwritten is a cli tool that auto generates documentation from your JavaScript or TypeScript project by utilizing TSDoc or JSDoc comments.", @@ -23,6 +23,7 @@ "scripts": { "build": "npm run build:browser && npm run build:node", "build:browser": "vite build --config vite.config.browser.ts", + "build:declaration": "npx tsc --outDir lib --emitDeclarationOnly", "build:dev": "npm run build:browser && npm run build:node", "build:node": "vite build", "eslint": "eslint --ext .ts,.tsx,.js,.jsx,.json,.jsonc,.yml,.md ./", @@ -47,13 +48,13 @@ "release:alpha": "npm run release -- --prerelease alpha", "release:beta": "npm run release -- --prerelease beta", "release:latest": "changelogen --bump --output --no-tag", - "schema": "ts-json-schema-generator --path './src/type-definitions/config.d.ts' --type ConfigForSchema --tsconfig ./tsconfig.production.json --out schemas/renderer/config.json", + "schema": "ts-json-schema-generator --path './src/type-definitions/config.d.ts' --type ConfigForSchema --tsconfig ./tsconfig.schema.json --out schemas/renderer/config.json", "spellcheck": "cspell lint", "spellcheck:ci": "npm run spellcheck -- --no-progress", "test": "vitest -c ./vite.config.ts", - "test:interpreter": "vitest -c ./vite.config.ts --dir src/interpreter", + "test:interpreter": "vitest --c ./vite.config.ts --dir src/interpreter", "test:renderer": "vitest -c ./vite.config.ts --dir src/renderer", - "typecheck": "tsc --project tsconfig.production.json --noEmit" + "typecheck": "tsc --noEmit" }, "engines": { "node": ">=16.9.0" @@ -64,7 +65,7 @@ "dependencies": { "cac": "^6.7.14", "minimatch": "^9.0.3", - "typescript": "^5.2.2" + "typescript": "^5.3.2" }, "devDependencies": { "@schoero/changelog-config": "^0.0.3", @@ -74,12 +75,12 @@ "@schoero/ts-config": "^0.3.7", "@schoero/vite-config": "^0.0.29", "@types/minimatch": "^5.1.2", - "@types/node": "^20.9.2", + "@types/node": "^20.9.3", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", "ts-json-schema-generator": "^1.4.0", - "vite": "^5.0.0", + "vite": "^5.0.2", "vite-plugin-dts": "^3.6.3", "vite-plugin-no-bundle": "^3.0.0", "vitest": "^1.0.0-beta.5" diff --git a/src/config/config.ts b/src/config/config.ts index 12d6935d..154dfeff 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -83,7 +83,7 @@ export async function createConfig(ctx: DefaultContext, configOrPath: Config | s } -async function createConfigForBrowser(ctx: DefaultBrowserContext, config: Config | undefined): Promise { +async function createConfigForBrowser(ctx: DefaultBrowserContext, config: Config | undefined): Promise { const defaultConfig = getDefaultConfig(); return override(defaultConfig, config); } diff --git a/src/interpreter/ast/types/class.ts b/src/interpreter/ast/types/class.ts index 09706e9b..b4e97352 100644 --- a/src/interpreter/ast/types/class.ts +++ b/src/interpreter/ast/types/class.ts @@ -9,8 +9,5 @@ import type { InterpreterContext } from "unwritten:type-definitions/context"; export const createClassType = (ctx: InterpreterContext, type: ObjectType): ClassType => withLockedType(ctx, type, () => { - const fromObjectType = createObjectLikeType(ctx, type, TypeKind.Class); - return { - ...fromObjectType - }; + return createObjectLikeType(ctx, type, TypeKind.Class); }); diff --git a/src/interpreter/ast/types/interface.ts b/src/interpreter/ast/types/interface.ts index fcef1c75..505d97c4 100644 --- a/src/interpreter/ast/types/interface.ts +++ b/src/interpreter/ast/types/interface.ts @@ -1,5 +1,4 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; -import { getNameByType } from "unwritten:interpreter:ast/shared/name"; import { createObjectLikeType } from "unwritten:interpreter:ast/types/index"; import { withLockedType } from "unwritten:interpreter:utils/ts"; @@ -15,11 +14,9 @@ export const createInterfaceByType = (ctx: InterpreterContext, type: TSInterface const objectType = createObjectLikeType(ctx, type, TypeKind.Interface); const typeParameters = type.typeParameters?.map(type => getTypeByType(ctx, type)); - const name = getNameByType(ctx, type); return { ...objectType, - name, typeParameters }; diff --git a/src/renderer/index.ts b/src/renderer/index.ts index 000f7296..dd7fe1d8 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -3,7 +3,7 @@ import { isHTMLRenderContext, renderNode as renderNodeAsHTML } from "unwritten:r import { renderNode as renderNodeAsMarkdown } from "unwritten:renderer:markup/markdown/index"; import { assert } from "unwritten:utils:general"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { Renderer } from "unwritten:type-definitions/renderer"; @@ -30,7 +30,7 @@ export async function getRenderer(renderer?: Renderer | string): Promise convertSignatureEntityForTableOfContents(ctx, signature) ); } -export function convertFunctionLikeEntityForDocumentation(ctx: MarkupRenderContexts, functionLikeEntity: FunctionLikeEntity): ConvertedFunctionEntityForDocumentation { +export function convertFunctionLikeEntityForDocumentation(ctx: MarkupRenderContext, functionLikeEntity: FunctionLikeEntity): ConvertedFunctionEntityForDocumentation { const explicitSignatures = filterOutImplicitSignatures(functionLikeEntity.signatures); return explicitSignatures.map( signature => convertSignatureEntityForDocumentation(ctx, signature) ); } -export function convertFunctionLikeEntityForType(ctx: MarkupRenderContexts, functionLikeEntity: FunctionLikeEntity): ConvertedFunctionEntityForType { +export function convertFunctionLikeEntityForType(ctx: MarkupRenderContext, functionLikeEntity: FunctionLikeEntity): ConvertedFunctionEntityForType { return functionLikeEntity.signatures.map( signature => convertSignatureEntityForType(ctx, signature) ); diff --git a/src/renderer/markup/ast-converter/entities/interface.ts b/src/renderer/markup/ast-converter/entities/interface.ts index 4c35d708..973ee806 100644 --- a/src/renderer/markup/ast-converter/entities/interface.ts +++ b/src/renderer/markup/ast-converter/entities/interface.ts @@ -33,14 +33,14 @@ import { import type { InterfaceEntity, MergedInterfaceEntity } from "unwritten:interpreter/type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedInterfaceEntityForDocumentation, ConvertedInterfaceEntityForTableOfContents } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertInterfaceEntityToAnchor(ctx: MarkupRenderContexts, interfaceEntity: InterfaceEntity | MergedInterfaceEntity, displayName?: string): AnchorNode { +export function convertInterfaceEntityToAnchor(ctx: MarkupRenderContext, interfaceEntity: InterfaceEntity | MergedInterfaceEntity, displayName?: string): AnchorNode { const id = interfaceEntity.symbolId; const name = interfaceEntity.name; @@ -69,11 +69,11 @@ export function convertInterfaceEntityToAnchor(ctx: MarkupRenderContexts, interf } -export function convertInterfaceEntityForTableOfContents(ctx: MarkupRenderContexts, interfaceEntity: InterfaceEntity | MergedInterfaceEntity): ConvertedInterfaceEntityForTableOfContents { +export function convertInterfaceEntityForTableOfContents(ctx: MarkupRenderContext, interfaceEntity: InterfaceEntity | MergedInterfaceEntity): ConvertedInterfaceEntityForTableOfContents { return convertInterfaceEntityToAnchor(ctx, interfaceEntity); } -export function convertInterfaceEntityForDocumentation(ctx: MarkupRenderContexts, interfaceEntity: InterfaceEntity | MergedInterfaceEntity): ConvertedInterfaceEntityForDocumentation { +export function convertInterfaceEntityForDocumentation(ctx: MarkupRenderContext, interfaceEntity: InterfaceEntity | MergedInterfaceEntity): ConvertedInterfaceEntityForDocumentation { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/entities/module.ts b/src/renderer/markup/ast-converter/entities/module.ts index 86dcc0e8..69dd3fc5 100644 --- a/src/renderer/markup/ast-converter/entities/module.ts +++ b/src/renderer/markup/ast-converter/entities/module.ts @@ -13,14 +13,14 @@ import { createAnchorNode, createSectionNode, createTitleNode } from "unwritten: import type { ModuleEntity } from "unwritten:interpreter/type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedModuleEntityForDocumentation, ConvertedModuleEntityForTableOfContents } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertModuleEntityToAnchor(ctx: MarkupRenderContexts, moduleEntity: ModuleEntity, displayName?: string): AnchorNode { +export function convertModuleEntityToAnchor(ctx: MarkupRenderContext, moduleEntity: ModuleEntity, displayName?: string): AnchorNode { const id = moduleEntity.symbolId; const name = moduleEntity.name; @@ -49,7 +49,7 @@ export function convertModuleEntityToAnchor(ctx: MarkupRenderContexts, moduleEnt } -export function convertModuleEntityForTableOfContents(ctx: MarkupRenderContexts, moduleEntity: ModuleEntity): ConvertedModuleEntityForTableOfContents { +export function convertModuleEntityForTableOfContents(ctx: MarkupRenderContext, moduleEntity: ModuleEntity): ConvertedModuleEntityForTableOfContents { const name = moduleEntity.name; const anchor = convertModuleEntityToAnchor(ctx, moduleEntity); @@ -67,7 +67,7 @@ export function convertModuleEntityForTableOfContents(ctx: MarkupRenderContexts, } -export function convertModuleEntityForDocumentation(ctx: MarkupRenderContexts, moduleEntity: ModuleEntity): ConvertedModuleEntityForDocumentation { +export function convertModuleEntityForDocumentation(ctx: MarkupRenderContext, moduleEntity: ModuleEntity): ConvertedModuleEntityForDocumentation { const name = moduleEntity.name; const symbolId = moduleEntity.symbolId; diff --git a/src/renderer/markup/ast-converter/entities/namespace.ts b/src/renderer/markup/ast-converter/entities/namespace.ts index ca6a8e46..293e3d2e 100644 --- a/src/renderer/markup/ast-converter/entities/namespace.ts +++ b/src/renderer/markup/ast-converter/entities/namespace.ts @@ -13,14 +13,14 @@ import { createAnchorNode, createSectionNode, createTitleNode } from "unwritten: import type { NamespaceEntity } from "unwritten:interpreter/type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedNamespaceEntityForDocumentation, ConvertedNamespaceEntityForTableOfContents } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertNamespaceEntityToAnchor(ctx: MarkupRenderContexts, namespaceEntity: NamespaceEntity, displayName?: string): AnchorNode { +export function convertNamespaceEntityToAnchor(ctx: MarkupRenderContext, namespaceEntity: NamespaceEntity, displayName?: string): AnchorNode { const id = namespaceEntity.symbolId; const name = namespaceEntity.name; @@ -49,7 +49,7 @@ export function convertNamespaceEntityToAnchor(ctx: MarkupRenderContexts, namesp } -export function convertNamespaceEntityForTableOfContents(ctx: MarkupRenderContexts, namespaceEntity: NamespaceEntity): ConvertedNamespaceEntityForTableOfContents { +export function convertNamespaceEntityForTableOfContents(ctx: MarkupRenderContext, namespaceEntity: NamespaceEntity): ConvertedNamespaceEntityForTableOfContents { const name = namespaceEntity.name; const anchor = convertNamespaceEntityToAnchor(ctx, namespaceEntity); @@ -67,7 +67,7 @@ export function convertNamespaceEntityForTableOfContents(ctx: MarkupRenderContex } -export function convertNamespaceEntityForDocumentation(ctx: MarkupRenderContexts, namespaceEntity: NamespaceEntity): ConvertedNamespaceEntityForDocumentation { +export function convertNamespaceEntityForDocumentation(ctx: MarkupRenderContext, namespaceEntity: NamespaceEntity): ConvertedNamespaceEntityForDocumentation { const name = namespaceEntity.name; const symbolId = namespaceEntity.symbolId; diff --git a/src/renderer/markup/ast-converter/entities/parameter.ts b/src/renderer/markup/ast-converter/entities/parameter.ts index 105b4940..982900f5 100644 --- a/src/renderer/markup/ast-converter/entities/parameter.ts +++ b/src/renderer/markup/ast-converter/entities/parameter.ts @@ -18,7 +18,7 @@ import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { ParameterEntity } from "unwritten:interpreter/type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedParameterEntitiesForDocumentation, ConvertedParameterEntitiesForSignature, @@ -26,7 +26,7 @@ import type { } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertParameterEntityToAnchor(ctx: MarkupRenderContexts, parameterEntity: ParameterEntity, displayName?: string): AnchorNode { +export function convertParameterEntityToAnchor(ctx: MarkupRenderContext, parameterEntity: ParameterEntity, displayName?: string): AnchorNode { const name = parameterEntity.name; const id = parameterEntity.symbolId; @@ -39,7 +39,7 @@ export function convertParameterEntityToAnchor(ctx: MarkupRenderContexts, parame } -export function convertParameterEntitiesForSignature(ctx: MarkupRenderContexts, parameterEntities: ParameterEntity[] | undefined): ConvertedParameterEntitiesForSignature { +export function convertParameterEntitiesForSignature(ctx: MarkupRenderContext, parameterEntities: ParameterEntity[] | undefined): ConvertedParameterEntitiesForSignature { if(parameterEntities === undefined){ return undefined; @@ -82,7 +82,7 @@ export function convertParameterEntitiesForSignature(ctx: MarkupRenderContexts, } -export function convertParameterEntitiesForDocumentation(ctx: MarkupRenderContexts, parameterEntities: ParameterEntity[] | undefined): ConvertedParameterEntitiesForDocumentation { +export function convertParameterEntitiesForDocumentation(ctx: MarkupRenderContext, parameterEntities: ParameterEntity[] | undefined): ConvertedParameterEntitiesForDocumentation { if(!parameterEntities || parameterEntities.length === 0){ return undefined; @@ -108,7 +108,7 @@ export function convertParameterEntitiesForDocumentation(ctx: MarkupRenderContex } -export function convertParameterEntitiesForType(ctx: MarkupRenderContexts, parameterEntities: ParameterEntity[] | undefined): ConvertedParameterEntitiesForType { +export function convertParameterEntitiesForType(ctx: MarkupRenderContext, parameterEntities: ParameterEntity[] | undefined): ConvertedParameterEntitiesForType { if(!parameterEntities || parameterEntities.length === 0){ return undefined; @@ -134,7 +134,7 @@ export function convertParameterEntitiesForType(ctx: MarkupRenderContexts, param } -function convertParameterEntityForDocumentation(ctx: MarkupRenderContexts, parameterEntity: ParameterEntity) { +function convertParameterEntityForDocumentation(ctx: MarkupRenderContext, parameterEntity: ParameterEntity) { const renderConfig = getRenderConfig(ctx); const translate = getTranslator(ctx); @@ -177,7 +177,7 @@ function convertParameterEntityForDocumentation(ctx: MarkupRenderContexts, param } -function convertParameterEntityForSignature(ctx: MarkupRenderContexts, parameterEntity: ParameterEntity) { +function convertParameterEntityForSignature(ctx: MarkupRenderContext, parameterEntity: ParameterEntity) { const rest = parameterEntity.rest === true ? "..." : ""; const name = parameterEntity.name; diff --git a/src/renderer/markup/ast-converter/entities/property.ts b/src/renderer/markup/ast-converter/entities/property.ts index d1dc4c3f..9035fef8 100644 --- a/src/renderer/markup/ast-converter/entities/property.ts +++ b/src/renderer/markup/ast-converter/entities/property.ts @@ -31,7 +31,7 @@ import { encapsulate, renderEntityPrefix, spaceBetween } from "unwritten:rendere import type { PropertyEntity } from "unwritten:interpreter/type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedPropertyEntityForDocumentation, ConvertedPropertyEntityForTableOfContents, @@ -39,7 +39,7 @@ import type { } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertPropertyEntityToAnchor(ctx: MarkupRenderContexts, propertyEntity: PropertyEntity, displayName?: string): AnchorNode { +export function convertPropertyEntityToAnchor(ctx: MarkupRenderContext, propertyEntity: PropertyEntity, displayName?: string): AnchorNode { const id = propertyEntity.symbolId; const name = propertyEntity.name; @@ -69,11 +69,11 @@ export function convertPropertyEntityToAnchor(ctx: MarkupRenderContexts, propert } -export function convertPropertyEntityForTableOfContents(ctx: MarkupRenderContexts, propertyEntity: PropertyEntity): ConvertedPropertyEntityForTableOfContents { +export function convertPropertyEntityForTableOfContents(ctx: MarkupRenderContext, propertyEntity: PropertyEntity): ConvertedPropertyEntityForTableOfContents { return convertPropertyEntityToAnchor(ctx, propertyEntity); } -export function convertPropertyEntityForDocumentation(ctx: MarkupRenderContexts, propertyEntity: PropertyEntity): ConvertedPropertyEntityForDocumentation { +export function convertPropertyEntityForDocumentation(ctx: MarkupRenderContext, propertyEntity: PropertyEntity): ConvertedPropertyEntityForDocumentation { const name = propertyEntity.name; const symbolId = propertyEntity.symbolId; @@ -113,7 +113,7 @@ export function convertPropertyEntityForDocumentation(ctx: MarkupRenderContexts, } -export function convertPropertyEntityForType(ctx: MarkupRenderContexts, propertyEntity: PropertyEntity): ConvertedPropertyEntityForType { +export function convertPropertyEntityForType(ctx: MarkupRenderContext, propertyEntity: PropertyEntity): ConvertedPropertyEntityForType { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/entities/signature.test.ts b/src/renderer/markup/ast-converter/entities/signature.test.ts index 29000f73..515861e8 100644 --- a/src/renderer/markup/ast-converter/entities/signature.test.ts +++ b/src/renderer/markup/ast-converter/entities/signature.test.ts @@ -1,7 +1,6 @@ import { assert, expect, it } from "vitest"; import { createFunctionEntity, createVariableEntity } from "unwritten:interpreter/ast/entities/index"; -import { EntityKind } from "unwritten:interpreter/enums/entity"; import { filterOutImplicitSignatures } from "unwritten:renderer/utils/private-members"; import { convertSignatureEntityForDocumentation, @@ -25,7 +24,7 @@ import { ts } from "unwritten:utils/template"; import type { ObjectLiteralType } from "unwritten:interpreter/type-definitions/types"; -scope("MarkupRenderer", EntityKind.Signature, () => { +scope("MarkupRenderer", "Signature", () => { { diff --git a/src/renderer/markup/ast-converter/entities/signature.ts b/src/renderer/markup/ast-converter/entities/signature.ts index 77ec5cdf..a74e71ae 100644 --- a/src/renderer/markup/ast-converter/entities/signature.ts +++ b/src/renderer/markup/ast-converter/entities/signature.ts @@ -47,7 +47,7 @@ import { encapsulate, renderEntityPrefix, spaceBetween } from "unwritten:rendere import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { ExplicitSignatureEntity, SignatureEntity } from "unwritten:interpreter/type-definitions/entities"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { AnchorNode, ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { ConvertedPropertyEntityForTableOfContents, @@ -58,7 +58,7 @@ import type { } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertSignatureEntityToAnchor(ctx: MarkupRenderContexts, signatureEntity: ExplicitSignatureEntity, displayName?: string): AnchorNode { +export function convertSignatureEntityToAnchor(ctx: MarkupRenderContext, signatureEntity: ExplicitSignatureEntity, displayName?: string): AnchorNode { const id = signatureEntity.declarationId; @@ -88,11 +88,11 @@ export function convertSignatureEntityToAnchor(ctx: MarkupRenderContexts, signat } -export function convertSignatureEntityForTableOfContents(ctx: MarkupRenderContexts, signatureEntity: ExplicitSignatureEntity): ConvertedPropertyEntityForTableOfContents { +export function convertSignatureEntityForTableOfContents(ctx: MarkupRenderContext, signatureEntity: ExplicitSignatureEntity): ConvertedPropertyEntityForTableOfContents { return convertSignatureEntityToAnchor(ctx, signatureEntity); } -export function convertSignatureEntityForDocumentation(ctx: MarkupRenderContexts, signatureEntity: ExplicitSignatureEntity): ConvertedSignatureEntityForDocumentation { +export function convertSignatureEntityForDocumentation(ctx: MarkupRenderContext, signatureEntity: ExplicitSignatureEntity): ConvertedSignatureEntityForDocumentation { const declarationId = signatureEntity.declarationId; const symbolId = signatureEntity.symbolId; @@ -141,7 +141,7 @@ export function convertSignatureEntityForDocumentation(ctx: MarkupRenderContexts } -export function convertSignatureEntityForType(ctx: MarkupRenderContexts, signatureEntity: SignatureEntity): ConvertedSignatureEntityForType { +export function convertSignatureEntityForType(ctx: MarkupRenderContext, signatureEntity: SignatureEntity): ConvertedSignatureEntityForType { const signature = convertSignature(ctx, signatureEntity, "documentation"); const tags = convertTagsForType(ctx, signatureEntity); @@ -173,7 +173,7 @@ export function convertSignatureEntityForType(ctx: MarkupRenderContexts, signatu } -function convertSignature(ctx: MarkupRenderContexts, signatureEntity: SignatureEntity, target: "documentation" | "tableOfContents"): ASTNode { +function convertSignature(ctx: MarkupRenderContext, signatureEntity: SignatureEntity, target: "documentation" | "tableOfContents"): ASTNode { const renderConfig = getRenderConfig(ctx); @@ -209,7 +209,7 @@ function convertSignature(ctx: MarkupRenderContexts, signatureEntity: SignatureE } -function convertReturnTypeForDocumentation(ctx: MarkupRenderContexts, signatureEntity: SignatureEntity): ConvertedReturnTypeForDocumentation { +function convertReturnTypeForDocumentation(ctx: MarkupRenderContext, signatureEntity: SignatureEntity): ConvertedReturnTypeForDocumentation { const translate = getTranslator(ctx); @@ -233,7 +233,7 @@ function convertReturnTypeForDocumentation(ctx: MarkupRenderContexts, signatureE } -function convertReturnTypeForType(ctx: MarkupRenderContexts, signatureEntity: SignatureEntity): ConvertedReturnTypeForType { +function convertReturnTypeForType(ctx: MarkupRenderContext, signatureEntity: SignatureEntity): ConvertedReturnTypeForType { const translate = getTranslator(ctx); diff --git a/src/renderer/markup/ast-converter/entities/type-alias.ts b/src/renderer/markup/ast-converter/entities/type-alias.ts index e0cf9c0a..b7153d8b 100644 --- a/src/renderer/markup/ast-converter/entities/type-alias.ts +++ b/src/renderer/markup/ast-converter/entities/type-alias.ts @@ -19,14 +19,14 @@ import { encapsulate, renderEntityPrefix } from "unwritten:renderer:markup/utils import type { TypeAliasEntity } from "unwritten:interpreter/type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedTypeAliasEntityForDocumentation, ConvertedTypeAliasEntityForTableOfContents } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTypeAliasEntityToAnchor(ctx: MarkupRenderContexts, typeAliasEntity: TypeAliasEntity, displayName?: string): AnchorNode { +export function convertTypeAliasEntityToAnchor(ctx: MarkupRenderContext, typeAliasEntity: TypeAliasEntity, displayName?: string): AnchorNode { const id = typeAliasEntity.symbolId; @@ -54,11 +54,11 @@ export function convertTypeAliasEntityToAnchor(ctx: MarkupRenderContexts, typeAl } -export function convertTypeAliasEntityForTableOfContents(ctx: MarkupRenderContexts, typeAliasEntity: TypeAliasEntity): ConvertedTypeAliasEntityForTableOfContents { +export function convertTypeAliasEntityForTableOfContents(ctx: MarkupRenderContext, typeAliasEntity: TypeAliasEntity): ConvertedTypeAliasEntityForTableOfContents { return convertTypeAliasEntityToAnchor(ctx, typeAliasEntity); } -export function convertTypeAliasEntityForDocumentation(ctx: MarkupRenderContexts, typeAliasEntity: TypeAliasEntity): ConvertedTypeAliasEntityForDocumentation { +export function convertTypeAliasEntityForDocumentation(ctx: MarkupRenderContext, typeAliasEntity: TypeAliasEntity): ConvertedTypeAliasEntityForDocumentation { const signature = convertTypeAliasSignature(ctx, typeAliasEntity, "documentation"); const position = convertPositionForDocumentation(ctx, typeAliasEntity.position); @@ -96,7 +96,7 @@ export function convertTypeAliasEntityForDocumentation(ctx: MarkupRenderContexts } -function convertTypeAliasSignature(ctx: MarkupRenderContexts, typeAliasEntity: TypeAliasEntity, target: "documentation" | "tableOfContents") { +function convertTypeAliasSignature(ctx: MarkupRenderContext, typeAliasEntity: TypeAliasEntity, target: "documentation" | "tableOfContents") { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/entities/type-parameter.ts b/src/renderer/markup/ast-converter/entities/type-parameter.ts index b579a9f7..bd4f6d02 100644 --- a/src/renderer/markup/ast-converter/entities/type-parameter.ts +++ b/src/renderer/markup/ast-converter/entities/type-parameter.ts @@ -19,7 +19,7 @@ import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { TypeParameterEntity } from "unwritten:interpreter/type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedTypeParameterEntitiesForDocumentation, ConvertedTypeParameterEntitiesForSignature, @@ -28,7 +28,7 @@ import type { } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTypeParameterEntityToAnchor(ctx: MarkupRenderContexts, typeParameterEntity: TypeParameterEntity, displayName?: string): AnchorNode { +export function convertTypeParameterEntityToAnchor(ctx: MarkupRenderContext, typeParameterEntity: TypeParameterEntity, displayName?: string): AnchorNode { const name = typeParameterEntity.name; const id = typeParameterEntity.symbolId; @@ -41,7 +41,7 @@ export function convertTypeParameterEntityToAnchor(ctx: MarkupRenderContexts, ty } -export function convertTypeParameterEntitiesForSignature(ctx: MarkupRenderContexts, typeParameterEntities: TypeParameterEntity[]): ConvertedTypeParameterEntitiesForSignature { +export function convertTypeParameterEntitiesForSignature(ctx: MarkupRenderContext, typeParameterEntities: TypeParameterEntity[]): ConvertedTypeParameterEntitiesForSignature { const convertedTypeParameters = typeParameterEntities.flatMap((typeParameter, index) => { const convertedTypeParameter = convertTypeParameterEntityForSignature(ctx, typeParameter); if(index === 0){ @@ -55,7 +55,7 @@ export function convertTypeParameterEntitiesForSignature(ctx: MarkupRenderContex } -export function convertTypeParameterEntitiesForDocumentation(ctx: MarkupRenderContexts, parameterEntities: TypeParameterEntity[] | undefined): ConvertedTypeParameterEntitiesForDocumentation { +export function convertTypeParameterEntitiesForDocumentation(ctx: MarkupRenderContext, parameterEntities: TypeParameterEntity[] | undefined): ConvertedTypeParameterEntitiesForDocumentation { if(parameterEntities === undefined || parameterEntities.length === 0){ return; @@ -83,7 +83,7 @@ export function convertTypeParameterEntitiesForDocumentation(ctx: MarkupRenderCo } -export function convertTypeParameterEntitiesForType(ctx: MarkupRenderContexts, typeParameterEntities: TypeParameterEntity[] | undefined): ConvertedTypeParameterEntitiesForType { +export function convertTypeParameterEntitiesForType(ctx: MarkupRenderContext, typeParameterEntities: TypeParameterEntity[] | undefined): ConvertedTypeParameterEntitiesForType { const translate = getTranslator(ctx); const renderConfig = getRenderConfig(ctx); @@ -109,7 +109,7 @@ export function convertTypeParameterEntitiesForType(ctx: MarkupRenderContexts, t } -export function convertTypeParameterEntityForDocumentation(ctx: MarkupRenderContexts, typeParameterEntity: TypeParameterEntity): ConvertedTypeParameterEntityForDocumentation { +export function convertTypeParameterEntityForDocumentation(ctx: MarkupRenderContext, typeParameterEntity: TypeParameterEntity): ConvertedTypeParameterEntityForDocumentation { const renderConfig = getRenderConfig(ctx); @@ -150,10 +150,10 @@ export function convertTypeParameterEntityForDocumentation(ctx: MarkupRenderCont } -function convertTypeParameterEntityForType(ctx: MarkupRenderContexts, typeParameterEntity: TypeParameterEntity) { +function convertTypeParameterEntityForType(ctx: MarkupRenderContext, typeParameterEntity: TypeParameterEntity) { return convertTypeParameterEntityForDocumentation(ctx, typeParameterEntity); } -function convertTypeParameterEntityForSignature(ctx: MarkupRenderContexts, typeParameterEntity: TypeParameterEntity) { +function convertTypeParameterEntityForSignature(ctx: MarkupRenderContext, typeParameterEntity: TypeParameterEntity) { return typeParameterEntity.name; } diff --git a/src/renderer/markup/ast-converter/entities/variable.ts b/src/renderer/markup/ast-converter/entities/variable.ts index 8fbfb590..8d66c5ae 100644 --- a/src/renderer/markup/ast-converter/entities/variable.ts +++ b/src/renderer/markup/ast-converter/entities/variable.ts @@ -13,14 +13,14 @@ import { createAnchorNode, createSectionNode, createTitleNode } from "unwritten: import type { VariableEntity } from "unwritten:interpreter/type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedVariableEntityForDocumentation, ConvertedVariableEntityForTableOfContents } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertVariableEntityToAnchor(ctx: MarkupRenderContexts, variableEntity: VariableEntity, displayName?: string): AnchorNode { +export function convertVariableEntityToAnchor(ctx: MarkupRenderContext, variableEntity: VariableEntity, displayName?: string): AnchorNode { const id = variableEntity.symbolId; const name = variableEntity.name; @@ -52,11 +52,11 @@ export function convertVariableEntityToAnchor(ctx: MarkupRenderContexts, variabl } -export function convertVariableEntityForTableOfContents(ctx: MarkupRenderContexts, variableEntity: VariableEntity): ConvertedVariableEntityForTableOfContents { +export function convertVariableEntityForTableOfContents(ctx: MarkupRenderContext, variableEntity: VariableEntity): ConvertedVariableEntityForTableOfContents { return convertVariableEntityToAnchor(ctx, variableEntity); } -export function convertVariableEntityForDocumentation(ctx: MarkupRenderContexts, variableEntity: VariableEntity): ConvertedVariableEntityForDocumentation { +export function convertVariableEntityForDocumentation(ctx: MarkupRenderContext, variableEntity: VariableEntity): ConvertedVariableEntityForDocumentation { const name = variableEntity.name; const symbolId = variableEntity.symbolId; diff --git a/src/renderer/markup/ast-converter/index.ts b/src/renderer/markup/ast-converter/index.ts index ccab5f00..c0c26155 100644 --- a/src/renderer/markup/ast-converter/index.ts +++ b/src/renderer/markup/ast-converter/index.ts @@ -56,7 +56,7 @@ import { import { assert } from "unwritten:utils/general.js"; import type { Entity, ExportableEntity, LinkableEntity } from "unwritten:interpreter/type-definitions/entities"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ListNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { ConvertedCategoryForDocumentation, @@ -66,7 +66,7 @@ import type { } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertEntityToAnchor(ctx: MarkupRenderContexts, entity: LinkableEntity, displayName?: string) { +export function convertEntityToAnchor(ctx: MarkupRenderContext, entity: LinkableEntity, displayName?: string) { if(isExplicitSignatureEntity(entity)){ return convertSignatureEntityToAnchor(ctx, entity, displayName); @@ -100,7 +100,7 @@ export function convertEntityToAnchor(ctx: MarkupRenderContexts, entity: Linkabl } -export function convertEntityForTableOfContents(ctx: MarkupRenderContexts, entity: ExportableEntity): ConvertedEntitiesForTableOfContents { +export function convertEntityForTableOfContents(ctx: MarkupRenderContext, entity: ExportableEntity): ConvertedEntitiesForTableOfContents { if(isFunctionEntity(entity)){ return convertFunctionLikeEntityForTableOfContents(ctx, entity); @@ -127,7 +127,7 @@ export function convertEntityForTableOfContents(ctx: MarkupRenderContexts, entit } -export function convertEntityForDocumentation(ctx: MarkupRenderContexts, entity: ExportableEntity): ConvertedEntitiesForDocumentation { +export function convertEntityForDocumentation(ctx: MarkupRenderContext, entity: ExportableEntity): ConvertedEntitiesForDocumentation { if(isFunctionEntity(entity)){ return convertFunctionLikeEntityForDocumentation(ctx, entity); @@ -154,7 +154,7 @@ export function convertEntityForDocumentation(ctx: MarkupRenderContexts, entity: } -export function convertToMarkupAST(ctx: MarkupRenderContexts, entities: ExportableEntity[]) { +export function convertToMarkupAST(ctx: MarkupRenderContext, entities: ExportableEntity[]) { const sortedEntities = sortExportableEntities(ctx, entities); @@ -169,7 +169,7 @@ export function convertToMarkupAST(ctx: MarkupRenderContexts, entities: Exportab } -export function createTableOfContents(ctx: MarkupRenderContexts, entities: ExportableEntity[]): ListNode { +export function createTableOfContents(ctx: MarkupRenderContext, entities: ExportableEntity[]): ListNode { const translate = getTranslator(ctx); @@ -201,7 +201,7 @@ export function createTableOfContents(ctx: MarkupRenderContexts, entities: Expor } -export function createDocumentation(ctx: MarkupRenderContexts, entities: ExportableEntity[]): ConvertedCategoryForDocumentation[] { +export function createDocumentation(ctx: MarkupRenderContext, entities: ExportableEntity[]): ConvertedCategoryForDocumentation[] { const translate = getTranslator(ctx); diff --git a/src/renderer/markup/ast-converter/jsdoc/generic.ts b/src/renderer/markup/ast-converter/jsdoc/generic.ts index d3692d5f..ca8932b4 100644 --- a/src/renderer/markup/ast-converter/jsdoc/generic.ts +++ b/src/renderer/markup/ast-converter/jsdoc/generic.ts @@ -1,10 +1,10 @@ import { convertJSDocNodes } from "unwritten:renderer/markup/ast-converter/shared/jsdoc"; import type { JSDocGenericTag } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocTags } from "unwritten:renderer/markup/types-definitions/renderer"; -export function convertJSDocGenericTag(ctx: MarkupRenderContexts, jsdocGenericTag: JSDocGenericTag): ConvertedJSDocTags { +export function convertJSDocGenericTag(ctx: MarkupRenderContext, jsdocGenericTag: JSDocGenericTag): ConvertedJSDocTags { return convertJSDocNodes(ctx, jsdocGenericTag.content); } diff --git a/src/renderer/markup/ast-converter/jsdoc/link.ts b/src/renderer/markup/ast-converter/jsdoc/link.ts index 04dbcc62..6f49d18c 100644 --- a/src/renderer/markup/ast-converter/jsdoc/link.ts +++ b/src/renderer/markup/ast-converter/jsdoc/link.ts @@ -2,11 +2,11 @@ import { convertJSDocReference } from "unwritten:renderer/markup/ast-converter/j import { createLinkNode } from "unwritten:renderer/markup/utils/nodes"; import type { JSDocLink } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocTags } from "unwritten:renderer/markup/types-definitions/renderer"; -export function convertJSDocLink(ctx: MarkupRenderContexts, jsdocLink: JSDocLink): ConvertedJSDocTags { +export function convertJSDocLink(ctx: MarkupRenderContext, jsdocLink: JSDocLink): ConvertedJSDocTags { if(jsdocLink.reference){ jsdocLink.text && (jsdocLink.reference.name = jsdocLink.text); return convertJSDocReference(ctx, jsdocLink.reference); diff --git a/src/renderer/markup/ast-converter/jsdoc/reference.ts b/src/renderer/markup/ast-converter/jsdoc/reference.ts index 03a78ba0..7dc76aef 100644 --- a/src/renderer/markup/ast-converter/jsdoc/reference.ts +++ b/src/renderer/markup/ast-converter/jsdoc/reference.ts @@ -7,11 +7,11 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { isFunctionLikeEntity, isLinkableEntity } from "unwritten:typeguards/entities"; import type { JSDocReference } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocReference } from "unwritten:renderer/markup/types-definitions/renderer"; -export function convertJSDocReference(ctx: MarkupRenderContexts, jsdocReference: JSDocReference): ConvertedJSDocReference { +export function convertJSDocReference(ctx: MarkupRenderContext, jsdocReference: JSDocReference): ConvertedJSDocReference { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/jsdoc/see.ts b/src/renderer/markup/ast-converter/jsdoc/see.ts index b5492aed..fea053f6 100644 --- a/src/renderer/markup/ast-converter/jsdoc/see.ts +++ b/src/renderer/markup/ast-converter/jsdoc/see.ts @@ -3,11 +3,11 @@ import { convertJSDocNodes } from "unwritten:renderer/markup/ast-converter/share import { spaceBetween } from "unwritten:renderer/markup/utils/renderer"; import type { JSDocSeeTag } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocSeeTag } from "unwritten:renderer/markup/types-definitions/renderer"; -export function convertJSDocSeeTag(ctx: MarkupRenderContexts, jsdocSeeTag: JSDocSeeTag): ConvertedJSDocSeeTag { +export function convertJSDocSeeTag(ctx: MarkupRenderContext, jsdocSeeTag: JSDocSeeTag): ConvertedJSDocSeeTag { const content = convertJSDocNodes(ctx, jsdocSeeTag.content); diff --git a/src/renderer/markup/ast-converter/jsdoc/text.ts b/src/renderer/markup/ast-converter/jsdoc/text.ts index 7aed10a3..6aa0c9b0 100644 --- a/src/renderer/markup/ast-converter/jsdoc/text.ts +++ b/src/renderer/markup/ast-converter/jsdoc/text.ts @@ -1,8 +1,8 @@ import type { JSDocText } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocTags } from "unwritten:renderer/markup/types-definitions/renderer"; -export function convertJSDocText(ctx: MarkupRenderContexts, jsdocText: JSDocText): ConvertedJSDocTags { +export function convertJSDocText(ctx: MarkupRenderContext, jsdocText: JSDocText): ConvertedJSDocTags { return jsdocText.text; } diff --git a/src/renderer/markup/ast-converter/jsdoc/throws.ts b/src/renderer/markup/ast-converter/jsdoc/throws.ts index 811081af..e08298d2 100644 --- a/src/renderer/markup/ast-converter/jsdoc/throws.ts +++ b/src/renderer/markup/ast-converter/jsdoc/throws.ts @@ -3,11 +3,11 @@ import { convertJSDocNodes } from "unwritten:renderer/markup/ast-converter/share import { spaceBetween } from "unwritten:renderer/markup/utils/renderer"; import type { JSDocThrowsTag } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocThrowsTag } from "unwritten:renderer/markup/types-definitions/renderer"; -export function convertJSDocThrowsTag(ctx: MarkupRenderContexts, jsdocThrowsTag: JSDocThrowsTag): ConvertedJSDocThrowsTag { +export function convertJSDocThrowsTag(ctx: MarkupRenderContext, jsdocThrowsTag: JSDocThrowsTag): ConvertedJSDocThrowsTag { const content = convertJSDocNodes(ctx, jsdocThrowsTag.content); diff --git a/src/renderer/markup/ast-converter/jsdoc/type.ts b/src/renderer/markup/ast-converter/jsdoc/type.ts index 1a2bae63..958f7f11 100644 --- a/src/renderer/markup/ast-converter/jsdoc/type.ts +++ b/src/renderer/markup/ast-converter/jsdoc/type.ts @@ -6,11 +6,11 @@ import { encapsulate } from "unwritten:renderer/markup/utils/renderer"; import { getRenderConfig } from "unwritten:renderer/utils/config"; import type { JSDocType } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocType } from "unwritten:renderer/markup/types-definitions/renderer"; -export function convertJSDocType(ctx: MarkupRenderContexts, jsdocType: JSDocType): ConvertedJSDocType { +export function convertJSDocType(ctx: MarkupRenderContext, jsdocType: JSDocType): ConvertedJSDocType { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/shared/constraint.ts b/src/renderer/markup/ast-converter/shared/constraint.ts index 0378cb73..688948de 100644 --- a/src/renderer/markup/ast-converter/shared/constraint.ts +++ b/src/renderer/markup/ast-converter/shared/constraint.ts @@ -6,10 +6,10 @@ import { getTranslator } from "unwritten:renderer/markup/utils/translations"; import { isMultilineType } from "unwritten:renderer/markup/utils/types"; import type { Type } from "unwritten:interpreter/type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; -export function convertConstraintForType(ctx: MarkupRenderContexts, type: Type) { +export function convertConstraintForType(ctx: MarkupRenderContext, type: Type) { const translate = getTranslator(ctx); diff --git a/src/renderer/markup/ast-converter/shared/description.ts b/src/renderer/markup/ast-converter/shared/description.ts index 6266faa9..611363b6 100644 --- a/src/renderer/markup/ast-converter/shared/description.ts +++ b/src/renderer/markup/ast-converter/shared/description.ts @@ -5,14 +5,14 @@ import { createParagraphNode, createTitleNode } from "unwritten:renderer:markup/ import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { Description } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedDescriptionForDocumentation, ConvertedDescriptionForType } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertDescriptionForDocumentation(ctx: MarkupRenderContexts, description: Description): ConvertedDescriptionForDocumentation { +export function convertDescriptionForDocumentation(ctx: MarkupRenderContext, description: Description): ConvertedDescriptionForDocumentation { const translate = getTranslator(ctx); @@ -34,7 +34,7 @@ export function convertDescriptionForDocumentation(ctx: MarkupRenderContexts, de } -export function convertDescriptionForType(ctx: MarkupRenderContexts, description: Description): ConvertedDescriptionForType { +export function convertDescriptionForType(ctx: MarkupRenderContext, description: Description): ConvertedDescriptionForType { return spaceBetween( ...convertJSDocNodes(ctx, description) ); diff --git a/src/renderer/markup/ast-converter/shared/example.ts b/src/renderer/markup/ast-converter/shared/example.ts index bf052907..a32218b0 100644 --- a/src/renderer/markup/ast-converter/shared/example.ts +++ b/src/renderer/markup/ast-converter/shared/example.ts @@ -4,14 +4,14 @@ import { createInlineTitleNode, createParagraphNode, createTitleNode } from "unw import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { Example } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedExamples, ConvertedExamplesForType } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertExamplesForDocumentation(ctx: MarkupRenderContexts, examples: Example): ConvertedExamples { +export function convertExamplesForDocumentation(ctx: MarkupRenderContext, examples: Example): ConvertedExamples { if(examples.length === 0){ return; @@ -37,7 +37,7 @@ export function convertExamplesForDocumentation(ctx: MarkupRenderContexts, examp } -export function convertExamplesForType(ctx: MarkupRenderContexts, examples: Example): ConvertedExamplesForType { +export function convertExamplesForType(ctx: MarkupRenderContext, examples: Example): ConvertedExamplesForType { if(examples.length === 0){ return; diff --git a/src/renderer/markup/ast-converter/shared/initializer.ts b/src/renderer/markup/ast-converter/shared/initializer.ts index 17db791e..a8d62ed9 100644 --- a/src/renderer/markup/ast-converter/shared/initializer.ts +++ b/src/renderer/markup/ast-converter/shared/initializer.ts @@ -6,10 +6,10 @@ import { getTranslator } from "unwritten:renderer/markup/utils/translations"; import { isMultilineType } from "unwritten:renderer/markup/utils/types"; import type { Type } from "unwritten:interpreter/type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; -export function convertInitializerForType(ctx: MarkupRenderContexts, type: Type) { +export function convertInitializerForType(ctx: MarkupRenderContext, type: Type) { const translate = getTranslator(ctx); diff --git a/src/renderer/markup/ast-converter/shared/jsdoc.ts b/src/renderer/markup/ast-converter/shared/jsdoc.ts index 8dca11b9..54a7754c 100644 --- a/src/renderer/markup/ast-converter/shared/jsdoc.ts +++ b/src/renderer/markup/ast-converter/shared/jsdoc.ts @@ -21,11 +21,11 @@ import { } from "unwritten:typeguards/jsdoc"; import type { JSDocProperties, JSDocTags } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; -export function convertJSDocNodes(ctx: MarkupRenderContexts, jsdocTags: JSDocTags): ASTNode[] { +export function convertJSDocNodes(ctx: MarkupRenderContext, jsdocTags: JSDocTags): ASTNode[] { return jsdocTags.map(jsdocTag => { @@ -49,7 +49,7 @@ export function convertJSDocNodes(ctx: MarkupRenderContexts, jsdocTags: JSDocTag } -export function convertJSDocTags(ctx: MarkupRenderContexts, entityWithTags: JSDocProperties): ASTNode[] { +export function convertJSDocTags(ctx: MarkupRenderContext, entityWithTags: JSDocProperties): ASTNode[] { const jsdocKeyTagNames = Object.values(RenderableJSDocKeyTags); const jsdocValueTagNames = Object.values(RenderableJSDocValueTags); diff --git a/src/renderer/markup/ast-converter/shared/modifiers.ts b/src/renderer/markup/ast-converter/shared/modifiers.ts index 5aded6a7..8f6ba2ad 100644 --- a/src/renderer/markup/ast-converter/shared/modifiers.ts +++ b/src/renderer/markup/ast-converter/shared/modifiers.ts @@ -1,11 +1,11 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { encapsulate, spaceBetween } from "unwritten:renderer:markup/utils/renderer"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; -export function convertModifiers(ctx: MarkupRenderContexts, modifiers?: string[]): ASTNode[] { +export function convertModifiers(ctx: MarkupRenderContext, modifiers?: string[]): ASTNode[] { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/shared/optional.ts b/src/renderer/markup/ast-converter/shared/optional.ts index 3a2dc6f8..eb0a82fd 100644 --- a/src/renderer/markup/ast-converter/shared/optional.ts +++ b/src/renderer/markup/ast-converter/shared/optional.ts @@ -3,11 +3,11 @@ import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { Optional } from "unwritten:interpreter/type-definitions/shared"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; -export function convertOptional(ctx: MarkupRenderContexts, entity: Optional): ASTNode[] { +export function convertOptional(ctx: MarkupRenderContext, entity: Optional): ASTNode[] { const translate = getTranslator(ctx); const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/shared/position.ts b/src/renderer/markup/ast-converter/shared/position.ts index a270a5bb..86227dcb 100644 --- a/src/renderer/markup/ast-converter/shared/position.ts +++ b/src/renderer/markup/ast-converter/shared/position.ts @@ -8,11 +8,11 @@ import { import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { Position } from "unwritten:interpreter:type-definitions/shared"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedPosition } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertPositionForDocumentation(ctx: MarkupRenderContexts, position?: Position): ConvertedPosition { +export function convertPositionForDocumentation(ctx: MarkupRenderContext, position?: Position): ConvertedPosition { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/shared/remarks.ts b/src/renderer/markup/ast-converter/shared/remarks.ts index b76bc10b..58e466ce 100644 --- a/src/renderer/markup/ast-converter/shared/remarks.ts +++ b/src/renderer/markup/ast-converter/shared/remarks.ts @@ -4,14 +4,14 @@ import { createInlineTitleNode, createParagraphNode, createTitleNode } from "unw import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { Remark } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedRemarksForDocumentation, ConvertedRemarksForType } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertRemarksForDocumentation(ctx: MarkupRenderContexts, remarks: Remark): ConvertedRemarksForDocumentation { +export function convertRemarksForDocumentation(ctx: MarkupRenderContext, remarks: Remark): ConvertedRemarksForDocumentation { if(remarks.length === 0){ return; @@ -37,7 +37,7 @@ export function convertRemarksForDocumentation(ctx: MarkupRenderContexts, remark } -export function convertRemarksForType(ctx: MarkupRenderContexts, remarks: Remark): ConvertedRemarksForType { +export function convertRemarksForType(ctx: MarkupRenderContext, remarks: Remark): ConvertedRemarksForType { if(remarks.length === 0){ return; diff --git a/src/renderer/markup/ast-converter/shared/rest.ts b/src/renderer/markup/ast-converter/shared/rest.ts index 0b6469fe..debe7ba3 100644 --- a/src/renderer/markup/ast-converter/shared/rest.ts +++ b/src/renderer/markup/ast-converter/shared/rest.ts @@ -3,11 +3,11 @@ import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { Rest } from "unwritten:interpreter/type-definitions/shared"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; -export function convertRest(ctx: MarkupRenderContexts, entity: Rest): ASTNode[] { +export function convertRest(ctx: MarkupRenderContext, entity: Rest): ASTNode[] { const translate = getTranslator(ctx); const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/shared/see.ts b/src/renderer/markup/ast-converter/shared/see.ts index 6f863f77..3b8f761b 100644 --- a/src/renderer/markup/ast-converter/shared/see.ts +++ b/src/renderer/markup/ast-converter/shared/see.ts @@ -6,10 +6,10 @@ import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { See } from "unwritten:interpreter/type-definitions/jsdoc"; import type { ConvertedSeeTags, ConvertedSeeTagsForType } from "unwritten:renderer/markup/types-definitions/renderer"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; -export function convertSeeTagsForDocumentation(ctx: MarkupRenderContexts, seeTags: See): ConvertedSeeTags { +export function convertSeeTagsForDocumentation(ctx: MarkupRenderContext, seeTags: See): ConvertedSeeTags { if(seeTags.length === 0){ return; @@ -33,7 +33,7 @@ export function convertSeeTagsForDocumentation(ctx: MarkupRenderContexts, seeTag } -export function convertSeeTagsForType(ctx: MarkupRenderContexts, seeTags: See): ConvertedSeeTagsForType { +export function convertSeeTagsForType(ctx: MarkupRenderContext, seeTags: See): ConvertedSeeTagsForType { if(seeTags.length === 0){ return; diff --git a/src/renderer/markup/ast-converter/shared/tags.test.ts b/src/renderer/markup/ast-converter/shared/tags.test.ts index 31a26d63..436aeb8a 100644 --- a/src/renderer/markup/ast-converter/shared/tags.test.ts +++ b/src/renderer/markup/ast-converter/shared/tags.test.ts @@ -19,8 +19,10 @@ scope("MarkupRenderer", "Tags", () => { { beta: "", modifiers: ["readonly"], - optional: true - } as PropertyEntity + name: "test", + optional: true, + type: {} + } as unknown as PropertyEntity ); const renderedTags = renderNode(ctx, convertedTags); diff --git a/src/renderer/markup/ast-converter/shared/tags.ts b/src/renderer/markup/ast-converter/shared/tags.ts index 5cd78f51..e4ef6332 100644 --- a/src/renderer/markup/ast-converter/shared/tags.ts +++ b/src/renderer/markup/ast-converter/shared/tags.ts @@ -7,14 +7,14 @@ import { spaceBetween } from "unwritten:renderer:markup/utils/renderer"; import type { Entity } from "unwritten:interpreter/type-definitions/entities"; import type { JSDocProperties } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedTagsForDocumentation, ConvertedTagsForType } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTagsForDocumentation(ctx: MarkupRenderContexts, entityWithTags: Entity & JSDocProperties): ConvertedTagsForDocumentation { +export function convertTagsForDocumentation(ctx: MarkupRenderContext, entityWithTags: Entity & JSDocProperties): ConvertedTagsForDocumentation { const jsdocTags = convertJSDocTags(ctx, entityWithTags); const modifiers = "modifiers" in entityWithTags ? convertModifiers(ctx, entityWithTags.modifiers) : []; @@ -33,7 +33,7 @@ export function convertTagsForDocumentation(ctx: MarkupRenderContexts, entityWit } -export function convertTagsForType(ctx: MarkupRenderContexts, entityWithTags: Entity & JSDocProperties): ConvertedTagsForType { +export function convertTagsForType(ctx: MarkupRenderContext, entityWithTags: Entity & JSDocProperties): ConvertedTagsForType { const jsdocTags = convertJSDocTags(ctx, entityWithTags); const modifiers = "modifiers" in entityWithTags ? convertModifiers(ctx, entityWithTags.modifiers) : []; diff --git a/src/renderer/markup/ast-converter/shared/throws.ts b/src/renderer/markup/ast-converter/shared/throws.ts index ccd56ad1..760f72f7 100644 --- a/src/renderer/markup/ast-converter/shared/throws.ts +++ b/src/renderer/markup/ast-converter/shared/throws.ts @@ -5,14 +5,14 @@ import { getTranslator } from "unwritten:renderer/markup/utils/translations"; import { createInlineTitleNode, createListNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; import type { Throws } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedThrowsForDocumentation, ConvertedThrowsForType } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertThrowsForDocumentation(ctx: MarkupRenderContexts, throws: Throws): ConvertedThrowsForDocumentation { +export function convertThrowsForDocumentation(ctx: MarkupRenderContext, throws: Throws): ConvertedThrowsForDocumentation { if(throws.length === 0){ return; @@ -36,7 +36,7 @@ export function convertThrowsForDocumentation(ctx: MarkupRenderContexts, throws: } -export function convertThrowsForType(ctx: MarkupRenderContexts, throws: Throws): ConvertedThrowsForType { +export function convertThrowsForType(ctx: MarkupRenderContext, throws: Throws): ConvertedThrowsForType { if(throws.length === 0){ return; diff --git a/src/renderer/markup/ast-converter/shared/type.ts b/src/renderer/markup/ast-converter/shared/type.ts index 91cbcc01..631efcad 100644 --- a/src/renderer/markup/ast-converter/shared/type.ts +++ b/src/renderer/markup/ast-converter/shared/type.ts @@ -87,7 +87,7 @@ import { } from "unwritten:typeguards/types"; import type { MultilineType, Type } from "unwritten:interpreter/type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode, ConditionalNode, TitleNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { ConvertedTypeInline, @@ -95,7 +95,7 @@ import type { } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTypeForDocumentation(ctx: MarkupRenderContexts, type: Type): TitleNode<[ASTNode, ASTNode]> { +export function convertTypeForDocumentation(ctx: MarkupRenderContext, type: Type): TitleNode<[ASTNode, ASTNode]> { const translate = getTranslator(ctx); @@ -113,7 +113,7 @@ export function convertTypeForDocumentation(ctx: MarkupRenderContexts, type: Typ } -export function convertType(ctx: MarkupRenderContexts, type: Type | Type) { +export function convertType(ctx: MarkupRenderContext, type: Type | Type) { const inlineType = convertTypeForInlineType(ctx, type); const multilineType = isMultilineType(type) @@ -127,7 +127,7 @@ export function convertType(ctx: MarkupRenderContexts, type: Type | Type) { } -function convertTypeForInlineType(ctx: MarkupRenderContexts, type: Type | Type): ConvertedTypeInline { +function convertTypeForInlineType(ctx: MarkupRenderContext, type: Type | Type): ConvertedTypeInline { if(isAnyType(type)){ return convertAnyTypeInline(ctx, type); @@ -201,7 +201,7 @@ function convertTypeForInlineType(ctx: MarkupRenderContexts, type: Type | Type): } -function convertTypeForMultilineType(ctx: MarkupRenderContexts, type: MultilineType): ConditionalNode | ConvertedTypeMultiline | undefined { +function convertTypeForMultilineType(ctx: MarkupRenderContext, type: MultilineType): ConditionalNode | ConvertedTypeMultiline | undefined { if(isObjectType(type)){ return convertObjectTypeMultiline(ctx, type); diff --git a/src/renderer/markup/ast-converter/types/any.ts b/src/renderer/markup/ast-converter/types/any.ts index eb56ab4d..4521a1e0 100644 --- a/src/renderer/markup/ast-converter/types/any.ts +++ b/src/renderer/markup/ast-converter/types/any.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { AnyType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedAnyTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertAnyTypeInline(ctx: MarkupRenderContexts, anyType: AnyType): ConvertedAnyTypeInline { +export function convertAnyTypeInline(ctx: MarkupRenderContext, anyType: AnyType): ConvertedAnyTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/array.ts b/src/renderer/markup/ast-converter/types/array.ts index 04106498..f534509a 100644 --- a/src/renderer/markup/ast-converter/types/array.ts +++ b/src/renderer/markup/ast-converter/types/array.ts @@ -5,14 +5,14 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { convertType } from "unwritten:renderer:markup/ast-converter/shared/type"; import type { ArrayType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedArrayTypeInline, ConvertedArrayTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertArrayTypeInline(ctx: MarkupRenderContexts, arrayType: ArrayType): ConvertedArrayTypeInline { +export function convertArrayTypeInline(ctx: MarkupRenderContext, arrayType: ArrayType): ConvertedArrayTypeInline { const renderConfig = getRenderConfig(ctx); @@ -28,7 +28,7 @@ export function convertArrayTypeInline(ctx: MarkupRenderContexts, arrayType: Arr } -export function convertArrayTypeMultiline(ctx: MarkupRenderContexts, arrayType: ArrayType): ConvertedArrayTypeMultiline { +export function convertArrayTypeMultiline(ctx: MarkupRenderContext, arrayType: ArrayType): ConvertedArrayTypeMultiline { const { inlineType, multilineType } = convertType(ctx, arrayType.type); diff --git a/src/renderer/markup/ast-converter/types/bigint-literal.ts b/src/renderer/markup/ast-converter/types/bigint-literal.ts index 3c7edf53..4c8f6d43 100644 --- a/src/renderer/markup/ast-converter/types/bigint-literal.ts +++ b/src/renderer/markup/ast-converter/types/bigint-literal.ts @@ -2,11 +2,11 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { BigIntLiteralType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedBigIntLiteralTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertBigIntLiteralTypeInline(ctx: MarkupRenderContexts, bigIntType: BigIntLiteralType): ConvertedBigIntLiteralTypeInline { +export function convertBigIntLiteralTypeInline(ctx: MarkupRenderContext, bigIntType: BigIntLiteralType): ConvertedBigIntLiteralTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/bigint.ts b/src/renderer/markup/ast-converter/types/bigint.ts index 189b6579..574005b8 100644 --- a/src/renderer/markup/ast-converter/types/bigint.ts +++ b/src/renderer/markup/ast-converter/types/bigint.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { BigIntType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedBigIntTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertBigIntTypeInline(ctx: MarkupRenderContexts, bigIntType: BigIntType): ConvertedBigIntTypeInline { +export function convertBigIntTypeInline(ctx: MarkupRenderContext, bigIntType: BigIntType): ConvertedBigIntTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/boolean-literal.ts b/src/renderer/markup/ast-converter/types/boolean-literal.ts index d54a60f5..ce8a271c 100644 --- a/src/renderer/markup/ast-converter/types/boolean-literal.ts +++ b/src/renderer/markup/ast-converter/types/boolean-literal.ts @@ -2,11 +2,11 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { BooleanLiteralType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedBooleanLiteralTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertBooleanLiteralTypeInline(ctx: MarkupRenderContexts, booleanType: BooleanLiteralType): ConvertedBooleanLiteralTypeInline { +export function convertBooleanLiteralTypeInline(ctx: MarkupRenderContext, booleanType: BooleanLiteralType): ConvertedBooleanLiteralTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/boolean.ts b/src/renderer/markup/ast-converter/types/boolean.ts index b2516608..1724c950 100644 --- a/src/renderer/markup/ast-converter/types/boolean.ts +++ b/src/renderer/markup/ast-converter/types/boolean.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { BooleanType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedBooleanTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertBooleanTypeInline(ctx: MarkupRenderContexts, booleanType: BooleanType): ConvertedBooleanTypeInline { +export function convertBooleanTypeInline(ctx: MarkupRenderContext, booleanType: BooleanType): ConvertedBooleanTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/circular.ts b/src/renderer/markup/ast-converter/types/circular.ts index 5f327d55..3ee76994 100644 --- a/src/renderer/markup/ast-converter/types/circular.ts +++ b/src/renderer/markup/ast-converter/types/circular.ts @@ -4,11 +4,11 @@ import { encapsulate } from "unwritten:renderer/markup/utils/renderer"; import { getRenderConfig } from "unwritten:renderer/utils/config"; import type { CircularType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedCircularTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertCircularTypeInline(ctx: MarkupRenderContexts, circularType: CircularType): ConvertedCircularTypeInline { +export function convertCircularTypeInline(ctx: MarkupRenderContext, circularType: CircularType): ConvertedCircularTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/class.ts b/src/renderer/markup/ast-converter/types/class.ts index 6c15c742..6e4a2d71 100644 --- a/src/renderer/markup/ast-converter/types/class.ts +++ b/src/renderer/markup/ast-converter/types/class.ts @@ -3,14 +3,14 @@ import { getRenderConfig } from "unwritten:renderer/utils/config.js"; import { convertObjectTypeMultiline } from "unwritten:renderer:markup/ast-converter/types/index"; import type { ClassType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedClassTypeInline, ConvertedClassTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertClassTypeInline(ctx: MarkupRenderContexts, classType: ClassType): ConvertedClassTypeInline { +export function convertClassTypeInline(ctx: MarkupRenderContext, classType: ClassType): ConvertedClassTypeInline { const renderConfig = getRenderConfig(ctx); @@ -21,6 +21,6 @@ export function convertClassTypeInline(ctx: MarkupRenderContexts, classType: Cla } -export function convertClassTypeMultiline(ctx: MarkupRenderContexts, classType: ClassType): ConvertedClassTypeMultiline { +export function convertClassTypeMultiline(ctx: MarkupRenderContext, classType: ClassType): ConvertedClassTypeMultiline { return convertObjectTypeMultiline(ctx, classType); } diff --git a/src/renderer/markup/ast-converter/types/conditional.ts b/src/renderer/markup/ast-converter/types/conditional.ts index 1c956b9e..08ee90e9 100644 --- a/src/renderer/markup/ast-converter/types/conditional.ts +++ b/src/renderer/markup/ast-converter/types/conditional.ts @@ -6,14 +6,14 @@ import { encapsulate, spaceBetween } from "unwritten:renderer:markup/utils/rende import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { ConditionalType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedConditionalTypeInline, ConvertedConditionalTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertConditionalTypeInline(ctx: MarkupRenderContexts, conditionalType: ConditionalType): ConvertedConditionalTypeInline { +export function convertConditionalTypeInline(ctx: MarkupRenderContext, conditionalType: ConditionalType): ConvertedConditionalTypeInline { const renderConfig = getRenderConfig(ctx); @@ -29,7 +29,7 @@ export function convertConditionalTypeInline(ctx: MarkupRenderContexts, conditio } -export function convertConditionalTypeMultiline(ctx: MarkupRenderContexts, conditionalType: ConditionalType): ConvertedConditionalTypeMultiline { +export function convertConditionalTypeMultiline(ctx: MarkupRenderContext, conditionalType: ConditionalType): ConvertedConditionalTypeMultiline { const translate = getTranslator(ctx); diff --git a/src/renderer/markup/ast-converter/types/function.ts b/src/renderer/markup/ast-converter/types/function.ts index 7f12982c..260623ce 100644 --- a/src/renderer/markup/ast-converter/types/function.ts +++ b/src/renderer/markup/ast-converter/types/function.ts @@ -6,7 +6,7 @@ import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { FunctionType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedFunctionTypeInline, ConvertedFunctionTypeMultiline @@ -14,7 +14,7 @@ import type { export function convertFunctionTypeInline( - ctx: MarkupRenderContexts, + ctx: MarkupRenderContext, functionType: FunctionType ): ConvertedFunctionTypeInline { @@ -31,7 +31,7 @@ export function convertFunctionTypeInline( } -export function convertFunctionTypeMultiline(ctx: MarkupRenderContexts, functionType: FunctionType): ConvertedFunctionTypeMultiline { +export function convertFunctionTypeMultiline(ctx: MarkupRenderContext, functionType: FunctionType): ConvertedFunctionTypeMultiline { const convertedSignatures = functionType.signatures.map( signature => convertSignatureEntityForType(ctx, signature) diff --git a/src/renderer/markup/ast-converter/types/indexed-access.ts b/src/renderer/markup/ast-converter/types/indexed-access.ts index 9826007a..fb0ed242 100644 --- a/src/renderer/markup/ast-converter/types/indexed-access.ts +++ b/src/renderer/markup/ast-converter/types/indexed-access.ts @@ -1,21 +1,21 @@ import { convertType } from "unwritten:renderer:markup/ast-converter/shared/type"; import type { IndexedAccessType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedIndexedAccessTypeInline, ConvertedIndexedAccessTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertIndexedAccessTypeInline(ctx: MarkupRenderContexts, indexedAccessType: IndexedAccessType): ConvertedIndexedAccessTypeInline { +export function convertIndexedAccessTypeInline(ctx: MarkupRenderContext, indexedAccessType: IndexedAccessType): ConvertedIndexedAccessTypeInline { if(indexedAccessType.type){ return convertType(ctx, indexedAccessType.type).inlineType; } throw new Error("IndexedAccessType must have a type"); } -export function convertIndexedAccessTypeMultiline(ctx: MarkupRenderContexts, indexedAccessType: IndexedAccessType): ConvertedIndexedAccessTypeMultiline | undefined { +export function convertIndexedAccessTypeMultiline(ctx: MarkupRenderContext, indexedAccessType: IndexedAccessType): ConvertedIndexedAccessTypeMultiline | undefined { if(indexedAccessType.type){ return convertType(ctx, indexedAccessType.type).multilineType; } diff --git a/src/renderer/markup/ast-converter/types/interface.ts b/src/renderer/markup/ast-converter/types/interface.ts index 367dd257..6c38f3f5 100644 --- a/src/renderer/markup/ast-converter/types/interface.ts +++ b/src/renderer/markup/ast-converter/types/interface.ts @@ -4,17 +4,17 @@ import { } from "unwritten:renderer:markup/ast-converter/types/index"; import type { InterfaceType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedInterfaceTypeInline, ConvertedInterfaceTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertInterfaceTypeInline(ctx: MarkupRenderContexts, interfaceType: InterfaceType): ConvertedInterfaceTypeInline { +export function convertInterfaceTypeInline(ctx: MarkupRenderContext, interfaceType: InterfaceType): ConvertedInterfaceTypeInline { return convertObjectTypeInline(ctx, interfaceType); } -export function convertInterfaceTypeMultiline(ctx: MarkupRenderContexts, interfaceType: InterfaceType): ConvertedInterfaceTypeMultiline { +export function convertInterfaceTypeMultiline(ctx: MarkupRenderContext, interfaceType: InterfaceType): ConvertedInterfaceTypeMultiline { return convertObjectTypeMultiline(ctx, interfaceType); } diff --git a/src/renderer/markup/ast-converter/types/intersection.ts b/src/renderer/markup/ast-converter/types/intersection.ts index 5bbfee15..c973a83d 100644 --- a/src/renderer/markup/ast-converter/types/intersection.ts +++ b/src/renderer/markup/ast-converter/types/intersection.ts @@ -6,14 +6,14 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { convertType } from "unwritten:renderer:markup/ast-converter/shared/type"; import type { IntersectionType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedIntersectionTypeInline, ConvertedIntersectionTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertIntersectionTypeInline(ctx: MarkupRenderContexts, intersectionType: IntersectionType): ConvertedIntersectionTypeInline { +export function convertIntersectionTypeInline(ctx: MarkupRenderContext, intersectionType: IntersectionType): ConvertedIntersectionTypeInline { const translate = getTranslator(ctx); const renderConfig = getRenderConfig(ctx); @@ -29,7 +29,7 @@ export function convertIntersectionTypeInline(ctx: MarkupRenderContexts, interse } -export function convertIntersectionTypeMultiline(ctx: MarkupRenderContexts, intersectionType: IntersectionType): ConvertedIntersectionTypeMultiline { +export function convertIntersectionTypeMultiline(ctx: MarkupRenderContext, intersectionType: IntersectionType): ConvertedIntersectionTypeMultiline { const types = intersectionType.types.map(type => { diff --git a/src/renderer/markup/ast-converter/types/mapped.ts b/src/renderer/markup/ast-converter/types/mapped.ts index 4b9c3e17..ebb839a5 100644 --- a/src/renderer/markup/ast-converter/types/mapped.ts +++ b/src/renderer/markup/ast-converter/types/mapped.ts @@ -7,14 +7,14 @@ import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import { assert } from "unwritten:utils/general"; import type { MappedType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedMappedTypeInline, ConvertedMappedTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertMappedTypeInline(ctx: MarkupRenderContexts, mappedType: MappedType): ConvertedMappedTypeInline { +export function convertMappedTypeInline(ctx: MarkupRenderContext, mappedType: MappedType): ConvertedMappedTypeInline { const renderConfig = getRenderConfig(ctx); @@ -30,7 +30,7 @@ export function convertMappedTypeInline(ctx: MarkupRenderContexts, mappedType: M } -export function convertMappedTypeMultiline(ctx: MarkupRenderContexts, mappedType: MappedType): ConvertedMappedTypeMultiline { +export function convertMappedTypeMultiline(ctx: MarkupRenderContext, mappedType: MappedType): ConvertedMappedTypeMultiline { const renderConfig = getRenderConfig(ctx); const translate = getTranslator(ctx); diff --git a/src/renderer/markup/ast-converter/types/never.ts b/src/renderer/markup/ast-converter/types/never.ts index 78d7dd84..a45c535b 100644 --- a/src/renderer/markup/ast-converter/types/never.ts +++ b/src/renderer/markup/ast-converter/types/never.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { NeverType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedNeverTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertNeverTypeInline(ctx: MarkupRenderContexts, neverType: NeverType): ConvertedNeverTypeInline { +export function convertNeverTypeInline(ctx: MarkupRenderContext, neverType: NeverType): ConvertedNeverTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/null.ts b/src/renderer/markup/ast-converter/types/null.ts index 8b251720..4cbab67d 100644 --- a/src/renderer/markup/ast-converter/types/null.ts +++ b/src/renderer/markup/ast-converter/types/null.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { NullType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedNullTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertNullTypeInline(ctx: MarkupRenderContexts, nullType: NullType): ConvertedNullTypeInline { +export function convertNullTypeInline(ctx: MarkupRenderContext, nullType: NullType): ConvertedNullTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/number-literal.ts b/src/renderer/markup/ast-converter/types/number-literal.ts index 5e9fc74c..cc687b09 100644 --- a/src/renderer/markup/ast-converter/types/number-literal.ts +++ b/src/renderer/markup/ast-converter/types/number-literal.ts @@ -2,11 +2,11 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { NumberLiteralType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedNumberLiteralTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertNumberLiteralTypeInline(ctx: MarkupRenderContexts, numberType: NumberLiteralType): ConvertedNumberLiteralTypeInline { +export function convertNumberLiteralTypeInline(ctx: MarkupRenderContext, numberType: NumberLiteralType): ConvertedNumberLiteralTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/number.ts b/src/renderer/markup/ast-converter/types/number.ts index 26b1e54f..d710cf2d 100644 --- a/src/renderer/markup/ast-converter/types/number.ts +++ b/src/renderer/markup/ast-converter/types/number.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { NumberType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedNumberTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertNumberTypeInline(ctx: MarkupRenderContexts, numberType: NumberType): ConvertedNumberTypeInline { +export function convertNumberTypeInline(ctx: MarkupRenderContext, numberType: NumberType): ConvertedNumberTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/object-literal.ts b/src/renderer/markup/ast-converter/types/object-literal.ts index ad88dd8c..270ee1da 100644 --- a/src/renderer/markup/ast-converter/types/object-literal.ts +++ b/src/renderer/markup/ast-converter/types/object-literal.ts @@ -4,17 +4,17 @@ import { } from "unwritten:renderer:markup/ast-converter/types/index"; import type { ObjectLiteralType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedObjectLiteralTypeInline, ConvertedObjectLiteralTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertObjectLiteralTypeInline(ctx: MarkupRenderContexts, objectLiteralType: ObjectLiteralType): ConvertedObjectLiteralTypeInline { +export function convertObjectLiteralTypeInline(ctx: MarkupRenderContext, objectLiteralType: ObjectLiteralType): ConvertedObjectLiteralTypeInline { return convertObjectTypeInline(ctx, objectLiteralType); } -export function convertObjectLiteralTypeMultiline(ctx: MarkupRenderContexts, objectLiteralType: ObjectLiteralType): ConvertedObjectLiteralTypeMultiline { +export function convertObjectLiteralTypeMultiline(ctx: MarkupRenderContext, objectLiteralType: ObjectLiteralType): ConvertedObjectLiteralTypeMultiline { return convertObjectTypeMultiline(ctx, objectLiteralType); } diff --git a/src/renderer/markup/ast-converter/types/object.ts b/src/renderer/markup/ast-converter/types/object.ts index fea36f0a..7b034c32 100644 --- a/src/renderer/markup/ast-converter/types/object.ts +++ b/src/renderer/markup/ast-converter/types/object.ts @@ -12,7 +12,7 @@ import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import type { ObjectLikeTypes } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { ConvertedObjectType, @@ -21,7 +21,7 @@ import type { export function convertObjectTypeInline( - ctx: MarkupRenderContexts, + ctx: MarkupRenderContext, objectLikeType: ObjectLikeTypes ): ConvertedObjectType { @@ -40,7 +40,7 @@ export function convertObjectTypeInline( export function convertObjectTypeMultiline( - ctx: MarkupRenderContexts, + ctx: MarkupRenderContext, objectLikeType: ObjectLikeTypes ): ConvertedObjectTypeMultiline { @@ -104,7 +104,7 @@ export function convertObjectTypeMultiline( } -function getObjectTypeName(ctx: MarkupRenderContexts, objectLikeType: ObjectLikeTypes) { +function getObjectTypeName(ctx: MarkupRenderContext, objectLikeType: ObjectLikeTypes) { const translate = getTranslator(ctx); diff --git a/src/renderer/markup/ast-converter/types/string-literal.ts b/src/renderer/markup/ast-converter/types/string-literal.ts index 78602d02..debb0abe 100644 --- a/src/renderer/markup/ast-converter/types/string-literal.ts +++ b/src/renderer/markup/ast-converter/types/string-literal.ts @@ -2,11 +2,11 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { StringLiteralType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedStringLiteralTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertStringLiteralTypeInline(ctx: MarkupRenderContexts, stringType: StringLiteralType): ConvertedStringLiteralTypeInline { +export function convertStringLiteralTypeInline(ctx: MarkupRenderContext, stringType: StringLiteralType): ConvertedStringLiteralTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/string.ts b/src/renderer/markup/ast-converter/types/string.ts index 09880729..eae3888c 100644 --- a/src/renderer/markup/ast-converter/types/string.ts +++ b/src/renderer/markup/ast-converter/types/string.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { StringType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedStringTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertStringTypeInline(ctx: MarkupRenderContexts, stringType: StringType): ConvertedStringTypeInline { +export function convertStringTypeInline(ctx: MarkupRenderContext, stringType: StringType): ConvertedStringTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/symbol.ts b/src/renderer/markup/ast-converter/types/symbol.ts index 1bba8187..393c0938 100644 --- a/src/renderer/markup/ast-converter/types/symbol.ts +++ b/src/renderer/markup/ast-converter/types/symbol.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { SymbolType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedSymbolTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertSymbolTypeInline(ctx: MarkupRenderContexts, symbolType: SymbolType): ConvertedSymbolTypeInline { +export function convertSymbolTypeInline(ctx: MarkupRenderContext, symbolType: SymbolType): ConvertedSymbolTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/template-literal.ts b/src/renderer/markup/ast-converter/types/template-literal.ts index 3e961e93..f60d79b5 100644 --- a/src/renderer/markup/ast-converter/types/template-literal.ts +++ b/src/renderer/markup/ast-converter/types/template-literal.ts @@ -1,12 +1,12 @@ import { convertType } from "unwritten:renderer:markup/ast-converter/shared/type"; import type { TemplateLiteralType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { ConvertedTemplateLiteralTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTemplateLiteralTypeInline(ctx: MarkupRenderContexts, templateLiteralType: TemplateLiteralType): ConvertedTemplateLiteralTypeInline { +export function convertTemplateLiteralTypeInline(ctx: MarkupRenderContext, templateLiteralType: TemplateLiteralType): ConvertedTemplateLiteralTypeInline { const head = templateLiteralType.head; const types = templateLiteralType.types; diff --git a/src/renderer/markup/ast-converter/types/tuple.ts b/src/renderer/markup/ast-converter/types/tuple.ts index 515f845e..0f2d6008 100644 --- a/src/renderer/markup/ast-converter/types/tuple.ts +++ b/src/renderer/markup/ast-converter/types/tuple.ts @@ -8,14 +8,14 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import type { TupleMemberEntity } from "unwritten:interpreter/type-definitions/entities"; import type { TupleType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedTupleTypeInline, ConvertedTupleTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTupleTypeInline(ctx: MarkupRenderContexts, tupleType: TupleType): ConvertedTupleTypeInline { +export function convertTupleTypeInline(ctx: MarkupRenderContext, tupleType: TupleType): ConvertedTupleTypeInline { const renderConfig = getRenderConfig(ctx); @@ -31,7 +31,7 @@ export function convertTupleTypeInline(ctx: MarkupRenderContexts, tupleType: Tup } -export function convertTupleTypeMultiline(ctx: MarkupRenderContexts, tupleType: TupleType): ConvertedTupleTypeMultiline { +export function convertTupleTypeMultiline(ctx: MarkupRenderContext, tupleType: TupleType): ConvertedTupleTypeMultiline { const members = tupleType.members.map(member => convertTupleMember(ctx, member)); @@ -42,7 +42,7 @@ export function convertTupleTypeMultiline(ctx: MarkupRenderContexts, tupleType: } -function convertTupleMember(ctx: MarkupRenderContexts, tupleMemberEntity: TupleMemberEntity) { +function convertTupleMember(ctx: MarkupRenderContext, tupleMemberEntity: TupleMemberEntity) { const name = tupleMemberEntity.name; const description = tupleMemberEntity.description && convertDescriptionForType(ctx, tupleMemberEntity.description); diff --git a/src/renderer/markup/ast-converter/types/type-literal.ts b/src/renderer/markup/ast-converter/types/type-literal.ts index edec7d24..abef0a3c 100644 --- a/src/renderer/markup/ast-converter/types/type-literal.ts +++ b/src/renderer/markup/ast-converter/types/type-literal.ts @@ -4,17 +4,17 @@ import { } from "unwritten:renderer:markup/ast-converter/types/index"; import type { TypeLiteralType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedTypeLiteralTypeInline, ConvertedTypeLiteralTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTypeLiteralTypeInline(ctx: MarkupRenderContexts, typeLiteralType: TypeLiteralType): ConvertedTypeLiteralTypeInline { +export function convertTypeLiteralTypeInline(ctx: MarkupRenderContext, typeLiteralType: TypeLiteralType): ConvertedTypeLiteralTypeInline { return convertObjectTypeInline(ctx, typeLiteralType); } -export function convertTypeLiteralTypeMultiline(ctx: MarkupRenderContexts, typeLiteralType: TypeLiteralType): ConvertedTypeLiteralTypeMultiline { +export function convertTypeLiteralTypeMultiline(ctx: MarkupRenderContext, typeLiteralType: TypeLiteralType): ConvertedTypeLiteralTypeMultiline { return convertObjectTypeMultiline(ctx, typeLiteralType); } diff --git a/src/renderer/markup/ast-converter/types/type-parameter.ts b/src/renderer/markup/ast-converter/types/type-parameter.ts index caaf01a6..7691b4d7 100644 --- a/src/renderer/markup/ast-converter/types/type-parameter.ts +++ b/src/renderer/markup/ast-converter/types/type-parameter.ts @@ -1,8 +1,8 @@ import type { TypeParameterType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedTypeParameterTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTypeParameterTypeInline(ctx: MarkupRenderContexts, typeParameterType: TypeParameterType): ConvertedTypeParameterTypeInline { +export function convertTypeParameterTypeInline(ctx: MarkupRenderContext, typeParameterType: TypeParameterType): ConvertedTypeParameterTypeInline { return typeParameterType.name; } diff --git a/src/renderer/markup/ast-converter/types/type-reference.ts b/src/renderer/markup/ast-converter/types/type-reference.ts index 1b523dcb..02c87c12 100644 --- a/src/renderer/markup/ast-converter/types/type-reference.ts +++ b/src/renderer/markup/ast-converter/types/type-reference.ts @@ -9,14 +9,14 @@ import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import { isFunctionLikeEntity, isLinkableEntity, isSignatureEntity } from "unwritten:typeguards/entities"; import type { TypeReferenceType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedTypeReferenceTypeInline, ConvertedTypeReferenceTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertTypeReferenceTypeInline(ctx: MarkupRenderContexts, typeReferenceType: TypeReferenceType): ConvertedTypeReferenceTypeInline { +export function convertTypeReferenceTypeInline(ctx: MarkupRenderContext, typeReferenceType: TypeReferenceType): ConvertedTypeReferenceTypeInline { const renderConfig = getRenderConfig(ctx); @@ -54,7 +54,7 @@ export function convertTypeReferenceTypeInline(ctx: MarkupRenderContexts, typeRe } -export function convertTypeReferenceTypeMultiline(ctx: MarkupRenderContexts, typeReferenceType: TypeReferenceType): ConvertedTypeReferenceTypeMultiline | undefined { +export function convertTypeReferenceTypeMultiline(ctx: MarkupRenderContext, typeReferenceType: TypeReferenceType): ConvertedTypeReferenceTypeMultiline | undefined { const fallback = typeReferenceType.type && convertType(ctx, typeReferenceType.type).multilineType; diff --git a/src/renderer/markup/ast-converter/types/undefined.ts b/src/renderer/markup/ast-converter/types/undefined.ts index 58736e78..14b1d797 100644 --- a/src/renderer/markup/ast-converter/types/undefined.ts +++ b/src/renderer/markup/ast-converter/types/undefined.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { UndefinedType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedUndefinedTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertUndefinedTypeInline(ctx: MarkupRenderContexts, undefinedType: UndefinedType): ConvertedUndefinedTypeInline { +export function convertUndefinedTypeInline(ctx: MarkupRenderContext, undefinedType: UndefinedType): ConvertedUndefinedTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/union.ts b/src/renderer/markup/ast-converter/types/union.ts index 5476f70d..27feed1e 100644 --- a/src/renderer/markup/ast-converter/types/union.ts +++ b/src/renderer/markup/ast-converter/types/union.ts @@ -8,14 +8,14 @@ import { convertType } from "unwritten:renderer:markup/ast-converter/shared/type import type { UnionType } from "unwritten:interpreter:type-definitions/types"; import type { ASTNode } from "unwritten:renderer/markup/types-definitions/nodes"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedUnionTypeInline, ConvertedUnionTypeMultiline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertUnionTypeInline(ctx: MarkupRenderContexts, unionType: UnionType): ConvertedUnionTypeInline { +export function convertUnionTypeInline(ctx: MarkupRenderContext, unionType: UnionType): ConvertedUnionTypeInline { const translate = getTranslator(ctx); const renderConfig = getRenderConfig(ctx); @@ -47,7 +47,7 @@ export function convertUnionTypeInline(ctx: MarkupRenderContexts, unionType: Uni } -export function convertUnionTypeMultiline(ctx: MarkupRenderContexts, unionType: UnionType): ConvertedUnionTypeMultiline { +export function convertUnionTypeMultiline(ctx: MarkupRenderContext, unionType: UnionType): ConvertedUnionTypeMultiline { const types = unionType.types.map(type => { diff --git a/src/renderer/markup/ast-converter/types/unknown.ts b/src/renderer/markup/ast-converter/types/unknown.ts index e5edcb9b..9ad9646e 100644 --- a/src/renderer/markup/ast-converter/types/unknown.ts +++ b/src/renderer/markup/ast-converter/types/unknown.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { UnknownType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedUnknownTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertUnknownTypeInline(ctx: MarkupRenderContexts, unknownType: UnknownType): ConvertedUnknownTypeInline { +export function convertUnknownTypeInline(ctx: MarkupRenderContext, unknownType: UnknownType): ConvertedUnknownTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/unresolved.ts b/src/renderer/markup/ast-converter/types/unresolved.ts index e82f8e1e..0a9ab8a2 100644 --- a/src/renderer/markup/ast-converter/types/unresolved.ts +++ b/src/renderer/markup/ast-converter/types/unresolved.ts @@ -4,12 +4,12 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate, spaceBetween } from "unwritten:renderer:markup/utils/renderer"; import type { Type, UnresolvedType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { ConvertedTypeReferenceTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertUnresolvedTypeInline(ctx: MarkupRenderContexts, unresolvedType: UnresolvedType): ConvertedTypeReferenceTypeInline { +export function convertUnresolvedTypeInline(ctx: MarkupRenderContext, unresolvedType: UnresolvedType): ConvertedTypeReferenceTypeInline { const renderConfig = getRenderConfig(ctx); @@ -31,7 +31,7 @@ export function convertUnresolvedTypeInline(ctx: MarkupRenderContexts, unresolve } -function convertTypeArguments(ctx: MarkupRenderContexts, typeArguments: Type[]): ASTNode { +function convertTypeArguments(ctx: MarkupRenderContext, typeArguments: Type[]): ASTNode { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/ast-converter/types/void.ts b/src/renderer/markup/ast-converter/types/void.ts index 501612fe..c2ce7483 100644 --- a/src/renderer/markup/ast-converter/types/void.ts +++ b/src/renderer/markup/ast-converter/types/void.ts @@ -4,11 +4,11 @@ import { createLinkNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import type { VoidType } from "unwritten:interpreter:type-definitions/types"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedVoidTypeInline } from "unwritten:renderer:markup/types-definitions/renderer"; -export function convertVoidTypeInline(ctx: MarkupRenderContexts, voidType: VoidType): ConvertedVoidTypeInline { +export function convertVoidTypeInline(ctx: MarkupRenderContext, voidType: VoidType): ConvertedVoidTypeInline { const renderConfig = getRenderConfig(ctx); diff --git a/src/renderer/markup/html/ast/anchor.test.ts b/src/renderer/markup/html/ast/anchor.test.ts index 098647b1..3dfe1843 100644 --- a/src/renderer/markup/html/ast/anchor.test.ts +++ b/src/renderer/markup/html/ast/anchor.test.ts @@ -16,7 +16,7 @@ scope("HTMLRenderer", "AnchorNode", () => { const ctx = createRenderContext(); const anchor = registerAnchor(ctx, "AnchorText", 1); - const anchorNode = createAnchorNode(anchor.name, anchor.ids); + const anchorNode = createAnchorNode(anchor.name, anchor.ids[0]); expect(renderAnchorNode(ctx, anchorNode)).toBe(html` AnchorText `); @@ -29,7 +29,7 @@ scope("HTMLRenderer", "AnchorNode", () => { const anchor1 = registerAnchor(ctx, "AnchorText", 1); const anchor2 = registerAnchor(ctx, "AnchorText", 2); - const anchorNode = createAnchorNode(anchor2.name, anchor2.ids); + const anchorNode = createAnchorNode(anchor2.name, anchor2.ids[0]); expect(renderAnchorNode(ctx, anchorNode)).toBe(html` AnchorText `); @@ -41,7 +41,7 @@ scope("HTMLRenderer", "AnchorNode", () => { const ctx = createRenderContext(); const anchor = registerAnchor(ctx, "AnchorText", 1); - const anchorNode = createAnchorNode(anchor.name, anchor.ids, "AnchorDisplayName"); + const anchorNode = createAnchorNode(anchor.name, anchor.ids[0], "AnchorDisplayName"); expect(renderAnchorNode(ctx, anchorNode)).toBe(html` AnchorDisplayName `); diff --git a/src/renderer/markup/markdown/ast/anchor.test.ts b/src/renderer/markup/markdown/ast/anchor.test.ts index 46e4fd99..27c04888 100644 --- a/src/renderer/markup/markdown/ast/anchor.test.ts +++ b/src/renderer/markup/markdown/ast/anchor.test.ts @@ -17,7 +17,7 @@ scope("MarkdownRenderer", "AnchorNode", () => { const ctx = createRenderContext(BuiltInRenderers.Markdown); const anchor = registerAnchor(ctx, "AnchorText", 1); - const anchorNode = createAnchorNode(anchor.name, anchor.ids); + const anchorNode = createAnchorNode(anchor.name, anchor.ids[0]); expect(renderAnchorNode(ctx, anchorNode)).toBe(md` [AnchorText](#anchortext) @@ -31,7 +31,7 @@ scope("MarkdownRenderer", "AnchorNode", () => { const anchor1 = registerAnchor(ctx, "AnchorText", 1); const anchor2 = registerAnchor(ctx, "AnchorText", 2); - const anchorNode = createAnchorNode(anchor2.name, anchor2.ids); + const anchorNode = createAnchorNode(anchor2.name, anchor2.ids[0]); expect(renderAnchorNode(ctx, anchorNode)).toBe(md` [AnchorText](#anchortext-1) @@ -44,7 +44,7 @@ scope("MarkdownRenderer", "AnchorNode", () => { const ctx = createRenderContext(BuiltInRenderers.Markdown); const anchor = registerAnchor(ctx, "AnchorText", 1); - const anchorNode = createAnchorNode(anchor.name, anchor.ids, "AnchorDisplayName"); + const anchorNode = createAnchorNode(anchor.name, anchor.ids[0], "AnchorDisplayName"); expect(renderAnchorNode(ctx, anchorNode)).toBe(md` [AnchorDisplayName](#anchortext) diff --git a/src/renderer/markup/registry/registry.ts b/src/renderer/markup/registry/registry.ts index a2769c45..448e9af7 100644 --- a/src/renderer/markup/registry/registry.ts +++ b/src/renderer/markup/registry/registry.ts @@ -1,6 +1,6 @@ import { assert } from "unwritten:utils/general"; -import type { MarkupRenderContexts } from "../types-definitions/markup"; +import type { MarkupRenderContext } from "../types-definitions/markup"; import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; import type { ID, Name } from "unwritten:interpreter/type-definitions/jsdoc"; @@ -34,11 +34,11 @@ export type SourceFile = { export type LinkRegistry = SourceFile[]; -function getAnonymousId(ctx: MarkupRenderContexts): ID { +function getAnonymousId(ctx: MarkupRenderContext): ID { return ctx.currentFile._anonymousId--; } -export function registerAnchor(ctx: MarkupRenderContexts, name: Name, id: ID | ID[]): AnchorTarget { +export function registerAnchor(ctx: MarkupRenderContext, name: Name, id: ID | ID[]): AnchorTarget { const anchorId = convertTextToAnchorId(name); const ids = Array.isArray(id) ? id : [id]; @@ -59,7 +59,7 @@ export function registerAnchor(ctx: MarkupRenderContexts, name: Name, id: ID | I } -export function unregisterAnchor(ctx: MarkupRenderContexts, id: ID | ID[]): void { +export function unregisterAnchor(ctx: MarkupRenderContext, id: ID | ID[]): void { const ids = Array.isArray(id) ? id : [id]; const anchor = findRegisteredAnchorData(ctx, id); @@ -83,7 +83,7 @@ export function unregisterAnchor(ctx: MarkupRenderContexts, id: ID | ID[]): void } -export function registerAnonymousAnchor(ctx: MarkupRenderContexts, name: Name): AnchorTarget { +export function registerAnonymousAnchor(ctx: MarkupRenderContext, name: Name): AnchorTarget { const anchorId = convertTextToAnchorId(name); @@ -100,7 +100,7 @@ export function registerAnonymousAnchor(ctx: MarkupRenderContexts, name: Name): } -export function getAnchorLink(ctx: MarkupRenderContexts, id: ID | ID[]): string | undefined { +export function getAnchorLink(ctx: MarkupRenderContext, id: ID | ID[]): string | undefined { const { relative } = ctx.dependencies.path; @@ -120,7 +120,7 @@ export function getAnchorLink(ctx: MarkupRenderContexts, id: ID | ID[]): string } -export function getAnchorId(ctx: MarkupRenderContexts, id: ID | ID[]): string | undefined { +export function getAnchorId(ctx: MarkupRenderContext, id: ID | ID[]): string | undefined { const ids = Array.isArray(id) ? id : [id]; @@ -134,7 +134,7 @@ export function getAnchorId(ctx: MarkupRenderContexts, id: ID | ID[]): string | } -export function getSourceFileById(ctx: MarkupRenderContexts, id: ID): SourceFile { +export function getSourceFileById(ctx: MarkupRenderContext, id: ID): SourceFile { return ctx.links[id]; } @@ -158,7 +158,7 @@ export function isAnchor(input: any): input is AnchorTarget { Object.keys(input).length === 2; } -export function createCurrentSourceFile(ctx: MarkupRenderContexts, sourceFileEntity: SourceFileEntity, destination: FilePath): void { +export function createCurrentSourceFile(ctx: MarkupRenderContext, sourceFileEntity: SourceFileEntity, destination: FilePath): void { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition const index = ctx.links.findIndex(sourceFile => sourceFile.id === sourceFileEntity.symbolId); @@ -180,7 +180,7 @@ export function createCurrentSourceFile(ctx: MarkupRenderContexts, sourceFileEnt } -export function setCurrentSourceFile(ctx: MarkupRenderContexts, sourceFileEntity: SourceFileEntity): void { +export function setCurrentSourceFile(ctx: MarkupRenderContext, sourceFileEntity: SourceFileEntity): void { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition const index = ctx.links.findIndex(sourceFile => sourceFile.id === sourceFileEntity.symbolId); @@ -191,7 +191,7 @@ export function setCurrentSourceFile(ctx: MarkupRenderContexts, sourceFileEntity } -function findRegisteredAnchorData(ctx: MarkupRenderContexts, id: ID | ID[]): { anchorId: AnchorID; index: number; sourceFile: SourceFile; } | undefined { +function findRegisteredAnchorData(ctx: MarkupRenderContext, id: ID | ID[]): { anchorId: AnchorID; index: number; sourceFile: SourceFile; } | undefined { const ids = Array.isArray(id) ? id : [id]; diff --git a/src/renderer/markup/types-definitions/markup.ts b/src/renderer/markup/types-definitions/markup.ts index 41284bb0..2c50bbd1 100644 --- a/src/renderer/markup/types-definitions/markup.ts +++ b/src/renderer/markup/types-definitions/markup.ts @@ -5,13 +5,13 @@ import type { Renderer } from "unwritten:type-definitions/renderer"; // Markup -export interface MarkupRenderer extends Renderer { +interface BaseMarkupRenderer extends Renderer { fileExtension: ".html" | ".md"; - initializeContext(ctx: MarkupRenderContexts): void; + initializeContext(ctx: MarkupRenderContext): void; name: BuiltInRenderers.HTML | BuiltInRenderers.Markdown; } -export interface MarkupRenderBaseContext { +interface BaseMarkupRenderContext { currentFile: SourceFile; set indentation(value: number); get indentation(): number; @@ -23,25 +23,20 @@ export interface MarkupRenderBaseContext extends - MarkupRenderBaseContext, +export interface MarkupRenderNodeContext extends + BaseMarkupRenderContext, RenderNodeContext {} -export interface MarkupRenderBrowserContext extends - MarkupRenderBaseContext, +export interface MarkupRenderBrowserContext extends + BaseMarkupRenderContext, RenderBrowserContext {} -export type MarkupRenderContext = - | MarkupRenderBrowserContext - | MarkupRenderNodeContext; - - -export type MarkupRenderers = HTMLRenderer | MarkdownRenderer; -export type MarkupRenderContexts = HTMLRenderContext | MarkdownRenderContext; +export type MarkupRenderer = HTMLRenderer | MarkdownRenderer; +export type MarkupRenderContext = HTMLRenderContext | MarkdownRenderContext; // HTML -export interface HTMLRenderer extends MarkupRenderer { +export interface HTMLRenderer extends BaseMarkupRenderer { fileExtension: ".html"; name: BuiltInRenderers.HTML; } @@ -52,7 +47,7 @@ export type HTMLRenderContext = HTMLRenderBrowserContext | HTMLRenderNodeContext // Markdown -export interface MarkdownRenderer extends MarkupRenderer { +export interface MarkdownRenderer extends BaseMarkupRenderer { fileExtension: ".md"; name: BuiltInRenderers.Markdown; } diff --git a/src/renderer/markup/utils/context.ts b/src/renderer/markup/utils/context.ts index 7c4f6776..02eca8f0 100644 --- a/src/renderer/markup/utils/context.ts +++ b/src/renderer/markup/utils/context.ts @@ -1,14 +1,14 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; -export function isRenderParentNamesEnabled(ctx: MarkupRenderContexts, target: "documentation" | "tableOfContents"): boolean { +export function isRenderParentNamesEnabled(ctx: MarkupRenderContext, target: "documentation" | "tableOfContents"): boolean { const renderConfig = getRenderConfig(ctx); return renderConfig.renderParentNames === true || renderConfig.renderParentNames === target; } -export function renderMemberContext(ctx: MarkupRenderContexts, target: "documentation" | "tableOfContents", name?: string): string { +export function renderMemberContext(ctx: MarkupRenderContext, target: "documentation" | "tableOfContents", name?: string): string { return isRenderParentNamesEnabled(ctx, target) ? [ @@ -21,21 +21,21 @@ export function renderMemberContext(ctx: MarkupRenderContexts, target: "document } -export function withIndentation(ctx: RenderContext, callback: (ctx: RenderContext, ...args: Args[]) => ReturnType, ...args: Args[]): ReturnType { +export function withIndentation(ctx: RenderContext, callback: (ctx: RenderContext, ...args: Args[]) => ReturnType, ...args: Args[]): ReturnType { ctx.indentation++; const result = callback(ctx, ...args); ctx.indentation--; return result; } -export function withMemberContext(ctx: RenderContext, contextName: string, callback: (ctx: RenderContext) => ReturnType): ReturnType { +export function withMemberContext(ctx: RenderContext, contextName: string, callback: (ctx: RenderContext) => ReturnType): ReturnType { ctx.memberContext.push(contextName); const result = callback(ctx); ctx.memberContext.pop(); return result; } -export function withNesting(ctx: RenderContext, callback: (ctx: RenderContext) => ReturnType): ReturnType { +export function withNesting(ctx: RenderContext, callback: (ctx: RenderContext) => ReturnType): ReturnType { const initialNesting = ctx.nesting; ctx.nesting++; const result = callback(ctx); diff --git a/src/renderer/markup/utils/renderer.ts b/src/renderer/markup/utils/renderer.ts index 4ebd2dcd..6c676bc9 100644 --- a/src/renderer/markup/utils/renderer.ts +++ b/src/renderer/markup/utils/renderer.ts @@ -3,7 +3,7 @@ import { getTranslator } from "unwritten:renderer/markup/utils/translations.js"; import { getRenderConfig } from "unwritten:renderer/utils/config.js"; import type { ExportableEntity, ExportableEntityKinds } from "unwritten:interpreter/type-definitions/entities"; -import type { MarkupRenderContexts } from "unwritten:renderer/markup/types-definitions/markup.js"; +import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup.js"; import type { Encapsulation } from "unwritten:renderer:markup/types-definitions/config"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; @@ -45,12 +45,12 @@ export function getCategoryNameTranslationKey(entityKind: ExportableEntityKinds) } } -export function isRenderEntityPrefixEnabled(ctx: MarkupRenderContexts, target: "documentation" | "tableOfContents"): boolean { +export function isRenderEntityPrefixEnabled(ctx: MarkupRenderContext, target: "documentation" | "tableOfContents"): boolean { const renderConfig = getRenderConfig(ctx); return renderConfig.renderEntityPrefixes === true || renderConfig.renderEntityPrefixes === target; } -export function isRenderObjectMemberTitlesEnabled(ctx: MarkupRenderContexts, target: "documentation" | "tableOfContents"): boolean { +export function isRenderObjectMemberTitlesEnabled(ctx: MarkupRenderContext, target: "documentation" | "tableOfContents"): boolean { const renderConfig = getRenderConfig(ctx); return renderConfig.renderClassMemberTitles === true || renderConfig.renderClassMemberTitles === target; } @@ -105,7 +105,7 @@ function getEntityPrefixTranslationKey(entityKind: EntityKind) { } -export function renderCategoryName(ctx: MarkupRenderContexts, entities: ExportableEntity[]) { +export function renderCategoryName(ctx: MarkupRenderContext, entities: ExportableEntity[]) { const translate = getTranslator(ctx); const translationKey = getCategoryNameTranslationKey(entities[0].kind); @@ -114,7 +114,7 @@ export function renderCategoryName(ctx: MarkupRenderContexts, entities: Exportab } -export function renderEntityPrefix(ctx: MarkupRenderContexts, target: "documentation" | "tableOfContents", entityKind: EntityKind) { +export function renderEntityPrefix(ctx: MarkupRenderContext, target: "documentation" | "tableOfContents", entityKind: EntityKind) { if(!isRenderEntityPrefixEnabled(ctx, target)){ return ""; diff --git a/src/renderer/markup/utils/sort.ts b/src/renderer/markup/utils/sort.ts index a62c9243..a4c50dd5 100644 --- a/src/renderer/markup/utils/sort.ts +++ b/src/renderer/markup/utils/sort.ts @@ -1,9 +1,9 @@ -import type { MarkupRenderContexts } from "../types-definitions/markup"; +import type { MarkupRenderContext } from "../types-definitions/markup"; import type { ExportableEntity } from "unwritten:interpreter/type-definitions/entities"; -export function sortExportableEntities(ctx: MarkupRenderContexts, entities: ExportableEntity[]): ExportableEntity[] { +export function sortExportableEntities(ctx: MarkupRenderContext, entities: ExportableEntity[]): ExportableEntity[] { const order = ctx.config.renderConfig[ctx.renderer.name].renderOrder; diff --git a/src/renderer/markup/utils/translations.test-d.ts b/src/renderer/markup/utils/translations.test-d.ts new file mode 100644 index 00000000..ece881f5 --- /dev/null +++ b/src/renderer/markup/utils/translations.test-d.ts @@ -0,0 +1,21 @@ +import { expectTypeOf, test } from "vitest"; + +import { scope } from "unwritten:tests:utils/scope"; + +import type { TranslationWithoutSuffixes } from "./translations"; + + +scope("Types", "Translations", () => { + + test("TranslationWithoutSuffixes", () => { + + type TestType = { + name_many?: string; + name_one?: string; + }; + + expectTypeOf>().toEqualTypeOf<"name">(); + + }); + +}); diff --git a/src/renderer/markup/utils/translations.ts b/src/renderer/markup/utils/translations.ts index ab69a34f..62dac3c9 100644 --- a/src/renderer/markup/utils/translations.ts +++ b/src/renderer/markup/utils/translations.ts @@ -1,9 +1,6 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; -import type { HTMLRenderConfig, MarkdownRenderConfig, MarkupRenderConfig } from "../types-definitions/config"; -import type { HTMLRenderContext, MarkdownRenderContext, MarkupRenderContexts } from "../types-definitions/markup"; - -import type { Complete, TranslationWithoutSuffixes } from "unwritten:type-definitions/utils"; +import type { MarkupRenderContext } from "../types-definitions/markup"; interface TranslationOptions { @@ -12,8 +9,20 @@ interface TranslationOptions { count?: number; } -export type TranslationKeys = - keyof TranslationWithoutSuffixes; +type RenderConfig = + CustomRenderContext["config"]["renderConfig"][RendererName]; + +type RendererName = CustomRenderContext["renderer"]["name"]; + +type RemoveTranslationsSuffix = + Keys extends `${infer KeyWithoutSuffix}${S}` ? KeyWithoutSuffix : Keys; + +export type TranslationKeys = + TranslationWithoutSuffixes["translations"]>; + +export type TranslationWithoutSuffixes = + RemoveTranslationsSuffix, "_many">; + export function capitalize(text: string): string { return text.length <= 0 @@ -21,7 +30,7 @@ export function capitalize(text: string): string { : text[0].toUpperCase() + text.slice(1); } -function translate(ctx: MarkupRenderContexts, key: TranslationKeys, options?: TranslationOptions) { +function translate(ctx: MarkupRenderContext, key: TranslationKeys, options?: TranslationOptions) { const translations = getTranslations(ctx); let translationKey = getTranslationKey(key, options); @@ -53,15 +62,12 @@ function translate(ctx: MarkupRenderContexts, key: TranslationKeys(ctx: MarkupRenderContext) { +function getTranslations(ctx: CustomRenderContext) { return getRenderConfig(ctx).translations; } -function getTranslationKey(key: TranslationKeys, options?: TranslationOptions): keyof Complete["translations"]; -function getTranslationKey(key: TranslationKeys, options?: TranslationOptions): keyof Complete["translations"]; -function getTranslationKey(key: TranslationKeys, options?: TranslationOptions): keyof Complete["translations"]; -function getTranslationKey(key: TranslationKeys, options?: TranslationOptions) { +function getTranslationKey(key: TranslationKeys, options?: TranslationOptions) { const count = options && "count" in options ? options.count : undefined; @@ -77,6 +83,6 @@ function getTranslationKey(key: TranslationKeys, options?: } -export function getTranslator(ctx: MarkupRenderContexts) { - return (key: TranslationKeys, options?: TranslationOptions) => translate(ctx, key, options); +export function getTranslator(ctx: CustomRenderContext) { + return (key: TranslationKeys, options?: TranslationOptions) => translate(ctx, key, options); } diff --git a/src/renderer/utils/config.ts b/src/renderer/utils/config.ts index f3e388af..fdeb6681 100644 --- a/src/renderer/utils/config.ts +++ b/src/renderer/utils/config.ts @@ -2,7 +2,7 @@ import type { HTMLRenderConfig, MarkdownRenderConfig, MarkupRenderConfig } from import type { HTMLRenderContext, MarkdownRenderContext, - MarkupRenderContexts + MarkupRenderContext } from "../markup/types-definitions/markup"; import type { JSONRenderConfig } from "unwritten:renderer:json/type-definitions/config"; @@ -14,11 +14,11 @@ import type { Complete } from "unwritten:type-definitions/utils"; export function getRenderConfig(ctx: MarkdownRenderContext): Complete; export function getRenderConfig(ctx: HTMLRenderContext): Complete; -export function getRenderConfig(ctx: MarkupRenderContexts): Complete; +export function getRenderConfig(ctx: MarkupRenderContext): Complete; export function getRenderConfig(ctx: JSONRenderContext): Complete; -export function getRenderConfig(ctx: JSONRenderContext | MarkupRenderContexts): Complete; +export function getRenderConfig(ctx: JSONRenderContext | MarkupRenderContext): Complete; export function getRenderConfig(ctx: RenderContext): Complete; -export function getRenderConfig(ctx: JSONRenderContext | MarkupRenderContexts | RenderContext): Complete { +export function getRenderConfig(ctx: JSONRenderContext | MarkupRenderContext | RenderContext): Complete { const name = ctx.renderer.name; return ctx.config.renderConfig[name]; } diff --git a/src/renderer/utils/context.ts b/src/renderer/utils/context.ts index 88b8188a..368a6ecd 100644 --- a/src/renderer/utils/context.ts +++ b/src/renderer/utils/context.ts @@ -1,4 +1,4 @@ -import type { CompleteConfig } from "unwritten:type-definitions/config"; +import type { CompleteBrowserConfig, CompleteConfig, CompleteNodeConfig } from "unwritten:type-definitions/config"; import type { DefaultBrowserContext, DefaultContext, @@ -10,8 +10,8 @@ import type { import type { Renderer } from "unwritten:type-definitions/renderer"; -export function createContext(defaultContext: DefaultNodeContext, renderer: CustomRenderer, config: CompleteConfig): RenderNodeContext; -export function createContext(defaultContext: DefaultBrowserContext, renderer: CustomRenderer, config: CompleteConfig): RenderBrowserContext; +export function createContext(defaultContext: DefaultNodeContext, renderer: CustomRenderer, config: CompleteNodeConfig): RenderNodeContext; +export function createContext(defaultContext: DefaultBrowserContext, renderer: CustomRenderer, config: CompleteBrowserConfig): RenderBrowserContext; export function createContext(defaultContext: DefaultContext, renderer: CustomRenderer, config: CompleteConfig): RenderContext { const ctx: RenderContext = { config, diff --git a/src/renderer/utils/indentation.ts b/src/renderer/utils/indentation.ts index 4d6da107..14e16ba9 100644 --- a/src/renderer/utils/indentation.ts +++ b/src/renderer/utils/indentation.ts @@ -1,15 +1,15 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; -export function renderIndentation(ctx: MarkupRenderContexts): string { +export function renderIndentation(ctx: MarkupRenderContext): string { const renderConfig = getRenderConfig(ctx); return renderConfig.indentation.repeat(ctx.indentation); } -export function renderWithIndentation(ctx: MarkupRenderContexts, renderedNode: string): string { +export function renderWithIndentation(ctx: MarkupRenderContext, renderedNode: string): string { const renderedIndentation = renderIndentation(ctx); // Keep empty lines empty as they are diff --git a/src/renderer/utils/new-line.ts b/src/renderer/utils/new-line.ts index b55ab494..241ca102 100644 --- a/src/renderer/utils/new-line.ts +++ b/src/renderer/utils/new-line.ts @@ -1,9 +1,9 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; -export function renderNewLine(ctx: MarkupRenderContexts): string { +export function renderNewLine(ctx: MarkupRenderContext): string { const { lineEndings } = ctx.dependencies.os; const renderConfig = getRenderConfig(ctx); return renderConfig.newLine === "os" ? lineEndings : renderConfig.newLine; diff --git a/src/type-definitions/config.ts b/src/type-definitions/config.ts index b285c44b..0f4248b5 100644 --- a/src/type-definitions/config.ts +++ b/src/type-definitions/config.ts @@ -27,9 +27,15 @@ export interface NodeConfig extends BaseConfig { export type Config = BrowserConfig | NodeConfig; -export type CompleteNodeConfig = PartialByKey, "extends">; -export type CompleteBrowserConfig = Required; -export type CompleteConfig = Required; +export interface CompleteNodeConfig extends PartialByKey, "extends"> { + renderConfig: CompleteRenderConfig; +} + +export interface CompleteBrowserConfig extends Required { + renderConfig: CompleteRenderConfig; +} + +export type CompleteConfig = CompleteBrowserConfig | CompleteNodeConfig; export interface CompleteRenderConfig { [BuiltInRenderers.Markdown]: Complete; diff --git a/src/type-definitions/utils.test-d.ts b/src/type-definitions/utils.test-d.ts index c7ecba54..f3f6158a 100644 --- a/src/type-definitions/utils.test-d.ts +++ b/src/type-definitions/utils.test-d.ts @@ -2,15 +2,7 @@ import { describe, expectTypeOf, it, test } from "vitest"; import { scope } from "unwritten:tests:utils/scope"; -import type { - Complete, - DeepPartialByKey, - DeepRequiredByKey, - Disable, - Enable, - Toggle, - TranslationWithoutSuffixes -} from "./utils"; +import type { Complete, DeepPartialByKey, DeepRequiredByKey, Disable, Enable, Toggle } from "./utils"; scope("Types", "Utils", () => { @@ -246,17 +238,4 @@ scope("Types", "Utils", () => { }); - test("TranslationWithoutSuffixes", () => { - - type TestType = { - name_many?: string; - name_one?: string; - }; - - expectTypeOf>().toEqualTypeOf<{ - name?: string; - }>(); - - }); - }); diff --git a/src/type-definitions/utils.ts b/src/type-definitions/utils.ts index 60e606f1..1097bb61 100644 --- a/src/type-definitions/utils.ts +++ b/src/type-definitions/utils.ts @@ -10,14 +10,6 @@ export type Mutable = { // Complete export type Complete = DeepRequiredByKey; - -// Remove translations suffix -type RemoveTranslationsSuffix = { - [Key in keyof T as Key extends `${infer KeyWithoutSuffix}${S}` ? KeyWithoutSuffix : Key]: T[Key]; -}; - -export type TranslationWithoutSuffixes = RemoveTranslationsSuffix, "_many">; - // DeepPartialByKey export type DeepPartial = DeepPartialByKey; export type PartialByKey = DeepPartialByKey; diff --git a/tests/utils/registry.ts b/tests/utils/registry.ts index 7e9e60f4..c400b80e 100644 --- a/tests/utils/registry.ts +++ b/tests/utils/registry.ts @@ -1,9 +1,9 @@ import { MAX_ANONYMOUS_ID } from "unwritten:renderer/markup/registry/registry.js"; -import type { MarkupRenderContexts } from "unwritten:renderer:markup/types-definitions/markup"; +import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; -export function attachTestRegistry(ctx: MarkupRenderContexts): void { +export function attachTestRegistry(ctx: MarkupRenderContext): void { ctx.links = [ { _anonymousId: MAX_ANONYMOUS_ID, diff --git a/tsconfig.json b/tsconfig.json index 07a74897..a05b3ca0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,7 @@ "baseUrl": ".", "lib": ["ESNext", "DOM"], "noImplicitAny": false, + "outDir": "./lib", "paths": { "unwritten:*": ["src/*"], "unwritten:api:*": ["src/api/*"], @@ -22,7 +23,7 @@ "unwritten:types:*": ["src/type-definitions/*"], "unwritten:utils:*": ["src/utils/*"] }, - "target": "ES6" + "target": "ES2020" }, "include": [ "src/**/*.ts", diff --git a/tsconfig.production.json b/tsconfig.schema.json similarity index 100% rename from tsconfig.production.json rename to tsconfig.schema.json diff --git a/vite.config.ts b/vite.config.ts index 82d82627..23ef0e90 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -23,7 +23,7 @@ export default defineConfig({ /^node:.*/ ] }, - target: "es6" + target: "ES2020" }, plugins: [ ...config.plugins ?? [], From 990ecbeddc9e8451b77a3ce2601ab352efc48d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Tue, 21 Nov 2023 18:22:55 +0100 Subject: [PATCH 10/42] chore: regenerate package-lock.json --- package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a131e18..9d139084 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,12 +24,12 @@ "@schoero/ts-config": "^0.3.7", "@schoero/vite-config": "^0.0.29", "@types/minimatch": "^5.1.2", - "@types/node": "^20.9.2", + "@types/node": "^20.9.3", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", "ts-json-schema-generator": "^1.4.0", - "vite": "^5.0.0", + "vite": "^5.0.2", "vite-plugin-dts": "^3.6.3", "vite-plugin-no-bundle": "^3.0.0", "vitest": "^1.0.0-beta.5" @@ -1766,9 +1766,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", - "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", + "version": "20.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.3.tgz", + "integrity": "sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -7652,9 +7652,9 @@ } }, "node_modules/vite": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.0.tgz", - "integrity": "sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.2.tgz", + "integrity": "sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==", "dev": true, "dependencies": { "esbuild": "^0.19.3", From ba348143f439e0bd07e315e5f776fed7e50fe7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Thu, 23 Nov 2023 07:08:57 +0100 Subject: [PATCH 11/42] fix: package json import path --- src/utils/package-json.entry.ts | 6 +----- tsconfig.json | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/utils/package-json.entry.ts b/src/utils/package-json.entry.ts index 8819e9c5..9608a43e 100644 --- a/src/utils/package-json.entry.ts +++ b/src/utils/package-json.entry.ts @@ -1,11 +1,7 @@ -import { readFileSync } from "unwritten:platform/file-system/node"; -import { absolute, getDirectory } from "unwritten:platform/path/node"; import { assert } from "unwritten:utils:general"; +import packageJson from "unwritten:root:package.json"; -const currentDirectoryPath = getDirectory(import.meta.url); -const packageJsonPath = absolute(currentDirectoryPath, "../../package.json"); -const packageJson = JSON.parse(readFileSync(packageJsonPath)); const author: string = packageJson.author; const description: string = packageJson.description; diff --git a/tsconfig.json b/tsconfig.json index a05b3ca0..74344991 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,6 +19,7 @@ "unwritten:renderer:json*": ["src/renderer/json/*"], "unwritten:renderer:markdown*": ["src/renderer/markup/markdown/*"], "unwritten:renderer:ts*": ["src/renderer/typescript/*"], + "unwritten:root:*": ["*"], "unwritten:tests:*": ["tests/*"], "unwritten:types:*": ["src/type-definitions/*"], "unwritten:utils:*": ["src/utils/*"] From f7d0ccc8b8d59bf400627407ece360797c9dbd97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Thu, 23 Nov 2023 07:11:29 +0100 Subject: [PATCH 12/42] refactor: harmonize path aliases --- src/config/config.ts | 2 +- src/renderer/index.ts | 2 +- src/renderer/json/config/default.ts | 2 +- src/renderer/json/index.ts | 2 +- src/renderer/markup/html/ast/bold.ts | 2 +- src/renderer/markup/html/ast/conditional.ts | 2 +- src/renderer/markup/html/ast/italic.ts | 2 +- src/renderer/markup/html/ast/link.ts | 2 +- src/renderer/markup/html/ast/multiline.ts | 2 +- src/renderer/markup/html/ast/paragraph.ts | 2 +- src/renderer/markup/html/ast/section.ts | 2 +- src/renderer/markup/html/ast/small.ts | 2 +- src/renderer/markup/html/ast/span.ts | 2 +- src/renderer/markup/html/ast/strikethrough.ts | 2 +- src/renderer/markup/html/ast/title.ts | 2 +- src/renderer/markup/html/index.ts | 20 +++++++++---------- src/renderer/markup/markdown/ast/anchor.ts | 2 +- src/renderer/markup/markdown/ast/bold.ts | 2 +- .../markup/markdown/ast/conditional.ts | 2 +- .../markup/markdown/ast/inline-title.ts | 2 +- src/renderer/markup/markdown/ast/italic.ts | 2 +- src/renderer/markup/markdown/ast/link.ts | 2 +- src/renderer/markup/markdown/ast/multiline.ts | 2 +- src/renderer/markup/markdown/ast/padded.ts | 2 +- src/renderer/markup/markdown/ast/paragraph.ts | 2 +- src/renderer/markup/markdown/ast/section.ts | 2 +- src/renderer/markup/markdown/ast/small.ts | 2 +- src/renderer/markup/markdown/ast/span.ts | 2 +- .../markup/markdown/ast/strikethrough.ts | 2 +- src/renderer/markup/markdown/ast/title.ts | 2 +- src/renderer/markup/markdown/index.ts | 20 +++++++++---------- src/renderer/utils/config.ts | 4 ++-- src/type-definitions/config.ts | 2 +- tests/utils/context.ts | 4 ++-- tsconfig.json | 6 +++--- 35 files changed, 57 insertions(+), 57 deletions(-) diff --git a/src/config/config.ts b/src/config/config.ts index 154dfeff..96bedebf 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -1,5 +1,5 @@ import { BuiltInRenderers } from "unwritten:renderer/enums/renderer"; -import { defaultJSONRenderConfig } from "unwritten:renderer:json/config/default"; +import { defaultJSONRenderConfig } from "unwritten:renderer:json:config/default"; import { defaultHTMLRenderConfig, defaultMarkdownRenderConfig } from "unwritten:renderer:markup/config/default"; import { isNodeContext } from "unwritten:utils/context"; import { findFile } from "unwritten:utils:finder"; diff --git a/src/renderer/index.ts b/src/renderer/index.ts index dd7fe1d8..9e25a6c8 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -17,7 +17,7 @@ export async function getRenderer(renderer?: Renderer | string): Promise Date: Mon, 4 Dec 2023 21:29:08 +0100 Subject: [PATCH 13/42] feat: allow more config names --- src/config/config.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/config/config.ts b/src/config/config.ts index 96bedebf..15737049 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -18,8 +18,18 @@ import type { DefaultBrowserContext, DefaultContext, DefaultNodeContext } from " const CONFIG_NAMES = [ + "unwritten.json", + "unwritten.js", + "unwritten.config.js", + "unwritten.config.mjs", + "unwritten.config.cjs", + "unwritten.mjs", + "unwritten.cjs", ".unwritten.json", ".unwritten.js", + ".unwritten.config.js", + ".unwritten.config.mjs", + ".unwritten.config.cjs", ".unwritten.mjs", ".unwritten.cjs" ]; From d2332b2320dee503a35e3031596660e057d5c9e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:34:37 +0100 Subject: [PATCH 14/42] ci: remove vitest beta workaround --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b63c9c9..f9d7d04a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: node-version: 20 - name: Install dependencies - run: npm ci --force + run: npm ci - name: Lint run: npm run lint:ci @@ -43,7 +43,7 @@ jobs: node-version: ${{ matrix.node }} - name: Install dependencies - run: npm ci --force + run: npm ci - name: Run tests run: npm test From 0d806c4d469ed60dc2dd71932518419c28c1283b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:34:59 +0100 Subject: [PATCH 15/42] chore: update dependencies --- package-lock.json | 744 +++++++++++++++++++++++----------------------- package.json | 12 +- 2 files changed, 380 insertions(+), 376 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9d139084..ec0475ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,18 +21,18 @@ "@schoero/cspell-config": "^1.9.0", "@schoero/eslint-config": "^1.42.0", "@schoero/markdownlint-config": "^1.1.7", - "@schoero/ts-config": "^0.3.7", + "@schoero/ts-config": "^0.3.8", "@schoero/vite-config": "^0.0.29", "@types/minimatch": "^5.1.2", - "@types/node": "^20.9.3", + "@types/node": "^20.10.3", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", - "ts-json-schema-generator": "^1.4.0", - "vite": "^5.0.2", - "vite-plugin-dts": "^3.6.3", + "ts-json-schema-generator": "^1.4.1", + "vite": "^5.0.5", + "vite-plugin-dts": "^3.6.4", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.0.0-beta.5" + "vitest": "^1.0.1" }, "engines": { "node": ">=16.9.0" @@ -84,13 +84,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "peer": true, "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "engines": { @@ -146,9 +146,9 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "peer": true, "dependencies": { @@ -199,9 +199,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", - "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -348,16 +348,16 @@ "peer": true }, "node_modules/@cspell/dict-companies": { - "version": "3.0.27", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.27.tgz", - "integrity": "sha512-gaPR/luf+4oKGyxvW4GbxGGPdHiC5kj/QefnmQqrLFrLiCSXMZg5/NL+Lr4E5lcHsd35meX61svITQAvsT7lyQ==", + "version": "3.0.28", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.28.tgz", + "integrity": "sha512-UinHkMYB/1pUkLKm1PGIm9PBFYxeAa6YvbB1Rq/RAAlrs0WDwiDBr3BAYdxydukG1IqqwT5z9WtU+8D/yV/5lw==", "dev": true, "peer": true }, "node_modules/@cspell/dict-cpp": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.9.tgz", - "integrity": "sha512-ql9WPNp8c+fhdpVpjpZEUWmxBHJXs9CJuiVVfW/iwv5AX7VuMHyEwid+9/6nA8qnCxkUQ5pW83Ums1lLjn8ScA==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.10.tgz", + "integrity": "sha512-WCRuDrkFdpmeIR6uXQYKU9loMQKNFS4bUhtHdv5fu4qVyJSh3k/kgmtTm1h1BDTj8EwPRc/RGxS+9Z3b2mnabA==", "dev": true, "peer": true }, @@ -432,9 +432,9 @@ "peer": true }, "node_modules/@cspell/dict-en_us": { - "version": "4.3.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.11.tgz", - "integrity": "sha512-GhdavZFlS2YbUNcRtPbgJ9j6aUyq116LmDQ2/Q5SpQxJ5/6vVs8Yj5WxV1JD+Zh/Zim1NJDcneTOuLsUGi+Czw==", + "version": "4.3.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.12.tgz", + "integrity": "sha512-1bsUxFjgxF30FTzcU5uvmCvH3lyqVKR9dbwsJhomBlUM97f0edrd6590SiYBXDm7ruE68m3lJd4vs0Ev2D6FtQ==", "dev": true, "peer": true }, @@ -453,9 +453,9 @@ "peer": true }, "node_modules/@cspell/dict-filetypes": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.2.tgz", - "integrity": "sha512-StoC0wPmFNav6F6P8/FYFN1BpZfPgOmktb8gQ9wTauelWofPeBW+A0t5ncZt9hXHtnbGDA98v4ukacV+ucbnUg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.3.tgz", + "integrity": "sha512-J9UP+qwwBLfOQ8Qg9tAsKtSY/WWmjj21uj6zXTI9hRLD1eG1uUOLcfVovAmtmVqUWziPSKMr87F6SXI3xmJXgw==", "dev": true, "peer": true }, @@ -495,9 +495,9 @@ "peer": true }, "node_modules/@cspell/dict-golang": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.4.tgz", - "integrity": "sha512-jOfewPEyN6U9Q80okE3b1PTYBfqZgHh7w4o271GSuAX+VKJ1lUDhdR4bPKRxSDdO5jHArw2u5C8nH2CWGuygbQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.5.tgz", + "integrity": "sha512-w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA==", "dev": true, "peer": true }, @@ -579,9 +579,9 @@ "peer": true }, "node_modules/@cspell/dict-npm": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.12.tgz", - "integrity": "sha512-T/+WeQmtbxo7ad6hrdI8URptYstKJP+kXyWJZfuVJJGWJQ7yubxrI5Z5AfM+Dh/ff4xHmdzapxD9adaEQ727uw==", + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.13.tgz", + "integrity": "sha512-uPb3DlQA/FvlmzT5RjZoy7fy91mxMRZW1B+K3atVM5A/cmP1QlDaSW/iCtde5kHET1MOV7uxz+vy0Yha2OI5pQ==", "dev": true, "peer": true }, @@ -645,9 +645,9 @@ "peer": true }, "node_modules/@cspell/dict-software-terms": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.9.tgz", - "integrity": "sha512-/O3EWe0SIznx18S7J3GAXPDe7sexn3uTsf4IlnGYK9WY6ZRuEywkXCB+5/USLTGf4+QC05pkHofphdvVSifDyA==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.11.tgz", + "integrity": "sha512-a2Zml4G47dbQ6GDdN7+YlIWs3nFnIcJkZOLT88m/LzxjApiF7AOZLqQiKwow03hyvGSuZy8itgQZmQHoPlw2vQ==", "dev": true, "peer": true }, @@ -725,9 +725,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz", + "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==", "cpu": [ "arm" ], @@ -741,9 +741,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz", + "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==", "cpu": [ "arm64" ], @@ -757,9 +757,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz", + "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==", "cpu": [ "x64" ], @@ -773,9 +773,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz", + "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==", "cpu": [ "arm64" ], @@ -789,9 +789,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz", + "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==", "cpu": [ "x64" ], @@ -805,9 +805,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz", + "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==", "cpu": [ "arm64" ], @@ -821,9 +821,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz", + "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==", "cpu": [ "x64" ], @@ -837,9 +837,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz", + "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==", "cpu": [ "arm" ], @@ -853,9 +853,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz", + "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==", "cpu": [ "arm64" ], @@ -869,9 +869,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz", + "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==", "cpu": [ "ia32" ], @@ -885,9 +885,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz", + "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==", "cpu": [ "loong64" ], @@ -901,9 +901,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz", + "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==", "cpu": [ "mips64el" ], @@ -917,9 +917,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz", + "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==", "cpu": [ "ppc64" ], @@ -933,9 +933,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz", + "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==", "cpu": [ "riscv64" ], @@ -949,9 +949,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz", + "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==", "cpu": [ "s390x" ], @@ -965,9 +965,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz", + "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==", "cpu": [ "x64" ], @@ -981,9 +981,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz", + "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==", "cpu": [ "x64" ], @@ -997,9 +997,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz", + "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==", "cpu": [ "x64" ], @@ -1013,9 +1013,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz", + "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==", "cpu": [ "x64" ], @@ -1029,9 +1029,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz", + "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==", "cpu": [ "arm64" ], @@ -1045,9 +1045,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz", + "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==", "cpu": [ "ia32" ], @@ -1061,9 +1061,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz", + "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==", "cpu": [ "x64" ], @@ -1103,9 +1103,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "peer": true, "dependencies": { @@ -1151,9 +1151,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "peer": true, "engines": { @@ -1408,9 +1408,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", - "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -1430,9 +1430,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz", - "integrity": "sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.1.tgz", + "integrity": "sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==", "cpu": [ "arm" ], @@ -1443,9 +1443,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.0.tgz", - "integrity": "sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz", + "integrity": "sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==", "cpu": [ "arm64" ], @@ -1456,9 +1456,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.0.tgz", - "integrity": "sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.1.tgz", + "integrity": "sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==", "cpu": [ "arm64" ], @@ -1469,9 +1469,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.0.tgz", - "integrity": "sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.1.tgz", + "integrity": "sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==", "cpu": [ "x64" ], @@ -1482,9 +1482,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.0.tgz", - "integrity": "sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.1.tgz", + "integrity": "sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==", "cpu": [ "arm" ], @@ -1495,9 +1495,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.0.tgz", - "integrity": "sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.1.tgz", + "integrity": "sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==", "cpu": [ "arm64" ], @@ -1508,9 +1508,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.0.tgz", - "integrity": "sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.1.tgz", + "integrity": "sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==", "cpu": [ "arm64" ], @@ -1521,9 +1521,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.0.tgz", - "integrity": "sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz", + "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==", "cpu": [ "x64" ], @@ -1534,9 +1534,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.0.tgz", - "integrity": "sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz", + "integrity": "sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==", "cpu": [ "x64" ], @@ -1547,9 +1547,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.0.tgz", - "integrity": "sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.1.tgz", + "integrity": "sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==", "cpu": [ "arm64" ], @@ -1560,9 +1560,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.0.tgz", - "integrity": "sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.1.tgz", + "integrity": "sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==", "cpu": [ "ia32" ], @@ -1573,9 +1573,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.0.tgz", - "integrity": "sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz", + "integrity": "sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==", "cpu": [ "x64" ], @@ -1707,9 +1707,9 @@ } }, "node_modules/@schoero/ts-config": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@schoero/ts-config/-/ts-config-0.3.7.tgz", - "integrity": "sha512-RDsQJaEocfPaS2I0+LfggQy9x3r+ZNlUxUEs4j1bhfYi0mRgrnUxlFk8L9lgeL7efPBI+67zWvotAE+tHlnGgA==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@schoero/ts-config/-/ts-config-0.3.8.tgz", + "integrity": "sha512-m3oMKBNbqh8ijA0VN+/uDhhIq9c4cVXeGiJV0pkEMhHL5qnbIuOcePRhBxL3yDhmsAA0+bpCBBAHrnAWU43NwQ==", "dev": true, "engines": { "node": ">=14" @@ -1766,9 +1766,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.9.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.3.tgz", - "integrity": "sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw==", + "version": "20.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", + "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1782,9 +1782,9 @@ "peer": true }, "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", "dev": true, "peer": true }, @@ -1796,17 +1796,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", - "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", + "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", "dev": true, "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/type-utils": "6.11.0", - "@typescript-eslint/utils": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/type-utils": "6.13.2", + "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1981,16 +1981,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", - "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", + "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4" }, "engines": { @@ -2010,14 +2010,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", - "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", + "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0" + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2028,14 +2028,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", - "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", + "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/utils": "6.13.2", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -2056,9 +2056,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", - "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", + "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", "dev": true, "peer": true, "engines": { @@ -2070,14 +2070,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", - "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", + "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2098,18 +2098,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", - "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", + "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", "semver": "^7.5.4" }, "engines": { @@ -2124,13 +2124,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", - "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", + "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/types": "6.13.2", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -2149,13 +2149,13 @@ "peer": true }, "node_modules/@vitest/expect": { - "version": "1.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.0-beta.5.tgz", - "integrity": "sha512-q/TPdbXuEZZNFKILEVicojSWEq1y8qPLcAiZRQD8DsYUAV2cIjsD5lJWYaAjjUAV4lzovSci3KeISQdjUdfxQQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.1.tgz", + "integrity": "sha512-3cdrb/eKD/0tygDX75YscuHEHMUJ70u3UoLSq2eqhWks57AyzvsDQbyn53IhZ0tBN7gA8Jj2VhXiOV2lef7thw==", "dev": true, "dependencies": { - "@vitest/spy": "1.0.0-beta.5", - "@vitest/utils": "1.0.0-beta.5", + "@vitest/spy": "1.0.1", + "@vitest/utils": "1.0.1", "chai": "^4.3.10" }, "funding": { @@ -2163,12 +2163,12 @@ } }, "node_modules/@vitest/runner": { - "version": "1.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.0-beta.5.tgz", - "integrity": "sha512-o/6ZqQoKCIdI4dmdc4Yb1u3n56dU69SABXyO5yhFZTDjEMJs1DdCQ68JK+UcrpJMQndr6q5lTFrfHEhj4XJy6w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.1.tgz", + "integrity": "sha512-/+z0vhJ0MfRPT3AyTvAK6m57rzlew/ct8B2a4LMv7NhpPaiI2QLGyOBMB3lcioWdJHjRuLi9aYppfOv0B5aRQA==", "dev": true, "dependencies": { - "@vitest/utils": "1.0.0-beta.5", + "@vitest/utils": "1.0.1", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -2204,9 +2204,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.0-beta.5.tgz", - "integrity": "sha512-fsWoc/mokLawqrLFqK9MHEyzJaGeDzU5gAgky2yZJR58VSsSvW+cesvmdv9ch39xHlTzFTRPgrWkNsmbdm2gbg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.1.tgz", + "integrity": "sha512-wIPtPDGSxEZ+DpNMc94AsybX6LV6uN6sosf5TojyP1m2QbKwiRuLV/5RSsjt1oWViHsTj8mlcwrQQ1zHGO0fMw==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -2230,9 +2230,9 @@ } }, "node_modules/@vitest/spy": { - "version": "1.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.0-beta.5.tgz", - "integrity": "sha512-B5dx87eCiJidWGdURMS/etHE9P3JRdFEQj8HQRGI3OhMy5XcSrdAwg5oEADoqXm32GUGc7bC8Dw/q9PiCJSBIQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.1.tgz", + "integrity": "sha512-yXwm1uKhBVr/5MhVeSmtNqK+0q2RXIchJt8kokEKdrWLtkPeDgdbZ6SjR1VQGZuNdWL6sSBnLayIyVvcS0qLfA==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -2242,9 +2242,9 @@ } }, "node_modules/@vitest/utils": { - "version": "1.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.0-beta.5.tgz", - "integrity": "sha512-5ippiVcc6KjnAZiMc5Gz5g1tWTG+21g5scr+cedYC+YxAjqZzOG/ncJuM/Eqq9a+/MAJJc5zOGBcDYl27x62jg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.1.tgz", + "integrity": "sha512-MGPCHkzXbbAyscrhwGzh8uP1HPrTYLWaj1WTDtWSGrpe2yJWLRN9mF9ooKawr6NMOg9vTBtg2JqWLfuLC7Dknw==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", @@ -2256,68 +2256,69 @@ } }, "node_modules/@volar/language-core": { - "version": "1.10.10", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.10.10.tgz", - "integrity": "sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", "dev": true, "dependencies": { - "@volar/source-map": "1.10.10" + "@volar/source-map": "1.11.1" } }, "node_modules/@volar/source-map": { - "version": "1.10.10", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.10.10.tgz", - "integrity": "sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", "dev": true, "dependencies": { "muggle-string": "^0.3.1" } }, "node_modules/@volar/typescript": { - "version": "1.10.10", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.10.10.tgz", - "integrity": "sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", "dev": true, "dependencies": { - "@volar/language-core": "1.10.10", + "@volar/language-core": "1.11.1", "path-browserify": "^1.0.1" } }, "node_modules/@vue/compiler-core": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.8.tgz", - "integrity": "sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.10.tgz", + "integrity": "sha512-doe0hODR1+i1menPkRzJ5MNR6G+9uiZHIknK3Zn5OcIztu6GGw7u0XUzf3AgB8h/dfsZC9eouzoLo3c3+N/cVA==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.0", - "@vue/shared": "3.3.8", + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.10", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz", - "integrity": "sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.10.tgz", + "integrity": "sha512-NCrqF5fm10GXZIK0GrEAauBqdy+F2LZRt3yNHzrYjpYBuRssQbuPLtSnSNjyR9luHKkWSH8we5LMB3g+4z2HvA==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.3.8", - "@vue/shared": "3.3.8" + "@vue/compiler-core": "3.3.10", + "@vue/shared": "3.3.10" } }, "node_modules/@vue/language-core": { - "version": "1.8.22", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.22.tgz", - "integrity": "sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw==", + "version": "1.8.24", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.24.tgz", + "integrity": "sha512-2ClHvij0WlsDWryPzXJCSpPc6rusZFNoVtRZGgGGkKCmKuIREDDKmH8j+1tYyxPYyH0qL6pZ6+IHD8KIm5nWAw==", "dev": true, "dependencies": { - "@volar/language-core": "~1.10.5", - "@volar/source-map": "~1.10.5", + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", "@vue/compiler-dom": "^3.3.0", "@vue/shared": "^3.3.0", "computeds": "^0.0.1", "minimatch": "^9.0.3", "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", "vue-template-compiler": "^2.7.14" }, "peerDependencies": { @@ -2330,9 +2331,9 @@ } }, "node_modules/@vue/shared": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.8.tgz", - "integrity": "sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.10.tgz", + "integrity": "sha512-2y3Y2J1a3RhFa0WisHvACJR2ncvWiVHcP8t0Inxo+NKz+8RKO4ZV8eZgCxRgQoA6ITfV12L4E6POOL9HOU5nqw==", "dev": true }, "node_modules/acorn": { @@ -2495,9 +2496,9 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "dev": true, "engines": { "node": ">=0.6" @@ -3534,9 +3535,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz", + "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==", "dev": true, "hasInstallScript": true, "bin": { @@ -3546,28 +3547,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" + "@esbuild/android-arm": "0.19.8", + "@esbuild/android-arm64": "0.19.8", + "@esbuild/android-x64": "0.19.8", + "@esbuild/darwin-arm64": "0.19.8", + "@esbuild/darwin-x64": "0.19.8", + "@esbuild/freebsd-arm64": "0.19.8", + "@esbuild/freebsd-x64": "0.19.8", + "@esbuild/linux-arm": "0.19.8", + "@esbuild/linux-arm64": "0.19.8", + "@esbuild/linux-ia32": "0.19.8", + "@esbuild/linux-loong64": "0.19.8", + "@esbuild/linux-mips64el": "0.19.8", + "@esbuild/linux-ppc64": "0.19.8", + "@esbuild/linux-riscv64": "0.19.8", + "@esbuild/linux-s390x": "0.19.8", + "@esbuild/linux-x64": "0.19.8", + "@esbuild/netbsd-x64": "0.19.8", + "@esbuild/openbsd-x64": "0.19.8", + "@esbuild/sunos-x64": "0.19.8", + "@esbuild/win32-arm64": "0.19.8", + "@esbuild/win32-ia32": "0.19.8", + "@esbuild/win32-x64": "0.19.8" } }, "node_modules/escape-string-regexp": { @@ -3584,16 +3585,16 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3993,13 +3994,13 @@ } }, "node_modules/eslint-plugin-vitest": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.9.tgz", - "integrity": "sha512-ZGrz8dWFlotM5dwrsMLP4VcY5MizwKNV4JTnY0VKdnuCZ+qeEUMHf1qd8kRGQA3tqLvXcV929wt2ANkduq2Pgw==", + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.10.tgz", + "integrity": "sha512-08lj4rdhZHYyHk+Py2nJ7SlE6arP8GNfGXl9jVqhe9s5JoZIGiBpIkLGX+VNBiB6vXTn56H6Ant7Koc6XzRjtQ==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/utils": "^6.9.1" + "@typescript-eslint/utils": "^6.11.0" }, "engines": { "node": "14.x || >= 16" @@ -6215,9 +6216,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -6234,7 +6235,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -6281,22 +6282,28 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "peer": true, "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { "node": ">= 14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" @@ -6310,6 +6317,16 @@ } } }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=14" + } + }, "node_modules/postcss-nested": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", @@ -6660,9 +6677,9 @@ } }, "node_modules/rollup": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.0.tgz", - "integrity": "sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.1.tgz", + "integrity": "sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -6672,18 +6689,18 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.5.0", - "@rollup/rollup-android-arm64": "4.5.0", - "@rollup/rollup-darwin-arm64": "4.5.0", - "@rollup/rollup-darwin-x64": "4.5.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.5.0", - "@rollup/rollup-linux-arm64-gnu": "4.5.0", - "@rollup/rollup-linux-arm64-musl": "4.5.0", - "@rollup/rollup-linux-x64-gnu": "4.5.0", - "@rollup/rollup-linux-x64-musl": "4.5.0", - "@rollup/rollup-win32-arm64-msvc": "4.5.0", - "@rollup/rollup-win32-ia32-msvc": "4.5.0", - "@rollup/rollup-win32-x64-msvc": "4.5.0", + "@rollup/rollup-android-arm-eabi": "4.6.1", + "@rollup/rollup-android-arm64": "4.6.1", + "@rollup/rollup-darwin-arm64": "4.6.1", + "@rollup/rollup-darwin-x64": "4.6.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.6.1", + "@rollup/rollup-linux-arm64-gnu": "4.6.1", + "@rollup/rollup-linux-arm64-musl": "4.6.1", + "@rollup/rollup-linux-x64-gnu": "4.6.1", + "@rollup/rollup-linux-x64-musl": "4.6.1", + "@rollup/rollup-win32-arm64-msvc": "4.6.1", + "@rollup/rollup-win32-ia32-msvc": "4.6.1", + "@rollup/rollup-win32-x64-msvc": "4.6.1", "fsevents": "~2.3.2" } }, @@ -6851,9 +6868,9 @@ } }, "node_modules/scule": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/scule/-/scule-1.1.0.tgz", - "integrity": "sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.1.1.tgz", + "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==", "dev": true }, "node_modules/semver": { @@ -6994,9 +7011,9 @@ "dev": true }, "node_modules/std-env": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", - "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.6.0.tgz", + "integrity": "sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==", "dev": true }, "node_modules/string-argv": { @@ -7177,9 +7194,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", - "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.6.tgz", + "integrity": "sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw==", "dev": true, "peer": true, "dependencies": { @@ -7350,9 +7367,9 @@ "peer": true }, "node_modules/ts-json-schema-generator": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.4.0.tgz", - "integrity": "sha512-wm8vyihmGgYpxrqRshmYkWGNwEk+sf3xV2rUgxv8Ryeh7bSpMO7pZQOht+2rS002eDkFTxR7EwRPXVzrS0WJTg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.4.1.tgz", + "integrity": "sha512-wnhPMtskk9KvsTuU8AYx0TNdm1YrLVUEontT22+jL12JIPqPXdaoxPgsYBhlqDXsR9R9Nm2bJgH5r4IrTMbTSg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.12", @@ -7361,7 +7378,7 @@ "json5": "^2.2.3", "normalize-path": "^3.0.0", "safe-stable-stringify": "^2.4.3", - "typescript": "~5.2.2" + "typescript": "~5.3.2" }, "bin": { "ts-json-schema-generator": "bin/ts-json-schema-generator" @@ -7401,19 +7418,6 @@ "node": ">=10" } }, - "node_modules/ts-json-schema-generator/node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/tsconfck": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.2.tgz", @@ -7539,9 +7543,9 @@ "dev": true }, "node_modules/undici": { - "version": "5.27.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", - "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", + "version": "5.28.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", + "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", "dev": true, "peer": true, "dependencies": { @@ -7652,13 +7656,13 @@ } }, "node_modules/vite": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.2.tgz", - "integrity": "sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.5.tgz", + "integrity": "sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==", "dev": true, "dependencies": { "esbuild": "^0.19.3", - "postcss": "^8.4.31", + "postcss": "^8.4.32", "rollup": "^4.2.0" }, "bin": { @@ -7707,9 +7711,9 @@ } }, "node_modules/vite-node": { - "version": "1.0.0-beta.5", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.0-beta.5.tgz", - "integrity": "sha512-iXm+GTJbR9R6V/bCM1+LQqIohL/tncZVNGIcTtzpYThBD8yiTkDPvEjy1Mf7KFACtG3qY/0VDMrkuMtqG/JFhg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.1.tgz", + "integrity": "sha512-Y2Jnz4cr2azsOMMYuVPrQkp3KMnS/0WV8ezZjCy4hU7O5mUHCAVOnFmoEvs1nvix/4mYm74Len8bYRWZJMNP6g==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -7729,9 +7733,9 @@ } }, "node_modules/vite-plugin-dts": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.6.3.tgz", - "integrity": "sha512-NyRvgobl15rYj65coi/gH7UAEH+CpSjh539DbGb40DfOTZSvDLNYTzc8CK4460W+LqXuMK7+U3JAxRB3ksrNPw==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.6.4.tgz", + "integrity": "sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==", "dev": true, "dependencies": { "@microsoft/api-extractor": "^7.38.0", @@ -7785,16 +7789,16 @@ } }, "node_modules/vitest": { - "version": "1.0.0-beta.5", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.0-beta.5.tgz", - "integrity": "sha512-wmrGmXMKysR+JBvIwy0COgLrRSsZTR00dN+IpWBxGC4ACF5Mt/uYyrPLJZ0ixK4P3bxI16vd92JXMsuGnm9gQQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.1.tgz", + "integrity": "sha512-MHsOj079S28hDsvdDvyD1pRj4dcS51EC5Vbe0xvOYX+WryP8soiK2dm8oULi+oA/8Xa/h6GoJEMTmcmBy5YM+Q==", "dev": true, "dependencies": { - "@vitest/expect": "1.0.0-beta.5", - "@vitest/runner": "1.0.0-beta.5", - "@vitest/snapshot": "1.0.0-beta.5", - "@vitest/spy": "1.0.0-beta.5", - "@vitest/utils": "1.0.0-beta.5", + "@vitest/expect": "1.0.1", + "@vitest/runner": "1.0.1", + "@vitest/snapshot": "1.0.1", + "@vitest/spy": "1.0.1", + "@vitest/utils": "1.0.1", "acorn-walk": "^8.3.0", "cac": "^6.7.14", "chai": "^4.3.10", @@ -7804,12 +7808,12 @@ "magic-string": "^0.30.5", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "std-env": "^3.4.3", + "std-env": "^3.5.0", "strip-literal": "^1.3.0", "tinybench": "^2.5.1", "tinypool": "^0.8.1", "vite": "^5.0.0-beta.19 || ^5.0.0", - "vite-node": "1.0.0-beta.5", + "vite-node": "1.0.1", "why-is-node-running": "^2.2.2" }, "bin": { @@ -7824,8 +7828,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "*", - "@vitest/ui": "*", + "@vitest/browser": "^1.0.0", + "@vitest/ui": "^1.0.0", "happy-dom": "*", "jsdom": "*" }, @@ -7851,9 +7855,9 @@ } }, "node_modules/vitest-github-actions-reporter": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.11.0.tgz", - "integrity": "sha512-zvWOGyGmyZUIJ/veyRkfiMaiktZYfiBsRVdkOP0CiZDhQPZYhoFO/nFwBPn3LLIlBROFfLT+QjRtivocwuyPww==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.11.1.tgz", + "integrity": "sha512-ZHHB0wBgOPhMYCB17WKVlJZa+5SdudBZFoVoebwfq3ioIUTeLQGYHwh85vpdJAxRghLP8d0qI/6eCTueGyDVXA==", "dev": true, "peer": true, "dependencies": { @@ -7903,13 +7907,13 @@ } }, "node_modules/vue-tsc": { - "version": "1.8.22", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.22.tgz", - "integrity": "sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A==", + "version": "1.8.24", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.24.tgz", + "integrity": "sha512-eH1CSj231OzVEY5Hi7wS6ubzyOEwgr5jCptR0Ddf2SitGcaXIsPVDvrprm3eolCdyhDt3WS1Eb2F4fGX9BsUUw==", "dev": true, "dependencies": { - "@volar/typescript": "~1.10.5", - "@vue/language-core": "1.8.22", + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.24", "semver": "^7.5.4" }, "bin": { diff --git a/package.json b/package.json index 2ab148c8..39057789 100644 --- a/package.json +++ b/package.json @@ -72,18 +72,18 @@ "@schoero/cspell-config": "^1.9.0", "@schoero/eslint-config": "^1.42.0", "@schoero/markdownlint-config": "^1.1.7", - "@schoero/ts-config": "^0.3.7", + "@schoero/ts-config": "^0.3.8", "@schoero/vite-config": "^0.0.29", "@types/minimatch": "^5.1.2", - "@types/node": "^20.9.3", + "@types/node": "^20.10.3", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", - "ts-json-schema-generator": "^1.4.0", - "vite": "^5.0.2", - "vite-plugin-dts": "^3.6.3", + "ts-json-schema-generator": "^1.4.1", + "vite": "^5.0.5", + "vite-plugin-dts": "^3.6.4", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.0.0-beta.5" + "vitest": "^1.0.1" }, "keywords": [ "documentation", From 93af68ce0f90ac1acaf2b5765f49013e198b690e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:51:19 +0100 Subject: [PATCH 16/42] refactor: allow js with default compiler options --- src/compiler/shared.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/shared.ts b/src/compiler/shared.ts index bd27cfb4..73fb64de 100644 --- a/src/compiler/shared.ts +++ b/src/compiler/shared.ts @@ -9,7 +9,9 @@ export function getDefaultCompilerOptions(ctx: DefaultContext): CompilerOptions const { ts } = ctx.dependencies; return { ...ts.getDefaultCompilerOptions(), - allowJs: true + allowJs: true, + checkJs: true, + noEmit: true }; } From f0238058d73d4f8961811074a2482cea97159bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:51:31 +0100 Subject: [PATCH 17/42] refactor: improve logging --- src/compiler/node.ts | 68 +++++----- src/config/config.ts | 4 +- src/platform/logger/browser.ts | 61 ++++++--- src/platform/logger/node.ts | 214 ++++++++++++++++++++++++------- src/type-definitions/platform.ts | 21 ++- src/utils/general.ts | 12 +- 6 files changed, 276 insertions(+), 104 deletions(-) diff --git a/src/compiler/node.ts b/src/compiler/node.ts index d2673fab..76e3e443 100644 --- a/src/compiler/node.ts +++ b/src/compiler/node.ts @@ -18,22 +18,15 @@ export function compile(ctx: DefaultNodeContext, entryFilePaths: string[], tsCon ? absolute(tsConfigOrFilePath) : tsConfigOrFilePath; - // Compile const compilerOptions = getCompilerOptions(ctx, absoluteEntryFilePaths, tsConfigOrResolvedFilePath); const compilerHost = getCompilerHost(ctx, compilerOptions); - if(logger){ - const formattedFileNames = absoluteEntryFilePaths.map( - entryFilePath => `${logger.filePath(entryFilePath)}` - ); - logger.info("Invoking the TypeScript compiler to compile", formattedFileNames); - } + logger?.stats(ctx, { entryPoints: absoluteEntryFilePaths }); const program = ts.createProgram(absoluteEntryFilePaths, compilerOptions, compilerHost); const checker = program.getTypeChecker(); - // Report any compiler messages void reportCompilerDiagnostics(ctx, program.getSemanticDiagnostics()); @@ -54,52 +47,58 @@ function getCompilerOptions(ctx: DefaultNodeContext, entryFilePaths: string[], t const logger = ctx.dependencies.logger; const { existsSync } = ctx.dependencies.fs; + let compilerOptions: CompilerOptions | undefined; + let tsconfigPath: string | undefined; + // Use provided compiler options if(typeof tsConfigOrFilePath === "object"){ - logger?.info("Using provided compiler options"); + logger?.stats(ctx, { tsconfig: "provided config" }); const { errors, options } = ts.convertCompilerOptionsFromJson(tsConfigOrFilePath, "."); void reportCompilerDiagnostics(ctx, errors); - return options; + compilerOptions = options; } // Get compiler options from provided tsconfig.json if(typeof tsConfigOrFilePath === "string"){ - const compilerOptions = readConfigFile(ctx, tsConfigOrFilePath); - if(compilerOptions !== undefined){ - return compilerOptions; + const compilerOptionsFromFile = readConfigFile(ctx, tsConfigOrFilePath); + if(compilerOptionsFromFile !== undefined){ + compilerOptions = compilerOptionsFromFile; + tsconfigPath = tsConfigOrFilePath; } } // Try to find tsconfig via ts.findConfigFile - { + if(compilerOptions === undefined){ const foundTSConfigFilePath = entryFilePaths.map( entryFilePath => ts.findConfigFile(entryFilePath, existsSync) ).filter(tsconfig => !!tsconfig)[0]; if(foundTSConfigFilePath !== undefined){ - const compilerOptions = readConfigFile(ctx, foundTSConfigFilePath); - if(compilerOptions !== undefined){ - return compilerOptions; + const compilerOptionsFromFile = readConfigFile(ctx, foundTSConfigFilePath); + if(compilerOptionsFromFile !== undefined){ + compilerOptions = compilerOptionsFromFile; + tsconfigPath = foundTSConfigFilePath; } } } // Try to find tsconfig via custom finder - { + if(compilerOptions === undefined){ const foundTSConfigFilePath = entryFilePaths.map( entryFilePath => findFile(ctx, "tsconfig.json", entryFilePath) ).filter(tsconfig => !!tsconfig)[0]; if(foundTSConfigFilePath !== undefined){ - const compilerOptions = readConfigFile(ctx, foundTSConfigFilePath); - if(compilerOptions !== undefined){ - return compilerOptions; + const compilerOptionsFromFile = readConfigFile(ctx, foundTSConfigFilePath); + if(compilerOptionsFromFile !== undefined){ + compilerOptions = compilerOptionsFromFile; + tsconfigPath = foundTSConfigFilePath; } } } // Try to find project root by searching package.json via custom finder - { + if(compilerOptions === undefined){ const foundPackageJsonFilePath = entryFilePaths.map( entryFilePath => findFile(ctx, "package.json", entryFilePath) ).filter(tsconfig => !!tsconfig)[0]; @@ -107,22 +106,29 @@ function getCompilerOptions(ctx: DefaultNodeContext, entryFilePaths: string[], t if(foundPackageJsonFilePath !== undefined){ const foundTSConfigFilePath = ts.findConfigFile(foundPackageJsonFilePath, existsSync); if(foundTSConfigFilePath !== undefined){ - const compilerOptions = readConfigFile(ctx, foundTSConfigFilePath); - if(compilerOptions !== undefined){ - return compilerOptions; + const compilerOptionsFromFile = readConfigFile(ctx, foundTSConfigFilePath); + if(compilerOptionsFromFile !== undefined){ + compilerOptions = compilerOptionsFromFile; + tsconfigPath = foundTSConfigFilePath; } } } } - // Return default compiler options - logger?.warn("No tsconfig found, continue using default compiler options but this may fail..."); + if(compilerOptions !== undefined || tsconfigPath !== undefined){ + logger?.stats(ctx, { tsconfig: tsconfigPath }); + return { + ...compilerOptions, + noEmit: true + }; + } + // Return default compiler options + logger?.stats(ctx, { tsconfig: "default compiler options" }); return getDefaultCompilerOptions(ctx); } - function readConfigFile(ctx: DefaultNodeContext, path: string): CompilerOptions | undefined { const ts = ctx.dependencies.ts; @@ -135,15 +141,13 @@ function readConfigFile(ctx: DefaultNodeContext, path: string): CompilerOptions if(configFile.error !== undefined){ if(typeof configFile.error.messageText === "string"){ - logger?.warn(`Could not read tsconfig.json: ${configFile.error.messageText}`); + logger?.warn("could not read tsconfig.json:", [configFile.error.messageText]); } else { - logger?.warn(`Could not read tsconfig.json: ${configFile.error.messageText.messageText}`); + logger?.warn("could not read tsconfig.json:", [configFile.error.messageText.messageText]); } return; } - logger?.info(`Using tsconfig.json at ${logger.filePath(path)}`); - const options = ts.parseJsonConfigFileContent(configFile.config, ts.sys, configFileBasePath).options; return options; diff --git a/src/config/config.ts b/src/config/config.ts index 15737049..9d0c2d04 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -70,9 +70,9 @@ export async function createConfig(ctx: DefaultContext, configOrPath: Config | s absoluteConfigPath = findFile(ctx, CONFIG_NAMES, configOrPath); if(absoluteConfigPath === undefined){ - logger?.info("No unwritten.json found, continue using default configuration."); + logger?.stats(ctx, { unwritten: "default config" }); } else { - logger?.info(`Using unwritten config found at ${logger.filePath(absoluteConfigPath)}`); + logger?.stats(ctx, { unwritten: absoluteConfigPath }); } } diff --git a/src/platform/logger/browser.ts b/src/platform/logger/browser.ts index 5c0f09bc..9fe07c20 100644 --- a/src/platform/logger/browser.ts +++ b/src/platform/logger/browser.ts @@ -1,5 +1,8 @@ import { lineEndings } from "unwritten:platform/os/browser"; +import type { DefaultContext } from "unwritten:type-definitions/context"; +import type { Logger } from "unwritten:type-definitions/platform"; + export module logger { @@ -8,33 +11,59 @@ export module logger { } export function warn(message: string): void; - export function warn(title: string, body: string[]): void; - export function warn(title: string, badge: string, body: string[]): void; - export function warn(titleOrMessage: string, badgeOrBody?: string[] | string, bodyOrUndefined?: string[]): void { - const badge = typeof badgeOrBody === "string" ? badgeOrBody : "warn"; - const body = typeof badgeOrBody === "object" ? badgeOrBody : bodyOrUndefined; - const bodyMessages = body ?? []; + export function warn(title: string, message: string[]): void; + export function warn(title: string, label: string, message: string[]): void; + export function warn(titleOrMessage: string, labelOrMessage?: string[] | string, messageOrUndefined?: string[]): void { + const label = typeof labelOrMessage === "string" ? labelOrMessage : "warn"; + const message = typeof labelOrMessage === "object" ? labelOrMessage : messageOrUndefined; - const title = `${badge}: ${titleOrMessage}`; - const messages = [title, ...bodyMessages].join(lineEndings); + const title = `${label}: ${titleOrMessage}`; + const messages = [title, ...message ?? []].join(lineEndings); console.warn(messages); } export function info(message: string): void; - export function info(title: string, body: string[]): void; - export function info(title: string, badge: string, body: string[]): void; - export function info(titleOrMessage: string, badgeOrBody?: string[] | string, bodyOrUndefined?: string[]): void { - const badge = typeof badgeOrBody === "string" ? badgeOrBody : "info"; - const body = typeof badgeOrBody === "object" ? badgeOrBody : bodyOrUndefined; - const bodyMessages = body ?? []; + export function info(title: string, message: string[]): void; + export function info(title: string, label: string, message: string[]): void; + export function info(titleOrMessage: string, labelOrMessage?: string[] | string, messageOrUndefined?: string[]): void { + const label = typeof labelOrMessage === "string" ? labelOrMessage : "info"; + const message = typeof labelOrMessage === "object" ? labelOrMessage : messageOrUndefined; - const title = `${badge}: ${titleOrMessage}`; - const messages = [title, ...bodyMessages].join(lineEndings); + const title = `${label}: ${titleOrMessage}`; + const messages = [title, ...message ?? []].join(lineEndings); console.log(messages); } + export function stats(ctx: DefaultContext, stats: Logger["_stats"]): void { + + ctx.dependencies.logger!._stats ??= {}; + + const entryPoints = stats?.entryPoints ?? ctx.dependencies.logger!._stats.entryPoints; + const tsconfig = stats?.tsconfig ?? ctx.dependencies.logger!._stats.tsconfig; + const unwritten = stats?.unwritten ?? ctx.dependencies.logger!._stats.unwritten; + + ctx.dependencies.logger!._stats.entryPoints = entryPoints; + ctx.dependencies.logger!._stats.tsconfig = tsconfig; + ctx.dependencies.logger!._stats.unwritten = unwritten; + + if(!entryPoints || !tsconfig || !unwritten){ + return; + } + + const formattedEntryPoints = entryPoints.map(entryFilePath => filePath(entryFilePath)); + const formattedTSConfigPath = filePath(tsconfig); + const formattedUnwrittenPath = filePath(unwritten); + + console.log({ + entryPoints: formattedEntryPoints, + tsconfig: formattedTSConfigPath, + unwritten: formattedUnwrittenPath + }); + + } + export function red(message: string): string { return message; } diff --git a/src/platform/logger/node.ts b/src/platform/logger/node.ts index 908fe13a..93288684 100644 --- a/src/platform/logger/node.ts +++ b/src/platform/logger/node.ts @@ -3,41 +3,70 @@ import { stdout } from "node:process"; import { lineEndings } from "unwritten:platform/os/node"; import { name, version } from "unwritten:utils/package-json.entry"; +import type { WriteStream } from "node:tty"; + +import type { DefaultContext } from "unwritten:type-definitions/context"; +import type { Logger } from "unwritten:type-definitions/platform"; + + +const modifiers = { + bgCyan: "\x1b[46m", + bgGreen: "\x1b[42m", + bgRed: "\x1b[41m", + bgYellow: "\x1b[43m", + fgCyan: "\x1b[36m", + fgGray: "\x1b[2m", + fgGreen: "\x1b[32m", + fgRed: "\x1b[31m", + fgWhite: "\x1b[37m", + fgYellow: "\x1b[33m", + reset: "\x1b[0m", + textBold: "\x1b[1m", + textItalic: "\x1b[3m", + textStrikethrough: "\x1b[9m", + textUnderline: "\x1b[4m" +} as const; -export namespace logger { - - const _fgGreen = "\x1b[32m"; - const _fgYellow = "\x1b[33m"; - const _fgRed = "\x1b[31m"; - const _fgWhite = "\x1b[37m"; - const _fgCyan = "\x1b[36m"; - const _fgGray = "\x1b[2m"; - - const _bgGreen = "\x1b[42m"; - const _bgYellow = "\x1b[43m"; - const _bgRed = "\x1b[41m"; - const _bgCyan = "\x1b[46m"; - - const _bold = "\x1b[1m"; - const _underline = "\x1b[4m"; - const _italic = "\x1b[3m"; - const _strikethrough = "\x1b[9m"; - const _reset = "\x1b[0m"; +export namespace logger { + const { + bgCyan, + bgGreen, + bgRed, + bgYellow, + fgCyan, + fgGray, + fgGreen, + fgRed, + fgWhite, + fgYellow, + reset, + textBold, + textItalic, + textStrikethrough, + textUnderline + } = modifiers; process.on("uncaughtException", err => { const stackOnly = err.stack?.replace(`${err.name}: ${err.message}`, ""); const systemInfo = getSystemInfo(); - println(`${lineEndings}${_bgRed}${_bold} ${err.name} ${_reset} ${red([ - err.message, - err.cause, - stackOnly, - ...systemInfo - ].filter(message => !!message) - .join(lineEndings))}`); + println( + `${lineEndings}${bgRed}${textBold} ${err.name} ${reset} ${ + red( + [ + err.message, + err.cause, + stackOnly, + ...systemInfo + ] + .filter(message => !!message) + .join(lineEndings) + )}`, + process.stderr + ); process.exit(1); @@ -45,7 +74,7 @@ export namespace logger { export function log(message: string): void { - println(`${_reset}${message}${_reset}`); + println(`${reset}${message}${reset}`); } @@ -59,13 +88,53 @@ export namespace logger { const bodyMessages = body ? ["", ...body.map(message => ` ${message}`), ""] : []; println([ - `${_bgYellow}${_bold} ${badge} ${_reset} ${titleOrMessage}`, + `${bgYellow}${textBold} ${badge} ${reset} ${titleOrMessage}`, ...bodyMessages ].join(lineEndings)); } + export function stats(ctx: DefaultContext, stats: Logger["_stats"]): void { + + ctx.dependencies.logger!._stats ??= {}; + + const entryPoints = stats?.entryPoints ?? ctx.dependencies.logger!._stats.entryPoints; + const tsconfig = stats?.tsconfig ?? ctx.dependencies.logger!._stats.tsconfig; + const unwritten = stats?.unwritten ?? ctx.dependencies.logger!._stats.unwritten; + + ctx.dependencies.logger!._stats.entryPoints = entryPoints; + ctx.dependencies.logger!._stats.tsconfig = tsconfig; + ctx.dependencies.logger!._stats.unwritten = unwritten; + + if(!entryPoints || !tsconfig || !unwritten){ + return; + } + + const formattedEntryPoints = entryPoints.map(entryFilePath => filePath(entryFilePath)); + const formattedTSConfigPath = filePath(tsconfig); + const formattedUnwrittenPath = filePath(unwritten); + + const table = simpleTable({ + // eslint-disable-next-line @typescript-eslint/naming-convention + "entry points:": formattedEntryPoints, + // eslint-disable-next-line @typescript-eslint/naming-convention + "tsconfig:": formattedTSConfigPath, + // eslint-disable-next-line @typescript-eslint/naming-convention + "unwritten:": formattedUnwrittenPath + }) + .map(row => ` ${row}`); + + println([ + `${bgGreen}${textBold} ${name} ${reset}`, + "", + ...table, + "" + ].join(lineEndings)); + + } + + export function info(message: string): void; export function info(title: string, body: string[]): void; export function info(title: string, badge: string, body: string[]): void; @@ -76,7 +145,7 @@ export namespace logger { const bodyMessages = body ? ["", ...body.map(message => ` ${message}`), ""] : []; println([ - `${_bgGreen}${_bold} ${badge} ${_reset} ${titleOrMessage}`, + `${bgGreen}${textBold} ${badge} ${reset} ${titleOrMessage}`, ...bodyMessages ].join(lineEndings)); @@ -85,70 +154,121 @@ export namespace logger { export function filePath(path: string): string { const cwd = process.cwd(); + + if(!path.startsWith(cwd)){ + return path; + } + const relativePath = path.replace(cwd, ""); - return `${_fgGray}${cwd}${_reset}${relativePath}`; + return `${fgGray}${cwd}${reset}${relativePath}`; } // Colors export function red(message: string): string { - return `${_fgRed}${message}${_reset}`; + return `${fgRed}${message}${reset}`; } export function gray(message: string): string { - return `${_fgGray}${message}${_reset}`; + return `${fgGray}${message}${reset}`; } export function green(message: string): string { - return `${_fgGreen}${message}${_reset}`; + return `${fgGreen}${message}${reset}`; } export function yellow(message: string): string { - return `${_fgYellow}${message}${_reset}`; + return `${fgYellow}${message}${reset}`; } export function white(message: string): string { - return `${_fgWhite}${message}${_reset}`; + return `${fgWhite}${message}${reset}`; } export function cyan(message: string): string { - return `${_fgCyan}${message}${_reset}`; + return `${fgCyan}${message}${reset}`; } export function bold(message: string): string { - return `${_bold}${message}${_reset}`; + return `${textBold}${message}${reset}`; } export function underline(message: string): string { - return `${_underline}${message}${_reset}`; + return `${textUnderline}${message}${reset}`; } export function italic(message: string): string { - return `${_italic}${message}${_reset}`; + return `${textItalic}${message}${reset}`; } export function strikethrough(message: string): string { - return `${_strikethrough}${message}${_reset}`; + return `${textStrikethrough}${message}${reset}`; } } -function getSystemInfo(): string[] { +function getSystemInfo(ctx?: DefaultContext): string[] { + + const systemInfo = [ + `on ${name} v${version}`, + ...ctx?.dependencies.ts + ? [`with TypeScript ${ctx.dependencies.ts.version}`] + : [], + `on ${process.release.name} ${process.version}`, + `${process.platform} ${process.arch}`, + `in ${process.uptime().toFixed(2)}s` + ].join(", "); + const indentation = " ".repeat(4); - const systemInfo = `on ${name} v${version}, ${process.release.name} ${process.version}, ${process.platform} ${process.arch}, in ${process.uptime().toFixed(2)}s`; const dash = "-".repeat(systemInfo.length); + return [ `${indentation}${dash}`, `${indentation}${systemInfo}` ]; + +} + +function simpleTable(table: { [key: string]: string[] | string; }): string[] { + const maxLength = Object.keys(table).reduce((acc, key) => { + return Math.max(acc, key.length); + }, 0); + + return Object.entries(table).reduce((acc, [key, value]) => { + if(typeof value === "string"){ + const paddedTitle = key.padEnd(maxLength); + acc.push(`${paddedTitle} ${value}`); + } else { + value.forEach((entry, index) => { + const title = index === 0 ? key : ""; + const paddedTitle = title.padEnd(maxLength); + acc.push(`${paddedTitle} ${entry}`); + }); + } + return acc; + }, []); +} + +function print(message: string, output: WriteStream = stdout): void { + if(!supportsColor(output)){ + message = forceUnstyled(message); + } + + output.write(message); +} + +function println(message: string, output?: WriteStream): void { + print(message, output); + print(lineEndings, output); } -function print(message: string): void { - stdout.write(message); +function supportsColor(output: WriteStream): boolean { + return "hasColors" in output && output.hasColors(16); } -function println(message: string): void { - print(message); - print(lineEndings); +function forceUnstyled(message: string): string { + return Object.values(modifiers).reduce((acc, modifier) => { + return acc.replaceAll(modifier, ""); + }, message); } export default logger; diff --git a/src/type-definitions/platform.ts b/src/type-definitions/platform.ts index 6f5904c4..3d7bfdf0 100644 --- a/src/type-definitions/platform.ts +++ b/src/type-definitions/platform.ts @@ -1,3 +1,6 @@ +import type { DefaultContext } from "unwritten:type-definitions/context"; + + export type Platform = "browser" | "node"; // os @@ -44,19 +47,25 @@ export type Logger = { filePath(path: string): string; gray(message: string): string; green(message: string): string; - info(title: string, body: string[]): void; - info(title: string, badge: string, body: string[]): void; - info(message: string): void; + info(message: string[] | string): void; + info(title: string, message: string[] | string): void; + info(title: string, label: string, message: string[] | string): void; italic(message: string): string; log(message: string): void; red(message: string): string; + stats(ctx: DefaultContext, stats: Logger["_stats"]): void; strikethrough(message: string): string; underline(message: string): string; - warn(message: string): void; - warn(title: string, badge: string, body: string[]): void; - warn(title: string, body: string[]): void; + warn(message: string[] | string): void; + warn(title: string, message: string[] | string): void; + warn(title: string, label: string, message: string[] | string): void; white(message: string): string; yellow(message: string): string; + _stats?: { + entryPoints?: string[]; + tsconfig?: string; + unwritten?: string; + }; }; // fs diff --git a/src/utils/general.ts b/src/utils/general.ts index 8af56e51..15bf643f 100644 --- a/src/utils/general.ts +++ b/src/utils/general.ts @@ -1,6 +1,16 @@ export function assert(expression: any, message?: string): asserts expression { if(!expression){ - throw new Error(message ?? "Assertion failed."); + const error = new Error(message ?? "Assertion failed."); + + // fix stack trace + if(error.stack){ + const stack = error.stack.split("\n"); + stack.splice(1, 1); + error.stack = stack.join("\n"); + } + + throw error; + } } From 8e463fc818a31a959be4a980f0ca8cac6dc4b706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Tue, 5 Dec 2023 22:09:18 +0100 Subject: [PATCH 18/42] chore: clean up vscode settings --- .vscode/settings.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 988a2928..43abbc99 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -40,7 +40,6 @@ // Markdown "[markdown]": { "editor.defaultFormatter": "DavidAnson.vscode-markdownlint", - "editor.formatOnSave": true, "editor.rulers": [ 40, 80, From e7ae1e28e1511ed4e1aad3e14307454b10d3f914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Thu, 14 Dec 2023 18:10:26 +0100 Subject: [PATCH 19/42] docs: update warning --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d2d9132..60d91e86 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ unwritten is a cli tool to automatically generate documentation from your JavaScript or TypeScript library by utilizing JSDoc comments and the TypeScript compiler to extract types and relevant information. -> **Warning** +> [!WARNING] > > This project is at a really early stage and currently under heavy development. It is not feature complete and it may not or only partially work with your project. You have been warned. From 3f2a8e32b9257e5b60fed66dd0f10f489ca58fd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Mon, 18 Dec 2023 07:11:55 +0100 Subject: [PATCH 20/42] chore: update dependencies --- package-lock.json | 671 ++++++++++++++++++++++++---------------------- package.json | 10 +- 2 files changed, 359 insertions(+), 322 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec0475ff..28dec0d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cac": "^6.7.14", "minimatch": "^9.0.3", - "typescript": "^5.3.2" + "typescript": "^5.3.3" }, "bin": { "unwritten": "lib/node/bin/index.js" @@ -24,15 +24,15 @@ "@schoero/ts-config": "^0.3.8", "@schoero/vite-config": "^0.0.29", "@types/minimatch": "^5.1.2", - "@types/node": "^20.10.3", + "@types/node": "^20.10.5", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", - "ts-json-schema-generator": "^1.4.1", - "vite": "^5.0.5", + "ts-json-schema-generator": "^1.5.0", + "vite": "^5.0.10", "vite-plugin-dts": "^3.6.4", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.0.1" + "vitest": "^1.0.4" }, "engines": { "node": ">=16.9.0" @@ -199,9 +199,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -341,9 +341,9 @@ "peer": true }, "node_modules/@cspell/dict-bash": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.2.tgz", - "integrity": "sha512-AEBWjbaMaJEyAjOHW0F15P2izBjli2cNerG3NjuVH7xX/HUUeNoTj8FF1nwpMufKwGQCvuyO2hCmkVxhJ0y55Q==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.3.tgz", + "integrity": "sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==", "dev": true, "peer": true }, @@ -551,9 +551,9 @@ "peer": true }, "node_modules/@cspell/dict-lua": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.2.tgz", - "integrity": "sha512-eeC20Q+UnHcTVBK6pgwhSjGIVugO2XqU7hv4ZfXp2F9DxGx1RME0+1sKX4qAGhdFGwOBsEzb2fwUsAEP6Mibpg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.3.tgz", + "integrity": "sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==", "dev": true, "peer": true }, @@ -579,9 +579,9 @@ "peer": true }, "node_modules/@cspell/dict-npm": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.13.tgz", - "integrity": "sha512-uPb3DlQA/FvlmzT5RjZoy7fy91mxMRZW1B+K3atVM5A/cmP1QlDaSW/iCtde5kHET1MOV7uxz+vy0Yha2OI5pQ==", + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.14.tgz", + "integrity": "sha512-k0kC7/W2qG5YII+SW6s+JtvKrkZg651vizi5dv/5G2HmJaeLNgDqBVeeDk/uV+ntBorM66XG4BPMjSxoaIlC5w==", "dev": true, "peer": true }, @@ -593,9 +593,9 @@ "peer": true }, "node_modules/@cspell/dict-powershell": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz", - "integrity": "sha512-IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz", + "integrity": "sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==", "dev": true, "peer": true }, @@ -645,9 +645,9 @@ "peer": true }, "node_modules/@cspell/dict-software-terms": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.11.tgz", - "integrity": "sha512-a2Zml4G47dbQ6GDdN7+YlIWs3nFnIcJkZOLT88m/LzxjApiF7AOZLqQiKwow03hyvGSuZy8itgQZmQHoPlw2vQ==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.13.tgz", + "integrity": "sha512-+TeFLJnzsxJqovY4ZNbNivQ5KgIZex1f/w62WmfpKNl4yWaexVEdVp6vi38TR+uyYagkJASaBnjlbVW3aVTpFg==", "dev": true, "peer": true }, @@ -725,9 +725,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz", - "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", + "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", "cpu": [ "arm" ], @@ -741,9 +741,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz", - "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", + "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", "cpu": [ "arm64" ], @@ -757,9 +757,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz", - "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", + "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", "cpu": [ "x64" ], @@ -773,9 +773,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz", - "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", + "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", "cpu": [ "arm64" ], @@ -789,9 +789,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz", - "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", + "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", "cpu": [ "x64" ], @@ -805,9 +805,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz", - "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", + "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", "cpu": [ "arm64" ], @@ -821,9 +821,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz", - "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", + "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", "cpu": [ "x64" ], @@ -837,9 +837,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz", - "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", + "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", "cpu": [ "arm" ], @@ -853,9 +853,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz", - "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", + "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", "cpu": [ "arm64" ], @@ -869,9 +869,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz", - "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", + "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", "cpu": [ "ia32" ], @@ -885,9 +885,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz", - "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", + "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", "cpu": [ "loong64" ], @@ -901,9 +901,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz", - "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", + "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", "cpu": [ "mips64el" ], @@ -917,9 +917,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz", - "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", + "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", "cpu": [ "ppc64" ], @@ -933,9 +933,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz", - "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", + "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", "cpu": [ "riscv64" ], @@ -949,9 +949,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz", - "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", + "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", "cpu": [ "s390x" ], @@ -965,9 +965,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz", - "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", + "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", "cpu": [ "x64" ], @@ -981,9 +981,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz", - "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", + "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", "cpu": [ "x64" ], @@ -997,9 +997,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz", - "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", + "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", "cpu": [ "x64" ], @@ -1013,9 +1013,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz", - "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", + "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", "cpu": [ "x64" ], @@ -1029,9 +1029,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz", - "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", + "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", "cpu": [ "arm64" ], @@ -1045,9 +1045,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz", - "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", + "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", "cpu": [ "ia32" ], @@ -1061,9 +1061,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz", - "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", + "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", "cpu": [ "x64" ], @@ -1151,9 +1151,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "peer": true, "engines": { @@ -1295,15 +1295,15 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.38.3", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.3.tgz", - "integrity": "sha512-xt9iYyC5f39281j77JTA9C3ISJpW1XWkCcnw+2vM78CPnro6KhPfwQdPDfwS5JCPNuq0grm8cMdPUOPvrchDWw==", + "version": "7.38.5", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.5.tgz", + "integrity": "sha512-c/w2zfqBcBJxaCzpJNvFoouWewcYrUOfeu5ZkWCCIXTF9a/gXM85RGevEzlMAIEGM/kssAAZSXRJIZ3Q5vLFow==", "dev": true, "dependencies": { - "@microsoft/api-extractor-model": "7.28.2", + "@microsoft/api-extractor-model": "7.28.3", "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.61.0", + "@rushstack/node-core-library": "3.62.0", "@rushstack/rig-package": "0.5.1", "@rushstack/ts-command-line": "4.17.1", "colors": "~1.2.1", @@ -1318,14 +1318,14 @@ } }, "node_modules/@microsoft/api-extractor-model": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.2.tgz", - "integrity": "sha512-vkojrM2fo3q4n4oPh4uUZdjJ2DxQ2+RnDQL/xhTWSRUNPF6P4QyrvY357HBxbnltKcYu+nNNolVqc6TIGQ73Ig==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.3.tgz", + "integrity": "sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==", "dev": true, "dependencies": { "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.61.0" + "@rushstack/node-core-library": "3.62.0" } }, "node_modules/@microsoft/api-extractor/node_modules/typescript": { @@ -1430,9 +1430,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.1.tgz", - "integrity": "sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.1.tgz", + "integrity": "sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==", "cpu": [ "arm" ], @@ -1443,9 +1443,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz", - "integrity": "sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.1.tgz", + "integrity": "sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==", "cpu": [ "arm64" ], @@ -1456,9 +1456,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.1.tgz", - "integrity": "sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.1.tgz", + "integrity": "sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==", "cpu": [ "arm64" ], @@ -1469,9 +1469,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.1.tgz", - "integrity": "sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.1.tgz", + "integrity": "sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==", "cpu": [ "x64" ], @@ -1482,9 +1482,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.1.tgz", - "integrity": "sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.1.tgz", + "integrity": "sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==", "cpu": [ "arm" ], @@ -1495,9 +1495,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.1.tgz", - "integrity": "sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.1.tgz", + "integrity": "sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==", "cpu": [ "arm64" ], @@ -1508,9 +1508,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.1.tgz", - "integrity": "sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.1.tgz", + "integrity": "sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==", "cpu": [ "arm64" ], @@ -1520,10 +1520,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.1.tgz", + "integrity": "sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz", - "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz", + "integrity": "sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==", "cpu": [ "x64" ], @@ -1534,9 +1547,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz", - "integrity": "sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.1.tgz", + "integrity": "sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==", "cpu": [ "x64" ], @@ -1547,9 +1560,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.1.tgz", - "integrity": "sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.1.tgz", + "integrity": "sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==", "cpu": [ "arm64" ], @@ -1560,9 +1573,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.1.tgz", - "integrity": "sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.1.tgz", + "integrity": "sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==", "cpu": [ "ia32" ], @@ -1573,9 +1586,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz", - "integrity": "sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz", + "integrity": "sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==", "cpu": [ "x64" ], @@ -1586,9 +1599,9 @@ ] }, "node_modules/@rushstack/node-core-library": { - "version": "3.61.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.61.0.tgz", - "integrity": "sha512-tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ==", + "version": "3.62.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.62.0.tgz", + "integrity": "sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==", "dev": true, "dependencies": { "colors": "~1.2.1", @@ -1766,9 +1779,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", - "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1796,17 +1809,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", - "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", + "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", "dev": true, "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/type-utils": "6.13.2", - "@typescript-eslint/utils": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/type-utils": "6.14.0", + "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1981,16 +1994,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", - "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", + "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4" }, "engines": { @@ -2010,14 +2023,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", + "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2028,14 +2041,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", - "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", + "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/utils": "6.14.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -2056,9 +2069,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", + "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, "peer": true, "engines": { @@ -2070,14 +2083,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", - "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", + "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2098,18 +2111,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", - "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", + "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", "semver": "^7.5.4" }, "engines": { @@ -2124,13 +2137,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", + "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -2149,13 +2162,13 @@ "peer": true }, "node_modules/@vitest/expect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.1.tgz", - "integrity": "sha512-3cdrb/eKD/0tygDX75YscuHEHMUJ70u3UoLSq2eqhWks57AyzvsDQbyn53IhZ0tBN7gA8Jj2VhXiOV2lef7thw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.4.tgz", + "integrity": "sha512-/NRN9N88qjg3dkhmFcCBwhn/Ie4h064pY3iv7WLRsDJW7dXnEgeoa8W9zy7gIPluhz6CkgqiB3HmpIXgmEY5dQ==", "dev": true, "dependencies": { - "@vitest/spy": "1.0.1", - "@vitest/utils": "1.0.1", + "@vitest/spy": "1.0.4", + "@vitest/utils": "1.0.4", "chai": "^4.3.10" }, "funding": { @@ -2163,12 +2176,12 @@ } }, "node_modules/@vitest/runner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.1.tgz", - "integrity": "sha512-/+z0vhJ0MfRPT3AyTvAK6m57rzlew/ct8B2a4LMv7NhpPaiI2QLGyOBMB3lcioWdJHjRuLi9aYppfOv0B5aRQA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.4.tgz", + "integrity": "sha512-rhOQ9FZTEkV41JWXozFM8YgOqaG9zA7QXbhg5gy6mFOVqh4PcupirIJ+wN7QjeJt8S8nJRYuZH1OjJjsbxAXTQ==", "dev": true, "dependencies": { - "@vitest/utils": "1.0.1", + "@vitest/utils": "1.0.4", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -2204,9 +2217,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.1.tgz", - "integrity": "sha512-wIPtPDGSxEZ+DpNMc94AsybX6LV6uN6sosf5TojyP1m2QbKwiRuLV/5RSsjt1oWViHsTj8mlcwrQQ1zHGO0fMw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.4.tgz", + "integrity": "sha512-vkfXUrNyNRA/Gzsp2lpyJxh94vU2OHT1amoD6WuvUAA12n32xeVZQ0KjjQIf8F6u7bcq2A2k969fMVxEsxeKYA==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -2230,9 +2243,9 @@ } }, "node_modules/@vitest/spy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.1.tgz", - "integrity": "sha512-yXwm1uKhBVr/5MhVeSmtNqK+0q2RXIchJt8kokEKdrWLtkPeDgdbZ6SjR1VQGZuNdWL6sSBnLayIyVvcS0qLfA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.4.tgz", + "integrity": "sha512-9ojTFRL1AJVh0hvfzAQpm0QS6xIS+1HFIw94kl/1ucTfGCaj1LV/iuJU4Y6cdR03EzPDygxTHwE1JOm+5RCcvA==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -2242,9 +2255,9 @@ } }, "node_modules/@vitest/utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.1.tgz", - "integrity": "sha512-MGPCHkzXbbAyscrhwGzh8uP1HPrTYLWaj1WTDtWSGrpe2yJWLRN9mF9ooKawr6NMOg9vTBtg2JqWLfuLC7Dknw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.4.tgz", + "integrity": "sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", @@ -2284,31 +2297,31 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.10.tgz", - "integrity": "sha512-doe0hODR1+i1menPkRzJ5MNR6G+9uiZHIknK3Zn5OcIztu6GGw7u0XUzf3AgB8h/dfsZC9eouzoLo3c3+N/cVA==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.12.tgz", + "integrity": "sha512-qAtjyG3GBLG0chzp5xGCyRLLe6wFCHmjI82aGzwuGKyznNP+GJJMxjc0wOYWDB2YKfho7niJFdoFpo0CZZQg9w==", "dev": true, "dependencies": { "@babel/parser": "^7.23.5", - "@vue/shared": "3.3.10", + "@vue/shared": "3.3.12", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.10.tgz", - "integrity": "sha512-NCrqF5fm10GXZIK0GrEAauBqdy+F2LZRt3yNHzrYjpYBuRssQbuPLtSnSNjyR9luHKkWSH8we5LMB3g+4z2HvA==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.12.tgz", + "integrity": "sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.3.10", - "@vue/shared": "3.3.10" + "@vue/compiler-core": "3.3.12", + "@vue/shared": "3.3.12" } }, "node_modules/@vue/language-core": { - "version": "1.8.24", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.24.tgz", - "integrity": "sha512-2ClHvij0WlsDWryPzXJCSpPc6rusZFNoVtRZGgGGkKCmKuIREDDKmH8j+1tYyxPYyH0qL6pZ6+IHD8KIm5nWAw==", + "version": "1.8.25", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.25.tgz", + "integrity": "sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==", "dev": true, "dependencies": { "@volar/language-core": "~1.11.1", @@ -2331,9 +2344,9 @@ } }, "node_modules/@vue/shared": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.10.tgz", - "integrity": "sha512-2y3Y2J1a3RhFa0WisHvACJR2ncvWiVHcP8t0Inxo+NKz+8RKO4ZV8eZgCxRgQoA6ITfV12L4E6POOL9HOU5nqw==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.12.tgz", + "integrity": "sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag==", "dev": true }, "node_modules/acorn": { @@ -2359,9 +2372,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true, "engines": { "node": ">=0.4.0" @@ -3535,9 +3548,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz", - "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", + "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", "dev": true, "hasInstallScript": true, "bin": { @@ -3547,28 +3560,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.8", - "@esbuild/android-arm64": "0.19.8", - "@esbuild/android-x64": "0.19.8", - "@esbuild/darwin-arm64": "0.19.8", - "@esbuild/darwin-x64": "0.19.8", - "@esbuild/freebsd-arm64": "0.19.8", - "@esbuild/freebsd-x64": "0.19.8", - "@esbuild/linux-arm": "0.19.8", - "@esbuild/linux-arm64": "0.19.8", - "@esbuild/linux-ia32": "0.19.8", - "@esbuild/linux-loong64": "0.19.8", - "@esbuild/linux-mips64el": "0.19.8", - "@esbuild/linux-ppc64": "0.19.8", - "@esbuild/linux-riscv64": "0.19.8", - "@esbuild/linux-s390x": "0.19.8", - "@esbuild/linux-x64": "0.19.8", - "@esbuild/netbsd-x64": "0.19.8", - "@esbuild/openbsd-x64": "0.19.8", - "@esbuild/sunos-x64": "0.19.8", - "@esbuild/win32-arm64": "0.19.8", - "@esbuild/win32-ia32": "0.19.8", - "@esbuild/win32-x64": "0.19.8" + "@esbuild/android-arm": "0.19.9", + "@esbuild/android-arm64": "0.19.9", + "@esbuild/android-x64": "0.19.9", + "@esbuild/darwin-arm64": "0.19.9", + "@esbuild/darwin-x64": "0.19.9", + "@esbuild/freebsd-arm64": "0.19.9", + "@esbuild/freebsd-x64": "0.19.9", + "@esbuild/linux-arm": "0.19.9", + "@esbuild/linux-arm64": "0.19.9", + "@esbuild/linux-ia32": "0.19.9", + "@esbuild/linux-loong64": "0.19.9", + "@esbuild/linux-mips64el": "0.19.9", + "@esbuild/linux-ppc64": "0.19.9", + "@esbuild/linux-riscv64": "0.19.9", + "@esbuild/linux-s390x": "0.19.9", + "@esbuild/linux-x64": "0.19.9", + "@esbuild/netbsd-x64": "0.19.9", + "@esbuild/openbsd-x64": "0.19.9", + "@esbuild/sunos-x64": "0.19.9", + "@esbuild/win32-arm64": "0.19.9", + "@esbuild/win32-ia32": "0.19.9", + "@esbuild/win32-x64": "0.19.9" } }, "node_modules/escape-string-regexp": { @@ -3585,16 +3598,16 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3795,9 +3808,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz", - "integrity": "sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==", + "version": "46.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.1.tgz", + "integrity": "sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==", "dev": true, "peer": true, "dependencies": { @@ -3809,7 +3822,7 @@ "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", "semver": "^7.5.4", - "spdx-expression-parse": "^3.0.1" + "spdx-expression-parse": "^4.0.0" }, "engines": { "node": ">=16" @@ -3819,14 +3832,15 @@ } }, "node_modules/eslint-plugin-jsonc": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.10.0.tgz", - "integrity": "sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.11.1.tgz", + "integrity": "sha512-zQ2h7x0gOdUfogfZJzLdclDWu9bksUQtC/zYmU17eLCBv4yETht8r2sbCRx4EECUdZAS8sW/UF7bTba95BoXRQ==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "eslint-compat-utils": "^0.1.2", + "graphemer": "^1.4.0", "jsonc-eslint-parser": "^2.0.4", "natural-compare": "^1.4.0" }, @@ -3994,16 +4008,16 @@ } }, "node_modules/eslint-plugin-vitest": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.10.tgz", - "integrity": "sha512-08lj4rdhZHYyHk+Py2nJ7SlE6arP8GNfGXl9jVqhe9s5JoZIGiBpIkLGX+VNBiB6vXTn56H6Ant7Koc6XzRjtQ==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.18.tgz", + "integrity": "sha512-IJzs6BpA//wkNxo5845uPIMOIp4j76MiKiagJ3hD6a2DemrktdpB7mmTjU0EeFuq14NXFoO1wN8Fwrx2VxWBRA==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/utils": "^6.11.0" + "@typescript-eslint/utils": "^6.14.0" }, "engines": { - "node": "14.x || >= 16" + "node": "^18.0.0 || >= 20.0.0" }, "peerDependencies": { "eslint": ">=8.0.0", @@ -4019,14 +4033,14 @@ } }, "node_modules/eslint-plugin-yml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.10.0.tgz", - "integrity": "sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.11.0.tgz", + "integrity": "sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==", "dev": true, "peer": true, "dependencies": { "debug": "^4.3.2", - "eslint-compat-utils": "^0.1.0", + "eslint-compat-utils": "^0.1.1", "lodash": "^4.17.21", "natural-compare": "^1.4.0", "yaml-eslint-parser": "^1.2.1" @@ -4680,9 +4694,9 @@ } }, "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "peer": true, "dependencies": { @@ -6677,9 +6691,9 @@ } }, "node_modules/rollup": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.1.tgz", - "integrity": "sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.1.tgz", + "integrity": "sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -6689,18 +6703,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.6.1", - "@rollup/rollup-android-arm64": "4.6.1", - "@rollup/rollup-darwin-arm64": "4.6.1", - "@rollup/rollup-darwin-x64": "4.6.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.6.1", - "@rollup/rollup-linux-arm64-gnu": "4.6.1", - "@rollup/rollup-linux-arm64-musl": "4.6.1", - "@rollup/rollup-linux-x64-gnu": "4.6.1", - "@rollup/rollup-linux-x64-musl": "4.6.1", - "@rollup/rollup-win32-arm64-msvc": "4.6.1", - "@rollup/rollup-win32-ia32-msvc": "4.6.1", - "@rollup/rollup-win32-x64-msvc": "4.6.1", + "@rollup/rollup-android-arm-eabi": "4.9.1", + "@rollup/rollup-android-arm64": "4.9.1", + "@rollup/rollup-darwin-arm64": "4.9.1", + "@rollup/rollup-darwin-x64": "4.9.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.1", + "@rollup/rollup-linux-arm64-gnu": "4.9.1", + "@rollup/rollup-linux-arm64-musl": "4.9.1", + "@rollup/rollup-linux-riscv64-gnu": "4.9.1", + "@rollup/rollup-linux-x64-gnu": "4.9.1", + "@rollup/rollup-linux-x64-musl": "4.9.1", + "@rollup/rollup-win32-arm64-msvc": "4.9.1", + "@rollup/rollup-win32-ia32-msvc": "4.9.1", + "@rollup/rollup-win32-x64-msvc": "4.9.1", "fsevents": "~2.3.2" } }, @@ -6973,6 +6988,17 @@ "spdx-license-ids": "^3.0.0" } }, + "node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "peer": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", @@ -6981,9 +7007,9 @@ "peer": true }, "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, "peer": true, "dependencies": { @@ -7367,9 +7393,9 @@ "peer": true }, "node_modules/ts-json-schema-generator": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.4.1.tgz", - "integrity": "sha512-wnhPMtskk9KvsTuU8AYx0TNdm1YrLVUEontT22+jL12JIPqPXdaoxPgsYBhlqDXsR9R9Nm2bJgH5r4IrTMbTSg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.5.0.tgz", + "integrity": "sha512-RkiaJ6YxGc5EWVPfyHxszTmpGxX8HC2XBvcFlAl1zcvpOG4tjjh+eXioStXJQYTvr9MoK8zCOWzAUlko3K0DiA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.12", @@ -7518,9 +7544,9 @@ } }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7646,6 +7672,17 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "peer": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/validator": { "version": "13.11.0", "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", @@ -7656,9 +7693,9 @@ } }, "node_modules/vite": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.5.tgz", - "integrity": "sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", + "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", "dev": true, "dependencies": { "esbuild": "^0.19.3", @@ -7711,16 +7748,16 @@ } }, "node_modules/vite-node": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.1.tgz", - "integrity": "sha512-Y2Jnz4cr2azsOMMYuVPrQkp3KMnS/0WV8ezZjCy4hU7O5mUHCAVOnFmoEvs1nvix/4mYm74Len8bYRWZJMNP6g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.4.tgz", + "integrity": "sha512-9xQQtHdsz5Qn8hqbV7UKqkm8YkJhzT/zr41Dmt5N7AlD8hJXw/Z7y0QiD5I8lnTthV9Rvcvi0QW7PI0Fq83ZPg==", "dev": true, "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "vite": "^5.0.0-beta.15 || ^5.0.0" + "vite": "^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" @@ -7769,9 +7806,9 @@ } }, "node_modules/vite-tsconfig-paths": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.1.tgz", - "integrity": "sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.2.tgz", + "integrity": "sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw==", "dev": true, "peer": true, "dependencies": { @@ -7789,16 +7826,16 @@ } }, "node_modules/vitest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.1.tgz", - "integrity": "sha512-MHsOj079S28hDsvdDvyD1pRj4dcS51EC5Vbe0xvOYX+WryP8soiK2dm8oULi+oA/8Xa/h6GoJEMTmcmBy5YM+Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.4.tgz", + "integrity": "sha512-s1GQHp/UOeWEo4+aXDOeFBJwFzL6mjycbQwwKWX2QcYfh/7tIerS59hWQ20mxzupTJluA2SdwiBuWwQHH67ckg==", "dev": true, "dependencies": { - "@vitest/expect": "1.0.1", - "@vitest/runner": "1.0.1", - "@vitest/snapshot": "1.0.1", - "@vitest/spy": "1.0.1", - "@vitest/utils": "1.0.1", + "@vitest/expect": "1.0.4", + "@vitest/runner": "1.0.4", + "@vitest/snapshot": "1.0.4", + "@vitest/spy": "1.0.4", + "@vitest/utils": "1.0.4", "acorn-walk": "^8.3.0", "cac": "^6.7.14", "chai": "^4.3.10", @@ -7812,8 +7849,8 @@ "strip-literal": "^1.3.0", "tinybench": "^2.5.1", "tinypool": "^0.8.1", - "vite": "^5.0.0-beta.19 || ^5.0.0", - "vite-node": "1.0.1", + "vite": "^5.0.0", + "vite-node": "1.0.4", "why-is-node-running": "^2.2.2" }, "bin": { @@ -7907,13 +7944,13 @@ } }, "node_modules/vue-tsc": { - "version": "1.8.24", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.24.tgz", - "integrity": "sha512-eH1CSj231OzVEY5Hi7wS6ubzyOEwgr5jCptR0Ddf2SitGcaXIsPVDvrprm3eolCdyhDt3WS1Eb2F4fGX9BsUUw==", + "version": "1.8.25", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.25.tgz", + "integrity": "sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==", "dev": true, "dependencies": { "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.24", + "@vue/language-core": "1.8.25", "semver": "^7.5.4" }, "bin": { diff --git a/package.json b/package.json index 39057789..a4545689 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "dependencies": { "cac": "^6.7.14", "minimatch": "^9.0.3", - "typescript": "^5.3.2" + "typescript": "^5.3.3" }, "devDependencies": { "@schoero/changelog-config": "^0.0.3", @@ -75,15 +75,15 @@ "@schoero/ts-config": "^0.3.8", "@schoero/vite-config": "^0.0.29", "@types/minimatch": "^5.1.2", - "@types/node": "^20.10.3", + "@types/node": "^20.10.5", "changelogen": "^0.5.5", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", - "ts-json-schema-generator": "^1.4.1", - "vite": "^5.0.5", + "ts-json-schema-generator": "^1.5.0", + "vite": "^5.0.10", "vite-plugin-dts": "^3.6.4", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.0.1" + "vitest": "^1.0.4" }, "keywords": [ "documentation", From dfdc50d988d96c8b36d3443faa45b5baf0517fe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Mon, 18 Dec 2023 17:26:20 +0100 Subject: [PATCH 21/42] chore: update vscode settings --- .vscode/settings.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 43abbc99..0c6d8c1e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,7 +26,8 @@ "explorer.fileNesting.enabled": true, "explorer.fileNesting.expand": false, "explorer.fileNesting.patterns": { - "*.ts": "$(capture).test.ts,$(capture).test.snap,$(capture).test-d.ts" + "*.ts": "$(capture).test.ts,$(capture).test.snap,$(capture).test-d.ts", + "*.js": "$(capture).test.js,$(capture).cjs,$(capture).mjs,$(capture).d.ts,$(capture).d.ts.map,$(capture).js.map" }, // ES module import @@ -50,9 +51,9 @@ // VSCode "editor.codeActionsOnSave": { - "source.fixAll.eslint": true, - "source.fixAll.markdownlint": true, - "source.organizeImports": false + "source.fixAll.eslint": "explicit", + "source.fixAll.markdownlint": "explicit", + "source.organizeImports": "never" }, "editor.rulers": [ 119 From 393376840dc675ff7fafc046cf260a5fd8d172e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 20 Dec 2023 08:45:26 +0100 Subject: [PATCH 22/42] refactor: switch to flat eslint config and config monorepo --- .cspell.json | 6 +- .eslintrc.cjs | 200 - .markdownlint.jsonc | 2 +- .vscode/settings.json | 3 +- changelog.config.js | 1 + changelog.config.ts | 1 - eslint.config.js | 258 + package-lock.json | 4699 +++++++++++++---- package.json | 13 +- schemas/renderer/config.json | 22 +- src/compiler/shared.ts | 2 +- src/config/config.test.ts | 2 +- src/config/default.ts | 4 +- src/config/generator.entry.test.ts | 2 +- src/interpreter/ast/entities/class.ts | 10 +- .../ast/entities/export-assignment.test.ts | 2 +- src/interpreter/ast/entities/function-like.ts | 13 +- .../ast/entities/source-file.test.ts | 2 +- src/interpreter/ast/type.ts | 9 +- src/interpreter/ast/types/array.test.ts | 2 +- src/interpreter/ast/types/array.ts | 2 +- src/interpreter/ast/types/tuple.ts | 6 +- src/interpreter/ast/types/unresolved.ts | 2 +- src/interpreter/type-definitions/types.ts | 4 +- src/interpreter/typeguards/types.ts | 10 +- src/interpreter/utils/ts.ts | 4 +- src/platform/logger/node.ts | 6 +- src/platform/path/shared.ts | 6 +- src/renderer/index.ts | 7 +- src/renderer/json/type-definitions/config.ts | 4 +- .../ast-converter/entities/parameter.ts | 2 +- .../ast-converter/entities/type-alias.ts | 2 +- .../ast-converter/entities/type-parameter.ts | 2 +- .../markup/ast-converter/types/object.ts | 18 +- .../types/type-reference.test.ts | 2 +- src/renderer/markup/config/default.ts | 2 +- src/renderer/markup/html/ast/list.ts | 8 +- src/renderer/markup/html/index.ts | 2 +- src/renderer/markup/markdown/ast/list.test.ts | 33 - src/renderer/markup/markdown/index.ts | 2 +- src/renderer/markup/registry/registry.ts | 8 +- src/renderer/markup/typeguards/renderer.ts | 35 +- .../markup/types-definitions/config.ts | 10 +- .../markup/utils/translations.test.ts | 2 +- src/renderer/markup/utils/translations.ts | 2 +- src/renderer/markup/utils/types.ts | 24 +- src/renderer/utils/heritage.ts | 4 +- src/type-definitions/config.ts | 4 +- src/type-definitions/options.ts | 8 +- src/type-definitions/platform.ts | 18 +- src/type-definitions/renderer.ts | 6 +- src/typeguards/types.ts | 14 +- src/utils/exclude.test.ts | 4 +- src/utils/finder.ts | 1 + src/utils/general.test.ts | 2 +- src/utils/template.ts | 14 +- tests/utils/compile.ts | 19 +- tests/utils/debug.ts | 1 - tests/utils/virtual-fs.ts | 7 +- tsconfig.json | 2 +- vite.config.browser.ts | 2 +- vite.config.ts | 2 +- 62 files changed, 4110 insertions(+), 1456 deletions(-) delete mode 100644 .eslintrc.cjs create mode 100644 changelog.config.js delete mode 100644 changelog.config.ts create mode 100644 eslint.config.js diff --git a/.cspell.json b/.cspell.json index dfb0c7c6..15c538ac 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,11 +1,11 @@ { - "import": [ - "@schoero/cspell-config" - ], "ignorePaths": [ "schemas", "local" ], + "import": [ + "@schoero/configs/cspell" + ], "words": [ "anchortext", "changelogen", diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index db6efb8e..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,200 +0,0 @@ -const dependencyInjection = [ - { - allowTypeImports: false, - group: [ - "unwritten:platform/**/*.js", - "**/platform/**/*.js", - "node:*" - ], - message: "Use injected dependencies at 'ctx.dependencies' instead." - }, { - allowTypeImports: true, - group: [ - "typescript" - ], - message: "Use injected dependencies at 'ctx.dependencies' instead." - } -]; - -const indexImports = [ - { - allowTypeImports: false, - group: [ - "**/entities/*.js", - "!**/entities/index.js", - "**/types/*.js", - "!**/types/index.js" - ], - message: "Import from the index file instead." - } -]; - -module.exports = { - extends: "@schoero", - overrides: [ - { - files: ["*.ts"], - parser: "@typescript-eslint/parser", - parserOptions: { - ecmaVersion: 2020 - }, - rules: { - "@typescript-eslint/no-duplicate-type-constituents": "off", - "@typescript-eslint/no-restricted-imports": [ - "error", { - patterns: [ - ...indexImports, - ...dependencyInjection - ] - } - ], - "vitest/no-identical-title": "off" - } - }, - { - files: [ - "**/typeguards/*.ts", - "**/utils/*.ts", - "**/interpreter/shared/jsdoc.ts" - ], - parser: "@typescript-eslint/parser", - rules: { - "sort-exports/sort-exports": ["warn", { sortDir: "asc" }] - } - }, - { - files: [ - "**/platform/**/browser.ts" - ], - parser: "@typescript-eslint/parser", - rules: { - "@typescript-eslint/no-restricted-imports": [ - "error", { - patterns: [ - { - allowTypeImports: true, - group: [ - "node:*" - ] - } - ] - } - ] - } - }, - { - files: [ - "**/platform/**/node.ts" - ], - parser: "@typescript-eslint/parser", - rules: { - "@typescript-eslint/no-restricted-imports": [ - "error", { - patterns: [ - { - allowTypeImports: true, - group: [ - "!node:*" - ] - } - ] - } - ] - } - }, - { - files: [ - "**/*.entry.ts", - "**/*.test.ts", - "**/*.test-d.ts", - "**/tests/**/*.ts" - ], - parser: "@typescript-eslint/parser", - rules: { - "@typescript-eslint/no-restricted-imports": [ - "error", { - patterns: [ - { - allowTypeImports: false, - group: [ - "test", - "node:test" - ], - message: "Import from vitest instead." - }, - { - allowTypeImports: false, - group: [ - "!typescript" - ] - }, - { - allowTypeImports: false, - group: [ - "unwritten:platform/**/*.js", - "**/platform/**/*.js", - "!unwritten:platform/**/node.js", - "!unwritten:platform/**/browser.js", - "!unwritten:platform/file-system/virtual-fs.js", - "node:*" - ], - message: "Use injected dependencies at 'ctx.dependencies' instead." - } - ] - } - ] - } - }, - { - files: [ - "**/renderer/markup/html/**/*.ts" - ], - parser: "@typescript-eslint/parser", - rules: { - "@typescript-eslint/no-restricted-imports": [ - "error", { - patterns: [ - ...dependencyInjection, - ...indexImports, - { - group: [ - "unwritten:renderer:markdown*", - "unwritten:renderer:markup/html*", - "unwritten:renderer:markup/markdown*", - "!unwritten:renderer:html*" - ], - message: "Import from markdown renderer is not allowed." - } - ] - } - ] - } - }, - { - files: [ - "**/renderer/markup/markdown/**/*.ts" - ], - parser: "@typescript-eslint/parser", - rules: { - "@typescript-eslint/no-restricted-imports": [ - "error", { - patterns: [ - ...dependencyInjection, - ...indexImports, - { - group: [ - "unwritten:renderer:html*", - "unwritten:renderer:markup/html*", - "unwritten:renderer:markup/markdown*", - "!unwritten:renderer:markdown*" - ], - message: "Import from html renderer is not allowed." - } - ] - } - ] - } - } - ], - plugins: ["sort-exports"] -}; diff --git a/.markdownlint.jsonc b/.markdownlint.jsonc index 42e40910..b7f5ed9b 100644 --- a/.markdownlint.jsonc +++ b/.markdownlint.jsonc @@ -1,3 +1,3 @@ { - "extends": "@schoero/markdownlint-config" + "extends": "@schoero/configs/markdownlint" } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 0c6d8c1e..11d1d90f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -16,6 +16,7 @@ "[typescript]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" }, + "eslint.experimental.useFlatConfig": true, "eslint.validate": ["javascript", "typescript", "json", "jsonc", "json5", "yaml"], "editor.formatOnSave": false, @@ -61,5 +62,5 @@ "search.exclude": { "lib": true }, - "typescript.tsdk": "node_modules/typescript/lib", + "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/changelog.config.js b/changelog.config.js new file mode 100644 index 00000000..869a3172 --- /dev/null +++ b/changelog.config.js @@ -0,0 +1 @@ +export { default } from "@schoero/configs/changelogen"; diff --git a/changelog.config.ts b/changelog.config.ts deleted file mode 100644 index 6c13e285..00000000 --- a/changelog.config.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "@schoero/changelog-config"; diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..20f21e38 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,258 @@ +import eslintPluginJsonc from "eslint-plugin-jsonc"; +import eslintPluginSortExports from "eslint-plugin-sort-exports"; +import eslintPluginVitest from "eslint-plugin-vitest"; + +import eslintPluginTypeScript from "@typescript-eslint/eslint-plugin"; +import eslintParserTypeScript from "@typescript-eslint/parser"; + +import sharedRules from "@schoero/configs/eslint"; + + +const indexImports = [ + { + allowTypeImports: false, + group: [ + "**/entities/*.js", + "!**/entities/index.js", + "**/types/*.js", + "!**/types/index.js" + ], + message: "Import from the index file instead." + } +]; + +const dependencyInjection = [ + { + allowTypeImports: false, + group: [ + "unwritten:platform/**/*.js", + "**/platform/**/*.js", + "node:*" + ], + message: "Use injected dependencies at 'ctx.dependencies' instead." + }, + { + allowTypeImports: true, + group: [ + "typescript" + ], + message: "Use injected dependencies at 'ctx.dependencies' instead." + } +]; + +/** @type { import("eslint").Linter.FlatConfig[] } */ +export default [ + ...sharedRules, + + { + files: ["**/*.ts"], + languageOptions: { + parser: eslintParserTypeScript, + parserOptions: { + project: "./tsconfig.json" + } + }, + plugins: { + "eslint-plugin-ts": eslintPluginTypeScript, + "eslint-plugin-vitest": eslintPluginVitest + }, + rules: { + "eslint-plugin-ts/no-duplicate-type-constituents": "off", + "eslint-plugin-ts/no-restricted-imports": ["error", { + patterns: [ + ...indexImports, + ...dependencyInjection + ] + }], + "eslint-plugin-vitest/no-identical-title": "off" + } + }, + { + files: ["schemas/renderer/config.json"], + languageOptions: { + parser: eslintPluginJsonc + }, + plugins: { + "eslint-plugin-jsonc": eslintPluginJsonc + }, + rules: { + "eslint-plugin-jsonc/sort-keys": "off" + } + }, + { + files: [ + "**/typeguards/*.ts", + "**/utils/*.ts", + "**/interpreter/shared/jsdoc.ts" + ], + plugins: { + "eslint-plugin-sort-exports": eslintPluginSortExports + }, + rules: { + "eslint-plugin-sort-exports/sort-exports": ["warn", { sortDir: "asc" }] + } + }, + { + files: [ + "**/platform/**/browser.ts" + ], + languageOptions: { + parser: eslintParserTypeScript, + parserOptions: { + project: "./tsconfig.json" + } + }, + plugins: { + "eslint-plugin-ts": eslintPluginTypeScript + }, + rules: { + "eslint-plugin-ts/no-restricted-imports": ["error", { + patterns: [ + { + allowTypeImports: true, + group: [ + "node:*" + ] + } + ] + }] + } + }, + { + files: [ + "**/platform/**/node.ts" + ], + languageOptions: { + parser: eslintParserTypeScript, + parserOptions: { + project: "./tsconfig.json" + } + }, + plugins: { + "eslint-plugin-ts": eslintPluginTypeScript + }, + rules: { + "eslint-plugin-ts/no-restricted-imports": ["error", { + patterns: [ + { + allowTypeImports: true, + group: [ + "!node:*" + ] + } + ] + }] + } + }, + { + files: [ + "**/*.entry.ts", + "**/*.test.ts", + "**/*.test-d.ts", + "**/tests/**/*.ts" + ], + languageOptions: { + parser: eslintParserTypeScript, + parserOptions: { + project: "./tsconfig.json" + } + }, + plugins: { + "eslint-plugin-ts": eslintPluginTypeScript + }, + rules: { + "eslint-plugin-ts/no-restricted-imports": ["error", { + patterns: [ + { + allowTypeImports: false, + group: [ + "test", + "node:test" + ], + message: "Import from vitest instead." + }, + { + allowTypeImports: false, + group: [ + "!typescript" + ] + }, + { + allowTypeImports: false, + group: [ + "unwritten:platform/**/*.js", + "**/platform/**/*.js", + "!unwritten:platform/**/node.js", + "!unwritten:platform/**/browser.js", + "!unwritten:platform/file-system/virtual-fs.js", + "node:*" + ], + message: "Use injected dependencies at 'ctx.dependencies' instead." + } + ] + }] + } + }, + { + files: [ + "**/renderer/markup/html/**/*.ts" + ], + languageOptions: { + parser: eslintParserTypeScript, + parserOptions: { + project: "./tsconfig.json" + } + }, + plugins: { + "eslint-plugin-ts": eslintPluginTypeScript + }, + rules: { + "eslint-plugin-ts/no-restricted-imports": ["error", { + patterns: [ + ...dependencyInjection, + ...indexImports, + { + group: [ + "unwritten:renderer:markdown*", + "unwritten:renderer:markup/html*", + "unwritten:renderer:markup/markdown*", + "!unwritten:renderer:html*" + ], + message: "Import from markdown renderer is not allowed." + } + ] + }] + } + }, + { + files: [ + "**/renderer/markup/markdown/**/*.ts" + ], + languageOptions: { + parser: eslintParserTypeScript, + parserOptions: { + project: "./tsconfig.json" + } + }, + plugins: { + "eslint-plugin-ts": eslintPluginTypeScript + }, + rules: { + "eslint-plugin-ts/no-restricted-imports": ["error", { + patterns: [ + ...dependencyInjection, + ...indexImports, + { + group: [ + "unwritten:renderer:html*", + "unwritten:renderer:markup/html*", + "unwritten:renderer:markup/markdown*", + "!unwritten:renderer:markdown*" + ], + message: "Import from html renderer is not allowed." + } + ] + }] + } + } +]; diff --git a/package-lock.json b/package-lock.json index 28dec0d1..a5141338 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,22 +17,19 @@ "unwritten": "lib/node/bin/index.js" }, "devDependencies": { - "@schoero/changelog-config": "^0.0.3", - "@schoero/cspell-config": "^1.9.0", - "@schoero/eslint-config": "^1.42.0", - "@schoero/markdownlint-config": "^1.1.7", - "@schoero/ts-config": "^0.3.8", - "@schoero/vite-config": "^0.0.29", + "@schoero/configs": "^0.0.0-beta.2", "@types/minimatch": "^5.1.2", "@types/node": "^20.10.5", "changelogen": "^0.5.5", + "cspell": "^8.1.3", + "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", "ts-json-schema-generator": "^1.5.0", "vite": "^5.0.10", "vite-plugin-dts": "^3.6.4", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.0.4" + "vitest": "^1.1.0" }, "engines": { "node": ">=16.9.0" @@ -53,7 +50,6 @@ "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", "dev": true, - "peer": true, "dependencies": { "@actions/http-client": "^2.0.1", "uuid": "^8.3.2" @@ -64,7 +60,6 @@ "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", "dev": true, - "peer": true, "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" @@ -88,7 +83,6 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, - "peer": true, "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -102,7 +96,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -115,7 +108,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -130,7 +122,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "peer": true, "engines": { "node": ">=0.8.0" } @@ -140,7 +131,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -150,7 +140,6 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -165,7 +154,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -178,7 +166,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -193,7 +180,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "peer": true, "engines": { "node": ">=0.8.0" } @@ -211,17 +197,16 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-7.3.9.tgz", - "integrity": "sha512-ebfrf5Zaw33bcqT80Qrkv7IGT7GI/CDp15bSk2EUmdORzk1SCKZl6L4vUo3NLMmxVwYioS+OQmsW8E88sJNyGg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.1.3.tgz", + "integrity": "sha512-TwLyL2bCtetXGhMudjOIgFPAsWF2UkT0E7T+DAZG8aUBfHoC/eco/sTmR6UJVpi6Crjs0YOQkFUBGrQ2pxJPcA==", "dev": true, - "peer": true, "dependencies": { "@cspell/dict-ada": "^4.0.2", "@cspell/dict-aws": "^4.0.0", - "@cspell/dict-bash": "^4.1.2", - "@cspell/dict-companies": "^3.0.27", - "@cspell/dict-cpp": "^5.0.9", + "@cspell/dict-bash": "^4.1.3", + "@cspell/dict-companies": "^3.0.28", + "@cspell/dict-cpp": "^5.0.10", "@cspell/dict-cryptocurrencies": "^4.0.0", "@cspell/dict-csharp": "^4.0.2", "@cspell/dict-css": "^4.0.12", @@ -230,16 +215,16 @@ "@cspell/dict-docker": "^1.1.7", "@cspell/dict-dotnet": "^5.0.0", "@cspell/dict-elixir": "^4.0.3", - "@cspell/dict-en_us": "^4.3.11", + "@cspell/dict-en_us": "^4.3.12", "@cspell/dict-en-common-misspellings": "^1.0.2", "@cspell/dict-en-gb": "1.1.33", - "@cspell/dict-filetypes": "^3.0.2", + "@cspell/dict-filetypes": "^3.0.3", "@cspell/dict-fonts": "^4.0.0", "@cspell/dict-fsharp": "^1.0.1", "@cspell/dict-fullstack": "^3.1.5", "@cspell/dict-gaming-terms": "^1.0.4", "@cspell/dict-git": "^2.0.0", - "@cspell/dict-golang": "^6.0.4", + "@cspell/dict-golang": "^6.0.5", "@cspell/dict-haskell": "^4.0.1", "@cspell/dict-html": "^4.0.5", "@cspell/dict-html-symbol-entities": "^4.0.0", @@ -247,10 +232,10 @@ "@cspell/dict-k8s": "^1.0.2", "@cspell/dict-latex": "^4.0.0", "@cspell/dict-lorem-ipsum": "^4.0.0", - "@cspell/dict-lua": "^4.0.2", + "@cspell/dict-lua": "^4.0.3", "@cspell/dict-makefile": "^1.0.0", "@cspell/dict-node": "^4.0.3", - "@cspell/dict-npm": "^5.0.12", + "@cspell/dict-npm": "^5.0.13", "@cspell/dict-php": "^4.0.4", "@cspell/dict-powershell": "^5.0.2", "@cspell/dict-public-licenses": "^2.0.5", @@ -259,7 +244,7 @@ "@cspell/dict-ruby": "^5.0.1", "@cspell/dict-rust": "^4.0.1", "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.3.9", + "@cspell/dict-software-terms": "^3.3.11", "@cspell/dict-sql": "^2.1.2", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", @@ -267,351 +252,317 @@ "@cspell/dict-vue": "^3.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-7.3.9.tgz", - "integrity": "sha512-QHsem5OZXshFX+Wdlx3VpdPi9WS7KgoBMGGJ4zQZ3lp81Rb1tRj0Ij/98whq882QOmAVQfr+uOHANHLnyPr0LQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.1.3.tgz", + "integrity": "sha512-9iOU0Y733XuF0cqC7xwzJkOKFdJ65rYGnHFdUHzr5lxEqeG9X/jhlkzyHuGGOhPxkUeFP1x9XoLhXo1isMDbKA==", "dev": true, - "peer": true, "dependencies": { - "@cspell/cspell-types": "7.3.9" + "@cspell/cspell-types": "8.1.3" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-pipe": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-7.3.9.tgz", - "integrity": "sha512-gKYTHcryKOaTmr6t+M5h1sZnQ42eHeumBJejovphipXfdivedUnuYyQrrQGFAlUKzfEOWcOPME1nm17xsaX5Ww==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.1.3.tgz", + "integrity": "sha512-/dcnyLDeyFuoX4seZv7VsDQyRpt3ZY0vjZiDpqFul8hPydM8czLyRPPMD6Za+Gqg6dZmh9+VsQWK52hVsqc0QA==", "dev": true, - "peer": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-resolver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-7.3.9.tgz", - "integrity": "sha512-2slYAGvi7EFLKyJ5hrYBNaFT2iyOEQM1pEIzm+PDuhNJE/9wuBY5pBVqIgFSPz53vsQvW9GJThNY8h1/2EH3ZA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.1.3.tgz", + "integrity": "sha512-bGyJYqkHRilqhyKGL/NvODN5U+UvCuQo7kxgt0i3Vd7m7k6XYLsSLYZ4w6r1S5IQ/ybU8I5lh6/6fNqKwvo9eg==", "dev": true, - "peer": true, "dependencies": { - "global-dirs": "^3.0.1" + "global-directory": "^4.0.1" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-service-bus": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-7.3.9.tgz", - "integrity": "sha512-VyfK3qWtJZag4Fe/x1Oh/tqCNVGKGlQ2ArX1fVdmTVGQtZcbXuMKdZI80t4b8SGtzGINHufAdakpu3xucX/FrQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.1.3.tgz", + "integrity": "sha512-8E5ZveQKneNfK+cuFMy0y6tDsho71UPppEHNoLZsEFDbIxDdtQcAfs0pk4nwEzxPBt+dBB+Yl8KExQ6x2FAYQw==", "dev": true, - "peer": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-types": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-7.3.9.tgz", - "integrity": "sha512-p7s8yEV6ASz0HjiArH11yjNj3vXzK2Ep94GrpdtYJxSxFC2w1mXAVUaJB/5+jC4+1YeYsmcBFTXmZ1rGMyTv3g==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.1.3.tgz", + "integrity": "sha512-j14FENj+DzWu6JjzTl+0X5/OJv9AEckpEp6Jaw9YglxirrBBzTkZGfoLePe/AWo/MlIYp0asl92C1UHEjgz+FQ==", "dev": true, - "peer": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/dict-ada": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.2.tgz", "integrity": "sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-aws": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.0.tgz", "integrity": "sha512-1YkCMWuna/EGIDN/zKkW+j98/55mxigftrSFgsehXhPld+ZMJM5J9UuBA88YfL7+/ETvBdd7mwW6IwWsC+/ltQ==", - "dev": true, - "peer": true + "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==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-companies": { "version": "3.0.28", "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.28.tgz", "integrity": "sha512-UinHkMYB/1pUkLKm1PGIm9PBFYxeAa6YvbB1Rq/RAAlrs0WDwiDBr3BAYdxydukG1IqqwT5z9WtU+8D/yV/5lw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-cpp": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.10.tgz", "integrity": "sha512-WCRuDrkFdpmeIR6uXQYKU9loMQKNFS4bUhtHdv5fu4qVyJSh3k/kgmtTm1h1BDTj8EwPRc/RGxS+9Z3b2mnabA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-cryptocurrencies": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-4.0.0.tgz", "integrity": "sha512-EiZp91ATyRxTmauIQfOX9adLYCunKjHEh092rrM7o2eMXP9n7zpXAL9BK7LviL+LbB8VDOm21q+s83cKrrRrsg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-csharp": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz", "integrity": "sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==", - "dev": true, - "peer": true + "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==", - "dev": true, - "peer": true + "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==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-data-science": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz", "integrity": "sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-de-ch": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@cspell/dict-de-ch/-/dict-de-ch-1.2.0.tgz", "integrity": "sha512-cF82SWASZOLk87ZxLWoEW6wxhZGHHxDd0ZuTCe5L6mmRod7qz0P2XCsbjuSaVwEJss91OWRToE4qTVRj55BnUg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-django": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.0.tgz", "integrity": "sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-docker": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.7.tgz", "integrity": "sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-dotnet": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz", "integrity": "sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-elixir": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz", "integrity": "sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-en_us": { "version": "4.3.12", "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.12.tgz", "integrity": "sha512-1bsUxFjgxF30FTzcU5uvmCvH3lyqVKR9dbwsJhomBlUM97f0edrd6590SiYBXDm7ruE68m3lJd4vs0Ev2D6FtQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-en-common-misspellings": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz", "integrity": "sha512-jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-en-gb": { "version": "1.1.33", "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz", "integrity": "sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-filetypes": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.3.tgz", "integrity": "sha512-J9UP+qwwBLfOQ8Qg9tAsKtSY/WWmjj21uj6zXTI9hRLD1eG1uUOLcfVovAmtmVqUWziPSKMr87F6SXI3xmJXgw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-fonts": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.0.tgz", "integrity": "sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==", - "dev": true, - "peer": true + "dev": true + }, + "node_modules/@cspell/dict-fr-fr": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-fr-fr/-/dict-fr-fr-2.2.2.tgz", + "integrity": "sha512-4P8qDcA3Z2IHuH5s0rUr0+D+BXIxOmSe9JIy3lKR/PNQX8holybkbtQGUAdSrgmN+4SNjKkuauiG8Wb0BfUvOw==", + "dev": true }, "node_modules/@cspell/dict-fsharp": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@cspell/dict-fsharp/-/dict-fsharp-1.0.1.tgz", "integrity": "sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-fullstack": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz", "integrity": "sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-gaming-terms": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz", "integrity": "sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-git": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz", "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-golang": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.5.tgz", "integrity": "sha512-w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-haskell": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz", "integrity": "sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-html": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.5.tgz", "integrity": "sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-html-symbol-entities": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz", "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==", - "dev": true, - "peer": true + "dev": true + }, + "node_modules/@cspell/dict-it-it": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-it-it/-/dict-it-it-3.1.0.tgz", + "integrity": "sha512-n+Z3qn9/yrYD8tFXeTm2999rKN/ELFPQI2A469nUTo8I/tGnIWj71ndZZxOgG85b0CTsf17i1HejpMIeAGFeZQ==", + "dev": true }, "node_modules/@cspell/dict-java": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.6.tgz", "integrity": "sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-k8s": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.2.tgz", "integrity": "sha512-tLT7gZpNPnGa+IIFvK9SP1LrSpPpJ94a/DulzAPOb1Q2UBFwdpFd82UWhio0RNShduvKG/WiMZf/wGl98pn+VQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-latex": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-4.0.0.tgz", "integrity": "sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-lorem-ipsum": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.0.tgz", "integrity": "sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-lua": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.3.tgz", "integrity": "sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-makefile": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-makefile/-/dict-makefile-1.0.0.tgz", "integrity": "sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-markdown": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.1.tgz", "integrity": "sha512-9j3t1UXsy3M1B8+LN8wPO73KzX7v94GBfefWKSMJDpBvDUnOjwxabnj9ICBOVErBPwURS+LkjJbgVXkvr1OiPQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-node": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.3.tgz", "integrity": "sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-npm": { "version": "5.0.14", "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.14.tgz", "integrity": "sha512-k0kC7/W2qG5YII+SW6s+JtvKrkZg651vizi5dv/5G2HmJaeLNgDqBVeeDk/uV+ntBorM66XG4BPMjSxoaIlC5w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-php": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.4.tgz", "integrity": "sha512-fRlLV730fJbulDsLIouZxXoxHt3KIH6hcLFwxaupHL+iTXDg0lo7neRpbqD5MScr/J3idEr7i9G8XWzIikKFug==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-powershell": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz", "integrity": "sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-public-licenses": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.5.tgz", "integrity": "sha512-91HK4dSRri/HqzAypHgduRMarJAleOX5NugoI8SjDLPzWYkwZ1ftuCXSk+fy8DLc3wK7iOaFcZAvbjmnLhVs4A==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-python": { "version": "4.1.10", "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.10.tgz", "integrity": "sha512-ErF/Ohcu6Xk4QVNzFgo8p7CxkxvAKAmFszvso41qOOhu8CVpB35ikBRpGVDw9gsCUtZzi15Yl0izi4do6WcLkA==", "dev": true, - "peer": true, "dependencies": { "@cspell/dict-data-science": "^1.0.11" } @@ -620,93 +571,81 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.1.tgz", "integrity": "sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-ruby": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.1.tgz", "integrity": "sha512-rruTm7Emhty/BSYavSm8ZxRuVw0OBqzJkwIFXcV0cX7To8D1qbmS9HFHRuRg8IL11+/nJvtdDz+lMFBSmPUagQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-rust": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.1.tgz", "integrity": "sha512-xJSSzHDK2z6lSVaOmMxl3PTOtfoffaxMo7fTcbZUF+SCJzfKbO6vnN9TCGX2sx1RHFDz66Js6goz6SAZQdOwaw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-scala": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.0.tgz", "integrity": "sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-software-terms": { "version": "3.3.13", "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.13.tgz", "integrity": "sha512-+TeFLJnzsxJqovY4ZNbNivQ5KgIZex1f/w62WmfpKNl4yWaexVEdVp6vi38TR+uyYagkJASaBnjlbVW3aVTpFg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-sql": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.2.tgz", "integrity": "sha512-Pi0hAcvsSGtZZeyyAN1VfGtQJbrXos5x2QjJU0niAQKhmITSOrXU/1II1Gogk+FYDjWyV9wP2De0U2f7EWs6oQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-svelte": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz", "integrity": "sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-swift": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.1.tgz", "integrity": "sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-typescript": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.2.tgz", "integrity": "sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dict-vue": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz", "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@cspell/dynamic-import": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-7.3.9.tgz", - "integrity": "sha512-P6tAmDVhrW03hmhetxhBKlNTYwL2lk8ZehYQwSpXaLnaFrS3xrQvfUaJ3Mj9W2CIMzSYXlLmPO2FLRhXK2dnEw==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.1.3.tgz", + "integrity": "sha512-/lXFLa92v4oOcZ2PbdRpOqBvnqWlYmGaV7iCy8+QhIWlMdzi+7tBX3LVTm9Jzvt/rJseVHQQ6RvfTsSmhbUMFQ==", "dev": true, - "peer": true, "dependencies": { - "import-meta-resolve": "^3.1.1" + "import-meta-resolve": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=18.0" } }, "node_modules/@cspell/strong-weak-map": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-7.3.9.tgz", - "integrity": "sha512-XKpw/p3+EN+PWiFAWc45RJPI9zQRkPSVdUFeZb0YLseWF/CkogScgIe4CLfMLITiVbP0X/FKk90+aTPfAU38kg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.1.3.tgz", + "integrity": "sha512-GhWyximzk8tumo0zhrDV3+nFYiETYefiTBWAEVbXJMibuvitFocVZwddqN85J0UdZ2M7q6tvBleEaI9ME/16gA==", "dev": true, - "peer": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@es-joy/jsdoccomment": { @@ -714,7 +653,6 @@ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", "dev": true, - "peer": true, "dependencies": { "comment-parser": "1.4.1", "esquery": "^1.5.0", @@ -724,10 +662,26 @@ "node": ">=16" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz", + "integrity": "sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", - "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.10.tgz", + "integrity": "sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==", "cpu": [ "arm" ], @@ -741,9 +695,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", - "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz", + "integrity": "sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==", "cpu": [ "arm64" ], @@ -757,9 +711,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", - "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.10.tgz", + "integrity": "sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==", "cpu": [ "x64" ], @@ -773,9 +727,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", - "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz", + "integrity": "sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==", "cpu": [ "arm64" ], @@ -789,9 +743,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", - "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz", + "integrity": "sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==", "cpu": [ "x64" ], @@ -805,9 +759,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", - "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz", + "integrity": "sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==", "cpu": [ "arm64" ], @@ -821,9 +775,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", - "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz", + "integrity": "sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==", "cpu": [ "x64" ], @@ -837,9 +791,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", - "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz", + "integrity": "sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==", "cpu": [ "arm" ], @@ -853,9 +807,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", - "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz", + "integrity": "sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==", "cpu": [ "arm64" ], @@ -869,9 +823,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", - "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz", + "integrity": "sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==", "cpu": [ "ia32" ], @@ -885,9 +839,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", - "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz", + "integrity": "sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==", "cpu": [ "loong64" ], @@ -901,9 +855,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", - "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz", + "integrity": "sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==", "cpu": [ "mips64el" ], @@ -917,9 +871,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", - "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz", + "integrity": "sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==", "cpu": [ "ppc64" ], @@ -933,9 +887,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", - "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz", + "integrity": "sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==", "cpu": [ "riscv64" ], @@ -949,9 +903,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", - "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz", + "integrity": "sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==", "cpu": [ "s390x" ], @@ -965,9 +919,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", - "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz", + "integrity": "sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==", "cpu": [ "x64" ], @@ -981,9 +935,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", - "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz", + "integrity": "sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==", "cpu": [ "x64" ], @@ -997,9 +951,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", - "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz", + "integrity": "sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==", "cpu": [ "x64" ], @@ -1013,9 +967,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", - "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz", + "integrity": "sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==", "cpu": [ "x64" ], @@ -1029,9 +983,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", - "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz", + "integrity": "sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==", "cpu": [ "arm64" ], @@ -1045,9 +999,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", - "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz", + "integrity": "sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==", "cpu": [ "ia32" ], @@ -1061,9 +1015,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", - "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz", + "integrity": "sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==", "cpu": [ "x64" ], @@ -1081,7 +1035,6 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "peer": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -1097,7 +1050,6 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "peer": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -1165,7 +1117,6 @@ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", "dev": true, - "peer": true, "engines": { "node": ">=14" } @@ -1295,9 +1246,9 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.38.5", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.5.tgz", - "integrity": "sha512-c/w2zfqBcBJxaCzpJNvFoouWewcYrUOfeu5ZkWCCIXTF9a/gXM85RGevEzlMAIEGM/kssAAZSXRJIZ3Q5vLFow==", + "version": "7.39.0", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.39.0.tgz", + "integrity": "sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==", "dev": true, "dependencies": { "@microsoft/api-extractor-model": "7.28.3", @@ -1311,7 +1262,7 @@ "resolve": "~1.22.1", "semver": "~7.5.4", "source-map": "~0.6.1", - "typescript": "~5.0.4" + "typescript": "5.3.3" }, "bin": { "api-extractor": "bin/api-extractor" @@ -1328,19 +1279,6 @@ "@rushstack/node-core-library": "3.62.0" } }, - "node_modules/@microsoft/api-extractor/node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, "node_modules/@microsoft/tsdoc": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", @@ -1652,97 +1590,136 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/@schoero/changelog-config": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@schoero/changelog-config/-/changelog-config-0.0.3.tgz", - "integrity": "sha512-Zly0rLXnHfGCPDjX+QsF8LBymIvcCHY3gtxz9CYjR1nA59vD8AHvqvIhTeSfdC+cG02Hka3s2vxZTlnJuk1l+Q==", - "dev": true, - "peerDependencies": { - "changelogen": "^0.5.3" - } - }, - "node_modules/@schoero/cspell-config": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@schoero/cspell-config/-/cspell-config-1.9.0.tgz", - "integrity": "sha512-yOMNT1bITWUNRP2zhdlrRJZn/d9k8lc+3OmAI+cP4eaQizgNwdn4ShSE4ncW1YIE/W78SiCGspzwgzmqbsmO8A==", + "node_modules/@schoero/configs": { + "version": "0.0.0-beta.2", + "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-0.0.0-beta.2.tgz", + "integrity": "sha512-Hm3nOoXQO4+xr6nxyO6NGTwekhuqCdM670M2A8YdcJw1tWW5TVAY7PP3tqQObq8s/x+P28PZ9Zralr3CvhItJA==", "dev": true, - "peerDependencies": { - "@cspell/dict-bash": "^4.1.2", - "@cspell/dict-companies": "^3.0.24", - "@cspell/dict-css": "^4.0.10", - "@cspell/dict-de-ch": "^1.1.0", - "@cspell/dict-en_us": "^4.3.8", + "dependencies": { + "@cspell/dict-bash": "^4.1.3", + "@cspell/dict-companies": "^3.0.28", + "@cspell/dict-css": "^4.0.12", + "@cspell/dict-de-ch": "^1.2.0", + "@cspell/dict-en_us": "^4.3.12", + "@cspell/dict-fr-fr": "^2.2.2", "@cspell/dict-fullstack": "^3.1.5", "@cspell/dict-html": "^4.0.5", "@cspell/dict-html-symbol-entities": "^4.0.0", + "@cspell/dict-it-it": "^3.1.0", "@cspell/dict-lorem-ipsum": "^4.0.0", "@cspell/dict-markdown": "^2.0.1", "@cspell/dict-node": "^4.0.3", - "@cspell/dict-npm": "^5.0.10", - "@cspell/dict-public-licenses": "^2.0.4", - "@cspell/dict-software-terms": "^3.3.2", + "@cspell/dict-npm": "^5.0.14", + "@cspell/dict-public-licenses": "^2.0.5", + "@cspell/dict-software-terms": "^3.3.13", "@cspell/dict-typescript": "^3.1.2", - "cspell": "^7.3.7" - } - }, - "node_modules/@schoero/eslint-config": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@schoero/eslint-config/-/eslint-config-1.42.0.tgz", - "integrity": "sha512-kU4vSfXFqFmZe8cm6Q48e55VMe5DIK5ejL45l8TMirSpaxuxihmIZtd4b/7tWHU/g/WhCWqLo05GeXNKrXlzsg==", - "dev": true, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^6.7.3", - "@typescript-eslint/parser": "^6.7.3", - "eslint": ">=8.48.0", + "@stylistic/eslint-plugin-js": "^1.5.1", + "@stylistic/eslint-plugin-jsx": "^1.5.1", + "@stylistic/eslint-plugin-plus": "^1.5.1", + "@stylistic/eslint-plugin-ts": "^1.5.1", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "cspell-lib": "^8.1.3", "eslint-plugin-import": "npm:eslint-plugin-i@2.28.1", "eslint-plugin-import-newlines": "^1.3.4", - "eslint-plugin-jsdoc": "^46.8.2", - "eslint-plugin-jsonc": "^2.9.0", + "eslint-plugin-jsdoc": "^46.9.1", + "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-markdown": "^3.0.1", + "eslint-plugin-readable-tailwind": "^0.1.0", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-sort-destructure-keys": "^1.5.0", "eslint-plugin-sort-keys": "^2.3.5", "eslint-plugin-tailwindcss": "^3.13.0", - "eslint-plugin-typescript-sort-keys": "^3.0.0", - "eslint-plugin-unicorn": "^48.0.1", + "eslint-plugin-typescript-sort-keys": "^3.1.0", + "eslint-plugin-unicorn": "^49.0.0", "eslint-plugin-unused-imports": "^3.0.0", - "eslint-plugin-vitest": "^0.3.1", - "eslint-plugin-yml": "^1.9.0" + "eslint-plugin-vitest": "^0.3.18", + "eslint-plugin-yml": "^1.11.0", + "markdownlint-cli2": "^0.11.0", + "npm": "^10.2.5", + "vite-tsconfig-paths": "^4.2.2", + "vitest-github-actions-reporter": "^0.11.1" } }, - "node_modules/@schoero/markdownlint-config": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@schoero/markdownlint-config/-/markdownlint-config-1.1.7.tgz", - "integrity": "sha512-hxDfpx2hTK8n9wbjE/QCtutKkD8loDCMv5hAlWCc+MGEIIEFedWGER4Z7RuCovSTRBo68t+Aa7uoVjPbkr9DkQ==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", + "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", "dev": true, - "peerDependencies": { - "markdownlint-cli2": "^0.8.1" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@schoero/ts-config": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@schoero/ts-config/-/ts-config-0.3.8.tgz", - "integrity": "sha512-m3oMKBNbqh8ijA0VN+/uDhhIq9c4cVXeGiJV0pkEMhHL5qnbIuOcePRhBxL3yDhmsAA0+bpCBBAHrnAWU43NwQ==", + "node_modules/@stylistic/eslint-plugin-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.5.1.tgz", + "integrity": "sha512-iZF0rF+uOhAmOJYOJx1Yvmm3CZ1uz9n0SRd9dpBYHA3QAvfABUORh9LADWwZCigjHJkp2QbCZelGFJGwGz7Siw==", "dev": true, + "dependencies": { + "acorn": "^8.11.2", + "escape-string-regexp": "^4.0.0", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1" + }, "engines": { - "node": ">=14" + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" } }, - "node_modules/@schoero/vite-config": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@schoero/vite-config/-/vite-config-0.0.29.tgz", - "integrity": "sha512-s16VfamZ3Gll5+i6x9mtjSc8+S79+fA0wDGRSaquT+jYj1TcTkCxPcshzJQDCwa9OQeG64JlLBDsXzt4miu8xQ==", + "node_modules/@stylistic/eslint-plugin-jsx": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-1.5.1.tgz", + "integrity": "sha512-JuX+jsbVdpZ6EZXkbxYr9ERcGc0ndSMFgOuwEPHhOWPZ+7F8JP/nzpBjrRf7dUPMX7ezTYLZ2a3KRGRNme6rWQ==", "dev": true, + "dependencies": { + "@stylistic/eslint-plugin-js": "^1.5.1", + "estraverse": "^5.3.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, "peerDependencies": { - "vite-tsconfig-paths": "^4.2.1", - "vitest-github-actions-reporter": "^0.11.0" + "eslint": ">=8.40.0" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "node_modules/@stylistic/eslint-plugin-plus": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-1.5.1.tgz", + "integrity": "sha512-yxkFHsUgoqEf/j1Og0FGkpEmeQoqx0CMmtgoyZGr34hka0ElCy9fRpsFkLcwx60SfiHXspbvs2YUMXiWIffnjg==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^6.13.2" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@stylistic/eslint-plugin-ts": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-1.5.1.tgz", + "integrity": "sha512-oXM1V7Jp8G9+udxQTy+Igo79LR2e5HXiWqlA/3v+/PAqWxniR9nJqJSBjtQKJTPsGplDqn/ASpHUOETP4EI/4A==", + "dev": true, + "dependencies": { + "@stylistic/eslint-plugin-js": "1.5.1", + "@typescript-eslint/utils": "^6.13.2" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" + } }, "node_modules/@types/argparse": { "version": "1.0.38", @@ -1767,7 +1744,6 @@ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dev": true, - "peer": true, "dependencies": { "@types/unist": "^2" } @@ -1791,35 +1767,31 @@ "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@types/semver": { "version": "7.5.6", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", - "dev": true, - "peer": true + "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==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", - "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", + "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", "dev": true, - "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/type-utils": "6.14.0", - "@typescript-eslint/utils": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/type-utils": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1849,7 +1821,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/utils": "5.62.0" }, @@ -1869,7 +1840,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -1887,7 +1857,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, - "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -1901,7 +1870,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", @@ -1929,7 +1897,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -1956,7 +1923,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -1974,7 +1940,6 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -1988,22 +1953,20 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "peer": true, "engines": { "node": ">=4.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", - "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", + "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", "dev": true, - "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4" }, "engines": { @@ -2023,14 +1986,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", - "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", + "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", "dev": true, - "peer": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0" + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2041,14 +2003,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", - "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", + "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", "dev": true, - "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.14.0", - "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/utils": "6.15.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -2069,11 +2030,10 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", - "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", + "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", "dev": true, - "peer": true, "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -2083,14 +2043,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", - "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", + "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", "dev": true, - "peer": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2111,18 +2070,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", - "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", "dev": true, - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", "semver": "^7.5.4" }, "engines": { @@ -2137,13 +2095,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", - "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", + "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", "dev": true, - "peer": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/types": "6.15.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -2162,13 +2119,13 @@ "peer": true }, "node_modules/@vitest/expect": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.4.tgz", - "integrity": "sha512-/NRN9N88qjg3dkhmFcCBwhn/Ie4h064pY3iv7WLRsDJW7dXnEgeoa8W9zy7gIPluhz6CkgqiB3HmpIXgmEY5dQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.1.0.tgz", + "integrity": "sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==", "dev": true, "dependencies": { - "@vitest/spy": "1.0.4", - "@vitest/utils": "1.0.4", + "@vitest/spy": "1.1.0", + "@vitest/utils": "1.1.0", "chai": "^4.3.10" }, "funding": { @@ -2176,12 +2133,12 @@ } }, "node_modules/@vitest/runner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.4.tgz", - "integrity": "sha512-rhOQ9FZTEkV41JWXozFM8YgOqaG9zA7QXbhg5gy6mFOVqh4PcupirIJ+wN7QjeJt8S8nJRYuZH1OjJjsbxAXTQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.1.0.tgz", + "integrity": "sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==", "dev": true, "dependencies": { - "@vitest/utils": "1.0.4", + "@vitest/utils": "1.1.0", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -2217,9 +2174,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.4.tgz", - "integrity": "sha512-vkfXUrNyNRA/Gzsp2lpyJxh94vU2OHT1amoD6WuvUAA12n32xeVZQ0KjjQIf8F6u7bcq2A2k969fMVxEsxeKYA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.1.0.tgz", + "integrity": "sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -2243,9 +2200,9 @@ } }, "node_modules/@vitest/spy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.4.tgz", - "integrity": "sha512-9ojTFRL1AJVh0hvfzAQpm0QS6xIS+1HFIw94kl/1ucTfGCaj1LV/iuJU4Y6cdR03EzPDygxTHwE1JOm+5RCcvA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.1.0.tgz", + "integrity": "sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -2255,9 +2212,9 @@ } }, "node_modules/@vitest/utils": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.4.tgz", - "integrity": "sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.1.0.tgz", + "integrity": "sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", @@ -2297,25 +2254,25 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.12.tgz", - "integrity": "sha512-qAtjyG3GBLG0chzp5xGCyRLLe6wFCHmjI82aGzwuGKyznNP+GJJMxjc0wOYWDB2YKfho7niJFdoFpo0CZZQg9w==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz", + "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", "dev": true, "dependencies": { "@babel/parser": "^7.23.5", - "@vue/shared": "3.3.12", + "@vue/shared": "3.3.13", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.12.tgz", - "integrity": "sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", + "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.3.12", - "@vue/shared": "3.3.12" + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13" } }, "node_modules/@vue/language-core": { @@ -2344,9 +2301,9 @@ } }, "node_modules/@vue/shared": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.12.tgz", - "integrity": "sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==", "dev": true }, "node_modules/acorn": { @@ -2366,7 +2323,6 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -2413,7 +2369,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -2458,7 +2413,6 @@ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "dev": true, - "peer": true, "engines": { "node": ">=14" } @@ -2474,22 +2428,19 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/array-timsort": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -2563,7 +2514,6 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, - "peer": true, "engines": { "node": ">=6" }, @@ -2618,7 +2568,6 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -2656,7 +2605,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, - "peer": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -2669,7 +2617,6 @@ "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-1.1.0.tgz", "integrity": "sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==", "dev": true, - "peer": true, "dependencies": { "chalk": "^5.2.0" }, @@ -2711,7 +2658,6 @@ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "dev": true, - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2722,7 +2668,6 @@ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "dev": true, - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2733,7 +2678,6 @@ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true, - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2798,7 +2742,6 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], - "peer": true, "engines": { "node": ">=8" } @@ -2808,7 +2751,6 @@ "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", "dev": true, - "peer": true, "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -2821,7 +2763,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "peer": true, "engines": { "node": ">=0.8.0" } @@ -2831,7 +2772,6 @@ "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz", "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==", "dev": true, - "peer": true, "dependencies": { "parent-module": "^2.0.0", "resolve-from": "^5.0.0" @@ -2848,7 +2788,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "peer": true, "dependencies": { "color-name": "1.1.3" } @@ -2857,8 +2796,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/colorette": { "version": "2.0.20", @@ -2889,7 +2827,6 @@ "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", "dev": true, - "peer": true, "dependencies": { "array-timsort": "^1.0.3", "core-util-is": "^1.0.3", @@ -2906,7 +2843,6 @@ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, - "peer": true, "engines": { "node": ">= 12.0.0" } @@ -2921,15 +2857,13 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/configstore": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", "dev": true, - "peer": true, "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -2963,24 +2897,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "peer": true - }, - "node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "peer": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -3001,7 +2918,6 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, - "peer": true, "dependencies": { "type-fest": "^1.0.1" }, @@ -3017,7 +2933,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -3026,26 +2941,25 @@ } }, "node_modules/cspell": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-7.3.9.tgz", - "integrity": "sha512-QzunjO9CmV5+98UfG4ONhvPtrcAC6Y2pEKeOrp5oPeyAI7HwgxmfsR3ybHRlMPAGcwKtDOurBKxM7jqXNwkzmA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.1.3.tgz", + "integrity": "sha512-SU4Su6002bPoJYaiMeNV4wwLoS8TwaOgIwaTxhys3GDbJIxZV6CrDgwksezHcG7TZrC4yrveDVsdpnrzmQ7T5Q==", "dev": true, - "peer": true, "dependencies": { - "@cspell/cspell-json-reporter": "7.3.9", - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-types": "7.3.9", - "@cspell/dynamic-import": "7.3.9", + "@cspell/cspell-json-reporter": "8.1.3", + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-types": "8.1.3", + "@cspell/dynamic-import": "8.1.3", "chalk": "^5.3.0", "chalk-template": "^1.1.0", "commander": "^11.1.0", - "cspell-gitignore": "7.3.9", - "cspell-glob": "7.3.9", - "cspell-io": "7.3.9", - "cspell-lib": "7.3.9", + "cspell-gitignore": "8.1.3", + "cspell-glob": "8.1.3", + "cspell-io": "8.1.3", + "cspell-lib": "8.1.3", "fast-glob": "^3.3.2", "fast-json-stable-stringify": "^2.1.0", - "file-entry-cache": "^7.0.1", + "file-entry-cache": "^7.0.2", "get-stdin": "^9.0.0", "semver": "^7.5.4", "strip-ansi": "^7.1.0", @@ -3056,121 +2970,120 @@ "cspell-esm": "bin.mjs" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/streetsidesoftware/cspell?sponsor=1" } }, - "node_modules/cspell-dictionary": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-7.3.9.tgz", - "integrity": "sha512-lkWfX5QNbs4yKqD9wa+G+NHRWmLgFdyposgJOyd/ojDbx99CDPMhMhg9pyMKdYl6Yt8kjMow58/i12EYvD8wnA==", + "node_modules/cspell-config-lib": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.1.3.tgz", + "integrity": "sha512-whzJYxcxos3vnywn0alCFZ+Myc0K/C62pUurfOGhgvIba7ArmlXhNRaL2r5noBxWARtpBOtzz3vrzSBK7Lq6jg==", "dev": true, - "peer": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-types": "7.3.9", - "cspell-trie-lib": "7.3.9", - "fast-equals": "^4.0.3", - "gensequence": "^6.0.0" + "@cspell/cspell-types": "8.1.3", + "comment-json": "^4.2.3", + "yaml": "^2.3.4" }, "engines": { - "node": ">=16" + "node": ">=18" } }, - "node_modules/cspell-dictionary/node_modules/fast-equals": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", - "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", + "node_modules/cspell-dictionary": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.1.3.tgz", + "integrity": "sha512-nkRQDPNnA6tw+hJFBqq26M0nK306q5rtyv/AUIWa8ZHhQkwzACnpMSpuJA7/DV5GVvPKltMK5M4A6vgfpoaFHw==", "dev": true, - "peer": true + "dependencies": { + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-types": "8.1.3", + "cspell-trie-lib": "8.1.3", + "fast-equals": "^5.0.1", + "gensequence": "^6.0.0" + }, + "engines": { + "node": ">=18" + } }, "node_modules/cspell-gitignore": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-7.3.9.tgz", - "integrity": "sha512-DLuu+K2q4xYNL4DpLyysUeiGU/NYYoObzfOYiISzOKYpi3aFLiUaiyfF6xWGsahmlijif+8bwSsIMmcvGa5dgA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.1.3.tgz", + "integrity": "sha512-NHx5lg44eCKb6yJmUPOCz4prcuYowzoo5GJ5hOcCfbk7ZEBWV1E2/kDRuQMOK2W0y1hNGr45CSxO3UxWJlYg7w==", "dev": true, - "peer": true, "dependencies": { - "cspell-glob": "7.3.9", - "find-up": "^5.0.0" + "cspell-glob": "8.1.3", + "find-up-simple": "^1.0.0" }, "bin": { "cspell-gitignore": "bin.mjs" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell-glob": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-7.3.9.tgz", - "integrity": "sha512-7PaTkCzJWjQex3men857v3ExF7Q10jbQkfD+wdln2te9iNFd+HEkstA173vb828D9yeib1q1of8oONr2SeGycg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.1.3.tgz", + "integrity": "sha512-Likr7UVUXBpthQnM5r6yao3X0YBNRbJ9AHWXTC2RJfzwZOFKF+pKPfeo3FU+Px8My96M4RC2bVMbrbZUwN5NJw==", "dev": true, - "peer": true, "dependencies": { "micromatch": "^4.0.5" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell-grammar": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-7.3.9.tgz", - "integrity": "sha512-s1QOPg4AxWE8XBewDQLe14j0uDyWGjREfm4dZFTrslAZUrQ8/df5s152M5LtgOEza33FrkKKE2axbGvgS9O7sQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.1.3.tgz", + "integrity": "sha512-dTOwNq6a5wcVzOsi4xY5/tq2r2w/+wLVU+WfyySTsPe66Rjqx/QceFl4OinImks/ZMKF7Zyjd3WGyQ5TcSsJFQ==", "dev": true, - "peer": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-types": "7.3.9" + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-types": "8.1.3" }, "bin": { "cspell-grammar": "bin.mjs" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell-io": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-7.3.9.tgz", - "integrity": "sha512-IbXOYaDxLg94uijv13kqb+6PQjEwGboQYtABuZs2+HuUVW89K2tE+fQcEhkAsrZ11sDj5lUqgEQj9omvknZSuA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.1.3.tgz", + "integrity": "sha512-QkcFeYd79oIl7PgSqFSZyvwXnZQhXmdCI733n54IN2+iXDcf7W0mwptxoC/cE19RkEwAwEFLG81UAy6L/BXI6A==", "dev": true, - "peer": true, "dependencies": { - "@cspell/cspell-service-bus": "7.3.9", - "node-fetch": "^2.7.0" + "@cspell/cspell-service-bus": "8.1.3" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell-lib": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-7.3.9.tgz", - "integrity": "sha512-eFYYs8XoYmdu78UxrPisD+hAoXOLaLzcevKf9+oDPDgJmHpkGoFgbIBnHMRIsAM1e+QDS6OlWG/rybhZTqanCQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.1.3.tgz", + "integrity": "sha512-Kk8bpHVkDZO4MEiPkDvRf/LgJ0h5mufbKLTWModq6k0Ca8EkZ/qgQlZ0ve0rIivbleSqebuWjpJHKDM+IHmzHA==", "dev": true, - "peer": true, "dependencies": { - "@cspell/cspell-bundled-dicts": "7.3.9", - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-resolver": "7.3.9", - "@cspell/cspell-types": "7.3.9", - "@cspell/dynamic-import": "7.3.9", - "@cspell/strong-weak-map": "7.3.9", + "@cspell/cspell-bundled-dicts": "8.1.3", + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-resolver": "8.1.3", + "@cspell/cspell-types": "8.1.3", + "@cspell/dynamic-import": "8.1.3", + "@cspell/strong-weak-map": "8.1.3", "clear-module": "^4.1.2", "comment-json": "^4.2.3", "configstore": "^6.0.0", - "cosmiconfig": "8.0.0", - "cspell-dictionary": "7.3.9", - "cspell-glob": "7.3.9", - "cspell-grammar": "7.3.9", - "cspell-io": "7.3.9", - "cspell-trie-lib": "7.3.9", + "cspell-config-lib": "8.1.3", + "cspell-dictionary": "8.1.3", + "cspell-glob": "8.1.3", + "cspell-grammar": "8.1.3", + "cspell-io": "8.1.3", + "cspell-trie-lib": "8.1.3", "fast-equals": "^5.0.1", - "find-up": "^6.3.0", "gensequence": "^6.0.0", "import-fresh": "^3.3.0", "resolve-from": "^5.0.0", @@ -3178,110 +3091,21 @@ "vscode-uri": "^3.0.8" }, "engines": { - "node": ">=16" - } - }, - "node_modules/cspell-lib/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-lib/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-lib/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "peer": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-lib/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-lib/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "peer": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/cspell-lib/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, "node_modules/cspell-trie-lib": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-7.3.9.tgz", - "integrity": "sha512-aTWm2KYXjQ+MlM6kB37wmTV9RU8+fgZYkiFfMc48M0MhBc6XkHUibMGrFAS29gp+B70kWPxe+VHLmFIk9pRPyg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.1.3.tgz", + "integrity": "sha512-EDSYU9MCtzPSJDrfvDrTKmc0rzl50Ehjg1c5rUCqn33p2LCRe/G8hW0FxXe0mxrZxrMO2b8l0PVSGlrCXCQ8RQ==", "dev": true, - "peer": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-types": "7.3.9", + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-types": "8.1.3", "gensequence": "^6.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cssesc": { @@ -3468,7 +3292,6 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "peer": true, "dependencies": { "path-type": "^4.0.0" }, @@ -3501,7 +3324,6 @@ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, - "peer": true, "dependencies": { "is-obj": "^2.0.0" }, @@ -3529,7 +3351,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", "dev": true, - "peer": true, "engines": { "node": ">=0.12" }, @@ -3542,15 +3363,14 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "peer": true, "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/esbuild": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", - "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz", + "integrity": "sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==", "dev": true, "hasInstallScript": true, "bin": { @@ -3560,28 +3380,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.9", - "@esbuild/android-arm64": "0.19.9", - "@esbuild/android-x64": "0.19.9", - "@esbuild/darwin-arm64": "0.19.9", - "@esbuild/darwin-x64": "0.19.9", - "@esbuild/freebsd-arm64": "0.19.9", - "@esbuild/freebsd-x64": "0.19.9", - "@esbuild/linux-arm": "0.19.9", - "@esbuild/linux-arm64": "0.19.9", - "@esbuild/linux-ia32": "0.19.9", - "@esbuild/linux-loong64": "0.19.9", - "@esbuild/linux-mips64el": "0.19.9", - "@esbuild/linux-ppc64": "0.19.9", - "@esbuild/linux-riscv64": "0.19.9", - "@esbuild/linux-s390x": "0.19.9", - "@esbuild/linux-x64": "0.19.9", - "@esbuild/netbsd-x64": "0.19.9", - "@esbuild/openbsd-x64": "0.19.9", - "@esbuild/sunos-x64": "0.19.9", - "@esbuild/win32-arm64": "0.19.9", - "@esbuild/win32-ia32": "0.19.9", - "@esbuild/win32-x64": "0.19.9" + "@esbuild/aix-ppc64": "0.19.10", + "@esbuild/android-arm": "0.19.10", + "@esbuild/android-arm64": "0.19.10", + "@esbuild/android-x64": "0.19.10", + "@esbuild/darwin-arm64": "0.19.10", + "@esbuild/darwin-x64": "0.19.10", + "@esbuild/freebsd-arm64": "0.19.10", + "@esbuild/freebsd-x64": "0.19.10", + "@esbuild/linux-arm": "0.19.10", + "@esbuild/linux-arm64": "0.19.10", + "@esbuild/linux-ia32": "0.19.10", + "@esbuild/linux-loong64": "0.19.10", + "@esbuild/linux-mips64el": "0.19.10", + "@esbuild/linux-ppc64": "0.19.10", + "@esbuild/linux-riscv64": "0.19.10", + "@esbuild/linux-s390x": "0.19.10", + "@esbuild/linux-x64": "0.19.10", + "@esbuild/netbsd-x64": "0.19.10", + "@esbuild/openbsd-x64": "0.19.10", + "@esbuild/sunos-x64": "0.19.10", + "@esbuild/win32-arm64": "0.19.10", + "@esbuild/win32-ia32": "0.19.10", + "@esbuild/win32-x64": "0.19.10" } }, "node_modules/escape-string-regexp": { @@ -3589,7 +3410,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -3658,7 +3478,6 @@ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -3671,7 +3490,6 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "peer": true, "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -3683,7 +3501,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -3693,7 +3510,6 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, - "peer": true, "dependencies": { "debug": "^3.2.7" }, @@ -3711,7 +3527,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -3722,7 +3537,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-i/-/eslint-plugin-i-2.28.1.tgz", "integrity": "sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==", "dev": true, - "peer": true, "dependencies": { "debug": "^3.2.7", "doctrine": "^2.1.0", @@ -3749,7 +3563,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.3.4.tgz", "integrity": "sha512-Lmf/BbK+EQKUfjKPcZpslE/KTGYlgaI8ZJ/sYzdbb3BVTg5+GmLBLHBjsUKNEVRM1SEhDTF/didtOSYKi4tSnQ==", "dev": true, - "peer": true, "bin": { "import-linter": "lib/index.js" }, @@ -3765,7 +3578,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3776,7 +3588,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -3786,7 +3597,6 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -3799,7 +3609,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3812,7 +3621,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.1.tgz", "integrity": "sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==", "dev": true, - "peer": true, "dependencies": { "@es-joy/jsdoccomment": "~0.41.0", "are-docs-informative": "^0.0.2", @@ -3832,14 +3640,14 @@ } }, "node_modules/eslint-plugin-jsonc": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.11.1.tgz", - "integrity": "sha512-zQ2h7x0gOdUfogfZJzLdclDWu9bksUQtC/zYmU17eLCBv4yETht8r2sbCRx4EECUdZAS8sW/UF7bTba95BoXRQ==", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.11.2.tgz", + "integrity": "sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==", "dev": true, - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "eslint-compat-utils": "^0.1.2", + "espree": "^9.6.1", "graphemer": "^1.4.0", "jsonc-eslint-parser": "^2.0.4", "natural-compare": "^1.4.0" @@ -3859,7 +3667,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", "dev": true, - "peer": true, "dependencies": { "mdast-util-from-markdown": "^0.8.5" }, @@ -3870,12 +3677,21 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/eslint-plugin-readable-tailwind": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-0.1.0.tgz", + "integrity": "sha512-XwbTsf1uHmM3U7od74ScNzcKQy2FqhyyckB37TY8TpWI/13mq+LwRKO0UJ90tXPbcK8HaaFntjuLsYIm1QDnYQ==", + "dev": true, + "peerDependencies": { + "eslint": ">=7", + "tailwindcss": ">=3.3.0" + } + }, "node_modules/eslint-plugin-simple-import-sort": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz", "integrity": "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==", "dev": true, - "peer": true, "peerDependencies": { "eslint": ">=5.0.0" } @@ -3885,7 +3701,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-sort-destructure-keys/-/eslint-plugin-sort-destructure-keys-1.5.0.tgz", "integrity": "sha512-xGLyqHtbFXZNXQSvAiQ4ISBYokrbUywEhmaA50fKtSKgceCv5y3zjoNuZwcnajdM6q29Nxj+oXC9KcqfMsAPrg==", "dev": true, - "peer": true, "dependencies": { "natural-compare-lite": "^1.4.0" }, @@ -3910,7 +3725,6 @@ "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==", "dev": true, - "peer": true, "dependencies": { "natural-compare": "1.4.0" } @@ -3920,7 +3734,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.13.0.tgz", "integrity": "sha512-Fcep4KDRLWaK3KmkQbdyKHG0P4GdXFmXdDaweTIPcgOP60OOuWFbh1++dufRT28Q4zpKTKaHwTsXPJ4O/EjU2Q==", "dev": true, - "peer": true, "dependencies": { "fast-glob": "^3.2.5", "postcss": "^8.4.4" @@ -3937,7 +3750,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-3.1.0.tgz", "integrity": "sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/experimental-utils": "^5.0.0", "json-schema": "^0.4.0", @@ -3953,13 +3765,12 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "48.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz", - "integrity": "sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==", + "version": "49.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-49.0.0.tgz", + "integrity": "sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "@eslint-community/eslint-utils": "^4.4.0", "ci-info": "^3.8.0", "clean-regexp": "^1.0.0", @@ -3967,7 +3778,6 @@ "indent-string": "^4.0.0", "is-builtin-module": "^3.2.1", "jsesc": "^3.0.2", - "lodash": "^4.17.21", "pluralize": "^8.0.0", "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.27", @@ -3982,7 +3792,7 @@ "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=8.44.0" + "eslint": ">=8.52.0" } }, "node_modules/eslint-plugin-unused-imports": { @@ -3990,7 +3800,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==", "dev": true, - "peer": true, "dependencies": { "eslint-rule-composer": "^0.3.0" }, @@ -4012,7 +3821,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.18.tgz", "integrity": "sha512-IJzs6BpA//wkNxo5845uPIMOIp4j76MiKiagJ3hD6a2DemrktdpB7mmTjU0EeFuq14NXFoO1wN8Fwrx2VxWBRA==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/utils": "^6.14.0" }, @@ -4037,7 +3845,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.11.0.tgz", "integrity": "sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==", "dev": true, - "peer": true, "dependencies": { "debug": "^4.3.2", "eslint-compat-utils": "^0.1.1", @@ -4060,7 +3867,6 @@ "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", "dev": true, - "peer": true, "engines": { "node": ">=4.0.0" } @@ -4087,7 +3893,6 @@ "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, - "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4249,7 +4054,6 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "peer": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -4267,7 +4071,6 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -4281,7 +4084,6 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, - "peer": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -4294,7 +4096,6 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -4307,7 +4108,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "peer": true, "engines": { "node": ">=4.0" } @@ -4323,7 +4123,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -4362,7 +4161,6 @@ "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } @@ -4397,9 +4195,9 @@ "peer": true }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -4410,7 +4208,6 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", "dev": true, - "peer": true, "dependencies": { "flat-cache": "^3.2.0" }, @@ -4447,6 +4244,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -4461,7 +4270,6 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "peer": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -4475,8 +4283,7 @@ "version": "3.2.9", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/fs-extra": { "version": "7.0.1", @@ -4550,7 +4357,6 @@ "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-6.0.0.tgz", "integrity": "sha512-8WwuywE9pokJRAcg2QFR/plk3cVPebSUqRPzpGQh3WQ0wIiHAw+HyOQj5IuHyUTQBHpBKFoB2JUMu9zT3vJ16Q==", "dev": true, - "peer": true, "engines": { "node": ">=16" } @@ -4569,7 +4375,6 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -4594,7 +4399,6 @@ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", "dev": true, - "peer": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -4625,7 +4429,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4658,7 +4461,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4669,7 +4471,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4677,17 +4478,16 @@ "node": "*" } }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dev": true, - "peer": true, "dependencies": { - "ini": "2.0.0" + "ini": "4.1.1" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4714,7 +4514,6 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "peer": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -4734,8 +4533,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/graceful-fs": { "version": "4.2.11", @@ -4747,15 +4545,13 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "peer": true + "dev": true }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -4765,7 +4561,6 @@ "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -4795,8 +4590,7 @@ "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/https-proxy-agent": { "version": "7.0.2", @@ -4825,7 +4619,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, - "peer": true, "engines": { "node": ">= 4" } @@ -4835,7 +4628,6 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "peer": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -4852,7 +4644,6 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "peer": true, "dependencies": { "callsites": "^3.0.0" }, @@ -4865,7 +4656,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -4880,11 +4670,10 @@ } }, "node_modules/import-meta-resolve": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.1.1.tgz", - "integrity": "sha512-qeywsE/KC3w9Fd2ORrRDUw6nS/nLwZpXgfrOc2IILvZYnCaEMd+D56Vfg9k4G29gIeVi3XKql1RQatME8iYsiw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", "dev": true, - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4895,7 +4684,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "peer": true, "engines": { "node": ">=0.8.19" } @@ -4905,7 +4693,6 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -4927,13 +4714,12 @@ "dev": true }, "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, - "peer": true, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/is-alphabetical": { @@ -4941,7 +4727,6 @@ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "dev": true, - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4952,7 +4737,6 @@ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dev": true, - "peer": true, "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" @@ -4966,8 +4750,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -4986,7 +4769,6 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, - "peer": true, "dependencies": { "builtin-modules": "^3.3.0" }, @@ -5014,7 +4796,6 @@ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true, - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5061,7 +4842,6 @@ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true, - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5099,7 +4879,6 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -5130,8 +4909,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/is-wsl": { "version": "2.2.0", @@ -5185,8 +4963,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -5206,7 +4983,6 @@ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, - "peer": true, "engines": { "node": ">=12.0.0" } @@ -5216,7 +4992,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -5228,22 +5003,19 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -5275,7 +5047,6 @@ "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz", "integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==", "dev": true, - "peer": true, "dependencies": { "acorn": "^8.5.0", "eslint-visitor-keys": "^3.0.0", @@ -5309,7 +5080,6 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "peer": true, "dependencies": { "json-buffer": "3.0.1" } @@ -5348,15 +5118,13 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/linkify-it": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", "dev": true, - "peer": true, "dependencies": { "uc.micro": "^1.0.1" } @@ -5449,11 +5217,10 @@ } }, "node_modules/markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", "dev": true, - "peer": true, "dependencies": { "argparse": "^2.0.1", "entities": "~3.0.1", @@ -5466,32 +5233,33 @@ } }, "node_modules/markdownlint": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.29.0.tgz", - "integrity": "sha512-ASAzqpODstu/Qsk0xW5BPgWnK/qjpBQ4e7IpsSvvFXcfYIjanLTdwFRJK1SIEEh0fGSMKXcJf/qhaZYHyME0wA==", + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.32.1.tgz", + "integrity": "sha512-3sx9xpi4xlHlokGyHO9k0g3gJbNY4DI6oNEeEYq5gQ4W7UkiJ90VDAnuDl2U+yyXOUa6BX+0gf69ZlTUGIBp6A==", "dev": true, - "peer": true, "dependencies": { - "markdown-it": "13.0.1", - "markdownlint-micromark": "0.1.5" + "markdown-it": "13.0.2", + "markdownlint-micromark": "0.1.7" }, "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-cli2": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.8.1.tgz", - "integrity": "sha512-y0Siwt+RApKxSSb0CT9p7z1DcAO+ncjrB9IpC/jflJRIet4namCFmxLTbfBBQdPF6EntPk5yyXKe7vcoPGlnXw==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.11.0.tgz", + "integrity": "sha512-RmFpr+My5in8KT+H/A6ozKIVYVzZtL5t9c8DYdv0YJdljl385z44CcCVBrclpHxCGMY2tr0hZ/ca+meGGvgdnQ==", "dev": true, - "peer": true, "dependencies": { - "globby": "13.1.4", - "markdownlint": "0.29.0", + "globby": "14.0.0", + "markdownlint": "0.32.1", "markdownlint-cli2-formatter-default": "0.0.4", "micromatch": "4.0.5", - "strip-json-comments": "5.0.0", - "yaml": "2.3.1" + "strip-json-comments": "5.0.1", + "yaml": "2.3.4" }, "bin": { "markdownlint-cli2": "markdownlint-cli2.js", @@ -5499,7 +5267,10 @@ "markdownlint-cli2-fix": "markdownlint-cli2-fix.js" }, "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-cli2-formatter-default": { @@ -5507,37 +5278,35 @@ "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.4.tgz", "integrity": "sha512-xm2rM0E+sWgjpPn1EesPXx5hIyrN2ddUnUwnbCsD/ONxYtw3PX6LydvdH6dciWAoFDpwzbHM1TO7uHfcMd6IYg==", "dev": true, - "peer": true, "peerDependencies": { "markdownlint-cli2": ">=0.0.4" } }, "node_modules/markdownlint-cli2/node_modules/globby": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", + "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", "dev": true, - "peer": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "@sindresorhus/merge-streams": "^1.0.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": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/markdownlint-cli2/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "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, - "peer": true, "engines": { "node": ">=12" }, @@ -5545,12 +5314,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/markdownlint-cli2/node_modules/strip-json-comments": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", - "integrity": "sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==", + "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, - "peer": true, "engines": { "node": ">=14.16" }, @@ -5558,22 +5326,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/markdownlint-cli2/node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "node_modules/markdownlint-cli2/node_modules/strip-json-comments": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", + "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", "dev": true, - "peer": true, "engines": { - "node": ">= 14" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/markdownlint-micromark": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.5.tgz", - "integrity": "sha512-HvofNU4QCvfUCWnocQP1IAWaqop5wpWrB0mKB6SSh0fcpV0PdmQNS6tdUuFew1utpYlUvYYzz84oDkrD76GB9A==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.7.tgz", + "integrity": "sha512-BbRPTC72fl5vlSKv37v/xIENSRDYL/7X/XoFzZ740FGEbs9vZerLrIkFRY0rv7slQKxDczToYuMmqQFN61fi4Q==", "dev": true, - "peer": true, "engines": { "node": ">=16" } @@ -5583,7 +5352,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", "dev": true, - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^2.0.0", @@ -5601,7 +5369,6 @@ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", "dev": true, - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -5611,8 +5378,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true, - "peer": true + "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", @@ -5644,7 +5410,6 @@ "url": "https://opencollective.com/unified" } ], - "peer": true, "dependencies": { "debug": "^4.0.0", "parse-entities": "^2.0.0" @@ -5680,7 +5445,6 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -5757,150 +5521,3073 @@ "ufo": "^1.3.0" } }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "peer": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/node-fetch-native": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.1.tgz", + "integrity": "sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.5.tgz", + "integrity": "sha512-lXdZ7titEN8CH5YJk9C/aYRU9JeDxQ4d8rwIIDsvH3SMjLjHTukB2CFstMiB30zXs4vCrPN2WH6cDq1yHBeJAw==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "cli-table3", + "columnify", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "strip-ansi", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dev": true, + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^7.2.1", + "@npmcli/config": "^8.0.2", + "@npmcli/fs": "^3.1.0", + "@npmcli/map-workspaces": "^3.0.4", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.2", + "@sigstore/tuf": "^2.2.0", + "abbrev": "^2.0.0", + "archy": "~1.0.0", + "cacache": "^18.0.1", + "chalk": "^5.3.0", + "ci-info": "^4.0.0", + "cli-columns": "^4.0.0", + "cli-table3": "^0.6.3", + "columnify": "^1.6.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.1", + "init-package-json": "^6.0.0", + "is-cidr": "^5.0.3", + "json-parse-even-better-errors": "^3.0.1", + "libnpmaccess": "^8.0.1", + "libnpmdiff": "^6.0.3", + "libnpmexec": "^7.0.4", + "libnpmfund": "^5.0.1", + "libnpmhook": "^10.0.0", + "libnpmorg": "^6.0.1", + "libnpmpack": "^6.0.3", + "libnpmpublish": "^9.0.2", + "libnpmsearch": "^7.0.0", + "libnpmteam": "^6.0.0", + "libnpmversion": "^5.0.1", + "make-fetch-happen": "^13.0.0", + "minimatch": "^9.0.3", + "minipass": "^7.0.4", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^10.0.1", + "nopt": "^7.2.0", + "normalize-package-data": "^6.0.0", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.3.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-profile": "^9.0.0", + "npm-registry-fetch": "^16.1.0", + "npm-user-validate": "^2.0.0", + "npmlog": "^7.0.1", + "p-map": "^4.0.0", + "pacote": "^17.0.5", + "parse-conflict-json": "^3.0.1", + "proc-log": "^3.0.0", + "qrcode-terminal": "^0.12.0", + "read": "^2.1.0", + "semver": "^7.5.4", + "spdx-expression-parse": "^3.0.1", + "ssri": "^10.0.5", + "strip-ansi": "^7.1.0", + "supports-color": "^9.4.0", + "tar": "^6.2.0", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.0", + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@colors/colors": { + "version": "1.5.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "7.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.0", + "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.0.0", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/query": "^3.0.1", + "@npmcli/run-script": "^7.0.2", + "bin-links": "^4.0.1", + "cacache": "^18.0.0", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.1", + "json-parse-even-better-errors": "^3.0.0", + "json-stringify-nice": "^1.1.4", + "minimatch": "^9.0.0", + "nopt": "^7.0.0", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "npmlog": "^7.0.1", + "pacote": "^17.0.4", + "parse-conflict-json": "^3.0.0", + "proc-log": "^3.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^1.0.2", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.5", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "8.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^3.0.2", + "ci-info": "^4.0.0", + "ini": "^4.1.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ansi-styles": "^4.3.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "5.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^17.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abort-controller": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^4.1.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/npm/node_modules/builtins": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "18.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.0.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/color-support": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/npm/node_modules/columnify/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/columnify/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/diff": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/event-target-shim": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/events": { + "version": "3.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/gauge": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^4.0.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.3.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hasown": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "7.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "6.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^2.0.0", + "read-package-json": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/ip": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.0.3", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "4.0.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-core-module": { + "version": "2.13.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "6.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1", + "@npmcli/disparity-colors": "^3.0.0", + "@npmcli/installed-package-contents": "^2.0.2", + "binary-extensions": "^2.2.0", + "diff": "^5.1.0", + "minimatch": "^9.0.0", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4", + "tar": "^6.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "7.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^7.0.2", + "ci-info": "^4.0.0", + "npm-package-arg": "^11.0.1", + "npmlog": "^7.0.1", + "pacote": "^17.0.4", + "proc-log": "^3.0.0", + "read": "^2.0.0", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "10.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "6.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^7.0.2", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "9.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.0", + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.7", + "sigstore": "^2.1.0", + "ssri": "^10.0.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "7.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.3", + "@npmcli/run-script": "^7.0.2", + "json-parse-even-better-errors": "^3.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "13.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-json-stream": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "10.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.3.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "11.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "8.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "16.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npmlog": { + "version": "7.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^4.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^5.0.0", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "17.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.10.1", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.0.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/process": { + "version": "0.11.10", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "4.4.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.7.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.16", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/ssri": { + "version": "10.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "5.0.0", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^5.0.0" + }, "engines": { - "node": ">=4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/muggle-string": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", - "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", - "dev": true + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", "dev": true, - "peer": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" + "defaults": "^1.0.3" } }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "node_modules/npm/node_modules/which": { + "version": "4.0.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, "bin": { - "nanoid": "bin/nanoid.cjs" + "node-which": "bin/which.js" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", "dev": true, - "peer": true + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.5", "dev": true, - "peer": true + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", "dev": true, - "peer": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": ">=12" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/node-fetch-native": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.1.tgz", - "integrity": "sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", "dev": true, - "peer": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver" + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { "node": ">=12" }, @@ -5908,6 +8595,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6042,7 +8748,6 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -6052,7 +8757,6 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", "dev": true, - "peer": true, "dependencies": { "callsites": "^3.1.0" }, @@ -6065,7 +8769,6 @@ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, - "peer": true, "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", @@ -6084,7 +8787,6 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -6109,7 +8811,6 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6119,7 +8820,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -6144,7 +8844,6 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6224,7 +8923,6 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -6467,7 +9165,6 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "peer": true, "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -6483,7 +9180,6 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "peer": true, "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -6501,7 +9197,6 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "peer": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -6515,7 +9210,6 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "peer": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -6528,7 +9222,6 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "peer": true, "dependencies": { "p-try": "^2.0.0" }, @@ -6544,7 +9237,6 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "peer": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -6557,7 +9249,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6567,7 +9258,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6589,7 +9279,6 @@ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", "dev": true, - "peer": true, "bin": { "regexp-tree": "bin/regexp-tree" } @@ -6599,7 +9288,6 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", "dev": true, - "peer": true, "dependencies": { "jsesc": "~0.5.0" }, @@ -6612,7 +9300,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, - "peer": true, "bin": { "jsesc": "bin/jsesc" } @@ -6622,7 +9309,6 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, - "peer": true, "engines": { "node": ">=0.10" } @@ -6649,7 +9335,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6659,7 +9344,6 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "peer": true, "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -6679,7 +9363,6 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -6947,7 +9630,6 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6982,7 +9664,6 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "peer": true, "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -6993,7 +9674,6 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "peer": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -7003,15 +9683,13 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true, - "peer": true + "dev": true }, "node_modules/spdx-expression-parse": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, - "peer": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -7021,8 +9699,7 @@ "version": "3.0.16", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/sprintf-js": { "version": "1.0.3", @@ -7056,7 +9733,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "peer": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -7084,7 +9760,6 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "peer": true, "dependencies": { "min-indent": "^1.0.0" }, @@ -7199,7 +9874,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -7220,9 +9894,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.6.tgz", - "integrity": "sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.0.tgz", + "integrity": "sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==", "dev": true, "peer": true, "dependencies": { @@ -7291,8 +9965,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/thenify": { "version": "3.3.1", @@ -7365,19 +10038,11 @@ "node": ">=8.0" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true, - "peer": true - }, "node_modules/ts-api-utils": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, - "peer": true, "engines": { "node": ">=16.13.0" }, @@ -7449,7 +10114,6 @@ "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.2.tgz", "integrity": "sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==", "dev": true, - "peer": true, "bin": { "tsconfck": "bin/tsconfck.js" }, @@ -7469,15 +10133,13 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "peer": true, "dependencies": { "tslib": "^1.8.1" }, @@ -7493,7 +10155,6 @@ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "dev": true, - "peer": true, "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } @@ -7538,7 +10199,6 @@ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, - "peer": true, "dependencies": { "is-typedarray": "^1.0.0" } @@ -7559,8 +10219,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/ufo": { "version": "1.3.2", @@ -7573,7 +10232,6 @@ "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", "dev": true, - "peer": true, "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -7587,12 +10245,23 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unique-string": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, - "peer": true, "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -7608,7 +10277,6 @@ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, - "peer": true, "dependencies": { "@types/unist": "^2.0.2" }, @@ -7656,7 +10324,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "peer": true, "bin": { "uuid": "dist/bin/uuid" } @@ -7666,7 +10333,6 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "peer": true, "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -7677,7 +10343,6 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "peer": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -7748,9 +10413,9 @@ } }, "node_modules/vite-node": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.4.tgz", - "integrity": "sha512-9xQQtHdsz5Qn8hqbV7UKqkm8YkJhzT/zr41Dmt5N7AlD8hJXw/Z7y0QiD5I8lnTthV9Rvcvi0QW7PI0Fq83ZPg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.1.0.tgz", + "integrity": "sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -7810,7 +10475,6 @@ "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.2.tgz", "integrity": "sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw==", "dev": true, - "peer": true, "dependencies": { "debug": "^4.1.1", "globrex": "^0.1.2", @@ -7826,16 +10490,16 @@ } }, "node_modules/vitest": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.4.tgz", - "integrity": "sha512-s1GQHp/UOeWEo4+aXDOeFBJwFzL6mjycbQwwKWX2QcYfh/7tIerS59hWQ20mxzupTJluA2SdwiBuWwQHH67ckg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.1.0.tgz", + "integrity": "sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==", "dev": true, "dependencies": { - "@vitest/expect": "1.0.4", - "@vitest/runner": "1.0.4", - "@vitest/snapshot": "1.0.4", - "@vitest/spy": "1.0.4", - "@vitest/utils": "1.0.4", + "@vitest/expect": "1.1.0", + "@vitest/runner": "1.1.0", + "@vitest/snapshot": "1.1.0", + "@vitest/spy": "1.1.0", + "@vitest/utils": "1.1.0", "acorn-walk": "^8.3.0", "cac": "^6.7.14", "chai": "^4.3.10", @@ -7850,7 +10514,7 @@ "tinybench": "^2.5.1", "tinypool": "^0.8.1", "vite": "^5.0.0", - "vite-node": "1.0.4", + "vite-node": "1.1.0", "why-is-node-running": "^2.2.2" }, "bin": { @@ -7896,7 +10560,6 @@ "resolved": "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.11.1.tgz", "integrity": "sha512-ZHHB0wBgOPhMYCB17WKVlJZa+5SdudBZFoVoebwfq3ioIUTeLQGYHwh85vpdJAxRghLP8d0qI/6eCTueGyDVXA==", "dev": true, - "peer": true, "dependencies": { "@actions/core": "^1.10.0" }, @@ -7923,15 +10586,13 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/vscode-uri": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/vue-template-compiler": { "version": "2.7.15", @@ -7960,24 +10621,6 @@ "typescript": "*" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8020,7 +10663,6 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, - "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -8032,15 +10674,13 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/xdg-basedir": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -8068,7 +10708,6 @@ "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz", "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==", "dev": true, - "peer": true, "dependencies": { "eslint-visitor-keys": "^3.0.0", "lodash": "^4.17.21", diff --git a/package.json b/package.json index a4545689..0810921c 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "build:declaration": "npx tsc --outDir lib --emitDeclarationOnly", "build:dev": "npm run build:browser && npm run build:node", "build:node": "vite build", - "eslint": "eslint --ext .ts,.tsx,.js,.jsx,.json,.jsonc,.yml,.md ./", + "eslint": "eslint .", "eslint:ci": "npm run eslint -- --max-warnings 0", "eslint:fix": "npm run eslint -- --fix", "lint": "npm run eslint && npm run markdownlint", @@ -68,22 +68,19 @@ "typescript": "^5.3.3" }, "devDependencies": { - "@schoero/changelog-config": "^0.0.3", - "@schoero/cspell-config": "^1.9.0", - "@schoero/eslint-config": "^1.42.0", - "@schoero/markdownlint-config": "^1.1.7", - "@schoero/ts-config": "^0.3.8", - "@schoero/vite-config": "^0.0.29", + "@schoero/configs": "^0.0.0-beta.2", "@types/minimatch": "^5.1.2", "@types/node": "^20.10.5", "changelogen": "^0.5.5", + "cspell": "^8.1.3", + "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", "ts-json-schema-generator": "^1.5.0", "vite": "^5.0.10", "vite-plugin-dts": "^3.6.4", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.0.4" + "vitest": "^1.1.0" }, "keywords": [ "documentation", diff --git a/schemas/renderer/config.json b/schemas/renderer/config.json index 46dd1d1e..399ae05a 100644 --- a/schemas/renderer/config.json +++ b/schemas/renderer/config.json @@ -9,7 +9,7 @@ "type": "string" }, "extends": { - "description": "Extend another config", + "description": "Extend another config.", "type": "string" }, "externalTypes": { @@ -21,7 +21,7 @@ "description": "Interpreter configuration." }, "outputDir": { - "description": "Output dir", + "description": "Output dir.", "type": "string" }, "renderConfig": { @@ -84,7 +84,7 @@ "additionalProperties": false, "properties": { "indentation": { - "description": "Indentation characters", + "description": "Indentation characters.", "type": "string" }, "inlineTitleEncapsulation": { @@ -100,7 +100,7 @@ "description": "Defines how inline titles should be encapsulated in the rendered output." }, "newLine": { - "description": "Newline character", + "description": "Newline character.", "enum": [ "\n", "\r\n", @@ -233,7 +233,7 @@ }, "translations": { "additionalProperties": false, - "description": "Translations for otherwise hardcoded labels", + "description": "Translations for otherwise hardcoded labels.", "properties": { "abstract": { "type": "string" @@ -529,11 +529,11 @@ "additionalProperties": false, "properties": { "includeIds": { - "description": "Whether ids should be included in the output", + "description": "Whether ids should be included in the output.", "type": "boolean" }, "indentation": { - "description": "Indentation characters", + "description": "Indentation characters.", "type": "string" } }, @@ -555,10 +555,10 @@ "type": "boolean" } ], - "description": "Defines which HTML tags are allowed in the rendered output. Will be used in the future to render anchor nodes" + "description": "Defines which HTML tags are allowed in the rendered output. Will be used in the future to render anchor nodes." }, "indentation": { - "description": "Indentation characters", + "description": "Indentation characters.", "type": "string" }, "inlineTitleEncapsulation": { @@ -574,7 +574,7 @@ "description": "Defines how inline titles should be encapsulated in the rendered output." }, "newLine": { - "description": "Newline character", + "description": "Newline character.", "enum": [ "\n", "\r\n", @@ -715,7 +715,7 @@ }, "translations": { "additionalProperties": false, - "description": "Translations for otherwise hardcoded labels", + "description": "Translations for otherwise hardcoded labels.", "properties": { "abstract": { "type": "string" diff --git a/src/compiler/shared.ts b/src/compiler/shared.ts index 73fb64de..15585ae1 100644 --- a/src/compiler/shared.ts +++ b/src/compiler/shared.ts @@ -32,7 +32,7 @@ export function reportCompilerDiagnostics(ctx: DefaultContext, diagnostics: read diagnostics.filter( diagnostic => diagnostic.category === ts.DiagnosticCategory.Error || - diagnostic.category === ts.DiagnosticCategory.Warning + diagnostic.category === ts.DiagnosticCategory.Warning ).forEach(diagnostic => { const color = diagnostic.category === ts.DiagnosticCategory.Error diff --git a/src/config/config.test.ts b/src/config/config.test.ts index 5f22450b..be57c533 100644 --- a/src/config/config.test.ts +++ b/src/config/config.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable eslint-plugin-typescript/naming-convention */ import { beforeAll, expect, it, vitest } from "vitest"; import { createConfig } from "unwritten:config/config"; diff --git a/src/config/default.ts b/src/config/default.ts index 05fdf0c2..57b3e28a 100644 --- a/src/config/default.ts +++ b/src/config/default.ts @@ -1,5 +1,5 @@ -/* eslint-disable sort-keys/sort-keys-fix */ -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable eslint-plugin-sort-keys/sort-keys-fix */ +/* eslint-disable eslint-plugin-typescript/naming-convention */ import { TypeKind } from "unwritten:interpreter/enums/type"; import type { ExternalTypes, InterpreterConfig } from "unwritten:type-definitions/config"; diff --git a/src/config/generator.entry.test.ts b/src/config/generator.entry.test.ts index 35b787cb..63339055 100644 --- a/src/config/generator.entry.test.ts +++ b/src/config/generator.entry.test.ts @@ -28,7 +28,7 @@ scope("Integration", "generateConfig", () => { it("should create a config file at the provided location", async () => { const path = "/some/random/path/.unwritten.json"; await generateConfig(path, { silent: true }); - expect(existsSync(`${path}`)).toBe(true); + expect(existsSync(path)).toBe(true); }); } diff --git a/src/interpreter/ast/entities/class.ts b/src/interpreter/ast/entities/class.ts index 2922ad5d..084d70fa 100644 --- a/src/interpreter/ast/entities/class.ts +++ b/src/interpreter/ast/entities/class.ts @@ -93,11 +93,11 @@ function getSymbolsByTypeFromClassLikeDeclaration( ctx: InterpreterContext, classLikeDeclaration: ClassLikeDeclaration, filter: - | typeof isConstructorDeclaration - | typeof isGetterDeclaration - | typeof isMethodDeclaration - | typeof isPropertyDeclaration - | typeof isSetterDeclaration + | typeof isConstructorDeclaration + | typeof isGetterDeclaration + | typeof isMethodDeclaration + | typeof isPropertyDeclaration + | typeof isSetterDeclaration ) { const declarations = classLikeDeclaration.members.filter(member => filter(ctx, member)); diff --git a/src/interpreter/ast/entities/export-assignment.test.ts b/src/interpreter/ast/entities/export-assignment.test.ts index 4544843a..5e08f1f7 100644 --- a/src/interpreter/ast/entities/export-assignment.test.ts +++ b/src/interpreter/ast/entities/export-assignment.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable eslint-plugin-typescript/naming-convention */ import { expect, it } from "vitest"; import { TypeKind } from "unwritten:interpreter/enums/type"; diff --git a/src/interpreter/ast/entities/function-like.ts b/src/interpreter/ast/entities/function-like.ts index b3e28dce..58d199e5 100644 --- a/src/interpreter/ast/entities/function-like.ts +++ b/src/interpreter/ast/entities/function-like.ts @@ -23,13 +23,12 @@ import type { InterpreterContext } from "unwritten:type-definitions/context"; export const createFunctionLikeEntity = (ctx: InterpreterContext, symbol: Symbol, kind: Kind): InferFunctionLikeEntityKind => withLockedSymbol(ctx, symbol, () => { - const declarations = symbol.declarations?.flatMap(declaration => - isFunctionLikeDeclaration(ctx, declaration) || - isCallSignatureDeclaration(ctx, declaration) || - isConstructSignatureDeclaration(ctx, declaration) || - isMethodSignatureDeclaration(ctx, declaration) - ? declaration - : []); + const declarations = symbol.declarations?.flatMap(declaration => isFunctionLikeDeclaration(ctx, declaration) || + isCallSignatureDeclaration(ctx, declaration) || + isConstructSignatureDeclaration(ctx, declaration) || + isMethodSignatureDeclaration(ctx, declaration) + ? declaration + : []); const signatureDeclarations = declarations?.filter(declaration => functionOverloadDeclarationFilter(ctx, declaration, symbol)); diff --git a/src/interpreter/ast/entities/source-file.test.ts b/src/interpreter/ast/entities/source-file.test.ts index 89f19e70..e9292977 100644 --- a/src/interpreter/ast/entities/source-file.test.ts +++ b/src/interpreter/ast/entities/source-file.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable eslint-plugin-typescript/naming-convention */ import { expect, it } from "vitest"; import { EntityKind } from "unwritten:interpreter/enums/entity"; diff --git a/src/interpreter/ast/type.ts b/src/interpreter/ast/type.ts index c1a44aa2..23ab55ac 100644 --- a/src/interpreter/ast/type.ts +++ b/src/interpreter/ast/type.ts @@ -170,10 +170,11 @@ export function getTypeByDeclaration(ctx: InterpreterContext, declaration: Decla } /** * Overrides the type of a type reference with the resolved type. - * @param ctx The interpreter context - * @param resolvedType The resolved type - * @param declaredType The declared type - * @returns The type to use + * + * @param ctx The interpreter context. + * @param resolvedType The resolved type. + * @param declaredType The declared type. + * @returns The type to use. */ export function getTypeByResolvedAndDeclaredType(ctx: InterpreterContext, resolvedType: ResolvedType, declaredType?: DeclaredType): Type { diff --git a/src/interpreter/ast/types/array.test.ts b/src/interpreter/ast/types/array.test.ts index 1e0684d4..49c0d2dd 100644 --- a/src/interpreter/ast/types/array.test.ts +++ b/src/interpreter/ast/types/array.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/array-type */ +/* eslint-disable eslint-plugin-typescript/array-type */ import { assert, describe, expect, it } from "vitest"; diff --git a/src/interpreter/ast/types/array.ts b/src/interpreter/ast/types/array.ts index 0195ca0a..ba492f4f 100644 --- a/src/interpreter/ast/types/array.ts +++ b/src/interpreter/ast/types/array.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/array-type */ +/* eslint-disable eslint-plugin-typescript/array-type */ import { TypeKind } from "unwritten:interpreter/enums/type"; import { withLockedType } from "unwritten:interpreter/utils/ts.js"; import { getIdByTypeNode, getTypeId } from "unwritten:interpreter:ast/shared/id"; diff --git a/src/interpreter/ast/types/tuple.ts b/src/interpreter/ast/types/tuple.ts index 5051e38d..fad0daff 100644 --- a/src/interpreter/ast/types/tuple.ts +++ b/src/interpreter/ast/types/tuple.ts @@ -26,13 +26,13 @@ export function createTupleTypeByTypeReference(ctx: InterpreterContext, typeRefe const type = getTypeByType(ctx, typeArgument); - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition const symbolId = typeArgument.symbol && getSymbolId(ctx, typeArgument.symbol); const typeId = getTypeId(ctx, typeArgument); const elementFlag = typeReference.target.elementFlags[index]; - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition const optional = (elementFlag && elementFlag & ts.ElementFlags.Optional) !== 0; - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition const rest = (elementFlag && elementFlag & ts.ElementFlags.Rest) !== 0; const labelDeclaration = typeReference.target.labeledElementDeclarations?.[index]; const name = labelDeclaration && getNameByDeclaration(ctx, labelDeclaration); diff --git a/src/interpreter/ast/types/unresolved.ts b/src/interpreter/ast/types/unresolved.ts index 47a59479..221a3a0c 100644 --- a/src/interpreter/ast/types/unresolved.ts +++ b/src/interpreter/ast/types/unresolved.ts @@ -16,7 +16,7 @@ export function createUnresolvedType(ctx: InterpreterContext, type: Type): Unres const kind = TypeKind.Unresolved; - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition const symbolId = type.symbol ? getSymbolId(ctx, type.symbol) : undefined; const typeId = getTypeId(ctx, type); const position = getPositionByType(ctx, type); diff --git a/src/interpreter/type-definitions/types.ts b/src/interpreter/type-definitions/types.ts index 85ddf177..8b4236c8 100644 --- a/src/interpreter/type-definitions/types.ts +++ b/src/interpreter/type-definitions/types.ts @@ -197,7 +197,7 @@ export interface TypeReferenceType extends TypeBase { export interface ExpressionType extends TypeBase { instanceType: Type; staticType: Type; - /** @deprecated Expressions should render the type instead of rendering the name */ + /** @deprecated Expressions should render the type instead of rendering the name. */ name?: Name; position?: Position; typeArguments?: Type[]; @@ -234,7 +234,7 @@ export interface CircularType extends TypeBase { symbolId?: ID; } -/** The unresolved type will be used if a type cannot be parsed, or it is excluded from parsing */ +/** The unresolved type will be used if a type cannot be parsed, or it is excluded from parsing. */ export interface UnresolvedType extends TypeBase { name?: Name; position?: Position; diff --git a/src/interpreter/typeguards/types.ts b/src/interpreter/typeguards/types.ts index 583c4df1..e85753fe 100644 --- a/src/interpreter/typeguards/types.ts +++ b/src/interpreter/typeguards/types.ts @@ -87,15 +87,15 @@ export function isEnumType(ctx: InterpreterContext, type: Type): boolean { export function isErrorType(ctx: InterpreterContext, type: Type): boolean { const { ts } = ctx.dependencies; return (type.flags & ts.TypeFlags.Any) !== 0 && - "intrinsicName" in type && type.intrinsicName === "error"; + "intrinsicName" in type && type.intrinsicName === "error"; } export function isFunctionLikeType(ctx: InterpreterContext, type: Type): boolean { const { ts } = ctx.dependencies; return isObjectType(ctx, type) && type.getCallSignatures().length > 0 && - type.getConstructSignatures().length === 0 && - type.getProperties().length === 0; + type.getConstructSignatures().length === 0 && + type.getProperties().length === 0; } export function isGenericType(ctx: InterpreterContext, type: Type): type is GenericType { @@ -217,8 +217,8 @@ export function isTupleTypeReferenceType(ctx: InterpreterContext, type: Type): t export function isType(ctx: InterpreterContext, typeNodeOrSymbolOrDeclarationOrType: Declaration | Symbol | Type | TypeNode): typeNodeOrSymbolOrDeclarationOrType is Type { return !isSymbol(ctx, typeNodeOrSymbolOrDeclarationOrType) && - !isDeclaration(ctx, typeNodeOrSymbolOrDeclarationOrType) && - !isTypeNode(ctx, typeNodeOrSymbolOrDeclarationOrType); + !isDeclaration(ctx, typeNodeOrSymbolOrDeclarationOrType) && + !isTypeNode(ctx, typeNodeOrSymbolOrDeclarationOrType); } export function isTypeLiteralType(ctx: InterpreterContext, type: Type): type is ObjectType { diff --git a/src/interpreter/utils/ts.ts b/src/interpreter/utils/ts.ts index 156707e3..3e04aebd 100644 --- a/src/interpreter/utils/ts.ts +++ b/src/interpreter/utils/ts.ts @@ -50,8 +50,8 @@ export function resolveSymbolInCaseOfImport(ctx: InterpreterContext, symbol: Sym } if(!isExportSpecifierSymbol(ctx, symbol) && - !isImportSpecifierSymbol(ctx, symbol) && - !isImportClauseSymbol(ctx, symbol)){ + !isImportSpecifierSymbol(ctx, symbol) && + !isImportClauseSymbol(ctx, symbol)){ return symbol; } diff --git a/src/platform/logger/node.ts b/src/platform/logger/node.ts index 93288684..97628901 100644 --- a/src/platform/logger/node.ts +++ b/src/platform/logger/node.ts @@ -116,11 +116,11 @@ export namespace logger { const formattedUnwrittenPath = filePath(unwritten); const table = simpleTable({ - // eslint-disable-next-line @typescript-eslint/naming-convention + // eslint-disable-next-line eslint-plugin-typescript/naming-convention "entry points:": formattedEntryPoints, - // eslint-disable-next-line @typescript-eslint/naming-convention + // eslint-disable-next-line eslint-plugin-typescript/naming-convention "tsconfig:": formattedTSConfigPath, - // eslint-disable-next-line @typescript-eslint/naming-convention + // eslint-disable-next-line eslint-plugin-typescript/naming-convention "unwritten:": formattedUnwrittenPath }) .map(row => ` ${row}`); diff --git a/src/platform/path/shared.ts b/src/platform/path/shared.ts index 76e37cbf..faefafc9 100644 --- a/src/platform/path/shared.ts +++ b/src/platform/path/shared.ts @@ -131,7 +131,7 @@ const path = { const [fullDos, dosRoot] = path.match(/^\\?([A-Za-z]:\\|^\\)/) ?? []; const [fullPosix, posixRoot] = path.match(/^\/?(\/)/) ?? []; - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition const root = uncRoot ?? dosRoot ?? posixRoot ?? ""; const fullRoot = fullUnc ?? fullDos ?? fullPosix ?? ""; @@ -246,12 +246,12 @@ const path = { const pathWithCorrectedSeparators = pathWithoutProtocols .replace(new RegExp(`\\${dosSeparator}`, "g"), separator) - .replace(new RegExp(`${posixSeparator}`, "g"), separator); + .replace(new RegExp(posixSeparator, "g"), separator); const { pathWithoutRoot, root } = extractRoot(deps, pathWithCorrectedSeparators); const correctedRoot = root .replace(new RegExp(`\\${dosSeparator}`, "g"), separator) - .replace(new RegExp(`${posixSeparator}`, "g"), separator); + .replace(new RegExp(posixSeparator, "g"), separator); const pathWithNormalizedSeparators = pathWithoutRoot .replace(new RegExp(`\\${dosSeparator}+`, "g"), separator) diff --git a/src/renderer/index.ts b/src/renderer/index.ts index 9e25a6c8..b7f11301 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -39,9 +39,10 @@ export function renderNode(ctx: MarkupRenderContext, node: ASTNode): string { } /** - * Validates that the given object is a valid renderer object - * @param renderer The renderer object to validate - * @throws {Error} If the given object is not a valid renderer object + * Validates that the given object is a valid renderer object. + * + * @param renderer The renderer object to validate. + * @throws {Error} If the given object is not a valid renderer object. */ function validateRenderer(renderer: unknown): asserts renderer is Renderer { assert(isObject(renderer), "Renderer must be an object that implements the `Renderer` interface"); diff --git a/src/renderer/json/type-definitions/config.ts b/src/renderer/json/type-definitions/config.ts index c02709e7..1ddf86bf 100644 --- a/src/renderer/json/type-definitions/config.ts +++ b/src/renderer/json/type-definitions/config.ts @@ -1,9 +1,9 @@ export interface JSONRenderConfig { - /** Whether ids should be included in the output */ + /** Whether ids should be included in the output. */ includeIds?: boolean; - /** Indentation characters */ + /** Indentation characters. */ indentation?: string; } diff --git a/src/renderer/markup/ast-converter/entities/parameter.ts b/src/renderer/markup/ast-converter/entities/parameter.ts index 982900f5..0ec5502e 100644 --- a/src/renderer/markup/ast-converter/entities/parameter.ts +++ b/src/renderer/markup/ast-converter/entities/parameter.ts @@ -154,7 +154,7 @@ function convertParameterEntityForDocumentation(ctx: MarkupRenderContext, parame const description = parameterEntity.description && convertDescriptionForType(ctx, parameterEntity.description); const rest = parameterEntity.rest === true && encapsulate(translate("rest"), renderConfig.tagEncapsulation); const optional = (parameterEntity.optional === true || renderConfig.renderDefaultValuesAsOptional && parameterEntity.initializer) && - encapsulate(translate("optional"), renderConfig.tagEncapsulation); + encapsulate(translate("optional"), renderConfig.tagEncapsulation); const initializer = parameterEntity.initializer && convertInitializerForType(ctx, parameterEntity.initializer); const { inlineType, multilineType } = convertType(ctx, parameterEntity.type); diff --git a/src/renderer/markup/ast-converter/entities/type-alias.ts b/src/renderer/markup/ast-converter/entities/type-alias.ts index b7153d8b..ea3f0834 100644 --- a/src/renderer/markup/ast-converter/entities/type-alias.ts +++ b/src/renderer/markup/ast-converter/entities/type-alias.ts @@ -113,7 +113,7 @@ function convertTypeAliasSignature(ctx: MarkupRenderContext, typeAliasEntity: Ty convertTypeParameterEntitiesForSignature(ctx, typeAliasEntity.typeParameters); const encapsulatedTypeParameters = convertedTypeParameters && - encapsulate(convertedTypeParameters, renderConfig.typeParameterEncapsulation); + encapsulate(convertedTypeParameters, renderConfig.typeParameterEncapsulation); return [ entityPrefixWithContext, diff --git a/src/renderer/markup/ast-converter/entities/type-parameter.ts b/src/renderer/markup/ast-converter/entities/type-parameter.ts index bd4f6d02..1bc3bcbd 100644 --- a/src/renderer/markup/ast-converter/entities/type-parameter.ts +++ b/src/renderer/markup/ast-converter/entities/type-parameter.ts @@ -124,7 +124,7 @@ export function convertTypeParameterEntityForDocumentation(ctx: MarkupRenderCont convertConstraintForType(ctx, typeParameterEntity.constraint); const initializer = typeParameterEntity.initializer && - convertInitializerForType(ctx, typeParameterEntity.initializer); + convertInitializerForType(ctx, typeParameterEntity.initializer); const nameAnchor = !isMarkdownRenderContext(ctx) || Array.isArray(ctx.config.renderConfig[ctx.renderer.name].allowedHTMLTags) && diff --git a/src/renderer/markup/ast-converter/types/object.ts b/src/renderer/markup/ast-converter/types/object.ts index 7b034c32..14e70a13 100644 --- a/src/renderer/markup/ast-converter/types/object.ts +++ b/src/renderer/markup/ast-converter/types/object.ts @@ -63,33 +63,27 @@ export function convertObjectTypeMultiline( ); const convertedCallSignatures = callSignatures.map( - callSignature => - convertSignatureEntityForType(ctx, callSignature) + callSignature => convertSignatureEntityForType(ctx, callSignature) ); const convertedProperties = properties.map( - propertyEntity => - convertPropertyEntityForType(ctx, propertyEntity) + propertyEntity => convertPropertyEntityForType(ctx, propertyEntity) ); const convertedEventProperties = events.map( - eventPropertyEntity => - convertEventPropertyEntityForType(ctx, eventPropertyEntity) + eventPropertyEntity => convertEventPropertyEntityForType(ctx, eventPropertyEntity) ); const convertedMethods = methods.flatMap( - methodEntity => - convertFunctionLikeEntityForType(ctx, methodEntity) + methodEntity => convertFunctionLikeEntityForType(ctx, methodEntity) ); const convertedSetters = setters.flatMap( - setterEntity => - convertFunctionLikeEntityForType(ctx, setterEntity) + setterEntity => convertFunctionLikeEntityForType(ctx, setterEntity) ); const convertedGetters = getters.flatMap( - getterEntity => - convertFunctionLikeEntityForType(ctx, getterEntity) + getterEntity => convertFunctionLikeEntityForType(ctx, getterEntity) ); return createMultilineNode( diff --git a/src/renderer/markup/ast-converter/types/type-reference.test.ts b/src/renderer/markup/ast-converter/types/type-reference.test.ts index 6b037ef0..bcc6e1a6 100644 --- a/src/renderer/markup/ast-converter/types/type-reference.test.ts +++ b/src/renderer/markup/ast-converter/types/type-reference.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable eslint-plugin-typescript/naming-convention */ import { expect, it } from "vitest"; import { createSourceFileEntity } from "unwritten:interpreter/ast/entities/index"; diff --git a/src/renderer/markup/config/default.ts b/src/renderer/markup/config/default.ts index 8dba2eb3..532465f7 100644 --- a/src/renderer/markup/config/default.ts +++ b/src/renderer/markup/config/default.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable eslint-plugin-typescript/naming-convention */ import { EntityKind } from "unwritten:interpreter/enums/entity"; import type { diff --git a/src/renderer/markup/html/ast/list.ts b/src/renderer/markup/html/ast/list.ts index 4ff90491..43f938a5 100644 --- a/src/renderer/markup/html/ast/list.ts +++ b/src/renderer/markup/html/ast/list.ts @@ -100,10 +100,10 @@ function renderListItem(ctx: HTMLRenderContext, item: ASTNode): string { // Render nodes with indentation on a new line if(isListNode(item) || - isMultilineNode(item) || - isTitleNode(item) || - isInlineTitleNode(item) || - isParagraphNode(item)){ + isMultilineNode(item) || + isTitleNode(item) || + isInlineTitleNode(item) || + isParagraphNode(item)){ const renderedStartTag = renderListItemStart(ctx); const renderedItem = withIndentation(ctx, ctx => renderNode(ctx, item)); diff --git a/src/renderer/markup/html/index.ts b/src/renderer/markup/html/index.ts index 3257e95b..ea6f8dd4 100644 --- a/src/renderer/markup/html/index.ts +++ b/src/renderer/markup/html/index.ts @@ -75,7 +75,7 @@ const htmlRenderer: HTMLRenderer = { fileExtension: ".html", name: BuiltInRenderers.HTML, - // eslint-disable-next-line sort-keys/sort-keys-fix + // eslint-disable-next-line eslint-plugin-sort-keys/sort-keys-fix initializeContext: (ctx: HTMLRenderContext) => { ctx.links = []; diff --git a/src/renderer/markup/markdown/ast/list.test.ts b/src/renderer/markup/markdown/ast/list.test.ts index 62b184a7..5e751675 100644 --- a/src/renderer/markup/markdown/ast/list.test.ts +++ b/src/renderer/markup/markdown/ast/list.test.ts @@ -216,37 +216,4 @@ scope("MarkdownRenderer", "ListNode", () => { `); }); - it("should render nested arrays correctly", () => { - const listNode = createListNode([ - ["Item"], - [[" "]], - [[["1"]]] - ]); - expect(renderListNode(ctx, listNode)).toBe(md` - - - Item 1 - - `); - }); - - it("should render nested arrays with lists correctly", () => { - const listNode = createListNode([ - ["Item"], - [[" "]], - [[["1"]]], - [[[[ - createListNode( - "Item 2" - ) - ]]]] - ]); - expect(renderListNode(ctx, listNode)).toBe(md` - - - Item 1 - - - Item 2 - - `); - }); - }); diff --git a/src/renderer/markup/markdown/index.ts b/src/renderer/markup/markdown/index.ts index 02173d70..a1176eb1 100644 --- a/src/renderer/markup/markdown/index.ts +++ b/src/renderer/markup/markdown/index.ts @@ -80,7 +80,7 @@ const markdownRenderer: MarkdownRenderer = { name: BuiltInRenderers.Markdown, - // eslint-disable-next-line sort-keys/sort-keys-fix + // eslint-disable-next-line eslint-plugin-sort-keys/sort-keys-fix initializeContext: (ctx: MarkdownRenderContext) => { ctx.links = []; diff --git a/src/renderer/markup/registry/registry.ts b/src/renderer/markup/registry/registry.ts index 448e9af7..d0bafa27 100644 --- a/src/renderer/markup/registry/registry.ts +++ b/src/renderer/markup/registry/registry.ts @@ -160,7 +160,7 @@ export function isAnchor(input: any): input is AnchorTarget { export function createCurrentSourceFile(ctx: MarkupRenderContext, sourceFileEntity: SourceFileEntity, destination: FilePath): void { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition const index = ctx.links.findIndex(sourceFile => sourceFile.id === sourceFileEntity.symbolId); const sourceFile: SourceFile = { @@ -182,7 +182,7 @@ export function createCurrentSourceFile(ctx: MarkupRenderContext, sourceFileEnti export function setCurrentSourceFile(ctx: MarkupRenderContext, sourceFileEntity: SourceFileEntity): void { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition const index = ctx.links.findIndex(sourceFile => sourceFile.id === sourceFileEntity.symbolId); assert(index !== -1, `Source file ${sourceFileEntity.path} is not registered`); @@ -204,9 +204,7 @@ function findRegisteredAnchorData(ctx: MarkupRenderContext, id: ID | ID[]): { an } for(const [anchorId, linkIds] of sourceFile.links.entries()){ - const index = linkIds.findIndex(storedIds => - storedIds.some(storedId => - ids.includes(storedId))); + const index = linkIds.findIndex(storedIds => storedIds.some(storedId => ids.includes(storedId))); if(index !== -1){ return { anchorId, index, sourceFile }; } diff --git a/src/renderer/markup/typeguards/renderer.ts b/src/renderer/markup/typeguards/renderer.ts index c8e260b4..700f2115 100644 --- a/src/renderer/markup/typeguards/renderer.ts +++ b/src/renderer/markup/typeguards/renderer.ts @@ -22,13 +22,14 @@ import type { export function isAnchorNode(node: ASTNode): node is AnchorNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Anchor; + node.kind === ASTNodeKinds.Anchor; } /** * Checks if a node is a block node. A block node is a node whose children are rendered on separate lines. - * @param node The node to check - * @returns `true` if the node is a block node, `false` otherwise + * + * @param node The node to check. + * @returns `true` if the node is a block node, `false` otherwise. */ export function isBlockNode(node: ASTNode): node is ListNode | MultilineNode | TitleNode { return isListNode(node) || isMultilineNode(node) || isTitleNode(node); @@ -36,71 +37,71 @@ export function isBlockNode(node: ASTNode): node is ListNode | MultilineNode | T export function isBoldNode(node: ASTNode): node is BoldNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Bold; + node.kind === ASTNodeKinds.Bold; } export function isConditionalNode(node: ASTNode): node is ConditionalNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Conditional; + node.kind === ASTNodeKinds.Conditional; } export function isInlineTitleNode(node: ASTNode): node is InlineTitleNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.InlineTitle; + node.kind === ASTNodeKinds.InlineTitle; } export function isItalicNode(node: ASTNode): node is ItalicNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Italic; + node.kind === ASTNodeKinds.Italic; } export function isLinkNode(node: ASTNode): node is LinkNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Link; + node.kind === ASTNodeKinds.Link; } export function isListNode(node: ASTNode): node is ListNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.List; + node.kind === ASTNodeKinds.List; } export function isMultilineNode(node: ASTNode): node is MultilineNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Multiline; + node.kind === ASTNodeKinds.Multiline; } export function isPaddedNode(node: ASTNode): node is PaddedNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Padded; + node.kind === ASTNodeKinds.Padded; } export function isParagraphNode(node: ASTNode): node is ParagraphNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Paragraph; + node.kind === ASTNodeKinds.Paragraph; } export function isSectionNode(node: ASTNode): node is SectionNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Section; + node.kind === ASTNodeKinds.Section; } export function isSmallNode(node: ASTNode): node is SmallNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Small; + node.kind === ASTNodeKinds.Small; } export function isSpanNode(node: ASTNode): node is SpanNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Span; + node.kind === ASTNodeKinds.Span; } export function isStrikethroughNode(node: ASTNode): node is StrikethroughNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Strikethrough; + node.kind === ASTNodeKinds.Strikethrough; } export function isTitleNode(node: ASTNode): node is TitleNode { return !!node && typeof node === "object" && !Array.isArray(node) && - node.kind === ASTNodeKinds.Title; + node.kind === ASTNodeKinds.Title; } diff --git a/src/renderer/markup/types-definitions/config.ts b/src/renderer/markup/types-definitions/config.ts index 8e6f85c5..9bf3b7e4 100644 --- a/src/renderer/markup/types-definitions/config.ts +++ b/src/renderer/markup/types-definitions/config.ts @@ -3,13 +3,13 @@ import type { ExportableEntityKinds } from "unwritten:interpreter/type-definitio export interface MarkupRenderConfig { - /** Indentation characters */ + /** Indentation characters. */ indentation?: string; /** Defines how inline titles should be encapsulated in the rendered output. */ inlineTitleEncapsulation?: Encapsulation | false; - /** Newline character */ + /** Newline character. */ newLine?: "\n" | "\r\n" | "os"; /** Defines how parameters should be encapsulated in the rendered output. */ @@ -29,6 +29,7 @@ export interface MarkupRenderConfig { /** * Defines the order in which entities should be rendered. + * * @example * Class: MyClass instead of just MyClass */ @@ -36,6 +37,7 @@ export interface MarkupRenderConfig { /** * Defines whether the parent name of members should be rendered in the signature. + * * @example * Class.method() instead of method() */ @@ -56,7 +58,7 @@ export interface MarkupRenderConfig { /** Defines how tags like `@beta` or `@deprecated` should be encapsulated in the rendered output. */ tagEncapsulation?: Encapsulation | false; - /** Translations for otherwise hardcoded labels */ + /** Translations for otherwise hardcoded labels. */ translations?: { keyType: string; valueType: string; @@ -142,7 +144,7 @@ export interface MarkupRenderConfig { } export interface MarkdownRenderConfig extends MarkupRenderConfig { - /** Defines which HTML tags are allowed in the rendered output. Will be used in the future to render anchor nodes */ + /** Defines which HTML tags are allowed in the rendered output. Will be used in the future to render anchor nodes. */ allowedHTMLTags?: string[] | false; /** Defines the string that should be used to separate sections in the rendered output. */ diff --git a/src/renderer/markup/utils/translations.test.ts b/src/renderer/markup/utils/translations.test.ts index 9ff59f03..7486d867 100644 --- a/src/renderer/markup/utils/translations.test.ts +++ b/src/renderer/markup/utils/translations.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable eslint-plugin-typescript/naming-convention */ import { expect, it } from "vitest"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; diff --git a/src/renderer/markup/utils/translations.ts b/src/renderer/markup/utils/translations.ts index 62dac3c9..c7006382 100644 --- a/src/renderer/markup/utils/translations.ts +++ b/src/renderer/markup/utils/translations.ts @@ -45,7 +45,7 @@ function translate(ctx: MarkupRenderContext, key: TranslationKeys, options?: Tra translationKey = getTranslationKey(key); } - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Purposefully returning the key + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition -- Purposefully returning the key const translation = translations[translationKey] ?? key; if(options?.capitalize){ diff --git a/src/renderer/markup/utils/types.ts b/src/renderer/markup/utils/types.ts index 21c7f1eb..a586962e 100644 --- a/src/renderer/markup/utils/types.ts +++ b/src/renderer/markup/utils/types.ts @@ -19,18 +19,18 @@ import type { MultilineType, Type } from "unwritten:interpreter/type-definitions export function isMultilineType(type: Type): type is MultilineType { return isArrayType(type) || - isObjectType(type) || - isObjectLiteralType(type) || - isFunctionType(type) || - isTypeLiteralType(type) || - isClassType(type) || - isConditionalType(type) || - isInterfaceType(type) || - isTypeReferenceType(type) || - isMultilineUnionType(type) || - isIntersectionType(type) || - isIndexedAccessType(type) || - isTupleType(type); + isObjectType(type) || + isObjectLiteralType(type) || + isFunctionType(type) || + isTypeLiteralType(type) || + isClassType(type) || + isConditionalType(type) || + isInterfaceType(type) || + isTypeReferenceType(type) || + isMultilineUnionType(type) || + isIntersectionType(type) || + isIndexedAccessType(type) || + isTupleType(type); } export function isMultilineUnionType(type: Type) { diff --git a/src/renderer/utils/heritage.ts b/src/renderer/utils/heritage.ts index 89e12fc4..2c0403bb 100644 --- a/src/renderer/utils/heritage.ts +++ b/src/renderer/utils/heritage.ts @@ -139,7 +139,7 @@ export function extendInterfaceEntitySignaturesWithHeritage { if(isSignatureEntity(entity)){ - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Bug in eslint rule + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition -- Bug in eslint rule result[entity.name ?? key] ??= []; result[entity.name ?? key].push(entity); } else { @@ -153,7 +153,7 @@ export function extendInterfaceEntitySignaturesWithHeritage((result, signatureEntity) => { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Bug in eslint rule + // eslint-disable-next-line eslint-plugin-typescript/no-unnecessary-condition -- Bug in eslint rule result[signatureEntity.name ?? key] ??= []; result[signatureEntity.name ?? key].push(signatureEntity); return result; diff --git a/src/type-definitions/config.ts b/src/type-definitions/config.ts index bb9d0aa4..78ab4199 100644 --- a/src/type-definitions/config.ts +++ b/src/type-definitions/config.ts @@ -12,7 +12,7 @@ export interface BaseConfig { externalTypes?: ExternalTypes; /** Interpreter configuration. */ interpreterConfig?: InterpreterConfig; - /** Output dir */ + /** Output dir. */ outputDir?: string; /** Render configuration. */ renderConfig?: RenderConfig; @@ -21,7 +21,7 @@ export interface BaseConfig { export interface BrowserConfig extends BaseConfig {} export interface NodeConfig extends BaseConfig { - /** Extend another config */ + /** Extend another config. */ extends?: string; } diff --git a/src/type-definitions/options.ts b/src/type-definitions/options.ts index a679f712..383f3b65 100644 --- a/src/type-definitions/options.ts +++ b/src/type-definitions/options.ts @@ -14,9 +14,9 @@ export interface Options { * Defaults to ./docs based on the current working directory. */ output?: string; - /** Silence logging */ + /** Silence logging. */ silent?: boolean; - /** Path to tsconfig.json */ + /** Path to tsconfig.json. */ tsconfig?: ts.CompilerOptions | string; } @@ -36,17 +36,15 @@ export interface APIOptions extends Options { /** * Whether the output should be rendered as HTML, Markdown, JSON or TypeScript. * You can also provide a path to a custom renderer that implements the Renderer interface. - * @defaultValue "markdown" */ renderer?: BuiltInRenderers | Renderer | string; } export interface CLIOptions extends Options { - /** Path to .unwritten.json */ + /** Path to .unwritten.json. */ config?: string; /** * Whether the output should be rendered as HTML or Markdown. - * @defaultValue "markdown" */ renderer?: BuiltInRenderers; } diff --git a/src/type-definitions/platform.ts b/src/type-definitions/platform.ts index 3d7bfdf0..28cf17fe 100644 --- a/src/type-definitions/platform.ts +++ b/src/type-definitions/platform.ts @@ -11,32 +11,32 @@ export interface OS { // process export interface Process { - /** Returns the current working directory */ + /** Returns the current working directory. */ cwd(): string; } // path export interface Path { - /** Resolves the absolute path based on the base path */ + /** Resolves the absolute path based on the base path. */ absolute(to: string): string; absolute(from: string, to: string): string; - /** Returns the directory including a trailing slash */ + /** Returns the directory including a trailing slash. */ getDirectory(path: string): string; /** - * Returns the file extension including the period - * Returns an empty string if the path doesn't contain a file + * Returns the file extension including the period. + * Returns an empty string if the path doesn't contain a file. */ getFileExtension(path: string): string; /** * Returns the file name including the extension by default. - * Returns an empty string if the path doesn't contain a file + * Returns an empty string if the path doesn't contain a file. */ getFileName(path: string, includeExtension?: boolean): string; - /** Joins multiple segments */ + /** Joins multiple segments. */ join(...segments: string[]): string; - /** Strips file protocol prefix and converts windows style paths to posix style paths */ + /** Strips file protocol prefix and converts windows style paths to posix style paths. */ normalize(path: string): string; - /** Returns the relative path from one path to the other */ + /** Returns the relative path from one path to the other. */ relative(from: string, to: string): string; } diff --git a/src/type-definitions/renderer.ts b/src/type-definitions/renderer.ts index 82ad5a13..bc5c9444 100644 --- a/src/type-definitions/renderer.ts +++ b/src/type-definitions/renderer.ts @@ -9,10 +9,10 @@ export interface RenderOutput { } export interface Renderer { - /** The file extension the renderer generates */ + /** The file extension the renderer generates. */ fileExtension: FileExtension; - /** The name of the render extension */ + /** The name of the render extension. */ name: string; - /** The render function */ + /** The render function. */ render(ctx: RenderContext, sourceFileEntities: SourceFileEntity[]): RenderOutput; } diff --git a/src/typeguards/types.ts b/src/typeguards/types.ts index 1b88368e..17a1f980 100644 --- a/src/typeguards/types.ts +++ b/src/typeguards/types.ts @@ -99,9 +99,9 @@ export function isIntersectionType(type: Type): type is IntersectionType { export function isLiteralType(type: Type): type is LiteralType { return isStringLiteralType(type) || - isNumberLiteralType(type) || - isBooleanLiteralType(type) || - isBigIntLiteralType(type); + isNumberLiteralType(type) || + isBooleanLiteralType(type) || + isBigIntLiteralType(type); } export function isMappedType(type: Type): type is MappedType { @@ -126,10 +126,10 @@ export function isNumberType(type: Type): type is NumberType { export function isObjectLikeType(type: Type): type is ObjectLikeTypes { return isObjectType(type) || - isInterfaceType(type) || - isClassType(type) || - isObjectLiteralType(type) || - isTypeLiteralType(type); + isInterfaceType(type) || + isClassType(type) || + isObjectLiteralType(type) || + isTypeLiteralType(type); } export function isObjectLiteralType(type: Type): type is ObjectLiteralType { diff --git a/src/utils/exclude.test.ts b/src/utils/exclude.test.ts index 6fe4d7ef..80607e51 100644 --- a/src/utils/exclude.test.ts +++ b/src/utils/exclude.test.ts @@ -1,5 +1,5 @@ -/* eslint-disable sort-keys/sort-keys-fix */ -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable eslint-plugin-sort-keys/sort-keys-fix */ +/* eslint-disable eslint-plugin-typescript/naming-convention */ import { describe, expect, it } from "vitest"; import { scope } from "unwritten:tests:utils/scope"; diff --git a/src/utils/finder.ts b/src/utils/finder.ts index af1e617b..5f61a2ec 100644 --- a/src/utils/finder.ts +++ b/src/utils/finder.ts @@ -5,6 +5,7 @@ import type { DefaultNodeContext } from "unwritten:type-definitions/context"; /** * Finds a file in a directory or its parent directories. + * * @param ctx The render context. * @param fileName Name or array of names of the file to find. * @param entryPath Entry point for the search to begin. diff --git a/src/utils/general.test.ts b/src/utils/general.test.ts index 9791133c..0a0590c1 100644 --- a/src/utils/general.test.ts +++ b/src/utils/general.test.ts @@ -1,4 +1,4 @@ -/* eslint-disable sort-keys/sort-keys-fix */ +/* eslint-disable eslint-plugin-sort-keys/sort-keys-fix */ import { describe, expect, it } from "vitest"; import { scope } from "unwritten:tests:utils/scope"; diff --git a/src/utils/template.ts b/src/utils/template.ts index 4cdb1670..3566833f 100644 --- a/src/utils/template.ts +++ b/src/utils/template.ts @@ -24,17 +24,15 @@ export function findCommonIndentation(content: string, eol: string = EOL) { } const spaces = lines.map( - line => - line.match(/^[^\S\t\n\r]+\S/) - ? line.match(/^[^\S\t\n\r]*/)?.[0].length ?? 0 - : undefined + line => line.match(/^[^\S\t\n\r]+\S/) + ? line.match(/^[^\S\t\n\r]*/)?.[0].length ?? 0 + : undefined ).filter(space => space !== undefined); const tabs = lines.map( - line => - line.match(/^\t+\S/) - ? line.match(/^\t*/)?.[0].length ?? 0 - : undefined + line => line.match(/^\t+\S/) + ? line.match(/^\t*/)?.[0].length ?? 0 + : undefined ).filter(tab => tab !== undefined); diff --git a/tests/utils/compile.ts b/tests/utils/compile.ts index 6735b9ec..eea8f959 100644 --- a/tests/utils/compile.ts +++ b/tests/utils/compile.ts @@ -64,16 +64,15 @@ export function compile(code: CompilerInput | string, tsconfig?: ts.CompilerOpti getDefaultLibFileName: () => ts.getDefaultLibFilePath(compilerOptions), getDirectories: () => [], getNewLine: () => "\n", - getSourceFile: filePath => - filePath in sourceFiles - ? sourceFiles[filePath] - : ts.createSourceFile( - filePath, - existsSync(filePath) - ? readFileSync(filePath) - : readFileSyncOriginal(filePath), - ts.ScriptTarget.Latest - ), + getSourceFile: filePath => filePath in sourceFiles + ? sourceFiles[filePath] + : ts.createSourceFile( + filePath, + existsSync(filePath) + ? readFileSync(filePath) + : readFileSyncOriginal(filePath), + ts.ScriptTarget.Latest + ), readFile: filePath => { return existsSync(filePath) ? readFileSync(filePath) diff --git a/tests/utils/debug.ts b/tests/utils/debug.ts index bad0c38d..007bbe60 100644 --- a/tests/utils/debug.ts +++ b/tests/utils/debug.ts @@ -9,7 +9,6 @@ export function getEnumFlagNames(enumObj: any, flags: number) { .map(f => { const power = Math.log2(f); if(Number.isInteger(power)){ - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions return `${enumObj[f]} (2 ^ ${power})`; } return enumObj[f]; diff --git a/tests/utils/virtual-fs.ts b/tests/utils/virtual-fs.ts index b5a8fe6d..7fbceb71 100644 --- a/tests/utils/virtual-fs.ts +++ b/tests/utils/virtual-fs.ts @@ -125,9 +125,10 @@ function isFile(object: VirtualFS | string): object is string { } /** - * Get the containing virtual directory of a file by path - * @param path The posix path to the file - * @returns The containing virtual directory of the file + * Get the containing virtual directory of a file by path. + * + * @param path The posix path to the file. + * @returns The containing virtual directory of the file. */ function getContainingDirectoryByPath(path: string) { diff --git a/tsconfig.json b/tsconfig.json index a82af31b..7b1663b8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@schoero/ts-config", + "extends": "@schoero/configs/tsconfig", "compilerOptions": { "baseUrl": ".", "lib": ["ESNext", "DOM"], diff --git a/vite.config.browser.ts b/vite.config.browser.ts index fd36800b..ede70ed8 100644 --- a/vite.config.browser.ts +++ b/vite.config.browser.ts @@ -1,7 +1,7 @@ import dts from "vite-plugin-dts"; import noBundlePlugin from "vite-plugin-no-bundle"; -import { config, defineConfig } from "@schoero/vite-config"; +import { config, defineConfig } from "@schoero/configs/vite"; import type { UserConfig } from "vitest"; diff --git a/vite.config.ts b/vite.config.ts index 23ef0e90..19cc50c6 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,7 +2,7 @@ import shebang from "rollup-plugin-preserve-shebang"; import dts from "vite-plugin-dts"; import noBundlePlugin from "vite-plugin-no-bundle"; -import { config, defineConfig } from "@schoero/vite-config"; +import { config, defineConfig } from "@schoero/configs/vite"; import type { UserConfig } from "vitest"; From 8435e2e61acb58295852cedd2e9ee3e94c4e993c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 20 Dec 2023 18:58:21 +0100 Subject: [PATCH 23/42] fix: add workaround for `id` collisions --- src/renderer/markup/ast-converter/entities/signature.ts | 6 ++++-- src/renderer/markup/ast-converter/types/type-reference.ts | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/renderer/markup/ast-converter/entities/signature.ts b/src/renderer/markup/ast-converter/entities/signature.ts index a74e71ae..4f346e56 100644 --- a/src/renderer/markup/ast-converter/entities/signature.ts +++ b/src/renderer/markup/ast-converter/entities/signature.ts @@ -60,7 +60,8 @@ import type { export function convertSignatureEntityToAnchor(ctx: MarkupRenderContext, signatureEntity: ExplicitSignatureEntity, displayName?: string): AnchorNode { - const id = signatureEntity.declarationId; + // TODO: Workaround collisions with symbol ids + const id = Number.MAX_SAFE_INTEGER - signatureEntity.declarationId; const convertedSignatureForDocumentation = convertSignature(ctx, signatureEntity, "documentation"); const renderedSignatureForDocumentation = renderNode(ctx, convertedSignatureForDocumentation); @@ -94,7 +95,8 @@ export function convertSignatureEntityForTableOfContents(ctx: MarkupRenderContex export function convertSignatureEntityForDocumentation(ctx: MarkupRenderContext, signatureEntity: ExplicitSignatureEntity): ConvertedSignatureEntityForDocumentation { - const declarationId = signatureEntity.declarationId; + // TODO: Workaround collisions with symbol ids + const declarationId = Number.MAX_SAFE_INTEGER - signatureEntity.declarationId; const symbolId = signatureEntity.symbolId; const signature = convertSignature(ctx, signatureEntity, "documentation"); diff --git a/src/renderer/markup/ast-converter/types/type-reference.ts b/src/renderer/markup/ast-converter/types/type-reference.ts index 02c87c12..296e4235 100644 --- a/src/renderer/markup/ast-converter/types/type-reference.ts +++ b/src/renderer/markup/ast-converter/types/type-reference.ts @@ -64,6 +64,8 @@ export function convertTypeReferenceTypeMultiline(ctx: MarkupRenderContext, type const id = isSignatureEntity(typeReferenceType.target) ? typeReferenceType.target.declarationId + ? Number.MAX_SAFE_INTEGER - typeReferenceType.target.declarationId + : undefined : typeReferenceType.target.symbolId; if(!id){ From 5bd5ac2087de6b1c6de18c64ec40be3cbd0fbc3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 20 Dec 2023 18:58:53 +0100 Subject: [PATCH 24/42] chore: simplify eslint typescript parser --- eslint.config.js | 66 ++++++++++------------------------------------- package-lock.json | 11 ++++---- package.json | 2 +- 3 files changed, 20 insertions(+), 59 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 20f21e38..b8a6ccf9 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -3,7 +3,6 @@ import eslintPluginSortExports from "eslint-plugin-sort-exports"; import eslintPluginVitest from "eslint-plugin-vitest"; import eslintPluginTypeScript from "@typescript-eslint/eslint-plugin"; -import eslintParserTypeScript from "@typescript-eslint/parser"; import sharedRules from "@schoero/configs/eslint"; @@ -46,19 +45,13 @@ export default [ { files: ["**/*.ts"], - languageOptions: { - parser: eslintParserTypeScript, - parserOptions: { - project: "./tsconfig.json" - } - }, plugins: { - "eslint-plugin-ts": eslintPluginTypeScript, + "eslint-plugin-typescript": eslintPluginTypeScript, "eslint-plugin-vitest": eslintPluginVitest }, rules: { - "eslint-plugin-ts/no-duplicate-type-constituents": "off", - "eslint-plugin-ts/no-restricted-imports": ["error", { + "eslint-plugin-typescript/no-duplicate-type-constituents": "off", + "eslint-plugin-typescript/no-restricted-imports": ["error", { patterns: [ ...indexImports, ...dependencyInjection @@ -69,9 +62,6 @@ export default [ }, { files: ["schemas/renderer/config.json"], - languageOptions: { - parser: eslintPluginJsonc - }, plugins: { "eslint-plugin-jsonc": eslintPluginJsonc }, @@ -96,17 +86,11 @@ export default [ files: [ "**/platform/**/browser.ts" ], - languageOptions: { - parser: eslintParserTypeScript, - parserOptions: { - project: "./tsconfig.json" - } - }, plugins: { - "eslint-plugin-ts": eslintPluginTypeScript + "eslint-plugin-typescript": eslintPluginTypeScript }, rules: { - "eslint-plugin-ts/no-restricted-imports": ["error", { + "eslint-plugin-typescript/no-restricted-imports": ["error", { patterns: [ { allowTypeImports: true, @@ -122,17 +106,11 @@ export default [ files: [ "**/platform/**/node.ts" ], - languageOptions: { - parser: eslintParserTypeScript, - parserOptions: { - project: "./tsconfig.json" - } - }, plugins: { - "eslint-plugin-ts": eslintPluginTypeScript + "eslint-plugin-typescript": eslintPluginTypeScript }, rules: { - "eslint-plugin-ts/no-restricted-imports": ["error", { + "eslint-plugin-typescript/no-restricted-imports": ["error", { patterns: [ { allowTypeImports: true, @@ -151,17 +129,11 @@ export default [ "**/*.test-d.ts", "**/tests/**/*.ts" ], - languageOptions: { - parser: eslintParserTypeScript, - parserOptions: { - project: "./tsconfig.json" - } - }, plugins: { - "eslint-plugin-ts": eslintPluginTypeScript + "eslint-plugin-typescript": eslintPluginTypeScript }, rules: { - "eslint-plugin-ts/no-restricted-imports": ["error", { + "eslint-plugin-typescript/no-restricted-imports": ["error", { patterns: [ { allowTypeImports: false, @@ -197,17 +169,11 @@ export default [ files: [ "**/renderer/markup/html/**/*.ts" ], - languageOptions: { - parser: eslintParserTypeScript, - parserOptions: { - project: "./tsconfig.json" - } - }, plugins: { - "eslint-plugin-ts": eslintPluginTypeScript + "eslint-plugin-typescript": eslintPluginTypeScript }, rules: { - "eslint-plugin-ts/no-restricted-imports": ["error", { + "eslint-plugin-typescript/no-restricted-imports": ["error", { patterns: [ ...dependencyInjection, ...indexImports, @@ -228,17 +194,11 @@ export default [ files: [ "**/renderer/markup/markdown/**/*.ts" ], - languageOptions: { - parser: eslintParserTypeScript, - parserOptions: { - project: "./tsconfig.json" - } - }, plugins: { - "eslint-plugin-ts": eslintPluginTypeScript + "eslint-plugin-typescript": eslintPluginTypeScript }, rules: { - "eslint-plugin-ts/no-restricted-imports": ["error", { + "eslint-plugin-typescript/no-restricted-imports": ["error", { patterns: [ ...dependencyInjection, ...indexImports, diff --git a/package-lock.json b/package-lock.json index a5141338..b55d6a7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "unwritten": "lib/node/bin/index.js" }, "devDependencies": { - "@schoero/configs": "^0.0.0-beta.2", + "@schoero/configs": "^0.0.0-beta.5", "@types/minimatch": "^5.1.2", "@types/node": "^20.10.5", "changelogen": "^0.5.5", @@ -1591,9 +1591,9 @@ } }, "node_modules/@schoero/configs": { - "version": "0.0.0-beta.2", - "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-0.0.0-beta.2.tgz", - "integrity": "sha512-Hm3nOoXQO4+xr6nxyO6NGTwekhuqCdM670M2A8YdcJw1tWW5TVAY7PP3tqQObq8s/x+P28PZ9Zralr3CvhItJA==", + "version": "0.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-0.0.0-beta.5.tgz", + "integrity": "sha512-4ngbKQVdiWIoxD+C6VEKa8kxsWuToc5g2vXvt4YwW3/IjWhsZCV2jmIXJChXIB+JBfaePoGig9u0DtDPaINqPg==", "dev": true, "dependencies": { "@cspell/dict-bash": "^4.1.3", @@ -9965,7 +9965,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/thenify": { "version": "3.3.1", diff --git a/package.json b/package.json index 0810921c..9fc684c0 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "typescript": "^5.3.3" }, "devDependencies": { - "@schoero/configs": "^0.0.0-beta.2", + "@schoero/configs": "^0.0.0-beta.5", "@types/minimatch": "^5.1.2", "@types/node": "^20.10.5", "changelogen": "^0.5.5", From 820a821f6ca59badb0f221184a68a8870fb82a18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Thu, 21 Dec 2023 07:56:11 +0100 Subject: [PATCH 25/42] feat(logger): display paths from user directory if shorter --- src/platform/logger/node.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/platform/logger/node.ts b/src/platform/logger/node.ts index 97628901..82d92a44 100644 --- a/src/platform/logger/node.ts +++ b/src/platform/logger/node.ts @@ -1,6 +1,6 @@ import { stdout } from "node:process"; -import { lineEndings } from "unwritten:platform/os/node"; +import { homeDirectory, lineEndings } from "unwritten:platform/os/node"; import { name, version } from "unwritten:utils/package-json.entry"; import type { WriteStream } from "node:tty"; @@ -153,14 +153,19 @@ export namespace logger { export function filePath(path: string): string { + const cwd = process.cwd(); + const home = homeDirectory(); if(!path.startsWith(cwd)){ return path; } const relativePath = path.replace(cwd, ""); - return `${fgGray}${cwd}${reset}${relativePath}`; + const simplifiedPath = cwd.replace(new RegExp(`^${home}`), "~"); + + return `${fgGray}${simplifiedPath}${reset}${relativePath}`; + } // Colors From acf9ed0aeed3286db62ac5bc30c4e7d8d34d8d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Thu, 21 Dec 2023 08:25:46 +0100 Subject: [PATCH 26/42] feat: add verbose logging --- README.md | 3 + package-lock.json | 664 +++++++++++++++++++++++-------- package.json | 4 +- src/api/browser.entry.ts | 23 +- src/api/node.entry.ts | 23 +- src/bin/index.ts | 1 + src/interpreter/ast/symbol.ts | 10 + src/platform/logger/browser.ts | 15 +- src/platform/logger/node.ts | 16 +- src/platform/process/browser.ts | 8 +- src/platform/process/node.ts | 8 +- src/renderer/index.ts | 5 +- src/type-definitions/options.ts | 2 + src/type-definitions/platform.ts | 8 +- 14 files changed, 609 insertions(+), 181 deletions(-) diff --git a/README.md b/README.md index 60d91e86..60c66366 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,9 @@ unwritten [options] --silent # Disables any console output. -s +--debug # Enables verbose console output. +-d + --version # Returns the installed unwritten -v # version. ``` diff --git a/package-lock.json b/package-lock.json index b55d6a7f..419c40f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "unwritten", - "version": "0.2.8-beta.6", + "version": "0.2.8-beta.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "unwritten", - "version": "0.2.8-beta.6", + "version": "0.2.8-beta.7", "license": "MIT", "dependencies": { "cac": "^6.7.14", @@ -21,7 +21,7 @@ "@types/minimatch": "^5.1.2", "@types/node": "^20.10.5", "changelogen": "^0.5.5", - "cspell": "^8.1.3", + "cspell": "^8.2.1", "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", @@ -197,9 +197,9 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.1.3.tgz", - "integrity": "sha512-TwLyL2bCtetXGhMudjOIgFPAsWF2UkT0E7T+DAZG8aUBfHoC/eco/sTmR6UJVpi6Crjs0YOQkFUBGrQ2pxJPcA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.2.1.tgz", + "integrity": "sha512-XQ69Ac84KnYB8/dgUCzBoL2wB5rTSSfzJqGq74locr6m1G9/oY/yI0OVvN5Uxn+bRH5Qrt7PdNVl6jnTBWxuDA==", "dev": true, "dependencies": { "@cspell/dict-ada": "^4.0.2", @@ -235,16 +235,16 @@ "@cspell/dict-lua": "^4.0.3", "@cspell/dict-makefile": "^1.0.0", "@cspell/dict-node": "^4.0.3", - "@cspell/dict-npm": "^5.0.13", + "@cspell/dict-npm": "^5.0.14", "@cspell/dict-php": "^4.0.4", - "@cspell/dict-powershell": "^5.0.2", + "@cspell/dict-powershell": "^5.0.3", "@cspell/dict-public-licenses": "^2.0.5", "@cspell/dict-python": "^4.1.10", "@cspell/dict-r": "^2.0.1", "@cspell/dict-ruby": "^5.0.1", "@cspell/dict-rust": "^4.0.1", "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.3.11", + "@cspell/dict-software-terms": "^3.3.13", "@cspell/dict-sql": "^2.1.2", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", @@ -256,30 +256,30 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.1.3.tgz", - "integrity": "sha512-9iOU0Y733XuF0cqC7xwzJkOKFdJ65rYGnHFdUHzr5lxEqeG9X/jhlkzyHuGGOhPxkUeFP1x9XoLhXo1isMDbKA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.2.1.tgz", + "integrity": "sha512-tDE8KE/8HBv6ujiLEP0fOAnZYct0FrRP75BPigGbHVDHdtQt8HdlJzwM5CfU73qOu1GLF3OcPiYxZhrgsHDKVQ==", "dev": true, "dependencies": { - "@cspell/cspell-types": "8.1.3" + "@cspell/cspell-types": "8.2.1" }, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-pipe": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.1.3.tgz", - "integrity": "sha512-/dcnyLDeyFuoX4seZv7VsDQyRpt3ZY0vjZiDpqFul8hPydM8czLyRPPMD6Za+Gqg6dZmh9+VsQWK52hVsqc0QA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.2.1.tgz", + "integrity": "sha512-NmeZmRhxjDoICErai/u0LfeIFd8REa4WgGdCokW+WN7uySoHp6H90iDoeXkSlRlnBh5vJy6BXOsDK4yC8LUTkg==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-resolver": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.1.3.tgz", - "integrity": "sha512-bGyJYqkHRilqhyKGL/NvODN5U+UvCuQo7kxgt0i3Vd7m7k6XYLsSLYZ4w6r1S5IQ/ybU8I5lh6/6fNqKwvo9eg==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.2.1.tgz", + "integrity": "sha512-J4WMNSr/YIJDKQVRr0zoWsJcuhU73xoe5weGZQF6SWzJweSz7Y5FWjbtCqnSWY8SDRgz/uv0+aiSB2dREfZCRw==", "dev": true, "dependencies": { "global-directory": "^4.0.1" @@ -289,18 +289,18 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.1.3.tgz", - "integrity": "sha512-8E5ZveQKneNfK+cuFMy0y6tDsho71UPppEHNoLZsEFDbIxDdtQcAfs0pk4nwEzxPBt+dBB+Yl8KExQ6x2FAYQw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.2.1.tgz", + "integrity": "sha512-dcMaBZ6DuddZw1lTiquHK6wb3nSbEymyD1tIV745CDihNjsvE0HyV33WNPX5aIvJYJSd2Yl9i1GakoFOPt/TxA==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-types": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.1.3.tgz", - "integrity": "sha512-j14FENj+DzWu6JjzTl+0X5/OJv9AEckpEp6Jaw9YglxirrBBzTkZGfoLePe/AWo/MlIYp0asl92C1UHEjgz+FQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.2.1.tgz", + "integrity": "sha512-NQxwEJW90mDHmGrANHjiGsD0lrC2m0OaKGGxxm31acuoHsnzsptmSTt98+ZkVEXcMup8IwwS3nZrDAFsNoarUQ==", "dev": true, "engines": { "node": ">=18" @@ -628,9 +628,9 @@ "dev": true }, "node_modules/@cspell/dynamic-import": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.1.3.tgz", - "integrity": "sha512-/lXFLa92v4oOcZ2PbdRpOqBvnqWlYmGaV7iCy8+QhIWlMdzi+7tBX3LVTm9Jzvt/rJseVHQQ6RvfTsSmhbUMFQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.2.1.tgz", + "integrity": "sha512-vzuYWzuau8GmBkkAHP1qA4MN5M6QLuFUdQPw00Q0l/cYCG0u4aSOV/dsuqywJHuLqI9aFeULU2t6dnVo/r1b1w==", "dev": true, "dependencies": { "import-meta-resolve": "^4.0.0" @@ -640,9 +640,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.1.3.tgz", - "integrity": "sha512-GhWyximzk8tumo0zhrDV3+nFYiETYefiTBWAEVbXJMibuvitFocVZwddqN85J0UdZ2M7q6tvBleEaI9ME/16gA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.2.1.tgz", + "integrity": "sha512-Ze7ktY+Gk3OlstJn9Q/doLNQ8iXazyiUhiFbaffB8uKTmA6/IR4C0rn+te+mkm+45ex1r12buM/Abz9Mi7GaWw==", "dev": true, "engines": { "node": ">=18" @@ -1181,6 +1181,23 @@ "dev": true, "peer": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -1345,6 +1362,16 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@rollup/pluginutils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", @@ -1591,9 +1618,9 @@ } }, "node_modules/@schoero/configs": { - "version": "0.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-0.0.0-beta.5.tgz", - "integrity": "sha512-4ngbKQVdiWIoxD+C6VEKa8kxsWuToc5g2vXvt4YwW3/IjWhsZCV2jmIXJChXIB+JBfaePoGig9u0DtDPaINqPg==", + "version": "0.0.0-beta.10", + "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-0.0.0-beta.10.tgz", + "integrity": "sha512-dcbHKNadnJEkmfzcpFGj4POdQRZXupFonxhfks4eB8nDQVynNngPSxgoK+52OPYSmXjVE7mh5gghp3xXStok+Q==", "dev": true, "dependencies": { "@cspell/dict-bash": "^4.1.3", @@ -1619,7 +1646,7 @@ "@stylistic/eslint-plugin-ts": "^1.5.1", "@typescript-eslint/eslint-plugin": "^6.15.0", "@typescript-eslint/parser": "^6.15.0", - "cspell-lib": "^8.1.3", + "cspell-lib": "^8.2.1", "eslint-plugin-import": "npm:eslint-plugin-i@2.28.1", "eslint-plugin-import-newlines": "^1.3.4", "eslint-plugin-jsdoc": "^46.9.1", @@ -2941,25 +2968,25 @@ } }, "node_modules/cspell": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.1.3.tgz", - "integrity": "sha512-SU4Su6002bPoJYaiMeNV4wwLoS8TwaOgIwaTxhys3GDbJIxZV6CrDgwksezHcG7TZrC4yrveDVsdpnrzmQ7T5Q==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.2.1.tgz", + "integrity": "sha512-LIn3AiEtin1pLmC3mALuBlbFliAGXaH/laLg/TKCaNXsmQrDTdgxRCz5OizoP7T8dvd/AXF9XI7Omwq+VYl2ag==", "dev": true, "dependencies": { - "@cspell/cspell-json-reporter": "8.1.3", - "@cspell/cspell-pipe": "8.1.3", - "@cspell/cspell-types": "8.1.3", - "@cspell/dynamic-import": "8.1.3", + "@cspell/cspell-json-reporter": "8.2.1", + "@cspell/cspell-pipe": "8.2.1", + "@cspell/cspell-types": "8.2.1", + "@cspell/dynamic-import": "8.2.1", "chalk": "^5.3.0", "chalk-template": "^1.1.0", "commander": "^11.1.0", - "cspell-gitignore": "8.1.3", - "cspell-glob": "8.1.3", - "cspell-io": "8.1.3", - "cspell-lib": "8.1.3", + "cspell-gitignore": "8.2.1", + "cspell-glob": "8.2.1", + "cspell-io": "8.2.1", + "cspell-lib": "8.2.1", "fast-glob": "^3.3.2", "fast-json-stable-stringify": "^2.1.0", - "file-entry-cache": "^7.0.2", + "file-entry-cache": "^8.0.0", "get-stdin": "^9.0.0", "semver": "^7.5.4", "strip-ansi": "^7.1.0", @@ -2977,12 +3004,12 @@ } }, "node_modules/cspell-config-lib": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.1.3.tgz", - "integrity": "sha512-whzJYxcxos3vnywn0alCFZ+Myc0K/C62pUurfOGhgvIba7ArmlXhNRaL2r5noBxWARtpBOtzz3vrzSBK7Lq6jg==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.2.1.tgz", + "integrity": "sha512-ydcsW9klmnrEvhsiFIR5VYphSuvdiFYS/v0XMrns624t2IlbD1dqgmohv2Z4tIAXVuwyKWKdSYvA++7WwLqC2g==", "dev": true, "dependencies": { - "@cspell/cspell-types": "8.1.3", + "@cspell/cspell-types": "8.2.1", "comment-json": "^4.2.3", "yaml": "^2.3.4" }, @@ -2991,14 +3018,14 @@ } }, "node_modules/cspell-dictionary": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.1.3.tgz", - "integrity": "sha512-nkRQDPNnA6tw+hJFBqq26M0nK306q5rtyv/AUIWa8ZHhQkwzACnpMSpuJA7/DV5GVvPKltMK5M4A6vgfpoaFHw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.2.1.tgz", + "integrity": "sha512-UwFl0vWI7z1JFFpaMs8EK6SEuUmy330Cq4/smebdMAWeBwmnBQQCyXp9Y2Aai0HSS8gIPdbzXcajEVX4JGbuIg==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.1.3", - "@cspell/cspell-types": "8.1.3", - "cspell-trie-lib": "8.1.3", + "@cspell/cspell-pipe": "8.2.1", + "@cspell/cspell-types": "8.2.1", + "cspell-trie-lib": "8.2.1", "fast-equals": "^5.0.1", "gensequence": "^6.0.0" }, @@ -3007,12 +3034,12 @@ } }, "node_modules/cspell-gitignore": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.1.3.tgz", - "integrity": "sha512-NHx5lg44eCKb6yJmUPOCz4prcuYowzoo5GJ5hOcCfbk7ZEBWV1E2/kDRuQMOK2W0y1hNGr45CSxO3UxWJlYg7w==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.2.1.tgz", + "integrity": "sha512-SWJmiUxttWBkOGHkKZ1RUoQ4XmO9ObZWKfgUm9L9dwnNZea9oyx1/BMAgzUkPtWPassv9FIxmERmxF19wYFxFw==", "dev": true, "dependencies": { - "cspell-glob": "8.1.3", + "cspell-glob": "8.2.1", "find-up-simple": "^1.0.0" }, "bin": { @@ -3023,9 +3050,9 @@ } }, "node_modules/cspell-glob": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.1.3.tgz", - "integrity": "sha512-Likr7UVUXBpthQnM5r6yao3X0YBNRbJ9AHWXTC2RJfzwZOFKF+pKPfeo3FU+Px8My96M4RC2bVMbrbZUwN5NJw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.2.1.tgz", + "integrity": "sha512-B/yN4r0CScislNmnUPtM03K0IDkYUSpHdbBrCuOwLaZsqvSvWnkfUNMSreyHduiMotrhzn0VOnTy++ws+aI2+g==", "dev": true, "dependencies": { "micromatch": "^4.0.5" @@ -3035,13 +3062,13 @@ } }, "node_modules/cspell-grammar": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.1.3.tgz", - "integrity": "sha512-dTOwNq6a5wcVzOsi4xY5/tq2r2w/+wLVU+WfyySTsPe66Rjqx/QceFl4OinImks/ZMKF7Zyjd3WGyQ5TcSsJFQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.2.1.tgz", + "integrity": "sha512-NsxcjewV2peZhsaQuYSplLwUMTdj6YEVe/UA3tl9IRF7PnUyI+DLuwTYUy1FeXLOLM0lVd/tUSDQnZsj+08VaQ==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.1.3", - "@cspell/cspell-types": "8.1.3" + "@cspell/cspell-pipe": "8.2.1", + "@cspell/cspell-types": "8.2.1" }, "bin": { "cspell-grammar": "bin.mjs" @@ -3051,38 +3078,38 @@ } }, "node_modules/cspell-io": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.1.3.tgz", - "integrity": "sha512-QkcFeYd79oIl7PgSqFSZyvwXnZQhXmdCI733n54IN2+iXDcf7W0mwptxoC/cE19RkEwAwEFLG81UAy6L/BXI6A==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.2.1.tgz", + "integrity": "sha512-3/SKJLa1hrmJTs/NAVxvcTwZTjOckbRVIaPz6TIYU0LrIB/9fQGIQqzLIiinpvqPSyU9ObDvrWibfqqUJmIRIw==", "dev": true, "dependencies": { - "@cspell/cspell-service-bus": "8.1.3" + "@cspell/cspell-service-bus": "8.2.1" }, "engines": { "node": ">=18" } }, "node_modules/cspell-lib": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.1.3.tgz", - "integrity": "sha512-Kk8bpHVkDZO4MEiPkDvRf/LgJ0h5mufbKLTWModq6k0Ca8EkZ/qgQlZ0ve0rIivbleSqebuWjpJHKDM+IHmzHA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.2.1.tgz", + "integrity": "sha512-MYyEaVzR3FWEfUQnrHqN/ebRFrF5yG6Owa6BCd9CRY34ef+HEv4Tbjxm8U5AZp/Qx5hqxvYqlEQdylEdsi4WrQ==", "dev": true, "dependencies": { - "@cspell/cspell-bundled-dicts": "8.1.3", - "@cspell/cspell-pipe": "8.1.3", - "@cspell/cspell-resolver": "8.1.3", - "@cspell/cspell-types": "8.1.3", - "@cspell/dynamic-import": "8.1.3", - "@cspell/strong-weak-map": "8.1.3", + "@cspell/cspell-bundled-dicts": "8.2.1", + "@cspell/cspell-pipe": "8.2.1", + "@cspell/cspell-resolver": "8.2.1", + "@cspell/cspell-types": "8.2.1", + "@cspell/dynamic-import": "8.2.1", + "@cspell/strong-weak-map": "8.2.1", "clear-module": "^4.1.2", "comment-json": "^4.2.3", "configstore": "^6.0.0", - "cspell-config-lib": "8.1.3", - "cspell-dictionary": "8.1.3", - "cspell-glob": "8.1.3", - "cspell-grammar": "8.1.3", - "cspell-io": "8.1.3", - "cspell-trie-lib": "8.1.3", + "cspell-config-lib": "8.2.1", + "cspell-dictionary": "8.2.1", + "cspell-glob": "8.2.1", + "cspell-grammar": "8.2.1", + "cspell-io": "8.2.1", + "cspell-trie-lib": "8.2.1", "fast-equals": "^5.0.1", "gensequence": "^6.0.0", "import-fresh": "^3.3.0", @@ -3095,13 +3122,13 @@ } }, "node_modules/cspell-trie-lib": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.1.3.tgz", - "integrity": "sha512-EDSYU9MCtzPSJDrfvDrTKmc0rzl50Ehjg1c5rUCqn33p2LCRe/G8hW0FxXe0mxrZxrMO2b8l0PVSGlrCXCQ8RQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.2.1.tgz", + "integrity": "sha512-mUXzYtaK9yA6YK7f8NB2YR49Oj9FoC2pAIjMnvNCYRrkHNYShxibrDsfSlr8vzn8xPCsyhLx4004QEUQtScy4w==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.1.3", - "@cspell/cspell-types": "8.1.3", + "@cspell/cspell-pipe": "8.2.1", + "@cspell/cspell-types": "8.2.1", "gensequence": "^6.0.0" }, "engines": { @@ -3346,6 +3373,18 @@ "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/entities": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", @@ -3678,9 +3717,9 @@ } }, "node_modules/eslint-plugin-readable-tailwind": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-0.1.0.tgz", - "integrity": "sha512-XwbTsf1uHmM3U7od74ScNzcKQy2FqhyyckB37TY8TpWI/13mq+LwRKO0UJ90tXPbcK8HaaFntjuLsYIm1QDnYQ==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-0.1.2.tgz", + "integrity": "sha512-PeQ8Iz4sgzGP6IcCh0ZE5sCKX6pyLUxJp/kjcEIz6oI3irR187Ec/KKvzs1W+ENyG1N2v36GjfXFIh1y7Q6cUg==", "dev": true, "peerDependencies": { "eslint": ">=7", @@ -3987,6 +4026,42 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/eslint/node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "peer": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/eslint/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -4023,6 +4098,22 @@ "node": "*" } }, + "node_modules/eslint/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/eslint/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4204,15 +4295,15 @@ } }, "node_modules/file-entry-cache": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", - "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.2.0" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -4266,17 +4357,17 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz", + "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4", + "rimraf": "^5.0.5" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { @@ -4285,6 +4376,22 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -4425,20 +4532,22 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4456,28 +4565,6 @@ "node": ">= 6" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/global-directory": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", @@ -4825,6 +4912,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -4944,6 +5040,24 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jiti": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", @@ -5196,15 +5310,12 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": "14 || >=16.14" } }, "node_modules/magic-string": { @@ -5464,12 +5575,12 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/minizlib": { @@ -8820,6 +8931,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8839,6 +8951,22 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -9359,15 +9487,18 @@ } }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "glob": "^10.3.7" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9586,6 +9717,18 @@ "node": ">=10" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -9728,6 +9871,65 @@ "node": ">=0.6.19" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -9743,6 +9945,28 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -9961,6 +10185,15 @@ "node": ">=10" } }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -10653,6 +10886,127 @@ "node": ">=8" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 9fc684c0..96bb8982 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "0.2.8-beta.6", + "version": "0.2.8-beta.7", "type": "module", "name": "unwritten", "description": "unwritten is a cli tool that auto generates documentation from your JavaScript or TypeScript project by utilizing TSDoc or JSDoc comments.", @@ -72,7 +72,7 @@ "@types/minimatch": "^5.1.2", "@types/node": "^20.10.5", "changelogen": "^0.5.5", - "cspell": "^8.1.3", + "cspell": "^8.2.1", "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", diff --git a/src/api/browser.entry.ts b/src/api/browser.entry.ts index bc2cde4f..d52753a4 100644 --- a/src/api/browser.entry.ts +++ b/src/api/browser.entry.ts @@ -20,8 +20,13 @@ import type { RenderOutput } from "unwritten:type-definitions/renderer"; export async function unwritten(program: Program, options?: BrowserAPIOptions): Promise { - // Dependencies + // logger const { logger } = options?.silent ? { logger: undefined } : await import("unwritten:platform/logger/browser.js"); + + if(options?.debug){ + process.env.DEBUG = "true"; + } + const defaultContext = createDefaultContext({ logger, os, @@ -30,21 +35,23 @@ export async function unwritten(program: Program, options?: BrowserAPIOptions): ts } as const); - // Compile + // compile const checker = program.getTypeChecker(); const diagnostics = program.getSemanticDiagnostics(); - void reportCompilerDiagnostics(defaultContext, diagnostics); + reportCompilerDiagnostics(defaultContext, diagnostics); + + // renderer + const renderer = await getRenderer(defaultContext, options?.renderer); - // Parse + // interpret const config = await createConfig(defaultContext, options?.config); const interpreterContext = createInterpreterContext(defaultContext, checker, config); const entryFileSymbol = getEntryFileSymbolsFromProgram(interpreterContext, program); - const parsedSymbols = interpret(interpreterContext, entryFileSymbol); + const interpretedFiles = interpret(interpreterContext, entryFileSymbol); - // Render - const renderer = await getRenderer(options?.renderer); + // render const renderContext = createRenderContext(defaultContext, renderer, config); - const renderedSymbols = renderer.render(renderContext, parsedSymbols); + const renderedSymbols = renderer.render(renderContext, interpretedFiles); return renderedSymbols; diff --git a/src/api/node.entry.ts b/src/api/node.entry.ts index 8f27f9e5..9bd8333b 100644 --- a/src/api/node.entry.ts +++ b/src/api/node.entry.ts @@ -20,8 +20,13 @@ export async function unwritten(entryFilePaths: string[] | string, options?: API entryFilePaths = Array.isArray(entryFilePaths) ? entryFilePaths : [entryFilePaths]; - // Dependencies + // logger const { logger } = options?.silent ? { logger: undefined } : await import("unwritten:platform/logger/node.js"); + + if(options?.debug){ + process.env.DEBUG = "true"; + } + const defaultContext = createDefaultContext({ fs, logger, @@ -31,28 +36,30 @@ export async function unwritten(entryFilePaths: string[] | string, options?: API ts }); - // Compile + // compile const { checker, program } = compile(defaultContext, entryFilePaths, options?.tsconfig); - // Config + // config const config = await createConfig(defaultContext, options?.config, options?.output); - // Interpret + // renderer + const renderer = await getRenderer(defaultContext, options?.renderer); + + // interpret const interpreterContext = createInterpreterContext(defaultContext, checker, config); const entryFileSymbols = getEntryFileSymbolsFromProgram(interpreterContext, program); const interpretedFiles = interpret(interpreterContext, entryFileSymbols); - // Render - const renderer = await getRenderer(options?.renderer); + // render const renderContext = createRenderContext(defaultContext, renderer, config); const renderedFiles = renderer.render(renderContext, interpretedFiles); - // Create output directory + // create output directory if(existsSync(config.outputDir) === false){ mkdirSync(config.outputDir, { recursive: true }); } - // Write output to files + // write output to files const outputPaths = Object.entries(renderedFiles).map(([filePath, renderedContent]) => { writeFileSync(filePath, renderedContent); return filePath; diff --git a/src/bin/index.ts b/src/bin/index.ts index 20382ea5..7da65a20 100644 --- a/src/bin/index.ts +++ b/src/bin/index.ts @@ -28,6 +28,7 @@ cli.command("<...entryFiles>", "Generate documentation") .option("-o, --output ", "Specify the output directory. Defaults to ./docs/api based on the current working directory.") .option("-r, --renderer ", "Choose the format of the rendered output.", { default: BuiltInRenderers.Markdown }) .option("-s, --silent", "Disables any console output.", { default: false }) + .option("-d, --debug", "Enables verbose logging.", { default: false }) .action(generate); cli.parse(); diff --git a/src/interpreter/ast/symbol.ts b/src/interpreter/ast/symbol.ts index e1a027d1..d1ea05f3 100644 --- a/src/interpreter/ast/symbol.ts +++ b/src/interpreter/ast/symbol.ts @@ -52,8 +52,18 @@ import type { InterpreterContext } from "unwritten:type-definitions/context"; export function interpret(ctx: InterpreterContext, sourceFileSymbols: Symbol[]): SourceFileEntity[] { return sourceFileSymbols.map(sourceFileSymbol => { + assert(isSourceFileSymbol(ctx, sourceFileSymbol), "Source file symbol is not a source file symbol"); + + const { logger } = ctx.dependencies; + const position = getPositionBySymbol(ctx, sourceFileSymbol); + + if(logger && position){ + logger.debug(`Interpreter: interpreting source file ${logger.filePath(position.file)}`); + } + return createSourceFileEntity(ctx, sourceFileSymbol); + }); } diff --git a/src/platform/logger/browser.ts b/src/platform/logger/browser.ts index 9fe07c20..78526854 100644 --- a/src/platform/logger/browser.ts +++ b/src/platform/logger/browser.ts @@ -1,4 +1,5 @@ import { lineEndings } from "unwritten:platform/os/browser"; +import { env } from "unwritten:platform/process/browser"; import type { DefaultContext } from "unwritten:type-definitions/context"; import type { Logger } from "unwritten:type-definitions/platform"; @@ -10,6 +11,13 @@ export module logger { console.log(message); } + export function debug(message: string): void { + if(env.DEBUG === undefined){ + return; + } + console.debug(message); + } + export function warn(message: string): void; export function warn(title: string, message: string[]): void; export function warn(title: string, label: string, message: string[]): void; @@ -43,20 +51,25 @@ export module logger { const entryPoints = stats?.entryPoints ?? ctx.dependencies.logger!._stats.entryPoints; const tsconfig = stats?.tsconfig ?? ctx.dependencies.logger!._stats.tsconfig; const unwritten = stats?.unwritten ?? ctx.dependencies.logger!._stats.unwritten; + const renderer = stats?.renderer ?? ctx.dependencies.logger!._stats.renderer; ctx.dependencies.logger!._stats.entryPoints = entryPoints; ctx.dependencies.logger!._stats.tsconfig = tsconfig; ctx.dependencies.logger!._stats.unwritten = unwritten; + ctx.dependencies.logger!._stats.renderer = renderer; - if(!entryPoints || !tsconfig || !unwritten){ + if(!entryPoints || !tsconfig || !unwritten || !renderer){ return; } const formattedEntryPoints = entryPoints.map(entryFilePath => filePath(entryFilePath)); const formattedTSConfigPath = filePath(tsconfig); const formattedUnwrittenPath = filePath(unwritten); + const formattedRenderer = renderer; console.log({ + renderer: formattedRenderer, + // eslint-disable-next-line eslint-plugin-sort-keys/sort-keys-fix entryPoints: formattedEntryPoints, tsconfig: formattedTSConfigPath, unwritten: formattedUnwrittenPath diff --git a/src/platform/logger/node.ts b/src/platform/logger/node.ts index 82d92a44..d1ad65ae 100644 --- a/src/platform/logger/node.ts +++ b/src/platform/logger/node.ts @@ -1,6 +1,7 @@ import { stdout } from "node:process"; import { homeDirectory, lineEndings } from "unwritten:platform/os/node"; +import { env } from "unwritten:platform/process/node"; import { name, version } from "unwritten:utils/package-json.entry"; import type { WriteStream } from "node:tty"; @@ -78,6 +79,14 @@ export namespace logger { } + export function debug(message: string): void { + if(env.DEBUG === undefined){ + return; + } + println(`${reset}${message}${reset}`); + } + + export function warn(message: string): void; export function warn(title: string, body: string[]): void; export function warn(title: string, badge: string, body: string[]): void; @@ -102,21 +111,26 @@ export namespace logger { const entryPoints = stats?.entryPoints ?? ctx.dependencies.logger!._stats.entryPoints; const tsconfig = stats?.tsconfig ?? ctx.dependencies.logger!._stats.tsconfig; const unwritten = stats?.unwritten ?? ctx.dependencies.logger!._stats.unwritten; + const renderer = stats?.renderer ?? ctx.dependencies.logger!._stats.renderer; ctx.dependencies.logger!._stats.entryPoints = entryPoints; ctx.dependencies.logger!._stats.tsconfig = tsconfig; ctx.dependencies.logger!._stats.unwritten = unwritten; + ctx.dependencies.logger!._stats.renderer = renderer; - if(!entryPoints || !tsconfig || !unwritten){ + if(!entryPoints || !tsconfig || !unwritten || !renderer){ return; } const formattedEntryPoints = entryPoints.map(entryFilePath => filePath(entryFilePath)); const formattedTSConfigPath = filePath(tsconfig); const formattedUnwrittenPath = filePath(unwritten); + const formattedRenderer = filePath(renderer); const table = simpleTable({ // eslint-disable-next-line eslint-plugin-typescript/naming-convention + "renderer:": formattedRenderer, + // eslint-disable-next-line eslint-plugin-typescript/naming-convention, eslint-plugin-sort-keys/sort-keys-fix "entry points:": formattedEntryPoints, // eslint-disable-next-line eslint-plugin-typescript/naming-convention "tsconfig:": formattedTSConfigPath, diff --git a/src/platform/process/browser.ts b/src/platform/process/browser.ts index 82372645..062d83a1 100644 --- a/src/platform/process/browser.ts +++ b/src/platform/process/browser.ts @@ -2,11 +2,15 @@ import type { Process } from "unwritten:type-definitions/platform"; const process: Process = { - cwd: () => "/" + cwd: () => "/", + env: { + DEBUG: undefined + } }; export const { - cwd + cwd, + env } = process; export default process; diff --git a/src/platform/process/node.ts b/src/platform/process/node.ts index 9e2c7640..7c3761af 100644 --- a/src/platform/process/node.ts +++ b/src/platform/process/node.ts @@ -1,5 +1,5 @@ import { sep } from "node:path"; -import { cwd as nodeCWD } from "node:process"; +import { cwd as nodeCWD, env as nodeENV } from "node:process"; import type { Process } from "unwritten:type-definitions/platform"; @@ -10,11 +10,15 @@ const process: Process = { return currentWorkingDirectory.endsWith(sep) ? currentWorkingDirectory : `${currentWorkingDirectory}${sep}`; + }, + env: { + DEBUG: nodeENV.DEBUG } }; export const { - cwd + cwd, + env } = process; export default process; diff --git a/src/renderer/index.ts b/src/renderer/index.ts index b7f11301..a894a517 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -5,10 +5,11 @@ import { assert } from "unwritten:utils:general"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; +import type { DefaultContext } from "unwritten:type-definitions/context"; import type { Renderer } from "unwritten:type-definitions/renderer"; -export async function getRenderer(renderer?: Renderer | string): Promise { +export async function getRenderer(ctx: DefaultContext, renderer?: Renderer | string): Promise { if(renderer === undefined || renderer === BuiltInRenderers.Markdown || renderer === "md"){ const { default: markdownRenderer } = await import("unwritten:renderer:markup/markdown/index.js"); @@ -26,6 +27,8 @@ export async function getRenderer(renderer?: Renderer | string): Promise Date: Mon, 1 Jan 2024 15:57:51 +0100 Subject: [PATCH 27/42] refactor: return object name if available --- src/renderer/markup/ast-converter/types/object.ts | 8 ++++++++ .../markup/ast-converter/types/type-reference.test.ts | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/renderer/markup/ast-converter/types/object.ts b/src/renderer/markup/ast-converter/types/object.ts index 14e70a13..e798beaf 100644 --- a/src/renderer/markup/ast-converter/types/object.ts +++ b/src/renderer/markup/ast-converter/types/object.ts @@ -102,6 +102,10 @@ function getObjectTypeName(ctx: MarkupRenderContext, objectLikeType: ObjectLikeT const translate = getTranslator(ctx); + if(objectLikeType.name && !isAnonymousObjectType(ctx, objectLikeType)){ + return objectLikeType.name; + } + switch (objectLikeType.kind){ case TypeKind.Class: return translate("class"); @@ -118,3 +122,7 @@ function getObjectTypeName(ctx: MarkupRenderContext, objectLikeType: ObjectLikeT } } + +function isAnonymousObjectType(ctx: MarkupRenderContext, objectLikeType: ObjectLikeTypes) { + return !objectLikeType.name || objectLikeType.name.startsWith("__"); +} diff --git a/src/renderer/markup/ast-converter/types/type-reference.test.ts b/src/renderer/markup/ast-converter/types/type-reference.test.ts index bcc6e1a6..07320437 100644 --- a/src/renderer/markup/ast-converter/types/type-reference.test.ts +++ b/src/renderer/markup/ast-converter/types/type-reference.test.ts @@ -54,7 +54,7 @@ scope("MarkupRenderer", TypeKind.TypeReference, () => { it("should render the referenced type, if the target symbol is not exported", () => { expect(extractTypeOfRenderedContent("PrimitiveType", content).inlineType).toContain("string"); - expect(extractTypeOfRenderedContent("ObjectType", content).inlineType).toContain("interface"); + expect(extractTypeOfRenderedContent("ObjectType", content).inlineType).toContain("Interface"); expect(extractTypeOfRenderedContent("ObjectType", content).multilineType).toContain("prop"); expect(extractTypeOfRenderedContent("ObjectType", content).multilineType).toContain("string"); }); From 56d6e070872665c863cae5503e1f090304f6dcea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Tue, 2 Jan 2024 19:49:20 +0100 Subject: [PATCH 28/42] fix: end position sometimes off by 1 --- src/compiler/shared.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/compiler/shared.ts b/src/compiler/shared.ts index 15585ae1..c62b2355 100644 --- a/src/compiler/shared.ts +++ b/src/compiler/shared.ts @@ -52,7 +52,6 @@ export function reportCompilerDiagnostics(ctx: DefaultContext, diagnostics: read if(diagnostic.file){ const startLocation: LineAndCharacter = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!); - const endLocation: LineAndCharacter = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start! + diagnostic.length!); const filePath = `${logger.gray("at")} ${logger.filePath(`${diagnostic.file.fileName}:${startLocation.line + 1}:${startLocation.character + 1}`)}`; @@ -72,11 +71,13 @@ export function reportCompilerDiagnostics(ctx: DefaultContext, diagnostics: read const lineIndicator = `${lineNumber.toString().padStart(maxLineNumberLength)}| `; const tabCount = linesAround[index].substring(0, startLocation.character + 1).match(/\t/g)?.length ?? 0; const tabCorrectedStartCharacter = startLocation.character - tabCount + tabCount * 4; - const tabCorrectedEndCharacter = endLocation.character - tabCount + tabCount * 4; + const tabCorrectedEndCharacter = tabCorrectedStartCharacter + diagnostic.length!; const tabCorrectedLine = line.replace(/\t/g, " "); acc.push(logger.gray(`${lineIndicator}${tabCorrectedLine}`)); + if(tabCorrectedEndCharacter < tabCorrectedStartCharacter){debugger;} + if(lineNumber === startLocation.line + 1){ acc.push(logger.yellow(`${ " ".repeat(lineIndicator.length + tabCorrectedStartCharacter - commonIndentation) From b15f1efd5ea3e1716e9a98497850a596210d597a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Fri, 12 Jan 2024 18:40:47 +0100 Subject: [PATCH 29/42] feat: add syntax highlighting for errors and warnings --- package-lock.json | 1565 ++++++++++++++---------------- package.json | 15 +- src/compiler/shared.ts | 59 +- src/platform/logger/browser.ts | 20 + src/platform/logger/node.ts | 80 +- src/type-definitions/platform.ts | 7 +- 6 files changed, 887 insertions(+), 859 deletions(-) diff --git a/package-lock.json b/package-lock.json index 419c40f1..e8ac71e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,19 +17,20 @@ "unwritten": "lib/node/bin/index.js" }, "devDependencies": { - "@schoero/configs": "^0.0.0-beta.5", + "@schoero/configs": "^0.0.0-beta.26", "@types/minimatch": "^5.1.2", - "@types/node": "^20.10.5", + "@types/node": "^20.11.0", "changelogen": "^0.5.5", - "cspell": "^8.2.1", + "cspell": "^8.3.2", "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", + "tinyhighlight": "^0.3.2", "ts-json-schema-generator": "^1.5.0", - "vite": "^5.0.10", - "vite-plugin-dts": "^3.6.4", + "vite": "^5.0.11", + "vite-plugin-dts": "^3.7.0", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.1.0" + "vitest": "^1.2.0" }, "engines": { "node": ">=16.9.0" @@ -197,17 +198,17 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.2.1.tgz", - "integrity": "sha512-XQ69Ac84KnYB8/dgUCzBoL2wB5rTSSfzJqGq74locr6m1G9/oY/yI0OVvN5Uxn+bRH5Qrt7PdNVl6jnTBWxuDA==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.3.2.tgz", + "integrity": "sha512-3ubOgz1/MDixJbq//0rQ2omB3cSdhVJDviERZeiREGz4HOq84aaK1Fqbw5SjNZHvhpoq+AYXm6kJbIAH8YhKgg==", "dev": true, "dependencies": { "@cspell/dict-ada": "^4.0.2", - "@cspell/dict-aws": "^4.0.0", + "@cspell/dict-aws": "^4.0.1", "@cspell/dict-bash": "^4.1.3", - "@cspell/dict-companies": "^3.0.28", + "@cspell/dict-companies": "^3.0.29", "@cspell/dict-cpp": "^5.0.10", - "@cspell/dict-cryptocurrencies": "^4.0.0", + "@cspell/dict-cryptocurrencies": "^5.0.0", "@cspell/dict-csharp": "^4.0.2", "@cspell/dict-css": "^4.0.12", "@cspell/dict-dart": "^2.0.3", @@ -215,15 +216,15 @@ "@cspell/dict-docker": "^1.1.7", "@cspell/dict-dotnet": "^5.0.0", "@cspell/dict-elixir": "^4.0.3", - "@cspell/dict-en_us": "^4.3.12", - "@cspell/dict-en-common-misspellings": "^1.0.2", + "@cspell/dict-en_us": "^4.3.13", + "@cspell/dict-en-common-misspellings": "^2.0.0", "@cspell/dict-en-gb": "1.1.33", "@cspell/dict-filetypes": "^3.0.3", "@cspell/dict-fonts": "^4.0.0", "@cspell/dict-fsharp": "^1.0.1", "@cspell/dict-fullstack": "^3.1.5", "@cspell/dict-gaming-terms": "^1.0.4", - "@cspell/dict-git": "^2.0.0", + "@cspell/dict-git": "^3.0.0", "@cspell/dict-golang": "^6.0.5", "@cspell/dict-haskell": "^4.0.1", "@cspell/dict-html": "^4.0.5", @@ -236,16 +237,16 @@ "@cspell/dict-makefile": "^1.0.0", "@cspell/dict-node": "^4.0.3", "@cspell/dict-npm": "^5.0.14", - "@cspell/dict-php": "^4.0.4", + "@cspell/dict-php": "^4.0.5", "@cspell/dict-powershell": "^5.0.3", "@cspell/dict-public-licenses": "^2.0.5", - "@cspell/dict-python": "^4.1.10", + "@cspell/dict-python": "^4.1.11", "@cspell/dict-r": "^2.0.1", - "@cspell/dict-ruby": "^5.0.1", + "@cspell/dict-ruby": "^5.0.2", "@cspell/dict-rust": "^4.0.1", "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.3.13", - "@cspell/dict-sql": "^2.1.2", + "@cspell/dict-software-terms": "^3.3.15", + "@cspell/dict-sql": "^2.1.3", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", "@cspell/dict-typescript": "^3.1.2", @@ -256,30 +257,30 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.2.1.tgz", - "integrity": "sha512-tDE8KE/8HBv6ujiLEP0fOAnZYct0FrRP75BPigGbHVDHdtQt8HdlJzwM5CfU73qOu1GLF3OcPiYxZhrgsHDKVQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.3.2.tgz", + "integrity": "sha512-gHSz4jXMJPcxx+lOGfXhHuoyenAWQ8PVA/atHFrWYKo1LzKTbpkEkrsDnlX8QNJubc3EMH63Uy+lOIaFDVyHiQ==", "dev": true, "dependencies": { - "@cspell/cspell-types": "8.2.1" + "@cspell/cspell-types": "8.3.2" }, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-pipe": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.2.1.tgz", - "integrity": "sha512-NmeZmRhxjDoICErai/u0LfeIFd8REa4WgGdCokW+WN7uySoHp6H90iDoeXkSlRlnBh5vJy6BXOsDK4yC8LUTkg==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.3.2.tgz", + "integrity": "sha512-GZmDwvQGOjQi3IjD4k9xXeVTDANczksOsgVKb3v2QZk9mR4Qj8c6Uarjd4AgSiIhu/wBliJfzr5rWFJu4X2VfQ==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-resolver": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.2.1.tgz", - "integrity": "sha512-J4WMNSr/YIJDKQVRr0zoWsJcuhU73xoe5weGZQF6SWzJweSz7Y5FWjbtCqnSWY8SDRgz/uv0+aiSB2dREfZCRw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.3.2.tgz", + "integrity": "sha512-w2Tmb95bzdEz9L4W5qvsP5raZbyEzKL7N2ksU/+yh8NEJcTuExmAl/nMnb3aIk7m2b+kPHnMOcJuwfUMLmyv4A==", "dev": true, "dependencies": { "global-directory": "^4.0.1" @@ -289,18 +290,18 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.2.1.tgz", - "integrity": "sha512-dcMaBZ6DuddZw1lTiquHK6wb3nSbEymyD1tIV745CDihNjsvE0HyV33WNPX5aIvJYJSd2Yl9i1GakoFOPt/TxA==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.3.2.tgz", + "integrity": "sha512-skTHNyVi74//W/O+f4IauDhm6twA9S2whkylonsIzPxEl4Pn3y2ZEMXNki/MWUwZfDIzKKSxlcREH61g7zCvhg==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-types": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.2.1.tgz", - "integrity": "sha512-NQxwEJW90mDHmGrANHjiGsD0lrC2m0OaKGGxxm31acuoHsnzsptmSTt98+ZkVEXcMup8IwwS3nZrDAFsNoarUQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.3.2.tgz", + "integrity": "sha512-qS/gWd9ItOrN6ZX5pwC9lJjnBoyiAyhxYq0GUXuV892LQvwrBmECGk6KhsA1lPW7JJS7o57YTAS1jmXnmXMEpg==", "dev": true, "engines": { "node": ">=18" @@ -313,9 +314,9 @@ "dev": true }, "node_modules/@cspell/dict-aws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.0.tgz", - "integrity": "sha512-1YkCMWuna/EGIDN/zKkW+j98/55mxigftrSFgsehXhPld+ZMJM5J9UuBA88YfL7+/ETvBdd7mwW6IwWsC+/ltQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.1.tgz", + "integrity": "sha512-NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q==", "dev": true }, "node_modules/@cspell/dict-bash": { @@ -325,21 +326,21 @@ "dev": true }, "node_modules/@cspell/dict-companies": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.28.tgz", - "integrity": "sha512-UinHkMYB/1pUkLKm1PGIm9PBFYxeAa6YvbB1Rq/RAAlrs0WDwiDBr3BAYdxydukG1IqqwT5z9WtU+8D/yV/5lw==", + "version": "3.0.29", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.29.tgz", + "integrity": "sha512-F/8XnkqjU7jmSDAcD3LSSX+WxCVUWPssqlO4lzGMIK3MNIUt+d48eSIt3pFAIB/Z9y0ojoLHUtWX9HJ1ZtGrXQ==", "dev": true }, "node_modules/@cspell/dict-cpp": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.10.tgz", - "integrity": "sha512-WCRuDrkFdpmeIR6uXQYKU9loMQKNFS4bUhtHdv5fu4qVyJSh3k/kgmtTm1h1BDTj8EwPRc/RGxS+9Z3b2mnabA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.1.tgz", + "integrity": "sha512-Qy9fNsR/5RcQ6G85gDKFjvzh0AdgAilLQeSXPtqY21Fx1kCjUqdVVJYMmHUREgcxH6ptAxtn5knTWU4PIhQtOw==", "dev": true }, "node_modules/@cspell/dict-cryptocurrencies": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-4.0.0.tgz", - "integrity": "sha512-EiZp91ATyRxTmauIQfOX9adLYCunKjHEh092rrM7o2eMXP9n7zpXAL9BK7LviL+LbB8VDOm21q+s83cKrrRrsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.0.tgz", + "integrity": "sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==", "dev": true }, "node_modules/@cspell/dict-csharp": { @@ -397,15 +398,15 @@ "dev": true }, "node_modules/@cspell/dict-en_us": { - "version": "4.3.12", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.12.tgz", - "integrity": "sha512-1bsUxFjgxF30FTzcU5uvmCvH3lyqVKR9dbwsJhomBlUM97f0edrd6590SiYBXDm7ruE68m3lJd4vs0Ev2D6FtQ==", + "version": "4.3.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.13.tgz", + "integrity": "sha512-T6lHiGCjloGNE0d8CogF+efJZPCAP8zdzn+KnlI0Bmjaz5nvG2LTX7CXl1zkOl1nYYev0FuIk9WJ9YPVRjcFbQ==", "dev": true }, "node_modules/@cspell/dict-en-common-misspellings": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz", - "integrity": "sha512-jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.0.tgz", + "integrity": "sha512-NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw==", "dev": true }, "node_modules/@cspell/dict-en-gb": { @@ -451,9 +452,9 @@ "dev": true }, "node_modules/@cspell/dict-git": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz", - "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-3.0.0.tgz", + "integrity": "sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==", "dev": true }, "node_modules/@cspell/dict-golang": { @@ -541,9 +542,9 @@ "dev": true }, "node_modules/@cspell/dict-php": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.4.tgz", - "integrity": "sha512-fRlLV730fJbulDsLIouZxXoxHt3KIH6hcLFwxaupHL+iTXDg0lo7neRpbqD5MScr/J3idEr7i9G8XWzIikKFug==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.5.tgz", + "integrity": "sha512-9r8ao7Z/mH9Z8pSB7yLtyvcCJWw+/MnQpj7xGVYzIV7V2ZWDRjXZAMgteHMJ37m8oYz64q5d4tiipD300QSetQ==", "dev": true }, "node_modules/@cspell/dict-powershell": { @@ -559,9 +560,9 @@ "dev": true }, "node_modules/@cspell/dict-python": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.10.tgz", - "integrity": "sha512-ErF/Ohcu6Xk4QVNzFgo8p7CxkxvAKAmFszvso41qOOhu8CVpB35ikBRpGVDw9gsCUtZzi15Yl0izi4do6WcLkA==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.11.tgz", + "integrity": "sha512-XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg==", "dev": true, "dependencies": { "@cspell/dict-data-science": "^1.0.11" @@ -574,15 +575,15 @@ "dev": true }, "node_modules/@cspell/dict-ruby": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.1.tgz", - "integrity": "sha512-rruTm7Emhty/BSYavSm8ZxRuVw0OBqzJkwIFXcV0cX7To8D1qbmS9HFHRuRg8IL11+/nJvtdDz+lMFBSmPUagQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.2.tgz", + "integrity": "sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==", "dev": true }, "node_modules/@cspell/dict-rust": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.1.tgz", - "integrity": "sha512-xJSSzHDK2z6lSVaOmMxl3PTOtfoffaxMo7fTcbZUF+SCJzfKbO6vnN9TCGX2sx1RHFDz66Js6goz6SAZQdOwaw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.2.tgz", + "integrity": "sha512-RhziKDrklzOntxAbY3AvNR58wnFGIo3YS8+dNeLY36GFuWOvXDHFStYw5Pod4f/VXbO/+1tXtywCC4zWfB2p1w==", "dev": true }, "node_modules/@cspell/dict-scala": { @@ -592,15 +593,15 @@ "dev": true }, "node_modules/@cspell/dict-software-terms": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.13.tgz", - "integrity": "sha512-+TeFLJnzsxJqovY4ZNbNivQ5KgIZex1f/w62WmfpKNl4yWaexVEdVp6vi38TR+uyYagkJASaBnjlbVW3aVTpFg==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.16.tgz", + "integrity": "sha512-ixorEP80LGxAU+ODVSn/CYIDjV0XAlZ2VrBu7CT+PwUFJ7h8o3JX1ywKB4qnt0hHru3JjWFtBoBThmZdrXnREQ==", "dev": true }, "node_modules/@cspell/dict-sql": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.2.tgz", - "integrity": "sha512-Pi0hAcvsSGtZZeyyAN1VfGtQJbrXos5x2QjJU0niAQKhmITSOrXU/1II1Gogk+FYDjWyV9wP2De0U2f7EWs6oQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.3.tgz", + "integrity": "sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ==", "dev": true }, "node_modules/@cspell/dict-svelte": { @@ -628,9 +629,9 @@ "dev": true }, "node_modules/@cspell/dynamic-import": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.2.1.tgz", - "integrity": "sha512-vzuYWzuau8GmBkkAHP1qA4MN5M6QLuFUdQPw00Q0l/cYCG0u4aSOV/dsuqywJHuLqI9aFeULU2t6dnVo/r1b1w==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.3.2.tgz", + "integrity": "sha512-4t0xM5luA3yQhar2xWvYK4wQSDB2r0u8XkpzzJqd57MnJXd7uIAxI0awGUrDXukadRaCo0tDIlMUBemH48SNVg==", "dev": true, "dependencies": { "import-meta-resolve": "^4.0.0" @@ -640,9 +641,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.2.1.tgz", - "integrity": "sha512-Ze7ktY+Gk3OlstJn9Q/doLNQ8iXazyiUhiFbaffB8uKTmA6/IR4C0rn+te+mkm+45ex1r12buM/Abz9Mi7GaWw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.3.2.tgz", + "integrity": "sha512-Mte/2000ap278kRYOUhiGWI7MNr1+A7WSWJmlcdP4CAH5SO20sZI3/cyZLjJJEyapdhK5vaP1L5J9sUcVDHd3A==", "dev": true, "engines": { "node": ">=18" @@ -663,9 +664,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz", - "integrity": "sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", + "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", "cpu": [ "ppc64" ], @@ -679,9 +680,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.10.tgz", - "integrity": "sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", + "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", "cpu": [ "arm" ], @@ -695,9 +696,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz", - "integrity": "sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", + "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", "cpu": [ "arm64" ], @@ -711,9 +712,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.10.tgz", - "integrity": "sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", + "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", "cpu": [ "x64" ], @@ -727,9 +728,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz", - "integrity": "sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", + "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", "cpu": [ "arm64" ], @@ -743,9 +744,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz", - "integrity": "sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", + "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", "cpu": [ "x64" ], @@ -759,9 +760,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz", - "integrity": "sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", + "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", "cpu": [ "arm64" ], @@ -775,9 +776,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz", - "integrity": "sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", + "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", "cpu": [ "x64" ], @@ -791,9 +792,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz", - "integrity": "sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", + "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", "cpu": [ "arm" ], @@ -807,9 +808,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz", - "integrity": "sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", + "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", "cpu": [ "arm64" ], @@ -823,9 +824,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz", - "integrity": "sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", + "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", "cpu": [ "ia32" ], @@ -839,9 +840,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz", - "integrity": "sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", + "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", "cpu": [ "loong64" ], @@ -855,9 +856,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz", - "integrity": "sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", + "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", "cpu": [ "mips64el" ], @@ -871,9 +872,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz", - "integrity": "sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", + "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", "cpu": [ "ppc64" ], @@ -887,9 +888,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz", - "integrity": "sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", + "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", "cpu": [ "riscv64" ], @@ -903,9 +904,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz", - "integrity": "sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", + "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", "cpu": [ "s390x" ], @@ -919,9 +920,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz", - "integrity": "sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", + "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", "cpu": [ "x64" ], @@ -935,9 +936,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz", - "integrity": "sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", + "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", "cpu": [ "x64" ], @@ -951,9 +952,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz", - "integrity": "sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", + "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", "cpu": [ "x64" ], @@ -967,9 +968,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz", - "integrity": "sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", + "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", "cpu": [ "x64" ], @@ -983,9 +984,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz", - "integrity": "sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", + "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", "cpu": [ "arm64" ], @@ -999,9 +1000,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz", - "integrity": "sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", + "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", "cpu": [ "ia32" ], @@ -1015,9 +1016,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz", - "integrity": "sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", + "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", "cpu": [ "x64" ], @@ -1059,7 +1060,6 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1083,7 +1083,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1094,7 +1093,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1122,14 +1120,14 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -1175,9 +1173,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true, "peer": true }, @@ -1252,9 +1250,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", + "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", "dev": true, "peer": true, "dependencies": { @@ -1395,9 +1393,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.1.tgz", - "integrity": "sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz", + "integrity": "sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==", "cpu": [ "arm" ], @@ -1408,9 +1406,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.1.tgz", - "integrity": "sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz", + "integrity": "sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==", "cpu": [ "arm64" ], @@ -1421,9 +1419,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.1.tgz", - "integrity": "sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz", + "integrity": "sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==", "cpu": [ "arm64" ], @@ -1434,9 +1432,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.1.tgz", - "integrity": "sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz", + "integrity": "sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==", "cpu": [ "x64" ], @@ -1447,9 +1445,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.1.tgz", - "integrity": "sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz", + "integrity": "sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==", "cpu": [ "arm" ], @@ -1460,9 +1458,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.1.tgz", - "integrity": "sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz", + "integrity": "sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==", "cpu": [ "arm64" ], @@ -1473,9 +1471,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.1.tgz", - "integrity": "sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz", + "integrity": "sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==", "cpu": [ "arm64" ], @@ -1486,9 +1484,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.1.tgz", - "integrity": "sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz", + "integrity": "sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==", "cpu": [ "riscv64" ], @@ -1499,9 +1497,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz", - "integrity": "sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", + "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", "cpu": [ "x64" ], @@ -1512,9 +1510,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.1.tgz", - "integrity": "sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz", + "integrity": "sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==", "cpu": [ "x64" ], @@ -1525,9 +1523,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.1.tgz", - "integrity": "sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz", + "integrity": "sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==", "cpu": [ "arm64" ], @@ -1538,9 +1536,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.1.tgz", - "integrity": "sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz", + "integrity": "sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==", "cpu": [ "ia32" ], @@ -1551,9 +1549,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz", - "integrity": "sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz", + "integrity": "sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==", "cpu": [ "x64" ], @@ -1618,16 +1616,16 @@ } }, "node_modules/@schoero/configs": { - "version": "0.0.0-beta.10", - "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-0.0.0-beta.10.tgz", - "integrity": "sha512-dcbHKNadnJEkmfzcpFGj4POdQRZXupFonxhfks4eB8nDQVynNngPSxgoK+52OPYSmXjVE7mh5gghp3xXStok+Q==", + "version": "0.0.0-beta.26", + "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-0.0.0-beta.26.tgz", + "integrity": "sha512-CXO38u+NyGAwVds8az6Gep2EQhAgwYN5ZCkHDq9iVtRFO7VSyGyKI6/uEKVUzwgPC6RSoaz9KmemetJ3kgLc4Q==", "dev": true, "dependencies": { "@cspell/dict-bash": "^4.1.3", - "@cspell/dict-companies": "^3.0.28", + "@cspell/dict-companies": "^3.0.29", "@cspell/dict-css": "^4.0.12", "@cspell/dict-de-ch": "^1.2.0", - "@cspell/dict-en_us": "^4.3.12", + "@cspell/dict-en_us": "^4.3.13", "@cspell/dict-fr-fr": "^2.2.2", "@cspell/dict-fullstack": "^3.1.5", "@cspell/dict-html": "^4.0.5", @@ -1638,33 +1636,33 @@ "@cspell/dict-node": "^4.0.3", "@cspell/dict-npm": "^5.0.14", "@cspell/dict-public-licenses": "^2.0.5", - "@cspell/dict-software-terms": "^3.3.13", + "@cspell/dict-software-terms": "^3.3.15", "@cspell/dict-typescript": "^3.1.2", "@stylistic/eslint-plugin-js": "^1.5.1", "@stylistic/eslint-plugin-jsx": "^1.5.1", "@stylistic/eslint-plugin-plus": "^1.5.1", "@stylistic/eslint-plugin-ts": "^1.5.1", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", - "cspell-lib": "^8.2.1", - "eslint-plugin-import": "npm:eslint-plugin-i@2.28.1", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", + "cspell-lib": "^8.3.1", + "eslint-plugin-import": "npm:eslint-plugin-i@2.29.1", "eslint-plugin-import-newlines": "^1.3.4", - "eslint-plugin-jsdoc": "^46.9.1", + "eslint-plugin-jsdoc": "^47.0.2", "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-markdown": "^3.0.1", - "eslint-plugin-readable-tailwind": "^0.1.0", + "eslint-plugin-readable-tailwind": "^0.3.0", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-sort-destructure-keys": "^1.5.0", "eslint-plugin-sort-keys": "^2.3.5", - "eslint-plugin-tailwindcss": "^3.13.0", + "eslint-plugin-tailwindcss": "^3.13.1", "eslint-plugin-typescript-sort-keys": "^3.1.0", - "eslint-plugin-unicorn": "^49.0.0", + "eslint-plugin-unicorn": "^50.0.1", "eslint-plugin-unused-imports": "^3.0.0", - "eslint-plugin-vitest": "^0.3.18", + "eslint-plugin-vitest": "^0.3.20", "eslint-plugin-yml": "^1.11.0", "markdownlint-cli2": "^0.11.0", "npm": "^10.2.5", - "vite-tsconfig-paths": "^4.2.2", + "vite-tsconfig-paths": "^4.2.3", "vitest-github-actions-reporter": "^0.11.1" } }, @@ -1687,12 +1685,12 @@ } }, "node_modules/@stylistic/eslint-plugin-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.5.1.tgz", - "integrity": "sha512-iZF0rF+uOhAmOJYOJx1Yvmm3CZ1uz9n0SRd9dpBYHA3QAvfABUORh9LADWwZCigjHJkp2QbCZelGFJGwGz7Siw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.5.3.tgz", + "integrity": "sha512-XlKnm82fD7Sw9kQ6FFigE0tobvptNBXZWsdfoKmUyK7bNxHsAHOFT8zJGY3j3MjZ0Fe7rLTu86hX/vOl0bRRdQ==", "dev": true, "dependencies": { - "acorn": "^8.11.2", + "acorn": "^8.11.3", "escape-string-regexp": "^4.0.0", "eslint-visitor-keys": "^3.4.3", "espree": "^9.6.1" @@ -1705,12 +1703,12 @@ } }, "node_modules/@stylistic/eslint-plugin-jsx": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-1.5.1.tgz", - "integrity": "sha512-JuX+jsbVdpZ6EZXkbxYr9ERcGc0ndSMFgOuwEPHhOWPZ+7F8JP/nzpBjrRf7dUPMX7ezTYLZ2a3KRGRNme6rWQ==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-1.5.3.tgz", + "integrity": "sha512-gKXWFmvg3B4e6G+bVz2p37icjj3gS5lzazZD6oLjmQ2b0Lw527VpnxGjWxQ16keKXtrVzUfebakjskOoALg3CQ==", "dev": true, "dependencies": { - "@stylistic/eslint-plugin-js": "^1.5.1", + "@stylistic/eslint-plugin-js": "^1.5.3", "estraverse": "^5.3.0" }, "engines": { @@ -1721,25 +1719,25 @@ } }, "node_modules/@stylistic/eslint-plugin-plus": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-1.5.1.tgz", - "integrity": "sha512-yxkFHsUgoqEf/j1Og0FGkpEmeQoqx0CMmtgoyZGr34hka0ElCy9fRpsFkLcwx60SfiHXspbvs2YUMXiWIffnjg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-1.5.3.tgz", + "integrity": "sha512-fuOBySbH4dbfY4Dwvu+zg5y+e0lALHTyQske5+a2zNC8Ejnx4rFlVjYOmaVFtxFhTD4V0vM7o21Ozci0igcxKg==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^6.13.2" + "@typescript-eslint/utils": "^6.17.0" }, "peerDependencies": { "eslint": "*" } }, "node_modules/@stylistic/eslint-plugin-ts": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-1.5.1.tgz", - "integrity": "sha512-oXM1V7Jp8G9+udxQTy+Igo79LR2e5HXiWqlA/3v+/PAqWxniR9nJqJSBjtQKJTPsGplDqn/ASpHUOETP4EI/4A==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-1.5.3.tgz", + "integrity": "sha512-/gUEqGo0gpFeu220YmC0788VliKnmTaAz4pI82KA5cUuCp6OzEhGlrNkb1eevMwH0RRgyND20HJxOYvEGlwu+w==", "dev": true, "dependencies": { - "@stylistic/eslint-plugin-js": "1.5.1", - "@typescript-eslint/utils": "^6.13.2" + "@stylistic/eslint-plugin-js": "1.5.3", + "@typescript-eslint/utils": "^6.17.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1782,9 +1780,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", - "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "version": "20.11.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.0.tgz", + "integrity": "sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1809,16 +1807,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", - "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.1.tgz", + "integrity": "sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.15.0", - "@typescript-eslint/type-utils": "6.15.0", - "@typescript-eslint/utils": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", + "@typescript-eslint/scope-manager": "6.18.1", + "@typescript-eslint/type-utils": "6.18.1", + "@typescript-eslint/utils": "6.18.1", + "@typescript-eslint/visitor-keys": "6.18.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1985,15 +1983,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", - "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.1.tgz", + "integrity": "sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.15.0", - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/typescript-estree": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", + "@typescript-eslint/scope-manager": "6.18.1", + "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/typescript-estree": "6.18.1", + "@typescript-eslint/visitor-keys": "6.18.1", "debug": "^4.3.4" }, "engines": { @@ -2013,13 +2011,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", - "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.1.tgz", + "integrity": "sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0" + "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/visitor-keys": "6.18.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2030,13 +2028,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", - "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.1.tgz", + "integrity": "sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.15.0", - "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/typescript-estree": "6.18.1", + "@typescript-eslint/utils": "6.18.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -2057,9 +2055,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", - "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.1.tgz", + "integrity": "sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2070,16 +2068,17 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", - "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.1.tgz", + "integrity": "sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", + "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/visitor-keys": "6.18.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -2097,17 +2096,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", - "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.1.tgz", + "integrity": "sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.15.0", - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/scope-manager": "6.18.1", + "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/typescript-estree": "6.18.1", "semver": "^7.5.4" }, "engines": { @@ -2122,12 +2121,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", - "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.1.tgz", + "integrity": "sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/types": "6.18.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -2146,13 +2145,13 @@ "peer": true }, "node_modules/@vitest/expect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.1.0.tgz", - "integrity": "sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.0.tgz", + "integrity": "sha512-H+2bHzhyvgp32o7Pgj2h9RTHN0pgYaoi26Oo3mE+dCi1PAqV31kIIVfTbqMO3Bvshd5mIrJLc73EwSRrbol9Lw==", "dev": true, "dependencies": { - "@vitest/spy": "1.1.0", - "@vitest/utils": "1.1.0", + "@vitest/spy": "1.2.0", + "@vitest/utils": "1.2.0", "chai": "^4.3.10" }, "funding": { @@ -2160,12 +2159,12 @@ } }, "node_modules/@vitest/runner": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.1.0.tgz", - "integrity": "sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.0.tgz", + "integrity": "sha512-vaJkDoQaNUTroT70OhM0NPznP7H3WyRwt4LvGwCVYs/llLaqhoSLnlIhUClZpbF5RgAee29KRcNz0FEhYcgxqA==", "dev": true, "dependencies": { - "@vitest/utils": "1.1.0", + "@vitest/utils": "1.2.0", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -2201,9 +2200,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.1.0.tgz", - "integrity": "sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.0.tgz", + "integrity": "sha512-P33EE7TrVgB3HDLllrjK/GG6WSnmUtWohbwcQqmm7TAk9AVHpdgf7M3F3qRHKm6vhr7x3eGIln7VH052Smo6Kw==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -2227,9 +2226,9 @@ } }, "node_modules/@vitest/spy": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.1.0.tgz", - "integrity": "sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.0.tgz", + "integrity": "sha512-MNxSAfxUaCeowqyyGwC293yZgk7cECZU9wGb8N1pYQ0yOn/SIr8t0l9XnGRdQZvNV/ZHBYu6GO/W3tj5K3VN1Q==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -2239,12 +2238,13 @@ } }, "node_modules/@vitest/utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.1.0.tgz", - "integrity": "sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-FyD5bpugsXlwVpTcGLDf3wSPYy8g541fQt14qtzo8mJ4LdEpDKZ9mQy2+qdJm2TZRpjY5JLXihXCgIxiRJgi5g==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", "loupe": "^2.3.7", "pretty-format": "^29.7.0" }, @@ -2252,6 +2252,15 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/@volar/language-core": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", @@ -2281,31 +2290,44 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz", - "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.11.tgz", + "integrity": "sha512-xFD+p14L4J0DkzHMdgLiQBU5g861fuOTzag30GsfPXBpghLZOvmd22lKiBMTRRpQRpp7qxPnBlFMoeiGMM4MBg==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.5", - "@vue/shared": "3.3.13", + "@babel/parser": "^7.23.6", + "@vue/shared": "3.4.11", + "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/@vue/compiler-dom": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", - "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.11.tgz", + "integrity": "sha512-cRVLROlY7D72WK2xS91L126Dd6xHNTWDWPUBRh1Syk7+TahCk8Eown1/fSi+VX9c76sMMqEZROQSbwV0HSJnhg==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.3.13", - "@vue/shared": "3.3.13" + "@vue/compiler-core": "3.4.11", + "@vue/shared": "3.4.11" } }, "node_modules/@vue/language-core": { - "version": "1.8.25", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.25.tgz", - "integrity": "sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==", + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", "dev": true, "dependencies": { "@volar/language-core": "~1.11.1", @@ -2328,15 +2350,15 @@ } }, "node_modules/@vue/shared": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz", - "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.11.tgz", + "integrity": "sha512-BtC+vE8kHf/jZoyJnTFd0PmY8NejyUeUkshXm8LriHs8KmQUmcZXIbrifjA3WDmvzg7C8D6gBSvdl49pOfU2lQ==", "dev": true }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2355,26 +2377,14 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2536,6 +2546,38 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -2564,16 +2606,16 @@ } }, "node_modules/c12": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/c12/-/c12-1.5.1.tgz", - "integrity": "sha512-BWZRJgDEveT8uI+cliCwvYSSSSvb4xKoiiu5S0jaDbKBopQLQF7E+bq9xKk1pTcG+mUa3yXuFO7bD9d8Lr9Xxg==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/c12/-/c12-1.6.1.tgz", + "integrity": "sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==", "dev": true, "dependencies": { "chokidar": "^3.5.3", - "defu": "^6.1.2", + "defu": "^6.1.3", "dotenv": "^16.3.1", - "giget": "^1.1.3", - "jiti": "^1.20.0", + "giget": "^1.2.1", + "jiti": "^1.21.0", "mlly": "^1.4.2", "ohash": "^1.1.3", "pathe": "^1.1.1", @@ -2609,10 +2651,30 @@ "node": ">= 6" } }, + "node_modules/caniuse-lite": { + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", @@ -2759,9 +2821,9 @@ } }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", "dev": true, "funding": [ { @@ -2773,6 +2835,15 @@ "node": ">=8" } }, + "node_modules/citty": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.5.tgz", + "integrity": "sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==", + "dev": true, + "dependencies": { + "consola": "^3.2.3" + } + }, "node_modules/clean-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", @@ -2920,6 +2991,19 @@ "integrity": "sha512-t5yxPyI8h8KPvRwrS/sRrfIpT2gJbmBAY0TFokyUBy3PM44RuFRpZwHdACz+GTSPLRLo3s4qsscOMLjHiXBwzw==", "dev": true }, + "node_modules/core-js-compat": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", + "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -2968,22 +3052,22 @@ } }, "node_modules/cspell": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.2.1.tgz", - "integrity": "sha512-LIn3AiEtin1pLmC3mALuBlbFliAGXaH/laLg/TKCaNXsmQrDTdgxRCz5OizoP7T8dvd/AXF9XI7Omwq+VYl2ag==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.3.2.tgz", + "integrity": "sha512-V8Ub3RO/a5lwSsltW/ib3Z3G/sczKtSpBBN1JChzbSCfEgaY2mJY8JW0BpkSV+Ug6uJitpXNOOaxa3Xr489i7g==", "dev": true, "dependencies": { - "@cspell/cspell-json-reporter": "8.2.1", - "@cspell/cspell-pipe": "8.2.1", - "@cspell/cspell-types": "8.2.1", - "@cspell/dynamic-import": "8.2.1", + "@cspell/cspell-json-reporter": "8.3.2", + "@cspell/cspell-pipe": "8.3.2", + "@cspell/cspell-types": "8.3.2", + "@cspell/dynamic-import": "8.3.2", "chalk": "^5.3.0", "chalk-template": "^1.1.0", "commander": "^11.1.0", - "cspell-gitignore": "8.2.1", - "cspell-glob": "8.2.1", - "cspell-io": "8.2.1", - "cspell-lib": "8.2.1", + "cspell-gitignore": "8.3.2", + "cspell-glob": "8.3.2", + "cspell-io": "8.3.2", + "cspell-lib": "8.3.2", "fast-glob": "^3.3.2", "fast-json-stable-stringify": "^2.1.0", "file-entry-cache": "^8.0.0", @@ -3004,12 +3088,12 @@ } }, "node_modules/cspell-config-lib": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.2.1.tgz", - "integrity": "sha512-ydcsW9klmnrEvhsiFIR5VYphSuvdiFYS/v0XMrns624t2IlbD1dqgmohv2Z4tIAXVuwyKWKdSYvA++7WwLqC2g==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.3.2.tgz", + "integrity": "sha512-Wc98XhBNLwDxnxCzMtgRJALI9a69cu3C5Gf1rGjNTKSFo9JYiQmju0Ur3z25Pkx9Sa86f+2IjvNCf33rUDSoBQ==", "dev": true, "dependencies": { - "@cspell/cspell-types": "8.2.1", + "@cspell/cspell-types": "8.3.2", "comment-json": "^4.2.3", "yaml": "^2.3.4" }, @@ -3018,14 +3102,14 @@ } }, "node_modules/cspell-dictionary": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.2.1.tgz", - "integrity": "sha512-UwFl0vWI7z1JFFpaMs8EK6SEuUmy330Cq4/smebdMAWeBwmnBQQCyXp9Y2Aai0HSS8gIPdbzXcajEVX4JGbuIg==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.3.2.tgz", + "integrity": "sha512-xyK95hO2BMPFxIo8zBwGml8035qOxSBdga1BMhwW/p2wDrQP8S4Cdm/54//tCDmKn6uRkFQvyOfWGaX2l8WMEg==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.2.1", - "@cspell/cspell-types": "8.2.1", - "cspell-trie-lib": "8.2.1", + "@cspell/cspell-pipe": "8.3.2", + "@cspell/cspell-types": "8.3.2", + "cspell-trie-lib": "8.3.2", "fast-equals": "^5.0.1", "gensequence": "^6.0.0" }, @@ -3034,12 +3118,12 @@ } }, "node_modules/cspell-gitignore": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.2.1.tgz", - "integrity": "sha512-SWJmiUxttWBkOGHkKZ1RUoQ4XmO9ObZWKfgUm9L9dwnNZea9oyx1/BMAgzUkPtWPassv9FIxmERmxF19wYFxFw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.3.2.tgz", + "integrity": "sha512-3Qc9P5BVvl/cg//s2s+zIMGKcoH5v7oOtRgwn4UQry8yiyo19h0tiTKkSR574FMhF5NtcShTnwIwPSIXVBPFHA==", "dev": true, "dependencies": { - "cspell-glob": "8.2.1", + "cspell-glob": "8.3.2", "find-up-simple": "^1.0.0" }, "bin": { @@ -3050,9 +3134,9 @@ } }, "node_modules/cspell-glob": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.2.1.tgz", - "integrity": "sha512-B/yN4r0CScislNmnUPtM03K0IDkYUSpHdbBrCuOwLaZsqvSvWnkfUNMSreyHduiMotrhzn0VOnTy++ws+aI2+g==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.3.2.tgz", + "integrity": "sha512-KtIFxE+3l5dGEofND4/CdZffXP8XN1+XGQKxJ96lIzWsc01mkotfhxTkla6mgvfH039t7BsY/SWv0460KyGslQ==", "dev": true, "dependencies": { "micromatch": "^4.0.5" @@ -3062,13 +3146,13 @@ } }, "node_modules/cspell-grammar": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.2.1.tgz", - "integrity": "sha512-NsxcjewV2peZhsaQuYSplLwUMTdj6YEVe/UA3tl9IRF7PnUyI+DLuwTYUy1FeXLOLM0lVd/tUSDQnZsj+08VaQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.3.2.tgz", + "integrity": "sha512-tYCkOmRzJe1a6/R+8QGSwG7TwTgznLPqsHtepKzLmnS4YX54VXjKRI9zMARxXDzUVfyCSVdW5MyiY/0WTNoy+A==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.2.1", - "@cspell/cspell-types": "8.2.1" + "@cspell/cspell-pipe": "8.3.2", + "@cspell/cspell-types": "8.3.2" }, "bin": { "cspell-grammar": "bin.mjs" @@ -3078,38 +3162,38 @@ } }, "node_modules/cspell-io": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.2.1.tgz", - "integrity": "sha512-3/SKJLa1hrmJTs/NAVxvcTwZTjOckbRVIaPz6TIYU0LrIB/9fQGIQqzLIiinpvqPSyU9ObDvrWibfqqUJmIRIw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.3.2.tgz", + "integrity": "sha512-WYpKsyBCQP0SY4gXnhW5fPuxcYchKYKG1PIXVV3ezFU4muSgW6GuLNbGuSfwv/8YNXRgFSN0e3hYH0rdBK2Aow==", "dev": true, "dependencies": { - "@cspell/cspell-service-bus": "8.2.1" + "@cspell/cspell-service-bus": "8.3.2" }, "engines": { "node": ">=18" } }, "node_modules/cspell-lib": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.2.1.tgz", - "integrity": "sha512-MYyEaVzR3FWEfUQnrHqN/ebRFrF5yG6Owa6BCd9CRY34ef+HEv4Tbjxm8U5AZp/Qx5hqxvYqlEQdylEdsi4WrQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.3.2.tgz", + "integrity": "sha512-wTvdaev/TyGB/ln6CVD1QbVs2D7/+QiajQ67S7yj1suLHM6YcNQQb/5sPAM8VPtj0E7PgwgPXf3bq18OtPvnFg==", "dev": true, "dependencies": { - "@cspell/cspell-bundled-dicts": "8.2.1", - "@cspell/cspell-pipe": "8.2.1", - "@cspell/cspell-resolver": "8.2.1", - "@cspell/cspell-types": "8.2.1", - "@cspell/dynamic-import": "8.2.1", - "@cspell/strong-weak-map": "8.2.1", + "@cspell/cspell-bundled-dicts": "8.3.2", + "@cspell/cspell-pipe": "8.3.2", + "@cspell/cspell-resolver": "8.3.2", + "@cspell/cspell-types": "8.3.2", + "@cspell/dynamic-import": "8.3.2", + "@cspell/strong-weak-map": "8.3.2", "clear-module": "^4.1.2", "comment-json": "^4.2.3", "configstore": "^6.0.0", - "cspell-config-lib": "8.2.1", - "cspell-dictionary": "8.2.1", - "cspell-glob": "8.2.1", - "cspell-grammar": "8.2.1", - "cspell-io": "8.2.1", - "cspell-trie-lib": "8.2.1", + "cspell-config-lib": "8.3.2", + "cspell-dictionary": "8.3.2", + "cspell-glob": "8.3.2", + "cspell-grammar": "8.3.2", + "cspell-io": "8.3.2", + "cspell-trie-lib": "8.3.2", "fast-equals": "^5.0.1", "gensequence": "^6.0.0", "import-fresh": "^3.3.0", @@ -3122,13 +3206,13 @@ } }, "node_modules/cspell-trie-lib": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.2.1.tgz", - "integrity": "sha512-mUXzYtaK9yA6YK7f8NB2YR49Oj9FoC2pAIjMnvNCYRrkHNYShxibrDsfSlr8vzn8xPCsyhLx4004QEUQtScy4w==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.3.2.tgz", + "integrity": "sha512-8qh2FqzkLMwzlTlvO/5Z+89fhi30rrfekocpight/BmqKbE2XFJQD7wS2ml24e7q/rdHJLXVpJbY/V5mByucCA==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.2.1", - "@cspell/cspell-types": "8.2.1", + "@cspell/cspell-pipe": "8.3.2", + "@cspell/cspell-types": "8.3.2", "gensequence": "^6.0.0" }, "engines": { @@ -3287,9 +3371,9 @@ } }, "node_modules/defu": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.3.tgz", - "integrity": "sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", "dev": true }, "node_modules/destr": { @@ -3338,7 +3422,6 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -3379,6 +3462,12 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, + "node_modules/electron-to-chromium": { + "version": "1.4.629", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.629.tgz", + "integrity": "sha512-5UUkr3k3CZ/k+9Sw7vaaIMyOzMC0XbPyprKI3n0tbKDqkzTDOjK4izm7DxlkueRMim6ZZQ1ja9F7hoFVplHihA==", + "dev": true + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -3407,9 +3496,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz", - "integrity": "sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", + "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", "dev": true, "hasInstallScript": true, "bin": { @@ -3419,29 +3508,38 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.10", - "@esbuild/android-arm": "0.19.10", - "@esbuild/android-arm64": "0.19.10", - "@esbuild/android-x64": "0.19.10", - "@esbuild/darwin-arm64": "0.19.10", - "@esbuild/darwin-x64": "0.19.10", - "@esbuild/freebsd-arm64": "0.19.10", - "@esbuild/freebsd-x64": "0.19.10", - "@esbuild/linux-arm": "0.19.10", - "@esbuild/linux-arm64": "0.19.10", - "@esbuild/linux-ia32": "0.19.10", - "@esbuild/linux-loong64": "0.19.10", - "@esbuild/linux-mips64el": "0.19.10", - "@esbuild/linux-ppc64": "0.19.10", - "@esbuild/linux-riscv64": "0.19.10", - "@esbuild/linux-s390x": "0.19.10", - "@esbuild/linux-x64": "0.19.10", - "@esbuild/netbsd-x64": "0.19.10", - "@esbuild/openbsd-x64": "0.19.10", - "@esbuild/sunos-x64": "0.19.10", - "@esbuild/win32-arm64": "0.19.10", - "@esbuild/win32-ia32": "0.19.10", - "@esbuild/win32-x64": "0.19.10" + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" } }, "node_modules/escape-string-regexp": { @@ -3572,20 +3670,19 @@ }, "node_modules/eslint-plugin-import": { "name": "eslint-plugin-i", - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-i/-/eslint-plugin-i-2.28.1.tgz", - "integrity": "sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-i/-/eslint-plugin-i-2.29.1.tgz", + "integrity": "sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==", "dev": true, "dependencies": { - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "debug": "^4.3.4", + "doctrine": "^3.0.0", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "get-tsconfig": "^4.6.2", + "get-tsconfig": "^4.7.2", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "resolve": "^1.22.3", - "semver": "^7.5.3" + "semver": "^7.5.4" }, "engines": { "node": ">=12" @@ -3622,27 +3719,6 @@ "concat-map": "0.0.1" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3656,9 +3732,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.9.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.1.tgz", - "integrity": "sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==", + "version": "47.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-47.0.2.tgz", + "integrity": "sha512-sIq81Pv+yrhhwY0m1JH79rdZRgDNunehv3S0Yv0UfewpoeJyPkODFn2o4o20nofVoI2tjku9/QBcCYUmmeWFXA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.41.0", @@ -3675,7 +3751,7 @@ "node": ">=16" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-jsonc": { @@ -3717,9 +3793,9 @@ } }, "node_modules/eslint-plugin-readable-tailwind": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-0.1.2.tgz", - "integrity": "sha512-PeQ8Iz4sgzGP6IcCh0ZE5sCKX6pyLUxJp/kjcEIz6oI3irR187Ec/KKvzs1W+ENyG1N2v36GjfXFIh1y7Q6cUg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-0.3.0.tgz", + "integrity": "sha512-uBZNSASY6FCgMyIaVK7tmA1amWjFzPvrr5tdusysbqNzoUQdJX2Q1BgBzHKX8rBpAWII+UBJ4ggC8gNxsqI9+w==", "dev": true, "peerDependencies": { "eslint": ">=7", @@ -3769,9 +3845,9 @@ } }, "node_modules/eslint-plugin-tailwindcss": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.13.0.tgz", - "integrity": "sha512-Fcep4KDRLWaK3KmkQbdyKHG0P4GdXFmXdDaweTIPcgOP60OOuWFbh1++dufRT28Q4zpKTKaHwTsXPJ4O/EjU2Q==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.13.1.tgz", + "integrity": "sha512-2Nlgr9doO6vFAG9w4iGU0sspWXuzypfng10HTF+dFS2NterhweWtgdRvf/f7aaoOUUxVZM8wMIXzazrZ7CxyeA==", "dev": true, "dependencies": { "fast-glob": "^3.2.5", @@ -3804,15 +3880,17 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "49.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-49.0.0.tgz", - "integrity": "sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==", + "version": "50.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-50.0.1.tgz", + "integrity": "sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "@eslint-community/eslint-utils": "^4.4.0", - "ci-info": "^3.8.0", + "@eslint/eslintrc": "^2.1.4", + "ci-info": "^4.0.0", "clean-regexp": "^1.0.0", + "core-js-compat": "^3.34.0", "esquery": "^1.5.0", "indent-string": "^4.0.0", "is-builtin-module": "^3.2.1", @@ -3831,7 +3909,7 @@ "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=8.52.0" + "eslint": ">=8.56.0" } }, "node_modules/eslint-plugin-unused-imports": { @@ -3856,12 +3934,12 @@ } }, "node_modules/eslint-plugin-vitest": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.18.tgz", - "integrity": "sha512-IJzs6BpA//wkNxo5845uPIMOIp4j76MiKiagJ3hD6a2DemrktdpB7mmTjU0EeFuq14NXFoO1wN8Fwrx2VxWBRA==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.20.tgz", + "integrity": "sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^6.14.0" + "@typescript-eslint/utils": "^6.15.0" }, "engines": { "node": "^18.0.0 || >= 20.0.0" @@ -4514,16 +4592,17 @@ } }, "node_modules/giget": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/giget/-/giget-1.1.3.tgz", - "integrity": "sha512-zHuCeqtfgqgDwvXlR84UNgnJDuUHQcNI5OqWqFxxuk2BshuKbYhJWdxBsEo4PvKqoGh23lUAIvBNpChMLv7/9Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.1.tgz", + "integrity": "sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==", "dev": true, "dependencies": { - "colorette": "^2.0.20", - "defu": "^6.1.2", - "https-proxy-agent": "^7.0.2", - "mri": "^1.2.0", - "node-fetch-native": "^1.4.0", + "citty": "^0.1.5", + "consola": "^3.2.3", + "defu": "^6.1.3", + "node-fetch-native": "^1.6.1", + "nypm": "^0.3.3", + "ohash": "^1.1.3", "pathe": "^1.1.1", "tar": "^6.2.0" }, @@ -4585,7 +4664,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -4679,19 +4757,6 @@ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -5084,7 +5149,6 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "peer": true, "dependencies": { "argparse": "^2.0.1" }, @@ -5621,15 +5685,15 @@ } }, "node_modules/mlly": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", - "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", + "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", "dev": true, "dependencies": { - "acorn": "^8.10.0", - "pathe": "^1.1.1", + "acorn": "^8.11.3", + "pathe": "^1.1.2", "pkg-types": "^1.0.3", - "ufo": "^1.3.0" + "ufo": "^1.3.2" } }, "node_modules/mri": { @@ -5696,9 +5760,15 @@ "dev": true }, "node_modules/node-fetch-native": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.1.tgz", - "integrity": "sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.1.tgz", + "integrity": "sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-package-data": { @@ -5732,9 +5802,9 @@ } }, "node_modules/npm": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.5.tgz", - "integrity": "sha512-lXdZ7titEN8CH5YJk9C/aYRU9JeDxQ4d8rwIIDsvH3SMjLjHTukB2CFstMiB30zXs4vCrPN2WH6cDq1yHBeJAw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.3.0.tgz", + "integrity": "sha512-9u5GFc1UqI2DLlGI7QdjkpIaBs3UhTtY8KoCqYJK24gV/j/tByaI4BA4R7RkOc+ASqZMzFPKt4Pj2Z8JcGo//A==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -5816,12 +5886,12 @@ "@npmcli/fs": "^3.1.0", "@npmcli/map-workspaces": "^3.0.4", "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.2", + "@npmcli/promise-spawn": "^7.0.1", + "@npmcli/run-script": "^7.0.3", "@sigstore/tuf": "^2.2.0", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^18.0.1", + "cacache": "^18.0.2", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", @@ -5891,9 +5961,9 @@ } }, "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -5990,7 +6060,7 @@ } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.2.2", + "version": "7.3.0", "dev": true, "inBundle": true, "license": "ISC", @@ -6037,7 +6107,7 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.0.3", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -6095,7 +6165,7 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.3", + "version": "5.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -6196,7 +6266,7 @@ } }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "7.0.0", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -6220,7 +6290,7 @@ } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "7.0.2", + "version": "7.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -6324,18 +6394,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/abort-controller": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/npm/node_modules/agent-base": { "version": "7.1.0", "dev": true, @@ -6398,14 +6456,10 @@ "license": "MIT" }, "node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.1", + "version": "4.0.2", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^4.1.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -6416,26 +6470,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/base64-js": { - "version": "1.5.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/bin-links": { "version": "4.0.3", "dev": true, @@ -6469,30 +6503,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/npm/node_modules/buffer": { - "version": "6.0.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/npm/node_modules/builtins": { "version": "5.0.1", "dev": true, @@ -6503,7 +6513,7 @@ } }, "node_modules/npm/node_modules/cacache": { - "version": "18.0.1", + "version": "18.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -6798,12 +6808,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/diff": { "version": "5.1.0", "dev": true, @@ -6850,24 +6854,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/event-target-shim": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/events": { - "version": "3.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", "dev": true, @@ -7063,26 +7049,6 @@ "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/ieee754": { - "version": "1.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, "node_modules/npm/node_modules/ignore-walk": { "version": "6.0.4", "dev": true, @@ -7274,7 +7240,7 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.4", + "version": "6.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -7294,7 +7260,7 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.5", + "version": "7.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -7316,7 +7282,7 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.2", + "version": "5.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -7354,7 +7320,7 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.4", + "version": "6.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -7779,7 +7745,7 @@ } }, "node_modules/npm/node_modules/npm-packlist": { - "version": "8.0.1", + "version": "8.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -7947,7 +7913,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.13", + "version": "6.0.15", "dev": true, "inBundle": true, "license": "MIT", @@ -7968,15 +7934,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/process": { - "version": "0.11.10", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/npm/node_modules/promise-all-reject-late": { "version": "1.0.1", "dev": true, @@ -8083,22 +8040,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/readable-stream": { - "version": "4.4.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", "dev": true, @@ -8108,26 +8049,6 @@ "node": ">= 4" } }, - "node_modules/npm/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", "dev": true, @@ -8298,15 +8219,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", "dev": true, @@ -8725,6 +8637,24 @@ "inBundle": true, "license": "ISC" }, + "node_modules/nypm": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.4.tgz", + "integrity": "sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==", + "dev": true, + "dependencies": { + "citty": "^0.1.5", + "execa": "^8.0.1", + "pathe": "^1.1.1", + "ufo": "^1.3.2" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -8977,9 +8907,9 @@ } }, "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, "node_modules/pathval": { @@ -9056,9 +8986,9 @@ } }, "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", "dev": true, "funding": [ { @@ -9188,9 +9118,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dev": true, "peer": true, "dependencies": { @@ -9505,10 +9435,13 @@ } }, "node_modules/rollup": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.1.tgz", - "integrity": "sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.5.tgz", + "integrity": "sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==", "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, "bin": { "rollup": "dist/bin/rollup" }, @@ -9517,19 +9450,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.1", - "@rollup/rollup-android-arm64": "4.9.1", - "@rollup/rollup-darwin-arm64": "4.9.1", - "@rollup/rollup-darwin-x64": "4.9.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.1", - "@rollup/rollup-linux-arm64-gnu": "4.9.1", - "@rollup/rollup-linux-arm64-musl": "4.9.1", - "@rollup/rollup-linux-riscv64-gnu": "4.9.1", - "@rollup/rollup-linux-x64-gnu": "4.9.1", - "@rollup/rollup-linux-x64-musl": "4.9.1", - "@rollup/rollup-win32-arm64-msvc": "4.9.1", - "@rollup/rollup-win32-ia32-msvc": "4.9.1", - "@rollup/rollup-win32-x64-msvc": "4.9.1", + "@rollup/rollup-android-arm-eabi": "4.9.5", + "@rollup/rollup-android-arm64": "4.9.5", + "@rollup/rollup-darwin-arm64": "4.9.5", + "@rollup/rollup-darwin-x64": "4.9.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.5", + "@rollup/rollup-linux-arm64-gnu": "4.9.5", + "@rollup/rollup-linux-arm64-musl": "4.9.5", + "@rollup/rollup-linux-riscv64-gnu": "4.9.5", + "@rollup/rollup-linux-x64-gnu": "4.9.5", + "@rollup/rollup-linux-x64-musl": "4.9.5", + "@rollup/rollup-win32-arm64-msvc": "4.9.5", + "@rollup/rollup-win32-ia32-msvc": "4.9.5", + "@rollup/rollup-win32-x64-msvc": "4.9.5", "fsevents": "~2.3.2" } }, @@ -9697,9 +9630,9 @@ } }, "node_modules/scule": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/scule/-/scule-1.1.1.tgz", - "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.2.0.tgz", + "integrity": "sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==", "dev": true }, "node_modules/semver": { @@ -9857,9 +9790,9 @@ "dev": true }, "node_modules/std-env": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.6.0.tgz", - "integrity": "sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true }, "node_modules/string-argv": { @@ -10016,15 +9949,15 @@ } }, "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "7.1.6", + "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", @@ -10035,18 +9968,7 @@ "sucrase-node": "bin/sucrase-node" }, "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node": ">=16 || 14 >=14.17" } }, "node_modules/sucrase/node_modules/commander": { @@ -10059,40 +9981,6 @@ "node": ">= 6" } }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -10118,9 +10006,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.0.tgz", - "integrity": "sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", "dev": true, "peer": true, "dependencies": { @@ -10230,6 +10118,32 @@ "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", "dev": true }, + "node_modules/tinyhighlight": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyhighlight/-/tinyhighlight-0.3.2.tgz", + "integrity": "sha512-PaaMroXMDSO3X+UGsTfbL3MmBkTK4+Yycjg6gDAFXNf6lHvKWjXZcdmylJst7V+HFl6W1FijqLqyB07Ze60PZw==", + "dev": true, + "dependencies": { + "js-tokens": "^8.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "picocolors": "^1.0.0" + }, + "peerDependenciesMeta": { + "picocolors": { + "optional": true + } + } + }, + "node_modules/tinyhighlight/node_modules/js-tokens": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.2.tgz", + "integrity": "sha512-Olnt+V7xYdvGze9YTbGFZIfQXuGV4R3nQwwl8BrtgaPE/wq8UFpUHWuTNc05saowhSr1ZO6tx+V6RjE9D5YQog==", + "dev": true + }, "node_modules/tinypool": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz", @@ -10420,7 +10334,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -10537,6 +10450,36 @@ "node": ">=8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -10592,9 +10535,9 @@ } }, "node_modules/vite": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", - "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.11.tgz", + "integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==", "dev": true, "dependencies": { "esbuild": "^0.19.3", @@ -10647,9 +10590,9 @@ } }, "node_modules/vite-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.1.0.tgz", - "integrity": "sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.0.tgz", + "integrity": "sha512-ETnQTHeAbbOxl7/pyBck9oAPZZZo+kYnFt1uQDD+hPReOc+wCjXw4r4jHriBRuVDB5isHmPXxrfc1yJnfBERqg==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -10669,17 +10612,17 @@ } }, "node_modules/vite-plugin-dts": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.6.4.tgz", - "integrity": "sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.7.0.tgz", + "integrity": "sha512-np1uPaYzu98AtPReB8zkMnbjwcNHOABsLhqVOf81b3ol9b5M2wPcAVs8oqPnOpr6Us+7yDXVauwkxsk5+ldmRA==", "dev": true, "dependencies": { - "@microsoft/api-extractor": "^7.38.0", - "@rollup/pluginutils": "^5.0.5", - "@vue/language-core": "^1.8.20", + "@microsoft/api-extractor": "7.39.0", + "@rollup/pluginutils": "^5.1.0", + "@vue/language-core": "^1.8.26", "debug": "^4.3.4", "kolorist": "^1.8.0", - "vue-tsc": "^1.8.20" + "vue-tsc": "^1.8.26" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -10705,9 +10648,9 @@ } }, "node_modules/vite-tsconfig-paths": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.2.tgz", - "integrity": "sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.3.tgz", + "integrity": "sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw==", "dev": true, "dependencies": { "debug": "^4.1.1", @@ -10724,17 +10667,17 @@ } }, "node_modules/vitest": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.1.0.tgz", - "integrity": "sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.0.tgz", + "integrity": "sha512-Ixs5m7BjqvLHXcibkzKRQUvD/XLw0E3rvqaCMlrm/0LMsA0309ZqYvTlPzkhh81VlEyVZXFlwWnkhb6/UMtcaQ==", "dev": true, "dependencies": { - "@vitest/expect": "1.1.0", - "@vitest/runner": "1.1.0", - "@vitest/snapshot": "1.1.0", - "@vitest/spy": "1.1.0", - "@vitest/utils": "1.1.0", - "acorn-walk": "^8.3.0", + "@vitest/expect": "1.2.0", + "@vitest/runner": "1.2.0", + "@vitest/snapshot": "1.2.0", + "@vitest/spy": "1.2.0", + "@vitest/utils": "1.2.0", + "acorn-walk": "^8.3.1", "cac": "^6.7.14", "chai": "^4.3.10", "debug": "^4.3.4", @@ -10748,7 +10691,7 @@ "tinybench": "^2.5.1", "tinypool": "^0.8.1", "vite": "^5.0.0", - "vite-node": "1.1.0", + "vite-node": "1.2.0", "why-is-node-running": "^2.2.2" }, "bin": { @@ -10829,9 +10772,9 @@ "dev": true }, "node_modules/vue-template-compiler": { - "version": "2.7.15", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz", - "integrity": "sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==", + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", "dev": true, "dependencies": { "de-indent": "^1.0.2", @@ -10839,13 +10782,13 @@ } }, "node_modules/vue-tsc": { - "version": "1.8.25", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.25.tgz", - "integrity": "sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==", + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", "dev": true, "dependencies": { "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.25", + "@vue/language-core": "1.8.27", "semver": "^7.5.4" }, "bin": { diff --git a/package.json b/package.json index 96bb8982..b98953aa 100644 --- a/package.json +++ b/package.json @@ -68,19 +68,20 @@ "typescript": "^5.3.3" }, "devDependencies": { - "@schoero/configs": "^0.0.0-beta.5", + "@schoero/configs": "^0.0.0-beta.26", "@types/minimatch": "^5.1.2", - "@types/node": "^20.10.5", + "@types/node": "^20.11.0", "changelogen": "^0.5.5", - "cspell": "^8.2.1", + "cspell": "^8.3.2", "eslint-plugin-jsonc": "^2.11.2", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", + "tinyhighlight": "^0.3.2", "ts-json-schema-generator": "^1.5.0", - "vite": "^5.0.10", - "vite-plugin-dts": "^3.6.4", + "vite": "^5.0.11", + "vite-plugin-dts": "^3.7.0", "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.1.0" + "vitest": "^1.2.0" }, "keywords": [ "documentation", @@ -95,6 +96,6 @@ "javascript" ], "volta": { - "node": "20.8.0" + "node": "21.5.0" } } diff --git a/src/compiler/shared.ts b/src/compiler/shared.ts index c62b2355..5748394b 100644 --- a/src/compiler/shared.ts +++ b/src/compiler/shared.ts @@ -1,5 +1,8 @@ +import { highlight as tinyHighlight } from "tinyhighlight"; + import { findCommonIndentation, removeCommonIndentation } from "unwritten:utils/template"; +import type { TokenColors } from "tinyhighlight"; import type { CompilerOptions, Diagnostic, LineAndCharacter } from "typescript"; import type { DefaultContext } from "unwritten:type-definitions/context"; @@ -55,7 +58,7 @@ export function reportCompilerDiagnostics(ctx: DefaultContext, diagnostics: read const filePath = `${logger.gray("at")} ${logger.filePath(`${diagnostic.file.fileName}:${startLocation.line + 1}:${startLocation.character + 1}`)}`; - const sourceFile = diagnostic.file.text.split(lineEndings); + const sourceFile = highlight(ctx, diagnostic.file.text).split(lineEndings); const minLine = Math.max(startLocation.line - 2, 0); const maxLine = Math.min(startLocation.line + 3, sourceFile.length); const maxLineNumberLength = (maxLine + 1).toString().length; @@ -73,10 +76,9 @@ export function reportCompilerDiagnostics(ctx: DefaultContext, diagnostics: read const tabCorrectedStartCharacter = startLocation.character - tabCount + tabCount * 4; const tabCorrectedEndCharacter = tabCorrectedStartCharacter + diagnostic.length!; const tabCorrectedLine = line.replace(/\t/g, " "); + const syntaxHighlightedLine = tabCorrectedLine; - acc.push(logger.gray(`${lineIndicator}${tabCorrectedLine}`)); - - if(tabCorrectedEndCharacter < tabCorrectedStartCharacter){debugger;} + acc.push(logger.gray(`${lineIndicator}${syntaxHighlightedLine}`)); if(lineNumber === startLocation.line + 1){ acc.push(logger.yellow(`${ @@ -112,3 +114,52 @@ export function reportCompilerDiagnostics(ctx: DefaultContext, diagnostics: read }); } + + +function highlight(ctx: DefaultContext, code: string) { + + const { logger } = ctx.dependencies; + + if(!logger){ + return code; + } + + const colors = { + bgRed: (code: string) => logger.bgRed(code), + blue: (code: string) => logger.blue(code), + bold: (code: string) => logger.bold(code), + cyan: (code: string) => logger.cyan(code), + gray: (code: string) => logger.gray(code), + green: (code: string) => logger.green(code), + magenta: (code: string) => logger.magenta(code), + white: (code: string) => logger.white(code), + yellow: (code: string) => logger.yellow(code) + }; + + const tokenColors: TokenColors = { + IdentifierCallable: colors.blue, + IdentifierCapitalized: colors.yellow, + Invalid: (text: string) => colors.white(colors.bgRed(colors.bold(text))), + JSXIdentifier: colors.yellow, + JSXInvalid: (text: string) => colors.white(colors.bgRed(colors.bold(text))), + JSXPunctuator: colors.yellow, + JSXString: colors.green, + Keyword: colors.magenta, + MultiLineComment: colors.gray, + NoSubstitutionTemplate: colors.green, + NumericLiteral: colors.blue, + PrivateIdentifierCallable: text => `#${colors.blue(text.slice(1))}`, + Punctuator: colors.yellow, + RegularExpressionLiteral: colors.cyan, + SingleLineComment: colors.gray, + StringLiteral: colors.green, + TemplateHead: text => colors.green(text.slice(0, -2)) + colors.cyan(text.slice(-2)), + TemplateMiddle: text => colors.cyan(text.slice(0, 1)) + colors.green(text.slice(1, -2)) + colors.cyan(text.slice(-2)), + TemplateTail: text => colors.cyan(text.slice(0, 1)) + colors.green(text.slice(1)) + }; + + return tinyHighlight(code, { + colors: tokenColors + }); + +} diff --git a/src/platform/logger/browser.ts b/src/platform/logger/browser.ts index 78526854..2b9f8219 100644 --- a/src/platform/logger/browser.ts +++ b/src/platform/logger/browser.ts @@ -121,6 +121,26 @@ export module logger { return path; } + export function bgGreen(message: string): string { + return message; + } + + export function bgRed(message: string): string { + return message; + } + + export function bgYellow(message: string): string { + return message; + } + + export function blue(message: string): string { + return message; + } + + export function magenta(message: string): string { + return message; + } + } export default logger; diff --git a/src/platform/logger/node.ts b/src/platform/logger/node.ts index d1ad65ae..e52439e3 100644 --- a/src/platform/logger/node.ts +++ b/src/platform/logger/node.ts @@ -15,9 +15,11 @@ const modifiers = { bgGreen: "\x1b[42m", bgRed: "\x1b[41m", bgYellow: "\x1b[43m", + fgBlue: "\x1b[34m", fgCyan: "\x1b[36m", fgGray: "\x1b[2m", fgGreen: "\x1b[32m", + fgMagenta: "\x1b[35m", fgRed: "\x1b[31m", fgWhite: "\x1b[37m", fgYellow: "\x1b[33m", @@ -31,31 +33,13 @@ const modifiers = { export namespace logger { - const { - bgCyan, - bgGreen, - bgRed, - bgYellow, - fgCyan, - fgGray, - fgGreen, - fgRed, - fgWhite, - fgYellow, - reset, - textBold, - textItalic, - textStrikethrough, - textUnderline - } = modifiers; - process.on("uncaughtException", err => { const stackOnly = err.stack?.replace(`${err.name}: ${err.message}`, ""); const systemInfo = getSystemInfo(); println( - `${lineEndings}${bgRed}${textBold} ${err.name} ${reset} ${ + `${lineEndings}${modifiers.bgRed}${modifiers.textBold} ${err.name} ${modifiers.reset} ${ red( [ err.message, @@ -75,7 +59,7 @@ export namespace logger { export function log(message: string): void { - println(`${reset}${message}${reset}`); + println(`${modifiers.reset}${message}${modifiers.reset}`); } @@ -83,7 +67,7 @@ export namespace logger { if(env.DEBUG === undefined){ return; } - println(`${reset}${message}${reset}`); + println(`${modifiers.reset}${message}${modifiers.reset}`); } @@ -97,7 +81,7 @@ export namespace logger { const bodyMessages = body ? ["", ...body.map(message => ` ${message}`), ""] : []; println([ - `${bgYellow}${textBold} ${badge} ${reset} ${titleOrMessage}`, + `${modifiers.bgYellow}${modifiers.textBold} ${badge} ${modifiers.reset} ${titleOrMessage}`, ...bodyMessages ].join(lineEndings)); @@ -140,7 +124,7 @@ export namespace logger { .map(row => ` ${row}`); println([ - `${bgGreen}${textBold} ${name} ${reset}`, + `${modifiers.bgGreen}${modifiers.textBold} ${name} ${modifiers.reset}`, "", ...table, "" @@ -159,7 +143,7 @@ export namespace logger { const bodyMessages = body ? ["", ...body.map(message => ` ${message}`), ""] : []; println([ - `${bgGreen}${textBold} ${badge} ${reset} ${titleOrMessage}`, + `${modifiers.bgGreen}${modifiers.textBold} ${badge} ${modifiers.reset} ${titleOrMessage}`, ...bodyMessages ].join(lineEndings)); @@ -178,49 +162,73 @@ export namespace logger { const relativePath = path.replace(cwd, ""); const simplifiedPath = cwd.replace(new RegExp(`^${home}`), "~"); - return `${fgGray}${simplifiedPath}${reset}${relativePath}`; + return `${modifiers.fgGray}${simplifiedPath}${modifiers.reset}${relativePath}`; } - // Colors + // colors export function red(message: string): string { - return `${fgRed}${message}${reset}`; + return `${modifiers.fgRed}${message}${modifiers.reset}`; + } + + export function bgRed(message: string): string { + return `${modifiers.bgRed}${message}${modifiers.reset}`; + } + + export function bgGreen(message: string): string { + return `${modifiers.bgGreen}${message}${modifiers.reset}`; + } + + export function bgYellow(message: string): string { + return `${modifiers.bgYellow}${message}${modifiers.reset}`; } export function gray(message: string): string { - return `${fgGray}${message}${reset}`; + return `${modifiers.fgGray}${message}${modifiers.reset}`; } export function green(message: string): string { - return `${fgGreen}${message}${reset}`; + return `${modifiers.fgGreen}${message}${modifiers.reset}`; } export function yellow(message: string): string { - return `${fgYellow}${message}${reset}`; + return `${modifiers.fgYellow}${message}${modifiers.reset}`; } export function white(message: string): string { - return `${fgWhite}${message}${reset}`; + return `${modifiers.fgWhite}${message}${modifiers.reset}`; } export function cyan(message: string): string { - return `${fgCyan}${message}${reset}`; + return `${modifiers.fgCyan}${message}${modifiers.reset}`; + } + + export function blue(message: string): string { + return `${modifiers.fgBlue}${message}${modifiers.reset}`; + } + + export function magenta(message: string): string { + return `${modifiers.fgMagenta}${message}${modifiers.reset}`; } export function bold(message: string): string { - return `${textBold}${message}${reset}`; + return `${modifiers.textBold}${message}${modifiers.reset}`; } export function underline(message: string): string { - return `${textUnderline}${message}${reset}`; + return `${modifiers.textUnderline}${message}${modifiers.reset}`; } export function italic(message: string): string { - return `${textItalic}${message}${reset}`; + return `${modifiers.textItalic}${message}${modifiers.reset}`; } export function strikethrough(message: string): string { - return `${textStrikethrough}${message}${reset}`; + return `${modifiers.textStrikethrough}${message}${modifiers.reset}`; + } + + export function unstyled(message: string): string { + return forceUnstyled(message); } } diff --git a/src/type-definitions/platform.ts b/src/type-definitions/platform.ts index 2def4bc6..0a2be4bf 100644 --- a/src/type-definitions/platform.ts +++ b/src/type-definitions/platform.ts @@ -46,17 +46,22 @@ export interface Path { // logger export type Logger = { + bgGreen(message: string): string; + bgRed(message: string): string; + bgYellow(message: string): string; + blue(message: string): string; bold(message: string): string; cyan(message: string): string; debug(message: string): void; filePath(path: string): string; gray(message: string): string; green(message: string): string; - info(title: string, message: string[] | string): void; info(title: string, label: string, message: string[] | string): void; info(message: string[] | string): void; + info(title: string, message: string[] | string): void; italic(message: string): string; log(message: string): void; + magenta(message: string): string; red(message: string): string; stats(ctx: DefaultContext, stats: Logger["_stats"]): void; strikethrough(message: string): string; From 35f317cd2f873449846096a80c9785963dc8740e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Fri, 12 Jan 2024 18:53:02 +0100 Subject: [PATCH 30/42] chore: add spell check exception --- .cspell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.cspell.json b/.cspell.json index 15c538ac..e3109282 100644 --- a/.cspell.json +++ b/.cspell.json @@ -18,6 +18,7 @@ "testfunctionparam", "testfunctiontparam", "testt", + "tinyhighlight", "tsdoc", "TSJS", "typeguards", From 27a888b55997ada2160ee9f9008205b69f5de115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Mon, 15 Jan 2024 20:24:06 +0100 Subject: [PATCH 31/42] chore: eslint fixes --- package-lock.json | 180 +++++++++--------- package.json | 6 +- src/interpreter/ast/entities/circular.test.ts | 10 +- src/interpreter/ast/entities/class.test.ts | 2 +- .../ast/entities/constructor.test.ts | 16 +- src/interpreter/ast/entities/enum.test.ts | 24 +-- src/interpreter/ast/entities/getter.test.ts | 18 +- .../ast/entities/interface.test.ts | 34 ++-- src/interpreter/ast/entities/method.test.ts | 6 +- .../ast/entities/parameter.test.ts | 10 +- src/interpreter/ast/entities/property.test.ts | 34 ++-- src/interpreter/ast/entities/setter.test.ts | 18 +- .../ast/entities/signature.test.ts | 42 ++-- .../ast/entities/type-parameter.test.ts | 18 +- src/interpreter/ast/types/array.ts | 2 +- src/interpreter/ast/types/circular.test.ts | 12 +- src/interpreter/ast/types/expression.test.ts | 4 +- src/interpreter/ast/types/function.test.ts | 2 +- src/interpreter/ast/types/interface.test.ts | 22 +-- src/interpreter/ast/types/mapped.test.ts | 8 +- src/interpreter/ast/types/mapped.ts | 7 +- src/interpreter/ast/types/object.test.ts | 2 +- .../ast/types/template-literal.test.ts | 24 +-- src/interpreter/ast/types/tuple.test.ts | 26 +-- src/interpreter/ast/types/type-query.test.ts | 12 +- src/interpreter/ast/types/union.test.ts | 4 +- .../ast-converter/types/circular.test.ts | 16 +- src/renderer/markup/registry/registry.ts | 2 +- src/utils/exclude.ts | 4 +- 29 files changed, 285 insertions(+), 280 deletions(-) diff --git a/package-lock.json b/package-lock.json index e8ac71e9..e7ef84de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,16 +19,16 @@ "devDependencies": { "@schoero/configs": "^0.0.0-beta.26", "@types/minimatch": "^5.1.2", - "@types/node": "^20.11.0", + "@types/node": "^20.11.2", "changelogen": "^0.5.5", "cspell": "^8.3.2", - "eslint-plugin-jsonc": "^2.11.2", + "eslint-plugin-jsonc": "^2.12.0", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", "tinyhighlight": "^0.3.2", "ts-json-schema-generator": "^1.5.0", "vite": "^5.0.11", - "vite-plugin-dts": "^3.7.0", + "vite-plugin-dts": "^3.7.1", "vite-plugin-no-bundle": "^3.0.0", "vitest": "^1.2.0" }, @@ -326,9 +326,9 @@ "dev": true }, "node_modules/@cspell/dict-companies": { - "version": "3.0.29", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.29.tgz", - "integrity": "sha512-F/8XnkqjU7jmSDAcD3LSSX+WxCVUWPssqlO4lzGMIK3MNIUt+d48eSIt3pFAIB/Z9y0ojoLHUtWX9HJ1ZtGrXQ==", + "version": "3.0.30", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.30.tgz", + "integrity": "sha512-QAXXMbNLUCqYUsD7elXQ2MB7pUo3PRS9mg4PL/9WFBBY6x07pr0E4vWF9DIv51LG09esDn1cZT2UYS+U7U2iIw==", "dev": true }, "node_modules/@cspell/dict-cpp": { @@ -446,9 +446,9 @@ "dev": true }, "node_modules/@cspell/dict-gaming-terms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz", - "integrity": "sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.5.tgz", + "integrity": "sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw==", "dev": true }, "node_modules/@cspell/dict-git": { @@ -1780,9 +1780,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.0.tgz", - "integrity": "sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==", + "version": "20.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.2.tgz", + "integrity": "sha512-cZShBaVa+UO1LjWWBPmWRR4+/eY/JR/UIEcDlVsw3okjWEu+rB7/mH6X3B/L+qJVHDLjk9QW/y2upp9wp1yDXA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1807,16 +1807,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.1.tgz", - "integrity": "sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz", + "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.18.1", - "@typescript-eslint/type-utils": "6.18.1", - "@typescript-eslint/utils": "6.18.1", - "@typescript-eslint/visitor-keys": "6.18.1", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/type-utils": "6.19.0", + "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1983,15 +1983,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.1.tgz", - "integrity": "sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz", + "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.18.1", - "@typescript-eslint/types": "6.18.1", - "@typescript-eslint/typescript-estree": "6.18.1", - "@typescript-eslint/visitor-keys": "6.18.1", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4" }, "engines": { @@ -2011,13 +2011,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.1.tgz", - "integrity": "sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", + "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.1", - "@typescript-eslint/visitor-keys": "6.18.1" + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2028,13 +2028,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.1.tgz", - "integrity": "sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", + "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.18.1", - "@typescript-eslint/utils": "6.18.1", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/utils": "6.19.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -2055,9 +2055,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.1.tgz", - "integrity": "sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", + "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2068,13 +2068,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.1.tgz", - "integrity": "sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", + "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.1", - "@typescript-eslint/visitor-keys": "6.18.1", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2096,17 +2096,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.1.tgz", - "integrity": "sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", + "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.18.1", - "@typescript-eslint/types": "6.18.1", - "@typescript-eslint/typescript-estree": "6.18.1", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", "semver": "^7.5.4" }, "engines": { @@ -2121,12 +2121,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.1.tgz", - "integrity": "sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", + "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/types": "6.19.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -2290,13 +2290,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.11.tgz", - "integrity": "sha512-xFD+p14L4J0DkzHMdgLiQBU5g861fuOTzag30GsfPXBpghLZOvmd22lKiBMTRRpQRpp7qxPnBlFMoeiGMM4MBg==", + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.14.tgz", + "integrity": "sha512-ro4Zzl/MPdWs7XwxT7omHRxAjMbDFRZEEjD+2m3NBf8YzAe3HuoSEZosXQo+m1GQ1G3LQ1LdmNh1RKTYe+ssEg==", "dev": true, "dependencies": { "@babel/parser": "^7.23.6", - "@vue/shared": "3.4.11", + "@vue/shared": "3.4.14", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" @@ -2315,13 +2315,13 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.11.tgz", - "integrity": "sha512-cRVLROlY7D72WK2xS91L126Dd6xHNTWDWPUBRh1Syk7+TahCk8Eown1/fSi+VX9c76sMMqEZROQSbwV0HSJnhg==", + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.14.tgz", + "integrity": "sha512-nOZTY+veWNa0DKAceNWxorAbWm0INHdQq7cejFaWM1WYnoNSJbSEKYtE7Ir6lR/+mo9fttZpPVI9ZFGJ1juUEQ==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.4.11", - "@vue/shared": "3.4.11" + "@vue/compiler-core": "3.4.14", + "@vue/shared": "3.4.14" } }, "node_modules/@vue/language-core": { @@ -2350,9 +2350,9 @@ } }, "node_modules/@vue/shared": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.11.tgz", - "integrity": "sha512-BtC+vE8kHf/jZoyJnTFd0PmY8NejyUeUkshXm8LriHs8KmQUmcZXIbrifjA3WDmvzg7C8D6gBSvdl49pOfU2lQ==", + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.14.tgz", + "integrity": "sha512-nmi3BtLpvqXAWoRZ6HQ+pFJOHBU4UnH3vD3opgmwXac7vhaHKA9nj1VeGjMggdB9eLtW83eHyPCmOU1qzdsC7Q==", "dev": true }, "node_modules/acorn": { @@ -3463,9 +3463,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.629", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.629.tgz", - "integrity": "sha512-5UUkr3k3CZ/k+9Sw7vaaIMyOzMC0XbPyprKI3n0tbKDqkzTDOjK4izm7DxlkueRMim6ZZQ1ja9F7hoFVplHihA==", + "version": "1.4.630", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz", + "integrity": "sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==", "dev": true }, "node_modules/emoji-regex": { @@ -3611,10 +3611,13 @@ } }, "node_modules/eslint-compat-utils": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", - "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.2.1.tgz", + "integrity": "sha512-+0mhJhMeVaiMrgtltweI3sThf8g9VSZKVNSna6gdULUycp9HmcTvcYTw+b7YY+OUHAPXmRiJ9fvsDFnQq9i//A==", "dev": true, + "dependencies": { + "semver": "^7.5.4" + }, "engines": { "node": ">=12" }, @@ -3755,13 +3758,13 @@ } }, "node_modules/eslint-plugin-jsonc": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.11.2.tgz", - "integrity": "sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.12.0.tgz", + "integrity": "sha512-4+MahaRGW+fMDSYQcDKi8MaIj+VKgZDh3dfYpbI8UxmP53asRbdnaySkDzoEwWmzlIYYpEHQruS+ZAHcC4d/pA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "eslint-compat-utils": "^0.1.2", + "eslint-compat-utils": "^0.2.0", "espree": "^9.6.1", "graphemer": "^1.4.0", "jsonc-eslint-parser": "^2.0.4", @@ -3845,9 +3848,9 @@ } }, "node_modules/eslint-plugin-tailwindcss": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.13.1.tgz", - "integrity": "sha512-2Nlgr9doO6vFAG9w4iGU0sspWXuzypfng10HTF+dFS2NterhweWtgdRvf/f7aaoOUUxVZM8wMIXzazrZ7CxyeA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.14.0.tgz", + "integrity": "sha512-SGy4JmZoP5m1bXCbcsPfQg1/axOdriJf9L22HghNMyDTM5mybg2XEkaMwgax4aR13zZJRRB1nWmkuYUn+SV6/Q==", "dev": true, "dependencies": { "fast-glob": "^3.2.5", @@ -3857,7 +3860,7 @@ "node": ">=12.13.0" }, "peerDependencies": { - "tailwindcss": "^3.3.2" + "tailwindcss": "^3.4.0" } }, "node_modules/eslint-plugin-typescript-sort-keys": { @@ -3958,13 +3961,13 @@ } }, "node_modules/eslint-plugin-yml": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.11.0.tgz", - "integrity": "sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.12.0.tgz", + "integrity": "sha512-NSjhDpY5vLdFaH295sqTMuWfdah4tJNXWkS2tkzPo55zsNsvtBD1nDtdt3vUj9y1HeWocE0iRq22hC+Ahk2QtQ==", "dev": true, "dependencies": { "debug": "^4.3.2", - "eslint-compat-utils": "^0.1.1", + "eslint-compat-utils": "^0.2.1", "lodash": "^4.17.21", "natural-compare": "^1.4.0", "yaml-eslint-parser": "^1.2.1" @@ -10086,8 +10089,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/thenify": { "version": "3.3.1", @@ -10612,9 +10614,9 @@ } }, "node_modules/vite-plugin-dts": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.7.0.tgz", - "integrity": "sha512-np1uPaYzu98AtPReB8zkMnbjwcNHOABsLhqVOf81b3ol9b5M2wPcAVs8oqPnOpr6Us+7yDXVauwkxsk5+ldmRA==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.7.1.tgz", + "integrity": "sha512-VZJckNFpVfRAkmOxhGT5OgTUVWVXxkNQqLpBUuiNGAr9HbtvmvsPLo2JB3Xhn+o/Z9+CT6YZfYa4bX9SGR5hNw==", "dev": true, "dependencies": { "@microsoft/api-extractor": "7.39.0", diff --git a/package.json b/package.json index b98953aa..fac1e209 100644 --- a/package.json +++ b/package.json @@ -70,16 +70,16 @@ "devDependencies": { "@schoero/configs": "^0.0.0-beta.26", "@types/minimatch": "^5.1.2", - "@types/node": "^20.11.0", + "@types/node": "^20.11.2", "changelogen": "^0.5.5", "cspell": "^8.3.2", - "eslint-plugin-jsonc": "^2.11.2", + "eslint-plugin-jsonc": "^2.12.0", "eslint-plugin-sort-exports": "^0.8.0", "rollup-plugin-preserve-shebang": "^1.0.1", "tinyhighlight": "^0.3.2", "ts-json-schema-generator": "^1.5.0", "vite": "^5.0.11", - "vite-plugin-dts": "^3.7.0", + "vite-plugin-dts": "^3.7.1", "vite-plugin-no-bundle": "^3.0.0", "vitest": "^1.2.0" }, diff --git a/src/interpreter/ast/entities/circular.test.ts b/src/interpreter/ast/entities/circular.test.ts index 3a9f99f4..af6b5d4a 100644 --- a/src/interpreter/ast/entities/circular.test.ts +++ b/src/interpreter/ast/entities/circular.test.ts @@ -27,7 +27,7 @@ scope("Interpreter", EntityKind.Circular, () => { const exportedInterfaceA = createInterfaceEntity(ctx, exportedInterfaceASymbol); it("should not create a circular entity if the target symbol is not circular", () => { - expect(exportedInterfaceA.properties[0]!.type.kind).toBe(TypeKind.TypeReference); + expect(exportedInterfaceA.properties[0].type.kind).toBe(TypeKind.TypeReference); }); } @@ -49,10 +49,10 @@ scope("Interpreter", EntityKind.Circular, () => { const exportedInterfaceA = createInterfaceEntity(ctx, exportedInterfaceASymbol); it("should create a circular entity if the target symbol is circular", () => { - assert(exportedInterfaceA.properties[0]!.type.kind === TypeKind.TypeReference); - assert(exportedInterfaceA.properties[0]!.type.type!.kind === TypeKind.Interface); - assert(exportedInterfaceA.properties[0]!.type.type.properties[0].type.kind === TypeKind.TypeReference); - expect(exportedInterfaceA.properties[0]!.type.type.properties[0]!.type.type!.kind).toBe(TypeKind.Circular); + assert(exportedInterfaceA.properties[0].type.kind === TypeKind.TypeReference); + assert(exportedInterfaceA.properties[0].type.type!.kind === TypeKind.Interface); + assert(exportedInterfaceA.properties[0].type.type.properties[0].type.kind === TypeKind.TypeReference); + expect(exportedInterfaceA.properties[0].type.type.properties[0].type.type!.kind).toBe(TypeKind.Circular); }); } diff --git a/src/interpreter/ast/entities/class.test.ts b/src/interpreter/ast/entities/class.test.ts index d730c44c..e114b578 100644 --- a/src/interpreter/ast/entities/class.test.ts +++ b/src/interpreter/ast/entities/class.test.ts @@ -92,7 +92,7 @@ scope("Interpreter", EntityKind.Class, () => { }); it("should have a matching id", () => { - expect(exportedClass.symbolId).toBe(getSymbolId(ctx, exportedSymbols[0]!)); + expect(exportedClass.symbolId).toBe(getSymbolId(ctx, exportedSymbols[0])); }); it("should have a matching description", () => { diff --git a/src/interpreter/ast/entities/constructor.test.ts b/src/interpreter/ast/entities/constructor.test.ts index 48f96916..2c8d16c4 100644 --- a/src/interpreter/ast/entities/constructor.test.ts +++ b/src/interpreter/ast/entities/constructor.test.ts @@ -39,20 +39,20 @@ scope("Interpreter", EntityKind.Getter, () => { it("should have a matching description", () => { - expect(exportedClass.ctor!.signatures[0]!.description).toHaveLength(1); - assert(isJSDocText(exportedClass.ctor!.signatures[0]!.description![0])); - expect(exportedClass.ctor!.signatures[0]!.description![0].text).toBe("Constructor description"); + expect(exportedClass.ctor!.signatures[0].description).toHaveLength(1); + assert(isJSDocText(exportedClass.ctor!.signatures[0].description![0])); + expect(exportedClass.ctor!.signatures[0].description![0].text).toBe("Constructor description"); }); it("should have a matching example", () => { - expect(exportedClass.ctor!.signatures[0]!.example).toHaveLength(1); - assert(isJSDocText(exportedClass.ctor!.signatures[0]!.example![0].content[0])); - expect(exportedClass.ctor!.signatures[0]!.example![0].content[0].text).toBe("Constructor example"); + expect(exportedClass.ctor!.signatures[0].example).toHaveLength(1); + assert(isJSDocText(exportedClass.ctor!.signatures[0].example![0].content[0])); + expect(exportedClass.ctor!.signatures[0].example![0].content[0].text).toBe("Constructor example"); }); it("should return the instance type of the class", () => { - assert(isCircularType(exportedClass.ctor!.signatures[0]!.returnType)); - expect(exportedClass.ctor!.signatures[0]!.returnType.typeId).toBe(exportedClass.typeId); + assert(isCircularType(exportedClass.ctor!.signatures[0].returnType)); + expect(exportedClass.ctor!.signatures[0].returnType.typeId).toBe(exportedClass.typeId); }); } diff --git a/src/interpreter/ast/entities/enum.test.ts b/src/interpreter/ast/entities/enum.test.ts index 1af53c3c..c702ab91 100644 --- a/src/interpreter/ast/entities/enum.test.ts +++ b/src/interpreter/ast/entities/enum.test.ts @@ -105,12 +105,12 @@ scope("Interpreter", EntityKind.Enum, () => { }); it("should have a matching member types with values", () => { - expect(exportedEnum.members[0]!.name).toBe("A"); - assert(exportedEnum.members[0]!.type.kind === TypeKind.NumberLiteral); - expect(exportedEnum.members[0]!.type.value).toBe(0); - expect(exportedEnum.members[1]!.name).toBe("B"); - assert(exportedEnum.members[1]!.type.kind === TypeKind.NumberLiteral); - expect(exportedEnum.members[1]!.type.value).toBe(1); + expect(exportedEnum.members[0].name).toBe("A"); + assert(exportedEnum.members[0].type.kind === TypeKind.NumberLiteral); + expect(exportedEnum.members[0].type.value).toBe(0); + expect(exportedEnum.members[1].name).toBe("B"); + assert(exportedEnum.members[1].type.kind === TypeKind.NumberLiteral); + expect(exportedEnum.members[1].type.value).toBe(1); }); } @@ -133,12 +133,12 @@ scope("Interpreter", EntityKind.Enum, () => { it("should be able to merge multiple enums with the same name", () => { expect(exportedEnum.members).toHaveLength(2); - expect(exportedEnum.members[0]!.name).toBe("A"); - assert(exportedEnum.members[0]!.type.kind === TypeKind.NumberLiteral); - expect(exportedEnum.members[0]!.type.value).toBe(0); - expect(exportedEnum.members[1]!.name).toBe("B"); - assert(exportedEnum.members[1]!.type.kind === TypeKind.NumberLiteral); - expect(exportedEnum.members[1]!.type.value).toBe(1); + expect(exportedEnum.members[0].name).toBe("A"); + assert(exportedEnum.members[0].type.kind === TypeKind.NumberLiteral); + expect(exportedEnum.members[0].type.value).toBe(0); + expect(exportedEnum.members[1].name).toBe("B"); + assert(exportedEnum.members[1].type.kind === TypeKind.NumberLiteral); + expect(exportedEnum.members[1].type.value).toBe(1); }); } diff --git a/src/interpreter/ast/entities/getter.test.ts b/src/interpreter/ast/entities/getter.test.ts index 9cc9ed9a..8b0fd491 100644 --- a/src/interpreter/ast/entities/getter.test.ts +++ b/src/interpreter/ast/entities/getter.test.ts @@ -35,27 +35,27 @@ scope("Interpreter", EntityKind.Getter, () => { }); it("should have a matching kind", () => { - expect(exportedClass.getters[0]!.kind).toBe(EntityKind.Getter); + expect(exportedClass.getters[0].kind).toBe(EntityKind.Getter); }); it("should have a matching name", () => { - expect(exportedClass.getters[0]!.name).toBe("getter"); + expect(exportedClass.getters[0].name).toBe("getter"); }); it("should have one signature", () => { - expect(exportedClass.getters[0]!.signatures).toHaveLength(1); + expect(exportedClass.getters[0].signatures).toHaveLength(1); }); it("should have a matching description", () => { - expect(exportedClass.getters[0]!.signatures[0].description).toHaveLength(1); - assert(isJSDocText(exportedClass.getters[0]!.signatures[0].description![0])); - expect(exportedClass.getters[0]!.signatures[0].description![0].text).toBe("Getter description"); + expect(exportedClass.getters[0].signatures[0].description).toHaveLength(1); + assert(isJSDocText(exportedClass.getters[0].signatures[0].description![0])); + expect(exportedClass.getters[0].signatures[0].description![0].text).toBe("Getter description"); }); it("should have a matching example", () => { - expect(exportedClass.getters[0]!.signatures[0].example).toHaveLength(1); - assert(isJSDocText(exportedClass.getters[0]!.signatures[0].example![0].content[0])); - expect(exportedClass.getters[0]!.signatures[0].example![0].content[0].text).toBe("Getter example"); + expect(exportedClass.getters[0].signatures[0].example).toHaveLength(1); + assert(isJSDocText(exportedClass.getters[0].signatures[0].example![0].content[0])); + expect(exportedClass.getters[0].signatures[0].example![0].content[0].text).toBe("Getter example"); }); } diff --git a/src/interpreter/ast/entities/interface.test.ts b/src/interpreter/ast/entities/interface.test.ts index 521da5f4..1ad144d8 100644 --- a/src/interpreter/ast/entities/interface.test.ts +++ b/src/interpreter/ast/entities/interface.test.ts @@ -176,23 +176,23 @@ scope("Interpreter", EntityKind.Interface, () => { it("should be able to parse inheritance", () => { expect(exportedInterfaceB.properties).toHaveLength(1); - expect(exportedInterfaceB.properties[0]!.name).toBe("b"); + expect(exportedInterfaceB.properties[0].name).toBe("b"); expect(exportedInterfaceB.heritage).toBeDefined(); expect(exportedInterfaceB.heritage).toHaveLength(1); - assert(exportedInterfaceB.heritage![0]!.instanceType.kind === TypeKind.Interface); - expect(exportedInterfaceB.heritage![0]!.instanceType.properties).toHaveLength(1); - expect(exportedInterfaceB.heritage![0]!.instanceType.properties[0]!.name).toBe("a"); + assert(exportedInterfaceB.heritage![0].instanceType.kind === TypeKind.Interface); + expect(exportedInterfaceB.heritage![0].instanceType.properties).toHaveLength(1); + expect(exportedInterfaceB.heritage![0].instanceType.properties[0].name).toBe("a"); expect(exportedInterfaceC.properties).toHaveLength(1); - expect(exportedInterfaceC.properties[0]!.name).toBe("c"); + expect(exportedInterfaceC.properties[0].name).toBe("c"); expect(exportedInterfaceC.heritage).toBeDefined(); expect(exportedInterfaceC.heritage).toHaveLength(1); - assert(exportedInterfaceC.heritage![0]!.instanceType.kind === TypeKind.Interface); - expect(exportedInterfaceC.heritage![0]!.instanceType.properties).toHaveLength(2); - expect(exportedInterfaceC.heritage![0]!.instanceType.properties[1]!.name).toBe("a"); - expect(exportedInterfaceC.heritage![0]!.instanceType.properties[0]!.name).toBe("b"); + assert(exportedInterfaceC.heritage![0].instanceType.kind === TypeKind.Interface); + expect(exportedInterfaceC.heritage![0].instanceType.properties).toHaveLength(2); + expect(exportedInterfaceC.heritage![0].instanceType.properties[1].name).toBe("a"); + expect(exportedInterfaceC.heritage![0].instanceType.properties[0].name).toBe("b"); }); @@ -224,13 +224,13 @@ scope("Interpreter", EntityKind.Interface, () => { expect(exportedInterfaceC.heritage).toBeDefined(); expect(exportedInterfaceC.heritage).toHaveLength(2); - assert(exportedInterfaceC.heritage![0]!.instanceType.kind === TypeKind.Interface); - expect(exportedInterfaceC.heritage![0]!.instanceType.properties).toHaveLength(1); - expect(exportedInterfaceC.heritage![0]!.instanceType.properties[0]!.name).toBe("a"); + assert(exportedInterfaceC.heritage![0].instanceType.kind === TypeKind.Interface); + expect(exportedInterfaceC.heritage![0].instanceType.properties).toHaveLength(1); + expect(exportedInterfaceC.heritage![0].instanceType.properties[0].name).toBe("a"); - assert(exportedInterfaceC.heritage![1]!.instanceType.kind === TypeKind.Interface); - expect(exportedInterfaceC.heritage![1]!.instanceType.properties).toHaveLength(1); - expect(exportedInterfaceC.heritage![1]!.instanceType.properties[0]!.name).toBe("b"); + assert(exportedInterfaceC.heritage![1].instanceType.kind === TypeKind.Interface); + expect(exportedInterfaceC.heritage![1].instanceType.properties).toHaveLength(1); + expect(exportedInterfaceC.heritage![1].instanceType.properties[0].name).toBe("b"); }); @@ -253,8 +253,8 @@ scope("Interpreter", EntityKind.Interface, () => { expect(exportedInterface.typeParameters).toBeDefined(); expect(exportedInterface.typeParameters).toHaveLength(1); expect(exportedInterface.properties).toHaveLength(1); - assert(exportedInterface.properties[0]!.type.kind === TypeKind.TypeReference); - expect(exportedInterface.properties[0]!.type.type!.kind).toBe(TypeKind.TypeParameter); + assert(exportedInterface.properties[0].type.kind === TypeKind.TypeReference); + expect(exportedInterface.properties[0].type.type!.kind).toBe(TypeKind.TypeParameter); }); } diff --git a/src/interpreter/ast/entities/method.test.ts b/src/interpreter/ast/entities/method.test.ts index 87abeac0..a0a7e239 100644 --- a/src/interpreter/ast/entities/method.test.ts +++ b/src/interpreter/ast/entities/method.test.ts @@ -34,15 +34,15 @@ scope("Interpreter", EntityKind.Method, () => { }); it("should have a matching kind", () => { - expect(exportedClass.methods[0]!.kind).toBe(EntityKind.Method); + expect(exportedClass.methods[0].kind).toBe(EntityKind.Method); }); it("should have a matching name", () => { - expect(exportedClass.methods[0]!.name).toBe("method"); + expect(exportedClass.methods[0].name).toBe("method"); }); it("should have one signature", () => { - expect(exportedClass.methods[0]!.signatures).toHaveLength(1); + expect(exportedClass.methods[0].signatures).toHaveLength(1); }); diff --git a/src/interpreter/ast/entities/parameter.test.ts b/src/interpreter/ast/entities/parameter.test.ts index 91ccbf64..16d55325 100644 --- a/src/interpreter/ast/entities/parameter.test.ts +++ b/src/interpreter/ast/entities/parameter.test.ts @@ -26,7 +26,7 @@ scope("Interpreter", EntityKind.Parameter, () => { it("should be able to parse a parameter", () => { expect(exportedFunction.kind).toBe(EntityKind.Function); expect(exportedFunction.signatures).toHaveLength(1); - expect(exportedFunction.signatures[0]!.parameters).toHaveLength(1); + expect(exportedFunction.signatures[0].parameters).toHaveLength(1); }); } @@ -44,7 +44,7 @@ scope("Interpreter", EntityKind.Parameter, () => { const symbol = exportedSymbols.find(s => s.name === "functionSymbol")!; const exportedFunction = createFunctionEntity(ctx, symbol); - const parameter = exportedFunction.signatures[0]!.parameters![0]!; + const parameter = exportedFunction.signatures[0].parameters![0]; it("should have a matching kind", () => { expect(parameter.kind).toBe(EntityKind.Parameter); @@ -84,7 +84,7 @@ scope("Interpreter", EntityKind.Parameter, () => { const symbol = exportedSymbols.find(s => s.name === "functionSymbol")!; const exportedFunction = createFunctionEntity(ctx, symbol); - const parameter = exportedFunction.signatures[0]!.parameters![0]!; + const parameter = exportedFunction.signatures[0].parameters![0]; it("should be able to handle optional types", () => { expect(parameter.type.kind).toBe(TypeKind.String); @@ -103,7 +103,7 @@ scope("Interpreter", EntityKind.Parameter, () => { const symbol = exportedSymbols.find(s => s.name === "functionSymbol")!; const exportedFunction = createFunctionEntity(ctx, symbol); - const parameter = exportedFunction.signatures[0]!.parameters![0]!; + const parameter = exportedFunction.signatures[0].parameters![0]; it("should be able to handle initialized types", () => { expect(parameter.type.kind).toBe(TypeKind.String); @@ -123,7 +123,7 @@ scope("Interpreter", EntityKind.Parameter, () => { const symbol = exportedSymbols.find(s => s.name === "functionSymbol")!; const exportedFunction = createFunctionEntity(ctx, symbol); - const parameter = exportedFunction.signatures[0]!.parameters![0]!; + const parameter = exportedFunction.signatures[0].parameters![0]; it("should be able to handle rest types", () => { expect(parameter.rest).toBe(true); diff --git a/src/interpreter/ast/entities/property.test.ts b/src/interpreter/ast/entities/property.test.ts index b756217f..d47190b5 100644 --- a/src/interpreter/ast/entities/property.test.ts +++ b/src/interpreter/ast/entities/property.test.ts @@ -95,24 +95,24 @@ scope("Interpreter", EntityKind.Property, () => { it("should have a matching name", () => { assert(exportedTypeAlias.type.kind === TypeKind.TypeLiteral); - expect(exportedTypeAlias.type.properties[0]!.name).toBe("property"); + expect(exportedTypeAlias.type.properties[0].name).toBe("property"); assert(exportedObjectLiteral.type.kind === TypeKind.ObjectLiteral); - expect(exportedObjectLiteral.type.properties[0]!.name).toBe("property"); + expect(exportedObjectLiteral.type.properties[0].name).toBe("property"); expect(exportedClass.properties[0].name).toBe("property"); }); it("should have a matching description", () => { assert(exportedTypeAlias.type.kind === TypeKind.TypeLiteral); - expect(exportedTypeAlias.type.properties[0]!.description).toHaveLength(1); - assert(isJSDocText(exportedTypeAlias.type.properties[0]!.description![0])); - expect(exportedTypeAlias.type.properties[0]!.description![0].text).toBe("Property description"); + expect(exportedTypeAlias.type.properties[0].description).toHaveLength(1); + assert(isJSDocText(exportedTypeAlias.type.properties[0].description![0])); + expect(exportedTypeAlias.type.properties[0].description![0].text).toBe("Property description"); assert(exportedObjectLiteral.type.kind === TypeKind.ObjectLiteral); - expect(exportedObjectLiteral.type.properties[0]!.description).toHaveLength(1); - assert(isJSDocText(exportedObjectLiteral.type.properties[0]!.description![0])); - expect(exportedObjectLiteral.type.properties[0]!.description![0].text).toBe("Property description"); + expect(exportedObjectLiteral.type.properties[0].description).toHaveLength(1); + assert(isJSDocText(exportedObjectLiteral.type.properties[0].description![0])); + expect(exportedObjectLiteral.type.properties[0].description![0].text).toBe("Property description"); expect(exportedClass.properties[0].description).toHaveLength(1); assert(isJSDocText(exportedClass.properties[0].description![0])); @@ -121,14 +121,14 @@ scope("Interpreter", EntityKind.Property, () => { it("should have a matching example", () => { assert(exportedTypeAlias.type.kind === TypeKind.TypeLiteral); - expect(exportedTypeAlias.type.properties[0]!.example).toHaveLength(1); - assert(isJSDocText(exportedTypeAlias.type.properties[0]!.example![0].content[0])); - expect(exportedTypeAlias.type.properties[0]!.example![0].content[0].text).toBe("Property example"); + expect(exportedTypeAlias.type.properties[0].example).toHaveLength(1); + assert(isJSDocText(exportedTypeAlias.type.properties[0].example![0].content[0])); + expect(exportedTypeAlias.type.properties[0].example![0].content[0].text).toBe("Property example"); assert(exportedObjectLiteral.type.kind === TypeKind.ObjectLiteral); - expect(exportedObjectLiteral.type.properties[0]!.example).toHaveLength(1); - assert(isJSDocText(exportedObjectLiteral.type.properties[0]!.example![0].content[0])); - expect(exportedObjectLiteral.type.properties[0]!.example![0].content[0].text).toBe("Property example"); + expect(exportedObjectLiteral.type.properties[0].example).toHaveLength(1); + assert(isJSDocText(exportedObjectLiteral.type.properties[0].example![0].content[0])); + expect(exportedObjectLiteral.type.properties[0].example![0].content[0].text).toBe("Property example"); expect(exportedClass.properties[0].example).toHaveLength(1); assert(isJSDocText(exportedClass.properties[0].example![0].content[0])); @@ -137,10 +137,10 @@ scope("Interpreter", EntityKind.Property, () => { it("should have a matching type", () => { assert(exportedTypeAlias.type.kind === TypeKind.TypeLiteral); - expect(exportedTypeAlias.type.properties[0]!.type.kind).toBe(TypeKind.String); + expect(exportedTypeAlias.type.properties[0].type.kind).toBe(TypeKind.String); assert(exportedObjectLiteral.type.kind === TypeKind.ObjectLiteral); - expect(exportedObjectLiteral.type.properties[0]!.type.kind).toBe(TypeKind.String); + expect(exportedObjectLiteral.type.properties[0].type.kind).toBe(TypeKind.String); expect(exportedClass.properties[0].type.kind).toBe(TypeKind.String); }); @@ -219,7 +219,7 @@ scope("Interpreter", EntityKind.Property, () => { assert(exportedTypeAlias.type.kind === TypeKind.TypeLiteral); - expect(exportedTypeAlias.type.properties[0]!.modifiers).toContain("readonly"); + expect(exportedTypeAlias.type.properties[0].modifiers).toContain("readonly"); expect(exportedClass.properties.find(property => property.name === "publicProperty")!.modifiers).toContain("public"); expect(exportedClass.properties.find(property => property.name === "privateProperty")!.modifiers).toContain("private"); diff --git a/src/interpreter/ast/entities/setter.test.ts b/src/interpreter/ast/entities/setter.test.ts index dcf59cb0..a1ad773a 100644 --- a/src/interpreter/ast/entities/setter.test.ts +++ b/src/interpreter/ast/entities/setter.test.ts @@ -35,27 +35,27 @@ scope("Interpreter", EntityKind.Setter, () => { }); it("should have a matching kind", () => { - expect(exportedClass.setters[0]!.kind).toBe(EntityKind.Setter); + expect(exportedClass.setters[0].kind).toBe(EntityKind.Setter); }); it("should have a matching name", () => { - expect(exportedClass.setters[0]!.name).toBe("setter"); + expect(exportedClass.setters[0].name).toBe("setter"); }); it("should have one signature", () => { - expect(exportedClass.setters[0]!.signatures).toHaveLength(1); + expect(exportedClass.setters[0].signatures).toHaveLength(1); }); it("should have a matching description", () => { - expect(exportedClass.setters[0]!.signatures[0].description).toHaveLength(1); - assert(isJSDocText(exportedClass.setters[0]!.signatures[0].description![0])); - expect(exportedClass.setters[0]!.signatures[0].description![0].text).toBe("Setter description"); + expect(exportedClass.setters[0].signatures[0].description).toHaveLength(1); + assert(isJSDocText(exportedClass.setters[0].signatures[0].description![0])); + expect(exportedClass.setters[0].signatures[0].description![0].text).toBe("Setter description"); }); it("should have a matching example", () => { - expect(exportedClass.setters[0]!.signatures[0].example).toHaveLength(1); - assert(isJSDocText(exportedClass.setters[0]!.signatures[0].example![0].content[0])); - expect(exportedClass.setters[0]!.signatures[0].example![0].content[0].text).toBe("Setter example"); + expect(exportedClass.setters[0].signatures[0].example).toHaveLength(1); + assert(isJSDocText(exportedClass.setters[0].signatures[0].example![0].content[0])); + expect(exportedClass.setters[0].signatures[0].example![0].content[0].text).toBe("Setter example"); }); } diff --git a/src/interpreter/ast/entities/signature.test.ts b/src/interpreter/ast/entities/signature.test.ts index e806bd33..9412a0b4 100644 --- a/src/interpreter/ast/entities/signature.test.ts +++ b/src/interpreter/ast/entities/signature.test.ts @@ -57,7 +57,7 @@ scope("Interpreter", "Signature", () => { }); it("should have a matching kind", () => { - expect(exportedFunction.signatures[0]!.kind).toBe(EntityKind.FunctionSignature); + expect(exportedFunction.signatures[0].kind).toBe(EntityKind.FunctionSignature); }); it("should have a matching description", () => { @@ -73,7 +73,7 @@ scope("Interpreter", "Signature", () => { }); it("should have a matching position", () => { - expect(exportedFunction.signatures[0]!.position).toStrictEqual({ + expect(exportedFunction.signatures[0].position).toStrictEqual({ column: 0, file: "/index.ts", line: 5 @@ -81,7 +81,7 @@ scope("Interpreter", "Signature", () => { }); it("should have a return type which is a boolean", () => { - expect(exportedFunction.signatures[0]!.returnType.kind).toBe(TypeKind.Boolean); + expect(exportedFunction.signatures[0].returnType.kind).toBe(TypeKind.Boolean); }); } @@ -116,21 +116,21 @@ scope("Interpreter", "Signature", () => { }); it("should have a 'declarationId' for each signature", () => { - expect(exportedFunction.signatures[0]!.declarationId).toBeDefined(); - expect(exportedInterface.callSignatures[0]!.declarationId).toBeDefined(); - expect(exportedInterface.constructSignatures[0]!.declarationId).toBeDefined(); - expect(exportedInterface.methodSignatures[0]!.declarationId).toBeDefined(); - expect(exportedInterface.setterSignatures[0]!.declarationId).toBeDefined(); - expect(exportedInterface.getterSignatures[0]!.declarationId).toBeDefined(); + expect(exportedFunction.signatures[0].declarationId).toBeDefined(); + expect(exportedInterface.callSignatures[0].declarationId).toBeDefined(); + expect(exportedInterface.constructSignatures[0].declarationId).toBeDefined(); + expect(exportedInterface.methodSignatures[0].declarationId).toBeDefined(); + expect(exportedInterface.setterSignatures[0].declarationId).toBeDefined(); + expect(exportedInterface.getterSignatures[0].declarationId).toBeDefined(); }); it("should have the correct kind for each signature", () => { - expect(exportedFunction.signatures[0]!.kind).toBe(EntityKind.FunctionSignature); - expect(exportedInterface.callSignatures[0]!.kind).toBe(EntityKind.CallSignature); - expect(exportedInterface.constructSignatures[0]!.kind).toBe(EntityKind.ConstructSignature); - expect(exportedInterface.methodSignatures[0]!.kind).toBe(EntityKind.MethodSignature); - expect(exportedInterface.setterSignatures[0]!.kind).toBe(EntityKind.SetterSignature); - expect(exportedInterface.getterSignatures[0]!.kind).toBe(EntityKind.GetterSignature); + expect(exportedFunction.signatures[0].kind).toBe(EntityKind.FunctionSignature); + expect(exportedInterface.callSignatures[0].kind).toBe(EntityKind.CallSignature); + expect(exportedInterface.constructSignatures[0].kind).toBe(EntityKind.ConstructSignature); + expect(exportedInterface.methodSignatures[0].kind).toBe(EntityKind.MethodSignature); + expect(exportedInterface.setterSignatures[0].kind).toBe(EntityKind.SetterSignature); + expect(exportedInterface.getterSignatures[0].kind).toBe(EntityKind.GetterSignature); }); } @@ -149,13 +149,13 @@ scope("Interpreter", "Signature", () => { const exportedFunction = createFunctionEntity(ctx, symbol); it("should be able to handle type parameters", () => { - expect(exportedFunction.signatures[0]!.typeParameters).toHaveLength(1); + expect(exportedFunction.signatures[0].typeParameters).toHaveLength(1); }); it("should link the function parameter to the type parameter", () => { - assert(exportedFunction.signatures[0]!.parameters![0]!.type.kind === TypeKind.TypeReference); - assert(exportedFunction.signatures[0]!.parameters![0]!.type.type?.kind === TypeKind.TypeParameter); - expect(exportedFunction.signatures[0]!.parameters![0]!.type.target!).toEqual(exportedFunction.signatures[0]!.typeParameters![0]); + assert(exportedFunction.signatures[0].parameters![0].type.kind === TypeKind.TypeReference); + assert(exportedFunction.signatures[0].parameters![0].type.type?.kind === TypeKind.TypeParameter); + expect(exportedFunction.signatures[0].parameters![0].type.target!).toEqual(exportedFunction.signatures[0].typeParameters![0]); }); } @@ -206,8 +206,8 @@ scope("Interpreter", "Signature", () => { const exportedFunction = createFunctionEntity(ctx, symbol); it("should return the declared type if available", () => { - assert(exportedFunction.signatures[0]!.returnType.kind === TypeKind.TypeReference); - expect(exportedFunction.signatures[0]!.returnType.name).toBe("Test"); + assert(exportedFunction.signatures[0].returnType.kind === TypeKind.TypeReference); + expect(exportedFunction.signatures[0].returnType.name).toBe("Test"); }); } diff --git a/src/interpreter/ast/entities/type-parameter.test.ts b/src/interpreter/ast/entities/type-parameter.test.ts index c0c6b3bb..27e18984 100644 --- a/src/interpreter/ast/entities/type-parameter.test.ts +++ b/src/interpreter/ast/entities/type-parameter.test.ts @@ -30,11 +30,11 @@ scope("Interpreter", EntityKind.TypeParameter, () => { }); it("should have a matching type parameter name", () => { - expect(exportedTypeAlias.typeParameters![0]!.name).toBe("T"); + expect(exportedTypeAlias.typeParameters![0].name).toBe("T"); }); it("should have a matching type parameter kind", () => { - expect(exportedTypeAlias.typeParameters![0]!.kind).toBe(EntityKind.TypeParameter); + expect(exportedTypeAlias.typeParameters![0].kind).toBe(EntityKind.TypeParameter); }); } @@ -51,8 +51,8 @@ scope("Interpreter", EntityKind.TypeParameter, () => { const exportedTypeAlias = createTypeAliasEntity(ctx, symbol); it("should have a matching constraint", () => { - expect(exportedTypeAlias.typeParameters![0]!.constraint).toBeDefined(); - expect(exportedTypeAlias.typeParameters![0]!.constraint!.kind).toBe(TypeKind.String); + expect(exportedTypeAlias.typeParameters![0].constraint).toBeDefined(); + expect(exportedTypeAlias.typeParameters![0].constraint!.kind).toBe(TypeKind.String); }); } @@ -69,7 +69,7 @@ scope("Interpreter", EntityKind.TypeParameter, () => { const exportedTypeAlias = createTypeAliasEntity(ctx, symbol); it("should have a matching initializer", () => { - expect(exportedTypeAlias.typeParameters![0]!.initializer!.kind).toBe(TypeKind.StringLiteral); + expect(exportedTypeAlias.typeParameters![0].initializer!.kind).toBe(TypeKind.StringLiteral); }); } @@ -89,10 +89,10 @@ scope("Interpreter", EntityKind.TypeParameter, () => { const exportedTypeAlias = createTypeAliasEntity(ctx, symbol); it("should have a type parameter description", () => { - expect(exportedTypeAlias.typeParameters![0]!.description).toBeDefined(); - expect(exportedTypeAlias.typeParameters![0]!.description).toHaveLength(1); - assert(isJSDocText(exportedTypeAlias.typeParameters![0]!.description![0])); - expect(exportedTypeAlias.typeParameters![0]!.description![0].text).toBe("Generic type parameter description"); + expect(exportedTypeAlias.typeParameters![0].description).toBeDefined(); + expect(exportedTypeAlias.typeParameters![0].description).toHaveLength(1); + assert(isJSDocText(exportedTypeAlias.typeParameters![0].description![0])); + expect(exportedTypeAlias.typeParameters![0].description![0].text).toBe("Generic type parameter description"); }); } diff --git a/src/interpreter/ast/types/array.ts b/src/interpreter/ast/types/array.ts index ba492f4f..1d25e928 100644 --- a/src/interpreter/ast/types/array.ts +++ b/src/interpreter/ast/types/array.ts @@ -16,7 +16,7 @@ export const createArrayType = (ctx: InterpreterContext, typeReference: TypeRefe const typeId = getTypeId(ctx, typeReference); const position = getPositionByType(ctx, typeReference); - const type = getTypeByType(ctx, typeReference.typeArguments![0]!); + const type = getTypeByType(ctx, typeReference.typeArguments![0]); const kind = TypeKind.Array; return { diff --git a/src/interpreter/ast/types/circular.test.ts b/src/interpreter/ast/types/circular.test.ts index 97c5a141..2e4a36e4 100644 --- a/src/interpreter/ast/types/circular.test.ts +++ b/src/interpreter/ast/types/circular.test.ts @@ -26,8 +26,8 @@ scope("Interpreter", TypeKind.Circular, () => { const exportedInterfaceA = createInterfaceEntity(ctx, exportedInterfaceASymbol); it("should not create a circular type if the target type is not circular", () => { - assert(exportedInterfaceA.properties[0]!.type.kind === TypeKind.TypeReference); - expect(exportedInterfaceA.properties[0]!.type.type?.kind).toBe(TypeKind.Interface); + assert(exportedInterfaceA.properties[0].type.kind === TypeKind.TypeReference); + expect(exportedInterfaceA.properties[0].type.type?.kind).toBe(TypeKind.Interface); }); } @@ -49,10 +49,10 @@ scope("Interpreter", TypeKind.Circular, () => { const exportedInterfaceA = createInterfaceEntity(ctx, exportedInterfaceASymbol); it("should create a circular type for if the target type is circular", () => { - assert(exportedInterfaceA.properties[0]!.type.kind === TypeKind.TypeReference); - assert(exportedInterfaceA.properties[0]!.type.type!.kind === TypeKind.Interface); - assert(exportedInterfaceA.properties[0]!.type.type.properties[0].type.kind === TypeKind.TypeReference); - expect(exportedInterfaceA.properties[0]!.type.type.properties[0]!.type.type!.kind).toBe(TypeKind.Circular); + assert(exportedInterfaceA.properties[0].type.kind === TypeKind.TypeReference); + assert(exportedInterfaceA.properties[0].type.type!.kind === TypeKind.Interface); + assert(exportedInterfaceA.properties[0].type.type.properties[0].type.kind === TypeKind.TypeReference); + expect(exportedInterfaceA.properties[0].type.type.properties[0].type.type!.kind).toBe(TypeKind.Circular); }); } diff --git a/src/interpreter/ast/types/expression.test.ts b/src/interpreter/ast/types/expression.test.ts index d52f0b9d..9f16c557 100644 --- a/src/interpreter/ast/types/expression.test.ts +++ b/src/interpreter/ast/types/expression.test.ts @@ -48,7 +48,7 @@ scope("Interpreter", TypeKind.Expression, () => { expect(exportedClass.heritage).toBeDefined(); expect(exportedClass.heritage!.typeArguments).toBeDefined(); expect(exportedClass.heritage!.typeArguments).toHaveLength(1); - expect(exportedClass.heritage!.typeArguments![0]!.kind).toBe(TypeKind.StringLiteral); + expect(exportedClass.heritage!.typeArguments![0].kind).toBe(TypeKind.StringLiteral); }); it("should resolve properties based on a type argument of a class heritage clause", () => { @@ -81,7 +81,7 @@ scope("Interpreter", TypeKind.Expression, () => { expect(exportedInterface.heritage).toBeDefined(); expect(exportedInterface.heritage!).toHaveLength(1); expect(exportedInterface.heritage![0].typeArguments).toHaveLength(1); - expect(exportedInterface.heritage![0].typeArguments![0]!.kind).toBe(TypeKind.StringLiteral); + expect(exportedInterface.heritage![0].typeArguments![0].kind).toBe(TypeKind.StringLiteral); }); it("should resolve properties based on a type argument of a interface heritage clause", () => { diff --git a/src/interpreter/ast/types/function.test.ts b/src/interpreter/ast/types/function.test.ts index 2fd61aa2..d2fed7d2 100644 --- a/src/interpreter/ast/types/function.test.ts +++ b/src/interpreter/ast/types/function.test.ts @@ -99,7 +99,7 @@ scope("Interpreter", EntityKind.Function, () => { it("should have a matching return type", () => { assert(exportedTypeAlias1.type.kind === TypeKind.Function); - expect(exportedTypeAlias1.type.signatures[0]!.returnType.kind).toBe(TypeKind.Boolean); + expect(exportedTypeAlias1.type.signatures[0].returnType.kind).toBe(TypeKind.Boolean); }); } diff --git a/src/interpreter/ast/types/interface.test.ts b/src/interpreter/ast/types/interface.test.ts index e966e2ab..cee29127 100644 --- a/src/interpreter/ast/types/interface.test.ts +++ b/src/interpreter/ast/types/interface.test.ts @@ -192,13 +192,13 @@ scope("Interpreter", EntityKind.Interface, () => { it("should be able to parse inheritance", () => { expect(interfaceTypeB.properties).toHaveLength(2); - expect(interfaceTypeB.properties[0]!.name).toBe("b"); - expect(interfaceTypeB.properties[1]!.name).toBe("a"); + expect(interfaceTypeB.properties[0].name).toBe("b"); + expect(interfaceTypeB.properties[1].name).toBe("a"); expect(interfaceTypeC.properties).toHaveLength(3); - expect(interfaceTypeC.properties[0]!.name).toBe("c"); - expect(interfaceTypeC.properties[1]!.name).toBe("b"); - expect(interfaceTypeC.properties[2]!.name).toBe("a"); + expect(interfaceTypeC.properties[0].name).toBe("c"); + expect(interfaceTypeC.properties[1].name).toBe("b"); + expect(interfaceTypeC.properties[2].name).toBe("a"); }); @@ -231,9 +231,9 @@ scope("Interpreter", EntityKind.Interface, () => { it("should be able to handle multiple extended interfaces at the same time", () => { expect(interfaceTypeC.properties).toHaveLength(3); - expect(interfaceTypeC.properties[0]!.name).toBe("c"); - expect(interfaceTypeC.properties[1]!.name).toBe("a"); - expect(interfaceTypeC.properties[2]!.name).toBe("b"); + expect(interfaceTypeC.properties[0].name).toBe("c"); + expect(interfaceTypeC.properties[1].name).toBe("a"); + expect(interfaceTypeC.properties[2].name).toBe("b"); }); } @@ -253,11 +253,11 @@ scope("Interpreter", EntityKind.Interface, () => { it("should support generics", () => { expect(exportedInterface.typeParameters).toHaveLength(1); - expect(exportedInterface.typeParameters![0]!.name).toBe("T"); + expect(exportedInterface.typeParameters![0].name).toBe("T"); expect(exportedInterface.properties).toHaveLength(1); - assert(exportedInterface.properties[0]!.type.kind === TypeKind.TypeReference); - expect(exportedInterface.properties[0]!.type.type?.kind).toBe(TypeKind.TypeParameter); + assert(exportedInterface.properties[0].type.kind === TypeKind.TypeReference); + expect(exportedInterface.properties[0].type.type?.kind).toBe(TypeKind.TypeParameter); }); } diff --git a/src/interpreter/ast/types/mapped.test.ts b/src/interpreter/ast/types/mapped.test.ts index 66217999..b16153fc 100644 --- a/src/interpreter/ast/types/mapped.test.ts +++ b/src/interpreter/ast/types/mapped.test.ts @@ -43,10 +43,10 @@ scope("Interpreter", TypeKind.Mapped, () => { it("should have matching properties", () => { assert(exportedTypeAlias.type.kind === TypeKind.Mapped); assert(exportedTypeAlias.type.type.kind === TypeKind.TypeLiteral); - expect(exportedTypeAlias.type.type.properties[0]!.type.kind).toBe(TypeKind.String); - expect(exportedTypeAlias.type.type.properties[0]!.name).toBe("A"); - expect(exportedTypeAlias.type.type.properties[1]!.type.kind).toBe(TypeKind.String); - expect(exportedTypeAlias.type.type.properties[1]!.name).toBe("B"); + expect(exportedTypeAlias.type.type.properties[0].type.kind).toBe(TypeKind.String); + expect(exportedTypeAlias.type.type.properties[0].name).toBe("A"); + expect(exportedTypeAlias.type.type.properties[1].type.kind).toBe(TypeKind.String); + expect(exportedTypeAlias.type.type.properties[1].name).toBe("B"); }); it("should have a correct type parameter", () => { diff --git a/src/interpreter/ast/types/mapped.ts b/src/interpreter/ast/types/mapped.ts index f10eb787..8d551d75 100644 --- a/src/interpreter/ast/types/mapped.ts +++ b/src/interpreter/ast/types/mapped.ts @@ -17,13 +17,16 @@ import type { InterpreterContext } from "unwritten:type-definitions/context"; export function createMappedTypeByTypeNode(ctx: InterpreterContext, typeNode: MappedTypeNode): MappedType { const kind = TypeKind.Mapped; - const typeId = getIdByTypeNode(ctx, typeNode); - const position = getPositionByDeclaration(ctx, typeNode); + const optional = typeNode.questionToken !== undefined; const readonly = typeNode.readonlyToken !== undefined; + + const typeId = getIdByTypeNode(ctx, typeNode); + const position = getPositionByDeclaration(ctx, typeNode); const resolvedType = getResolvedTypeByTypeNode(ctx, typeNode); const type = getTypeByResolvedAndDeclaredType(ctx, resolvedType); const typeParameter = createTypeParameterEntityByDeclaration(ctx, typeNode.typeParameter); + const valueType = typeNode.type && getTypeByTypeNode(ctx, typeNode.type); return { diff --git a/src/interpreter/ast/types/object.test.ts b/src/interpreter/ast/types/object.test.ts index 1f44cc58..c5b64d71 100644 --- a/src/interpreter/ast/types/object.test.ts +++ b/src/interpreter/ast/types/object.test.ts @@ -23,7 +23,7 @@ scope("Interpreter", TypeKind.Object, () => { const { ctx, exportedSymbols } = compile(testFileContent); const symbol = exportedSymbols.find(s => s.name === "ObjectType")!; - const tsType = ctx.checker.getTypeAtLocation(symbol.declarations![0]!); + const tsType = ctx.checker.getTypeAtLocation(symbol.declarations![0]); assert(isObjectType(ctx, tsType), "tsType is not an object type"); diff --git a/src/interpreter/ast/types/template-literal.test.ts b/src/interpreter/ast/types/template-literal.test.ts index 32813e0a..de5249a6 100644 --- a/src/interpreter/ast/types/template-literal.test.ts +++ b/src/interpreter/ast/types/template-literal.test.ts @@ -32,13 +32,13 @@ scope("Interpreter", TypeKind.TemplateLiteral, () => { it("should have one matching type", () => { assert(exportedTypeAlias.type.kind === TypeKind.TemplateLiteral); expect(exportedTypeAlias.type.types).toHaveLength(1); - expect(exportedTypeAlias.type.types[0]!.kind).toBe(TypeKind.Number); + expect(exportedTypeAlias.type.types[0].kind).toBe(TypeKind.Number); }); it("should have one matching span", () => { assert(exportedTypeAlias.type.kind === TypeKind.TemplateLiteral); expect(exportedTypeAlias.type.spans).toHaveLength(1); - expect(exportedTypeAlias.type.spans[0]!).toBe("px"); + expect(exportedTypeAlias.type.spans[0]).toBe("px"); }); } @@ -61,15 +61,15 @@ scope("Interpreter", TypeKind.TemplateLiteral, () => { it("should have two matching types", () => { assert(exportedTypeAlias.type.kind === TypeKind.TemplateLiteral); expect(exportedTypeAlias.type.types).toHaveLength(2); - expect(exportedTypeAlias.type.types[0]!.kind).toBe(TypeKind.Number); - expect(exportedTypeAlias.type.types[1]!.kind).toBe(TypeKind.String); + expect(exportedTypeAlias.type.types[0].kind).toBe(TypeKind.Number); + expect(exportedTypeAlias.type.types[1].kind).toBe(TypeKind.String); }); it("should have two matching spans", () => { assert(exportedTypeAlias.type.kind === TypeKind.TemplateLiteral); expect(exportedTypeAlias.type.spans).toHaveLength(2); - expect(exportedTypeAlias.type.spans[0]!).toBe("-MIDDLE-"); - expect(exportedTypeAlias.type.spans[1]!).toBe("-SUFFIX"); + expect(exportedTypeAlias.type.spans[0]).toBe("-MIDDLE-"); + expect(exportedTypeAlias.type.spans[1]).toBe("-SUFFIX"); }); } @@ -92,17 +92,17 @@ scope("Interpreter", TypeKind.TemplateLiteral, () => { it("should have three matching types", () => { assert(exportedTypeAlias.type.kind === TypeKind.TemplateLiteral); expect(exportedTypeAlias.type.types).toHaveLength(3); - expect(exportedTypeAlias.type.types[0]!.kind).toBe(TypeKind.Union); - expect(exportedTypeAlias.type.types[1]!.kind).toBe(TypeKind.StringLiteral); - expect(exportedTypeAlias.type.types[2]!.kind).toBe(TypeKind.Number); + expect(exportedTypeAlias.type.types[0].kind).toBe(TypeKind.Union); + expect(exportedTypeAlias.type.types[1].kind).toBe(TypeKind.StringLiteral); + expect(exportedTypeAlias.type.types[2].kind).toBe(TypeKind.Number); }); it("should have three matching spans", () => { assert(exportedTypeAlias.type.kind === TypeKind.TemplateLiteral); expect(exportedTypeAlias.type.spans).toHaveLength(3); - expect(exportedTypeAlias.type.spans[0]!).toBe("-"); - expect(exportedTypeAlias.type.spans[1]!).toBe(": "); - expect(exportedTypeAlias.type.spans[2]!).toBe("px"); + expect(exportedTypeAlias.type.spans[0]).toBe("-"); + expect(exportedTypeAlias.type.spans[1]).toBe(": "); + expect(exportedTypeAlias.type.spans[2]).toBe("px"); }); } diff --git a/src/interpreter/ast/types/tuple.test.ts b/src/interpreter/ast/types/tuple.test.ts index ed8ae952..5b30804c 100644 --- a/src/interpreter/ast/types/tuple.test.ts +++ b/src/interpreter/ast/types/tuple.test.ts @@ -54,23 +54,23 @@ scope("Interpreter", TypeKind.Tuple, () => { it("should support rest elements at the end", () => { assert(exportedTupleTypeAliasWithRestAtTheEnd.type.kind === TypeKind.Tuple); expect(exportedTupleTypeAliasWithRestAtTheEnd.type.members).toHaveLength(2); - expect(exportedTupleTypeAliasWithRestAtTheEnd.type.members[0]!.rest).toBe(false); - expect(exportedTupleTypeAliasWithRestAtTheEnd.type.members[1]!.rest).toBe(true); + expect(exportedTupleTypeAliasWithRestAtTheEnd.type.members[0].rest).toBe(false); + expect(exportedTupleTypeAliasWithRestAtTheEnd.type.members[1].rest).toBe(true); }); it("should support rest elements at the beginning", () => { assert(exportedTupleTypeAliasWithRestAtTheBeginning.type.kind === TypeKind.Tuple); expect(exportedTupleTypeAliasWithRestAtTheBeginning.type.members).toHaveLength(2); - expect(exportedTupleTypeAliasWithRestAtTheBeginning.type.members[0]!.rest).toBe(true); - expect(exportedTupleTypeAliasWithRestAtTheBeginning.type.members[1]!.rest).toBe(false); + expect(exportedTupleTypeAliasWithRestAtTheBeginning.type.members[0].rest).toBe(true); + expect(exportedTupleTypeAliasWithRestAtTheBeginning.type.members[1].rest).toBe(false); }); it("should support rest elements at the beginning", () => { assert(exportedTupleTypeAliasWithRestInTheMiddle.type.kind === TypeKind.Tuple); expect(exportedTupleTypeAliasWithRestInTheMiddle.type.members).toHaveLength(3); - expect(exportedTupleTypeAliasWithRestInTheMiddle.type.members[0]!.rest).toBe(false); - expect(exportedTupleTypeAliasWithRestInTheMiddle.type.members[1]!.rest).toBe(true); - expect(exportedTupleTypeAliasWithRestInTheMiddle.type.members[2]!.rest).toBe(false); + expect(exportedTupleTypeAliasWithRestInTheMiddle.type.members[0].rest).toBe(false); + expect(exportedTupleTypeAliasWithRestInTheMiddle.type.members[1].rest).toBe(true); + expect(exportedTupleTypeAliasWithRestInTheMiddle.type.members[2].rest).toBe(false); }); } @@ -89,8 +89,8 @@ scope("Interpreter", TypeKind.Tuple, () => { it("should support optional elements", () => { assert(exportedTypeAlias.type.kind === TypeKind.Tuple); expect(exportedTypeAlias.type.members).toHaveLength(2); - expect(exportedTypeAlias.type.members[0]!.optional).toBe(false); - expect(exportedTypeAlias.type.members[1]!.optional).toBe(true); + expect(exportedTypeAlias.type.members[0].optional).toBe(false); + expect(exportedTypeAlias.type.members[1].optional).toBe(true); }); } @@ -109,8 +109,8 @@ scope("Interpreter", TypeKind.Tuple, () => { it("should support optional elements", () => { assert(exportedTypeAlias.type.kind === TypeKind.Tuple); expect(exportedTypeAlias.type.members).toHaveLength(2); - expect(exportedTypeAlias.type.members[0]!.name).toBe("prefix"); - expect(exportedTypeAlias.type.members[1]!.name).toBe("suffix"); + expect(exportedTypeAlias.type.members[0].name).toBe("prefix"); + expect(exportedTypeAlias.type.members[1].name).toBe("suffix"); }); } @@ -130,8 +130,8 @@ scope("Interpreter", TypeKind.Tuple, () => { it("should resolve types correctly", () => { assert(exportedTypeAlias.type.kind === TypeKind.Tuple); expect(exportedTypeAlias.type.members).toHaveLength(1); - assert(exportedTypeAlias.type.members[0]!.type.kind === TypeKind.TypeReference); - expect(exportedTypeAlias.type.members[0]!.type.type?.kind).toBe(TypeKind.StringLiteral); + assert(exportedTypeAlias.type.members[0].type.kind === TypeKind.TypeReference); + expect(exportedTypeAlias.type.members[0].type.type?.kind).toBe(TypeKind.StringLiteral); }); } diff --git a/src/interpreter/ast/types/type-query.test.ts b/src/interpreter/ast/types/type-query.test.ts index 690b424d..9a315c47 100644 --- a/src/interpreter/ast/types/type-query.test.ts +++ b/src/interpreter/ast/types/type-query.test.ts @@ -89,17 +89,17 @@ scope("Interpreter", TypeKind.TypeQuery, () => { it("should return the declared type for type queries that are not instantiated", () => { assert(exportedDeclaredTypeQueryTypeAlias.type.kind === TypeKind.TypeQuery); assert(exportedDeclaredTypeQueryTypeAlias.type.type.kind === TypeKind.Function); - expect(exportedDeclaredTypeQueryTypeAlias.type.type.signatures[0]!.parameters).toHaveLength(1); - assert(exportedDeclaredTypeQueryTypeAlias.type.type.signatures[0]!.parameters![0]!.type.kind === TypeKind.TypeReference); - expect(exportedDeclaredTypeQueryTypeAlias.type.type.signatures[0]!.parameters![0]!.type.type?.kind).toBe(TypeKind.TypeParameter); + expect(exportedDeclaredTypeQueryTypeAlias.type.type.signatures[0].parameters).toHaveLength(1); + assert(exportedDeclaredTypeQueryTypeAlias.type.type.signatures[0].parameters![0].type.kind === TypeKind.TypeReference); + expect(exportedDeclaredTypeQueryTypeAlias.type.type.signatures[0].parameters![0].type.type?.kind).toBe(TypeKind.TypeParameter); }); it("should return the resolved type for instantiated type queries", () => { assert(exportedResolvedTypeAlias.type.kind === TypeKind.TypeQuery); assert(exportedResolvedTypeAlias.type.type.kind === TypeKind.Function); - expect(exportedResolvedTypeAlias.type.type.signatures[0]!.parameters).toHaveLength(1); - assert(exportedResolvedTypeAlias.type.type.signatures[0]!.parameters![0]!.type.kind === TypeKind.TypeReference); - expect(exportedResolvedTypeAlias.type.type.signatures[0]!.parameters![0]!.type.type?.kind).toBe(TypeKind.StringLiteral); + expect(exportedResolvedTypeAlias.type.type.signatures[0].parameters).toHaveLength(1); + assert(exportedResolvedTypeAlias.type.type.signatures[0].parameters![0].type.kind === TypeKind.TypeReference); + expect(exportedResolvedTypeAlias.type.type.signatures[0].parameters![0].type.type?.kind).toBe(TypeKind.StringLiteral); }); } diff --git a/src/interpreter/ast/types/union.test.ts b/src/interpreter/ast/types/union.test.ts index d94319c0..e5a28ea8 100644 --- a/src/interpreter/ast/types/union.test.ts +++ b/src/interpreter/ast/types/union.test.ts @@ -55,8 +55,8 @@ scope("Interpreter", TypeKind.Union, () => { it("should have the correct types", () => { assert(exportedTypeAlias.type.kind === TypeKind.Union); - expect(exportedTypeAlias.type.types[0]!.kind).toBe(TypeKind.String); - expect(exportedTypeAlias.type.types[1]!.kind).toBe(TypeKind.Number); + expect(exportedTypeAlias.type.types[0].kind).toBe(TypeKind.String); + expect(exportedTypeAlias.type.types[1].kind).toBe(TypeKind.Number); }); } diff --git a/src/renderer/markup/ast-converter/types/circular.test.ts b/src/renderer/markup/ast-converter/types/circular.test.ts index 29cb07f9..a9636da7 100644 --- a/src/renderer/markup/ast-converter/types/circular.test.ts +++ b/src/renderer/markup/ast-converter/types/circular.test.ts @@ -28,20 +28,20 @@ scope("Renderer", TypeKind.Circular, () => { const exportedInterfaceASymbol = exportedSymbols.find(s => s.name === "InterfaceA")!; const exportedInterfaceA = createInterfaceEntity(compilerContext, exportedInterfaceASymbol); - assert(isTypeReferenceType(exportedInterfaceA.properties[0]!.type)); - const interfaceB = exportedInterfaceA.properties[0]!.type.type; + assert(isTypeReferenceType(exportedInterfaceA.properties[0].type)); + const interfaceB = exportedInterfaceA.properties[0].type.type; assert(isInterfaceType(interfaceB!)); it("should reference back to the original interface", () => { - assert(isTypeReferenceType(interfaceB.properties[0]!.type)); - expect(isCircularEntity(interfaceB.properties[0]!.type.target!)).toBe(true); - expect(interfaceB.properties[0]!.type.target?.symbolId).toBe(exportedInterfaceA.symbolId); + assert(isTypeReferenceType(interfaceB.properties[0].type)); + expect(isCircularEntity(interfaceB.properties[0].type.target!)).toBe(true); + expect(interfaceB.properties[0].type.target?.symbolId).toBe(exportedInterfaceA.symbolId); }); it("should contain the circular type", () => { - assert(isTypeReferenceType(interfaceB.properties[0]!.type)); - expect(isCircularType(interfaceB.properties[0]!.type.type!)).toBe(true); - expect(interfaceB.properties[0]!.type.type?.typeId).toBe(exportedInterfaceA.typeId); + assert(isTypeReferenceType(interfaceB.properties[0].type)); + expect(isCircularType(interfaceB.properties[0].type.type!)).toBe(true); + expect(interfaceB.properties[0].type.type?.typeId).toBe(exportedInterfaceA.typeId); }); } diff --git a/src/renderer/markup/registry/registry.ts b/src/renderer/markup/registry/registry.ts index d0bafa27..e46588dc 100644 --- a/src/renderer/markup/registry/registry.ts +++ b/src/renderer/markup/registry/registry.ts @@ -68,7 +68,7 @@ export function unregisterAnchor(ctx: MarkupRenderContext, id: ID | ID[]): void return; } - const newIds = anchor.sourceFile.links.get(anchor.anchorId)![anchor.index]! + const newIds = anchor.sourceFile.links.get(anchor.anchorId)![anchor.index] .filter(storedId => !ids.includes(storedId)); if(newIds.length === 0){ diff --git a/src/utils/exclude.ts b/src/utils/exclude.ts index 31ec08be..15f21ca2 100644 --- a/src/utils/exclude.ts +++ b/src/utils/exclude.ts @@ -25,7 +25,7 @@ export function isExcluded(path: string, name: string = "*", excludedPaths: Inte return Object.entries(normalizedExcludedPaths) .reduce((excludedFromPreviousFile, [excludedPath, excludedNames]) => { - const fileIsInverted = (excludedPath.match(/^!+/) ?? [""])[0]!.length % 2 !== 0; + const fileIsInverted = (excludedPath.match(/^!+/) ?? [""])[0].length % 2 !== 0; const pathWithoutInverts = excludedPath.replace(/^!+/, ""); const pathWithoutLeadingSlash = pathWithoutInverts.replace(/^\//, ""); const prefixedPath = `**/${pathWithoutLeadingSlash}`; @@ -40,7 +40,7 @@ export function isExcluded(path: string, name: string = "*", excludedPaths: Inte const excludedFromName = normalizedExcludedNames .reduce((excludedFromPreviousName, excludedName) => { - const nameIsInverted = (excludedName.match(/^!+/) ?? [""])[0]!.length % 2 !== 0; + const nameIsInverted = (excludedName.match(/^!+/) ?? [""])[0].length % 2 !== 0; const nameWithoutInverts = excludedName.replace(/^!+/, ""); if(nameWithoutInverts === "*"){ From d08626eba6a64edd5e758868bbbf011987cb3f45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sat, 25 May 2024 22:46:27 +0200 Subject: [PATCH 32/42] chore: update dependencies --- package-lock.json | 6095 ++++++++++++++------------------------------- package.json | 24 +- 2 files changed, 1858 insertions(+), 4261 deletions(-) diff --git a/package-lock.json b/package-lock.json index e7ef84de..6252a829 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,42 +10,32 @@ "license": "MIT", "dependencies": { "cac": "^6.7.14", - "minimatch": "^9.0.3", - "typescript": "^5.3.3" + "minimatch": "^9.0.4", + "typescript": "^5.4.5" }, "bin": { "unwritten": "lib/node/bin/index.js" }, "devDependencies": { - "@schoero/configs": "^0.0.0-beta.26", + "@schoero/configs": "^1.0.13", "@types/minimatch": "^5.1.2", - "@types/node": "^20.11.2", + "@types/node": "^20.12.12", "changelogen": "^0.5.5", - "cspell": "^8.3.2", - "eslint-plugin-jsonc": "^2.12.0", - "eslint-plugin-sort-exports": "^0.8.0", + "cspell": "^8.8.3", + "eslint-plugin-jsonc": "^2.16.0", + "eslint-plugin-sort-exports": "^0.9.1", "rollup-plugin-preserve-shebang": "^1.0.1", "tinyhighlight": "^0.3.2", - "ts-json-schema-generator": "^1.5.0", - "vite": "^5.0.11", - "vite-plugin-dts": "^3.7.1", - "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.2.0" + "ts-json-schema-generator": "^2.2.0", + "vite": "^5.2.11", + "vite-plugin-dts": "^3.9.1", + "vite-plugin-no-bundle": "^4.0.0", + "vitest": "^1.6.0" }, "engines": { "node": ">=16.9.0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@actions/core": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", @@ -57,9 +47,9 @@ } }, "node_modules/@actions/http-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", + "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", "dev": true, "dependencies": { "tunnel": "^0.0.6", @@ -80,71 +70,37 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.6", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -185,10 +141,31 @@ "node": ">=0.8.0" } }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -198,58 +175,62 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.3.2.tgz", - "integrity": "sha512-3ubOgz1/MDixJbq//0rQ2omB3cSdhVJDviERZeiREGz4HOq84aaK1Fqbw5SjNZHvhpoq+AYXm6kJbIAH8YhKgg==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.8.3.tgz", + "integrity": "sha512-nRa30TQwE4R5xcM6CBibM2l7D359ympexjm7OrykzYmStIiiudDIsuNOIXGBrDouxRFgKGAa/ETo1g+Pxz7kNA==", "dev": true, "dependencies": { "@cspell/dict-ada": "^4.0.2", - "@cspell/dict-aws": "^4.0.1", + "@cspell/dict-aws": "^4.0.2", "@cspell/dict-bash": "^4.1.3", - "@cspell/dict-companies": "^3.0.29", - "@cspell/dict-cpp": "^5.0.10", + "@cspell/dict-companies": "^3.1.0", + "@cspell/dict-cpp": "^5.1.6", "@cspell/dict-cryptocurrencies": "^5.0.0", "@cspell/dict-csharp": "^4.0.2", "@cspell/dict-css": "^4.0.12", "@cspell/dict-dart": "^2.0.3", "@cspell/dict-django": "^4.1.0", "@cspell/dict-docker": "^1.1.7", - "@cspell/dict-dotnet": "^5.0.0", + "@cspell/dict-dotnet": "^5.0.2", "@cspell/dict-elixir": "^4.0.3", - "@cspell/dict-en_us": "^4.3.13", - "@cspell/dict-en-common-misspellings": "^2.0.0", + "@cspell/dict-en_us": "^4.3.20", + "@cspell/dict-en-common-misspellings": "^2.0.1", "@cspell/dict-en-gb": "1.1.33", - "@cspell/dict-filetypes": "^3.0.3", + "@cspell/dict-filetypes": "^3.0.4", "@cspell/dict-fonts": "^4.0.0", "@cspell/dict-fsharp": "^1.0.1", - "@cspell/dict-fullstack": "^3.1.5", - "@cspell/dict-gaming-terms": "^1.0.4", + "@cspell/dict-fullstack": "^3.1.8", + "@cspell/dict-gaming-terms": "^1.0.5", "@cspell/dict-git": "^3.0.0", - "@cspell/dict-golang": "^6.0.5", + "@cspell/dict-golang": "^6.0.9", + "@cspell/dict-google": "^1.0.0", "@cspell/dict-haskell": "^4.0.1", "@cspell/dict-html": "^4.0.5", "@cspell/dict-html-symbol-entities": "^4.0.0", "@cspell/dict-java": "^5.0.6", - "@cspell/dict-k8s": "^1.0.2", + "@cspell/dict-julia": "^1.0.1", + "@cspell/dict-k8s": "^1.0.3", "@cspell/dict-latex": "^4.0.0", "@cspell/dict-lorem-ipsum": "^4.0.0", "@cspell/dict-lua": "^4.0.3", "@cspell/dict-makefile": "^1.0.0", - "@cspell/dict-node": "^4.0.3", - "@cspell/dict-npm": "^5.0.14", - "@cspell/dict-php": "^4.0.5", - "@cspell/dict-powershell": "^5.0.3", - "@cspell/dict-public-licenses": "^2.0.5", + "@cspell/dict-monkeyc": "^1.0.6", + "@cspell/dict-node": "^5.0.1", + "@cspell/dict-npm": "^5.0.16", + "@cspell/dict-php": "^4.0.7", + "@cspell/dict-powershell": "^5.0.4", + "@cspell/dict-public-licenses": "^2.0.6", "@cspell/dict-python": "^4.1.11", "@cspell/dict-r": "^2.0.1", "@cspell/dict-ruby": "^5.0.2", - "@cspell/dict-rust": "^4.0.1", - "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.3.15", + "@cspell/dict-rust": "^4.0.3", + "@cspell/dict-scala": "^5.0.2", + "@cspell/dict-software-terms": "^3.3.23", "@cspell/dict-sql": "^2.1.3", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", - "@cspell/dict-typescript": "^3.1.2", + "@cspell/dict-terraform": "^1.0.0", + "@cspell/dict-typescript": "^3.1.5", "@cspell/dict-vue": "^3.0.0" }, "engines": { @@ -257,30 +238,30 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.3.2.tgz", - "integrity": "sha512-gHSz4jXMJPcxx+lOGfXhHuoyenAWQ8PVA/atHFrWYKo1LzKTbpkEkrsDnlX8QNJubc3EMH63Uy+lOIaFDVyHiQ==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.8.3.tgz", + "integrity": "sha512-XP8x446IO9iHKvEN1IrJwOC5wC2uwmbdgFiUiXfzPSAlPfRWBmzOR68UR0Z6LNpm1GB4sUxxQkx2CRqDyGaSng==", "dev": true, "dependencies": { - "@cspell/cspell-types": "8.3.2" + "@cspell/cspell-types": "8.8.3" }, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-pipe": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.3.2.tgz", - "integrity": "sha512-GZmDwvQGOjQi3IjD4k9xXeVTDANczksOsgVKb3v2QZk9mR4Qj8c6Uarjd4AgSiIhu/wBliJfzr5rWFJu4X2VfQ==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.8.3.tgz", + "integrity": "sha512-tzngpFKXeUsdTZEErffTlwUnPIKYgyRKy0YTrD77EkhyDSbUnaS8JWqtGZbKV7iQ+R4CL7tiaubPjUzkbWj+kQ==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-resolver": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.3.2.tgz", - "integrity": "sha512-w2Tmb95bzdEz9L4W5qvsP5raZbyEzKL7N2ksU/+yh8NEJcTuExmAl/nMnb3aIk7m2b+kPHnMOcJuwfUMLmyv4A==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.8.3.tgz", + "integrity": "sha512-pMOB2MJYeria0DeW1dsehRPIHLzoOXCm1Cdjp1kRZ931PbqNCYaE/GM6laWpUTAbS9Ly2tv4g0jK3PUH8ZTtJA==", "dev": true, "dependencies": { "global-directory": "^4.0.1" @@ -290,18 +271,18 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.3.2.tgz", - "integrity": "sha512-skTHNyVi74//W/O+f4IauDhm6twA9S2whkylonsIzPxEl4Pn3y2ZEMXNki/MWUwZfDIzKKSxlcREH61g7zCvhg==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.8.3.tgz", + "integrity": "sha512-QVKe/JZvoTaaBAMXG40HjZib1g6rGgxk03e070GmdfCiMRUCWFtK+9DKVYJfSqjQhzj/eDCrq8aWplHWy66umg==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-types": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.3.2.tgz", - "integrity": "sha512-qS/gWd9ItOrN6ZX5pwC9lJjnBoyiAyhxYq0GUXuV892LQvwrBmECGk6KhsA1lPW7JJS7o57YTAS1jmXnmXMEpg==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.8.3.tgz", + "integrity": "sha512-31wYSBPinhqKi9TSzPg50fWHJmMQwD1d5p26yM/NAfNQvjAfBQlrg4pqix8pxOJkAK5W/TnoaVXjzJ5XCg6arQ==", "dev": true, "engines": { "node": ">=18" @@ -314,9 +295,9 @@ "dev": true }, "node_modules/@cspell/dict-aws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.1.tgz", - "integrity": "sha512-NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.2.tgz", + "integrity": "sha512-aNGHWSV7dRLTIn8WJemzLoMF62qOaiUQlgnsCwH5fRCD/00gsWCwg106pnbkmK4AyabyxzneOV4dfecDJWkSxw==", "dev": true }, "node_modules/@cspell/dict-bash": { @@ -326,15 +307,15 @@ "dev": true }, "node_modules/@cspell/dict-companies": { - "version": "3.0.30", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.30.tgz", - "integrity": "sha512-QAXXMbNLUCqYUsD7elXQ2MB7pUo3PRS9mg4PL/9WFBBY6x07pr0E4vWF9DIv51LG09esDn1cZT2UYS+U7U2iIw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.1.1.tgz", + "integrity": "sha512-hooOyJ1q3o5tGkUOXyTY04psiYdyrcJkoQHMA4gX0zJzj+pQJCL812V+z9aI4vl1Qhjxfp2YHKF60DM+EndqGQ==", "dev": true }, "node_modules/@cspell/dict-cpp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.1.tgz", - "integrity": "sha512-Qy9fNsR/5RcQ6G85gDKFjvzh0AdgAilLQeSXPtqY21Fx1kCjUqdVVJYMmHUREgcxH6ptAxtn5knTWU4PIhQtOw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.7.tgz", + "integrity": "sha512-qVuXo5rm9sySIrDwTfL62WF0BTiJXc4jAa53RvKV2f7wJL4LiJLNPpvY6oNU7G311VLf9QlTteRnlSulZLav/A==", "dev": true }, "node_modules/@cspell/dict-cryptocurrencies": { @@ -386,9 +367,9 @@ "dev": true }, "node_modules/@cspell/dict-dotnet": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz", - "integrity": "sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==", + "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==", "dev": true }, "node_modules/@cspell/dict-elixir": { @@ -398,15 +379,15 @@ "dev": true }, "node_modules/@cspell/dict-en_us": { - "version": "4.3.13", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.13.tgz", - "integrity": "sha512-T6lHiGCjloGNE0d8CogF+efJZPCAP8zdzn+KnlI0Bmjaz5nvG2LTX7CXl1zkOl1nYYev0FuIk9WJ9YPVRjcFbQ==", + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.20.tgz", + "integrity": "sha512-xxjV+iA+eoDtFPUhN7G42kvGBBCR4nxCv31Uo9mr/EjwsBqKcskTewcWRD7o4Vy66hppkXOayH2jWw8orD4/9g==", "dev": true }, "node_modules/@cspell/dict-en-common-misspellings": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.0.tgz", - "integrity": "sha512-NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.1.tgz", + "integrity": "sha512-uWaP8UG4uvcPyqaG0FzPKCm5kfmhsiiQ45Fs6b3/AEAqfq7Fj1JW0+S3qRt85FQA9SoU6gUJCz9wkK/Ylh7m5A==", "dev": true }, "node_modules/@cspell/dict-en-gb": { @@ -416,9 +397,9 @@ "dev": true }, "node_modules/@cspell/dict-filetypes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.3.tgz", - "integrity": "sha512-J9UP+qwwBLfOQ8Qg9tAsKtSY/WWmjj21uj6zXTI9hRLD1eG1uUOLcfVovAmtmVqUWziPSKMr87F6SXI3xmJXgw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.4.tgz", + "integrity": "sha512-IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg==", "dev": true }, "node_modules/@cspell/dict-fonts": { @@ -440,9 +421,9 @@ "dev": true }, "node_modules/@cspell/dict-fullstack": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz", - "integrity": "sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.8.tgz", + "integrity": "sha512-YRlZupL7uqMCtEBK0bDP9BrcPnjDhz7m4GBqCc1EYqfXauHbLmDT8ELha7T/E7wsFKniHSjzwDZzhNXo2lusRQ==", "dev": true }, "node_modules/@cspell/dict-gaming-terms": { @@ -458,9 +439,15 @@ "dev": true }, "node_modules/@cspell/dict-golang": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.5.tgz", - "integrity": "sha512-w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.9.tgz", + "integrity": "sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==", + "dev": true + }, + "node_modules/@cspell/dict-google": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-google/-/dict-google-1.0.1.tgz", + "integrity": "sha512-dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ==", "dev": true }, "node_modules/@cspell/dict-haskell": { @@ -493,10 +480,16 @@ "integrity": "sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==", "dev": true }, + "node_modules/@cspell/dict-julia": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-julia/-/dict-julia-1.0.1.tgz", + "integrity": "sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==", + "dev": true + }, "node_modules/@cspell/dict-k8s": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.2.tgz", - "integrity": "sha512-tLT7gZpNPnGa+IIFvK9SP1LrSpPpJ94a/DulzAPOb1Q2UBFwdpFd82UWhio0RNShduvKG/WiMZf/wGl98pn+VQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.4.tgz", + "integrity": "sha512-p3RjEkiwh5b1gLkYUMV9w5MHqWYTI1Sm2j4x8QZ+NZHB53PORrjPDyWSaG4giqKYAfs3UYB7QZUyBt0Sb68Vsw==", "dev": true }, "node_modules/@cspell/dict-latex": { @@ -524,39 +517,45 @@ "dev": true }, "node_modules/@cspell/dict-markdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.1.tgz", - "integrity": "sha512-9j3t1UXsy3M1B8+LN8wPO73KzX7v94GBfefWKSMJDpBvDUnOjwxabnj9ICBOVErBPwURS+LkjJbgVXkvr1OiPQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.2.tgz", + "integrity": "sha512-NXDP0BPhJpgU5lblbFDa+BJ3GfpZ4wMiv70IwoNvSrJWpjtkVqFxSV6alVXj3uxCe5BD0AfKAsqGnmuDn2GY6A==", + "dev": true + }, + "node_modules/@cspell/dict-monkeyc": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-monkeyc/-/dict-monkeyc-1.0.6.tgz", + "integrity": "sha512-oO8ZDu/FtZ55aq9Mb67HtaCnsLn59xvhO/t2mLLTHAp667hJFxpp7bCtr2zOrR1NELzFXmKln/2lw/PvxMSvrA==", "dev": true }, "node_modules/@cspell/dict-node": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.3.tgz", - "integrity": "sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-5.0.1.tgz", + "integrity": "sha512-lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg==", "dev": true }, "node_modules/@cspell/dict-npm": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.14.tgz", - "integrity": "sha512-k0kC7/W2qG5YII+SW6s+JtvKrkZg651vizi5dv/5G2HmJaeLNgDqBVeeDk/uV+ntBorM66XG4BPMjSxoaIlC5w==", + "version": "5.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.16.tgz", + "integrity": "sha512-ZWPnLAziEcSCvV0c8k9Qj88pfMu+wZwM5Qks87ShsfBgI8uLZ9tGHravA7gmjH1Gd7Bgxy2ulvXtSqIWPh1lew==", "dev": true }, "node_modules/@cspell/dict-php": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.5.tgz", - "integrity": "sha512-9r8ao7Z/mH9Z8pSB7yLtyvcCJWw+/MnQpj7xGVYzIV7V2ZWDRjXZAMgteHMJ37m8oYz64q5d4tiipD300QSetQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.7.tgz", + "integrity": "sha512-SUCOBfRDDFz1E2jnAZIIuy8BNbCc8i+VkiL9g4HH9tTN6Nlww5Uz2pMqYS6rZQkXuubqsbkbPlsRiuseEnTmYA==", "dev": true }, "node_modules/@cspell/dict-powershell": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz", - "integrity": "sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.4.tgz", + "integrity": "sha512-eosDShapDgBWN9ULF7+sRNdUtzRnUdsfEdBSchDm8FZA4HOqxUSZy3b/cX/Rdw0Fnw0AKgk0kzgXw7tS6vwJMQ==", "dev": true }, "node_modules/@cspell/dict-public-licenses": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.5.tgz", - "integrity": "sha512-91HK4dSRri/HqzAypHgduRMarJAleOX5NugoI8SjDLPzWYkwZ1ftuCXSk+fy8DLc3wK7iOaFcZAvbjmnLhVs4A==", + "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==", "dev": true }, "node_modules/@cspell/dict-python": { @@ -581,21 +580,21 @@ "dev": true }, "node_modules/@cspell/dict-rust": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.2.tgz", - "integrity": "sha512-RhziKDrklzOntxAbY3AvNR58wnFGIo3YS8+dNeLY36GFuWOvXDHFStYw5Pod4f/VXbO/+1tXtywCC4zWfB2p1w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.3.tgz", + "integrity": "sha512-8DFCzkFQ+2k3fDaezWc/D+0AyiBBiOGYfSDUfrTNU7wpvUvJ6cRcAUshMI/cn2QW/mmxTspRgVlXsE6GUMz00Q==", "dev": true }, "node_modules/@cspell/dict-scala": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.0.tgz", - "integrity": "sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.2.tgz", + "integrity": "sha512-v97ClgidZt99JUm7OjhQugDHmhx4U8fcgunHvD/BsXWjXNj4cTr0m0YjofyZoL44WpICsNuFV9F/sv9OM5HUEw==", "dev": true }, "node_modules/@cspell/dict-software-terms": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.16.tgz", - "integrity": "sha512-ixorEP80LGxAU+ODVSn/CYIDjV0XAlZ2VrBu7CT+PwUFJ7h8o3JX1ywKB4qnt0hHru3JjWFtBoBThmZdrXnREQ==", + "version": "3.3.24", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.24.tgz", + "integrity": "sha512-RsLn/vp162c5kEr60dk3eEDyavJ9Kk+8mydLjbLKwuS3scN8h4zKxnN+whHvm5bSu4UanH+fVyf8MhHutN2q0Q==", "dev": true }, "node_modules/@cspell/dict-sql": { @@ -616,10 +615,16 @@ "integrity": "sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==", "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==", + "dev": true + }, "node_modules/@cspell/dict-typescript": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.2.tgz", - "integrity": "sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.5.tgz", + "integrity": "sha512-EkIwwNV/xqEoBPJml2S16RXj65h1kvly8dfDLgXerrKw6puybZdvAHerAph6/uPTYdtLcsPyJYkPt5ISOJYrtw==", "dev": true }, "node_modules/@cspell/dict-vue": { @@ -629,32 +634,35 @@ "dev": true }, "node_modules/@cspell/dynamic-import": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.3.2.tgz", - "integrity": "sha512-4t0xM5luA3yQhar2xWvYK4wQSDB2r0u8XkpzzJqd57MnJXd7uIAxI0awGUrDXukadRaCo0tDIlMUBemH48SNVg==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.8.3.tgz", + "integrity": "sha512-qpxGC2hGVfbSaLJkaEu//rqbgAOjYnMlbxD75Fk9ny96sr+ZI1YC0nmUErWlgXSbtjVY/DHCOu26Usweo5iRgA==", "dev": true, "dependencies": { - "import-meta-resolve": "^4.0.0" + "import-meta-resolve": "^4.1.0" }, "engines": { "node": ">=18.0" } }, "node_modules/@cspell/strong-weak-map": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.3.2.tgz", - "integrity": "sha512-Mte/2000ap278kRYOUhiGWI7MNr1+A7WSWJmlcdP4CAH5SO20sZI3/cyZLjJJEyapdhK5vaP1L5J9sUcVDHd3A==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.8.3.tgz", + "integrity": "sha512-y/pL7Zex8iHQ54qDYvg9oCiCgfZ9DAUTOI/VtPFVC+42JqLx6YufYxJS2uAsFlfAXIPiRV8qnnG6BHImD1Ix6g==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", - "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", + "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", "dev": true, "dependencies": { + "@types/eslint": "^8.56.5", + "@types/estree": "^1.0.5", + "@typescript-eslint/types": "^7.2.0", "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" @@ -664,9 +672,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", - "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", "cpu": [ "ppc64" ], @@ -680,9 +688,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", "cpu": [ "arm" ], @@ -696,9 +704,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", "cpu": [ "arm64" ], @@ -712,9 +720,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", "cpu": [ "x64" ], @@ -728,9 +736,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", "cpu": [ "arm64" ], @@ -744,9 +752,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", "cpu": [ "x64" ], @@ -760,9 +768,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", "cpu": [ "arm64" ], @@ -776,9 +784,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", "cpu": [ "x64" ], @@ -792,9 +800,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", "cpu": [ "arm" ], @@ -808,9 +816,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", "cpu": [ "arm64" ], @@ -824,9 +832,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", "cpu": [ "ia32" ], @@ -840,9 +848,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", "cpu": [ "loong64" ], @@ -856,9 +864,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", "cpu": [ "mips64el" ], @@ -872,9 +880,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", "cpu": [ "ppc64" ], @@ -888,9 +896,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", "cpu": [ "riscv64" ], @@ -904,9 +912,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", "cpu": [ "s390x" ], @@ -920,9 +928,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", "cpu": [ "x64" ], @@ -936,9 +944,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", "cpu": [ "x64" ], @@ -952,9 +960,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", "cpu": [ "x64" ], @@ -968,9 +976,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", "cpu": [ "x64" ], @@ -984,9 +992,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", "cpu": [ "arm64" ], @@ -1000,9 +1008,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", "cpu": [ "ia32" ], @@ -1016,9 +1024,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", "cpu": [ "x64" ], @@ -1046,6 +1054,18 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/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" + } + }, "node_modules/@eslint-community/regexpp": { "version": "4.10.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", @@ -1060,6 +1080,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1083,16 +1104,49 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/@eslint/eslintrc/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, + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "peer": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1101,9 +1155,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "peer": true, "engines": { @@ -1111,9 +1165,9 @@ } }, "node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", "dev": true, "engines": { "node": ">=14" @@ -1173,9 +1227,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true, "peer": true }, @@ -1209,24 +1263,24 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "peer": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "peer": true, "engines": { @@ -1234,9 +1288,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "peer": true, "engines": { @@ -1250,9 +1304,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", - "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "peer": true, "dependencies": { @@ -1261,37 +1315,100 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.39.0.tgz", - "integrity": "sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==", + "version": "7.43.0", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.43.0.tgz", + "integrity": "sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==", "dev": true, "dependencies": { - "@microsoft/api-extractor-model": "7.28.3", + "@microsoft/api-extractor-model": "7.28.13", "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.62.0", - "@rushstack/rig-package": "0.5.1", - "@rushstack/ts-command-line": "4.17.1", - "colors": "~1.2.1", + "@rushstack/node-core-library": "4.0.2", + "@rushstack/rig-package": "0.5.2", + "@rushstack/terminal": "0.10.0", + "@rushstack/ts-command-line": "4.19.1", "lodash": "~4.17.15", + "minimatch": "~3.0.3", "resolve": "~1.22.1", "semver": "~7.5.4", "source-map": "~0.6.1", - "typescript": "5.3.3" + "typescript": "5.4.2" }, "bin": { "api-extractor": "bin/api-extractor" } }, "node_modules/@microsoft/api-extractor-model": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.3.tgz", - "integrity": "sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==", + "version": "7.28.13", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.13.tgz", + "integrity": "sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==", "dev": true, "dependencies": { "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.62.0" + "@rushstack/node-core-library": "4.0.2" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, "node_modules/@microsoft/tsdoc": { @@ -1392,10 +1509,22 @@ } } }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz", - "integrity": "sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", "cpu": [ "arm" ], @@ -1406,9 +1535,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz", - "integrity": "sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", "cpu": [ "arm64" ], @@ -1419,9 +1548,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz", - "integrity": "sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", "cpu": [ "arm64" ], @@ -1432,9 +1561,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz", - "integrity": "sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", "cpu": [ "x64" ], @@ -1445,9 +1574,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz", - "integrity": "sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", "cpu": [ "arm" ], @@ -1457,12 +1586,12 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz", - "integrity": "sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", "cpu": [ - "arm64" + "arm" ], "dev": true, "optional": true, @@ -1470,10 +1599,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz", - "integrity": "sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", "cpu": [ "arm64" ], @@ -1483,12 +1612,12 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz", - "integrity": "sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", "cpu": [ - "riscv64" + "arm64" ], "dev": true, "optional": true, @@ -1496,12 +1625,51 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", - "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", "cpu": [ - "x64" + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" ], "dev": true, "optional": true, @@ -1510,9 +1678,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz", - "integrity": "sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", "cpu": [ "x64" ], @@ -1523,9 +1691,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz", - "integrity": "sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", "cpu": [ "arm64" ], @@ -1536,9 +1704,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz", - "integrity": "sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", "cpu": [ "ia32" ], @@ -1549,9 +1717,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz", - "integrity": "sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", "cpu": [ "x64" ], @@ -1562,12 +1730,11 @@ ] }, "node_modules/@rushstack/node-core-library": { - "version": "3.62.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.62.0.tgz", - "integrity": "sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-4.0.2.tgz", + "integrity": "sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==", "dev": true, "dependencies": { - "colors": "~1.2.1", "fs-extra": "~7.0.1", "import-lazy": "~4.0.0", "jju": "~1.4.0", @@ -1584,25 +1751,70 @@ } } }, + "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@rushstack/rig-package": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.1.tgz", - "integrity": "sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.2.tgz", + "integrity": "sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==", "dev": true, "dependencies": { "resolve": "~1.22.1", "strip-json-comments": "~3.1.1" } }, + "node_modules/@rushstack/terminal": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.10.0.tgz", + "integrity": "sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==", + "dev": true, + "dependencies": { + "@rushstack/node-core-library": "4.0.2", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, "node_modules/@rushstack/ts-command-line": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz", - "integrity": "sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.19.1.tgz", + "integrity": "sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==", "dev": true, "dependencies": { + "@rushstack/terminal": "0.10.0", "@types/argparse": "1.0.38", "argparse": "~1.0.9", - "colors": "~1.2.1", "string-argv": "~0.3.1" } }, @@ -1616,54 +1828,84 @@ } }, "node_modules/@schoero/configs": { - "version": "0.0.0-beta.26", - "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-0.0.0-beta.26.tgz", - "integrity": "sha512-CXO38u+NyGAwVds8az6Gep2EQhAgwYN5ZCkHDq9iVtRFO7VSyGyKI6/uEKVUzwgPC6RSoaz9KmemetJ3kgLc4Q==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-1.0.13.tgz", + "integrity": "sha512-26XHCJfiAav9h/ivfPD2ntO6LN6d1ymTLLJu4xiUz5gHD1QB7kMf8e+PZSrvlFGMWnjIFfifzO4zp5DegrbZJA==", "dev": true, "dependencies": { "@cspell/dict-bash": "^4.1.3", - "@cspell/dict-companies": "^3.0.29", + "@cspell/dict-companies": "^3.0.32", "@cspell/dict-css": "^4.0.12", "@cspell/dict-de-ch": "^1.2.0", - "@cspell/dict-en_us": "^4.3.13", + "@cspell/dict-en_us": "^4.3.19", "@cspell/dict-fr-fr": "^2.2.2", - "@cspell/dict-fullstack": "^3.1.5", + "@cspell/dict-fullstack": "^3.1.7", "@cspell/dict-html": "^4.0.5", "@cspell/dict-html-symbol-entities": "^4.0.0", "@cspell/dict-it-it": "^3.1.0", "@cspell/dict-lorem-ipsum": "^4.0.0", - "@cspell/dict-markdown": "^2.0.1", - "@cspell/dict-node": "^4.0.3", - "@cspell/dict-npm": "^5.0.14", - "@cspell/dict-public-licenses": "^2.0.5", - "@cspell/dict-software-terms": "^3.3.15", - "@cspell/dict-typescript": "^3.1.2", - "@stylistic/eslint-plugin-js": "^1.5.1", - "@stylistic/eslint-plugin-jsx": "^1.5.1", - "@stylistic/eslint-plugin-plus": "^1.5.1", - "@stylistic/eslint-plugin-ts": "^1.5.1", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", - "cspell-lib": "^8.3.1", + "@cspell/dict-markdown": "^2.0.2", + "@cspell/dict-node": "^5.0.1", + "@cspell/dict-npm": "^5.0.16", + "@cspell/dict-public-licenses": "^2.0.6", + "@cspell/dict-software-terms": "^3.3.23", + "@cspell/dict-typescript": "^3.1.5", + "@stylistic/eslint-plugin-js": "^2.1.0", + "@stylistic/eslint-plugin-jsx": "^2.1.0", + "@stylistic/eslint-plugin-plus": "^2.1.0", + "@stylistic/eslint-plugin-ts": "^2.1.0", + "cspell-lib": "^8.8.2", "eslint-plugin-import": "npm:eslint-plugin-i@2.29.1", - "eslint-plugin-import-newlines": "^1.3.4", - "eslint-plugin-jsdoc": "^47.0.2", - "eslint-plugin-jsonc": "^2.11.2", - "eslint-plugin-markdown": "^3.0.1", - "eslint-plugin-readable-tailwind": "^0.3.0", - "eslint-plugin-simple-import-sort": "^10.0.0", - "eslint-plugin-sort-destructure-keys": "^1.5.0", + "eslint-plugin-import-newlines": "^1.4.0", + "eslint-plugin-jsdoc": "^48.2.5", + "eslint-plugin-jsonc": "^2.15.1", + "eslint-plugin-markdown": "^5.0.0", + "eslint-plugin-readable-tailwind": "1.5.0", + "eslint-plugin-simple-import-sort": "^12.1.0", + "eslint-plugin-sort-destructure-keys": "^2.0.0", "eslint-plugin-sort-keys": "^2.3.5", - "eslint-plugin-tailwindcss": "^3.13.1", - "eslint-plugin-typescript-sort-keys": "^3.1.0", - "eslint-plugin-unicorn": "^50.0.1", - "eslint-plugin-unused-imports": "^3.0.0", - "eslint-plugin-vitest": "^0.3.20", - "eslint-plugin-yml": "^1.11.0", - "markdownlint-cli2": "^0.11.0", - "npm": "^10.2.5", - "vite-tsconfig-paths": "^4.2.3", + "eslint-plugin-tailwindcss": "^3.16.0", + "eslint-plugin-typescript-sort-keys": "^3.2.0", + "eslint-plugin-unicorn": "^53.0.0", + "eslint-plugin-unused-imports": "^3.2.0", + "eslint-plugin-vitest": "^0.5.4", + "eslint-plugin-yml": "^1.14.0", + "markdownlint-cli2": "^0.13.0", + "typescript-eslint": "^7.10.0", + "vite-tsconfig-paths": "^4.3.2", "vitest-github-actions-reporter": "^0.11.1" + }, + "peerDependencies": { + "changelogen": "^0.5.5", + "cspell": "^8.8.1", + "eslint": "^8.48.0", + "markdownlint": "^0.34.0", + "unwritten": "^0.2.7", + "vite": "^5.2.11", + "vitest": "^1.6.0" + }, + "peerDependenciesMeta": { + "changelogen": { + "optional": true + }, + "cspell": { + "optional": true + }, + "eslint": { + "optional": true + }, + "markdownlint": { + "optional": true + }, + "unwritten": { + "optional": true + }, + "vite": { + "optional": true + }, + "vitest": { + "optional": true + } } }, "node_modules/@sinclair/typebox": { @@ -1673,9 +1915,9 @@ "dev": true }, "node_modules/@sindresorhus/merge-streams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", - "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, "engines": { "node": ">=18" @@ -1685,62 +1927,66 @@ } }, "node_modules/@stylistic/eslint-plugin-js": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.5.3.tgz", - "integrity": "sha512-XlKnm82fD7Sw9kQ6FFigE0tobvptNBXZWsdfoKmUyK7bNxHsAHOFT8zJGY3j3MjZ0Fe7rLTu86hX/vOl0bRRdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.1.0.tgz", + "integrity": "sha512-gdXUjGNSsnY6nPyqxu6lmDTtVrwCOjun4x8PUn0x04d5ucLI74N3MT1Q0UhdcOR9No3bo5PGDyBgXK+KmD787A==", "dev": true, "dependencies": { + "@types/eslint": "^8.56.10", "acorn": "^8.11.3", - "escape-string-regexp": "^4.0.0", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1" + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { "eslint": ">=8.40.0" } }, "node_modules/@stylistic/eslint-plugin-jsx": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-1.5.3.tgz", - "integrity": "sha512-gKXWFmvg3B4e6G+bVz2p37icjj3gS5lzazZD6oLjmQ2b0Lw527VpnxGjWxQ16keKXtrVzUfebakjskOoALg3CQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.1.0.tgz", + "integrity": "sha512-mMD7S+IndZo2vxmwpHVTCwx2O1VdtE5tmpeNwgaEcXODzWV1WTWpnsc/PECQKIr/mkLPFWiSIqcuYNhQ/3l6AQ==", "dev": true, "dependencies": { - "@stylistic/eslint-plugin-js": "^1.5.3", - "estraverse": "^5.3.0" + "@stylistic/eslint-plugin-js": "^2.1.0", + "@types/eslint": "^8.56.10", + "estraverse": "^5.3.0", + "picomatch": "^4.0.2" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { "eslint": ">=8.40.0" } }, "node_modules/@stylistic/eslint-plugin-plus": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-1.5.3.tgz", - "integrity": "sha512-fuOBySbH4dbfY4Dwvu+zg5y+e0lALHTyQske5+a2zNC8Ejnx4rFlVjYOmaVFtxFhTD4V0vM7o21Ozci0igcxKg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.1.0.tgz", + "integrity": "sha512-S5QAlgYXESJaSBFhBSBLZy9o36gXrXQwWSt6QkO+F0SrT9vpV5JF/VKoh+ojO7tHzd8Ckmyouq02TT9Sv2B0zQ==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^6.17.0" + "@types/eslint": "^8.56.10", + "@typescript-eslint/utils": "^7.8.0" }, "peerDependencies": { "eslint": "*" } }, "node_modules/@stylistic/eslint-plugin-ts": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-1.5.3.tgz", - "integrity": "sha512-/gUEqGo0gpFeu220YmC0788VliKnmTaAz4pI82KA5cUuCp6OzEhGlrNkb1eevMwH0RRgyND20HJxOYvEGlwu+w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.1.0.tgz", + "integrity": "sha512-2ioFibufHYBALx2TBrU4KXovCkN8qCqcb9yIHc0fyOfTaO5jw4d56WW7YRcF3Zgde6qFyXwAN6z/+w4pnmos1g==", "dev": true, "dependencies": { - "@stylistic/eslint-plugin-js": "1.5.3", - "@typescript-eslint/utils": "^6.17.0" + "@stylistic/eslint-plugin-js": "2.1.0", + "@types/eslint": "^8.56.10", + "@typescript-eslint/utils": "^7.8.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { "eslint": ">=8.40.0" @@ -1752,6 +1998,16 @@ "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", "dev": true }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -1780,9 +2036,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.2.tgz", - "integrity": "sha512-cZShBaVa+UO1LjWWBPmWRR4+/eY/JR/UIEcDlVsw3okjWEu+rB7/mH6X3B/L+qJVHDLjk9QW/y2upp9wp1yDXA==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1795,9 +2051,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/unist": { @@ -1807,33 +2063,31 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz", - "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz", + "integrity": "sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/type-utils": "6.19.0", - "@typescript-eslint/utils": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/type-utils": "7.10.0", + "@typescript-eslint/utils": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1973,6 +2227,18 @@ "node": ">=8.0.0" } }, + "node_modules/@typescript-eslint/experimental-utils/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" + } + }, "node_modules/@typescript-eslint/experimental-utils/node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", @@ -1983,26 +2249,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz", - "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz", + "integrity": "sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/typescript-estree": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -2011,16 +2277,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", - "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz", + "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0" + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -2028,25 +2294,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", - "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz", + "integrity": "sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/typescript-estree": "7.10.0", + "@typescript-eslint/utils": "7.10.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -2055,12 +2321,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", - "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", + "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -2068,22 +2334,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", - "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz", + "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -2096,47 +2362,56 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", - "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", + "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", - "semver": "^7.5.4" + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/typescript-estree": "7.10.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", - "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz", + "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.10.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/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" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -2145,13 +2420,13 @@ "peer": true }, "node_modules/@vitest/expect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.0.tgz", - "integrity": "sha512-H+2bHzhyvgp32o7Pgj2h9RTHN0pgYaoi26Oo3mE+dCi1PAqV31kIIVfTbqMO3Bvshd5mIrJLc73EwSRrbol9Lw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", "dev": true, "dependencies": { - "@vitest/spy": "1.2.0", - "@vitest/utils": "1.2.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", "chai": "^4.3.10" }, "funding": { @@ -2159,12 +2434,12 @@ } }, "node_modules/@vitest/runner": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.0.tgz", - "integrity": "sha512-vaJkDoQaNUTroT70OhM0NPznP7H3WyRwt4LvGwCVYs/llLaqhoSLnlIhUClZpbF5RgAee29KRcNz0FEhYcgxqA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", "dev": true, "dependencies": { - "@vitest/utils": "1.2.0", + "@vitest/utils": "1.6.0", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -2200,9 +2475,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.0.tgz", - "integrity": "sha512-P33EE7TrVgB3HDLllrjK/GG6WSnmUtWohbwcQqmm7TAk9AVHpdgf7M3F3qRHKm6vhr7x3eGIln7VH052Smo6Kw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -2214,21 +2489,18 @@ } }, "node_modules/@vitest/snapshot/node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" } }, "node_modules/@vitest/spy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.0.tgz", - "integrity": "sha512-MNxSAfxUaCeowqyyGwC293yZgk7cECZU9wGb8N1pYQ0yOn/SIr8t0l9XnGRdQZvNV/ZHBYu6GO/W3tj5K3VN1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -2238,9 +2510,9 @@ } }, "node_modules/@vitest/utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.0.tgz", - "integrity": "sha512-FyD5bpugsXlwVpTcGLDf3wSPYy8g541fQt14qtzo8mJ4LdEpDKZ9mQy2+qdJm2TZRpjY5JLXihXCgIxiRJgi5g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", @@ -2290,38 +2562,26 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.14.tgz", - "integrity": "sha512-ro4Zzl/MPdWs7XwxT7omHRxAjMbDFRZEEjD+2m3NBf8YzAe3HuoSEZosXQo+m1GQ1G3LQ1LdmNh1RKTYe+ssEg==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.6", - "@vue/shared": "3.4.14", + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" - } - }, - "node_modules/@vue/compiler-core/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.14.tgz", - "integrity": "sha512-nOZTY+veWNa0DKAceNWxorAbWm0INHdQq7cejFaWM1WYnoNSJbSEKYtE7Ir6lR/+mo9fttZpPVI9ZFGJ1juUEQ==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.4.14", - "@vue/shared": "3.4.14" + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" } }, "node_modules/@vue/language-core": { @@ -2350,9 +2610,9 @@ } }, "node_modules/@vue/shared": { - "version": "3.4.14", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.14.tgz", - "integrity": "sha512-nmi3BtLpvqXAWoRZ6HQ+pFJOHBU4UnH3vD3opgmwXac7vhaHKA9nj1VeGjMggdB9eLtW83eHyPCmOU1qzdsC7Q==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", "dev": true }, "node_modules/acorn": { @@ -2445,6 +2705,18 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", @@ -2506,12 +2778,15 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bplist-parser": { @@ -2535,21 +2810,21 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -2566,8 +2841,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -2606,19 +2881,20 @@ } }, "node_modules/c12": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/c12/-/c12-1.6.1.tgz", - "integrity": "sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/c12/-/c12-1.10.0.tgz", + "integrity": "sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==", "dev": true, "dependencies": { - "chokidar": "^3.5.3", - "defu": "^6.1.3", - "dotenv": "^16.3.1", + "chokidar": "^3.6.0", + "confbox": "^0.1.3", + "defu": "^6.1.4", + "dotenv": "^16.4.5", "giget": "^1.2.1", "jiti": "^1.21.0", - "mlly": "^1.4.2", + "mlly": "^1.6.1", "ohash": "^1.1.3", - "pathe": "^1.1.1", + "pathe": "^1.1.2", "perfect-debounce": "^1.0.0", "pkg-types": "^1.0.3", "rc9": "^2.1.1" @@ -2652,9 +2928,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001576", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", - "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "version": "1.0.30001621", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", + "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", "dev": true, "funding": [ { @@ -2785,16 +3061,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2807,6 +3077,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -2836,9 +3109,9 @@ } }, "node_modules/citty": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.5.tgz", - "integrity": "sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", "dev": true, "dependencies": { "consola": "^3.2.3" @@ -2902,22 +3175,13 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, - "node_modules/colors": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", - "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/comment-json": { @@ -2957,24 +3221,11 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "dev": true, - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true }, "node_modules/consola": { "version": "3.2.3", @@ -2986,18 +3237,18 @@ } }, "node_modules/convert-gitmoji": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/convert-gitmoji/-/convert-gitmoji-0.1.3.tgz", - "integrity": "sha512-t5yxPyI8h8KPvRwrS/sRrfIpT2gJbmBAY0TFokyUBy3PM44RuFRpZwHdACz+GTSPLRLo3s4qsscOMLjHiXBwzw==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/convert-gitmoji/-/convert-gitmoji-0.1.5.tgz", + "integrity": "sha512-4wqOafJdk2tqZC++cjcbGcaJ13BZ3kwldf06PTiAQRAB76Z1KJwZNL1SaRZMi2w1FM9RYTgZ6QErS8NUl/GBmQ==", "dev": true }, "node_modules/core-js-compat": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", - "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -3024,55 +3275,28 @@ "node": ">= 8" } }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cspell": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.3.2.tgz", - "integrity": "sha512-V8Ub3RO/a5lwSsltW/ib3Z3G/sczKtSpBBN1JChzbSCfEgaY2mJY8JW0BpkSV+Ug6uJitpXNOOaxa3Xr489i7g==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.8.3.tgz", + "integrity": "sha512-JVWI4MNALOuZ+igyJ54C6Iwe8s1ecMCgyGFGId5a0P6wi/V+TFYFhl7QkzIi1Uw4KtXSYrUSlHGUjC2dE0OZ9g==", "dev": true, "dependencies": { - "@cspell/cspell-json-reporter": "8.3.2", - "@cspell/cspell-pipe": "8.3.2", - "@cspell/cspell-types": "8.3.2", - "@cspell/dynamic-import": "8.3.2", + "@cspell/cspell-json-reporter": "8.8.3", + "@cspell/cspell-pipe": "8.8.3", + "@cspell/cspell-types": "8.8.3", + "@cspell/dynamic-import": "8.8.3", "chalk": "^5.3.0", "chalk-template": "^1.1.0", - "commander": "^11.1.0", - "cspell-gitignore": "8.3.2", - "cspell-glob": "8.3.2", - "cspell-io": "8.3.2", - "cspell-lib": "8.3.2", + "commander": "^12.1.0", + "cspell-gitignore": "8.8.3", + "cspell-glob": "8.8.3", + "cspell-io": "8.8.3", + "cspell-lib": "8.8.3", "fast-glob": "^3.3.2", "fast-json-stable-stringify": "^2.1.0", "file-entry-cache": "^8.0.0", "get-stdin": "^9.0.0", - "semver": "^7.5.4", + "semver": "^7.6.2", "strip-ansi": "^7.1.0", "vscode-uri": "^3.0.8" }, @@ -3088,42 +3312,42 @@ } }, "node_modules/cspell-config-lib": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.3.2.tgz", - "integrity": "sha512-Wc98XhBNLwDxnxCzMtgRJALI9a69cu3C5Gf1rGjNTKSFo9JYiQmju0Ur3z25Pkx9Sa86f+2IjvNCf33rUDSoBQ==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.8.3.tgz", + "integrity": "sha512-61NKZrzTi9OLEEiZBggLQy9nswgR0gd6bKH06xXFQyRfNpAjaPOzOUFhSSfX1MQX+lQF3KtSYcHpppwbpPsL8w==", "dev": true, "dependencies": { - "@cspell/cspell-types": "8.3.2", + "@cspell/cspell-types": "8.8.3", "comment-json": "^4.2.3", - "yaml": "^2.3.4" + "yaml": "^2.4.2" }, "engines": { "node": ">=18" } }, "node_modules/cspell-dictionary": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.3.2.tgz", - "integrity": "sha512-xyK95hO2BMPFxIo8zBwGml8035qOxSBdga1BMhwW/p2wDrQP8S4Cdm/54//tCDmKn6uRkFQvyOfWGaX2l8WMEg==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.8.3.tgz", + "integrity": "sha512-g2G3uh8JbuJKAYFdFQENcbTIrK9SJRXBiQ/t+ch+9I/t5HmuGOVe+wxKEM/0c9M2CRLpzJShBvttH9rnw4Yqfg==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.3.2", - "@cspell/cspell-types": "8.3.2", - "cspell-trie-lib": "8.3.2", + "@cspell/cspell-pipe": "8.8.3", + "@cspell/cspell-types": "8.8.3", + "cspell-trie-lib": "8.8.3", "fast-equals": "^5.0.1", - "gensequence": "^6.0.0" + "gensequence": "^7.0.0" }, "engines": { "node": ">=18" } }, "node_modules/cspell-gitignore": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.3.2.tgz", - "integrity": "sha512-3Qc9P5BVvl/cg//s2s+zIMGKcoH5v7oOtRgwn4UQry8yiyo19h0tiTKkSR574FMhF5NtcShTnwIwPSIXVBPFHA==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.8.3.tgz", + "integrity": "sha512-+IeVPNnUJOj+D9rc4elbK4DK3p9qxvF/2BMtFsE7a75egeJjAnlzVGzqH2FVMsDj6dxe5bjc8/S4Nhw6B14xTQ==", "dev": true, "dependencies": { - "cspell-glob": "8.3.2", + "cspell-glob": "8.8.3", "find-up-simple": "^1.0.0" }, "bin": { @@ -3134,25 +3358,25 @@ } }, "node_modules/cspell-glob": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.3.2.tgz", - "integrity": "sha512-KtIFxE+3l5dGEofND4/CdZffXP8XN1+XGQKxJ96lIzWsc01mkotfhxTkla6mgvfH039t7BsY/SWv0460KyGslQ==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.8.3.tgz", + "integrity": "sha512-9c4Nw/bIsjKSuBuRrLa1sWtIzbXXvja+FVbUOE9c2IiZfh6K1I+UssiXTbRTMg6qgTdkfT4o3KOcFN0ZcbmCUQ==", "dev": true, "dependencies": { - "micromatch": "^4.0.5" + "micromatch": "^4.0.7" }, "engines": { "node": ">=18" } }, "node_modules/cspell-grammar": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.3.2.tgz", - "integrity": "sha512-tYCkOmRzJe1a6/R+8QGSwG7TwTgznLPqsHtepKzLmnS4YX54VXjKRI9zMARxXDzUVfyCSVdW5MyiY/0WTNoy+A==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.8.3.tgz", + "integrity": "sha512-3RP7xQ/6IiIjbWQDuE+4b0ERKkSWGMY75bd0oEsh5HcFhhOYphmcpxLxRRM/yxYQaYgdvq0QIcwrpanx86KJ7A==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.3.2", - "@cspell/cspell-types": "8.3.2" + "@cspell/cspell-pipe": "8.8.3", + "@cspell/cspell-types": "8.8.3" }, "bin": { "cspell-grammar": "bin.mjs" @@ -3162,58 +3386,59 @@ } }, "node_modules/cspell-io": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.3.2.tgz", - "integrity": "sha512-WYpKsyBCQP0SY4gXnhW5fPuxcYchKYKG1PIXVV3ezFU4muSgW6GuLNbGuSfwv/8YNXRgFSN0e3hYH0rdBK2Aow==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.8.3.tgz", + "integrity": "sha512-vO7BUa6i7tjmQr+9dw/Ic7tm4ECnSUlbuMv0zJs/SIrO9AcID2pCWPeZNZEGAmeutrEOi2iThZ/uS33aCuv7Jw==", "dev": true, "dependencies": { - "@cspell/cspell-service-bus": "8.3.2" + "@cspell/cspell-service-bus": "8.8.3" }, "engines": { "node": ">=18" } }, "node_modules/cspell-lib": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.3.2.tgz", - "integrity": "sha512-wTvdaev/TyGB/ln6CVD1QbVs2D7/+QiajQ67S7yj1suLHM6YcNQQb/5sPAM8VPtj0E7PgwgPXf3bq18OtPvnFg==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.8.3.tgz", + "integrity": "sha512-IqtTKBPug5Jzt9T8f/b6qGAbARRR5tpQkLjzsrfLzxM68ery23wEPDtmWToEyc9EslulZGLe0T78XuEU9AMF+g==", "dev": true, "dependencies": { - "@cspell/cspell-bundled-dicts": "8.3.2", - "@cspell/cspell-pipe": "8.3.2", - "@cspell/cspell-resolver": "8.3.2", - "@cspell/cspell-types": "8.3.2", - "@cspell/dynamic-import": "8.3.2", - "@cspell/strong-weak-map": "8.3.2", + "@cspell/cspell-bundled-dicts": "8.8.3", + "@cspell/cspell-pipe": "8.8.3", + "@cspell/cspell-resolver": "8.8.3", + "@cspell/cspell-types": "8.8.3", + "@cspell/dynamic-import": "8.8.3", + "@cspell/strong-weak-map": "8.8.3", "clear-module": "^4.1.2", "comment-json": "^4.2.3", - "configstore": "^6.0.0", - "cspell-config-lib": "8.3.2", - "cspell-dictionary": "8.3.2", - "cspell-glob": "8.3.2", - "cspell-grammar": "8.3.2", - "cspell-io": "8.3.2", - "cspell-trie-lib": "8.3.2", + "cspell-config-lib": "8.8.3", + "cspell-dictionary": "8.8.3", + "cspell-glob": "8.8.3", + "cspell-grammar": "8.8.3", + "cspell-io": "8.8.3", + "cspell-trie-lib": "8.8.3", + "env-paths": "^3.0.0", "fast-equals": "^5.0.1", - "gensequence": "^6.0.0", + "gensequence": "^7.0.0", "import-fresh": "^3.3.0", "resolve-from": "^5.0.0", "vscode-languageserver-textdocument": "^1.0.11", - "vscode-uri": "^3.0.8" + "vscode-uri": "^3.0.8", + "xdg-basedir": "^5.1.0" }, "engines": { "node": ">=18" } }, "node_modules/cspell-trie-lib": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.3.2.tgz", - "integrity": "sha512-8qh2FqzkLMwzlTlvO/5Z+89fhi30rrfekocpight/BmqKbE2XFJQD7wS2ml24e7q/rdHJLXVpJbY/V5mByucCA==", + "version": "8.8.3", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.8.3.tgz", + "integrity": "sha512-0zrkrhrFLVajwo6++XD9a+r0Olml7UjPgbztjPKbXIJrZCradBF5rvt3wq5mPpsjq2+Dz0z6K5muZpbO+gqapQ==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.3.2", - "@cspell/cspell-types": "8.3.2", - "gensequence": "^6.0.0" + "@cspell/cspell-pipe": "8.8.3", + "@cspell/cspell-types": "8.8.3", + "gensequence": "^7.0.0" }, "engines": { "node": ">=18" @@ -3377,9 +3602,9 @@ "dev": true }, "node_modules/destr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.2.tgz", - "integrity": "sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", "dev": true }, "node_modules/didyoumean": { @@ -3429,31 +3654,16 @@ "node": ">=6.0.0" } }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://dotenvx.com" } }, "node_modules/eastasianwidth": { @@ -3463,9 +3673,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.630", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz", - "integrity": "sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==", + "version": "1.4.783", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz", + "integrity": "sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==", "dev": true }, "node_modules/emoji-regex": { @@ -3475,9 +3685,9 @@ "dev": true }, "node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" @@ -3486,6 +3696,18 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -3496,9 +3718,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", "dev": true, "hasInstallScript": true, "bin": { @@ -3508,35 +3730,35 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -3555,17 +3777,17 @@ } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -3611,9 +3833,9 @@ } }, "node_modules/eslint-compat-utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.2.1.tgz", - "integrity": "sha512-+0mhJhMeVaiMrgtltweI3sThf8g9VSZKVNSna6gdULUycp9HmcTvcYTw+b7YY+OUHAPXmRiJ9fvsDFnQq9i//A==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz", + "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==", "dev": true, "dependencies": { "semver": "^7.5.4" @@ -3646,9 +3868,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -3698,9 +3920,9 @@ } }, "node_modules/eslint-plugin-import-newlines": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.3.4.tgz", - "integrity": "sha512-Lmf/BbK+EQKUfjKPcZpslE/KTGYlgaI8ZJ/sYzdbb3BVTg5+GmLBLHBjsUKNEVRM1SEhDTF/didtOSYKi4tSnQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.4.0.tgz", + "integrity": "sha512-+Cz1x2xBLtI9gJbmuYEpvY7F8K75wskBmJ7rk4VRObIJo+jklUJaejFJgtnWeL0dCFWabGEkhausrikXaNbtoQ==", "dev": true, "bin": { "import-linter": "lib/index.js" @@ -3735,40 +3957,40 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "47.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-47.0.2.tgz", - "integrity": "sha512-sIq81Pv+yrhhwY0m1JH79rdZRgDNunehv3S0Yv0UfewpoeJyPkODFn2o4o20nofVoI2tjku9/QBcCYUmmeWFXA==", + "version": "48.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.6.tgz", + "integrity": "sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.41.0", + "@es-joy/jsdoccomment": "~0.43.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "is-builtin-module": "^3.2.1", - "semver": "^7.5.4", + "semver": "^7.6.1", "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-jsonc": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.12.0.tgz", - "integrity": "sha512-4+MahaRGW+fMDSYQcDKi8MaIj+VKgZDh3dfYpbI8UxmP53asRbdnaySkDzoEwWmzlIYYpEHQruS+ZAHcC4d/pA==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.16.0.tgz", + "integrity": "sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "eslint-compat-utils": "^0.2.0", + "eslint-compat-utils": "^0.5.0", "espree": "^9.6.1", "graphemer": "^1.4.0", "jsonc-eslint-parser": "^2.0.4", - "natural-compare": "^1.4.0" + "natural-compare": "^1.4.0", + "synckit": "^0.6.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3780,60 +4002,95 @@ "eslint": ">=6.0.0" } }, + "node_modules/eslint-plugin-jsonc/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" + } + }, + "node_modules/eslint-plugin-jsonc/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint-plugin-markdown": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", - "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-5.0.0.tgz", + "integrity": "sha512-kY2u9yDhzvfZ0kmRTsvgm3mTnvZgTSGIIPeHg3yesSx4R5CTCnITUjCPhzCD1MUhNcqHU5Tr6lzx+02EclVPbw==", "dev": true, "dependencies": { "mdast-util-from-markdown": "^0.8.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": ">=8" } }, "node_modules/eslint-plugin-readable-tailwind": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-0.3.0.tgz", - "integrity": "sha512-uBZNSASY6FCgMyIaVK7tmA1amWjFzPvrr5tdusysbqNzoUQdJX2Q1BgBzHKX8rBpAWII+UBJ4ggC8gNxsqI9+w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-1.5.0.tgz", + "integrity": "sha512-T8r/tqAz89sVgHRRy/zNymOIe5AynUuBqgGpJGV4QOa6bsBFywOuROr4S/dDPtlPWPdO7MhBzweVzHkK7vnJvA==", "dev": true, + "engines": { + "node": ">=16" + }, "peerDependencies": { - "eslint": ">=7", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", "tailwindcss": ">=3.3.0" } }, "node_modules/eslint-plugin-simple-import-sort": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz", - "integrity": "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.0.tgz", + "integrity": "sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==", "dev": true, "peerDependencies": { "eslint": ">=5.0.0" } }, "node_modules/eslint-plugin-sort-destructure-keys": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sort-destructure-keys/-/eslint-plugin-sort-destructure-keys-1.5.0.tgz", - "integrity": "sha512-xGLyqHtbFXZNXQSvAiQ4ISBYokrbUywEhmaA50fKtSKgceCv5y3zjoNuZwcnajdM6q29Nxj+oXC9KcqfMsAPrg==", + "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==", "dev": true, "dependencies": { "natural-compare-lite": "^1.4.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=12" }, "peerDependencies": { - "eslint": "3 - 8" + "eslint": "5 - 9" } }, "node_modules/eslint-plugin-sort-exports": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sort-exports/-/eslint-plugin-sort-exports-0.8.0.tgz", - "integrity": "sha512-5x7kJNjIS5bSyehFJ6Gk2gh2wUPt/rmhwDHF8JPDicSH7bvrLRFdlkhHu74YqYBjEySHYaOZVoKNP90TjI0v6w==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-sort-exports/-/eslint-plugin-sort-exports-0.9.1.tgz", + "integrity": "sha512-2w6jHusdF2K60bcGKpa9HEinETwNzVrvplZipVculCfu3ZDd5IW3xL54XVEnVkGIPJnp/LitFCg7owL4DOtuHg==", "dev": true, + "dependencies": { + "minimatch": "^9.0.3" + }, "peerDependencies": { "eslint": ">=5.0.0" } @@ -3848,25 +4105,25 @@ } }, "node_modules/eslint-plugin-tailwindcss": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.14.0.tgz", - "integrity": "sha512-SGy4JmZoP5m1bXCbcsPfQg1/axOdriJf9L22HghNMyDTM5mybg2XEkaMwgax4aR13zZJRRB1nWmkuYUn+SV6/Q==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.17.0.tgz", + "integrity": "sha512-Ofl7tNh57a3W8BKHstKZSkD2gSCEkw54ycwZ958IK9zUR8TiNYdp8b0WGoLWLeyOAbeF1VPVJFBnlkJeIM2kVg==", "dev": true, "dependencies": { "fast-glob": "^3.2.5", "postcss": "^8.4.4" }, "engines": { - "node": ">=12.13.0" + "node": ">=14.0.0" }, "peerDependencies": { "tailwindcss": "^3.4.0" } }, "node_modules/eslint-plugin-typescript-sort-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-3.1.0.tgz", - "integrity": "sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-3.2.0.tgz", + "integrity": "sha512-GutszvriaVtwmn7pQjuj9/9o0iXhD7XZs0/424+zsozdRr/fdg5e8206t478Vnqnqi1GjuxcAolj1kf74KnhPA==", "dev": true, "dependencies": { "@typescript-eslint/experimental-utils": "^5.0.0", @@ -3877,23 +4134,23 @@ "node": ">= 16" }, "peerDependencies": { - "@typescript-eslint/parser": "^6", + "@typescript-eslint/parser": "^6 || ^7", "eslint": "^7 || ^8", "typescript": "^3 || ^4 || ^5" } }, "node_modules/eslint-plugin-unicorn": { - "version": "50.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-50.0.1.tgz", - "integrity": "sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==", + "version": "53.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-53.0.0.tgz", + "integrity": "sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "@eslint-community/eslint-utils": "^4.4.0", - "@eslint/eslintrc": "^2.1.4", + "@eslint/eslintrc": "^3.0.2", "ci-info": "^4.0.0", "clean-regexp": "^1.0.0", - "core-js-compat": "^3.34.0", + "core-js-compat": "^3.37.0", "esquery": "^1.5.0", "indent-string": "^4.0.0", "is-builtin-module": "^3.2.1", @@ -3902,11 +4159,11 @@ "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.27", "regjsparser": "^0.10.0", - "semver": "^7.5.4", + "semver": "^7.6.1", "strip-indent": "^3.0.0" }, "engines": { - "node": ">=16" + "node": ">=18.18" }, "funding": { "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" @@ -3915,10 +4172,67 @@ "eslint": ">=8.56.0" } }, + "node_modules/eslint-plugin-unicorn/node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-unused-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", - "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz", + "integrity": "sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==", "dev": true, "dependencies": { "eslint-rule-composer": "^0.3.0" @@ -3927,8 +4241,8 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^6.0.0", - "eslint": "^8.0.0" + "@typescript-eslint/eslint-plugin": "6 - 7", + "eslint": "8" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { @@ -3937,18 +4251,18 @@ } }, "node_modules/eslint-plugin-vitest": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.20.tgz", - "integrity": "sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.5.4.tgz", + "integrity": "sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^6.15.0" + "@typescript-eslint/utils": "^7.7.1" }, "engines": { "node": "^18.0.0 || >= 20.0.0" }, "peerDependencies": { - "eslint": ">=8.0.0", + "eslint": "^8.57.0 || ^9.0.0", "vitest": "*" }, "peerDependenciesMeta": { @@ -3961,13 +4275,13 @@ } }, "node_modules/eslint-plugin-yml": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.12.0.tgz", - "integrity": "sha512-NSjhDpY5vLdFaH295sqTMuWfdah4tJNXWkS2tkzPo55zsNsvtBD1nDtdt3vUj9y1HeWocE0iRq22hC+Ahk2QtQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz", + "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==", "dev": true, "dependencies": { "debug": "^4.3.2", - "eslint-compat-utils": "^0.2.1", + "eslint-compat-utils": "^0.5.0", "lodash": "^4.17.21", "natural-compare": "^1.4.0", "yaml-eslint-parser": "^1.2.1" @@ -4009,12 +4323,12 @@ } }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4094,6 +4408,37 @@ "dev": true, "peer": true }, + "node_modules/eslint/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, + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "peer": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -4122,27 +4467,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -4156,16 +4480,6 @@ "node": ">=10.13.0" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4179,22 +4493,6 @@ "node": "*" } }, - "node_modules/eslint/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/eslint/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4222,17 +4520,17 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", + "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", "dev": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.11.3", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4367,9 +4665,9 @@ "peer": true }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -4388,9 +4686,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -4428,33 +4726,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, "node_modules/flat-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz", - "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.4", - "rimraf": "^5.0.5" + "keyv": "^4.5.4" }, "engines": { "node": ">=16" } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/foreground-child": { @@ -4515,7 +4803,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/fsevents": { "version": "2.3.3", @@ -4541,12 +4830,12 @@ } }, "node_modules/gensequence": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-6.0.0.tgz", - "integrity": "sha512-8WwuywE9pokJRAcg2QFR/plk3cVPebSUqRPzpGQh3WQ0wIiHAw+HyOQj5IuHyUTQBHpBKFoB2JUMu9zT3vJ16Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-7.0.0.tgz", + "integrity": "sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/get-func-name": { @@ -4583,9 +4872,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -4595,18 +4884,18 @@ } }, "node_modules/giget": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.1.tgz", - "integrity": "sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz", + "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==", "dev": true, "dependencies": { - "citty": "^0.1.5", + "citty": "^0.1.6", "consola": "^3.2.3", - "defu": "^6.1.3", - "node-fetch-native": "^1.6.1", - "nypm": "^0.3.3", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.3", + "nypm": "^0.3.8", "ohash": "^1.1.3", - "pathe": "^1.1.1", + "pathe": "^1.1.2", "tar": "^6.2.0" }, "bin": { @@ -4614,22 +4903,22 @@ } }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4667,6 +4956,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -4716,12 +5006,12 @@ "dev": true }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-own-prop": { @@ -4734,9 +5024,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -4770,9 +5060,9 @@ } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -4825,9 +5115,9 @@ } }, "node_modules/import-meta-resolve": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", - "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", "dev": true, "funding": { "type": "github", @@ -4839,6 +5129,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "peer": true, "engines": { "node": ">=0.8.19" } @@ -4856,7 +5147,9 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "peer": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -4866,7 +5159,8 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/ini": { "version": "4.1.1", @@ -5038,15 +5332,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -5069,12 +5354,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -5109,9 +5388,9 @@ "dev": true }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -5241,10 +5520,39 @@ "url": "https://github.com/sponsors/ota-meshi" } }, + "node_modules/jsonc-eslint-parser/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" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, "node_modules/jsonfile": { @@ -5302,12 +5610,12 @@ "dev": true }, "node_modules/linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/local-pkg": { @@ -5377,9 +5685,9 @@ } }, "node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -5395,29 +5703,30 @@ } }, "node_modules/markdown-it": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", - "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, "dependencies": { "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdownlint": { - "version": "0.32.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.32.1.tgz", - "integrity": "sha512-3sx9xpi4xlHlokGyHO9k0g3gJbNY4DI6oNEeEYq5gQ4W7UkiJ90VDAnuDl2U+yyXOUa6BX+0gf69ZlTUGIBp6A==", + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz", + "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==", "dev": true, "dependencies": { - "markdown-it": "13.0.2", - "markdownlint-micromark": "0.1.7" + "markdown-it": "14.1.0", + "markdownlint-micromark": "0.1.9" }, "engines": { "node": ">=18" @@ -5427,22 +5736,20 @@ } }, "node_modules/markdownlint-cli2": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.11.0.tgz", - "integrity": "sha512-RmFpr+My5in8KT+H/A6ozKIVYVzZtL5t9c8DYdv0YJdljl385z44CcCVBrclpHxCGMY2tr0hZ/ca+meGGvgdnQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.13.0.tgz", + "integrity": "sha512-Pg4nF7HlopU97ZXtrcVISWp3bdsuc5M0zXyLp2/sJv2zEMlInrau0ZKK482fQURzVezJzWBpNmu4u6vGAhij+g==", "dev": true, "dependencies": { - "globby": "14.0.0", - "markdownlint": "0.32.1", + "globby": "14.0.1", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.1", + "markdownlint": "0.34.0", "markdownlint-cli2-formatter-default": "0.0.4", - "micromatch": "4.0.5", - "strip-json-comments": "5.0.1", - "yaml": "2.3.4" + "micromatch": "4.0.5" }, "bin": { - "markdownlint-cli2": "markdownlint-cli2.js", - "markdownlint-cli2-config": "markdownlint-cli2-config.js", - "markdownlint-cli2-fix": "markdownlint-cli2-fix.js" + "markdownlint-cli2": "markdownlint-cli2.js" }, "engines": { "node": ">=18" @@ -5461,12 +5768,12 @@ } }, "node_modules/markdownlint-cli2/node_modules/globby": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", - "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", + "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": "^1.0.0", + "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", "ignore": "^5.2.4", "path-type": "^5.0.0", @@ -5480,6 +5787,19 @@ "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", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "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", @@ -5492,22 +5812,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/markdownlint-cli2/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { - "node": ">=14.16" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/markdownlint-cli2/node_modules/strip-json-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", - "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", + "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" @@ -5517,12 +5837,15 @@ } }, "node_modules/markdownlint-micromark": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.7.tgz", - "integrity": "sha512-BbRPTC72fl5vlSKv37v/xIENSRDYL/7X/XoFzZ740FGEbs9vZerLrIkFRY0rv7slQKxDczToYuMmqQFN61fi4Q==", + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz", + "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/mdast-util-from-markdown": { @@ -5553,9 +5876,9 @@ } }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true }, "node_modules/merge-stream": { @@ -5594,18 +5917,30 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -5628,9 +5963,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5642,9 +5977,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -5688,15 +6023,15 @@ } }, "node_modules/mlly": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", - "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", "dev": true, "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", - "pkg-types": "^1.0.3", - "ufo": "^1.3.2" + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" } }, "node_modules/mri": { @@ -5763,9 +6098,9 @@ "dev": true }, "node_modules/node-fetch-native": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.1.tgz", - "integrity": "sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", "dev": true }, "node_modules/node-releases": { @@ -5804,169 +6139,10 @@ "node": ">=0.10.0" } }, - "node_modules/npm": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.3.0.tgz", - "integrity": "sha512-9u5GFc1UqI2DLlGI7QdjkpIaBs3UhTtY8KoCqYJK24gV/j/tByaI4BA4R7RkOc+ASqZMzFPKt4Pj2Z8JcGo//A==", - "bundleDependencies": [ - "@isaacs/string-locale-compare", - "@npmcli/arborist", - "@npmcli/config", - "@npmcli/fs", - "@npmcli/map-workspaces", - "@npmcli/package-json", - "@npmcli/promise-spawn", - "@npmcli/run-script", - "@sigstore/tuf", - "abbrev", - "archy", - "cacache", - "chalk", - "ci-info", - "cli-columns", - "cli-table3", - "columnify", - "fastest-levenshtein", - "fs-minipass", - "glob", - "graceful-fs", - "hosted-git-info", - "ini", - "init-package-json", - "is-cidr", - "json-parse-even-better-errors", - "libnpmaccess", - "libnpmdiff", - "libnpmexec", - "libnpmfund", - "libnpmhook", - "libnpmorg", - "libnpmpack", - "libnpmpublish", - "libnpmsearch", - "libnpmteam", - "libnpmversion", - "make-fetch-happen", - "minimatch", - "minipass", - "minipass-pipeline", - "ms", - "node-gyp", - "nopt", - "normalize-package-data", - "npm-audit-report", - "npm-install-checks", - "npm-package-arg", - "npm-pick-manifest", - "npm-profile", - "npm-registry-fetch", - "npm-user-validate", - "npmlog", - "p-map", - "pacote", - "parse-conflict-json", - "proc-log", - "qrcode-terminal", - "read", - "semver", - "spdx-expression-parse", - "ssri", - "strip-ansi", - "supports-color", - "tar", - "text-table", - "tiny-relative-date", - "treeverse", - "validate-npm-package-name", - "which", - "write-file-atomic" - ], - "dev": true, - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^7.2.1", - "@npmcli/config": "^8.0.2", - "@npmcli/fs": "^3.1.0", - "@npmcli/map-workspaces": "^3.0.4", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.1", - "@npmcli/run-script": "^7.0.3", - "@sigstore/tuf": "^2.2.0", - "abbrev": "^2.0.0", - "archy": "~1.0.0", - "cacache": "^18.0.2", - "chalk": "^5.3.0", - "ci-info": "^4.0.0", - "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", - "columnify": "^1.6.0", - "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.3", - "glob": "^10.3.10", - "graceful-fs": "^4.2.11", - "hosted-git-info": "^7.0.1", - "ini": "^4.1.1", - "init-package-json": "^6.0.0", - "is-cidr": "^5.0.3", - "json-parse-even-better-errors": "^3.0.1", - "libnpmaccess": "^8.0.1", - "libnpmdiff": "^6.0.3", - "libnpmexec": "^7.0.4", - "libnpmfund": "^5.0.1", - "libnpmhook": "^10.0.0", - "libnpmorg": "^6.0.1", - "libnpmpack": "^6.0.3", - "libnpmpublish": "^9.0.2", - "libnpmsearch": "^7.0.0", - "libnpmteam": "^6.0.0", - "libnpmversion": "^5.0.1", - "make-fetch-happen": "^13.0.0", - "minimatch": "^9.0.3", - "minipass": "^7.0.4", - "minipass-pipeline": "^1.2.4", - "ms": "^2.1.2", - "node-gyp": "^10.0.1", - "nopt": "^7.2.0", - "normalize-package-data": "^6.0.0", - "npm-audit-report": "^5.0.0", - "npm-install-checks": "^6.3.0", - "npm-package-arg": "^11.0.1", - "npm-pick-manifest": "^9.0.0", - "npm-profile": "^9.0.0", - "npm-registry-fetch": "^16.1.0", - "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", - "p-map": "^4.0.0", - "pacote": "^17.0.5", - "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", - "qrcode-terminal": "^0.12.0", - "read": "^2.1.0", - "semver": "^7.5.4", - "spdx-expression-parse": "^3.0.1", - "ssri": "^10.0.5", - "strip-ansi": "^7.1.0", - "supports-color": "^9.4.0", - "tar": "^6.2.0", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.0", - "which": "^4.0.0", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "npm": "bin/npm-cli.js", - "npx": "bin/npx-cli.js" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, "node_modules/npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -5990,48 +6166,79 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@colors/colors": { - "version": "1.5.0", + "node_modules/nypm": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.8.tgz", + "integrity": "sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==", "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "execa": "^8.0.1", + "pathe": "^1.1.2", + "ufo": "^1.4.0" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, "engines": { - "node": ">=0.1.90" + "node": "^14.16.0 || >=16.10.0" } }, - "node_modules/npm/node_modules/@isaacs/cliui": { - "version": "8.0.2", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, + "peer": true, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true, - "inBundle": true, - "license": "MIT" + "peer": true, + "engines": { + "node": ">= 6" + } }, - "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", + "node_modules/ofetch": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.3.4.tgz", + "integrity": "sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "destr": "^2.0.3", + "node-fetch-native": "^1.6.3", + "ufo": "^1.5.3" + } + }, + "node_modules/ohash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "peer": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" }, "engines": { "node": ">=12" @@ -6040,2772 +6247,93 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/@npmcli/agent": { - "version": "2.2.0", + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.3.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.0.0", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/query": "^3.0.1", - "@npmcli/run-script": "^7.0.2", - "bin-links": "^4.0.1", - "cacache": "^18.0.0", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.1", - "json-parse-even-better-errors": "^3.0.0", - "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", - "nopt": "^7.0.0", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.1", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", - "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.2", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^10.0.5", - "treeverse": "^3.0.0", - "walk-up-path": "^3.0.1" - }, - "bin": { - "arborist": "bin/index.js" + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.1.0", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "inBundle": true, - "license": "ISC", + "peer": true, "dependencies": { - "@npmcli/map-workspaces": "^3.0.2", - "ci-info": "^4.0.0", - "ini": "^4.1.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.5", - "walk-up-path": "^3.0.1" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 0.8.0" } }, - "node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "3.0.0", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "inBundle": true, - "license": "ISC", + "peer": true, "dependencies": { - "ansi-styles": "^4.3.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@npmcli/disparity-colors/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "inBundle": true, - "license": "MIT", + "peer": true, "dependencies": { - "color-convert": "^2.0.1" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@npmcli/fs": { - "version": "3.1.0", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.4", + "node_modules/parent-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", + "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" + "callsites": "^3.1.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "lib/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cacache": "^18.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^17.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/query": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "7.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.1.0", - "@sigstore/protobuf-specs": "^0.2.1", - "make-fetch-happen": "^13.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.1.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@tufjs/models": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/agent-base": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/npm/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/npm/node_modules/aproba": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/archy": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/bin-links": { - "version": "4.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm/node_modules/builtins": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/npm/node_modules/cacache": { - "version": "18.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/chalk": { - "version": "5.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/npm/node_modules/chownr": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/ci-info": { - "version": "4.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/cidr-regex": { - "version": "4.0.3", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "ip-regex": "^5.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/cli-columns": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm/node_modules/cli-columns/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/cli-columns/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/npm/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/npm/node_modules/columnify": { - "version": "1.6.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/npm/node_modules/columnify/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/columnify/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/common-ancestor-path": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/debug": { - "version": "4.3.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/npm/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/defaults": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/diff": { - "version": "5.1.0", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/npm/node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/encoding": { - "version": "0.1.13", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/npm/node_modules/env-paths": { - "version": "2.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/exponential-backoff": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/npm/node_modules/fastest-levenshtein": { - "version": "1.0.16", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/npm/node_modules/foreground-child": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/fs-minipass": { - "version": "3.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/function-bind": { - "version": "1.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/npm/node_modules/gauge": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/gauge/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/gauge/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/glob": { - "version": "10.3.10", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/hasown": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/npm/node_modules/hosted-git-info": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/npm/node_modules/http-proxy-agent": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/https-proxy-agent": { - "version": "7.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/ini": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/init-package-json": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^11.0.0", - "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/ip": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/ip-regex": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/is-cidr": { - "version": "5.0.3", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "cidr-regex": "4.0.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/npm/node_modules/is-core-module": { - "version": "2.13.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/is-lambda": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/jackspeak": { - "version": "2.3.6", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/json-stringify-nice": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/jsonparse": { - "version": "1.3.1", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/just-diff": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/just-diff-apply": { - "version": "5.5.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^7.2.1", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", - "diff": "^5.1.0", - "minimatch": "^9.0.0", - "npm-package-arg": "^11.0.1", - "pacote": "^17.0.4", - "tar": "^6.2.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^7.2.1", - "@npmcli/run-script": "^7.0.2", - "ci-info": "^4.0.0", - "npm-package-arg": "^11.0.1", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", - "proc-log": "^3.0.0", - "read": "^2.0.0", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "walk-up-path": "^3.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^7.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/arborist": "^7.2.1", - "@npmcli/run-script": "^7.0.2", - "npm-package-arg": "^11.0.1", - "pacote": "^17.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ci-info": "^4.0.0", - "normalize-package-data": "^6.0.0", - "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.7", - "sigstore": "^2.1.0", - "ssri": "^10.0.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-registry-fetch": "^16.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/libnpmversion": { - "version": "5.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.3", - "@npmcli/run-script": "^7.0.2", - "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/lru-cache": { - "version": "10.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/npm/node_modules/make-fetch-happen": { - "version": "13.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/minimatch": { - "version": "9.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/npm/node_modules/minipass-collect": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm/node_modules/minipass-flush": { - "version": "1.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-sized": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/mute-stream": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/negotiator": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/node-gyp": { - "version": "10.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/nopt": { - "version": "7.2.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/normalize-package-data": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-audit-report": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-install-checks": { - "version": "6.3.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-package-arg": { - "version": "11.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-packlist": { - "version": "8.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "9.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-profile": { - "version": "9.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "16.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-user-validate": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npmlog": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/pacote": { - "version": "17.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^2.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/parse-conflict-json": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^6.0.0", - "just-diff-apply": "^5.2.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/path-scurry": { - "version": "1.10.1", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.15", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/proc-log": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/promise-all-reject-late": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/promise-retry": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/promzard": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "read": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/qrcode-terminal": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" - } - }, - "node_modules/npm/node_modules/read": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "mute-stream": "~1.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/read-cmd-shim": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/read-package-json": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/read-package-json-fast": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm/node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/npm/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/signal-exit": { - "version": "4.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/sigstore": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.1.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.1.0", - "@sigstore/tuf": "^2.1.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/smart-buffer": { - "version": "4.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/socks": { - "version": "2.7.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/spdx-correct": { - "version": "3.2.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "inBundle": true, - "license": "CC-BY-3.0" - }, - "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.16", - "dev": true, - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/npm/node_modules/ssri": { - "version": "10.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/npm/node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/supports-color": { - "version": "9.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/npm/node_modules/tar": { - "version": "6.2.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/tiny-relative-date": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/treeverse": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/tuf-js": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@tufjs/models": "2.0.0", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/unique-filename": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/unique-slug": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/walk-up-path": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/npm/node_modules/which": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/which/node_modules/isexe": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/npm/node_modules/wide-align": { - "version": "1.1.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/npm/node_modules/wrap-ansi": { - "version": "8.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/npm/node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/write-file-atomic": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/nypm": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.4.tgz", - "integrity": "sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==", - "dev": true, - "dependencies": { - "citty": "^0.1.5", - "execa": "^8.0.1", - "pathe": "^1.1.1", - "ufo": "^1.3.2" - }, - "bin": { - "nypm": "dist/cli.mjs" - }, - "engines": { - "node": "^14.16.0 || >=16.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ofetch": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.3.3.tgz", - "integrity": "sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==", - "dev": true, - "dependencies": { - "destr": "^2.0.1", - "node-fetch-native": "^1.4.0", - "ufo": "^1.3.0" - } - }, - "node_modules/ohash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", - "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", - "dev": true, - "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "peer": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", - "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", - "dev": true, - "dependencies": { - "callsites": "^3.1.0" - }, - "engines": { - "node": ">=8" + "node": ">=8" } }, "node_modules/parse-entities": { @@ -8885,16 +6413,16 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -8931,18 +6459,18 @@ "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -8969,14 +6497,14 @@ } }, "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", "dev": true, "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" } }, "node_modules/pluralize": { @@ -8989,9 +6517,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -9010,7 +6538,7 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -9091,13 +6619,16 @@ } }, "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "dev": true, "peer": true, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/postcss-nested": { @@ -9121,9 +6652,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "peer": true, "dependencies": { @@ -9174,6 +6705,15 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -9195,20 +6735,19 @@ ] }, "node_modules/rc9": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.1.tgz", - "integrity": "sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", "dev": true, "dependencies": { - "defu": "^6.1.2", - "destr": "^2.0.0", - "flat": "^5.0.2" + "defu": "^6.1.4", + "destr": "^2.0.3" } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/read-cache": { @@ -9335,6 +6874,18 @@ "node": ">=8.10.0" } }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -9420,27 +6971,70 @@ } }, "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "peer": true, "dependencies": { - "glob": "^10.3.7" + "glob": "^7.1.3" }, "bin": { - "rimraf": "dist/esm/bin.mjs" + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=14" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rollup": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.5.tgz", - "integrity": "sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -9453,19 +7047,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.5", - "@rollup/rollup-android-arm64": "4.9.5", - "@rollup/rollup-darwin-arm64": "4.9.5", - "@rollup/rollup-darwin-x64": "4.9.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.5", - "@rollup/rollup-linux-arm64-gnu": "4.9.5", - "@rollup/rollup-linux-arm64-musl": "4.9.5", - "@rollup/rollup-linux-riscv64-gnu": "4.9.5", - "@rollup/rollup-linux-x64-gnu": "4.9.5", - "@rollup/rollup-linux-x64-musl": "4.9.5", - "@rollup/rollup-win32-arm64-msvc": "4.9.5", - "@rollup/rollup-win32-ia32-msvc": "4.9.5", - "@rollup/rollup-win32-x64-msvc": "4.9.5", + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", "fsevents": "~2.3.2" } }, @@ -9633,19 +7230,16 @@ } }, "node_modules/scule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/scule/-/scule-1.2.0.tgz", - "integrity": "sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", "dev": true }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -9653,18 +7247,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -9723,9 +7305,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -9759,9 +7341,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -9775,9 +7357,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "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==", "dev": true }, "node_modules/sprintf-js": { @@ -9940,17 +7522,23 @@ } }, "node_modules/strip-literal": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", "dev": true, "dependencies": { - "acorn": "^8.10.0" + "js-tokens": "^9.0.0" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true + }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", @@ -9985,15 +7573,18 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -10008,10 +7599,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/synckit": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.6.2.tgz", + "integrity": "sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==", + "dev": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.20" + } + }, "node_modules/tailwindcss": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", - "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", "dev": true, "peer": true, "dependencies": { @@ -10023,7 +7626,7 @@ "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.19.1", + "jiti": "^1.21.0", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -10060,9 +7663,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -10089,7 +7692,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/thenify": { "version": "3.3.1", @@ -10115,9 +7719,9 @@ } }, "node_modules/tinybench": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", - "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", "dev": true }, "node_modules/tinyhighlight": { @@ -10141,24 +7745,24 @@ } }, "node_modules/tinyhighlight/node_modules/js-tokens": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.2.tgz", - "integrity": "sha512-Olnt+V7xYdvGze9YTbGFZIfQXuGV4R3nQwwl8BrtgaPE/wq8UFpUHWuTNc05saowhSr1ZO6tx+V6RjE9D5YQog==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz", + "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==", "dev": true }, "node_modules/tinypool": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz", - "integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", "dev": true, "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz", - "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", "dev": true, "engines": { "node": ">=14.0.0" @@ -10189,12 +7793,12 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" @@ -10208,70 +7812,40 @@ "peer": true }, "node_modules/ts-json-schema-generator": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.5.0.tgz", - "integrity": "sha512-RkiaJ6YxGc5EWVPfyHxszTmpGxX8HC2XBvcFlAl1zcvpOG4tjjh+eXioStXJQYTvr9MoK8zCOWzAUlko3K0DiA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-2.2.0.tgz", + "integrity": "sha512-Fo9pcSb6PIvCSapoJR4VJlcCFC67d7yBWqbctNU6ShfXSMHItkjiLl3e9KGA1bu2S3jVYOFjUdPfWtfRdnMorA==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.12", - "commander": "^11.0.0", - "glob": "^8.0.3", + "@types/json-schema": "^7.0.15", + "commander": "^12.0.0", + "glob": "^10.3.12", "json5": "^2.2.3", "normalize-path": "^3.0.0", "safe-stable-stringify": "^2.4.3", - "typescript": "~5.3.2" + "tslib": "^2.6.2", + "typescript": "^5.4.5" }, "bin": { - "ts-json-schema-generator": "bin/ts-json-schema-generator" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ts-json-schema-generator/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ts-json-schema-generator/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" + "ts-json-schema-generator": "bin/ts-json-schema-generator.js" }, "engines": { - "node": ">=10" + "node": ">=18.0.0" } }, "node_modules/tsconfck": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.2.tgz", - "integrity": "sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.0.3.tgz", + "integrity": "sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==", "dev": true, "bin": { "tsconfck": "bin/tsconfck.js" }, "engines": { - "node": "^14.13.1 || ^16 || >=18" + "node": "^18 || >=20" }, "peerDependencies": { - "typescript": "^4.3.5 || ^5.0.0" + "typescript": "^5.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -10280,9 +7854,9 @@ } }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/tsutils": { @@ -10300,6 +7874,12 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -10336,6 +7916,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -10343,19 +7924,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10364,22 +7936,48 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.10.0.tgz", + "integrity": "sha512-thO8nyqptXdfWHQrMJJiJyftpW8aLmwRNs11xA8pSrXneoclFPstQZqXvDWuH1WNL4CHffqHvYUeCHTit6yfhQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "7.10.0", + "@typescript-eslint/parser": "7.10.0", + "@typescript-eslint/utils": "7.10.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true }, "node_modules/ufo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", "dev": true }, "node_modules/undici": { - "version": "5.28.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", - "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "dev": true, "dependencies": { "@fastify/busboy": "^2.0.0" @@ -10406,21 +8004,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/unist-util-stringify-position": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", @@ -10453,9 +8036,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -10472,8 +8055,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -10528,23 +8111,23 @@ } }, "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/vite": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.11.tgz", - "integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", "dev": true, "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" }, "bin": { "vite": "bin/vite.js" @@ -10592,9 +8175,9 @@ } }, "node_modules/vite-node": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.0.tgz", - "integrity": "sha512-ETnQTHeAbbOxl7/pyBck9oAPZZZo+kYnFt1uQDD+hPReOc+wCjXw4r4jHriBRuVDB5isHmPXxrfc1yJnfBERqg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -10614,17 +8197,18 @@ } }, "node_modules/vite-plugin-dts": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.7.1.tgz", - "integrity": "sha512-VZJckNFpVfRAkmOxhGT5OgTUVWVXxkNQqLpBUuiNGAr9HbtvmvsPLo2JB3Xhn+o/Z9+CT6YZfYa4bX9SGR5hNw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.9.1.tgz", + "integrity": "sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==", "dev": true, "dependencies": { - "@microsoft/api-extractor": "7.39.0", + "@microsoft/api-extractor": "7.43.0", "@rollup/pluginutils": "^5.1.0", - "@vue/language-core": "^1.8.26", + "@vue/language-core": "^1.8.27", "debug": "^4.3.4", "kolorist": "^1.8.0", - "vue-tsc": "^1.8.26" + "magic-string": "^0.30.8", + "vue-tsc": "^1.8.27" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -10639,25 +8223,34 @@ } } }, + "node_modules/vite-plugin-dts/node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, "node_modules/vite-plugin-no-bundle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vite-plugin-no-bundle/-/vite-plugin-no-bundle-3.0.0.tgz", - "integrity": "sha512-B8O4ZmWHbA8MWhsCqjcxwCLW5Kk2Q1Ax7JhZBBB/ort+DNONkBA2HND0d9lQ5d0Q+JSOMYAQDDQ1qAS1nmThyA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-no-bundle/-/vite-plugin-no-bundle-4.0.0.tgz", + "integrity": "sha512-DXsJGXtp/QLWNFBfBqr+arxaTHEgiPCAgf9bcOPGv4n3AsFigsFj+oL95nFdMt8cRbgRDtvyTX802IZNBGg3Xg==", "dev": true, "dependencies": { - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.2", "micromatch": "^4.0.5" } }, "node_modules/vite-tsconfig-paths": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.3.tgz", - "integrity": "sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz", + "integrity": "sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==", "dev": true, "dependencies": { "debug": "^4.1.1", "globrex": "^0.1.2", - "tsconfck": "^2.1.0" + "tsconfck": "^3.0.3" }, "peerDependencies": { "vite": "*" @@ -10669,18 +8262,17 @@ } }, "node_modules/vitest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.0.tgz", - "integrity": "sha512-Ixs5m7BjqvLHXcibkzKRQUvD/XLw0E3rvqaCMlrm/0LMsA0309ZqYvTlPzkhh81VlEyVZXFlwWnkhb6/UMtcaQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", "dev": true, "dependencies": { - "@vitest/expect": "1.2.0", - "@vitest/runner": "1.2.0", - "@vitest/snapshot": "1.2.0", - "@vitest/spy": "1.2.0", - "@vitest/utils": "1.2.0", - "acorn-walk": "^8.3.1", - "cac": "^6.7.14", + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", "chai": "^4.3.10", "debug": "^4.3.4", "execa": "^8.0.1", @@ -10689,11 +8281,11 @@ "pathe": "^1.1.1", "picocolors": "^1.0.0", "std-env": "^3.5.0", - "strip-literal": "^1.3.0", + "strip-literal": "^2.0.0", "tinybench": "^2.5.1", - "tinypool": "^0.8.1", + "tinypool": "^0.8.3", "vite": "^5.0.0", - "vite-node": "1.2.0", + "vite-node": "1.6.0", "why-is-node-running": "^2.2.2" }, "bin": { @@ -10708,8 +8300,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "^1.0.0", - "@vitest/ui": "^1.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", "happy-dom": "*", "jsdom": "*" }, @@ -10750,15 +8342,12 @@ } }, "node_modules/vitest/node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" } }, "node_modules/vscode-languageserver-textdocument": { @@ -10831,6 +8420,16 @@ "node": ">=8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -10956,25 +8555,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "peer": true }, "node_modules/xdg-basedir": { "version": "5.1.0", @@ -10995,18 +8577,21 @@ "dev": true }, "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } }, "node_modules/yaml-eslint-parser": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz", - "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.3.tgz", + "integrity": "sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.0.0", @@ -11020,6 +8605,18 @@ "url": "https://github.com/sponsors/ota-meshi" } }, + "node_modules/yaml-eslint-parser/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" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index fac1e209..f2607dc0 100644 --- a/package.json +++ b/package.json @@ -64,24 +64,24 @@ ], "dependencies": { "cac": "^6.7.14", - "minimatch": "^9.0.3", - "typescript": "^5.3.3" + "minimatch": "^9.0.4", + "typescript": "^5.4.5" }, "devDependencies": { - "@schoero/configs": "^0.0.0-beta.26", + "@schoero/configs": "^1.0.13", "@types/minimatch": "^5.1.2", - "@types/node": "^20.11.2", + "@types/node": "^20.12.12", "changelogen": "^0.5.5", - "cspell": "^8.3.2", - "eslint-plugin-jsonc": "^2.12.0", - "eslint-plugin-sort-exports": "^0.8.0", + "cspell": "^8.8.3", + "eslint-plugin-jsonc": "^2.16.0", + "eslint-plugin-sort-exports": "^0.9.1", "rollup-plugin-preserve-shebang": "^1.0.1", "tinyhighlight": "^0.3.2", - "ts-json-schema-generator": "^1.5.0", - "vite": "^5.0.11", - "vite-plugin-dts": "^3.7.1", - "vite-plugin-no-bundle": "^3.0.0", - "vitest": "^1.2.0" + "ts-json-schema-generator": "^2.2.0", + "vite": "^5.2.11", + "vite-plugin-dts": "^3.9.1", + "vite-plugin-no-bundle": "^4.0.0", + "vitest": "^1.6.0" }, "keywords": [ "documentation", From 30c3d7294af7d7f3aeb71c6b6be54ea9bff4e094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sun, 26 May 2024 10:34:04 +0200 Subject: [PATCH 33/42] refactor: migrate to latest overload definitions --- tests/utils/scope.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/utils/scope.ts b/tests/utils/scope.ts index 0ff33384..c2daeafd 100644 --- a/tests/utils/scope.ts +++ b/tests/utils/scope.ts @@ -18,12 +18,12 @@ type Scopes = type Units = TypeKind | string; type DescribeReturnType = ReturnType; -type DescribeParams = (typeof describe) extends (name: infer Name, factory?: infer Factory, options?: infer Options) => DescribeReturnType ? { +type DescribeParams = (typeof describe) extends (name: infer Name, options: infer Options, factory: infer Factory) => DescribeReturnType ? { factory: Factory; name: Name; options: Options; } : never; -export function scope(scope: Scopes, unit: Units, factory?: DescribeParams["factory"], options?: DescribeParams["options"]): DescribeReturnType { +export function scope(scope: Scopes, unit: Units, factory: DescribeParams["factory"], options?: DescribeParams["options"]): DescribeReturnType { return describe(`${scope}: ${unit}`, factory); } From 7e3c47b756c1632a0b6db42178c4876ad017c766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Sat, 1 Jun 2024 09:44:30 +0200 Subject: [PATCH 34/42] chore: load renderer after interpreter --- src/api/browser.entry.ts | 4 +--- src/api/node.entry.ts | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/api/browser.entry.ts b/src/api/browser.entry.ts index d52753a4..7b71622f 100644 --- a/src/api/browser.entry.ts +++ b/src/api/browser.entry.ts @@ -40,9 +40,6 @@ export async function unwritten(program: Program, options?: BrowserAPIOptions): const diagnostics = program.getSemanticDiagnostics(); reportCompilerDiagnostics(defaultContext, diagnostics); - // renderer - const renderer = await getRenderer(defaultContext, options?.renderer); - // interpret const config = await createConfig(defaultContext, options?.config); const interpreterContext = createInterpreterContext(defaultContext, checker, config); @@ -50,6 +47,7 @@ export async function unwritten(program: Program, options?: BrowserAPIOptions): const interpretedFiles = interpret(interpreterContext, entryFileSymbol); // render + const renderer = await getRenderer(defaultContext, options?.renderer); const renderContext = createRenderContext(defaultContext, renderer, config); const renderedSymbols = renderer.render(renderContext, interpretedFiles); diff --git a/src/api/node.entry.ts b/src/api/node.entry.ts index 9bd8333b..8a4ee03a 100644 --- a/src/api/node.entry.ts +++ b/src/api/node.entry.ts @@ -42,15 +42,13 @@ export async function unwritten(entryFilePaths: string[] | string, options?: API // config const config = await createConfig(defaultContext, options?.config, options?.output); - // renderer - const renderer = await getRenderer(defaultContext, options?.renderer); - // interpret const interpreterContext = createInterpreterContext(defaultContext, checker, config); const entryFileSymbols = getEntryFileSymbolsFromProgram(interpreterContext, program); const interpretedFiles = interpret(interpreterContext, entryFileSymbols); // render + const renderer = await getRenderer(defaultContext, options?.renderer); const renderContext = createRenderContext(defaultContext, renderer, config); const renderedFiles = renderer.render(renderContext, interpretedFiles); From 5442e5d327fea18bc96a73afeb51c8fca062b3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:12:24 +0200 Subject: [PATCH 35/42] feat: cache types and entities --- src/interpreter/ast/entities/class.ts | 6 +-- src/interpreter/ast/entities/enum.ts | 6 +-- .../ast/entities/export-assignment.ts | 6 +-- .../ast/entities/function-like.test.ts | 16 +++++--- src/interpreter/ast/entities/function-like.ts | 6 +-- src/interpreter/ast/entities/interface.ts | 6 +-- src/interpreter/ast/entities/module.ts | 6 +-- src/interpreter/ast/entities/namespace.ts | 6 +-- src/interpreter/ast/entities/parameter.ts | 5 ++- src/interpreter/ast/entities/property.ts | 4 +- src/interpreter/ast/entities/setter.ts | 5 +-- src/interpreter/ast/entities/signature.ts | 4 +- src/interpreter/ast/entities/source-file.ts | 6 +-- src/interpreter/ast/entities/type-alias.ts | 6 +-- .../ast/entities/type-parameter.ts | 5 ++- src/interpreter/ast/entities/unresolved.ts | 5 ++- src/interpreter/ast/entities/variable.ts | 5 ++- src/interpreter/ast/types/any.ts | 9 +++-- src/interpreter/ast/types/array.ts | 6 +-- src/interpreter/ast/types/bigint-literal.ts | 7 ++-- src/interpreter/ast/types/bigint.ts | 7 ++-- src/interpreter/ast/types/boolean-literal.ts | 7 ++-- src/interpreter/ast/types/boolean.ts | 7 ++-- src/interpreter/ast/types/circular.ts | 7 ++-- src/interpreter/ast/types/class.ts | 8 ++-- src/interpreter/ast/types/conditional.ts | 6 +-- src/interpreter/ast/types/function.ts | 8 ++-- src/interpreter/ast/types/indexed-access.ts | 6 +-- src/interpreter/ast/types/interface.ts | 6 +-- src/interpreter/ast/types/intersection.ts | 8 ++-- src/interpreter/ast/types/never.ts | 7 ++-- src/interpreter/ast/types/null.ts | 7 ++-- src/interpreter/ast/types/number-literal.ts | 7 ++-- src/interpreter/ast/types/number.ts | 7 ++-- src/interpreter/ast/types/object-literal.ts | 8 ++-- src/interpreter/ast/types/object.test.ts | 38 +++++++++++++------ src/interpreter/ast/types/object.ts | 6 +-- src/interpreter/ast/types/string-literal.ts | 7 ++-- src/interpreter/ast/types/string.ts | 7 ++-- src/interpreter/ast/types/symbol.ts | 7 ++-- src/interpreter/ast/types/tuple.ts | 5 ++- src/interpreter/ast/types/type-query.ts | 2 +- src/interpreter/ast/types/undefined.ts | 7 ++-- src/interpreter/ast/types/union.ts | 6 +-- src/interpreter/ast/types/unknown.ts | 7 ++-- src/interpreter/ast/types/unresolved.ts | 5 ++- src/interpreter/ast/types/void.ts | 7 ++-- src/interpreter/utils/context.ts | 2 + src/interpreter/utils/ts.ts | 38 ++++++++++++++++--- 49 files changed, 222 insertions(+), 153 deletions(-) diff --git a/src/interpreter/ast/entities/class.ts b/src/interpreter/ast/entities/class.ts index 084d70fa..1802c30e 100644 --- a/src/interpreter/ast/entities/class.ts +++ b/src/interpreter/ast/entities/class.ts @@ -1,6 +1,6 @@ import { getJSDocProperties } from "unwritten:interpreter/ast/jsdoc"; import { EntityKind } from "unwritten:interpreter/enums/entity"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity, withLockedSymbol } from "unwritten:interpreter/utils/ts"; import { createConstructorEntity, createGetterEntity, @@ -32,7 +32,7 @@ import type { ExpressionType } from "unwritten:interpreter:type-definitions/type import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createClassEntity = (ctx: InterpreterContext, symbol: Symbol): ClassEntity => withLockedSymbol(ctx, symbol, () => { +export const createClassEntity = (ctx: InterpreterContext, symbol: Symbol): ClassEntity => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const declaration = symbol.valueDeclaration ?? symbol.getDeclarations()?.[0]; @@ -86,7 +86,7 @@ export const createClassEntity = (ctx: InterpreterContext, symbol: Symbol): Clas typeParameters }; -}); +})); function getSymbolsByTypeFromClassLikeDeclaration( diff --git a/src/interpreter/ast/entities/enum.ts b/src/interpreter/ast/entities/enum.ts index e546c91b..3b93c8d9 100644 --- a/src/interpreter/ast/entities/enum.ts +++ b/src/interpreter/ast/entities/enum.ts @@ -1,6 +1,6 @@ import { getJSDocProperties } from "unwritten:interpreter/ast/jsdoc"; import { EntityKind } from "unwritten:interpreter/enums/entity"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity, withLockedSymbol } from "unwritten:interpreter/utils/ts"; import { getDeclarationId, getSymbolId, getSymbolIdByDeclaration } from "unwritten:interpreter:ast/shared/id"; import { getNameByDeclaration, getNameBySymbol } from "unwritten:interpreter:ast/shared/name"; import { getPositionByDeclaration } from "unwritten:interpreter:ast/shared/position"; @@ -15,7 +15,7 @@ import type { EnumEntity, EnumMemberEntity, MergedEnumEntity } from "unwritten:i import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createEnumEntity = (ctx: InterpreterContext, symbol: Symbol): EnumEntity | MergedEnumEntity => withLockedSymbol(ctx, symbol, () => { +export const createEnumEntity = (ctx: InterpreterContext, symbol: Symbol): EnumEntity | MergedEnumEntity => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const declarations = symbol.getDeclarations()?.flatMap(declaration => isEnumDeclaration(ctx, declaration) ? declaration : []); @@ -45,7 +45,7 @@ export const createEnumEntity = (ctx: InterpreterContext, symbol: Symbol): EnumE }; } -}); +})); function mergeMembers(enums: ReturnType[]): EnumEntity["members"] { diff --git a/src/interpreter/ast/entities/export-assignment.ts b/src/interpreter/ast/entities/export-assignment.ts index f5d4e576..c75e6503 100644 --- a/src/interpreter/ast/entities/export-assignment.ts +++ b/src/interpreter/ast/entities/export-assignment.ts @@ -4,7 +4,7 @@ import { getNameBySymbol } from "unwritten:interpreter/ast/shared/name"; import { getPositionByDeclaration } from "unwritten:interpreter/ast/shared/position"; import { EntityKind } from "unwritten:interpreter/enums/entity"; import { isExportAssignment } from "unwritten:interpreter/typeguards/declarations"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity, withLockedSymbol } from "unwritten:interpreter/utils/ts"; import { assert } from "unwritten:utils/general"; import { getTypeByType } from "../type"; @@ -15,7 +15,7 @@ import type { ExportAssignmentEntity } from "unwritten:interpreter/type-definiti import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createExportAssignmentEntity = (ctx: InterpreterContext, symbol: Symbol): ExportAssignmentEntity => withLockedSymbol(ctx, symbol, () => { +export const createExportAssignmentEntity = (ctx: InterpreterContext, symbol: Symbol): ExportAssignmentEntity => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const declaration = symbol.valueDeclaration ?? symbol.declarations?.[0]; @@ -38,4 +38,4 @@ export const createExportAssignmentEntity = (ctx: InterpreterContext, symbol: Sy type }; -}); +})); diff --git a/src/interpreter/ast/entities/function-like.test.ts b/src/interpreter/ast/entities/function-like.test.ts index f5457a49..6d230f8e 100644 --- a/src/interpreter/ast/entities/function-like.test.ts +++ b/src/interpreter/ast/entities/function-like.test.ts @@ -15,17 +15,23 @@ scope("Interpreter", EntityKind.Function, () => { const testFileContent = ts` export function functionSymbol(test: string): void {} + export function getterSymbol(test: string): void {} + export function methodSymbol(test: string): void {} + export function setterSymbol(test: string): void {} `; const { ctx, exportedSymbols } = compile(testFileContent); - const symbol = exportedSymbols.find(s => s.name === "functionSymbol")!; + const functionSymbol = exportedSymbols.find(s => s.name === "functionSymbol")!; + const getterSymbol = exportedSymbols.find(s => s.name === "getterSymbol")!; + const methodSymbol = exportedSymbols.find(s => s.name === "methodSymbol")!; + const setterSymbol = exportedSymbols.find(s => s.name === "setterSymbol")!; it("should be able to create function like entities", () => { - expect(createFunctionLikeEntity(ctx, symbol, EntityKind.Function).kind).toBe(EntityKind.Function); - expect(createFunctionLikeEntity(ctx, symbol, EntityKind.Getter).kind).toBe(EntityKind.Getter); - expect(createFunctionLikeEntity(ctx, symbol, EntityKind.Method).kind).toBe(EntityKind.Method); - expect(createFunctionLikeEntity(ctx, symbol, EntityKind.Setter).kind).toBe(EntityKind.Setter); + expect(createFunctionLikeEntity(ctx, functionSymbol, EntityKind.Function).kind).toBe(EntityKind.Function); + expect(createFunctionLikeEntity(ctx, getterSymbol, EntityKind.Getter).kind).toBe(EntityKind.Getter); + expect(createFunctionLikeEntity(ctx, methodSymbol, EntityKind.Method).kind).toBe(EntityKind.Method); + expect(createFunctionLikeEntity(ctx, setterSymbol, EntityKind.Setter).kind).toBe(EntityKind.Setter); }); } diff --git a/src/interpreter/ast/entities/function-like.ts b/src/interpreter/ast/entities/function-like.ts index 58d199e5..d75f98bb 100644 --- a/src/interpreter/ast/entities/function-like.ts +++ b/src/interpreter/ast/entities/function-like.ts @@ -1,5 +1,5 @@ import { EntityKind } from "unwritten:interpreter/enums/entity.js"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity, withLockedSymbol } from "unwritten:interpreter/utils/ts"; import { createSignatureEntity } from "unwritten:interpreter:ast/entities/index"; import { getSymbolId } from "unwritten:interpreter:ast/shared/id"; import { getNameBySymbol } from "unwritten:interpreter:ast/shared/name"; @@ -21,7 +21,7 @@ import type { import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createFunctionLikeEntity = (ctx: InterpreterContext, symbol: Symbol, kind: Kind): InferFunctionLikeEntityKind => withLockedSymbol(ctx, symbol, () => { +export const createFunctionLikeEntity = (ctx: InterpreterContext, symbol: Symbol, kind: Kind): InferFunctionLikeEntityKind => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const declarations = symbol.declarations?.flatMap(declaration => isFunctionLikeDeclaration(ctx, declaration) || isCallSignatureDeclaration(ctx, declaration) || @@ -48,7 +48,7 @@ export const createFunctionLikeEntity = (c symbolId }; -}); +})); const signatureKindMap = { [EntityKind.Function]: EntityKind.FunctionSignature, diff --git a/src/interpreter/ast/entities/interface.ts b/src/interpreter/ast/entities/interface.ts index f36c3014..bc82a5e3 100644 --- a/src/interpreter/ast/entities/interface.ts +++ b/src/interpreter/ast/entities/interface.ts @@ -1,6 +1,6 @@ import { getJSDocProperties } from "unwritten:interpreter/ast/jsdoc"; import { EntityKind } from "unwritten:interpreter/enums/entity"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity, withLockedSymbol } from "unwritten:interpreter/utils/ts"; import { createPropertyEntity, createSignatureEntity, @@ -30,7 +30,7 @@ import type { InterpreterContext } from "unwritten:type-definitions/context"; import type { PartialByKey } from "unwritten:type-definitions/utils"; -export const createInterfaceEntity = (ctx: InterpreterContext, symbol: Symbol): InterfaceEntity | MergedInterfaceEntity => withLockedSymbol(ctx, symbol, () => { +export const createInterfaceEntity = (ctx: InterpreterContext, symbol: Symbol): InterfaceEntity | MergedInterfaceEntity => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const interfaceDeclarations = symbol.getDeclarations()?.filter(declaration => isInterfaceDeclaration(ctx, declaration)) as InterfaceDeclaration[] | undefined; @@ -81,7 +81,7 @@ export const createInterfaceEntity = (ctx: InterpreterContext, symbol: Symbol): } -}); +})); function mergeMembers withLockedSymbol(ctx, symbol, () => { +export const createModuleEntity = (ctx: InterpreterContext, symbol: Symbol): ModuleEntity => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const fromSourceFile = createSourceFileEntity(ctx, symbol); @@ -35,4 +35,4 @@ export const createModuleEntity = (ctx: InterpreterContext, symbol: Symbol): Mod position }; -}); +})); diff --git a/src/interpreter/ast/entities/namespace.ts b/src/interpreter/ast/entities/namespace.ts index c63a79f5..893d9317 100644 --- a/src/interpreter/ast/entities/namespace.ts +++ b/src/interpreter/ast/entities/namespace.ts @@ -3,7 +3,7 @@ import { getDeclarationId, getSymbolId } from "unwritten:interpreter/ast/shared/ import { getNameByDeclaration, getNameBySymbol } from "unwritten:interpreter/ast/shared/name"; import { EntityKind } from "unwritten:interpreter/enums/entity"; import { isNamespaceExport } from "unwritten:interpreter/typeguards/declarations"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity, withLockedSymbol } from "unwritten:interpreter/utils/ts"; import { createSourceFileEntity } from "unwritten:interpreter:ast/entities/index"; import { getPositionByDeclaration } from "unwritten:interpreter:ast/shared/position"; import { assert } from "unwritten:utils/general"; @@ -14,7 +14,7 @@ import type { NamespaceEntity } from "unwritten:interpreter/type-definitions/ent import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createNamespaceEntity = (ctx: InterpreterContext, symbol: Symbol): NamespaceEntity => withLockedSymbol(ctx, symbol, () => { +export const createNamespaceEntity = (ctx: InterpreterContext, symbol: Symbol): NamespaceEntity => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const fromSourceFile = createSourceFileEntity(ctx, symbol); @@ -38,7 +38,7 @@ export const createNamespaceEntity = (ctx: InterpreterContext, symbol: Symbol): symbolId }; -}); +})); export const createNamespaceEntityFromNamespaceExport = (ctx: InterpreterContext, symbol: Symbol): NamespaceEntity => withLockedSymbol(ctx, symbol, () => { diff --git a/src/interpreter/ast/entities/parameter.ts b/src/interpreter/ast/entities/parameter.ts index 724be1a6..722eed56 100644 --- a/src/interpreter/ast/entities/parameter.ts +++ b/src/interpreter/ast/entities/parameter.ts @@ -1,6 +1,7 @@ import { getJSDocProperties } from "unwritten:interpreter/ast/jsdoc"; import { EntityKind } from "unwritten:interpreter/enums/entity"; import { isParameterDeclaration } from "unwritten:interpreter/typeguards/declarations"; +import { withCachedEntity } from "unwritten:interpreter/utils/ts"; import { getDeclarationId, getSymbolId } from "unwritten:interpreter:ast/shared/id"; import { getInitializerByDeclaration } from "unwritten:interpreter:ast/shared/initializer"; import { getNameBySymbol } from "unwritten:interpreter:ast/shared/name"; @@ -15,7 +16,7 @@ import type { ParameterEntity } from "unwritten:interpreter/type-definitions/ent import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createParameterEntity(ctx: InterpreterContext, symbol: Symbol): ParameterEntity { +export const createParameterEntity = (ctx: InterpreterContext, symbol: Symbol): ParameterEntity => withCachedEntity(ctx, symbol, () => { const declaration = symbol.valueDeclaration ?? symbol.getDeclarations()?.[0]; @@ -47,4 +48,4 @@ export function createParameterEntity(ctx: InterpreterContext, symbol: Symbol): type }; -} +}); diff --git a/src/interpreter/ast/entities/property.ts b/src/interpreter/ast/entities/property.ts index 27c39b5b..aded6030 100644 --- a/src/interpreter/ast/entities/property.ts +++ b/src/interpreter/ast/entities/property.ts @@ -1,6 +1,6 @@ import { getJSDocProperties } from "unwritten:interpreter/ast/jsdoc"; import { EntityKind } from "unwritten:interpreter/enums/entity"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity } from "unwritten:interpreter/utils/ts"; import { getDeclarationId, getSymbolId } from "unwritten:interpreter:ast/shared/id"; import { getInitializerByDeclaration } from "unwritten:interpreter:ast/shared/initializer"; import { getModifiersByDeclaration } from "unwritten:interpreter:ast/shared/modifiers"; @@ -30,7 +30,7 @@ import type { PropertyEntity } from "unwritten:interpreter/type-definitions/enti import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createPropertyEntity = (ctx: InterpreterContext, symbol: Symbol): PropertyEntity => withLockedSymbol(ctx, symbol, () => { +export const createPropertyEntity = (ctx: InterpreterContext, symbol: Symbol): PropertyEntity => withCachedEntity(ctx, symbol, () => { const declaration = symbol.valueDeclaration ?? symbol.getDeclarations()?.[0]; diff --git a/src/interpreter/ast/entities/setter.ts b/src/interpreter/ast/entities/setter.ts index 7a5dd156..098f7d55 100644 --- a/src/interpreter/ast/entities/setter.ts +++ b/src/interpreter/ast/entities/setter.ts @@ -8,8 +8,5 @@ import type { InterpreterContext } from "unwritten:type-definitions/context"; export function createSetterEntity(ctx: InterpreterContext, symbol: Symbol): SetterEntity { - const functionLike = createFunctionLikeEntity(ctx, symbol, EntityKind.Setter); - return { - ...functionLike - }; + return createFunctionLikeEntity(ctx, symbol, EntityKind.Setter); } diff --git a/src/interpreter/ast/entities/signature.ts b/src/interpreter/ast/entities/signature.ts index 81e3e1ac..ed98c2be 100644 --- a/src/interpreter/ast/entities/signature.ts +++ b/src/interpreter/ast/entities/signature.ts @@ -22,7 +22,7 @@ import type { SignatureEntity, SignatureEntityKinds } from "unwritten:interprete import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createSignatureEntity(ctx: InterpreterContext, signature: TSSignature, kind: SignatureEntityKinds): SignatureEntity { +export const createSignatureEntity = (ctx: InterpreterContext, signature: TSSignature, kind: SignatureEntityKinds): SignatureEntity => { // Implicit construct signatures have no declaration. const symbolId = signature.declaration && getSymbolIdByDeclaration(ctx, signature.declaration); @@ -55,7 +55,7 @@ export function createSignatureEntity(ctx: InterpreterContext, signature: TSSign typeParameters }; -} +}; function getReturnTypeBySignature(ctx: InterpreterContext, signature: TSSignature) { diff --git a/src/interpreter/ast/entities/source-file.ts b/src/interpreter/ast/entities/source-file.ts index 0aaf4f44..1b3bf709 100644 --- a/src/interpreter/ast/entities/source-file.ts +++ b/src/interpreter/ast/entities/source-file.ts @@ -1,6 +1,6 @@ import { interpretSymbol } from "unwritten:interpreter/ast/symbol"; import { EntityKind } from "unwritten:interpreter/enums/entity"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity, withLockedSymbol } from "unwritten:interpreter/utils/ts"; import { getSymbolId } from "unwritten:interpreter:ast/shared/id"; import { isExportableEntity } from "unwritten:typeguards/entities"; import { assert } from "unwritten:utils/general"; @@ -11,7 +11,7 @@ import type { ExportableEntity, SourceFileEntity } from "unwritten:interpreter/t import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createSourceFileEntity = (ctx: InterpreterContext, symbol: Symbol): SourceFileEntity => withLockedSymbol(ctx, symbol, () => { +export const createSourceFileEntity = (ctx: InterpreterContext, symbol: Symbol): SourceFileEntity => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const { getFileName } = ctx.dependencies.path; @@ -46,4 +46,4 @@ export const createSourceFileEntity = (ctx: InterpreterContext, symbol: Symbol): symbolId }; -}); +})); diff --git a/src/interpreter/ast/entities/type-alias.ts b/src/interpreter/ast/entities/type-alias.ts index bf5d1892..4ccba109 100644 --- a/src/interpreter/ast/entities/type-alias.ts +++ b/src/interpreter/ast/entities/type-alias.ts @@ -2,7 +2,7 @@ import { createTypeParameterEntityByDeclaration } from "unwritten:interpreter/as import { getJSDocProperties } from "unwritten:interpreter/ast/jsdoc"; import { getPositionByDeclaration } from "unwritten:interpreter/ast/shared/position"; import { EntityKind } from "unwritten:interpreter/enums/entity"; -import { withLockedSymbol } from "unwritten:interpreter/utils/ts"; +import { withCachedEntity, withLockedSymbol } from "unwritten:interpreter/utils/ts"; import { getDeclarationId, getSymbolId } from "unwritten:interpreter:ast/shared/id"; import { getNameBySymbol } from "unwritten:interpreter:ast/shared/name"; import { isTypeAliasDeclaration } from "unwritten:interpreter:typeguards/declarations"; @@ -16,7 +16,7 @@ import type { TypeAliasEntity } from "unwritten:interpreter/type-definitions/ent import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createTypeAliasEntity = (ctx: InterpreterContext, symbol: Symbol): TypeAliasEntity => withLockedSymbol(ctx, symbol, () => { +export const createTypeAliasEntity = (ctx: InterpreterContext, symbol: Symbol): TypeAliasEntity => withCachedEntity(ctx, symbol, () => withLockedSymbol(ctx, symbol, () => { const declaration = symbol.valueDeclaration ?? symbol.getDeclarations()?.[0]; @@ -49,4 +49,4 @@ export const createTypeAliasEntity = (ctx: InterpreterContext, symbol: Symbol): typeParameters }; -}); +})); diff --git a/src/interpreter/ast/entities/type-parameter.ts b/src/interpreter/ast/entities/type-parameter.ts index be8212a5..20512420 100644 --- a/src/interpreter/ast/entities/type-parameter.ts +++ b/src/interpreter/ast/entities/type-parameter.ts @@ -1,5 +1,6 @@ import { getJSDocProperties } from "unwritten:interpreter/ast/jsdoc"; import { EntityKind } from "unwritten:interpreter/enums/entity"; +import { withCachedEntity } from "unwritten:interpreter/utils/ts"; import { getDeclarationId, getSymbolId } from "unwritten:interpreter:ast/shared/id"; import { getNameBySymbol } from "unwritten:interpreter:ast/shared/name"; import { getPositionByDeclaration } from "unwritten:interpreter:ast/shared/position"; @@ -44,7 +45,7 @@ export function createTypeParameterEntityByTypeParameter(ctx: InterpreterContext } -export function createTypeParameterEntity(ctx: InterpreterContext, symbol: Symbol): TypeParameterEntity { +export const createTypeParameterEntity = (ctx: InterpreterContext, symbol: Symbol): TypeParameterEntity => withCachedEntity(ctx, symbol, () => { const declaration = symbol.valueDeclaration ?? symbol.getDeclarations()?.[0]; @@ -71,7 +72,7 @@ export function createTypeParameterEntity(ctx: InterpreterContext, symbol: Symbo symbolId }; -} +}); export function createTypeParameterEntityByDeclaration(ctx: InterpreterContext, declaration: TypeParameterDeclaration): TypeParameterEntity { diff --git a/src/interpreter/ast/entities/unresolved.ts b/src/interpreter/ast/entities/unresolved.ts index edc81c25..426903fd 100644 --- a/src/interpreter/ast/entities/unresolved.ts +++ b/src/interpreter/ast/entities/unresolved.ts @@ -1,4 +1,5 @@ import { EntityKind } from "unwritten:interpreter/enums/entity"; +import { withCachedEntity } from "unwritten:interpreter/utils/ts"; import { getSymbolId } from "unwritten:interpreter:ast/shared/id"; import { getNameBySymbol } from "unwritten:interpreter:ast/shared/name"; import { getPositionBySymbol } from "unwritten:interpreter:ast/shared/position"; @@ -9,7 +10,7 @@ import type { UnresolvedEntity } from "unwritten:interpreter/type-definitions/en import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createUnresolvedEntity(ctx: InterpreterContext, symbol: Symbol): UnresolvedEntity { +export const createUnresolvedEntity = (ctx: InterpreterContext, symbol: Symbol): UnresolvedEntity => withCachedEntity(ctx, symbol, () => { const name = getNameBySymbol(ctx, symbol); const symbolId = getSymbolId(ctx, symbol); @@ -23,4 +24,4 @@ export function createUnresolvedEntity(ctx: InterpreterContext, symbol: Symbol): symbolId }; -} +}); diff --git a/src/interpreter/ast/entities/variable.ts b/src/interpreter/ast/entities/variable.ts index 90ab723f..6a4137f4 100644 --- a/src/interpreter/ast/entities/variable.ts +++ b/src/interpreter/ast/entities/variable.ts @@ -1,5 +1,6 @@ import { getJSDocProperties } from "unwritten:interpreter/ast/jsdoc"; import { EntityKind } from "unwritten:interpreter/enums/entity"; +import { withCachedEntity } from "unwritten:interpreter/utils/ts"; import { getDeclarationId, getSymbolId } from "unwritten:interpreter:ast/shared/id"; import { getModifiersByDeclaration } from "unwritten:interpreter:ast/shared/modifiers"; import { getNameBySymbol } from "unwritten:interpreter:ast/shared/name"; @@ -15,7 +16,7 @@ import type { VariableEntity } from "unwritten:interpreter/type-definitions/enti import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createVariableEntity(ctx: InterpreterContext, symbol: Symbol): VariableEntity { +export const createVariableEntity = (ctx: InterpreterContext, symbol: Symbol): VariableEntity => withCachedEntity(ctx, symbol, () => { const declaration = symbol.valueDeclaration ?? symbol.getDeclarations()?.[0]; @@ -41,4 +42,4 @@ export function createVariableEntity(ctx: InterpreterContext, symbol: Symbol): V type }; -} +}); diff --git a/src/interpreter/ast/types/any.ts b/src/interpreter/ast/types/any.ts index 5a4a42b7..5019d94f 100644 --- a/src/interpreter/ast/types/any.ts +++ b/src/interpreter/ast/types/any.ts @@ -1,17 +1,18 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isAnyType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { AnyType } from "unwritten:interpreter:type-definitions/types"; +import type { AnyType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createAnyType(ctx: InterpreterContext, type: Type): AnyType { +export const createAnyType = (ctx: InterpreterContext, type: Type): AnyType => withCachedType(ctx, type, () => { - assert(isAnyType(ctx, type), "type is not a any type"); + assert(isAnyType(ctx, type), "type is not an any type"); const kind = TypeKind.Any; const name = "any"; @@ -23,4 +24,4 @@ export function createAnyType(ctx: InterpreterContext, type: Type): AnyType { typeId }; -} +}); diff --git a/src/interpreter/ast/types/array.ts b/src/interpreter/ast/types/array.ts index 1d25e928..fff340a5 100644 --- a/src/interpreter/ast/types/array.ts +++ b/src/interpreter/ast/types/array.ts @@ -1,6 +1,6 @@ /* eslint-disable eslint-plugin-typescript/array-type */ import { TypeKind } from "unwritten:interpreter/enums/type"; -import { withLockedType } from "unwritten:interpreter/utils/ts.js"; +import { withCachedType, withLockedType } from "unwritten:interpreter/utils/ts.js"; import { getIdByTypeNode, getTypeId } from "unwritten:interpreter:ast/shared/id"; import { getPositionByNode, getPositionByType } from "unwritten:interpreter:ast/shared/position"; @@ -12,7 +12,7 @@ import type { ArrayType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createArrayType = (ctx: InterpreterContext, typeReference: TypeReference): ArrayType => withLockedType(ctx, typeReference, () => { +export const createArrayType = (ctx: InterpreterContext, typeReference: TypeReference): ArrayType => withCachedType(ctx, typeReference, () => withLockedType(ctx, typeReference, () => { const typeId = getTypeId(ctx, typeReference); const position = getPositionByType(ctx, typeReference); @@ -26,7 +26,7 @@ export const createArrayType = (ctx: InterpreterContext, typeReference: TypeRefe typeId }; -}); +})); export function createArrayTypeByArrayTypeNode(ctx: InterpreterContext, arrayTypeNode: ArrayTypeNode): ArrayType { diff --git a/src/interpreter/ast/types/bigint-literal.ts b/src/interpreter/ast/types/bigint-literal.ts index b18bcd8c..77b7dcda 100644 --- a/src/interpreter/ast/types/bigint-literal.ts +++ b/src/interpreter/ast/types/bigint-literal.ts @@ -1,13 +1,14 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { BigIntLiteralType as TSBigIntLiteralType } from "typescript"; -import type { BigIntLiteralType } from "unwritten:interpreter:type-definitions/types"; +import type { BigIntLiteralType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createBigIntLiteralType(ctx: InterpreterContext, type: TSBigIntLiteralType): BigIntLiteralType { +export const createBigIntLiteralType = (ctx: InterpreterContext, type: TSBigIntLiteralType): BigIntLiteralType => withCachedType(ctx, type, () => { const typeId = getTypeId(ctx, type); const sign = type.value.negative ? "-" : ""; @@ -22,4 +23,4 @@ export function createBigIntLiteralType(ctx: InterpreterContext, type: TSBigIntL value }; -} +}); diff --git a/src/interpreter/ast/types/bigint.ts b/src/interpreter/ast/types/bigint.ts index 6c8cfde2..6860452c 100644 --- a/src/interpreter/ast/types/bigint.ts +++ b/src/interpreter/ast/types/bigint.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isBigIntType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { BigIntType } from "unwritten:interpreter:type-definitions/types"; +import type { BigIntType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createBigIntType(ctx: InterpreterContext, type: Type): BigIntType { +export const createBigIntType = (ctx: InterpreterContext, type: Type): BigIntType => withCachedType(ctx, type, () => { assert(isBigIntType(ctx, type), "type is not a string type"); @@ -23,4 +24,4 @@ export function createBigIntType(ctx: InterpreterContext, type: Type): BigIntTyp typeId }; -} +}); diff --git a/src/interpreter/ast/types/boolean-literal.ts b/src/interpreter/ast/types/boolean-literal.ts index f67eb432..628410c6 100644 --- a/src/interpreter/ast/types/boolean-literal.ts +++ b/src/interpreter/ast/types/boolean-literal.ts @@ -1,13 +1,14 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { LiteralType } from "typescript"; -import type { BooleanLiteralType } from "unwritten:interpreter:type-definitions/types"; +import type { BooleanLiteralType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createBooleanLiteralType(ctx: InterpreterContext, type: LiteralType): BooleanLiteralType { +export const createBooleanLiteralType = (ctx: InterpreterContext, type: LiteralType): BooleanLiteralType => withCachedType(ctx, type, () => { const typeId = getTypeId(ctx, type); // @ts-expect-error // Alternative way would be to use the typeChecker and typeToString() @@ -22,4 +23,4 @@ export function createBooleanLiteralType(ctx: InterpreterContext, type: LiteralT value }; -} +}); diff --git a/src/interpreter/ast/types/boolean.ts b/src/interpreter/ast/types/boolean.ts index 1514b9a8..863e3f75 100644 --- a/src/interpreter/ast/types/boolean.ts +++ b/src/interpreter/ast/types/boolean.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isBooleanType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { BooleanType } from "unwritten:interpreter:type-definitions/types"; +import type { BooleanType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createBooleanType(ctx: InterpreterContext, type: Type): BooleanType { +export const createBooleanType = (ctx: InterpreterContext, type: Type): BooleanType => withCachedType(ctx, type, () => { assert(isBooleanType(ctx, type), "type is not a boolean type"); @@ -23,4 +24,4 @@ export function createBooleanType(ctx: InterpreterContext, type: Type): BooleanT typeId }; -} +}); diff --git a/src/interpreter/ast/types/circular.ts b/src/interpreter/ast/types/circular.ts index 593e5b4b..0241c743 100644 --- a/src/interpreter/ast/types/circular.ts +++ b/src/interpreter/ast/types/circular.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getSymbolId, getTypeId } from "unwritten:interpreter:ast/shared/id"; import { getNameByType } from "unwritten:interpreter:ast/shared/name"; import { getPositionBySymbol } from "unwritten:interpreter:ast/shared/position"; import type { Type } from "typescript"; -import type { CircularType } from "unwritten:interpreter:type-definitions/types"; +import type { CircularType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createCircularType(ctx: InterpreterContext, type: Type): CircularType { +export const createCircularType = (ctx: InterpreterContext, type: Type): CircularType => withCachedType(ctx, type, () => { const typeId = getTypeId(ctx, type); const symbol = type.getSymbol(); @@ -26,4 +27,4 @@ export function createCircularType(ctx: InterpreterContext, type: Type): Circula typeId }; -} +}); diff --git a/src/interpreter/ast/types/class.ts b/src/interpreter/ast/types/class.ts index b4e97352..d63c2c7e 100644 --- a/src/interpreter/ast/types/class.ts +++ b/src/interpreter/ast/types/class.ts @@ -1,13 +1,13 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; import { createObjectLikeType } from "unwritten:interpreter:ast/types/index"; -import { withLockedType } from "unwritten:interpreter:utils/ts"; +import { withCachedType, withLockedType } from "unwritten:interpreter:utils/ts"; import type { ObjectType } from "typescript"; -import type { ClassType } from "unwritten:interpreter:type-definitions/types"; +import type { ClassType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createClassType = (ctx: InterpreterContext, type: ObjectType): ClassType => withLockedType(ctx, type, () => { +export const createClassType = (ctx: InterpreterContext, type: ObjectType): ClassType => withCachedType(ctx, type, () => withLockedType(ctx, type, () => { return createObjectLikeType(ctx, type, TypeKind.Class); -}); +})); diff --git a/src/interpreter/ast/types/conditional.ts b/src/interpreter/ast/types/conditional.ts index 1b8bf9d9..f7d66f30 100644 --- a/src/interpreter/ast/types/conditional.ts +++ b/src/interpreter/ast/types/conditional.ts @@ -1,5 +1,5 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; -import { withLockedType } from "unwritten:interpreter/utils/ts.js"; +import { withCachedType, withLockedType } from "unwritten:interpreter/utils/ts.js"; import { getIdByTypeNode, getTypeId } from "unwritten:interpreter:ast/shared/id"; import { getTypeByTypeNode } from "../type"; @@ -31,7 +31,7 @@ export function createConditionalTypeByTypeNode(ctx: InterpreterContext, typeNod } -export const createConditionalType = (ctx: InterpreterContext, type: TSConditionalType): ConditionalType => withLockedType(ctx, type, () => { +export const createConditionalType = (ctx: InterpreterContext, type: TSConditionalType): ConditionalType => withCachedType(ctx, type, () => withLockedType(ctx, type, () => { const root = type.root; const typeId = getTypeId(ctx, type); @@ -51,4 +51,4 @@ export const createConditionalType = (ctx: InterpreterContext, type: TSCondition typeId }; -}); +})); diff --git a/src/interpreter/ast/types/function.ts b/src/interpreter/ast/types/function.ts index 08fcec17..4e8db0fb 100644 --- a/src/interpreter/ast/types/function.ts +++ b/src/interpreter/ast/types/function.ts @@ -1,16 +1,16 @@ import { EntityKind } from "unwritten:interpreter/enums/entity.js"; import { TypeKind } from "unwritten:interpreter/enums/type"; -import { withLockedType } from "unwritten:interpreter/utils/ts.js"; +import { withCachedType, withLockedType } from "unwritten:interpreter/utils/ts.js"; import { createSignatureEntity } from "unwritten:interpreter:ast/entities/index"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { ObjectType } from "typescript"; -import type { FunctionType } from "unwritten:interpreter:type-definitions/types"; +import type { FunctionType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createFunctionType = (ctx: InterpreterContext, type: ObjectType): FunctionType => withLockedType(ctx, type, () => { +export const createFunctionType = (ctx: InterpreterContext, type: ObjectType): FunctionType => withCachedType(ctx, type, () => withLockedType(ctx, type, () => { const callSignatures = type.getCallSignatures(); // Types with constructSignatures are considered object types const signatures = callSignatures.map(signature => createSignatureEntity(ctx, signature, EntityKind.FunctionSignature)); @@ -24,4 +24,4 @@ export const createFunctionType = (ctx: InterpreterContext, type: ObjectType): F typeId }; -}); +})); diff --git a/src/interpreter/ast/types/indexed-access.ts b/src/interpreter/ast/types/indexed-access.ts index 907a40aa..bb51121d 100644 --- a/src/interpreter/ast/types/indexed-access.ts +++ b/src/interpreter/ast/types/indexed-access.ts @@ -1,6 +1,6 @@ import { getIdByTypeNode, getTypeId } from "unwritten:interpreter/ast/shared/id"; import { TypeKind } from "unwritten:interpreter/enums/type"; -import { withLockedType } from "unwritten:interpreter/utils/ts"; +import { withCachedType, withLockedType } from "unwritten:interpreter/utils/ts"; import { getTypeByType, getTypeByTypeNode } from "../type"; @@ -10,7 +10,7 @@ import type { IndexedAccessType } from "unwritten:interpreter:type-definitions/t import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createIndexedAccessType = (ctx: InterpreterContext, indexedAccessType: TSIndexedAccessType): IndexedAccessType => withLockedType(ctx, indexedAccessType, () => { +export const createIndexedAccessType = (ctx: InterpreterContext, indexedAccessType: TSIndexedAccessType): IndexedAccessType => withCachedType(ctx, indexedAccessType, () => withLockedType(ctx, indexedAccessType, () => { const indexType = getTypeByType(ctx, indexedAccessType.indexType); const objectType = getTypeByType(ctx, indexedAccessType.objectType); @@ -29,7 +29,7 @@ export const createIndexedAccessType = (ctx: InterpreterContext, indexedAccessTy typeId }; -}); +})); export function createIndexedAccessTypeByTypeNode(ctx: InterpreterContext, typeNode: IndexedAccessTypeNode): IndexedAccessType { diff --git a/src/interpreter/ast/types/interface.ts b/src/interpreter/ast/types/interface.ts index 505d97c4..8cc531b5 100644 --- a/src/interpreter/ast/types/interface.ts +++ b/src/interpreter/ast/types/interface.ts @@ -1,6 +1,6 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; import { createObjectLikeType } from "unwritten:interpreter:ast/types/index"; -import { withLockedType } from "unwritten:interpreter:utils/ts"; +import { withCachedType, withLockedType } from "unwritten:interpreter:utils/ts"; import { getTypeByType } from "../type"; @@ -10,7 +10,7 @@ import type { InterfaceType } from "unwritten:interpreter:type-definitions/types import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createInterfaceByType = (ctx: InterpreterContext, type: TSInterfaceType): InterfaceType => withLockedType(ctx, type, () => { +export const createInterfaceByType = (ctx: InterpreterContext, type: TSInterfaceType): InterfaceType => withCachedType(ctx, type, () => withLockedType(ctx, type, () => { const objectType = createObjectLikeType(ctx, type, TypeKind.Interface); const typeParameters = type.typeParameters?.map(type => getTypeByType(ctx, type)); @@ -20,4 +20,4 @@ export const createInterfaceByType = (ctx: InterpreterContext, type: TSInterface typeParameters }; -}); +})); diff --git a/src/interpreter/ast/types/intersection.ts b/src/interpreter/ast/types/intersection.ts index c5f6f808..9eeba72c 100644 --- a/src/interpreter/ast/types/intersection.ts +++ b/src/interpreter/ast/types/intersection.ts @@ -1,16 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; -import { withLockedType } from "unwritten:interpreter/utils/ts.js"; +import { withCachedType, withLockedType } from "unwritten:interpreter/utils/ts.js"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { getTypeByType } from "../type"; import type { IntersectionType as TSIntersectionType } from "typescript"; -import type { IntersectionType } from "unwritten:interpreter:type-definitions/types"; +import type { IntersectionType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createIntersectionType = (ctx: InterpreterContext, type: TSIntersectionType): IntersectionType => withLockedType(ctx, type, () => { +export const createIntersectionType = (ctx: InterpreterContext, type: TSIntersectionType): IntersectionType => withCachedType(ctx, type, () => withLockedType(ctx, type, () => { const typeId = getTypeId(ctx, type); const types = type.types.map(type => getTypeByType(ctx, type)); @@ -22,4 +22,4 @@ export const createIntersectionType = (ctx: InterpreterContext, type: TSIntersec types }; -}); +})); diff --git a/src/interpreter/ast/types/never.ts b/src/interpreter/ast/types/never.ts index 8da961ee..9d7b22e2 100644 --- a/src/interpreter/ast/types/never.ts +++ b/src/interpreter/ast/types/never.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isNeverType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { NeverType } from "unwritten:interpreter:type-definitions/types"; +import type { NeverType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createNeverType(ctx: InterpreterContext, type: Type): NeverType { +export const createNeverType = (ctx: InterpreterContext, type: Type): NeverType => withCachedType(ctx, type, () => { assert(isNeverType(ctx, type), "type is not a never type"); @@ -23,4 +24,4 @@ export function createNeverType(ctx: InterpreterContext, type: Type): NeverType typeId }; -} +}); diff --git a/src/interpreter/ast/types/null.ts b/src/interpreter/ast/types/null.ts index e55f1598..7bac7cf2 100644 --- a/src/interpreter/ast/types/null.ts +++ b/src/interpreter/ast/types/null.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isNullType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { NullType } from "unwritten:interpreter:type-definitions/types"; +import type { NullType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createNullType(ctx: InterpreterContext, type: Type): NullType { +export const createNullType = (ctx: InterpreterContext, type: Type): NullType => withCachedType(ctx, type, () => { assert(isNullType(ctx, type), "type is not a null type"); @@ -23,4 +24,4 @@ export function createNullType(ctx: InterpreterContext, type: Type): NullType { typeId }; -} +}); diff --git a/src/interpreter/ast/types/number-literal.ts b/src/interpreter/ast/types/number-literal.ts index d4adb295..82956540 100644 --- a/src/interpreter/ast/types/number-literal.ts +++ b/src/interpreter/ast/types/number-literal.ts @@ -1,13 +1,14 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { NumberLiteralType as TSNumberLiteralType } from "typescript"; -import type { NumberLiteralType } from "unwritten:interpreter:type-definitions/types"; +import type { NumberLiteralType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createNumberLiteralType(ctx: InterpreterContext, type: TSNumberLiteralType): NumberLiteralType { +export const createNumberLiteralType = (ctx: InterpreterContext, type: TSNumberLiteralType): NumberLiteralType => withCachedType(ctx, type, () => { const typeId = getTypeId(ctx, type); const value = type.value; @@ -21,4 +22,4 @@ export function createNumberLiteralType(ctx: InterpreterContext, type: TSNumberL value }; -} +}); diff --git a/src/interpreter/ast/types/number.ts b/src/interpreter/ast/types/number.ts index 5d81b9f1..3408e645 100644 --- a/src/interpreter/ast/types/number.ts +++ b/src/interpreter/ast/types/number.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isNumberType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { NumberType } from "unwritten:interpreter:type-definitions/types"; +import type { NumberType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createNumberType(ctx: InterpreterContext, type: Type): NumberType { +export const createNumberType = (ctx: InterpreterContext, type: Type): NumberType => withCachedType(ctx, type, () => { assert(isNumberType(ctx, type), "type is not a number type"); @@ -23,4 +24,4 @@ export function createNumberType(ctx: InterpreterContext, type: Type): NumberTyp typeId }; -} +}); diff --git a/src/interpreter/ast/types/object-literal.ts b/src/interpreter/ast/types/object-literal.ts index 88d6c64e..c9e0c17e 100644 --- a/src/interpreter/ast/types/object-literal.ts +++ b/src/interpreter/ast/types/object-literal.ts @@ -1,16 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; import { createObjectLikeType } from "unwritten:interpreter:ast/types/index"; -import { withLockedType } from "unwritten:interpreter:utils/ts"; +import { withCachedType, withLockedType } from "unwritten:interpreter:utils/ts"; import type { ObjectType } from "typescript"; -import type { ObjectLiteralType } from "unwritten:interpreter:type-definitions/types"; +import type { ObjectLiteralType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createObjectLiteralByType = (ctx: InterpreterContext, type: ObjectType): ObjectLiteralType => withLockedType(ctx, type, () => { +export const createObjectLiteralByType = (ctx: InterpreterContext, type: ObjectType): ObjectLiteralType => withCachedType(ctx, type, () => withLockedType(ctx, type, () => { const fromObjectType = createObjectLikeType(ctx, type, TypeKind.ObjectLiteral); return { ...fromObjectType }; -}); +})); diff --git a/src/interpreter/ast/types/object.test.ts b/src/interpreter/ast/types/object.test.ts index c5b64d71..2396a66b 100644 --- a/src/interpreter/ast/types/object.test.ts +++ b/src/interpreter/ast/types/object.test.ts @@ -15,24 +15,40 @@ scope("Interpreter", TypeKind.Object, () => { { const testFileContent = ts` - export type ObjectType = { - [key: string]: string; - }; + export type TypeLiteralType = { [key: string]: string; }; + export type ObjectLiteralType = { [key: string]: string; }; + export type ObjectType = { [key: string]: string; }; + export type InterfaceType = { [key: string]: string; }; + export type ClassType = { [key: string]: string; }; `; const { ctx, exportedSymbols } = compile(testFileContent); - const symbol = exportedSymbols.find(s => s.name === "ObjectType")!; - const tsType = ctx.checker.getTypeAtLocation(symbol.declarations![0]); + const typeLiteralSymbol = exportedSymbols.find(s => s.name === "TypeLiteralType")!; + const objectLiteralSymbol = exportedSymbols.find(s => s.name === "ObjectLiteralType")!; + const objectTypeSymbol = exportedSymbols.find(s => s.name === "ObjectType")!; + const interfaceTypeSymbol = exportedSymbols.find(s => s.name === "InterfaceType")!; + const classTypeSymbol = exportedSymbols.find(s => s.name === "ClassType")!; + + const typeLiteralType = ctx.checker.getTypeAtLocation(typeLiteralSymbol.declarations![0]); + const objectLiteralType = ctx.checker.getTypeAtLocation(objectLiteralSymbol.declarations![0]); + const objectType = ctx.checker.getTypeAtLocation(objectTypeSymbol.declarations![0]); + const interfaceType = ctx.checker.getTypeAtLocation(interfaceTypeSymbol.declarations![0]); + const classType = ctx.checker.getTypeAtLocation(classTypeSymbol.declarations![0]); + + assert(isObjectType(ctx, typeLiteralType), "typeLiteralType is not an object type"); + assert(isObjectType(ctx, objectLiteralType), "objectLiteralType is not an object type"); + assert(isObjectType(ctx, objectType), "objectType is not an object type"); + assert(isObjectType(ctx, interfaceType), "interfaceType is not an object type"); + assert(isObjectType(ctx, classType), "classType is not an object type"); - assert(isObjectType(ctx, tsType), "tsType is not an object type"); it("should be able to create object types", () => { - expect(createObjectLikeType(ctx, tsType, TypeKind.TypeLiteral).kind).toBe(TypeKind.TypeLiteral); - expect(createObjectLikeType(ctx, tsType, TypeKind.ObjectLiteral).kind).toBe(TypeKind.ObjectLiteral); - expect(createObjectLikeType(ctx, tsType, TypeKind.Object).kind).toBe(TypeKind.Object); - expect(createObjectLikeType(ctx, tsType, TypeKind.Interface).kind).toBe(TypeKind.Interface); - expect(createObjectLikeType(ctx, tsType, TypeKind.Class).kind).toBe(TypeKind.Class); + expect(createObjectLikeType(ctx, typeLiteralType, TypeKind.TypeLiteral).kind).toBe(TypeKind.TypeLiteral); + expect(createObjectLikeType(ctx, objectLiteralType, TypeKind.ObjectLiteral).kind).toBe(TypeKind.ObjectLiteral); + expect(createObjectLikeType(ctx, objectType, TypeKind.Object).kind).toBe(TypeKind.Object); + expect(createObjectLikeType(ctx, interfaceType, TypeKind.Interface).kind).toBe(TypeKind.Interface); + expect(createObjectLikeType(ctx, classType, TypeKind.Class).kind).toBe(TypeKind.Class); }); } diff --git a/src/interpreter/ast/types/object.ts b/src/interpreter/ast/types/object.ts index faf5fee4..5b8202c2 100644 --- a/src/interpreter/ast/types/object.ts +++ b/src/interpreter/ast/types/object.ts @@ -17,7 +17,7 @@ import { isSetterSymbol } from "unwritten:interpreter:typeguards/symbols"; import { isThisType } from "unwritten:interpreter:typeguards/types"; -import { withLockedType } from "unwritten:interpreter:utils/ts"; +import { withCachedType, withLockedType } from "unwritten:interpreter:utils/ts"; import { isSymbolExcluded } from "unwritten:utils/exclude"; import type { ObjectType as TSObjectType } from "typescript"; @@ -26,7 +26,7 @@ import type { InferObjectLikeType, ObjectLikeTypeKind } from "unwritten:interpre import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createObjectLikeType = (ctx: InterpreterContext, type: TSObjectType, kind: SpecificObjectLikeTypeKind = TypeKind.Object as SpecificObjectLikeTypeKind): InferObjectLikeType => withLockedType(ctx, type, () => { +export const createObjectLikeType = (ctx: InterpreterContext, type: TSObjectType, kind: SpecificObjectLikeTypeKind = TypeKind.Object as SpecificObjectLikeTypeKind): InferObjectLikeType => withCachedType(ctx, type, () => withLockedType(ctx, type, () => { const tsConstructSignatures = type.getConstructSignatures(); const tsCallSignatures = type.getCallSignatures(); @@ -76,4 +76,4 @@ export const createObjectLikeType = withCachedType(ctx, type, () => { const typeId = getTypeId(ctx, type); const value = type.value; @@ -21,4 +22,4 @@ export function createStringLiteralType(ctx: InterpreterContext, type: TSStringL value }; -} +}); diff --git a/src/interpreter/ast/types/string.ts b/src/interpreter/ast/types/string.ts index 19cbb88c..056d44da 100644 --- a/src/interpreter/ast/types/string.ts +++ b/src/interpreter/ast/types/string.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isStringType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { StringType } from "unwritten:interpreter:type-definitions/types"; +import type { StringType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createStringType(ctx: InterpreterContext, type: Type): StringType { +export const createStringType = (ctx: InterpreterContext, type: Type): StringType => withCachedType(ctx, type, () => { assert(isStringType(ctx, type), "type is not a string type"); @@ -23,4 +24,4 @@ export function createStringType(ctx: InterpreterContext, type: Type): StringTyp typeId }; -} +}); diff --git a/src/interpreter/ast/types/symbol.ts b/src/interpreter/ast/types/symbol.ts index 2535ab3c..f2b809db 100644 --- a/src/interpreter/ast/types/symbol.ts +++ b/src/interpreter/ast/types/symbol.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isSymbolType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { SymbolType } from "unwritten:interpreter:type-definitions/types"; +import type { SymbolType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createSymbolType(ctx: InterpreterContext, type: Type): SymbolType { +export const createSymbolType = (ctx: InterpreterContext, type: Type): SymbolType => withCachedType(ctx, type, () => { assert(isSymbolType(ctx, type), "type is not a symbol type"); @@ -23,4 +24,4 @@ export function createSymbolType(ctx: InterpreterContext, type: Type): SymbolTyp typeId }; -} +}); diff --git a/src/interpreter/ast/types/tuple.ts b/src/interpreter/ast/types/tuple.ts index fad0daff..f919d8ac 100644 --- a/src/interpreter/ast/types/tuple.ts +++ b/src/interpreter/ast/types/tuple.ts @@ -1,6 +1,7 @@ import { EntityKind } from "unwritten:interpreter/enums/entity"; import { TypeKind } from "unwritten:interpreter/enums/type"; import { isOptionalTypeNode, isRestTypeNode } from "unwritten:interpreter/typeguards/type-nodes"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getSymbolId, getTypeId } from "unwritten:interpreter:ast/shared/id"; import { getNameByDeclaration, getNameByTypeNode } from "unwritten:interpreter:ast/shared/name"; import { getPositionByNode, getPositionByType } from "unwritten:interpreter:ast/shared/position"; @@ -16,7 +17,7 @@ import type { TupleType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createTupleTypeByTypeReference(ctx: InterpreterContext, typeReference: TupleTypeReference): TupleType { +export const createTupleTypeByTypeReference = (ctx: InterpreterContext, typeReference: TupleTypeReference): TupleType => withCachedType(ctx, typeReference, () => { const { ts } = ctx.dependencies; @@ -61,7 +62,7 @@ export function createTupleTypeByTypeReference(ctx: InterpreterContext, typeRefe typeId }; -} +}); export function createTupleByTupleTypeNode(ctx: InterpreterContext, typeNode: TupleTypeNode): TupleType { diff --git a/src/interpreter/ast/types/type-query.ts b/src/interpreter/ast/types/type-query.ts index ada3469c..040f1c7f 100644 --- a/src/interpreter/ast/types/type-query.ts +++ b/src/interpreter/ast/types/type-query.ts @@ -7,7 +7,7 @@ import { getResolvedTypeByTypeNode, getTypeByResolvedAndDeclaredType, getTypeByT import type { TypeQueryNode } from "typescript"; -import type { TypeQueryType } from "unwritten:interpreter:type-definitions/types"; +import type { TypeQueryType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/undefined.ts b/src/interpreter/ast/types/undefined.ts index 162288d0..158161d4 100644 --- a/src/interpreter/ast/types/undefined.ts +++ b/src/interpreter/ast/types/undefined.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isUndefinedType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { UndefinedType } from "unwritten:interpreter:type-definitions/types"; +import type { UndefinedType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createUndefinedType(ctx: InterpreterContext, type: Type): UndefinedType { +export const createUndefinedType = (ctx: InterpreterContext, type: Type): UndefinedType => withCachedType(ctx, type, () => { assert(isUndefinedType(ctx, type), "type is not a undefined type"); @@ -23,4 +24,4 @@ export function createUndefinedType(ctx: InterpreterContext, type: Type): Undefi typeId }; -} +}); diff --git a/src/interpreter/ast/types/union.ts b/src/interpreter/ast/types/union.ts index cbce49b3..fa4b7f1c 100644 --- a/src/interpreter/ast/types/union.ts +++ b/src/interpreter/ast/types/union.ts @@ -1,5 +1,5 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; -import { withLockedType } from "unwritten:interpreter/utils/ts.js"; +import { withCachedType, withLockedType } from "unwritten:interpreter/utils/ts.js"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { getTypeByType, getTypeByTypeNode } from "../type"; @@ -10,7 +10,7 @@ import type { UnionType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export const createUnionType = (ctx: InterpreterContext, type: TSUnionType): UnionType => withLockedType(ctx, type, () => { +export const createUnionType = (ctx: InterpreterContext, type: TSUnionType): UnionType => withCachedType(ctx, type, () => withLockedType(ctx, type, () => { const typeId = getTypeId(ctx, type); const types = type.types.map(type => getTypeByType(ctx, type)); @@ -22,7 +22,7 @@ export const createUnionType = (ctx: InterpreterContext, type: TSUnionType): Uni types }; -}); +})); export function createUnionTypeByTypeNode(ctx: InterpreterContext, typeNode: UnionTypeNode): UnionType { diff --git a/src/interpreter/ast/types/unknown.ts b/src/interpreter/ast/types/unknown.ts index b7ae8e28..25fb588b 100644 --- a/src/interpreter/ast/types/unknown.ts +++ b/src/interpreter/ast/types/unknown.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isUnknownType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { UnknownType } from "unwritten:interpreter:type-definitions/types"; +import type { UnknownType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createUnknownType(ctx: InterpreterContext, type: Type): UnknownType { +export const createUnknownType = (ctx: InterpreterContext, type: Type): UnknownType => withCachedType(ctx, type, () => { assert(isUnknownType(ctx, type), "type is not a unknown type"); @@ -23,4 +24,4 @@ export function createUnknownType(ctx: InterpreterContext, type: Type): UnknownT typeId }; -} +}); diff --git a/src/interpreter/ast/types/unresolved.ts b/src/interpreter/ast/types/unresolved.ts index 221a3a0c..c462bdf8 100644 --- a/src/interpreter/ast/types/unresolved.ts +++ b/src/interpreter/ast/types/unresolved.ts @@ -1,5 +1,6 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; import { isTypeReferenceType } from "unwritten:interpreter/typeguards/types"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getSymbolId, getTypeId } from "unwritten:interpreter:ast/shared/id"; import { getNameByType } from "unwritten:interpreter:ast/shared/name"; import { getPositionByType } from "unwritten:interpreter:ast/shared/position"; @@ -12,7 +13,7 @@ import type { UnresolvedType } from "unwritten:interpreter:type-definitions/type import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createUnresolvedType(ctx: InterpreterContext, type: Type): UnresolvedType { +export const createUnresolvedType = (ctx: InterpreterContext, type: Type): UnresolvedType => withCachedType(ctx, type, () => { const kind = TypeKind.Unresolved; @@ -35,7 +36,7 @@ export function createUnresolvedType(ctx: InterpreterContext, type: Type): Unres typeId }; -} +}); export function createUnresolved(ctx: InterpreterContext, type: Type): UnresolvedType { diff --git a/src/interpreter/ast/types/void.ts b/src/interpreter/ast/types/void.ts index ea276f41..39ddf4a4 100644 --- a/src/interpreter/ast/types/void.ts +++ b/src/interpreter/ast/types/void.ts @@ -1,15 +1,16 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; +import { withCachedType } from "unwritten:interpreter/utils/ts"; import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import { isVoidType } from "unwritten:interpreter:typeguards/types"; import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { VoidType } from "unwritten:interpreter:type-definitions/types"; +import type { VoidType } from "unwritten:interpreter/type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; -export function createVoidType(ctx: InterpreterContext, type: Type): VoidType { +export const createVoidType = (ctx: InterpreterContext, type: Type): VoidType => withCachedType(ctx, type, () => { assert(isVoidType(ctx, type), "type is not a void type"); @@ -23,4 +24,4 @@ export function createVoidType(ctx: InterpreterContext, type: Type): VoidType { typeId }; -} +}); diff --git a/src/interpreter/utils/context.ts b/src/interpreter/utils/context.ts index 8494986d..f0216add 100644 --- a/src/interpreter/utils/context.ts +++ b/src/interpreter/utils/context.ts @@ -17,6 +17,8 @@ export function createContext(defaultContext: DefaultContext, checker: TypeCheck return { checker, config, + entityCache: {}, + typeCache: {}, ...defaultContext }; } diff --git a/src/interpreter/utils/ts.ts b/src/interpreter/utils/ts.ts index 3e04aebd..25613b5f 100644 --- a/src/interpreter/utils/ts.ts +++ b/src/interpreter/utils/ts.ts @@ -1,3 +1,4 @@ +import { getSymbolId, getTypeId } from "unwritten:interpreter/ast/shared/id"; import { isAliasedSymbol, isExportSpecifierSymbol, @@ -29,12 +30,12 @@ export function getEntryFileSymbolsFromProgram(ctx: InterpreterContext, program: } + // Locker export function isSymbolLocked(ctx: InterpreterContext, symbol: Symbol) { return locker.isSymbolLocked(ctx, symbol); } - export function isSymbolUnresolved(ctx: InterpreterContext, symbol: Symbol) { return symbol.declarations === undefined || symbol.declarations.length === 0; } @@ -43,7 +44,6 @@ export function isTypeLocked(ctx: InterpreterContext, type: TSType) { return locker.isTypeLocked(ctx, type); } -// Symbol helpers export function resolveSymbolInCaseOfImport(ctx: InterpreterContext, symbol: Symbol): Symbol { if(!isAliasedSymbol(ctx, symbol)){ return symbol; @@ -58,16 +58,42 @@ export function resolveSymbolInCaseOfImport(ctx: InterpreterContext, symbol: Sym return ctx.checker.getAliasedSymbol(symbol); } -export function withLockedSymbol(ctx: InterpreterContext, symbol: Symbol, callback: (ctx: InterpreterContext, symbol: Symbol) => T): T { +export function withCachedEntity(ctx: InterpreterContext, symbol: Symbol, interpretSymbol: (ctx: InterpreterContext, symbol: Symbol) => T): T { + const symbolId = getSymbolId(ctx, symbol); + + if(symbolId in ctx.entityCache){ + return ctx.entityCache[symbolId] as T; + } + + const entity = interpretSymbol(ctx, symbol); + ctx.entityCache[symbolId] = entity; + + return entity; +} + +export function withCachedType(ctx: InterpreterContext, type: TSType, interpretType: (ctx: InterpreterContext, type: TSType) => T): T { + const typeId = getTypeId(ctx, type); + + if(typeId in ctx.typeCache){ + return ctx.typeCache[typeId] as T; + } + + const interpretedType = interpretType(ctx, type); + ctx.typeCache[typeId] = interpretedType; + + return interpretedType; +} + +export function withLockedSymbol(ctx: InterpreterContext, symbol: Symbol, interpretSymbol: (ctx: InterpreterContext, symbol: Symbol) => T): T { locker.lockSymbol(ctx, symbol); - const returnType = callback(ctx, symbol); + const returnType = interpretSymbol(ctx, symbol); locker.unlockSymbol(ctx, symbol); return returnType; } -export function withLockedType(ctx: InterpreterContext, type: TSType, callback: (ctx: InterpreterContext, type: TSType) => T): T { +export function withLockedType(ctx: InterpreterContext, type: TSType, interpretType: (ctx: InterpreterContext, type: TSType) => T): T { locker.lockType(ctx, type); - const returnType = callback(ctx, type); + const returnType = interpretType(ctx, type); locker.unlockType(ctx, type); return returnType; } From edf76999d53a7929952117cc66943e1d3f2f2578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:15:24 +0200 Subject: [PATCH 36/42] chore: code cleanup --- src/interpreter/ast/entities/circular.ts | 2 +- src/interpreter/ast/entities/class.ts | 2 +- src/interpreter/ast/entities/constructor.ts | 5 ++--- src/interpreter/ast/entities/enum.ts | 2 +- src/interpreter/ast/entities/export-assignment.ts | 2 +- src/interpreter/ast/entities/function-like.ts | 2 +- src/interpreter/ast/entities/function.ts | 2 +- src/interpreter/ast/entities/getter.ts | 2 +- src/interpreter/ast/entities/interface.ts | 2 +- src/interpreter/ast/entities/method.ts | 2 +- src/interpreter/ast/entities/module.ts | 2 +- src/interpreter/ast/entities/namespace.ts | 2 +- src/interpreter/ast/entities/parameter.ts | 2 +- src/interpreter/ast/entities/property.ts | 2 +- src/interpreter/ast/entities/setter.ts | 2 +- src/interpreter/ast/entities/signature.ts | 2 +- src/interpreter/ast/entities/source-file.ts | 2 +- src/interpreter/ast/entities/type-alias.ts | 2 +- src/interpreter/ast/entities/type-parameter.ts | 2 +- src/interpreter/ast/entities/unresolved.ts | 2 +- src/interpreter/ast/entities/variable.ts | 2 +- src/interpreter/ast/jsdoc.ts | 2 +- src/interpreter/ast/jsdoc/generic.ts | 2 +- src/interpreter/ast/jsdoc/link.ts | 4 ++-- src/interpreter/ast/jsdoc/reference.ts | 2 +- src/interpreter/ast/jsdoc/see.ts | 2 +- src/interpreter/ast/jsdoc/text.ts | 2 +- src/interpreter/ast/jsdoc/throws.ts | 2 +- src/interpreter/ast/jsdoc/type.ts | 2 +- src/interpreter/ast/shared/id.ts | 2 +- src/interpreter/ast/shared/name.ts | 2 +- src/interpreter/ast/symbol.ts | 2 +- src/interpreter/ast/type.ts | 2 ++ src/interpreter/ast/types/any.ts | 2 +- src/interpreter/ast/types/bigint-literal.ts | 2 +- src/interpreter/ast/types/bigint.ts | 2 +- src/interpreter/ast/types/boolean-literal.ts | 2 +- src/interpreter/ast/types/boolean.ts | 2 +- src/interpreter/ast/types/circular.ts | 2 +- src/interpreter/ast/types/class.ts | 2 +- src/interpreter/ast/types/function.ts | 2 +- src/interpreter/ast/types/intersection.ts | 2 +- src/interpreter/ast/types/mapped.ts | 2 +- src/interpreter/ast/types/never.ts | 2 +- src/interpreter/ast/types/null.ts | 2 +- src/interpreter/ast/types/number-literal.ts | 2 +- src/interpreter/ast/types/number.ts | 2 +- src/interpreter/ast/types/object-literal.ts | 2 +- src/interpreter/ast/types/string-literal.ts | 2 +- src/interpreter/ast/types/string.ts | 2 +- src/interpreter/ast/types/symbol.ts | 2 +- src/interpreter/ast/types/tuple.ts | 2 +- src/interpreter/ast/types/type-literal.ts | 3 +-- src/interpreter/ast/types/type-query.ts | 2 +- src/interpreter/ast/types/undefined.ts | 2 +- src/interpreter/ast/types/unknown.ts | 2 +- src/interpreter/ast/types/void.ts | 2 +- src/interpreter/type-definitions/jsdoc.ts | 6 +++--- src/interpreter/type-definitions/types.ts | 2 +- src/interpreter/utils/ts.ts | 4 ++-- src/renderer/json/index.ts | 2 +- .../markup/ast-converter/entities/circular.ts | 2 +- .../markup/ast-converter/entities/class.ts | 2 +- .../markup/ast-converter/entities/enum.test.ts | 2 +- src/renderer/markup/ast-converter/entities/enum.ts | 2 +- .../markup/ast-converter/entities/event.ts | 2 +- .../ast-converter/entities/export-assignment.ts | 2 +- .../ast-converter/entities/function-like.test.ts | 2 +- .../markup/ast-converter/entities/function-like.ts | 2 +- .../markup/ast-converter/entities/interface.ts | 2 +- .../markup/ast-converter/entities/module.ts | 2 +- .../markup/ast-converter/entities/namespace.ts | 2 +- .../markup/ast-converter/entities/parameter.ts | 2 +- .../markup/ast-converter/entities/property.test.ts | 2 +- .../markup/ast-converter/entities/property.ts | 2 +- .../ast-converter/entities/signature.test.ts | 2 +- .../markup/ast-converter/entities/signature.ts | 2 +- .../markup/ast-converter/entities/type-alias.ts | 2 +- .../ast-converter/entities/type-parameter.ts | 2 +- .../markup/ast-converter/entities/variable.ts | 2 +- src/renderer/markup/ast-converter/index.ts | 7 +------ src/renderer/markup/ast-converter/jsdoc/generic.ts | 2 +- src/renderer/markup/ast-converter/jsdoc/link.ts | 2 +- .../markup/ast-converter/jsdoc/reference.ts | 2 +- src/renderer/markup/ast-converter/jsdoc/see.ts | 2 +- src/renderer/markup/ast-converter/jsdoc/text.ts | 2 +- src/renderer/markup/ast-converter/jsdoc/throws.ts | 2 +- src/renderer/markup/ast-converter/jsdoc/type.ts | 2 +- .../markup/ast-converter/shared/constraint.test.ts | 2 +- .../markup/ast-converter/shared/constraint.ts | 2 +- .../markup/ast-converter/shared/description.ts | 2 +- .../markup/ast-converter/shared/example.ts | 2 +- .../ast-converter/shared/initializer.test.ts | 2 +- .../markup/ast-converter/shared/initializer.ts | 2 +- src/renderer/markup/ast-converter/shared/jsdoc.ts | 2 +- .../markup/ast-converter/shared/optional.ts | 2 +- .../markup/ast-converter/shared/position.test.ts | 2 +- .../markup/ast-converter/shared/remarks.ts | 2 +- src/renderer/markup/ast-converter/shared/rest.ts | 2 +- src/renderer/markup/ast-converter/shared/see.ts | 2 +- .../markup/ast-converter/shared/tags.test.ts | 2 +- src/renderer/markup/ast-converter/shared/tags.ts | 4 ++-- src/renderer/markup/ast-converter/shared/throws.ts | 2 +- src/renderer/markup/ast-converter/shared/type.ts | 2 +- .../ast-converter/types/object-literal.test.ts | 2 +- src/renderer/markup/ast-converter/types/tuple.ts | 2 +- .../ast-converter/types/type-parameter.test.ts | 2 +- .../markup/ast-converter/types/unresolved.test.ts | 2 +- src/renderer/markup/html/index.ts | 2 +- src/renderer/markup/markdown/index.ts | 2 +- src/renderer/markup/types-definitions/config.ts | 2 +- src/renderer/markup/types-definitions/renderer.ts | 14 +++++++------- src/renderer/markup/utils/file.ts | 2 +- src/renderer/markup/utils/nodes.ts | 2 +- src/renderer/markup/utils/renderer.ts | 2 +- src/renderer/markup/utils/sort.ts | 2 +- src/renderer/markup/utils/types.ts | 2 +- src/renderer/utils/heritage.test.ts | 2 +- src/renderer/utils/heritage.ts | 2 +- src/renderer/utils/private-members.ts | 2 +- src/type-definitions/context.ts | 14 ++++++++------ src/type-definitions/renderer.ts | 2 +- src/type-definitions/utils.ts | 2 +- src/typeguards/entities.ts | 2 +- src/typeguards/jsdoc.ts | 2 +- 125 files changed, 145 insertions(+), 148 deletions(-) diff --git a/src/interpreter/ast/entities/circular.ts b/src/interpreter/ast/entities/circular.ts index ed0a9207..9d302e28 100644 --- a/src/interpreter/ast/entities/circular.ts +++ b/src/interpreter/ast/entities/circular.ts @@ -5,7 +5,7 @@ import { getPositionBySymbol } from "unwritten:interpreter:ast/shared/position"; import type { Symbol } from "typescript"; -import type { CircularEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { CircularEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/class.ts b/src/interpreter/ast/entities/class.ts index 1802c30e..2bedf874 100644 --- a/src/interpreter/ast/entities/class.ts +++ b/src/interpreter/ast/entities/class.ts @@ -27,7 +27,7 @@ import { assert } from "unwritten:utils:general"; import type { ClassLikeDeclaration, HeritageClause, NodeArray, Symbol } from "typescript"; -import type { ClassEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ClassEntity } from "unwritten:interpreter:type-definitions/entities"; import type { ExpressionType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/constructor.ts b/src/interpreter/ast/entities/constructor.ts index abc66bde..2db5a089 100644 --- a/src/interpreter/ast/entities/constructor.ts +++ b/src/interpreter/ast/entities/constructor.ts @@ -3,11 +3,10 @@ import { createFunctionLikeEntity } from "unwritten:interpreter:ast/entities/ind import type { Symbol } from "typescript"; -import type { ConstructorEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ConstructorEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; export function createConstructorEntity(ctx: InterpreterContext, symbol: Symbol): ConstructorEntity { - const functionLike = createFunctionLikeEntity(ctx, symbol, EntityKind.Constructor); - return functionLike; + return createFunctionLikeEntity(ctx, symbol, EntityKind.Constructor); } diff --git a/src/interpreter/ast/entities/enum.ts b/src/interpreter/ast/entities/enum.ts index 3b93c8d9..55cb156e 100644 --- a/src/interpreter/ast/entities/enum.ts +++ b/src/interpreter/ast/entities/enum.ts @@ -11,7 +11,7 @@ import { getTypeByDeclaration } from "../type"; import type { EnumDeclaration, EnumMember as TSEnumMember, Symbol } from "typescript"; -import type { EnumEntity, EnumMemberEntity, MergedEnumEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { EnumEntity, EnumMemberEntity, MergedEnumEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/export-assignment.ts b/src/interpreter/ast/entities/export-assignment.ts index c75e6503..398c5f30 100644 --- a/src/interpreter/ast/entities/export-assignment.ts +++ b/src/interpreter/ast/entities/export-assignment.ts @@ -11,7 +11,7 @@ import { getTypeByType } from "../type"; import type { Symbol } from "typescript"; -import type { ExportAssignmentEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ExportAssignmentEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/function-like.ts b/src/interpreter/ast/entities/function-like.ts index d75f98bb..7e10597a 100644 --- a/src/interpreter/ast/entities/function-like.ts +++ b/src/interpreter/ast/entities/function-like.ts @@ -17,7 +17,7 @@ import type { Symbol } from "typescript"; import type { FunctionLikeEntityKinds, InferFunctionLikeEntityKind -} from "unwritten:interpreter/type-definitions/entities"; +} from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/function.ts b/src/interpreter/ast/entities/function.ts index 9153f040..1e9bdc9a 100644 --- a/src/interpreter/ast/entities/function.ts +++ b/src/interpreter/ast/entities/function.ts @@ -3,7 +3,7 @@ import { createFunctionLikeEntity } from "unwritten:interpreter:ast/entities/ind import type { Symbol } from "typescript"; -import type { FunctionEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { FunctionEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/getter.ts b/src/interpreter/ast/entities/getter.ts index d296d88a..d7d30500 100644 --- a/src/interpreter/ast/entities/getter.ts +++ b/src/interpreter/ast/entities/getter.ts @@ -3,7 +3,7 @@ import { createFunctionLikeEntity } from "unwritten:interpreter:ast/entities/ind import type { Symbol } from "typescript"; -import type { GetterEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { GetterEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/interface.ts b/src/interpreter/ast/entities/interface.ts index bc82a5e3..cb246744 100644 --- a/src/interpreter/ast/entities/interface.ts +++ b/src/interpreter/ast/entities/interface.ts @@ -24,7 +24,7 @@ import { assert } from "unwritten:utils:general"; import type { HeritageClause, InterfaceDeclaration, NodeArray, Symbol } from "typescript"; -import type { InterfaceEntity, MergedInterfaceEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { InterfaceEntity, MergedInterfaceEntity } from "unwritten:interpreter:type-definitions/entities"; import type { ExpressionType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; import type { PartialByKey } from "unwritten:type-definitions/utils"; diff --git a/src/interpreter/ast/entities/method.ts b/src/interpreter/ast/entities/method.ts index b5faa6b7..71f73eaf 100644 --- a/src/interpreter/ast/entities/method.ts +++ b/src/interpreter/ast/entities/method.ts @@ -3,7 +3,7 @@ import { createFunctionLikeEntity } from "unwritten:interpreter:ast/entities/ind import type { Symbol } from "typescript"; -import type { MethodEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { MethodEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/module.ts b/src/interpreter/ast/entities/module.ts index 7a4fbca8..1e7f5e0c 100644 --- a/src/interpreter/ast/entities/module.ts +++ b/src/interpreter/ast/entities/module.ts @@ -9,7 +9,7 @@ import { createSourceFileEntity } from "./source-file"; import type { Symbol } from "typescript"; -import type { ModuleEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ModuleEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/namespace.ts b/src/interpreter/ast/entities/namespace.ts index 893d9317..7183b821 100644 --- a/src/interpreter/ast/entities/namespace.ts +++ b/src/interpreter/ast/entities/namespace.ts @@ -10,7 +10,7 @@ import { assert } from "unwritten:utils/general"; import type { Symbol } from "typescript"; -import type { NamespaceEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { NamespaceEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/parameter.ts b/src/interpreter/ast/entities/parameter.ts index 722eed56..bfc68a0e 100644 --- a/src/interpreter/ast/entities/parameter.ts +++ b/src/interpreter/ast/entities/parameter.ts @@ -12,7 +12,7 @@ import { getTypeBySymbol } from "../type"; import type { Symbol } from "typescript"; -import type { ParameterEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ParameterEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/property.ts b/src/interpreter/ast/entities/property.ts index aded6030..b9d80e24 100644 --- a/src/interpreter/ast/entities/property.ts +++ b/src/interpreter/ast/entities/property.ts @@ -26,7 +26,7 @@ import type { Symbol } from "typescript"; -import type { PropertyEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { PropertyEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/setter.ts b/src/interpreter/ast/entities/setter.ts index 098f7d55..9e6c1b8f 100644 --- a/src/interpreter/ast/entities/setter.ts +++ b/src/interpreter/ast/entities/setter.ts @@ -3,7 +3,7 @@ import { createFunctionLikeEntity } from "unwritten:interpreter:ast/entities/ind import type { Symbol } from "typescript"; -import type { SetterEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { SetterEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/signature.ts b/src/interpreter/ast/entities/signature.ts index ed98c2be..4dd9422b 100644 --- a/src/interpreter/ast/entities/signature.ts +++ b/src/interpreter/ast/entities/signature.ts @@ -18,7 +18,7 @@ import { import type { Signature as TSSignature, SignatureDeclaration } from "typescript"; -import type { SignatureEntity, SignatureEntityKinds } from "unwritten:interpreter/type-definitions/entities"; +import type { SignatureEntity, SignatureEntityKinds } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/source-file.ts b/src/interpreter/ast/entities/source-file.ts index 1b3bf709..99d26323 100644 --- a/src/interpreter/ast/entities/source-file.ts +++ b/src/interpreter/ast/entities/source-file.ts @@ -7,7 +7,7 @@ import { assert } from "unwritten:utils/general"; import type { Symbol } from "typescript"; -import type { ExportableEntity, SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ExportableEntity, SourceFileEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/type-alias.ts b/src/interpreter/ast/entities/type-alias.ts index 4ccba109..d842d378 100644 --- a/src/interpreter/ast/entities/type-alias.ts +++ b/src/interpreter/ast/entities/type-alias.ts @@ -12,7 +12,7 @@ import { getTypeByTypeNode } from "../type"; import type { Symbol } from "typescript"; -import type { TypeAliasEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { TypeAliasEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/type-parameter.ts b/src/interpreter/ast/entities/type-parameter.ts index 20512420..7c82ec50 100644 --- a/src/interpreter/ast/entities/type-parameter.ts +++ b/src/interpreter/ast/entities/type-parameter.ts @@ -11,7 +11,7 @@ import { getTypeByTypeNode } from "../type"; import type { Symbol, TypeParameter, TypeParameterDeclaration } from "typescript"; -import type { TypeParameterEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { TypeParameterEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/unresolved.ts b/src/interpreter/ast/entities/unresolved.ts index 426903fd..6787a16c 100644 --- a/src/interpreter/ast/entities/unresolved.ts +++ b/src/interpreter/ast/entities/unresolved.ts @@ -6,7 +6,7 @@ import { getPositionBySymbol } from "unwritten:interpreter:ast/shared/position"; import type { Symbol } from "typescript"; -import type { UnresolvedEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { UnresolvedEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/entities/variable.ts b/src/interpreter/ast/entities/variable.ts index 6a4137f4..9e7184a9 100644 --- a/src/interpreter/ast/entities/variable.ts +++ b/src/interpreter/ast/entities/variable.ts @@ -12,7 +12,7 @@ import { getTypeByDeclaration } from "../type"; import type { Symbol } from "typescript"; -import type { VariableEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { VariableEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/jsdoc.ts b/src/interpreter/ast/jsdoc.ts index ea0ee36a..d3406abe 100644 --- a/src/interpreter/ast/jsdoc.ts +++ b/src/interpreter/ast/jsdoc.ts @@ -14,7 +14,7 @@ import { import type { Declaration, JSDoc, JSDocComment, JSDocTag as TSJSDocTag, NodeArray } from "typescript"; -import type { JSDocProperties, JSDocTag, JSDocTags } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocProperties, JSDocTag, JSDocTags } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/jsdoc/generic.ts b/src/interpreter/ast/jsdoc/generic.ts index 94de00fb..d467f638 100644 --- a/src/interpreter/ast/jsdoc/generic.ts +++ b/src/interpreter/ast/jsdoc/generic.ts @@ -3,7 +3,7 @@ import { JSDocKind } from "unwritten:interpreter/enums/jsdoc"; import type { JSDocTag as TSJSDocTag } from "typescript"; -import type { JSDocGenericTag } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocGenericTag } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/jsdoc/link.ts b/src/interpreter/ast/jsdoc/link.ts index 2311bc23..e5c8ccbe 100644 --- a/src/interpreter/ast/jsdoc/link.ts +++ b/src/interpreter/ast/jsdoc/link.ts @@ -7,8 +7,8 @@ import { TypeKind } from "unwritten:interpreter/enums/type"; import type { EntityName, JSDocLink as TSJSDocLink, JSDocMemberName } from "typescript"; -import type { JSDocLink } from "unwritten:interpreter/type-definitions/jsdoc"; -import type { TypeReferenceType } from "unwritten:interpreter/type-definitions/types"; +import type { JSDocLink } from "unwritten:interpreter:type-definitions/jsdoc"; +import type { TypeReferenceType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/jsdoc/reference.ts b/src/interpreter/ast/jsdoc/reference.ts index 09ae776c..a0f4cd16 100644 --- a/src/interpreter/ast/jsdoc/reference.ts +++ b/src/interpreter/ast/jsdoc/reference.ts @@ -5,7 +5,7 @@ import { JSDocKind } from "unwritten:interpreter/enums/jsdoc"; import type { EntityName, JSDocMemberName } from "typescript"; -import type { JSDocReference } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocReference } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/jsdoc/see.ts b/src/interpreter/ast/jsdoc/see.ts index 25764430..2ff76805 100644 --- a/src/interpreter/ast/jsdoc/see.ts +++ b/src/interpreter/ast/jsdoc/see.ts @@ -4,7 +4,7 @@ import { JSDocKind } from "unwritten:interpreter/enums/jsdoc"; import type { JSDocSeeTag as TSJSDocSeeTag } from "typescript"; -import type { JSDocSeeTag } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocSeeTag } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/jsdoc/text.ts b/src/interpreter/ast/jsdoc/text.ts index 8e424dae..521cd107 100644 --- a/src/interpreter/ast/jsdoc/text.ts +++ b/src/interpreter/ast/jsdoc/text.ts @@ -2,7 +2,7 @@ import { JSDocKind } from "unwritten:interpreter/enums/jsdoc"; import type { JSDocText as TSJSDocText } from "typescript"; -import type { JSDocText } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocText } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/jsdoc/throws.ts b/src/interpreter/ast/jsdoc/throws.ts index 3ea6840b..2fd7a355 100644 --- a/src/interpreter/ast/jsdoc/throws.ts +++ b/src/interpreter/ast/jsdoc/throws.ts @@ -4,7 +4,7 @@ import { JSDocKind } from "unwritten:interpreter/enums/jsdoc"; import type { JSDocThrowsTag as TSJSDocThrowsTag } from "typescript"; -import type { JSDocThrowsTag } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocThrowsTag } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/jsdoc/type.ts b/src/interpreter/ast/jsdoc/type.ts index e8f15fca..000f1df0 100644 --- a/src/interpreter/ast/jsdoc/type.ts +++ b/src/interpreter/ast/jsdoc/type.ts @@ -5,7 +5,7 @@ import { JSDocKind } from "unwritten:interpreter/enums/jsdoc"; import type { JSDocTypeExpression } from "typescript"; -import type { JSDocType } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocType } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/shared/id.ts b/src/interpreter/ast/shared/id.ts index dd23adae..eacb2de0 100644 --- a/src/interpreter/ast/shared/id.ts +++ b/src/interpreter/ast/shared/id.ts @@ -1,6 +1,6 @@ import type { Declaration, Symbol, Type, TypeNode } from "typescript"; -import type { ID } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { ID } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/shared/name.ts b/src/interpreter/ast/shared/name.ts index 2ddafb2b..a91bfd65 100644 --- a/src/interpreter/ast/shared/name.ts +++ b/src/interpreter/ast/shared/name.ts @@ -2,7 +2,7 @@ import { isConstructorDeclaration } from "unwritten:interpreter:typeguards/decla import type { Declaration, Node, Symbol, Type } from "typescript"; -import type { Name } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { Name } from "unwritten:interpreter:type-definitions/jsdoc"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/symbol.ts b/src/interpreter/ast/symbol.ts index d1ea05f3..99f93f06 100644 --- a/src/interpreter/ast/symbol.ts +++ b/src/interpreter/ast/symbol.ts @@ -46,7 +46,7 @@ import { assert } from "unwritten:utils:general"; import type { Symbol } from "typescript"; -import type { Entity, SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { Entity, SourceFileEntity } from "unwritten:interpreter:type-definitions/entities"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/type.ts b/src/interpreter/ast/type.ts index 23ab55ac..2ee2bf98 100644 --- a/src/interpreter/ast/type.ts +++ b/src/interpreter/ast/type.ts @@ -197,6 +197,7 @@ export function getTypeByResolvedAndDeclaredType(ctx: InterpreterContext, resolv return declaredTypeWithoutBrand; } + function interpretTypeNode(ctx: InterpreterContext, typeNode: TypeNode): Type { if(isArrayTypeNode(ctx, typeNode)){ @@ -227,6 +228,7 @@ function interpretTypeNode(ctx: InterpreterContext, typeNode: TypeNode): Type { return interpretType(ctx, type); } + function interpretType(ctx: InterpreterContext, type: TSType): Type { if(type.getSymbol() && isSymbolExcluded(ctx, type.symbol, getNameByType(ctx, type))){ diff --git a/src/interpreter/ast/types/any.ts b/src/interpreter/ast/types/any.ts index 5019d94f..4a7af334 100644 --- a/src/interpreter/ast/types/any.ts +++ b/src/interpreter/ast/types/any.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { AnyType } from "unwritten:interpreter/type-definitions/types"; +import type { AnyType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/bigint-literal.ts b/src/interpreter/ast/types/bigint-literal.ts index 77b7dcda..b157bef8 100644 --- a/src/interpreter/ast/types/bigint-literal.ts +++ b/src/interpreter/ast/types/bigint-literal.ts @@ -4,7 +4,7 @@ import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { BigIntLiteralType as TSBigIntLiteralType } from "typescript"; -import type { BigIntLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { BigIntLiteralType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/bigint.ts b/src/interpreter/ast/types/bigint.ts index 6860452c..8c5cba93 100644 --- a/src/interpreter/ast/types/bigint.ts +++ b/src/interpreter/ast/types/bigint.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { BigIntType } from "unwritten:interpreter/type-definitions/types"; +import type { BigIntType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/boolean-literal.ts b/src/interpreter/ast/types/boolean-literal.ts index 628410c6..ba7d1493 100644 --- a/src/interpreter/ast/types/boolean-literal.ts +++ b/src/interpreter/ast/types/boolean-literal.ts @@ -4,7 +4,7 @@ import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { LiteralType } from "typescript"; -import type { BooleanLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { BooleanLiteralType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/boolean.ts b/src/interpreter/ast/types/boolean.ts index 863e3f75..dc570d94 100644 --- a/src/interpreter/ast/types/boolean.ts +++ b/src/interpreter/ast/types/boolean.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { BooleanType } from "unwritten:interpreter/type-definitions/types"; +import type { BooleanType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/circular.ts b/src/interpreter/ast/types/circular.ts index 0241c743..0965003c 100644 --- a/src/interpreter/ast/types/circular.ts +++ b/src/interpreter/ast/types/circular.ts @@ -6,7 +6,7 @@ import { getPositionBySymbol } from "unwritten:interpreter:ast/shared/position"; import type { Type } from "typescript"; -import type { CircularType } from "unwritten:interpreter/type-definitions/types"; +import type { CircularType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/class.ts b/src/interpreter/ast/types/class.ts index d63c2c7e..e7208bcf 100644 --- a/src/interpreter/ast/types/class.ts +++ b/src/interpreter/ast/types/class.ts @@ -4,7 +4,7 @@ import { withCachedType, withLockedType } from "unwritten:interpreter:utils/ts"; import type { ObjectType } from "typescript"; -import type { ClassType } from "unwritten:interpreter/type-definitions/types"; +import type { ClassType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/function.ts b/src/interpreter/ast/types/function.ts index 4e8db0fb..f41a23d7 100644 --- a/src/interpreter/ast/types/function.ts +++ b/src/interpreter/ast/types/function.ts @@ -6,7 +6,7 @@ import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { ObjectType } from "typescript"; -import type { FunctionType } from "unwritten:interpreter/type-definitions/types"; +import type { FunctionType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/intersection.ts b/src/interpreter/ast/types/intersection.ts index 9eeba72c..c048df50 100644 --- a/src/interpreter/ast/types/intersection.ts +++ b/src/interpreter/ast/types/intersection.ts @@ -6,7 +6,7 @@ import { getTypeByType } from "../type"; import type { IntersectionType as TSIntersectionType } from "typescript"; -import type { IntersectionType } from "unwritten:interpreter/type-definitions/types"; +import type { IntersectionType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/mapped.ts b/src/interpreter/ast/types/mapped.ts index 8d551d75..5b4a1950 100644 --- a/src/interpreter/ast/types/mapped.ts +++ b/src/interpreter/ast/types/mapped.ts @@ -10,7 +10,7 @@ import { getPositionByDeclaration } from "unwritten:interpreter:ast/shared/posit import type { MappedTypeNode } from "typescript"; -import type { MappedType } from "unwritten:interpreter/type-definitions/types"; +import type { MappedType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/never.ts b/src/interpreter/ast/types/never.ts index 9d7b22e2..c085e371 100644 --- a/src/interpreter/ast/types/never.ts +++ b/src/interpreter/ast/types/never.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { NeverType } from "unwritten:interpreter/type-definitions/types"; +import type { NeverType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/null.ts b/src/interpreter/ast/types/null.ts index 7bac7cf2..21bba9e7 100644 --- a/src/interpreter/ast/types/null.ts +++ b/src/interpreter/ast/types/null.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { NullType } from "unwritten:interpreter/type-definitions/types"; +import type { NullType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/number-literal.ts b/src/interpreter/ast/types/number-literal.ts index 82956540..f1d42124 100644 --- a/src/interpreter/ast/types/number-literal.ts +++ b/src/interpreter/ast/types/number-literal.ts @@ -4,7 +4,7 @@ import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { NumberLiteralType as TSNumberLiteralType } from "typescript"; -import type { NumberLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { NumberLiteralType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/number.ts b/src/interpreter/ast/types/number.ts index 3408e645..782c3f9a 100644 --- a/src/interpreter/ast/types/number.ts +++ b/src/interpreter/ast/types/number.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { NumberType } from "unwritten:interpreter/type-definitions/types"; +import type { NumberType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/object-literal.ts b/src/interpreter/ast/types/object-literal.ts index c9e0c17e..91c45b79 100644 --- a/src/interpreter/ast/types/object-literal.ts +++ b/src/interpreter/ast/types/object-literal.ts @@ -4,7 +4,7 @@ import { withCachedType, withLockedType } from "unwritten:interpreter:utils/ts"; import type { ObjectType } from "typescript"; -import type { ObjectLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { ObjectLiteralType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/string-literal.ts b/src/interpreter/ast/types/string-literal.ts index 64a3ad31..81f3bab1 100644 --- a/src/interpreter/ast/types/string-literal.ts +++ b/src/interpreter/ast/types/string-literal.ts @@ -4,7 +4,7 @@ import { getTypeId } from "unwritten:interpreter:ast/shared/id"; import type { StringLiteralType as TSStringLiteralType } from "typescript"; -import type { StringLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { StringLiteralType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/string.ts b/src/interpreter/ast/types/string.ts index 056d44da..d5640995 100644 --- a/src/interpreter/ast/types/string.ts +++ b/src/interpreter/ast/types/string.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { StringType } from "unwritten:interpreter/type-definitions/types"; +import type { StringType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/symbol.ts b/src/interpreter/ast/types/symbol.ts index f2b809db..9a3656e5 100644 --- a/src/interpreter/ast/types/symbol.ts +++ b/src/interpreter/ast/types/symbol.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { SymbolType } from "unwritten:interpreter/type-definitions/types"; +import type { SymbolType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/tuple.ts b/src/interpreter/ast/types/tuple.ts index f919d8ac..ac39f045 100644 --- a/src/interpreter/ast/types/tuple.ts +++ b/src/interpreter/ast/types/tuple.ts @@ -12,7 +12,7 @@ import { getTypeByType, getTypeByTypeNode } from "../type"; import type { NamedTupleMember, TupleTypeNode, TupleTypeReference, TypeNode } from "typescript"; -import type { TupleMemberEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { TupleMemberEntity } from "unwritten:interpreter:type-definitions/entities"; import type { TupleType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/type-literal.ts b/src/interpreter/ast/types/type-literal.ts index 8cde7187..f3879efa 100644 --- a/src/interpreter/ast/types/type-literal.ts +++ b/src/interpreter/ast/types/type-literal.ts @@ -9,6 +9,5 @@ import type { InterpreterContext } from "unwritten:type-definitions/context"; export const createTypeLiteralType = (ctx: InterpreterContext, type: ObjectType): TypeLiteralType => withLockedType(ctx, type, () => { - const objectType = createObjectLikeType(ctx, type, TypeKind.TypeLiteral); - return objectType; + return createObjectLikeType(ctx, type, TypeKind.TypeLiteral); }); diff --git a/src/interpreter/ast/types/type-query.ts b/src/interpreter/ast/types/type-query.ts index 040f1c7f..ada3469c 100644 --- a/src/interpreter/ast/types/type-query.ts +++ b/src/interpreter/ast/types/type-query.ts @@ -7,7 +7,7 @@ import { getResolvedTypeByTypeNode, getTypeByResolvedAndDeclaredType, getTypeByT import type { TypeQueryNode } from "typescript"; -import type { TypeQueryType } from "unwritten:interpreter/type-definitions/types"; +import type { TypeQueryType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/undefined.ts b/src/interpreter/ast/types/undefined.ts index 158161d4..97f0b587 100644 --- a/src/interpreter/ast/types/undefined.ts +++ b/src/interpreter/ast/types/undefined.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { UndefinedType } from "unwritten:interpreter/type-definitions/types"; +import type { UndefinedType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/unknown.ts b/src/interpreter/ast/types/unknown.ts index 25fb588b..5afc83a4 100644 --- a/src/interpreter/ast/types/unknown.ts +++ b/src/interpreter/ast/types/unknown.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { UnknownType } from "unwritten:interpreter/type-definitions/types"; +import type { UnknownType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/ast/types/void.ts b/src/interpreter/ast/types/void.ts index 39ddf4a4..3243cd2a 100644 --- a/src/interpreter/ast/types/void.ts +++ b/src/interpreter/ast/types/void.ts @@ -6,7 +6,7 @@ import { assert } from "unwritten:utils:general"; import type { Type } from "typescript"; -import type { VoidType } from "unwritten:interpreter/type-definitions/types"; +import type { VoidType } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/interpreter/type-definitions/jsdoc.ts b/src/interpreter/type-definitions/jsdoc.ts index 2fd3d3f6..08953bbc 100644 --- a/src/interpreter/type-definitions/jsdoc.ts +++ b/src/interpreter/type-definitions/jsdoc.ts @@ -1,7 +1,7 @@ import type { JSDocKind, JSDocTagNames } from "unwritten:interpreter/enums/jsdoc"; -import type { Entity } from "unwritten:interpreter/type-definitions/entities"; -import type { Position } from "unwritten:interpreter/type-definitions/shared"; -import type { Type } from "unwritten:interpreter/type-definitions/types"; +import type { Entity } from "unwritten:interpreter:type-definitions/entities"; +import type { Position } from "unwritten:interpreter:type-definitions/shared"; +import type { Type } from "unwritten:interpreter:type-definitions/types"; type JSDocBase = { diff --git a/src/interpreter/type-definitions/types.ts b/src/interpreter/type-definitions/types.ts index 8b4236c8..c0fe65e6 100644 --- a/src/interpreter/type-definitions/types.ts +++ b/src/interpreter/type-definitions/types.ts @@ -8,7 +8,7 @@ import type { SignatureEntity, TupleMemberEntity, TypeParameterEntity -} from "unwritten:interpreter/type-definitions/entities"; +} from "unwritten:interpreter:type-definitions/entities"; import type { Modifiers, Position } from "unwritten:interpreter:type-definitions/shared"; import type { ID, Name } from "./jsdoc"; diff --git a/src/interpreter/utils/ts.ts b/src/interpreter/utils/ts.ts index 25613b5f..4a831079 100644 --- a/src/interpreter/utils/ts.ts +++ b/src/interpreter/utils/ts.ts @@ -10,8 +10,8 @@ import { assert } from "unwritten:utils:general"; import type { Program, Symbol, Type as TSType } from "typescript"; -import type { Entity } from "unwritten:interpreter/type-definitions/entities"; -import type { Type } from "unwritten:interpreter/type-definitions/types"; +import type { Entity } from "unwritten:interpreter:type-definitions/entities"; +import type { Type } from "unwritten:interpreter:type-definitions/types"; import type { InterpreterContext } from "unwritten:type-definitions/context"; diff --git a/src/renderer/json/index.ts b/src/renderer/json/index.ts index e15799bc..27c537ad 100644 --- a/src/renderer/json/index.ts +++ b/src/renderer/json/index.ts @@ -2,7 +2,7 @@ import { BuiltInRenderers } from "unwritten:renderer/enums/renderer"; import { getDestinationFilePath } from "unwritten:renderer/markup/utils/file"; import { getRenderConfig } from "unwritten:renderer/utils/config"; -import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { SourceFileEntity } from "unwritten:interpreter:type-definitions/entities"; import type { JSONRenderContext, JSONRenderer } from "unwritten:renderer:json:type-definitions/renderer"; import type { RenderContext } from "unwritten:type-definitions/context"; import type { Renderer, RenderOutput } from "unwritten:type-definitions/renderer"; diff --git a/src/renderer/markup/ast-converter/entities/circular.ts b/src/renderer/markup/ast-converter/entities/circular.ts index 55844c55..b615be40 100644 --- a/src/renderer/markup/ast-converter/entities/circular.ts +++ b/src/renderer/markup/ast-converter/entities/circular.ts @@ -1,6 +1,6 @@ import { createAnchorNode } from "unwritten:renderer:markup/utils/nodes"; -import type { CircularEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { CircularEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; diff --git a/src/renderer/markup/ast-converter/entities/class.ts b/src/renderer/markup/ast-converter/entities/class.ts index 35788c77..e944693b 100644 --- a/src/renderer/markup/ast-converter/entities/class.ts +++ b/src/renderer/markup/ast-converter/entities/class.ts @@ -32,7 +32,7 @@ import { extendClassEntityEntitiesWithHeritage } from "unwritten:renderer:utils/heritage"; -import type { ClassEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ClassEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/enum.test.ts b/src/renderer/markup/ast-converter/entities/enum.test.ts index 22fa0fd7..d6390460 100644 --- a/src/renderer/markup/ast-converter/entities/enum.test.ts +++ b/src/renderer/markup/ast-converter/entities/enum.test.ts @@ -14,7 +14,7 @@ import { scope } from "unwritten:tests:utils/scope"; import { assert } from "unwritten:utils/general"; import { ts } from "unwritten:utils/template"; -import type { EnumEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { EnumEntity } from "unwritten:interpreter:type-definitions/entities"; scope("MarkupRenderer", EntityKind.Enum, () => { diff --git a/src/renderer/markup/ast-converter/entities/enum.ts b/src/renderer/markup/ast-converter/entities/enum.ts index c3246a47..59a3d2b7 100644 --- a/src/renderer/markup/ast-converter/entities/enum.ts +++ b/src/renderer/markup/ast-converter/entities/enum.ts @@ -17,7 +17,7 @@ import { createTitleNode } from "unwritten:renderer:markup/utils/nodes"; -import type { EnumEntity, EnumMemberEntity, MergedEnumEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { EnumEntity, EnumMemberEntity, MergedEnumEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/event.ts b/src/renderer/markup/ast-converter/entities/event.ts index 67b2e553..cf7723f2 100644 --- a/src/renderer/markup/ast-converter/entities/event.ts +++ b/src/renderer/markup/ast-converter/entities/event.ts @@ -26,7 +26,7 @@ import { } from "unwritten:renderer:markup/utils/nodes"; import { renderEntityPrefix, spaceBetween } from "unwritten:renderer:markup/utils/renderer"; -import type { PropertyEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { PropertyEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/export-assignment.ts b/src/renderer/markup/ast-converter/entities/export-assignment.ts index d7ee4e04..e86f7228 100644 --- a/src/renderer/markup/ast-converter/entities/export-assignment.ts +++ b/src/renderer/markup/ast-converter/entities/export-assignment.ts @@ -11,7 +11,7 @@ import { convertTypeForDocumentation } from "unwritten:renderer:markup/ast-conve import { getSectionType } from "unwritten:renderer:markup/types-definitions/sections"; import { createAnchorNode, createSectionNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; -import type { ExportAssignmentEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ExportAssignmentEntity } from "unwritten:interpreter:type-definitions/entities"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedExportAssignmentEntityForDocumentation, diff --git a/src/renderer/markup/ast-converter/entities/function-like.test.ts b/src/renderer/markup/ast-converter/entities/function-like.test.ts index e531007d..3c5e4e82 100644 --- a/src/renderer/markup/ast-converter/entities/function-like.test.ts +++ b/src/renderer/markup/ast-converter/entities/function-like.test.ts @@ -12,7 +12,7 @@ import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; import { ts } from "unwritten:utils/template"; -import type { ObjectLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { ObjectLiteralType } from "unwritten:interpreter:type-definitions/types"; scope("MarkupRenderer", EntityKind.Function, () => { diff --git a/src/renderer/markup/ast-converter/entities/function-like.ts b/src/renderer/markup/ast-converter/entities/function-like.ts index 9b0fbded..fde164ef 100644 --- a/src/renderer/markup/ast-converter/entities/function-like.ts +++ b/src/renderer/markup/ast-converter/entities/function-like.ts @@ -5,7 +5,7 @@ import { convertSignatureEntityForType } from "unwritten:renderer:markup/ast-converter/entities/index"; -import type { FunctionLikeEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { FunctionLikeEntity } from "unwritten:interpreter:type-definitions/entities"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedFunctionEntityForDocumentation, diff --git a/src/renderer/markup/ast-converter/entities/interface.ts b/src/renderer/markup/ast-converter/entities/interface.ts index 973ee806..6473a820 100644 --- a/src/renderer/markup/ast-converter/entities/interface.ts +++ b/src/renderer/markup/ast-converter/entities/interface.ts @@ -31,7 +31,7 @@ import { extendInterfaceEntitySignaturesWithHeritage } from "unwritten:renderer:utils/heritage"; -import type { InterfaceEntity, MergedInterfaceEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { InterfaceEntity, MergedInterfaceEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/module.ts b/src/renderer/markup/ast-converter/entities/module.ts index 69dd3fc5..63cf3318 100644 --- a/src/renderer/markup/ast-converter/entities/module.ts +++ b/src/renderer/markup/ast-converter/entities/module.ts @@ -11,7 +11,7 @@ import { convertRemarksForDocumentation } from "unwritten:renderer:markup/ast-co import { convertTagsForDocumentation } from "unwritten:renderer:markup/ast-converter/shared/tags"; import { createAnchorNode, createSectionNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; -import type { ModuleEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ModuleEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/namespace.ts b/src/renderer/markup/ast-converter/entities/namespace.ts index 293e3d2e..6b00d779 100644 --- a/src/renderer/markup/ast-converter/entities/namespace.ts +++ b/src/renderer/markup/ast-converter/entities/namespace.ts @@ -11,7 +11,7 @@ import { convertRemarksForDocumentation } from "unwritten:renderer:markup/ast-co import { convertTagsForDocumentation } from "unwritten:renderer:markup/ast-converter/shared/tags"; import { createAnchorNode, createSectionNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; -import type { NamespaceEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { NamespaceEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/parameter.ts b/src/renderer/markup/ast-converter/entities/parameter.ts index 0ec5502e..5ccea6fd 100644 --- a/src/renderer/markup/ast-converter/entities/parameter.ts +++ b/src/renderer/markup/ast-converter/entities/parameter.ts @@ -16,7 +16,7 @@ import { import { encapsulate, spaceBetween } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { ParameterEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ParameterEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/property.test.ts b/src/renderer/markup/ast-converter/entities/property.test.ts index ac77ee1b..f8fa5179 100644 --- a/src/renderer/markup/ast-converter/entities/property.test.ts +++ b/src/renderer/markup/ast-converter/entities/property.test.ts @@ -24,7 +24,7 @@ import { scope } from "unwritten:tests:utils/scope"; import { assert } from "unwritten:utils/general"; import { ts } from "unwritten:utils/template"; -import type { ObjectLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { ObjectLiteralType } from "unwritten:interpreter:type-definitions/types"; scope("MarkupRenderer", EntityKind.Property, () => { diff --git a/src/renderer/markup/ast-converter/entities/property.ts b/src/renderer/markup/ast-converter/entities/property.ts index 9035fef8..aecd744e 100644 --- a/src/renderer/markup/ast-converter/entities/property.ts +++ b/src/renderer/markup/ast-converter/entities/property.ts @@ -29,7 +29,7 @@ import { } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate, renderEntityPrefix, spaceBetween } from "unwritten:renderer:markup/utils/renderer"; -import type { PropertyEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { PropertyEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/signature.test.ts b/src/renderer/markup/ast-converter/entities/signature.test.ts index 515861e8..930c6b71 100644 --- a/src/renderer/markup/ast-converter/entities/signature.test.ts +++ b/src/renderer/markup/ast-converter/entities/signature.test.ts @@ -21,7 +21,7 @@ import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; import { ts } from "unwritten:utils/template"; -import type { ObjectLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { ObjectLiteralType } from "unwritten:interpreter:type-definitions/types"; scope("MarkupRenderer", "Signature", () => { diff --git a/src/renderer/markup/ast-converter/entities/signature.ts b/src/renderer/markup/ast-converter/entities/signature.ts index 4f346e56..146da930 100644 --- a/src/renderer/markup/ast-converter/entities/signature.ts +++ b/src/renderer/markup/ast-converter/entities/signature.ts @@ -46,7 +46,7 @@ import { import { encapsulate, renderEntityPrefix, spaceBetween } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { ExplicitSignatureEntity, SignatureEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ExplicitSignatureEntity, SignatureEntity } from "unwritten:interpreter:type-definitions/entities"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { AnchorNode, ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { diff --git a/src/renderer/markup/ast-converter/entities/type-alias.ts b/src/renderer/markup/ast-converter/entities/type-alias.ts index ea3f0834..ff03fe1d 100644 --- a/src/renderer/markup/ast-converter/entities/type-alias.ts +++ b/src/renderer/markup/ast-converter/entities/type-alias.ts @@ -17,7 +17,7 @@ import { getSectionType } from "unwritten:renderer:markup/types-definitions/sect import { createAnchorNode, createSectionNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; import { encapsulate, renderEntityPrefix } from "unwritten:renderer:markup/utils/renderer"; -import type { TypeAliasEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { TypeAliasEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/type-parameter.ts b/src/renderer/markup/ast-converter/entities/type-parameter.ts index 1bc3bcbd..87ae57cc 100644 --- a/src/renderer/markup/ast-converter/entities/type-parameter.ts +++ b/src/renderer/markup/ast-converter/entities/type-parameter.ts @@ -17,7 +17,7 @@ import { import { encapsulate, spaceBetween } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { TypeParameterEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { TypeParameterEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/entities/variable.ts b/src/renderer/markup/ast-converter/entities/variable.ts index 8d66c5ae..1608f858 100644 --- a/src/renderer/markup/ast-converter/entities/variable.ts +++ b/src/renderer/markup/ast-converter/entities/variable.ts @@ -11,7 +11,7 @@ import { convertTypeForDocumentation } from "unwritten:renderer:markup/ast-conve import { getSectionType } from "unwritten:renderer:markup/types-definitions/sections"; import { createAnchorNode, createSectionNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; -import type { VariableEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { VariableEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorNode } from "unwritten:renderer/markup/types-definitions/nodes"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/index.ts b/src/renderer/markup/ast-converter/index.ts index c0c26155..b5f6a361 100644 --- a/src/renderer/markup/ast-converter/index.ts +++ b/src/renderer/markup/ast-converter/index.ts @@ -36,7 +36,6 @@ import { import { createListNode, createSectionNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; import { renderCategoryName } from "unwritten:renderer:markup/utils/renderer"; import { sortExportableEntities } from "unwritten:renderer:markup/utils/sort"; -import { getTranslator } from "unwritten:renderer:markup/utils/translations"; import { isCircularEntity, isClassEntity, @@ -55,7 +54,7 @@ import { } from "unwritten:typeguards/entities"; import { assert } from "unwritten:utils/general.js"; -import type { Entity, ExportableEntity, LinkableEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { Entity, ExportableEntity, LinkableEntity } from "unwritten:interpreter:type-definitions/entities"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ListNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { @@ -171,8 +170,6 @@ export function convertToMarkupAST(ctx: MarkupRenderContext, entities: Exportabl export function createTableOfContents(ctx: MarkupRenderContext, entities: ExportableEntity[]): ListNode { - const translate = getTranslator(ctx); - const tableOfContents: ConvertedCategoryForTableOfContents[] = []; for(const entity of entities){ @@ -203,8 +200,6 @@ export function createTableOfContents(ctx: MarkupRenderContext, entities: Export export function createDocumentation(ctx: MarkupRenderContext, entities: ExportableEntity[]): ConvertedCategoryForDocumentation[] { - const translate = getTranslator(ctx); - const documentation: ConvertedCategoryForDocumentation[] = []; for(const entity of entities){ diff --git a/src/renderer/markup/ast-converter/jsdoc/generic.ts b/src/renderer/markup/ast-converter/jsdoc/generic.ts index ca8932b4..2aff8ee4 100644 --- a/src/renderer/markup/ast-converter/jsdoc/generic.ts +++ b/src/renderer/markup/ast-converter/jsdoc/generic.ts @@ -1,6 +1,6 @@ import { convertJSDocNodes } from "unwritten:renderer/markup/ast-converter/shared/jsdoc"; -import type { JSDocGenericTag } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocGenericTag } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocTags } from "unwritten:renderer/markup/types-definitions/renderer"; diff --git a/src/renderer/markup/ast-converter/jsdoc/link.ts b/src/renderer/markup/ast-converter/jsdoc/link.ts index 6f49d18c..92a8135f 100644 --- a/src/renderer/markup/ast-converter/jsdoc/link.ts +++ b/src/renderer/markup/ast-converter/jsdoc/link.ts @@ -1,7 +1,7 @@ import { convertJSDocReference } from "unwritten:renderer/markup/ast-converter/jsdoc/reference"; import { createLinkNode } from "unwritten:renderer/markup/utils/nodes"; -import type { JSDocLink } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocLink } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocTags } from "unwritten:renderer/markup/types-definitions/renderer"; diff --git a/src/renderer/markup/ast-converter/jsdoc/reference.ts b/src/renderer/markup/ast-converter/jsdoc/reference.ts index 7dc76aef..c293a5fe 100644 --- a/src/renderer/markup/ast-converter/jsdoc/reference.ts +++ b/src/renderer/markup/ast-converter/jsdoc/reference.ts @@ -6,7 +6,7 @@ import { encapsulate } from "unwritten:renderer/markup/utils/renderer"; import { getRenderConfig } from "unwritten:renderer/utils/config"; import { isFunctionLikeEntity, isLinkableEntity } from "unwritten:typeguards/entities"; -import type { JSDocReference } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocReference } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocReference } from "unwritten:renderer/markup/types-definitions/renderer"; diff --git a/src/renderer/markup/ast-converter/jsdoc/see.ts b/src/renderer/markup/ast-converter/jsdoc/see.ts index fea053f6..11bfc635 100644 --- a/src/renderer/markup/ast-converter/jsdoc/see.ts +++ b/src/renderer/markup/ast-converter/jsdoc/see.ts @@ -2,7 +2,7 @@ import { convertJSDocReference } from "unwritten:renderer/markup/ast-converter/j import { convertJSDocNodes } from "unwritten:renderer/markup/ast-converter/shared/jsdoc"; import { spaceBetween } from "unwritten:renderer/markup/utils/renderer"; -import type { JSDocSeeTag } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocSeeTag } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocSeeTag } from "unwritten:renderer/markup/types-definitions/renderer"; diff --git a/src/renderer/markup/ast-converter/jsdoc/text.ts b/src/renderer/markup/ast-converter/jsdoc/text.ts index 6aa0c9b0..fd40a4a3 100644 --- a/src/renderer/markup/ast-converter/jsdoc/text.ts +++ b/src/renderer/markup/ast-converter/jsdoc/text.ts @@ -1,4 +1,4 @@ -import type { JSDocText } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocText } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocTags } from "unwritten:renderer/markup/types-definitions/renderer"; diff --git a/src/renderer/markup/ast-converter/jsdoc/throws.ts b/src/renderer/markup/ast-converter/jsdoc/throws.ts index e08298d2..6a08af9e 100644 --- a/src/renderer/markup/ast-converter/jsdoc/throws.ts +++ b/src/renderer/markup/ast-converter/jsdoc/throws.ts @@ -2,7 +2,7 @@ import { convertJSDocType } from "unwritten:renderer/markup/ast-converter/jsdoc/ import { convertJSDocNodes } from "unwritten:renderer/markup/ast-converter/shared/jsdoc"; import { spaceBetween } from "unwritten:renderer/markup/utils/renderer"; -import type { JSDocThrowsTag } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocThrowsTag } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocThrowsTag } from "unwritten:renderer/markup/types-definitions/renderer"; diff --git a/src/renderer/markup/ast-converter/jsdoc/type.ts b/src/renderer/markup/ast-converter/jsdoc/type.ts index 958f7f11..edfc3ef9 100644 --- a/src/renderer/markup/ast-converter/jsdoc/type.ts +++ b/src/renderer/markup/ast-converter/jsdoc/type.ts @@ -5,7 +5,7 @@ import { createAnchorNode, createConditionalNode } from "unwritten:renderer/mark import { encapsulate } from "unwritten:renderer/markup/utils/renderer"; import { getRenderConfig } from "unwritten:renderer/utils/config"; -import type { JSDocType } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocType } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; import type { ConvertedJSDocType } from "unwritten:renderer/markup/types-definitions/renderer"; diff --git a/src/renderer/markup/ast-converter/shared/constraint.test.ts b/src/renderer/markup/ast-converter/shared/constraint.test.ts index ac787abd..29be72fd 100644 --- a/src/renderer/markup/ast-converter/shared/constraint.test.ts +++ b/src/renderer/markup/ast-converter/shared/constraint.test.ts @@ -6,7 +6,7 @@ import { convertConstraintForType } from "unwritten:renderer/markup/ast-converte import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; -import type { ArrayType, NumberLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { ArrayType, NumberLiteralType } from "unwritten:interpreter:type-definitions/types"; scope("MarkupRenderer", "Example", () => { diff --git a/src/renderer/markup/ast-converter/shared/constraint.ts b/src/renderer/markup/ast-converter/shared/constraint.ts index 688948de..f32041f0 100644 --- a/src/renderer/markup/ast-converter/shared/constraint.ts +++ b/src/renderer/markup/ast-converter/shared/constraint.ts @@ -5,7 +5,7 @@ import { spaceBetween } from "unwritten:renderer/markup/utils/renderer"; import { getTranslator } from "unwritten:renderer/markup/utils/translations"; import { isMultilineType } from "unwritten:renderer/markup/utils/types"; -import type { Type } from "unwritten:interpreter/type-definitions/types"; +import type { Type } from "unwritten:interpreter:type-definitions/types"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; diff --git a/src/renderer/markup/ast-converter/shared/description.ts b/src/renderer/markup/ast-converter/shared/description.ts index 611363b6..6cebca2c 100644 --- a/src/renderer/markup/ast-converter/shared/description.ts +++ b/src/renderer/markup/ast-converter/shared/description.ts @@ -4,7 +4,7 @@ import { spaceBetween } from "unwritten:renderer/markup/utils/renderer"; import { createParagraphNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { Description } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { Description } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedDescriptionForDocumentation, diff --git a/src/renderer/markup/ast-converter/shared/example.ts b/src/renderer/markup/ast-converter/shared/example.ts index a32218b0..b6abc60d 100644 --- a/src/renderer/markup/ast-converter/shared/example.ts +++ b/src/renderer/markup/ast-converter/shared/example.ts @@ -3,7 +3,7 @@ import { registerAnonymousAnchor } from "unwritten:renderer/markup/registry/regi import { createInlineTitleNode, createParagraphNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { Example } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { Example } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedExamples, diff --git a/src/renderer/markup/ast-converter/shared/initializer.test.ts b/src/renderer/markup/ast-converter/shared/initializer.test.ts index b8388325..db1abdd8 100644 --- a/src/renderer/markup/ast-converter/shared/initializer.test.ts +++ b/src/renderer/markup/ast-converter/shared/initializer.test.ts @@ -6,7 +6,7 @@ import { convertInitializerForType } from "unwritten:renderer/markup/ast-convert import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; -import type { ArrayType, NumberLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { ArrayType, NumberLiteralType } from "unwritten:interpreter:type-definitions/types"; scope("MarkupRenderer", "Example", () => { diff --git a/src/renderer/markup/ast-converter/shared/initializer.ts b/src/renderer/markup/ast-converter/shared/initializer.ts index a8d62ed9..e3112fb3 100644 --- a/src/renderer/markup/ast-converter/shared/initializer.ts +++ b/src/renderer/markup/ast-converter/shared/initializer.ts @@ -5,7 +5,7 @@ import { spaceBetween } from "unwritten:renderer/markup/utils/renderer"; import { getTranslator } from "unwritten:renderer/markup/utils/translations"; import { isMultilineType } from "unwritten:renderer/markup/utils/types"; -import type { Type } from "unwritten:interpreter/type-definitions/types"; +import type { Type } from "unwritten:interpreter:type-definitions/types"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup"; diff --git a/src/renderer/markup/ast-converter/shared/jsdoc.ts b/src/renderer/markup/ast-converter/shared/jsdoc.ts index 54a7754c..255a4fe9 100644 --- a/src/renderer/markup/ast-converter/shared/jsdoc.ts +++ b/src/renderer/markup/ast-converter/shared/jsdoc.ts @@ -20,7 +20,7 @@ import { isJSDocType } from "unwritten:typeguards/jsdoc"; -import type { JSDocProperties, JSDocTags } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { JSDocProperties, JSDocTags } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; diff --git a/src/renderer/markup/ast-converter/shared/optional.ts b/src/renderer/markup/ast-converter/shared/optional.ts index eb0a82fd..0c232666 100644 --- a/src/renderer/markup/ast-converter/shared/optional.ts +++ b/src/renderer/markup/ast-converter/shared/optional.ts @@ -2,7 +2,7 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { Optional } from "unwritten:interpreter/type-definitions/shared"; +import type { Optional } from "unwritten:interpreter:type-definitions/shared"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; diff --git a/src/renderer/markup/ast-converter/shared/position.test.ts b/src/renderer/markup/ast-converter/shared/position.test.ts index e983bbce..22d5e883 100644 --- a/src/renderer/markup/ast-converter/shared/position.test.ts +++ b/src/renderer/markup/ast-converter/shared/position.test.ts @@ -7,7 +7,7 @@ import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; import { md } from "unwritten:utils/template"; -import type { Position } from "unwritten:interpreter/type-definitions/shared"; +import type { Position } from "unwritten:interpreter:type-definitions/shared"; scope("MarkupRenderer", "Position", () => { diff --git a/src/renderer/markup/ast-converter/shared/remarks.ts b/src/renderer/markup/ast-converter/shared/remarks.ts index 58e466ce..217d6c7d 100644 --- a/src/renderer/markup/ast-converter/shared/remarks.ts +++ b/src/renderer/markup/ast-converter/shared/remarks.ts @@ -3,7 +3,7 @@ import { registerAnonymousAnchor } from "unwritten:renderer/markup/registry/regi import { createInlineTitleNode, createParagraphNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { Remark } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { Remark } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedRemarksForDocumentation, diff --git a/src/renderer/markup/ast-converter/shared/rest.ts b/src/renderer/markup/ast-converter/shared/rest.ts index debe7ba3..77fff1a6 100644 --- a/src/renderer/markup/ast-converter/shared/rest.ts +++ b/src/renderer/markup/ast-converter/shared/rest.ts @@ -2,7 +2,7 @@ import { getRenderConfig } from "unwritten:renderer/utils/config"; import { encapsulate } from "unwritten:renderer:markup/utils/renderer"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { Rest } from "unwritten:interpreter/type-definitions/shared"; +import type { Rest } from "unwritten:interpreter:type-definitions/shared"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; diff --git a/src/renderer/markup/ast-converter/shared/see.ts b/src/renderer/markup/ast-converter/shared/see.ts index 3b8f761b..b61e2c1a 100644 --- a/src/renderer/markup/ast-converter/shared/see.ts +++ b/src/renderer/markup/ast-converter/shared/see.ts @@ -4,7 +4,7 @@ import { registerAnonymousAnchor } from "unwritten:renderer/markup/registry/regi import { createInlineTitleNode, createListNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; import { getTranslator } from "unwritten:renderer:markup/utils/translations"; -import type { See } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { See } from "unwritten:interpreter:type-definitions/jsdoc"; import type { ConvertedSeeTags, ConvertedSeeTagsForType } from "unwritten:renderer/markup/types-definitions/renderer"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; diff --git a/src/renderer/markup/ast-converter/shared/tags.test.ts b/src/renderer/markup/ast-converter/shared/tags.test.ts index 436aeb8a..c1d51531 100644 --- a/src/renderer/markup/ast-converter/shared/tags.test.ts +++ b/src/renderer/markup/ast-converter/shared/tags.test.ts @@ -6,7 +6,7 @@ import { convertTagsForDocumentation } from "unwritten:renderer:markup/ast-conve import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; -import type { PropertyEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { PropertyEntity } from "unwritten:interpreter:type-definitions/entities"; scope("MarkupRenderer", "Tags", () => { diff --git a/src/renderer/markup/ast-converter/shared/tags.ts b/src/renderer/markup/ast-converter/shared/tags.ts index e4ef6332..0ee7a855 100644 --- a/src/renderer/markup/ast-converter/shared/tags.ts +++ b/src/renderer/markup/ast-converter/shared/tags.ts @@ -5,8 +5,8 @@ import { convertOptional } from "unwritten:renderer:markup/ast-converter/shared/ import { createParagraphNode } from "unwritten:renderer:markup/utils/nodes"; import { spaceBetween } from "unwritten:renderer:markup/utils/renderer"; -import type { Entity } from "unwritten:interpreter/type-definitions/entities"; -import type { JSDocProperties } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { Entity } from "unwritten:interpreter:type-definitions/entities"; +import type { JSDocProperties } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedTagsForDocumentation, diff --git a/src/renderer/markup/ast-converter/shared/throws.ts b/src/renderer/markup/ast-converter/shared/throws.ts index 760f72f7..01ab1d04 100644 --- a/src/renderer/markup/ast-converter/shared/throws.ts +++ b/src/renderer/markup/ast-converter/shared/throws.ts @@ -4,7 +4,7 @@ import { registerAnonymousAnchor } from "unwritten:renderer/markup/registry/regi import { getTranslator } from "unwritten:renderer/markup/utils/translations"; import { createInlineTitleNode, createListNode, createTitleNode } from "unwritten:renderer:markup/utils/nodes"; -import type { Throws } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { Throws } from "unwritten:interpreter:type-definitions/jsdoc"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ConvertedThrowsForDocumentation, diff --git a/src/renderer/markup/ast-converter/shared/type.ts b/src/renderer/markup/ast-converter/shared/type.ts index 631efcad..b0331556 100644 --- a/src/renderer/markup/ast-converter/shared/type.ts +++ b/src/renderer/markup/ast-converter/shared/type.ts @@ -86,7 +86,7 @@ import { isVoidType } from "unwritten:typeguards/types"; -import type { MultilineType, Type } from "unwritten:interpreter/type-definitions/types"; +import type { MultilineType, Type } from "unwritten:interpreter:type-definitions/types"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode, ConditionalNode, TitleNode } from "unwritten:renderer:markup/types-definitions/nodes"; import type { diff --git a/src/renderer/markup/ast-converter/types/object-literal.test.ts b/src/renderer/markup/ast-converter/types/object-literal.test.ts index 58a0d37f..f26d2038 100644 --- a/src/renderer/markup/ast-converter/types/object-literal.test.ts +++ b/src/renderer/markup/ast-converter/types/object-literal.test.ts @@ -8,7 +8,7 @@ import { createRenderContext } from "unwritten:tests:utils/context"; import { scope } from "unwritten:tests:utils/scope"; import { ts } from "unwritten:utils/template"; -import type { ObjectLiteralType } from "unwritten:interpreter/type-definitions/types"; +import type { ObjectLiteralType } from "unwritten:interpreter:type-definitions/types"; scope("MarkupRenderer", TypeKind.ObjectLiteral, () => { diff --git a/src/renderer/markup/ast-converter/types/tuple.ts b/src/renderer/markup/ast-converter/types/tuple.ts index 0f2d6008..53996848 100644 --- a/src/renderer/markup/ast-converter/types/tuple.ts +++ b/src/renderer/markup/ast-converter/types/tuple.ts @@ -6,7 +6,7 @@ import { createLinkNode, createListNode, createMultilineNode } from "unwritten:r import { encapsulate, spaceBetween } from "unwritten:renderer/markup/utils/renderer"; import { getRenderConfig } from "unwritten:renderer/utils/config"; -import type { TupleMemberEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { TupleMemberEntity } from "unwritten:interpreter:type-definitions/entities"; import type { TupleType } from "unwritten:interpreter:type-definitions/types"; import type { MarkupRenderContext } from "unwritten:renderer:markup/types-definitions/markup"; import type { diff --git a/src/renderer/markup/ast-converter/types/type-parameter.test.ts b/src/renderer/markup/ast-converter/types/type-parameter.test.ts index f740ab40..d0b19cda 100644 --- a/src/renderer/markup/ast-converter/types/type-parameter.test.ts +++ b/src/renderer/markup/ast-converter/types/type-parameter.test.ts @@ -10,7 +10,7 @@ import { scope } from "unwritten:tests:utils/scope"; import { assert } from "unwritten:utils/general"; import { ts } from "unwritten:utils/template"; -import type { TypeReferenceType } from "unwritten:interpreter/type-definitions/types"; +import type { TypeReferenceType } from "unwritten:interpreter:type-definitions/types"; scope("MarkupRenderer", TypeKind.TypeParameter, () => { diff --git a/src/renderer/markup/ast-converter/types/unresolved.test.ts b/src/renderer/markup/ast-converter/types/unresolved.test.ts index 38d5a193..86f3a69e 100644 --- a/src/renderer/markup/ast-converter/types/unresolved.test.ts +++ b/src/renderer/markup/ast-converter/types/unresolved.test.ts @@ -11,7 +11,7 @@ import { scope } from "unwritten:tests:utils/scope"; import { assert } from "unwritten:utils/general"; import { ts } from "unwritten:utils/template"; -import type { TypeReferenceType } from "unwritten:interpreter/type-definitions/types"; +import type { TypeReferenceType } from "unwritten:interpreter:type-definitions/types"; scope("MarkupRenderer", TypeKind.Unresolved, () => { diff --git a/src/renderer/markup/html/index.ts b/src/renderer/markup/html/index.ts index ea6f8dd4..bd6f2a83 100644 --- a/src/renderer/markup/html/index.ts +++ b/src/renderer/markup/html/index.ts @@ -46,7 +46,7 @@ import { minMax } from "unwritten:renderer:markup/utils/renderer"; import { renderTitleNode } from "./ast/title"; -import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { SourceFileEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorTarget } from "unwritten:renderer/markup/registry/registry"; import type { HTMLRenderContext, HTMLRenderer } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; diff --git a/src/renderer/markup/markdown/index.ts b/src/renderer/markup/markdown/index.ts index a1176eb1..5324b8dd 100644 --- a/src/renderer/markup/markdown/index.ts +++ b/src/renderer/markup/markdown/index.ts @@ -50,7 +50,7 @@ import { minMax } from "unwritten:renderer:markup/utils/renderer"; import { renderTitleNode } from "./ast/title"; -import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { SourceFileEntity } from "unwritten:interpreter:type-definitions/entities"; import type { AnchorTarget } from "unwritten:renderer/markup/registry/registry"; import type { MarkdownRenderContext, MarkdownRenderer } from "unwritten:renderer:markup/types-definitions/markup"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; diff --git a/src/renderer/markup/types-definitions/config.ts b/src/renderer/markup/types-definitions/config.ts index 9bf3b7e4..b6fb33f2 100644 --- a/src/renderer/markup/types-definitions/config.ts +++ b/src/renderer/markup/types-definitions/config.ts @@ -1,4 +1,4 @@ -import type { ExportableEntityKinds } from "unwritten:interpreter/type-definitions/entities"; +import type { ExportableEntityKinds } from "unwritten:interpreter:type-definitions/entities"; export interface MarkupRenderConfig { diff --git a/src/renderer/markup/types-definitions/renderer.ts b/src/renderer/markup/types-definitions/renderer.ts index 6ad2d2df..3c6ca3f6 100644 --- a/src/renderer/markup/types-definitions/renderer.ts +++ b/src/renderer/markup/types-definitions/renderer.ts @@ -1,6 +1,6 @@ import type { RenderCategories } from "../enums/renderer"; -import type { Alpha, Beta, Deprecated, Example, Internal } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { Alpha, Beta, Deprecated, Example, Internal } from "unwritten:interpreter:type-definitions/jsdoc"; import type { AnchorNode, @@ -439,12 +439,12 @@ export type ConvertedInterfaceEntityForDocumentation = SectionNode<[ export type ConvertedClassEntityForTableOfContents = [ title: ASTNode, members: ListNode< - ( - | ListNode - | ListNode - | ListNode - | string - )[] + ( + | ListNode + | ListNode + | ListNode + | string + )[] > ]; export type ConvertedClassEntityForDocumentation = SectionNode<[ diff --git a/src/renderer/markup/utils/file.ts b/src/renderer/markup/utils/file.ts index e2725bd7..5080adb9 100644 --- a/src/renderer/markup/utils/file.ts +++ b/src/renderer/markup/utils/file.ts @@ -1,4 +1,4 @@ -import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { SourceFileEntity } from "unwritten:interpreter:type-definitions/entities"; import type { RenderContext } from "unwritten:type-definitions/context"; import type { FilePath } from "unwritten:type-definitions/platform"; diff --git a/src/renderer/markup/utils/nodes.ts b/src/renderer/markup/utils/nodes.ts index e329e2b9..2b792626 100644 --- a/src/renderer/markup/utils/nodes.ts +++ b/src/renderer/markup/utils/nodes.ts @@ -23,7 +23,7 @@ import type { TitleNode } from "../types-definitions/nodes"; -import type { ID, Name } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { ID, Name } from "unwritten:interpreter:type-definitions/jsdoc"; import type { AnchorTarget } from "unwritten:renderer/markup/registry/registry"; import type { SectionType } from "unwritten:renderer:markup/types-definitions/sections"; diff --git a/src/renderer/markup/utils/renderer.ts b/src/renderer/markup/utils/renderer.ts index 6c676bc9..1946c590 100644 --- a/src/renderer/markup/utils/renderer.ts +++ b/src/renderer/markup/utils/renderer.ts @@ -2,7 +2,7 @@ import { EntityKind } from "unwritten:interpreter/enums/entity"; import { getTranslator } from "unwritten:renderer/markup/utils/translations.js"; import { getRenderConfig } from "unwritten:renderer/utils/config.js"; -import type { ExportableEntity, ExportableEntityKinds } from "unwritten:interpreter/type-definitions/entities"; +import type { ExportableEntity, ExportableEntityKinds } from "unwritten:interpreter:type-definitions/entities"; import type { MarkupRenderContext } from "unwritten:renderer/markup/types-definitions/markup.js"; import type { Encapsulation } from "unwritten:renderer:markup/types-definitions/config"; import type { ASTNode } from "unwritten:renderer:markup/types-definitions/nodes"; diff --git a/src/renderer/markup/utils/sort.ts b/src/renderer/markup/utils/sort.ts index a4c50dd5..a3b078e8 100644 --- a/src/renderer/markup/utils/sort.ts +++ b/src/renderer/markup/utils/sort.ts @@ -1,6 +1,6 @@ import type { MarkupRenderContext } from "../types-definitions/markup"; -import type { ExportableEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { ExportableEntity } from "unwritten:interpreter:type-definitions/entities"; export function sortExportableEntities(ctx: MarkupRenderContext, entities: ExportableEntity[]): ExportableEntity[] { diff --git a/src/renderer/markup/utils/types.ts b/src/renderer/markup/utils/types.ts index a586962e..4ef52c11 100644 --- a/src/renderer/markup/utils/types.ts +++ b/src/renderer/markup/utils/types.ts @@ -14,7 +14,7 @@ import { isUnionType } from "unwritten:typeguards/types"; -import type { MultilineType, Type } from "unwritten:interpreter/type-definitions/types"; +import type { MultilineType, Type } from "unwritten:interpreter:type-definitions/types"; export function isMultilineType(type: Type): type is MultilineType { diff --git a/src/renderer/utils/heritage.test.ts b/src/renderer/utils/heritage.test.ts index 2fe5e1d9..988d841a 100644 --- a/src/renderer/utils/heritage.test.ts +++ b/src/renderer/utils/heritage.test.ts @@ -13,7 +13,7 @@ import { scope } from "unwritten:tests:utils/scope"; import { assert } from "unwritten:utils/general"; import { ts } from "unwritten:utils/template"; -import type { InterfaceEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { InterfaceEntity } from "unwritten:interpreter:type-definitions/entities"; scope("Renderer", "utils", () => { diff --git a/src/renderer/utils/heritage.ts b/src/renderer/utils/heritage.ts index 2c0403bb..bbda2abe 100644 --- a/src/renderer/utils/heritage.ts +++ b/src/renderer/utils/heritage.ts @@ -12,7 +12,7 @@ import type { MethodEntity, PropertyEntity, SetterEntity -} from "unwritten:interpreter/type-definitions/entities"; +} from "unwritten:interpreter:type-definitions/entities"; type EntityKeys = "events" | "getters" | "methods" | "properties" | "setters"; diff --git a/src/renderer/utils/private-members.ts b/src/renderer/utils/private-members.ts index 1292daa5..a65a64d4 100644 --- a/src/renderer/utils/private-members.ts +++ b/src/renderer/utils/private-members.ts @@ -5,7 +5,7 @@ import type { FunctionLikeEntity, PropertyEntity, SignatureEntity -} from "unwritten:interpreter/type-definitions/entities"; +} from "unwritten:interpreter:type-definitions/entities"; export function filterOutImplicitSignatures(signatures: SignatureEntity[]): ExplicitSignatureEntity[] { diff --git a/src/type-definitions/context.ts b/src/type-definitions/context.ts index 2f57f87b..f6aaa2f9 100644 --- a/src/type-definitions/context.ts +++ b/src/type-definitions/context.ts @@ -1,6 +1,8 @@ import type { TypeChecker } from "typescript"; import type ts from "typescript"; +import type { Entity } from "unwritten:interpreter:type-definitions/entities"; +import type { Type } from "unwritten:interpreter:type-definitions/types"; import type { OS } from "unwritten:type-definitions/platform"; import type { CompleteConfig } from "./config"; @@ -33,15 +35,15 @@ export interface DefaultNodeContext { } interface BaseInterpreterContext { + /** @internal */ checker: TypeChecker; config: CompleteConfig; - /** - * @internal - */ + /** @internal */ + entityCache: Record; + /** @internal */ + typeCache: Record; symbolLocker?: Set; - /** - * @internal - */ + /** @internal */ typeLocker?: Set; } diff --git a/src/type-definitions/renderer.ts b/src/type-definitions/renderer.ts index bc5c9444..5e1f4507 100644 --- a/src/type-definitions/renderer.ts +++ b/src/type-definitions/renderer.ts @@ -1,4 +1,4 @@ -import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; +import type { SourceFileEntity } from "unwritten:interpreter:type-definitions/entities"; import type { RenderContext } from "./context"; import type { FileExtension, FilePath } from "./platform"; diff --git a/src/type-definitions/utils.ts b/src/type-definitions/utils.ts index 1097bb61..9419d8cd 100644 --- a/src/type-definitions/utils.ts +++ b/src/type-definitions/utils.ts @@ -1,4 +1,4 @@ -import type { Entity } from "unwritten:interpreter/type-definitions/entities"; +import type { Entity } from "unwritten:interpreter:type-definitions/entities"; import type { Type } from "unwritten:interpreter:type-definitions/types"; diff --git a/src/typeguards/entities.ts b/src/typeguards/entities.ts index d211e7c9..c040c63a 100644 --- a/src/typeguards/entities.ts +++ b/src/typeguards/entities.ts @@ -25,7 +25,7 @@ import type { TypeParameterEntity, UnresolvedEntity, VariableEntity -} from "unwritten:interpreter/type-definitions/entities"; +} from "unwritten:interpreter:type-definitions/entities"; export function isCircularEntity(entity: Entity): entity is CircularEntity { diff --git a/src/typeguards/jsdoc.ts b/src/typeguards/jsdoc.ts index 0126bb34..01958cda 100644 --- a/src/typeguards/jsdoc.ts +++ b/src/typeguards/jsdoc.ts @@ -9,7 +9,7 @@ import type { JSDocText, JSDocThrowsTag, JSDocType -} from "unwritten:interpreter/type-definitions/jsdoc"; +} from "unwritten:interpreter:type-definitions/jsdoc"; export function isJSDocGenericTag(jsdocTag: JSDocTag): jsdocTag is JSDocGenericTag { From f2cea7eb46159577a53f9877d7c0b83f34d27b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:15:51 +0200 Subject: [PATCH 37/42] refactor: improve console output --- src/platform/logger/browser.ts | 12 +++++ src/platform/logger/node.ts | 86 ++++++++++++++++++++++++-------- src/type-definitions/platform.ts | 6 ++- 3 files changed, 82 insertions(+), 22 deletions(-) diff --git a/src/platform/logger/browser.ts b/src/platform/logger/browser.ts index 2b9f8219..d1809a3a 100644 --- a/src/platform/logger/browser.ts +++ b/src/platform/logger/browser.ts @@ -97,6 +97,18 @@ export module logger { return message; } + export function black(message: string): string { + return message; + } + + export function dim(message: string): string { + return message; + } + + export function inverse(message: string): string { + return message; + } + export function cyan(message: string): string { return message; } diff --git a/src/platform/logger/node.ts b/src/platform/logger/node.ts index e52439e3..2e52e34e 100644 --- a/src/platform/logger/node.ts +++ b/src/platform/logger/node.ts @@ -15,14 +15,17 @@ const modifiers = { bgGreen: "\x1b[42m", bgRed: "\x1b[41m", bgYellow: "\x1b[43m", + fgBlack: "\x1b[30m", fgBlue: "\x1b[34m", fgCyan: "\x1b[36m", + fgDim: "\x1b[2m", fgGray: "\x1b[2m", fgGreen: "\x1b[32m", fgMagenta: "\x1b[35m", fgRed: "\x1b[31m", fgWhite: "\x1b[37m", fgYellow: "\x1b[33m", + inverse: "\x1b[7m", reset: "\x1b[0m", textBold: "\x1b[1m", textItalic: "\x1b[3m", @@ -36,20 +39,18 @@ export namespace logger { process.on("uncaughtException", err => { const stackOnly = err.stack?.replace(`${err.name}: ${err.message}`, ""); - const systemInfo = getSystemInfo(); + const systemInfo = getSystemInfo().map(dim); println( - `${lineEndings}${modifiers.bgRed}${modifiers.textBold} ${err.name} ${modifiers.reset} ${ - red( - [ - err.message, - err.cause, - stackOnly, - ...systemInfo - ] - .filter(message => !!message) - .join(lineEndings) - )}`, + `${lineEndings}${inverse(red(bold(` ${err.name} `)))} ${ + [ + red(bold(err.message)), + err.cause, + stackOnly && red(stackOnly), + ...systemInfo + ] + .filter(message => !!message) + .join(lineEndings)}`, process.stderr ); @@ -78,10 +79,16 @@ export namespace logger { const badge = typeof badgeOrBody === "string" ? badgeOrBody : "WARN"; const body = typeof badgeOrBody === "object" ? badgeOrBody : bodyOrUndefined; - const bodyMessages = body ? ["", ...body.map(message => ` ${message}`), ""] : []; + const bodyMessages = body + ? [ + "", + ...body.map(message => indent(message, 4)), + "" + ] + : []; println([ - `${modifiers.bgYellow}${modifiers.textBold} ${badge} ${modifiers.reset} ${titleOrMessage}`, + `${inverse(yellow(bold(` ${badge} `)))} ${yellow(bold(titleOrMessage))}`, ...bodyMessages ].join(lineEndings)); @@ -121,10 +128,10 @@ export namespace logger { // eslint-disable-next-line eslint-plugin-typescript/naming-convention "unwritten:": formattedUnwrittenPath }) - .map(row => ` ${row}`); + .map(row => indent(row, 4)); println([ - `${modifiers.bgGreen}${modifiers.textBold} ${name} ${modifiers.reset}`, + inverse(green(bold(` ${name} `))), "", ...table, "" @@ -140,10 +147,17 @@ export namespace logger { const badge = typeof badgeOrBody === "string" ? badgeOrBody : "INFO"; const body = typeof badgeOrBody === "object" ? badgeOrBody : bodyOrUndefined; - const bodyMessages = body ? ["", ...body.map(message => ` ${message}`), ""] : []; + + const bodyMessages = body + ? [ + "", + ...body.map(message => indent(message, 4)), + "" + ] + : []; println([ - `${modifiers.bgGreen}${modifiers.textBold} ${badge} ${modifiers.reset} ${titleOrMessage}`, + `${inverse(cyan(bold(` ${badge} `)))} ${titleOrMessage}`, ...bodyMessages ].join(lineEndings)); @@ -162,7 +176,7 @@ export namespace logger { const relativePath = path.replace(cwd, ""); const simplifiedPath = cwd.replace(new RegExp(`^${home}`), "~"); - return `${modifiers.fgGray}${simplifiedPath}${modifiers.reset}${relativePath}`; + return `${modifiers.fgDim}${simplifiedPath}${modifiers.reset}${relativePath}`; } @@ -199,6 +213,18 @@ export namespace logger { return `${modifiers.fgWhite}${message}${modifiers.reset}`; } + export function black(message: string): string { + return `${modifiers.fgBlack}${message}${modifiers.reset}`; + } + + export function dim(message: string): string { + return `${modifiers.fgDim}${message}${modifiers.reset}`; + } + + export function inverse(message: string): string { + return `${modifiers.inverse}${message}${modifiers.reset}`; + } + export function cyan(message: string): string { return `${modifiers.fgCyan}${message}${modifiers.reset}`; } @@ -255,6 +281,16 @@ function getSystemInfo(ctx?: DefaultContext): string[] { } +function indent(message: string, spaces: number): string { + return message.split(lineEndings).reduce((lines, line, index, arr) => { + if(index > 0){ + lines += lineEndings; + } + + return `${lines}${" ".repeat(spaces)}${line}`; + }, ""); +} + function simpleTable(table: { [key: string]: string[] | string; }): string[] { const maxLength = Object.keys(table).reduce((acc, key) => { return Math.max(acc, key.length); @@ -289,7 +325,17 @@ function println(message: string, output?: WriteStream): void { } function supportsColor(output: WriteStream): boolean { - return "hasColors" in output && output.hasColors(16); + if("NO_COLOR" in process.env || process.argv.includes("--no-color")){ + return false; + } + if("GITHUB_ACTIONS" in process.env){ + return false; + } + if(!("hasColors" in output) || !output.hasColors(16)){ + return false; + } + + return true; } function forceUnstyled(message: string): string { diff --git a/src/type-definitions/platform.ts b/src/type-definitions/platform.ts index 0a2be4bf..35b2b7ad 100644 --- a/src/type-definitions/platform.ts +++ b/src/type-definitions/platform.ts @@ -53,12 +53,14 @@ export type Logger = { bold(message: string): string; cyan(message: string): string; debug(message: string): void; + dim(message: string): string; filePath(path: string): string; gray(message: string): string; green(message: string): string; - info(title: string, label: string, message: string[] | string): void; info(message: string[] | string): void; info(title: string, message: string[] | string): void; + info(title: string, label: string, message: string[] | string): void; + inverse(message: string): string; italic(message: string): string; log(message: string): void; magenta(message: string): string; @@ -66,9 +68,9 @@ export type Logger = { stats(ctx: DefaultContext, stats: Logger["_stats"]): void; strikethrough(message: string): string; underline(message: string): string; - warn(message: string[] | string): void; warn(title: string, message: string[] | string): void; warn(title: string, label: string, message: string[] | string): void; + warn(message: string[] | string): void; white(message: string): string; yellow(message: string): string; _stats?: { From e0d21ad49da992ed7af7ced346d924b1ebb99ecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:16:22 +0200 Subject: [PATCH 38/42] fix: render unregistered anchors --- src/renderer/markup/html/ast/anchor.ts | 3 ++- src/renderer/markup/markdown/ast/anchor.ts | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/renderer/markup/html/ast/anchor.ts b/src/renderer/markup/html/ast/anchor.ts index 26a6852c..c1852daa 100644 --- a/src/renderer/markup/html/ast/anchor.ts +++ b/src/renderer/markup/html/ast/anchor.ts @@ -11,7 +11,8 @@ export function renderAnchorNode(ctx: HTMLRenderContext, anchorNode: AnchorNode) const anchorLink = getAnchorLink(ctx, anchorNode.id); if(!anchorLink){ - throw new Error(`No anchor link and no fallback found for anchor node ${anchorNode.name} with id ${anchorNode.id}`); + // throw new Error(`No anchor link and no fallback found for anchor node ${anchorNode.name} with id ${anchorNode.id}`); + return anchorNode.displayName; } return renderLinkNode(ctx, createLinkNode(anchorNode.displayName, anchorLink)); diff --git a/src/renderer/markup/markdown/ast/anchor.ts b/src/renderer/markup/markdown/ast/anchor.ts index 31ccb81d..89eea63d 100644 --- a/src/renderer/markup/markdown/ast/anchor.ts +++ b/src/renderer/markup/markdown/ast/anchor.ts @@ -11,9 +11,15 @@ export function renderAnchorNode(ctx: MarkdownRenderContext, anchorNode: AnchorN const anchorLink = getAnchorLink(ctx, anchorNode.id); if(!anchorLink){ - throw new Error(`No anchor link and no fallback found for anchor node ${anchorNode.name} with id ${anchorNode.id}`); + // throw new Error(`No anchor link and no fallback found for anchor node ${anchorNode.name} with id ${anchorNode.id}`); + return anchorNode.displayName; } return renderLinkNode(ctx, createLinkNode(anchorNode.displayName, anchorLink)); } + + +// 9007199254711806 Method: SVGSVGInstance.attr(attributeName) + +// 23719 SVGInstance From 6c8245d253246c3fd015834f096361f31db5a7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:16:41 +0200 Subject: [PATCH 39/42] fix: not registering all anchors --- src/renderer/markup/registry/registry.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/renderer/markup/registry/registry.ts b/src/renderer/markup/registry/registry.ts index e46588dc..1ccf56ba 100644 --- a/src/renderer/markup/registry/registry.ts +++ b/src/renderer/markup/registry/registry.ts @@ -2,8 +2,8 @@ import { assert } from "unwritten:utils/general"; import type { MarkupRenderContext } from "../types-definitions/markup"; -import type { SourceFileEntity } from "unwritten:interpreter/type-definitions/entities"; -import type { ID, Name } from "unwritten:interpreter/type-definitions/jsdoc"; +import type { SourceFileEntity } from "unwritten:interpreter:type-definitions/entities"; +import type { ID, Name } from "unwritten:interpreter:type-definitions/jsdoc"; import type { FilePath } from "unwritten:type-definitions/platform"; @@ -49,8 +49,7 @@ export function registerAnchor(ctx: MarkupRenderContext, name: Name, id: ID | ID if( !ctx.currentFile.links.get(anchorId)! - .flat() - .some(storedId => ids.includes(storedId)) + .some(storedIds => storedIds.every(storedId => ids.includes(storedId))) ){ ctx.currentFile.links.get(anchorId)!.push(ids); } From 77950ea32ed0bf52ab3a5d62c0b4a210228c1dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:27:38 +0200 Subject: [PATCH 40/42] chore: update dependencies --- package-lock.json | 1385 ++++++++++++---------------------- package.json | 12 +- schemas/renderer/config.json | 63 +- 3 files changed, 528 insertions(+), 932 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6252a829..19857c62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "unwritten", - "version": "0.2.8-beta.7", + "version": "0.2.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "unwritten", - "version": "0.2.8-beta.7", + "version": "0.2.9", "license": "MIT", "dependencies": { "cac": "^6.7.14", @@ -17,17 +17,17 @@ "unwritten": "lib/node/bin/index.js" }, "devDependencies": { - "@schoero/configs": "^1.0.13", + "@schoero/configs": "^1.0.15", "@types/minimatch": "^5.1.2", - "@types/node": "^20.12.12", + "@types/node": "^20.14.6", "changelogen": "^0.5.5", - "cspell": "^8.8.3", + "cspell": "^8.9.0", "eslint-plugin-jsonc": "^2.16.0", "eslint-plugin-sort-exports": "^0.9.1", "rollup-plugin-preserve-shebang": "^1.0.1", "tinyhighlight": "^0.3.2", - "ts-json-schema-generator": "^2.2.0", - "vite": "^5.2.11", + "ts-json-schema-generator": "^2.3.0", + "vite": "^5.3.1", "vite-plugin-dts": "^3.9.1", "vite-plugin-no-bundle": "^4.0.0", "vitest": "^1.6.0" @@ -56,26 +56,13 @@ "undici": "^5.25.4" } }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@babel/code-frame": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", - "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.6", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { @@ -83,21 +70,21 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", - "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", - "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -163,9 +150,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", - "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -175,16 +162,16 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.8.3.tgz", - "integrity": "sha512-nRa30TQwE4R5xcM6CBibM2l7D359ympexjm7OrykzYmStIiiudDIsuNOIXGBrDouxRFgKGAa/ETo1g+Pxz7kNA==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.9.0.tgz", + "integrity": "sha512-Dxfuva7zlcI2X/PulDI7bfJBB1De4OuulR2prVpDuGLk3zAiFO7t4d2bmdWxfowhtm1agSqY03uZOTk8fTppuQ==", "dev": true, "dependencies": { "@cspell/dict-ada": "^4.0.2", "@cspell/dict-aws": "^4.0.2", "@cspell/dict-bash": "^4.1.3", - "@cspell/dict-companies": "^3.1.0", - "@cspell/dict-cpp": "^5.1.6", + "@cspell/dict-companies": "^3.1.2", + "@cspell/dict-cpp": "^5.1.10", "@cspell/dict-cryptocurrencies": "^5.0.0", "@cspell/dict-csharp": "^4.0.2", "@cspell/dict-css": "^4.0.12", @@ -193,8 +180,8 @@ "@cspell/dict-docker": "^1.1.7", "@cspell/dict-dotnet": "^5.0.2", "@cspell/dict-elixir": "^4.0.3", - "@cspell/dict-en_us": "^4.3.20", - "@cspell/dict-en-common-misspellings": "^2.0.1", + "@cspell/dict-en_us": "^4.3.22", + "@cspell/dict-en-common-misspellings": "^2.0.2", "@cspell/dict-en-gb": "1.1.33", "@cspell/dict-filetypes": "^3.0.4", "@cspell/dict-fonts": "^4.0.0", @@ -203,13 +190,13 @@ "@cspell/dict-gaming-terms": "^1.0.5", "@cspell/dict-git": "^3.0.0", "@cspell/dict-golang": "^6.0.9", - "@cspell/dict-google": "^1.0.0", + "@cspell/dict-google": "^1.0.1", "@cspell/dict-haskell": "^4.0.1", "@cspell/dict-html": "^4.0.5", "@cspell/dict-html-symbol-entities": "^4.0.0", - "@cspell/dict-java": "^5.0.6", + "@cspell/dict-java": "^5.0.7", "@cspell/dict-julia": "^1.0.1", - "@cspell/dict-k8s": "^1.0.3", + "@cspell/dict-k8s": "^1.0.5", "@cspell/dict-latex": "^4.0.0", "@cspell/dict-lorem-ipsum": "^4.0.0", "@cspell/dict-lua": "^4.0.3", @@ -217,15 +204,15 @@ "@cspell/dict-monkeyc": "^1.0.6", "@cspell/dict-node": "^5.0.1", "@cspell/dict-npm": "^5.0.16", - "@cspell/dict-php": "^4.0.7", + "@cspell/dict-php": "^4.0.8", "@cspell/dict-powershell": "^5.0.4", - "@cspell/dict-public-licenses": "^2.0.6", - "@cspell/dict-python": "^4.1.11", + "@cspell/dict-public-licenses": "^2.0.7", + "@cspell/dict-python": "^4.2.1", "@cspell/dict-r": "^2.0.1", "@cspell/dict-ruby": "^5.0.2", - "@cspell/dict-rust": "^4.0.3", + "@cspell/dict-rust": "^4.0.4", "@cspell/dict-scala": "^5.0.2", - "@cspell/dict-software-terms": "^3.3.23", + "@cspell/dict-software-terms": "^3.4.6", "@cspell/dict-sql": "^2.1.3", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", @@ -238,30 +225,30 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.8.3.tgz", - "integrity": "sha512-XP8x446IO9iHKvEN1IrJwOC5wC2uwmbdgFiUiXfzPSAlPfRWBmzOR68UR0Z6LNpm1GB4sUxxQkx2CRqDyGaSng==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.9.0.tgz", + "integrity": "sha512-+m2HoYTqdI76Zt27CyCpFCAxEUlTMnJnC76MpuQEd21C72qXWmaYdcVzJ7GnVXtTY6cofefUy/X3zgkUBW/bqg==", "dev": true, "dependencies": { - "@cspell/cspell-types": "8.8.3" + "@cspell/cspell-types": "8.9.0" }, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-pipe": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.8.3.tgz", - "integrity": "sha512-tzngpFKXeUsdTZEErffTlwUnPIKYgyRKy0YTrD77EkhyDSbUnaS8JWqtGZbKV7iQ+R4CL7tiaubPjUzkbWj+kQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.9.0.tgz", + "integrity": "sha512-N3Nv9F/1LyUabd1lda+N7tU+UpY7lp8mZvG7ZTxhoB8vfw/Yf3f8NlQ5awSYear2Q+N0RoGyyLaaqUY6nUQvOQ==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-resolver": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.8.3.tgz", - "integrity": "sha512-pMOB2MJYeria0DeW1dsehRPIHLzoOXCm1Cdjp1kRZ931PbqNCYaE/GM6laWpUTAbS9Ly2tv4g0jK3PUH8ZTtJA==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.9.0.tgz", + "integrity": "sha512-52FCYcrZZhdAKkGoHss000nUk2mHkujxHJOfh+KMh2p15igmPW0AR7/VFKSS7zVkkLfAhQfWxoqQLkoE+yvccA==", "dev": true, "dependencies": { "global-directory": "^4.0.1" @@ -271,18 +258,18 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.8.3.tgz", - "integrity": "sha512-QVKe/JZvoTaaBAMXG40HjZib1g6rGgxk03e070GmdfCiMRUCWFtK+9DKVYJfSqjQhzj/eDCrq8aWplHWy66umg==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.9.0.tgz", + "integrity": "sha512-R8MlY3dp4my/VZp2xhvkUcXbLsTZUSNuxsOFzpPYLQhtrei0ReEcaDTg2JEU1wfHnREGG8GYlWh9BEryx8AZYA==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/@cspell/cspell-types": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.8.3.tgz", - "integrity": "sha512-31wYSBPinhqKi9TSzPg50fWHJmMQwD1d5p26yM/NAfNQvjAfBQlrg4pqix8pxOJkAK5W/TnoaVXjzJ5XCg6arQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.9.0.tgz", + "integrity": "sha512-YeL14G+tIh92WvO5K9+WBCjckRQAApeSNkIavx+7+IF+MUoGPvVbTA881q15zwoPRPtOJQ8wEbI6zJH5ykKFfw==", "dev": true, "engines": { "node": ">=18" @@ -307,15 +294,15 @@ "dev": true }, "node_modules/@cspell/dict-companies": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.1.1.tgz", - "integrity": "sha512-hooOyJ1q3o5tGkUOXyTY04psiYdyrcJkoQHMA4gX0zJzj+pQJCL812V+z9aI4vl1Qhjxfp2YHKF60DM+EndqGQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.1.2.tgz", + "integrity": "sha512-OwR5i1xbYuJX7FtHQySmTy3iJtPV1rZQ3jFCxFGwrA1xRQ4rtRcDQ+sTXBCIAoJHkXa84f9J3zsngOKmMGyS/w==", "dev": true }, "node_modules/@cspell/dict-cpp": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.7.tgz", - "integrity": "sha512-qVuXo5rm9sySIrDwTfL62WF0BTiJXc4jAa53RvKV2f7wJL4LiJLNPpvY6oNU7G311VLf9QlTteRnlSulZLav/A==", + "version": "5.1.10", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.10.tgz", + "integrity": "sha512-BmIF0sAz2BgGEOwzYIeEm9ALneDjd1tcTbFbo+A1Hcq3zOKP8yViSgxS9CEN30KOZIyph6Tldp531UPEpoEl0Q==", "dev": true }, "node_modules/@cspell/dict-cryptocurrencies": { @@ -343,9 +330,9 @@ "dev": true }, "node_modules/@cspell/dict-data-science": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz", - "integrity": "sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.1.tgz", + "integrity": "sha512-xeutkzK0eBe+LFXOFU2kJeAYO6IuFUc1g7iRLr7HeCmlC4rsdGclwGHh61KmttL3+YHQytYStxaRBdGAXWC8Lw==", "dev": true }, "node_modules/@cspell/dict-de-ch": { @@ -379,15 +366,15 @@ "dev": true }, "node_modules/@cspell/dict-en_us": { - "version": "4.3.20", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.20.tgz", - "integrity": "sha512-xxjV+iA+eoDtFPUhN7G42kvGBBCR4nxCv31Uo9mr/EjwsBqKcskTewcWRD7o4Vy66hppkXOayH2jWw8orD4/9g==", + "version": "4.3.22", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.22.tgz", + "integrity": "sha512-UegkIQhKkTLGarpYNV5ybW2JHzuxhDMOF9q9TW37iG8YoHp5jeVW3C0p3cH9nHWMwEjPinJFfxBd1LPRxGv5dQ==", "dev": true }, "node_modules/@cspell/dict-en-common-misspellings": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.1.tgz", - "integrity": "sha512-uWaP8UG4uvcPyqaG0FzPKCm5kfmhsiiQ45Fs6b3/AEAqfq7Fj1JW0+S3qRt85FQA9SoU6gUJCz9wkK/Ylh7m5A==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.2.tgz", + "integrity": "sha512-LA8BO0RaoJD+ExHzK5mz+t9RQ0HaBPDxgR4JTfG8YKJP5keO+pFMH9ZMZphKPjW46QYUZb6Ta1HIRikBEOZfYw==", "dev": true }, "node_modules/@cspell/dict-en-gb": { @@ -475,9 +462,9 @@ "dev": true }, "node_modules/@cspell/dict-java": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.6.tgz", - "integrity": "sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.7.tgz", + "integrity": "sha512-ejQ9iJXYIq7R09BScU2y5OUGrSqwcD+J5mHFOKbduuQ5s/Eh/duz45KOzykeMLI6KHPVxhBKpUPBWIsfewECpQ==", "dev": true }, "node_modules/@cspell/dict-julia": { @@ -487,9 +474,9 @@ "dev": true }, "node_modules/@cspell/dict-k8s": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.4.tgz", - "integrity": "sha512-p3RjEkiwh5b1gLkYUMV9w5MHqWYTI1Sm2j4x8QZ+NZHB53PORrjPDyWSaG4giqKYAfs3UYB7QZUyBt0Sb68Vsw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.5.tgz", + "integrity": "sha512-Cj+/ZV4S+MKlwfocSJZqe/2UAd/sY8YtlZjbK25VN1nCnrsKrBjfkX29vclwSj1U9aJg4Z9jw/uMjoaKu9ZrpQ==", "dev": true }, "node_modules/@cspell/dict-latex": { @@ -541,9 +528,9 @@ "dev": true }, "node_modules/@cspell/dict-php": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.7.tgz", - "integrity": "sha512-SUCOBfRDDFz1E2jnAZIIuy8BNbCc8i+VkiL9g4HH9tTN6Nlww5Uz2pMqYS6rZQkXuubqsbkbPlsRiuseEnTmYA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.8.tgz", + "integrity": "sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA==", "dev": true }, "node_modules/@cspell/dict-powershell": { @@ -559,12 +546,12 @@ "dev": true }, "node_modules/@cspell/dict-python": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.11.tgz", - "integrity": "sha512-XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.1.tgz", + "integrity": "sha512-9X2jRgyM0cxBoFQRo4Zc8oacyWnXi+0/bMI5FGibZNZV4y/o9UoFEr6agjU260/cXHTjIdkX233nN7eb7dtyRg==", "dev": true, "dependencies": { - "@cspell/dict-data-science": "^1.0.11" + "@cspell/dict-data-science": "^2.0.1" } }, "node_modules/@cspell/dict-r": { @@ -580,9 +567,9 @@ "dev": true }, "node_modules/@cspell/dict-rust": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.3.tgz", - "integrity": "sha512-8DFCzkFQ+2k3fDaezWc/D+0AyiBBiOGYfSDUfrTNU7wpvUvJ6cRcAUshMI/cn2QW/mmxTspRgVlXsE6GUMz00Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.4.tgz", + "integrity": "sha512-v9/LcZknt/Xq7m1jdTWiQEtmkVVKdE1etAfGL2sgcWpZYewEa459HeWndNA0gfzQrpWX9sYay18mt7pqClJEdA==", "dev": true }, "node_modules/@cspell/dict-scala": { @@ -592,9 +579,9 @@ "dev": true }, "node_modules/@cspell/dict-software-terms": { - "version": "3.3.24", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.24.tgz", - "integrity": "sha512-RsLn/vp162c5kEr60dk3eEDyavJ9Kk+8mydLjbLKwuS3scN8h4zKxnN+whHvm5bSu4UanH+fVyf8MhHutN2q0Q==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.4.6.tgz", + "integrity": "sha512-Cap+WL4iM9NgwxdVIa93aDEGKGNm1t+DLJTnjoWkGHXxSBPG8Kcbnlss6mTtwLv9/NYPmQsmJi5qHXruuHx2ow==", "dev": true }, "node_modules/@cspell/dict-sql": { @@ -634,9 +621,9 @@ "dev": true }, "node_modules/@cspell/dynamic-import": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.8.3.tgz", - "integrity": "sha512-qpxGC2hGVfbSaLJkaEu//rqbgAOjYnMlbxD75Fk9ny96sr+ZI1YC0nmUErWlgXSbtjVY/DHCOu26Usweo5iRgA==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.9.0.tgz", + "integrity": "sha512-UYa2Xlf/Bg9b7lUlKn59Z6XhHtE00z5kgzkKCGAdS0W27i2qUZJHW3FfiKfknWLNLzfj7cVUAq2IHjbumbx9ow==", "dev": true, "dependencies": { "import-meta-resolve": "^4.1.0" @@ -646,18 +633,27 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.8.3.tgz", - "integrity": "sha512-y/pL7Zex8iHQ54qDYvg9oCiCgfZ9DAUTOI/VtPFVC+42JqLx6YufYxJS2uAsFlfAXIPiRV8qnnG6BHImD1Ix6g==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.9.0.tgz", + "integrity": "sha512-HE0rkwtJ4/4QuXpJW1r4GIK+jhs2SYK4IACf3EE2mJufOWF4YxgfWwKBgztKE/0RDMJcxyvn/ubLUCnNClNfdg==", "dev": true, "engines": { "node": ">=18" } }, + "node_modules/@cspell/url": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-8.9.0.tgz", + "integrity": "sha512-FaHTEx6OBVKlkX7VgAPofBZ5vIdxNWYalb0uZwJ5FCc/PCMIF5l91DQGQxRMas3qzRACR911kJamPdeK/3qilw==", + "dev": true, + "engines": { + "node": ">=18.0" + } + }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", - "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz", + "integrity": "sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==", "dev": true, "dependencies": { "@types/eslint": "^8.56.5", @@ -672,9 +668,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -688,9 +684,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -704,9 +700,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -720,9 +716,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -736,9 +732,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -752,9 +748,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -768,9 +764,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -784,9 +780,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -800,9 +796,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -816,9 +812,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -832,9 +828,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -848,9 +844,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -864,9 +860,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -880,9 +876,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -896,9 +892,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -912,9 +908,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -928,9 +924,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -944,9 +940,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -960,9 +956,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -976,9 +972,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -992,9 +988,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -1008,9 +1004,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -1024,9 +1020,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -1067,9 +1063,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", + "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -1177,6 +1173,7 @@ "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "peer": true, "dependencies": { @@ -1230,6 +1227,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true, "peer": true }, @@ -1262,58 +1260,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, "node_modules/@microsoft/api-extractor": { "version": "7.43.0", "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.43.0.tgz", @@ -1828,18 +1780,18 @@ } }, "node_modules/@schoero/configs": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-1.0.13.tgz", - "integrity": "sha512-26XHCJfiAav9h/ivfPD2ntO6LN6d1ymTLLJu4xiUz5gHD1QB7kMf8e+PZSrvlFGMWnjIFfifzO4zp5DegrbZJA==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@schoero/configs/-/configs-1.0.15.tgz", + "integrity": "sha512-X3hlrHNcxO9Jzub1NEM2kkcvS3f6ML5y4GdjVt+il4cpk8QrQZ86tcL7Pe5Wu7k2ZvUx0GXikpqu8NYhpm5+Gg==", "dev": true, "dependencies": { "@cspell/dict-bash": "^4.1.3", - "@cspell/dict-companies": "^3.0.32", + "@cspell/dict-companies": "^3.1.2", "@cspell/dict-css": "^4.0.12", "@cspell/dict-de-ch": "^1.2.0", - "@cspell/dict-en_us": "^4.3.19", + "@cspell/dict-en_us": "^4.3.22", "@cspell/dict-fr-fr": "^2.2.2", - "@cspell/dict-fullstack": "^3.1.7", + "@cspell/dict-fullstack": "^3.1.8", "@cspell/dict-html": "^4.0.5", "@cspell/dict-html-symbol-entities": "^4.0.0", "@cspell/dict-it-it": "^3.1.0", @@ -1847,34 +1799,36 @@ "@cspell/dict-markdown": "^2.0.2", "@cspell/dict-node": "^5.0.1", "@cspell/dict-npm": "^5.0.16", - "@cspell/dict-public-licenses": "^2.0.6", - "@cspell/dict-software-terms": "^3.3.23", + "@cspell/dict-public-licenses": "^2.0.7", + "@cspell/dict-software-terms": "^3.4.6", "@cspell/dict-typescript": "^3.1.5", - "@stylistic/eslint-plugin-js": "^2.1.0", - "@stylistic/eslint-plugin-jsx": "^2.1.0", - "@stylistic/eslint-plugin-plus": "^2.1.0", - "@stylistic/eslint-plugin-ts": "^2.1.0", - "cspell-lib": "^8.8.2", + "@stylistic/eslint-plugin-js": "^2.2.2", + "@stylistic/eslint-plugin-jsx": "^2.2.2", + "@stylistic/eslint-plugin-plus": "^2.2.2", + "@stylistic/eslint-plugin-ts": "^2.2.2", + "cspell-lib": "^8.9.0", "eslint-plugin-import": "npm:eslint-plugin-i@2.29.1", "eslint-plugin-import-newlines": "^1.4.0", - "eslint-plugin-jsdoc": "^48.2.5", - "eslint-plugin-jsonc": "^2.15.1", + "eslint-plugin-jsdoc": "^48.2.12", + "eslint-plugin-jsonc": "^2.16.0", "eslint-plugin-markdown": "^5.0.0", - "eslint-plugin-readable-tailwind": "1.5.0", "eslint-plugin-simple-import-sort": "^12.1.0", "eslint-plugin-sort-destructure-keys": "^2.0.0", "eslint-plugin-sort-keys": "^2.3.5", - "eslint-plugin-tailwindcss": "^3.16.0", "eslint-plugin-typescript-sort-keys": "^3.2.0", - "eslint-plugin-unicorn": "^53.0.0", + "eslint-plugin-unicorn": "^54.0.0", "eslint-plugin-unused-imports": "^3.2.0", "eslint-plugin-vitest": "^0.5.4", "eslint-plugin-yml": "^1.14.0", "markdownlint-cli2": "^0.13.0", - "typescript-eslint": "^7.10.0", + "typescript-eslint": "^7.13.1", "vite-tsconfig-paths": "^4.3.2", "vitest-github-actions-reporter": "^0.11.1" }, + "optionalDependencies": { + "eslint-plugin-readable-tailwind": "1.5.2", + "eslint-plugin-tailwindcss": "^3.17.3" + }, "peerDependencies": { "changelogen": "^0.5.5", "cspell": "^8.8.1", @@ -1927,9 +1881,9 @@ } }, "node_modules/@stylistic/eslint-plugin-js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.1.0.tgz", - "integrity": "sha512-gdXUjGNSsnY6nPyqxu6lmDTtVrwCOjun4x8PUn0x04d5ucLI74N3MT1Q0UhdcOR9No3bo5PGDyBgXK+KmD787A==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.2.2.tgz", + "integrity": "sha512-Vj2Q1YHVvJw+ThtOvmk5Yx7wZanVrIBRUTT89horLDb4xdP9GA1um9XOYQC6j67VeUC2gjZQnz5/RVJMzaOhtw==", "dev": true, "dependencies": { "@types/eslint": "^8.56.10", @@ -1945,12 +1899,12 @@ } }, "node_modules/@stylistic/eslint-plugin-jsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.1.0.tgz", - "integrity": "sha512-mMD7S+IndZo2vxmwpHVTCwx2O1VdtE5tmpeNwgaEcXODzWV1WTWpnsc/PECQKIr/mkLPFWiSIqcuYNhQ/3l6AQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.2.2.tgz", + "integrity": "sha512-xfIMdLivoMV1wV+5Tl0PtkLN/oUwjIt7LuIu48vhrZfJ2jCXwjlTGPGSoM7dnLZYD65XjtrHHIFAvPuvvvjlaw==", "dev": true, "dependencies": { - "@stylistic/eslint-plugin-js": "^2.1.0", + "@stylistic/eslint-plugin-js": "^2.2.2", "@types/eslint": "^8.56.10", "estraverse": "^5.3.0", "picomatch": "^4.0.2" @@ -1963,27 +1917,27 @@ } }, "node_modules/@stylistic/eslint-plugin-plus": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.1.0.tgz", - "integrity": "sha512-S5QAlgYXESJaSBFhBSBLZy9o36gXrXQwWSt6QkO+F0SrT9vpV5JF/VKoh+ojO7tHzd8Ckmyouq02TT9Sv2B0zQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.2.2.tgz", + "integrity": "sha512-oeqPs01yAH4ad4bSchGtx8Jf5XTbxRx++A0joNYiOoq3EBTAUHE/ZB7dVv3BhNuCKiwojOQduLkUCXI5UMHoSw==", "dev": true, "dependencies": { "@types/eslint": "^8.56.10", - "@typescript-eslint/utils": "^7.8.0" + "@typescript-eslint/utils": "^7.12.0" }, "peerDependencies": { "eslint": "*" } }, "node_modules/@stylistic/eslint-plugin-ts": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.1.0.tgz", - "integrity": "sha512-2ioFibufHYBALx2TBrU4KXovCkN8qCqcb9yIHc0fyOfTaO5jw4d56WW7YRcF3Zgde6qFyXwAN6z/+w4pnmos1g==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.2.2.tgz", + "integrity": "sha512-n6cYMSWTDDcrQLLxEKIrL/ihQ1lyyq6+gGp0g5VdstBElmImSRsQkCq+g3jRoDJIUo7tGO9lwQtGnuJ7oGB4kg==", "dev": true, "dependencies": { - "@stylistic/eslint-plugin-js": "2.1.0", + "@stylistic/eslint-plugin-js": "2.2.2", "@types/eslint": "^8.56.10", - "@typescript-eslint/utils": "^7.8.0" + "@typescript-eslint/utils": "^7.12.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2036,9 +1990,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "20.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.6.tgz", + "integrity": "sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -2063,16 +2017,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz", - "integrity": "sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz", + "integrity": "sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/type-utils": "7.10.0", - "@typescript-eslint/utils": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/type-utils": "7.13.1", + "@typescript-eslint/utils": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -2249,15 +2203,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz", - "integrity": "sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.1.tgz", + "integrity": "sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/typescript-estree": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/typescript-estree": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "debug": "^4.3.4" }, "engines": { @@ -2277,13 +2231,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz", - "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz", + "integrity": "sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0" + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2294,13 +2248,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz", - "integrity": "sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz", + "integrity": "sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.10.0", - "@typescript-eslint/utils": "7.10.0", + "@typescript-eslint/typescript-estree": "7.13.1", + "@typescript-eslint/utils": "7.13.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -2321,9 +2275,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", - "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.1.tgz", + "integrity": "sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2334,13 +2288,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz", - "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz", + "integrity": "sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2362,15 +2316,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz", + "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/typescript-estree": "7.10.0" + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/typescript-estree": "7.13.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -2384,12 +2338,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz", - "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz", + "integrity": "sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/types": "7.13.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2562,26 +2516,26 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz", - "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", "dev": true, "dependencies": { - "@babel/parser": "^7.24.4", - "@vue/shared": "3.4.27", + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", - "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, "node_modules/@vue/language-core": { @@ -2610,15 +2564,15 @@ } }, "node_modules/@vue/shared": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz", - "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==", "dev": true }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2637,10 +2591,13 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -2685,13 +2642,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "peer": true - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -2726,13 +2676,6 @@ "node": ">=14" } }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "peer": true - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2822,9 +2765,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, "funding": [ { @@ -2841,10 +2784,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "update-browserslist-db": "^1.0.16" }, "bin": { "browserslist": "cli.js" @@ -2881,23 +2824,31 @@ } }, "node_modules/c12": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/c12/-/c12-1.10.0.tgz", - "integrity": "sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/c12/-/c12-1.11.1.tgz", + "integrity": "sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==", "dev": true, "dependencies": { "chokidar": "^3.6.0", - "confbox": "^0.1.3", + "confbox": "^0.1.7", "defu": "^6.1.4", "dotenv": "^16.4.5", - "giget": "^1.2.1", - "jiti": "^1.21.0", - "mlly": "^1.6.1", + "giget": "^1.2.3", + "jiti": "^1.21.6", + "mlly": "^1.7.1", "ohash": "^1.1.3", "pathe": "^1.1.2", "perfect-debounce": "^1.0.0", - "pkg-types": "^1.0.3", - "rc9": "^2.1.1" + "pkg-types": "^1.1.1", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "^0.3.4" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } } }, "node_modules/cac": { @@ -2917,20 +2868,10 @@ "node": ">=6" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001621", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", - "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", + "version": "1.0.30001636", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", + "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", "dev": true, "funding": [ { @@ -3276,22 +3217,22 @@ } }, "node_modules/cspell": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.8.3.tgz", - "integrity": "sha512-JVWI4MNALOuZ+igyJ54C6Iwe8s1ecMCgyGFGId5a0P6wi/V+TFYFhl7QkzIi1Uw4KtXSYrUSlHGUjC2dE0OZ9g==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.9.0.tgz", + "integrity": "sha512-lDYu5p/XU3rqiNjMV46s92yJ7SfVyzAy03OtCJ94fopegZwFLjqZvqoy509ccP/0sHmiv83oTed8LP6Fm3kjpw==", "dev": true, "dependencies": { - "@cspell/cspell-json-reporter": "8.8.3", - "@cspell/cspell-pipe": "8.8.3", - "@cspell/cspell-types": "8.8.3", - "@cspell/dynamic-import": "8.8.3", + "@cspell/cspell-json-reporter": "8.9.0", + "@cspell/cspell-pipe": "8.9.0", + "@cspell/cspell-types": "8.9.0", + "@cspell/dynamic-import": "8.9.0", "chalk": "^5.3.0", "chalk-template": "^1.1.0", "commander": "^12.1.0", - "cspell-gitignore": "8.8.3", - "cspell-glob": "8.8.3", - "cspell-io": "8.8.3", - "cspell-lib": "8.8.3", + "cspell-gitignore": "8.9.0", + "cspell-glob": "8.9.0", + "cspell-io": "8.9.0", + "cspell-lib": "8.9.0", "fast-glob": "^3.3.2", "fast-json-stable-stringify": "^2.1.0", "file-entry-cache": "^8.0.0", @@ -3312,28 +3253,28 @@ } }, "node_modules/cspell-config-lib": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.8.3.tgz", - "integrity": "sha512-61NKZrzTi9OLEEiZBggLQy9nswgR0gd6bKH06xXFQyRfNpAjaPOzOUFhSSfX1MQX+lQF3KtSYcHpppwbpPsL8w==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.9.0.tgz", + "integrity": "sha512-1FQketvqo6IktnyC2ishEIzfqSX2DNhsfpb0MIG/nNeG5KvbjSeozOZpfyrALVqhPUJZVWfMP3+N0/hj3AzH+g==", "dev": true, "dependencies": { - "@cspell/cspell-types": "8.8.3", + "@cspell/cspell-types": "8.9.0", "comment-json": "^4.2.3", - "yaml": "^2.4.2" + "yaml": "^2.4.5" }, "engines": { "node": ">=18" } }, "node_modules/cspell-dictionary": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.8.3.tgz", - "integrity": "sha512-g2G3uh8JbuJKAYFdFQENcbTIrK9SJRXBiQ/t+ch+9I/t5HmuGOVe+wxKEM/0c9M2CRLpzJShBvttH9rnw4Yqfg==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.9.0.tgz", + "integrity": "sha512-IsFyWsn9P979xoJ0PgWHdyjxVcDYe5nVmHMgJRecQ5LLhl2gFkOmsu+aYIh2qlHCLmcbzH31Me2x7Fd+jA6AXw==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.8.3", - "@cspell/cspell-types": "8.8.3", - "cspell-trie-lib": "8.8.3", + "@cspell/cspell-pipe": "8.9.0", + "@cspell/cspell-types": "8.9.0", + "cspell-trie-lib": "8.9.0", "fast-equals": "^5.0.1", "gensequence": "^7.0.0" }, @@ -3342,12 +3283,12 @@ } }, "node_modules/cspell-gitignore": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.8.3.tgz", - "integrity": "sha512-+IeVPNnUJOj+D9rc4elbK4DK3p9qxvF/2BMtFsE7a75egeJjAnlzVGzqH2FVMsDj6dxe5bjc8/S4Nhw6B14xTQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.9.0.tgz", + "integrity": "sha512-/iw+iqFLgySqW7xJ+kDHtC0mRjajDM1/jvnu4pUoxU9cRanCEqg2IAA/BET+n3ZEs/etsl8P4MB0lgWE98Z15g==", "dev": true, "dependencies": { - "cspell-glob": "8.8.3", + "cspell-glob": "8.9.0", "find-up-simple": "^1.0.0" }, "bin": { @@ -3358,9 +3299,9 @@ } }, "node_modules/cspell-glob": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.8.3.tgz", - "integrity": "sha512-9c4Nw/bIsjKSuBuRrLa1sWtIzbXXvja+FVbUOE9c2IiZfh6K1I+UssiXTbRTMg6qgTdkfT4o3KOcFN0ZcbmCUQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.9.0.tgz", + "integrity": "sha512-j96SMMzT5Nz0nKCUECLkoyPEEms4hXKm/S7Vj80A356TFglTJD/yYiMKfWUamCVPm8UYODCz7W0s/liR7gSBSw==", "dev": true, "dependencies": { "micromatch": "^4.0.7" @@ -3370,13 +3311,13 @@ } }, "node_modules/cspell-grammar": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.8.3.tgz", - "integrity": "sha512-3RP7xQ/6IiIjbWQDuE+4b0ERKkSWGMY75bd0oEsh5HcFhhOYphmcpxLxRRM/yxYQaYgdvq0QIcwrpanx86KJ7A==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.9.0.tgz", + "integrity": "sha512-oZEOE64lLc0clLGOJeqc5d1Yzc1fUtXQAAeLIrS+uoVM7nA1SqgIEv1JBjp3R++8jQKLjS5n7v16VW5A/yk67w==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.8.3", - "@cspell/cspell-types": "8.8.3" + "@cspell/cspell-pipe": "8.9.0", + "@cspell/cspell-types": "8.9.0" }, "bin": { "cspell-grammar": "bin.mjs" @@ -3386,37 +3327,39 @@ } }, "node_modules/cspell-io": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.8.3.tgz", - "integrity": "sha512-vO7BUa6i7tjmQr+9dw/Ic7tm4ECnSUlbuMv0zJs/SIrO9AcID2pCWPeZNZEGAmeutrEOi2iThZ/uS33aCuv7Jw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.9.0.tgz", + "integrity": "sha512-8KHERgqlg8KKpn04Owg2VY1Di2dSiwV/v63bUFxsGb8ORGIQ1VcydxtANwWuugUrZvtVrSFsbuU2fK/LRmAnoQ==", "dev": true, "dependencies": { - "@cspell/cspell-service-bus": "8.8.3" + "@cspell/cspell-service-bus": "8.9.0", + "@cspell/url": "8.9.0" }, "engines": { "node": ">=18" } }, "node_modules/cspell-lib": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.8.3.tgz", - "integrity": "sha512-IqtTKBPug5Jzt9T8f/b6qGAbARRR5tpQkLjzsrfLzxM68ery23wEPDtmWToEyc9EslulZGLe0T78XuEU9AMF+g==", - "dev": true, - "dependencies": { - "@cspell/cspell-bundled-dicts": "8.8.3", - "@cspell/cspell-pipe": "8.8.3", - "@cspell/cspell-resolver": "8.8.3", - "@cspell/cspell-types": "8.8.3", - "@cspell/dynamic-import": "8.8.3", - "@cspell/strong-weak-map": "8.8.3", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.9.0.tgz", + "integrity": "sha512-k347TQs1QRUyyHWHYQxPJddApos/irFousr9W/M/jEkYTTKzMMfaXK8m20kBSnlJ+BOUMa+f8d+KPEw6QLwtJQ==", + "dev": true, + "dependencies": { + "@cspell/cspell-bundled-dicts": "8.9.0", + "@cspell/cspell-pipe": "8.9.0", + "@cspell/cspell-resolver": "8.9.0", + "@cspell/cspell-types": "8.9.0", + "@cspell/dynamic-import": "8.9.0", + "@cspell/strong-weak-map": "8.9.0", + "@cspell/url": "8.9.0", "clear-module": "^4.1.2", "comment-json": "^4.2.3", - "cspell-config-lib": "8.8.3", - "cspell-dictionary": "8.8.3", - "cspell-glob": "8.8.3", - "cspell-grammar": "8.8.3", - "cspell-io": "8.8.3", - "cspell-trie-lib": "8.8.3", + "cspell-config-lib": "8.9.0", + "cspell-dictionary": "8.9.0", + "cspell-glob": "8.9.0", + "cspell-grammar": "8.9.0", + "cspell-io": "8.9.0", + "cspell-trie-lib": "8.9.0", "env-paths": "^3.0.0", "fast-equals": "^5.0.1", "gensequence": "^7.0.0", @@ -3431,32 +3374,19 @@ } }, "node_modules/cspell-trie-lib": { - "version": "8.8.3", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.8.3.tgz", - "integrity": "sha512-0zrkrhrFLVajwo6++XD9a+r0Olml7UjPgbztjPKbXIJrZCradBF5rvt3wq5mPpsjq2+Dz0z6K5muZpbO+gqapQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.9.0.tgz", + "integrity": "sha512-fQNQyFoeZA7b66jvhGaUYPzsS6gmPRJa6RcEpw2onP41S+IyLO6egubUu/qq8Hn1ebgJe/0Pc4fzkgv6MfV3tQ==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "8.8.3", - "@cspell/cspell-types": "8.8.3", + "@cspell/cspell-pipe": "8.9.0", + "@cspell/cspell-types": "8.9.0", "gensequence": "^7.0.0" }, "engines": { "node": ">=18" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "peer": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", @@ -3464,9 +3394,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -3481,9 +3411,9 @@ } }, "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, "dependencies": { "type-detect": "^4.0.0" @@ -3607,13 +3537,6 @@ "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", "dev": true }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "peer": true - }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -3635,13 +3558,6 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "peer": true - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -3673,9 +3589,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.783", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz", - "integrity": "sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==", + "version": "1.4.806", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.806.tgz", + "integrity": "sha512-nkoEX2QIB8kwCOtvtgwhXWy2IHVcOLQZu9Qo36uaGB835mdX/h8uLRlosL6QIhLVUnAiicXRW00PwaPZC74Nrg==", "dev": true }, "node_modules/emoji-regex": { @@ -3718,9 +3634,9 @@ } }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -3730,29 +3646,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { @@ -3833,9 +3749,9 @@ } }, "node_modules/eslint-compat-utils": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz", - "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", "dev": true, "dependencies": { "semver": "^7.5.4" @@ -3957,18 +3873,18 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.2.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.6.tgz", - "integrity": "sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g==", + "version": "48.2.12", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.12.tgz", + "integrity": "sha512-sO9sKkJx5ovWoRk9hV0YiNzXQ4Z6j27CqE/po2E3wddZVuy9wvKPSTiIhpxMTrP/qURvKayJIDB2+o9kyCW1Fw==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.43.0", + "@es-joy/jsdoccomment": "~0.43.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.6.1", + "semver": "^7.6.2", "spdx-expression-parse": "^4.0.0" }, "engines": { @@ -4046,19 +3962,6 @@ "eslint": ">=8" } }, - "node_modules/eslint-plugin-readable-tailwind": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-readable-tailwind/-/eslint-plugin-readable-tailwind-1.5.0.tgz", - "integrity": "sha512-T8r/tqAz89sVgHRRy/zNymOIe5AynUuBqgGpJGV4QOa6bsBFywOuROr4S/dDPtlPWPdO7MhBzweVzHkK7vnJvA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "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.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.0.tgz", @@ -4104,22 +4007,6 @@ "natural-compare": "1.4.0" } }, - "node_modules/eslint-plugin-tailwindcss": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.17.0.tgz", - "integrity": "sha512-Ofl7tNh57a3W8BKHstKZSkD2gSCEkw54ycwZ958IK9zUR8TiNYdp8b0WGoLWLeyOAbeF1VPVJFBnlkJeIM2kVg==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.5", - "postcss": "^8.4.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "tailwindcss": "^3.4.0" - } - }, "node_modules/eslint-plugin-typescript-sort-keys": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-typescript-sort-keys/-/eslint-plugin-typescript-sort-keys-3.2.0.tgz", @@ -4140,9 +4027,9 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "53.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-53.0.0.tgz", - "integrity": "sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==", + "version": "54.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-54.0.0.tgz", + "integrity": "sha512-XxYLRiYtAWiAjPv6z4JREby1TAE2byBC7wlh0V4vWDCpccOSU1KovWV//jqPXF6bq3WKxqX9rdjoRQ1EhdmNdQ==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.24.5", @@ -4520,12 +4407,12 @@ } }, "node_modules/espree": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", - "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, "dependencies": { - "acorn": "^8.11.3", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.0.0" }, @@ -4746,9 +4633,9 @@ "dev": true }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", @@ -4903,15 +4790,16 @@ } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", + "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { @@ -4936,6 +4824,15 @@ "node": ">= 6" } }, + "node_modules/glob/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/global-directory": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", @@ -5388,9 +5285,9 @@ "dev": true }, "node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -5406,9 +5303,9 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -5593,16 +5490,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -5977,12 +5864,12 @@ } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" } }, "node_modules/minizlib": { @@ -6023,14 +5910,14 @@ } }, "node_modules/mlly": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz", - "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", "dev": true, "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", - "pkg-types": "^1.1.0", + "pkg-types": "^1.1.1", "ufo": "^1.5.3" } }, @@ -6055,18 +5942,6 @@ "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", "dev": true }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "peer": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -6185,26 +6060,6 @@ "node": "^14.16.0 || >=16.10.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/ofetch": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.3.4.tgz", @@ -6324,6 +6179,12 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/parent-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", @@ -6476,26 +6337,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/pkg-types": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", @@ -6544,134 +6385,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "peer": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "peer": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "peer": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", - "dev": true, - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "peer": true - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -6750,16 +6463,6 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "peer": true, - "dependencies": { - "pify": "^2.3.0" - } - }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -6974,6 +6677,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "peer": true, "dependencies": { @@ -7001,6 +6705,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "peer": true, "dependencies": { @@ -7539,39 +7244,6 @@ "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", "dev": true }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -7611,57 +7283,6 @@ "node": ">=12.20" } }, - "node_modules/tailwindcss": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", - "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", - "dev": true, - "peer": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", @@ -7679,15 +7300,6 @@ "node": ">=10" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -7695,29 +7307,6 @@ "dev": true, "peer": true }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "peer": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "peer": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tinybench": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", @@ -7804,17 +7393,10 @@ "typescript": ">=4.2.0" } }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "peer": true - }, "node_modules/ts-json-schema-generator": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-2.2.0.tgz", - "integrity": "sha512-Fo9pcSb6PIvCSapoJR4VJlcCFC67d7yBWqbctNU6ShfXSMHItkjiLl3e9KGA1bu2S3jVYOFjUdPfWtfRdnMorA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-2.3.0.tgz", + "integrity": "sha512-t4lBQAwZc0sOJq9LJt3NgbznIcslVnm0JeEMFq8qIRklpMRY8jlYD0YmnRWbqBKANxkby91P1XanSSlSOFpUmg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.15", @@ -7834,9 +7416,9 @@ } }, "node_modules/tsconfck": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.0.3.tgz", - "integrity": "sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.0.tgz", + "integrity": "sha512-CMjc5zMnyAjcS9sPLytrbFmj89st2g+JYtY/c02ug4Q+CZaAtCgbyviI0n1YvjZE/pzoc6FbNsINS13DOL1B9w==", "dev": true, "bin": { "tsconfck": "bin/tsconfck.js" @@ -7854,9 +7436,9 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, "node_modules/tsutils": { @@ -7937,14 +7519,14 @@ } }, "node_modules/typescript-eslint": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.10.0.tgz", - "integrity": "sha512-thO8nyqptXdfWHQrMJJiJyftpW8aLmwRNs11xA8pSrXneoclFPstQZqXvDWuH1WNL4CHffqHvYUeCHTit6yfhQ==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.13.1.tgz", + "integrity": "sha512-pvLEuRs8iS9s3Cnp/Wt//hpK8nKc8hVa3cLljHqzaJJQYP8oys8GUyIFqtlev+2lT/fqMPcyQko+HJ6iYK3nFA==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "7.10.0", - "@typescript-eslint/parser": "7.10.0", - "@typescript-eslint/utils": "7.10.0" + "@typescript-eslint/eslint-plugin": "7.13.1", + "@typescript-eslint/parser": "7.13.1", + "@typescript-eslint/utils": "7.13.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -8074,13 +7656,6 @@ "punycode": "^2.1.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "peer": true - }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -8120,12 +7695,12 @@ } }, "node_modules/vite": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", - "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", + "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", "dev": true, "dependencies": { - "esbuild": "^0.20.1", + "esbuild": "^0.21.3", "postcss": "^8.4.38", "rollup": "^4.13.0" }, @@ -8577,9 +8152,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", - "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", "dev": true, "bin": { "yaml": "bin.mjs" diff --git a/package.json b/package.json index f2607dc0..a652816d 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "0.2.8-beta.7", + "version": "0.2.9", "type": "module", "name": "unwritten", "description": "unwritten is a cli tool that auto generates documentation from your JavaScript or TypeScript project by utilizing TSDoc or JSDoc comments.", @@ -68,17 +68,17 @@ "typescript": "^5.4.5" }, "devDependencies": { - "@schoero/configs": "^1.0.13", + "@schoero/configs": "^1.0.15", "@types/minimatch": "^5.1.2", - "@types/node": "^20.12.12", + "@types/node": "^20.14.6", "changelogen": "^0.5.5", - "cspell": "^8.8.3", + "cspell": "^8.9.0", "eslint-plugin-jsonc": "^2.16.0", "eslint-plugin-sort-exports": "^0.9.1", "rollup-plugin-preserve-shebang": "^1.0.1", "tinyhighlight": "^0.3.2", - "ts-json-schema-generator": "^2.2.0", - "vite": "^5.2.11", + "ts-json-schema-generator": "^2.3.0", + "vite": "^5.3.1", "vite-plugin-dts": "^3.9.1", "vite-plugin-no-bundle": "^4.0.0", "vitest": "^1.6.0" diff --git a/schemas/renderer/config.json b/schemas/renderer/config.json index 399ae05a..99319ee6 100644 --- a/schemas/renderer/config.json +++ b/schemas/renderer/config.json @@ -61,18 +61,44 @@ "type": "array" }, "ExportableEntityKinds": { - "enum": [ - "ClassEntity", - "EnumEntity", - "ExportAssignmentEntity", - "FunctionEntity", - "InterfaceEntity", - "ModuleEntity", - "NamespaceEntity", - "TypeAliasEntity", - "VariableEntity" - ], - "type": "string" + "anyOf": [ + { + "const": "ClassEntity", + "type": "string" + }, + { + "const": "EnumEntity", + "type": "string" + }, + { + "const": "ExportAssignmentEntity", + "type": "string" + }, + { + "const": "FunctionEntity", + "type": "string" + }, + { + "const": "InterfaceEntity", + "type": "string" + }, + { + "const": "ModuleEntity", + "type": "string" + }, + { + "const": "NamespaceEntity", + "type": "string" + }, + { + "const": "TypeAliasEntity", + "type": "string" + }, + { + "const": "VariableEntity", + "type": "string" + } + ] }, "ExternalTypes": { "additionalProperties": { @@ -678,16 +704,11 @@ "type": "boolean" }, "sectionSeparator": { - "anyOf": [ - { - "type": "string" - }, - { - "const": false, - "type": "boolean" - } + "description": "Defines the string that should be used to separate sections in the rendered output.", + "enum": [ + false ], - "description": "Defines the string that should be used to separate sections in the rendered output." + "type": "boolean" }, "stringLiteralEncapsulation": { "anyOf": [ From 1808da5b01e85716345fe7f2b298e9528e7b220a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:38:04 +0200 Subject: [PATCH 41/42] style: eslint fixes --- src/compiler/shared.ts | 2 +- src/interpreter/ast/entities/source-file.ts | 14 +++--- src/interpreter/typeguards/types.ts | 6 +-- src/renderer/markup/html/index.ts | 38 +++++++------- src/renderer/markup/markdown/ast/multiline.ts | 50 +++++++++---------- src/renderer/markup/markdown/index.ts | 48 +++++++++--------- src/renderer/markup/utils/renderer.ts | 14 +++--- src/utils/exclude.ts | 24 ++++----- src/utils/general.ts | 6 +-- 9 files changed, 101 insertions(+), 101 deletions(-) diff --git a/src/compiler/shared.ts b/src/compiler/shared.ts index 5748394b..7cc4448f 100644 --- a/src/compiler/shared.ts +++ b/src/compiler/shared.ts @@ -35,7 +35,7 @@ export function reportCompilerDiagnostics(ctx: DefaultContext, diagnostics: read diagnostics.filter( diagnostic => diagnostic.category === ts.DiagnosticCategory.Error || - diagnostic.category === ts.DiagnosticCategory.Warning + diagnostic.category === ts.DiagnosticCategory.Warning ).forEach(diagnostic => { const color = diagnostic.category === ts.DiagnosticCategory.Error diff --git a/src/interpreter/ast/entities/source-file.ts b/src/interpreter/ast/entities/source-file.ts index 99d26323..772cd1b4 100644 --- a/src/interpreter/ast/entities/source-file.ts +++ b/src/interpreter/ast/entities/source-file.ts @@ -22,16 +22,16 @@ export const createSourceFileEntity = (ctx: InterpreterContext, symbol: Symbol): const exports = ctx.checker.getExportsOfModule(symbol) .reduce((parsedSymbols, exportedSymbol) => { - const parsedSymbol = interpretSymbol(ctx, exportedSymbol); + const parsedSymbol = interpretSymbol(ctx, exportedSymbol); - // Don't document unresolved entities - if(isExportableEntity(parsedSymbol)){ - parsedSymbols.push(parsedSymbol); - } + // don't document unresolved entities + if(isExportableEntity(parsedSymbol)){ + parsedSymbols.push(parsedSymbol); + } - return parsedSymbols; + return parsedSymbols; - }, []); + }, []); const symbolId = getSymbolId(ctx, symbol); const path = declaration.getSourceFile().fileName; diff --git a/src/interpreter/typeguards/types.ts b/src/interpreter/typeguards/types.ts index e85753fe..46085e6e 100644 --- a/src/interpreter/typeguards/types.ts +++ b/src/interpreter/typeguards/types.ts @@ -94,8 +94,8 @@ export function isFunctionLikeType(ctx: InterpreterContext, type: Type): boolean const { ts } = ctx.dependencies; return isObjectType(ctx, type) && type.getCallSignatures().length > 0 && - type.getConstructSignatures().length === 0 && - type.getProperties().length === 0; + type.getConstructSignatures().length === 0 && + type.getProperties().length === 0; } export function isGenericType(ctx: InterpreterContext, type: Type): type is GenericType { @@ -114,7 +114,7 @@ export function isInstanceType(ctx: InterpreterContext, type: Type): type is Typ const { ts } = ctx.dependencies; return isObjectType(ctx, type) && (type.objectFlags & ts.ObjectFlags.Reference) !== 0 && ((type.objectFlags & ts.ObjectFlags.Instantiated) !== 0 || - (type.objectFlags & ts.ObjectFlags.InstantiationExpressionType) !== 0); + (type.objectFlags & ts.ObjectFlags.InstantiationExpressionType) !== 0); } export function isInterfaceType(ctx: InterpreterContext, type: Type): type is InterfaceType { diff --git a/src/renderer/markup/html/index.ts b/src/renderer/markup/html/index.ts index bd6f2a83..989c86b0 100644 --- a/src/renderer/markup/html/index.ts +++ b/src/renderer/markup/html/index.ts @@ -140,31 +140,31 @@ const htmlRenderer: HTMLRenderer = { }, []) .reduce((files, convertedSourceFileEntity) => { - // Reset context - ctx.nesting = 1; - ctx.indentation = 0; + // reset context + ctx.nesting = 1; + ctx.indentation = 0; - setCurrentSourceFile(ctx, convertedSourceFileEntity); + setCurrentSourceFile(ctx, convertedSourceFileEntity); - const tableOfContents = renderConfig.renderTableOfContents && - createSectionNode("table-of-contents", convertedSourceFileEntity.tableOfContents); - const documentation = createSectionNode("documentation", ...convertedSourceFileEntity.documentation); + const tableOfContents = renderConfig.renderTableOfContents && + createSectionNode("table-of-contents", convertedSourceFileEntity.tableOfContents); + const documentation = createSectionNode("documentation", ...convertedSourceFileEntity.documentation); - const ast = createTitleNode( - convertedSourceFileEntity.title, - convertedSourceFileEntity.titleAnchor, - tableOfContents, - documentation - ); + const ast = createTitleNode( + convertedSourceFileEntity.title, + convertedSourceFileEntity.titleAnchor, + tableOfContents, + documentation + ); - const renderedNewLine = renderNewLine(ctx); - const renderedContent = renderNode(ctx, ast); - const filePath = ctx.currentFile.dst; + const renderedNewLine = renderNewLine(ctx); + const renderedContent = renderNode(ctx, ast); + const filePath = ctx.currentFile.dst; - files[filePath] = `${renderedContent}${renderedNewLine}`; - return files; + files[filePath] = `${renderedContent}${renderedNewLine}`; + return files; - }, {}); + }, {}); }) diff --git a/src/renderer/markup/markdown/ast/multiline.ts b/src/renderer/markup/markdown/ast/multiline.ts index 5540dfd2..608e4c63 100644 --- a/src/renderer/markup/markdown/ast/multiline.ts +++ b/src/renderer/markup/markdown/ast/multiline.ts @@ -20,37 +20,37 @@ export function renderMultilineArray(ctx: MarkdownRenderContext, children: ASTNo .filter(child => child !== "") .reduce((acc, child) => { - const renderedNode = renderNode(ctx, child); - - if(renderedNode === ""){ - return acc; - } - - // Remove empty line for sibling list nodes - // const renderedNodeWithoutSiblingEmptyLine = isListNode(child) && - // index !== 0 && children[index - 1] && - // isListNode(children[index - 1]) && - // renderedNode.startsWith(renderedEmptyLine + renderedNewLine) - // ? renderedNode.slice(renderedEmptyLine.length) - // : renderedNode; - - // Remove empty line if previously rendered node ends with an empty line and the current node starts with an empty line - const renderedNodeWithoutDoubleEmptyLines = acc.at(-1)?.endsWith(renderedNewLine + renderedEmptyLine) && - startsWithEmptyLine(ctx, renderedNode) - ? renderedNode.slice((renderedEmptyLine + renderedNewLine).length) - : renderedNode; - - // Render indentation for all children except empty lines - const renderedNodeWithIndentation = + const renderedNode = renderNode(ctx, child); + + if(renderedNode === ""){ + return acc; + } + + // remove empty line for sibling list nodes + // const renderedNodeWithoutSiblingEmptyLine = isListNode(child) && + // index !== 0 && children[index - 1] && + // isListNode(children[index - 1]) && + // renderedNode.startsWith(renderedEmptyLine + renderedNewLine) + // ? renderedNode.slice(renderedEmptyLine.length) + // : renderedNode; + + // Remove empty line if previously rendered node ends with an empty line and the current node starts with an empty line + const renderedNodeWithoutDoubleEmptyLines = acc.at(-1)?.endsWith(renderedNewLine + renderedEmptyLine) && + startsWithEmptyLine(ctx, renderedNode) + ? renderedNode.slice((renderedEmptyLine + renderedNewLine).length) + : renderedNode; + + // render indentation for all children except empty lines + const renderedNodeWithIndentation = startsWithEmptyLine(ctx, renderedNodeWithoutDoubleEmptyLines) ? renderedNodeWithoutDoubleEmptyLines : renderWithIndentation(ctx, renderedNodeWithoutDoubleEmptyLines); - acc.push(renderedNodeWithIndentation); + acc.push(renderedNodeWithIndentation); - return acc; + return acc; - }, []); + }, []); const joinedReturnValue = returnValue.join(renderedNewLine); diff --git a/src/renderer/markup/markdown/index.ts b/src/renderer/markup/markdown/index.ts index 5324b8dd..1678c55f 100644 --- a/src/renderer/markup/markdown/index.ts +++ b/src/renderer/markup/markdown/index.ts @@ -148,39 +148,39 @@ const markdownRenderer: MarkdownRenderer = { }, []) .reduce((files, convertedSourceFileEntity) => { - // Reset context - ctx.nesting = 1; - ctx.indentation = 0; + // reset context + ctx.nesting = 1; + ctx.indentation = 0; - setCurrentSourceFile(ctx, convertedSourceFileEntity); + setCurrentSourceFile(ctx, convertedSourceFileEntity); - const tableOfContents = renderConfig.renderTableOfContents && - createSectionNode("table-of-contents", convertedSourceFileEntity.tableOfContents); - const documentation = createSectionNode("documentation", ...convertedSourceFileEntity.documentation); + const tableOfContents = renderConfig.renderTableOfContents && + createSectionNode("table-of-contents", convertedSourceFileEntity.tableOfContents); + const documentation = createSectionNode("documentation", ...convertedSourceFileEntity.documentation); - const ast = createTitleNode( - convertedSourceFileEntity.title, - convertedSourceFileEntity.titleAnchor, - tableOfContents, - documentation - ); + const ast = createTitleNode( + convertedSourceFileEntity.title, + convertedSourceFileEntity.titleAnchor, + tableOfContents, + documentation + ); - const renderedContent = renderNode(ctx, ast); + const renderedContent = renderNode(ctx, ast); - const renderedContendWithoutTrailingEmptyLines = renderedContent.endsWith(renderedNewLine + renderedEmptyLine) - ? renderedContent.slice(0, -(renderedNewLine.length + renderedEmptyLine.length)) - : renderedContent; + const renderedContendWithoutTrailingEmptyLines = renderedContent.endsWith(renderedNewLine + renderedEmptyLine) + ? renderedContent.slice(0, -(renderedNewLine.length + renderedEmptyLine.length)) + : renderedContent; - const renderedContentWithTrailingNewLine = renderedContendWithoutTrailingEmptyLines.endsWith(renderedNewLine) - ? renderedContendWithoutTrailingEmptyLines - : `${renderedContendWithoutTrailingEmptyLines}${renderedNewLine}`; + const renderedContentWithTrailingNewLine = renderedContendWithoutTrailingEmptyLines.endsWith(renderedNewLine) + ? renderedContendWithoutTrailingEmptyLines + : `${renderedContendWithoutTrailingEmptyLines}${renderedNewLine}`; - const filePath = ctx.currentFile.dst; + const filePath = ctx.currentFile.dst; - files[filePath] = renderedContentWithTrailingNewLine; - return files; + files[filePath] = renderedContentWithTrailingNewLine; + return files; - }, {}); + }, {}); }) diff --git a/src/renderer/markup/utils/renderer.ts b/src/renderer/markup/utils/renderer.ts index 1946c590..20d5e85e 100644 --- a/src/renderer/markup/utils/renderer.ts +++ b/src/renderer/markup/utils/renderer.ts @@ -133,11 +133,11 @@ export function spaceBetween(...nodes: ASTNode[]) { return nodes .filter(node => !!node) .reduce((acc, node, index) => { - if(index > 0){ - acc.push(" ", node); - } else { - acc.push(node); - } - return acc; - }, []); + if(index > 0){ + acc.push(" ", node); + } else { + acc.push(node); + } + return acc; + }, []); } diff --git a/src/utils/exclude.ts b/src/utils/exclude.ts index 15f21ca2..37f4e538 100644 --- a/src/utils/exclude.ts +++ b/src/utils/exclude.ts @@ -40,18 +40,18 @@ export function isExcluded(path: string, name: string = "*", excludedPaths: Inte const excludedFromName = normalizedExcludedNames .reduce((excludedFromPreviousName, excludedName) => { - const nameIsInverted = (excludedName.match(/^!+/) ?? [""])[0].length % 2 !== 0; - const nameWithoutInverts = excludedName.replace(/^!+/, ""); - - if(nameWithoutInverts === "*"){ - return true; - } else if(nameWithoutInverts === name){ - return !nameIsInverted; - } else { - return excludedFromPreviousName; - } - - }, undefined); + const nameIsInverted = (excludedName.match(/^!+/) ?? [""])[0].length % 2 !== 0; + const nameWithoutInverts = excludedName.replace(/^!+/, ""); + + if(nameWithoutInverts === "*"){ + return true; + } else if(nameWithoutInverts === name){ + return !nameIsInverted; + } else { + return excludedFromPreviousName; + } + + }, undefined); if(excludedFromName === undefined){ return excludedFromPreviousFile; diff --git a/src/utils/general.ts b/src/utils/general.ts index 15bf643f..550e7d1c 100644 --- a/src/utils/general.ts +++ b/src/utils/general.ts @@ -24,8 +24,8 @@ export function sortKeys(_: string, value: any) { return Object.keys(value) .sort() .reduce<{ [key: string]: any; }>((sorted, key) => { - sorted[key] = value[key]; - return sorted; - }, {}); + sorted[key] = value[key]; + return sorted; + }, {}); } From bf78a1c23e5a3a79305c31a3bfd83e400a9276bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Sch=C3=B6nb=C3=A4chler?= <42278642+schoero@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:40:56 +0200 Subject: [PATCH 42/42] chore: correct version number --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19857c62..af79c2d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "unwritten", - "version": "0.2.9", + "version": "0.2.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "unwritten", - "version": "0.2.9", + "version": "0.2.8", "license": "MIT", "dependencies": { "cac": "^6.7.14", diff --git a/package.json b/package.json index a652816d..e8fbba91 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "0.2.9", + "version": "0.2.8", "type": "module", "name": "unwritten", "description": "unwritten is a cli tool that auto generates documentation from your JavaScript or TypeScript project by utilizing TSDoc or JSDoc comments.",