diff --git a/package-lock.json b/package-lock.json
index db09f9241..894c82f64 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,14 +112,14 @@
"trilium": "src/main.js"
},
"devDependencies": {
- "@electron-forge/cli": "7.6.1",
- "@electron-forge/maker-deb": "7.6.1",
- "@electron-forge/maker-dmg": "7.6.1",
- "@electron-forge/maker-flatpak": "7.6.1",
- "@electron-forge/maker-rpm": "7.6.1",
- "@electron-forge/maker-squirrel": "7.6.1",
- "@electron-forge/maker-zip": "7.6.1",
- "@electron-forge/plugin-auto-unpack-natives": "7.6.1",
+ "@electron-forge/cli": "7.7.0",
+ "@electron-forge/maker-deb": "7.7.0",
+ "@electron-forge/maker-dmg": "7.7.0",
+ "@electron-forge/maker-flatpak": "7.7.0",
+ "@electron-forge/maker-rpm": "7.7.0",
+ "@electron-forge/maker-squirrel": "7.7.0",
+ "@electron-forge/maker-zip": "7.7.0",
+ "@electron-forge/plugin-auto-unpack-natives": "7.7.0",
"@electron/rebuild": "3.7.1",
"@playwright/test": "1.50.1",
"@types/archiver": "6.0.3",
@@ -157,7 +157,7 @@
"@types/ws": "8.5.14",
"@types/xml2js": "0.4.14",
"@types/yargs": "17.0.33",
- "@vitest/coverage-v8": "3.0.5",
+ "@vitest/coverage-v8": "3.0.6",
"cross-env": "7.0.3",
"electron": "34.2.0",
"esm": "3.2.25",
@@ -169,10 +169,10 @@
"rimraf": "6.0.1",
"swagger-jsdoc": "6.2.8",
"tslib": "2.8.1",
- "tsx": "4.19.2",
+ "tsx": "4.19.3",
"typedoc": "0.27.7",
"typescript": "5.7.3",
- "vitest": "3.0.5",
+ "vitest": "3.0.6",
"webpack": "5.98.0",
"webpack-cli": "6.0.1",
"webpack-dev-middleware": "7.4.2"
@@ -533,9 +533,9 @@
}
},
"node_modules/@electron-forge/cli": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.6.1.tgz",
- "integrity": "sha512-Z9OwK5cAVDOj7MWWt9Gw0/4OJO/db+rshLSXg0I+ySv4xrJmZK1w6QEeOrm7eHjuAqKA+gzIaHsRsT0klCL2lg==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.7.0.tgz",
+ "integrity": "sha512-QfnjghmlHMb7dyArR5cbPA+MP9ff/ulWZi6R/a5MkHlKyhrysRfjzDtZDsmkEv9mGQgRwylssgXrZrKHGlxFkw==",
"dev": true,
"funding": [
{
@@ -549,11 +549,12 @@
],
"license": "MIT",
"dependencies": {
- "@electron-forge/core": "7.6.1",
- "@electron-forge/shared-types": "7.6.1",
+ "@electron-forge/core": "7.7.0",
+ "@electron-forge/core-utils": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0",
"@electron/get": "^3.0.0",
"chalk": "^4.0.0",
- "commander": "^4.1.1",
+ "commander": "^11.1.0",
"debug": "^4.3.1",
"fs-extra": "^10.0.0",
"listr2": "^7.0.2",
@@ -597,9 +598,9 @@
}
},
"node_modules/@electron-forge/core": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.6.1.tgz",
- "integrity": "sha512-gODx2GcBl6Y6ls1DeBidhKC0nmI2/xfx89WcSEDa5M3NKm/bBQo1EPjpwG6F+2r4e8KDkY/KrRbIli+wL1zQ7w==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.7.0.tgz",
+ "integrity": "sha512-BWhg1Zw1bhpDuZowGH3lXDiL9zZBsYFNjtqyMqmkjcEm5xf9Dzs8mpRpNjtkpf3jit3LB4PNGMLj3c8ix0h4vQ==",
"dev": true,
"funding": [
{
@@ -613,28 +614,28 @@
],
"license": "MIT",
"dependencies": {
- "@electron-forge/core-utils": "7.6.1",
- "@electron-forge/maker-base": "7.6.1",
- "@electron-forge/plugin-base": "7.6.1",
- "@electron-forge/publisher-base": "7.6.1",
- "@electron-forge/shared-types": "7.6.1",
- "@electron-forge/template-base": "7.6.1",
- "@electron-forge/template-vite": "7.6.1",
- "@electron-forge/template-vite-typescript": "7.6.1",
- "@electron-forge/template-webpack": "7.6.1",
- "@electron-forge/template-webpack-typescript": "7.6.1",
- "@electron-forge/tracer": "7.6.1",
+ "@electron-forge/core-utils": "7.7.0",
+ "@electron-forge/maker-base": "7.7.0",
+ "@electron-forge/plugin-base": "7.7.0",
+ "@electron-forge/publisher-base": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0",
+ "@electron-forge/template-base": "7.7.0",
+ "@electron-forge/template-vite": "7.7.0",
+ "@electron-forge/template-vite-typescript": "7.7.0",
+ "@electron-forge/template-webpack": "7.7.0",
+ "@electron-forge/template-webpack-typescript": "7.7.0",
+ "@electron-forge/tracer": "7.7.0",
"@electron/get": "^3.0.0",
"@electron/packager": "^18.3.5",
"@electron/rebuild": "^3.7.0",
"@malept/cross-spawn-promise": "^2.0.0",
"chalk": "^4.0.0",
"debug": "^4.3.1",
- "detect-package-manager": "^3.0.2",
"fast-glob": "^3.2.7",
"filenamify": "^4.1.0",
"find-up": "^5.0.0",
"fs-extra": "^10.0.0",
+ "global-dirs": "^3.0.0",
"got": "^11.8.5",
"interpret": "^3.1.1",
"listr2": "^7.0.2",
@@ -642,7 +643,6 @@
"log-symbols": "^4.0.0",
"node-fetch": "^2.6.7",
"rechoir": "^0.8.0",
- "resolve-package": "^1.0.1",
"semver": "^7.2.1",
"source-map-support": "^0.5.13",
"sudo-prompt": "^9.1.1",
@@ -653,18 +653,17 @@
}
},
"node_modules/@electron-forge/core-utils": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.6.1.tgz",
- "integrity": "sha512-RGA3azq0r5bGk8DDmVDP1EML071JEa44hpZEgSsv9zmdC86aTh0cANyDE6sVarAwLx4LQ+zrFE3KSb63j1HD5w==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.7.0.tgz",
+ "integrity": "sha512-kgOkiLzqnySkcpt26rBg8AoZsI1ID3f6s/dQlzfRJisWZTKTu4ryiMcaC0F07DVjaYFnEl9SQ86IvkTcyS97mQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1",
+ "@electron-forge/shared-types": "7.7.0",
"@electron/rebuild": "^3.7.0",
"@malept/cross-spawn-promise": "^2.0.0",
"chalk": "^4.0.0",
"debug": "^4.3.1",
- "detect-package-manager": "^3.0.2",
"find-up": "^5.0.0",
"fs-extra": "^10.0.0",
"log-symbols": "^4.0.0",
@@ -731,13 +730,13 @@
}
},
"node_modules/@electron-forge/maker-base": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.6.1.tgz",
- "integrity": "sha512-kA6k0z4fFbqfjV++bbYVC46TckiqyqIo/gTW/QexsT6xlutXUbnNevhoRPVfGigftSAjE6T26DwTogC9hNDkwg==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.7.0.tgz",
+ "integrity": "sha512-9u+mmBLBAUHuH0+IGw94EGVTDD4CPKX05h5pp5/PIaijy16ss5dymK4vEp3s2XJMFlza2PsCgLLYBgDcAE2Dqg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1",
+ "@electron-forge/shared-types": "7.7.0",
"fs-extra": "^10.0.0",
"which": "^2.0.2"
},
@@ -774,14 +773,14 @@
}
},
"node_modules/@electron-forge/maker-deb": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.6.1.tgz",
- "integrity": "sha512-8pqwxwlMPddH6anfNL8vYE5v2mlPia+z9YcpnLlMbMjWo9ksRcxmrg2t3El9jvk1TkiPoqVcQzCNaQqYQaMoiw==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.7.0.tgz",
+ "integrity": "sha512-yMT0TWpCwXaC9+AYpSr9PBIhcZR297wdJUk5PnEnIROsvOW2y1sh7ny7YdHXTxkvhWdbqY8sLQruL3BE+CyE8w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/maker-base": "7.6.1",
- "@electron-forge/shared-types": "7.6.1"
+ "@electron-forge/maker-base": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0"
},
"engines": {
"node": ">= 16.4.0"
@@ -791,14 +790,14 @@
}
},
"node_modules/@electron-forge/maker-dmg": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/maker-dmg/-/maker-dmg-7.6.1.tgz",
- "integrity": "sha512-D7cJRE6CGeovLZhu2dRqUm3w/AlkTURYJYgFuUsgwpBuviQKgJd8quZar6IeZ/l83y4Z1dghKb8D3aAj+bRvNQ==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/maker-dmg/-/maker-dmg-7.7.0.tgz",
+ "integrity": "sha512-Hq4nsY6eOdtigN4RLc9i2SbLEr46J6FfbdU+r39R/EVIJ82WRk7JPrCqbckEM7KY1TjhmrnhPWeviWoGAjbXhA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/maker-base": "7.6.1",
- "@electron-forge/shared-types": "7.6.1",
+ "@electron-forge/maker-base": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0",
"fs-extra": "^10.0.0"
},
"engines": {
@@ -837,14 +836,14 @@
}
},
"node_modules/@electron-forge/maker-flatpak": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-7.6.1.tgz",
- "integrity": "sha512-a9EekF8cNzjizwMs8HObxRii2tkLrTcTNMvWNhQqcJohEkJV81zNOLu9l/OdIMlKQ9cF5SuRvA4/m2bQGfT80w==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-7.7.0.tgz",
+ "integrity": "sha512-WDNmGTulgPe4FEgxq128TI58EtVyS2Fq3loXhfirNuzoXpBtvt0LHK447cmtKHAvZZ+R802uriTcj28L+Iub3A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/maker-base": "7.6.1",
- "@electron-forge/shared-types": "7.6.1",
+ "@electron-forge/maker-base": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0",
"fs-extra": "^10.0.0"
},
"engines": {
@@ -883,14 +882,14 @@
}
},
"node_modules/@electron-forge/maker-rpm": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.6.1.tgz",
- "integrity": "sha512-BShfmto+XTSA01pkZp10r2ktyruVfI24sGC+y4az1vbqkmX2qN9j0Xr+G/ZMHsm76XHju0N/e1Y2pqqu2JM8/A==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.7.0.tgz",
+ "integrity": "sha512-M9cFO6bCnOuA6BwBUUw35FrnWciWeFyLuByO0KOn3zEYeBDqG2fbBgXXS6OKcRHrpnJVTwiLY5S7eviyO1DJzQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/maker-base": "7.6.1",
- "@electron-forge/shared-types": "7.6.1"
+ "@electron-forge/maker-base": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0"
},
"engines": {
"node": ">= 16.4.0"
@@ -900,14 +899,14 @@
}
},
"node_modules/@electron-forge/maker-squirrel": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.6.1.tgz",
- "integrity": "sha512-7EMLcl0QM5GfdY+enfauEqV6ZW14A1S6Eqoev812FXGTm88G8Ik0tPRw6SsIaI8R++YqxsbdCGTQjzdJWY0bJA==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.7.0.tgz",
+ "integrity": "sha512-9Gcq8e6+1MuXGeE7bEpk7VTd86c0riXTsDFKW8OqwVozeBYhoCd6GU59RmI3b7mcAIKOY1cBY97B+/5bnZ8ZYg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/maker-base": "7.6.1",
- "@electron-forge/shared-types": "7.6.1",
+ "@electron-forge/maker-base": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0",
"fs-extra": "^10.0.0"
},
"engines": {
@@ -946,14 +945,14 @@
}
},
"node_modules/@electron-forge/maker-zip": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.6.1.tgz",
- "integrity": "sha512-omoBwoY99DpsgabVIu6Qva+r8kwCY04zDV+P60WN6x+JX/MF+Bk3zI271aH6raZaB+YSbvaed/LDG1QmEM9cTA==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.7.0.tgz",
+ "integrity": "sha512-/rRFiPcojk0hcn+NOfHv2SlMNvghBk1RN0nuLHbbe8r+C0vG4LJV9ee/Y0HhVKkcpapJOQ+MasXJ86fzAp5uAg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/maker-base": "7.6.1",
- "@electron-forge/shared-types": "7.6.1",
+ "@electron-forge/maker-base": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0",
"cross-zip": "^4.0.0",
"fs-extra": "^10.0.0",
"got": "^11.8.5"
@@ -991,53 +990,53 @@
}
},
"node_modules/@electron-forge/plugin-auto-unpack-natives": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-7.6.1.tgz",
- "integrity": "sha512-sPFSVhlJBvEA70e0QNbYno5AYc8nvmKCgs4YqTwc24ONhIX0TwGAzjuJ7AZBOj88rhhY9+9Rkl9cONVa5GGZvA==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-7.7.0.tgz",
+ "integrity": "sha512-cYeD4x2oQXUyK4+DtIR6wMxcIHvyPgsJq1diEuBoQ+MFTh+s6DXZl6JvwtI3scD0XieCkzcmUmf8ygzqs124+w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/plugin-base": "7.6.1",
- "@electron-forge/shared-types": "7.6.1"
+ "@electron-forge/plugin-base": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/plugin-base": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.6.1.tgz",
- "integrity": "sha512-RWt+a8At55dVwEgr8BnnmBN05QzZq+DbOHNPeSJEM2d4ZyLUZXTkkwSF+ZMVk5mQCfIf75l+6BEzkXOcVvti2Q==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.7.0.tgz",
+ "integrity": "sha512-6wisQ4ZKOWey48wFF+JHzih7AuQuVma5KauwNEju2Dh2ibwDMJmPy0FWVolMSg7XUIMbGKLADGilxX6XRv8qNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1"
+ "@electron-forge/shared-types": "7.7.0"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/publisher-base": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.6.1.tgz",
- "integrity": "sha512-VE0DJJYcMRGMxEbeC20q+ynCpra9oqkM6oXd8O1jRyTit9F+PZlscT/p5vLANrTW5vGrV6CXLyyloPxWxOf8DA==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.7.0.tgz",
+ "integrity": "sha512-jHKvUc1peBBSl2t5d1x6M3CNyCMyNB+NnTO9LmA1dWFQ3oRDFwromIH5KjRqPJj6l4AyH0/XJogdO7Nn4Eyn6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1"
+ "@electron-forge/shared-types": "7.7.0"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/shared-types": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.6.1.tgz",
- "integrity": "sha512-i6VdZGG8SYEBirpk+FP7bEMYtCNf9wBkK81IcPco8LP0KbsvgR8y7aUSVxG8DLoVwYB5yr0N9MYXOfNp1gkQ7A==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.7.0.tgz",
+ "integrity": "sha512-1zQsmudkAuHv0HnJtSJY3pvTeuN3fnSa9BR6cbeUlcpOfrnG4OTG03FqerHfyIWaBRVy7jGgif0NhKKE9azKyg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/tracer": "7.6.1",
+ "@electron-forge/tracer": "7.7.0",
"@electron/packager": "^18.3.5",
"@electron/rebuild": "^3.7.0",
"listr2": "^7.0.2"
@@ -1047,13 +1046,14 @@
}
},
"node_modules/@electron-forge/template-base": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.6.1.tgz",
- "integrity": "sha512-Pk65CIe6jYJa/hv25o0ueyuAOrRTi3qz92g5cYnj+YZzndNmrem1sNQvNKkavw0w0TKEUC5Y0EZ4ejLSYhVIQA==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.7.0.tgz",
+ "integrity": "sha512-jwnhEHNIyQfbwJ6R8SuZIJApHKBykDr/rSgUF3km9nr2qAUSoUUV7RaJa/uiQJMtvamXenuo5K84C2NzumzS3A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1",
+ "@electron-forge/core-utils": "7.7.0",
+ "@electron-forge/shared-types": "7.7.0",
"@malept/cross-spawn-promise": "^2.0.0",
"debug": "^4.3.1",
"fs-extra": "^10.0.0",
@@ -1092,14 +1092,14 @@
}
},
"node_modules/@electron-forge/template-vite": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.6.1.tgz",
- "integrity": "sha512-DxRBCXgnpFQHueG3M6yDN1x2pTYDycHXIddLExUydA9bsrxVwlu8Oo7Mm5XOEltebITD/bZ0iQniOVkzUov37g==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.7.0.tgz",
+ "integrity": "sha512-6p+U6FDWrmF7XgSLkrO07OOgJcrrrArbnExSckGJdBnupxmIDf1Y+exwfHHKdxX6/FfkA6JST5nRGjgA5CFqcw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1",
- "@electron-forge/template-base": "7.6.1",
+ "@electron-forge/shared-types": "7.7.0",
+ "@electron-forge/template-base": "7.7.0",
"fs-extra": "^10.0.0"
},
"engines": {
@@ -1107,14 +1107,14 @@
}
},
"node_modules/@electron-forge/template-vite-typescript": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.6.1.tgz",
- "integrity": "sha512-7aMq7/woR2xUNbCYCRa/dwinnjoYKuamn17hYBwmyRNJ+YKV9btVK6lq+WR4sJmFM5Fv3qOJlUwrNyxH+HoUCQ==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.7.0.tgz",
+ "integrity": "sha512-32C/+PF+hIloTdbRx7OutvqnTkkC7BHeQxNw4/zG2TfQ3cjl7JUD6A2UvTUHtv5KHkK2hDw6ZdahPwpJO41YSA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1",
- "@electron-forge/template-base": "7.6.1",
+ "@electron-forge/shared-types": "7.7.0",
+ "@electron-forge/template-base": "7.7.0",
"fs-extra": "^10.0.0"
},
"engines": {
@@ -1178,14 +1178,14 @@
}
},
"node_modules/@electron-forge/template-webpack": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.6.1.tgz",
- "integrity": "sha512-8HXJ7eh5mjphC2tBfBOroEfM71DsWt3yrkEQMGzW6Lc5u2itkCQrEAINm3nuLscWrqLRk4ZsfT1f1VzdwAraXg==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.7.0.tgz",
+ "integrity": "sha512-7Hb1wejKqtvPXqhelubUNAh39FtClB/4JDtWzyAsL2iC3XeB5qh6pITz8+nW/rF2qW/JAepc/lnreqKn34P2ig==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1",
- "@electron-forge/template-base": "7.6.1",
+ "@electron-forge/shared-types": "7.7.0",
+ "@electron-forge/template-base": "7.7.0",
"fs-extra": "^10.0.0"
},
"engines": {
@@ -1193,14 +1193,14 @@
}
},
"node_modules/@electron-forge/template-webpack-typescript": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.6.1.tgz",
- "integrity": "sha512-ECEd70QOAi7r2ZibIU2U9rh0CVND7oJP5BnKRCP20uUCxdQdO7RTMRDXesm41VTRa1uZ+64pRdOQTDFHB6xitA==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.7.0.tgz",
+ "integrity": "sha512-w1vRAjGy0MjjdEDYPpZcpkMo2e3z5uEwfJdwVOpBeha7p2WM/Y6go21K+7pSqGp8Xmq4zlE20hq5MEx8Bs8eZg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@electron-forge/shared-types": "7.6.1",
- "@electron-forge/template-base": "7.6.1",
+ "@electron-forge/shared-types": "7.7.0",
+ "@electron-forge/template-base": "7.7.0",
"fs-extra": "^10.0.0"
},
"engines": {
@@ -1264,9 +1264,9 @@
}
},
"node_modules/@electron-forge/tracer": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.6.1.tgz",
- "integrity": "sha512-nZzVzXT4xdueWYoSbgStS5LfcifW/e/WJj9VOt6xYpFxYOsQHpLkkCAc6nH0gxn+60kiU4FMU0p2kSQ2eQhWuA==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.7.0.tgz",
+ "integrity": "sha512-R/JiGFzWhwfVyc6ioT4l5FFChRLS4Z2tWPeQfPcyoemdpzKpI1rvMHti42gzWXFW8GdzkhG0G3ZWfKiF3y3x/Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1693,9 +1693,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz",
- "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz",
+ "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==",
"cpu": [
"ppc64"
],
@@ -1710,9 +1710,9 @@
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz",
- "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz",
+ "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==",
"cpu": [
"arm"
],
@@ -1727,9 +1727,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz",
- "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz",
+ "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==",
"cpu": [
"arm64"
],
@@ -1744,9 +1744,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz",
- "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz",
+ "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==",
"cpu": [
"x64"
],
@@ -1761,9 +1761,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz",
- "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz",
+ "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==",
"cpu": [
"arm64"
],
@@ -1778,9 +1778,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz",
- "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz",
+ "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==",
"cpu": [
"x64"
],
@@ -1795,9 +1795,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz",
- "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz",
+ "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==",
"cpu": [
"arm64"
],
@@ -1812,9 +1812,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz",
- "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz",
+ "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==",
"cpu": [
"x64"
],
@@ -1829,9 +1829,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz",
- "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz",
+ "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==",
"cpu": [
"arm"
],
@@ -1846,9 +1846,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz",
- "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz",
+ "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==",
"cpu": [
"arm64"
],
@@ -1863,9 +1863,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz",
- "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz",
+ "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==",
"cpu": [
"ia32"
],
@@ -1880,9 +1880,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz",
- "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz",
+ "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==",
"cpu": [
"loong64"
],
@@ -1897,9 +1897,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz",
- "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz",
+ "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==",
"cpu": [
"mips64el"
],
@@ -1914,9 +1914,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz",
- "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz",
+ "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==",
"cpu": [
"ppc64"
],
@@ -1931,9 +1931,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz",
- "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz",
+ "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==",
"cpu": [
"riscv64"
],
@@ -1948,9 +1948,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz",
- "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz",
+ "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==",
"cpu": [
"s390x"
],
@@ -1965,9 +1965,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz",
- "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz",
+ "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==",
"cpu": [
"x64"
],
@@ -1999,9 +1999,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz",
- "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz",
+ "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==",
"cpu": [
"x64"
],
@@ -2016,9 +2016,9 @@
}
},
"node_modules/@esbuild/openbsd-arm64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz",
- "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz",
+ "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==",
"cpu": [
"arm64"
],
@@ -2033,9 +2033,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz",
- "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz",
+ "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==",
"cpu": [
"x64"
],
@@ -2050,9 +2050,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz",
- "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz",
+ "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==",
"cpu": [
"x64"
],
@@ -2067,9 +2067,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz",
- "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz",
+ "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==",
"cpu": [
"arm64"
],
@@ -2084,9 +2084,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz",
- "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz",
+ "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==",
"cpu": [
"ia32"
],
@@ -2101,9 +2101,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz",
- "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz",
+ "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==",
"cpu": [
"x64"
],
@@ -4523,9 +4523,9 @@
}
},
"node_modules/@vitest/coverage-v8": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.0.5.tgz",
- "integrity": "sha512-zOOWIsj5fHh3jjGwQg+P+J1FW3s4jBu1Zqga0qW60yutsBtqEqNEJKWYh7cYn1yGD+1bdPsPdC/eL4eVK56xMg==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.0.6.tgz",
+ "integrity": "sha512-JRTlR8Bw+4BcmVTICa7tJsxqphAktakiLsAmibVLAWbu1lauFddY/tXeM6sAyl1cgkPuXtpnUgaCPhTdz1Qapg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4546,8 +4546,8 @@
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
- "@vitest/browser": "3.0.5",
- "vitest": "3.0.5"
+ "@vitest/browser": "3.0.6",
+ "vitest": "3.0.6"
},
"peerDependenciesMeta": {
"@vitest/browser": {
@@ -4556,15 +4556,15 @@
}
},
"node_modules/@vitest/expect": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.5.tgz",
- "integrity": "sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.6.tgz",
+ "integrity": "sha512-zBduHf/ja7/QRX4HdP1DSq5XrPgdN+jzLOwaTq/0qZjYfgETNFCKf9nOAp2j3hmom3oTbczuUzrzg9Hafh7hNg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/spy": "3.0.5",
- "@vitest/utils": "3.0.5",
- "chai": "^5.1.2",
+ "@vitest/spy": "3.0.6",
+ "@vitest/utils": "3.0.6",
+ "chai": "^5.2.0",
"tinyrainbow": "^2.0.0"
},
"funding": {
@@ -4572,13 +4572,13 @@
}
},
"node_modules/@vitest/mocker": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.5.tgz",
- "integrity": "sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.6.tgz",
+ "integrity": "sha512-KPztr4/tn7qDGZfqlSPQoF2VgJcKxnDNhmfR3VgZ6Fy1bO8T9Fc1stUiTXtqz0yG24VpD00pZP5f8EOFknjNuQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/spy": "3.0.5",
+ "@vitest/spy": "3.0.6",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.17"
},
@@ -4599,9 +4599,9 @@
}
},
"node_modules/@vitest/pretty-format": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.5.tgz",
- "integrity": "sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.6.tgz",
+ "integrity": "sha512-Zyctv3dbNL+67qtHfRnUE/k8qxduOamRfAL1BurEIQSyOEFffoMvx2pnDSSbKAAVxY0Ej2J/GH2dQKI0W2JyVg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4612,52 +4612,52 @@
}
},
"node_modules/@vitest/runner": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.5.tgz",
- "integrity": "sha512-BAiZFityFexZQi2yN4OX3OkJC6scwRo8EhRB0Z5HIGGgd2q+Nq29LgHU/+ovCtd0fOfXj5ZI6pwdlUmC5bpi8A==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.6.tgz",
+ "integrity": "sha512-JopP4m/jGoaG1+CBqubV/5VMbi7L+NQCJTu1J1Pf6YaUbk7bZtaq5CX7p+8sY64Sjn1UQ1XJparHfcvTTdu9cA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/utils": "3.0.5",
- "pathe": "^2.0.2"
+ "@vitest/utils": "3.0.6",
+ "pathe": "^2.0.3"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/runner/node_modules/pathe": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz",
- "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
"dev": true,
"license": "MIT"
},
"node_modules/@vitest/snapshot": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.5.tgz",
- "integrity": "sha512-GJPZYcd7v8QNUJ7vRvLDmRwl+a1fGg4T/54lZXe+UOGy47F9yUfE18hRCtXL5aHN/AONu29NGzIXSVFh9K0feA==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.6.tgz",
+ "integrity": "sha512-qKSmxNQwT60kNwwJHMVwavvZsMGXWmngD023OHSgn873pV0lylK7dwBTfYP7e4URy5NiBCHHiQGA9DHkYkqRqg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "3.0.5",
+ "@vitest/pretty-format": "3.0.6",
"magic-string": "^0.30.17",
- "pathe": "^2.0.2"
+ "pathe": "^2.0.3"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/snapshot/node_modules/pathe": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz",
- "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
"dev": true,
"license": "MIT"
},
"node_modules/@vitest/spy": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.5.tgz",
- "integrity": "sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.6.tgz",
+ "integrity": "sha512-HfOGx/bXtjy24fDlTOpgiAEJbRfFxoX3zIGagCqACkFKKZ/TTOE6gYMKXlqecvxEndKFuNHcHqP081ggZ2yM0Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4668,14 +4668,14 @@
}
},
"node_modules/@vitest/utils": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.5.tgz",
- "integrity": "sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.6.tgz",
+ "integrity": "sha512-18ktZpf4GQFTbf9jK543uspU03Q2qya7ZGya5yiZ0Gx0nnnalBvd5ZBislbl2EhLjM8A8rt4OilqKG7QwcGkvQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "3.0.5",
- "loupe": "^3.1.2",
+ "@vitest/pretty-format": "3.0.6",
+ "loupe": "^3.1.3",
"tinyrainbow": "^2.0.0"
},
"funding": {
@@ -6143,9 +6143,9 @@
}
},
"node_modules/chai": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
- "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
+ "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6575,13 +6575,13 @@
}
},
"node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": ">=16"
}
},
"node_modules/compare-version": {
@@ -7783,69 +7783,6 @@
"license": "MIT",
"optional": true
},
- "node_modules/detect-package-manager": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-3.0.2.tgz",
- "integrity": "sha512-8JFjJHutStYrfWwzfretQoyNGoZVW1Fsrp4JO9spa7h/fBfwgTMEIy4/LBzRDGsxwVPHU0q+T9YvwLDJoOApLQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "execa": "^5.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/detect-package-manager/node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/detect-package-manager/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/detect-package-manager/node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/detect-passive-events": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/detect-passive-events/-/detect-passive-events-1.0.5.tgz",
@@ -8962,9 +8899,9 @@
"optional": true
},
"node_modules/esbuild": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz",
- "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz",
+ "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -8975,30 +8912,48 @@
"node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.23.1",
- "@esbuild/android-arm": "0.23.1",
- "@esbuild/android-arm64": "0.23.1",
- "@esbuild/android-x64": "0.23.1",
- "@esbuild/darwin-arm64": "0.23.1",
- "@esbuild/darwin-x64": "0.23.1",
- "@esbuild/freebsd-arm64": "0.23.1",
- "@esbuild/freebsd-x64": "0.23.1",
- "@esbuild/linux-arm": "0.23.1",
- "@esbuild/linux-arm64": "0.23.1",
- "@esbuild/linux-ia32": "0.23.1",
- "@esbuild/linux-loong64": "0.23.1",
- "@esbuild/linux-mips64el": "0.23.1",
- "@esbuild/linux-ppc64": "0.23.1",
- "@esbuild/linux-riscv64": "0.23.1",
- "@esbuild/linux-s390x": "0.23.1",
- "@esbuild/linux-x64": "0.23.1",
- "@esbuild/netbsd-x64": "0.23.1",
- "@esbuild/openbsd-arm64": "0.23.1",
- "@esbuild/openbsd-x64": "0.23.1",
- "@esbuild/sunos-x64": "0.23.1",
- "@esbuild/win32-arm64": "0.23.1",
- "@esbuild/win32-ia32": "0.23.1",
- "@esbuild/win32-x64": "0.23.1"
+ "@esbuild/aix-ppc64": "0.25.0",
+ "@esbuild/android-arm": "0.25.0",
+ "@esbuild/android-arm64": "0.25.0",
+ "@esbuild/android-x64": "0.25.0",
+ "@esbuild/darwin-arm64": "0.25.0",
+ "@esbuild/darwin-x64": "0.25.0",
+ "@esbuild/freebsd-arm64": "0.25.0",
+ "@esbuild/freebsd-x64": "0.25.0",
+ "@esbuild/linux-arm": "0.25.0",
+ "@esbuild/linux-arm64": "0.25.0",
+ "@esbuild/linux-ia32": "0.25.0",
+ "@esbuild/linux-loong64": "0.25.0",
+ "@esbuild/linux-mips64el": "0.25.0",
+ "@esbuild/linux-ppc64": "0.25.0",
+ "@esbuild/linux-riscv64": "0.25.0",
+ "@esbuild/linux-s390x": "0.25.0",
+ "@esbuild/linux-x64": "0.25.0",
+ "@esbuild/netbsd-arm64": "0.25.0",
+ "@esbuild/netbsd-x64": "0.25.0",
+ "@esbuild/openbsd-arm64": "0.25.0",
+ "@esbuild/openbsd-x64": "0.25.0",
+ "@esbuild/sunos-x64": "0.25.0",
+ "@esbuild/win32-arm64": "0.25.0",
+ "@esbuild/win32-ia32": "0.25.0",
+ "@esbuild/win32-x64": "0.25.0"
+ }
+ },
+ "node_modules/esbuild/node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz",
+ "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/escalade": {
@@ -9269,19 +9224,6 @@
"node": ">=6"
}
},
- "node_modules/expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/expect-type": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
@@ -10166,16 +10108,6 @@
"get-folder-size": "bin/get-folder-size"
}
},
- "node_modules/get-installed-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/get-installed-path/-/get-installed-path-2.1.1.tgz",
- "integrity": "sha512-Qkn9eq6tW5/q9BDVdMpB8tOHljX9OSP0jRC5TRNVA4qRc839t4g8KQaR8t0Uv0EFVL0MlyG7m/ofjEgAROtYsA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "global-modules": "1.0.0"
- }
- },
"node_modules/get-intrinsic": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz",
@@ -10327,56 +10259,30 @@
"node": ">=10.0"
}
},
- "node_modules/global-modules": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "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==",
"dev": true,
"license": "MIT",
"dependencies": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
+ "ini": "2.0.0"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/global-prefix": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
+ "node": ">=10"
},
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/global-prefix/node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/global-prefix/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "node_modules/global-dirs/node_modules/ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
"dev": true,
"license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/globalthis": {
@@ -10529,19 +10435,6 @@
"integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==",
"license": "BSD-3-Clause"
},
- "node_modules/homedir-polyfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "parse-passwd": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
@@ -10794,16 +10687,6 @@
"node": ">= 14"
}
},
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.17.0"
- }
- },
"node_modules/humanize-ms": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
@@ -11333,16 +11216,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
@@ -12169,9 +12042,9 @@
}
},
"node_modules/loupe": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz",
- "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
+ "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
"dev": true,
"license": "MIT"
},
@@ -13527,16 +13400,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/parse-passwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/parse-srcset": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
@@ -14824,34 +14687,6 @@
"node": ">=8"
}
},
- "node_modules/resolve-dir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve-package": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-package/-/resolve-package-1.0.1.tgz",
- "integrity": "sha512-rzB7NnQpOkPHBWFPP3prUMqOP6yg3HkRGgcvR+lDyvyHoY3fZLFLYDkPXh78SPVBAE6VTCk/V+j8we4djg6o4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-installed-path": "^2.0.3"
- },
- "engines": {
- "node": ">=4",
- "npm": ">=2"
- }
- },
"node_modules/resolve-pathname": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
@@ -16101,16 +15936,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/strip-json-comments": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -16918,13 +16743,13 @@
"license": "0BSD"
},
"node_modules/tsx": {
- "version": "4.19.2",
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz",
- "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==",
+ "version": "4.19.3",
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.3.tgz",
+ "integrity": "sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "esbuild": "~0.23.0",
+ "esbuild": "~0.25.0",
"get-tsconfig": "^4.7.5"
},
"bin": {
@@ -17444,16 +17269,16 @@
}
},
"node_modules/vite-node": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.5.tgz",
- "integrity": "sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.6.tgz",
+ "integrity": "sha512-s51RzrTkXKJrhNbUzQRsarjmAae7VmMPAsRT7lppVpIg6mK3zGthP9Hgz0YQQKuNcF+Ii7DfYk3Fxz40jRmePw==",
"dev": true,
"license": "MIT",
"dependencies": {
"cac": "^6.7.14",
"debug": "^4.4.0",
"es-module-lexer": "^1.6.0",
- "pathe": "^2.0.2",
+ "pathe": "^2.0.3",
"vite": "^5.0.0 || ^6.0.0"
},
"bin": {
@@ -17467,9 +17292,9 @@
}
},
"node_modules/vite-node/node_modules/pathe": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz",
- "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
"dev": true,
"license": "MIT"
},
@@ -17938,31 +17763,31 @@
}
},
"node_modules/vitest": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.5.tgz",
- "integrity": "sha512-4dof+HvqONw9bvsYxtkfUp2uHsTN9bV2CZIi1pWgoFpL1Lld8LA1ka9q/ONSsoScAKG7NVGf2stJTI7XRkXb2Q==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.6.tgz",
+ "integrity": "sha512-/iL1Sc5VeDZKPDe58oGK4HUFLhw6b5XdY1MYawjuSaDA4sEfYlY9HnS6aCEG26fX+MgUi7MwlduTBHHAI/OvMA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/expect": "3.0.5",
- "@vitest/mocker": "3.0.5",
- "@vitest/pretty-format": "^3.0.5",
- "@vitest/runner": "3.0.5",
- "@vitest/snapshot": "3.0.5",
- "@vitest/spy": "3.0.5",
- "@vitest/utils": "3.0.5",
- "chai": "^5.1.2",
+ "@vitest/expect": "3.0.6",
+ "@vitest/mocker": "3.0.6",
+ "@vitest/pretty-format": "^3.0.6",
+ "@vitest/runner": "3.0.6",
+ "@vitest/snapshot": "3.0.6",
+ "@vitest/spy": "3.0.6",
+ "@vitest/utils": "3.0.6",
+ "chai": "^5.2.0",
"debug": "^4.4.0",
"expect-type": "^1.1.0",
"magic-string": "^0.30.17",
- "pathe": "^2.0.2",
+ "pathe": "^2.0.3",
"std-env": "^3.8.0",
"tinybench": "^2.9.0",
"tinyexec": "^0.3.2",
"tinypool": "^1.0.2",
"tinyrainbow": "^2.0.0",
"vite": "^5.0.0 || ^6.0.0",
- "vite-node": "3.0.5",
+ "vite-node": "3.0.6",
"why-is-node-running": "^2.3.0"
},
"bin": {
@@ -17978,8 +17803,8 @@
"@edge-runtime/vm": "*",
"@types/debug": "^4.1.12",
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
- "@vitest/browser": "3.0.5",
- "@vitest/ui": "3.0.5",
+ "@vitest/browser": "3.0.6",
+ "@vitest/ui": "3.0.6",
"happy-dom": "*",
"jsdom": "*"
},
@@ -18008,9 +17833,9 @@
}
},
"node_modules/vitest/node_modules/pathe": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz",
- "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
"dev": true,
"license": "MIT"
},
diff --git a/package.json b/package.json
index 2503ee043..e14d45979 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"build:webpack": "tsx node_modules/webpack/bin/webpack.js -c webpack.config.ts",
"build:prepare-dist": "npm run build:webpack && rimraf ./dist && tsc && tsx ./bin/copy-dist.ts",
- "test": "cross-env TRILIUM_DATA_DIR=./integration-tests/db vitest",
+ "test": "cross-env TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest",
"test:coverage": "cross-env TRILIUM_DATA_DIR=./integration-tests/db vitest --coverage",
"test:playwright": "playwright test",
@@ -167,14 +167,14 @@
"yauzl": "3.2.0"
},
"devDependencies": {
- "@electron-forge/cli": "7.6.1",
- "@electron-forge/maker-deb": "7.6.1",
- "@electron-forge/maker-dmg": "7.6.1",
- "@electron-forge/maker-flatpak": "7.6.1",
- "@electron-forge/maker-rpm": "7.6.1",
- "@electron-forge/maker-squirrel": "7.6.1",
- "@electron-forge/maker-zip": "7.6.1",
- "@electron-forge/plugin-auto-unpack-natives": "7.6.1",
+ "@electron-forge/cli": "7.7.0",
+ "@electron-forge/maker-deb": "7.7.0",
+ "@electron-forge/maker-dmg": "7.7.0",
+ "@electron-forge/maker-flatpak": "7.7.0",
+ "@electron-forge/maker-rpm": "7.7.0",
+ "@electron-forge/maker-squirrel": "7.7.0",
+ "@electron-forge/maker-zip": "7.7.0",
+ "@electron-forge/plugin-auto-unpack-natives": "7.7.0",
"@electron/rebuild": "3.7.1",
"@playwright/test": "1.50.1",
"@types/archiver": "6.0.3",
@@ -212,7 +212,7 @@
"@types/ws": "8.5.14",
"@types/xml2js": "0.4.14",
"@types/yargs": "17.0.33",
- "@vitest/coverage-v8": "3.0.5",
+ "@vitest/coverage-v8": "3.0.6",
"cross-env": "7.0.3",
"electron": "34.2.0",
"esm": "3.2.25",
@@ -224,10 +224,10 @@
"rimraf": "6.0.1",
"swagger-jsdoc": "6.2.8",
"tslib": "2.8.1",
- "tsx": "4.19.2",
+ "tsx": "4.19.3",
"typedoc": "0.27.7",
"typescript": "5.7.3",
- "vitest": "3.0.5",
+ "vitest": "3.0.6",
"webpack": "5.98.0",
"webpack-cli": "6.0.1",
"webpack-dev-middleware": "7.4.2"
diff --git a/src/public/app/widgets/type_widgets/geo_map.ts b/src/public/app/widgets/type_widgets/geo_map.ts
index 1c1a72e35..32f689e6f 100644
--- a/src/public/app/widgets/type_widgets/geo_map.ts
+++ b/src/public/app/widgets/type_widgets/geo_map.ts
@@ -222,7 +222,7 @@ export default class GeoMapTypeWidget extends TypeWidget {
const [ lat, lng ] = latLng.split(",", 2).map((el) => parseFloat(el));
const L = this.L;
- const icon = this.#buildIcon(note.getIcon(), note.title);
+ const icon = this.#buildIcon(note.getIcon(), note.getColorClass(), note.title);
const marker = L.marker(L.latLng(lat, lng), {
icon,
@@ -257,12 +257,12 @@ export default class GeoMapTypeWidget extends TypeWidget {
this.currentMarkerData[note.noteId] = marker;
}
- #buildIcon(bxIconClass: string, title: string) {
+ #buildIcon(bxIconClass: string, colorClass: string, title: string) {
return this.L.divIcon({
html: `\
-
+
${title}`,
iconSize: [ 25, 41 ],
iconAnchor: [ 12, 41 ]
@@ -361,7 +361,7 @@ export default class GeoMapTypeWidget extends TypeWidget {
// If any of note has its location attribute changed.
// TODO: Should probably filter by parent here as well.
const attributeRows = loadResults.getAttributeRows();
- if (attributeRows.find((at) => at.name === LOCATION_ATTRIBUTE)) {
+ if (attributeRows.find((at) => [ LOCATION_ATTRIBUTE, "color" ].includes(at.name ?? ""))) {
this.#reloadMarkers();
}
}
diff --git a/src/public/app/widgets/type_widgets/options/time_selector.ts b/src/public/app/widgets/type_widgets/options/time_selector.ts
index 7e12f5fbd..a3ec7c9bb 100644
--- a/src/public/app/widgets/type_widgets/options/time_selector.ts
+++ b/src/public/app/widgets/type_widgets/options/time_selector.ts
@@ -2,6 +2,7 @@ import OptionsWidget from "./options_widget.js";
import toastService from "../../../services/toast.js";
import { t } from "../../../services/i18n.js";
import type { OptionDefinitions, OptionMap } from "../../../../../services/options_interface.js";
+import optionsService from "../../../services/options.js";
type TimeSelectorConstructor = {
widgetId: string;
@@ -9,6 +10,7 @@ type TimeSelectorConstructor = {
optionValueId: keyof OptionDefinitions;
optionTimeScaleId: keyof OptionDefinitions;
includedTimeScales?: Set;
+ minimumSeconds?: number;
};
type TimeSelectorScale = "seconds" | "minutes" | "hours" | "days";
@@ -43,6 +45,7 @@ export default class TimeSelector extends OptionsWidget {
private optionValueId: keyof OptionDefinitions;
private optionTimeScaleId: keyof OptionDefinitions;
private includedTimeScales: Set;
+ private minimumSeconds: number;
constructor(options: TimeSelectorConstructor) {
super();
@@ -50,7 +53,8 @@ export default class TimeSelector extends OptionsWidget {
this.widgetLabelId = options.widgetLabelId;
this.optionValueId = options.optionValueId;
this.optionTimeScaleId = options.optionTimeScaleId;
- this.includedTimeScales = !options.includedTimeScales ? new Set(["seconds", "minutes", "hours", "days"]) : options.includedTimeScales;
+ this.includedTimeScales = options.includedTimeScales || new Set(["seconds", "minutes", "hours", "days"]);
+ this.minimumSeconds = options.minimumSeconds || 0
}
doRender() {
@@ -71,7 +75,8 @@ export default class TimeSelector extends OptionsWidget {
if (!this.handleTimeValidation() || typeof timeScale !== "string" || !time) return;
- this.internalTimeInSeconds = this.convertTime(time, timeScale).toOption();
+ this.setInternalTimeInSeconds(this.convertTime(time, timeScale).toOption());
+
this.updateOption(this.optionValueId, this.internalTimeInSeconds);
});
@@ -89,13 +94,17 @@ export default class TimeSelector extends OptionsWidget {
}
async optionsLoaded(options: OptionMap) {
- this.internalTimeInSeconds = options[this.optionValueId];
- const displayedTime = this.convertTime(options[this.optionValueId], options[this.optionTimeScaleId]).toDisplay();
+ const optionValue = optionsService.getInt(this.optionValueId) || 0;
+ const optionTimeScale = optionsService.getInt(this.optionTimeScaleId) || 1;
+
+ this.setInternalTimeInSeconds(optionValue);
+
+ const displayedTime = this.convertTime(optionValue, optionTimeScale).toDisplay();
this.$timeValueInput.val(displayedTime);
- this.$timeScaleSelect.val(options[this.optionTimeScaleId]);
+ this.$timeScaleSelect.val(optionTimeScale);
}
- convertTime(time: string | number, timeScale: string | number) {
+ private convertTime(time: string | number, timeScale: string | number) {
const value = typeof time === "number" ? time : parseInt(time);
if (Number.isNaN(value)) {
throw new Error(`Time needs to be a valid integer, but received: ${time}`);
@@ -112,11 +121,20 @@ export default class TimeSelector extends OptionsWidget {
};
}
- handleTimeValidation() {
+ private handleTimeValidation() {
if (this.$timeValueInput.is(":invalid")) {
toastService.showError(t("time_selector.invalid_input"));
return false;
}
return true;
}
+
+ private setInternalTimeInSeconds(time: number) {
+ if (time < this.minimumSeconds) {
+ toastService.showError(t("time_selector.minimum_input", {minimumSeconds: this.minimumSeconds}));
+ return this.internalTimeInSeconds = this.minimumSeconds;
+ }
+ return this.internalTimeInSeconds = time;
+ }
+
}
diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json
index a3a4c146b..bfd0f4b23 100644
--- a/src/public/translations/en/translation.json
+++ b/src/public/translations/en/translation.json
@@ -1658,6 +1658,7 @@
"days": "Days"
},
"time_selector": {
- "invalid_input": "The entered time value is not a valid number."
+ "invalid_input": "The entered time value is not a valid number.",
+ "minimum_input": "The entered time value needs to be at least {{minimumSeconds}} seconds."
}
}
diff --git a/src/services/import/mime.ts b/src/services/import/mime.ts
index 339f3b468..b329f12ac 100644
--- a/src/services/import/mime.ts
+++ b/src/services/import/mime.ts
@@ -88,7 +88,7 @@ function getType(options: TaskData, mime: string) {
const mimeLc = mime?.toLowerCase();
switch (true) {
- case options.textImportedAsText && ["text/html", "text/markdown", "text/x-markdown"].includes(mimeLc):
+ case options.textImportedAsText && ["text/html", "text/markdown", "text/x-markdown", "text/mdx"].includes(mimeLc):
return "text";
case options.codeImportedAsCode && CODE_MIME_TYPES.has(mimeLc):
diff --git a/src/services/import/samples/Text Note.mdx b/src/services/import/samples/Text Note.mdx
new file mode 100644
index 000000000..c0d3c8e5a
--- /dev/null
+++ b/src/services/import/samples/Text Note.mdx
@@ -0,0 +1,21 @@
+Page 1
+
+Heading 1
+---------
+
+Heading 2
+---------
+
+### Heading 3
+
+```
+class Foo {
+ hoistedNoteChangedEvent({ ntxId }) {
+ if (this.isNoteContext(ntxId)) {
+ this.refresh();
+ }
+ }
+}
+```
+
+Page 2
\ No newline at end of file
diff --git a/src/services/import/samples/mdx.zip b/src/services/import/samples/mdx.zip
new file mode 100644
index 000000000..cb01c501f
Binary files /dev/null and b/src/services/import/samples/mdx.zip differ
diff --git a/src/services/import/single.spec.ts b/src/services/import/single.spec.ts
new file mode 100644
index 000000000..716eb7b91
--- /dev/null
+++ b/src/services/import/single.spec.ts
@@ -0,0 +1,49 @@
+import { describe, expect, it } from "vitest";
+import fs from "fs";
+import path from "path";
+import { fileURLToPath } from "url";
+import { dirname } from "path";
+import becca from "../../becca/becca.js";
+import BNote from "../../becca/entities/bnote.js";
+import TaskContext from "../task_context.js";
+import cls from "../cls.js";
+import sql_init from "../sql_init.js";
+import { initializeTranslations } from "../i18n.js";
+import single from "./single.js";
+const scriptDir = dirname(fileURLToPath(import.meta.url));
+
+describe("processNoteContent", () => {
+ it("treats single MDX as Markdown", async () => {
+ const mdxSample = fs.readFileSync(path.join(scriptDir, "samples", "Text Note.mdx"));
+ const taskContext = TaskContext.getInstance("import-mdx", "import", {
+ textImportedAsText: true
+ });
+
+ await new Promise((resolve, reject) => {
+ cls.init(async () => {
+ initializeTranslations();
+ sql_init.initializeDb();
+ await sql_init.dbReady;
+
+ const rootNote = becca.getNote("root");
+ if (!rootNote) {
+ reject("Missing root note.");
+ }
+
+ const importedNote = single.importSingleFile(taskContext, {
+ originalname: "Text Note.mdx",
+ mimetype: "text/mdx",
+ buffer: mdxSample
+ }, rootNote as BNote);
+ try {
+ expect(importedNote.mime).toBe("text/html");
+ expect(importedNote.type).toBe("text");
+ expect(importedNote.title).toBe("Text Note");
+ } catch (e) {
+ reject(e);
+ }
+ resolve();
+ });
+ });
+ });
+})
diff --git a/src/services/import/single.ts b/src/services/import/single.ts
index 9356300f4..79f90ca2d 100644
--- a/src/services/import/single.ts
+++ b/src/services/import/single.ts
@@ -19,7 +19,7 @@ function importSingleFile(taskContext: TaskContext, file: File, parentNote: BNot
if (taskContext?.data?.textImportedAsText) {
if (mime === "text/html") {
return importHtml(taskContext, file, parentNote);
- } else if (["text/markdown", "text/x-markdown"].includes(mime)) {
+ } else if (["text/markdown", "text/x-markdown", "text/mdx"].includes(mime)) {
return importMarkdown(taskContext, file, parentNote);
} else if (mime === "text/plain") {
return importPlainText(taskContext, file, parentNote);
diff --git a/src/services/import/zip.spec.ts b/src/services/import/zip.spec.ts
new file mode 100644
index 000000000..c29459f93
--- /dev/null
+++ b/src/services/import/zip.spec.ts
@@ -0,0 +1,46 @@
+import { describe, expect, it } from "vitest";
+import fs from "fs";
+import path from "path";
+import { fileURLToPath } from "url";
+import { dirname } from "path";
+import zip from "./zip.js";
+import becca from "../../becca/becca.js";
+import BNote from "../../becca/entities/bnote.js";
+import TaskContext from "../task_context.js";
+import cls from "../cls.js";
+import sql_init from "../sql_init.js";
+import { initializeTranslations } from "../i18n.js";
+const scriptDir = dirname(fileURLToPath(import.meta.url));
+
+describe("processNoteContent", () => {
+ it("treats single MDX as Markdown in ZIP as text note", async () => {
+ const mdxSample = fs.readFileSync(path.join(scriptDir, "samples", "mdx.zip"));
+ const taskContext = TaskContext.getInstance("import-mdx", "import", {
+ textImportedAsText: true
+ });
+
+ await new Promise((resolve, reject) => {
+ cls.init(async () => {
+ initializeTranslations();
+ sql_init.initializeDb();
+ await sql_init.dbReady;
+
+ const rootNote = becca.getNote("root");
+ if (!rootNote) {
+ expect(rootNote).toBeTruthy();
+ return;
+ }
+
+ const importedNote = await zip.importZip(taskContext, mdxSample, rootNote as BNote);
+ try {
+ expect(importedNote.mime).toBe("text/mdx");
+ expect(importedNote.type).toBe("text");
+ expect(importedNote.title).toBe("Text Note");
+ } catch (e) {
+ reject(e);
+ }
+ resolve();
+ });
+ });
+ });
+})
diff --git a/src/services/import/zip.ts b/src/services/import/zip.ts
index 61534fed3..504f28382 100644
--- a/src/services/import/zip.ts
+++ b/src/services/import/zip.ts
@@ -386,7 +386,7 @@ async function importZip(taskContext: TaskContext, fileBuffer: Buffer, importRoo
}
function processNoteContent(noteMeta: NoteMeta | undefined, type: string, mime: string, content: string | Buffer, noteTitle: string, filePath: string) {
- if ((noteMeta?.format === "markdown" || (!noteMeta && taskContext.data?.textImportedAsText && ["text/markdown", "text/x-markdown"].includes(mime))) && typeof content === "string") {
+ if ((noteMeta?.format === "markdown" || (!noteMeta && taskContext.data?.textImportedAsText && ["text/markdown", "text/x-markdown", "text/mdx"].includes(mime))) && typeof content === "string") {
content = markdownService.renderToHtml(content, noteTitle);
}
diff --git a/src/services/migration.ts b/src/services/migration.ts
index 08b07f121..f8cbfbc22 100644
--- a/src/services/migration.ts
+++ b/src/services/migration.ts
@@ -6,6 +6,7 @@ import { crash } from "./utils.js";
import resourceDir from "./resource_dir.js";
import appInfo from "./app_info.js";
import cls from "./cls.js";
+import { t } from "i18next";
interface MigrationInfo {
dbVersion: number;
@@ -18,9 +19,7 @@ async function migrate() {
const currentDbVersion = getDbVersion();
if (currentDbVersion < 214) {
- log.error("Direct migration from your current version is not supported. Please upgrade to the latest v0.60.4 first and only then to this version.");
-
- await crash();
+ await crash(t("migration.old_version"));
return;
}
@@ -83,10 +82,7 @@ async function migrate() {
log.info(`Migration to version ${mig.dbVersion} has been successful.`);
} catch (e: any) {
- log.error(`error during migration to version ${mig.dbVersion}: ${e.stack}`);
- log.error("migration failed, crashing hard"); // this is not very user-friendly :-/
-
- crash();
+ crash(t("migration.error_message", { version: mig.dbVersion, stack: e.stack }));
break; // crash() is sometimes async
}
}
@@ -136,11 +132,7 @@ async function migrateIfNecessary() {
const currentDbVersion = getDbVersion();
if (currentDbVersion > appInfo.dbVersion && process.env.TRILIUM_IGNORE_DB_VERSION !== "true") {
- log.error(
- `Current DB version ${currentDbVersion} is newer than the current DB version ${appInfo.dbVersion}, which means that it was created by a newer and incompatible version of Trilium. Upgrade to the latest version of Trilium to resolve this issue.`
- );
-
- await crash();
+ await crash(t("migration.wrong_db_version", { version: currentDbVersion, targetVersion: appInfo.dbVersion }));
}
if (!isDbUpToDate()) {
diff --git a/src/services/utils.ts b/src/services/utils.ts
index 289e1af6b..660bbbcc7 100644
--- a/src/services/utils.ts
+++ b/src/services/utils.ts
@@ -10,6 +10,8 @@ import path from "path";
import { fileURLToPath } from "url";
import { dirname, join } from "path";
import type NoteMeta from "./meta/note_meta.js";
+import log from "./log.js";
+import { t } from "i18next";
const randtoken = generator({ source: "crypto" });
@@ -105,10 +107,13 @@ export function escapeRegExp(str: string) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
-export async function crash() {
+export async function crash(message: string) {
if (isElectron) {
- (await import("electron")).app.exit(1);
+ const electron = await import("electron");
+ electron.dialog.showErrorBox(t("modals.error_title"), message);
+ electron.app.exit(1);
} else {
+ log.error(message);
process.exit(1);
}
}
@@ -168,6 +173,7 @@ export function removeTextFileExtension(filePath: string) {
switch (extension) {
case ".md":
+ case ".mdx":
case ".markdown":
case ".html":
case ".htm":
diff --git a/translations/en/server.json b/translations/en/server.json
index 49e08bb99..de60907cb 100644
--- a/translations/en/server.json
+++ b/translations/en/server.json
@@ -272,5 +272,13 @@
"today": "Open today's journal note",
"new-note": "New note",
"show-windows": "Show windows"
+ },
+ "migration": {
+ "old_version": "Direct migration from your current version is not supported. Please upgrade to the latest v0.60.4 first and only then to this version.",
+ "error_message": "Error during migration to version {{version}}: {{stack}}",
+ "wrong_db_version": "Current DB version {{version}} is newer than the current DB version {{targetVersion}}, which means that it was created by a newer and incompatible version of Trilium. Upgrade to the latest version of Trilium to resolve this issue."
+ },
+ "modals": {
+ "error_title": "Error"
}
}
diff --git a/translations/ro/server.json b/translations/ro/server.json
index ebf99082e..0023c0c86 100644
--- a/translations/ro/server.json
+++ b/translations/ro/server.json
@@ -272,5 +272,13 @@
"today": "Mergi la notița de astăzi",
"tooltip": "TriliumNext Notes",
"show-windows": "Afișează ferestrele"
+ },
+ "migration": {
+ "error_message": "Eroare la migrarea către versiunea {{version}}: {{stack}}",
+ "old_version": "Nu se poate migra la ultima versiune direct de la versiunea dvs. Actualizați mai întâi la versiunea v0.60.4 și ulterior la această versiune.",
+ "wrong_db_version": "Versiunea actuală a bazei de date ({{version}}) este mai nouă decât versiunea de bază de date suportată de aplicație ({{targetVersion}}), ceea ce înseamnă că a fost creată de către o versiune mai nouă de Trilium. Actualizați aplicația la ultima versiune pentru a putea continua."
+ },
+ "modals": {
+ "error_title": "Eroare"
}
}