diff --git a/package-lock.json b/package-lock.json index 5810daa1..43f75171 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,14 +16,14 @@ "@ag-grid-community/react": "^28.2.1", "@ag-grid-community/styles": "^28.2.1", "@emotion/react": "^11.10.4", - "@mantine/core": "^6.0.0-alpha.0", - "@mantine/dates": "^6.0.0-alpha.0", - "@mantine/dropzone": "^6.0.0-alpha.0", - "@mantine/form": "^6.0.0-alpha.0", - "@mantine/hooks": "^6.0.0-alpha.0", - "@mantine/modals": "^6.0.0-alpha.0", - "@mantine/notifications": "^6.0.0-alpha.0", - "@mantine/utils": "^6.0.0-alpha.0", + "@mantine/core": "^6.0.0-alpha.2", + "@mantine/dates": "^6.0.0-alpha.2", + "@mantine/dropzone": "^6.0.0-alpha.2", + "@mantine/form": "^6.0.0-alpha.2", + "@mantine/hooks": "^6.0.0-alpha.2", + "@mantine/modals": "^6.0.0-alpha.2", + "@mantine/notifications": "^6.0.0-alpha.2", + "@mantine/utils": "^6.0.0-alpha.2", "@tanstack/react-query": "^4.16.1", "@tanstack/react-query-devtools": "^4.16.1", "@tanstack/react-virtual": "^3.0.0-beta.39", @@ -1694,56 +1694,56 @@ } }, "node_modules/@mantine/core": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/core/-/core-6.0.0-alpha.0.tgz", - "integrity": "sha512-GUeofUfoD84JviBZjXCwzpejjgXs57jbqU9RrpzeFo90nHPrCLp+gCPGMRmpJGShQVlAHk5AWBqDMFDQOSMIwA==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-6.0.0-alpha.2.tgz", + "integrity": "sha512-9HsCPpFX8wn2tb2gVtHmiijoVnqWFSfKfI/Za4SCb3CwKL4iGLnXPKOEZxTU5YEMbAsPqFTIKo66Eh/FgbvjpA==", "dependencies": { "@floating-ui/react-dom-interactions": "^0.10.1", - "@mantine/styles": "6.0.0-alpha.0", - "@mantine/utils": "6.0.0-alpha.0", + "@mantine/styles": "6.0.0-alpha.2", + "@mantine/utils": "6.0.0-alpha.2", "@radix-ui/react-scroll-area": "1.0.2", "react-remove-scroll": "^2.5.5", "react-textarea-autosize": "8.3.4" }, "peerDependencies": { - "@mantine/hooks": "6.0.0-alpha.0", + "@mantine/hooks": "6.0.0-alpha.2", "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "node_modules/@mantine/dates": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-6.0.0-alpha.0.tgz", - "integrity": "sha512-T8KpdhU71Y0TuPvmzwuOIzEwFDzaoutqzAr1YuzwArGNJ4G1Dab9Yzlv+rJyobkEkv51zH9DY6G/NBYLOTvj3g==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-6.0.0-alpha.2.tgz", + "integrity": "sha512-EpyTYiYuupU449qzX5YNB/14+2Czd4boC7MrRW5QFsGpaDpfcj8p2fa7Avqtxd5Yj189iRjqdr43c+GIlQMEiw==", "dependencies": { - "@mantine/utils": "6.0.0-alpha.0" + "@mantine/utils": "6.0.0-alpha.2" }, "peerDependencies": { - "@mantine/core": "6.0.0-alpha.0", - "@mantine/hooks": "6.0.0-alpha.0", + "@mantine/core": "6.0.0-alpha.2", + "@mantine/hooks": "6.0.0-alpha.2", "dayjs": ">=1.0.0", "react": ">=16.8.0" } }, "node_modules/@mantine/dropzone": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-6.0.0-alpha.0.tgz", - "integrity": "sha512-c7geyTSklNfAnVUFFSha7mEXVTAHMydrpIccMbEOJKgNrRIYVCE14lk+1G+FGBEBYjkd3ezAfpugHVKmWThBFw==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-6.0.0-alpha.2.tgz", + "integrity": "sha512-b5dwc5s43mqZSBQGp2tx/Ld5rSO/J2E+dI3JQktM4CN84au0qdy8cZ17nNDA3EihbjqCoeXneR3xvmjUlRBRwQ==", "dependencies": { - "@mantine/utils": "6.0.0-alpha.0", + "@mantine/utils": "6.0.0-alpha.2", "react-dropzone": "14.2.3" }, "peerDependencies": { - "@mantine/core": "6.0.0-alpha.0", - "@mantine/hooks": "6.0.0-alpha.0", + "@mantine/core": "6.0.0-alpha.2", + "@mantine/hooks": "6.0.0-alpha.2", "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "node_modules/@mantine/form": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/form/-/form-6.0.0-alpha.0.tgz", - "integrity": "sha512-lTBsF2k4Lg1ci5votYEc3UiOkCBUbUEBDuIVhq30T78cYrHwfaLuw+WgxpY3eJC+HKOkzmowjWLCDOslRy81WQ==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/form/-/form-6.0.0-alpha.2.tgz", + "integrity": "sha512-h7sBfr6Frlygu7Jc9gsDTDLjMN0cQ1DZ7exm4Es0Q1cw30biybTAdY5HnBLPkcFYohsrBT4WvWT9v7gEcoyi8A==", "dependencies": { "fast-deep-equal": "^3.1.3", "klona": "^2.0.5" @@ -1753,46 +1753,46 @@ } }, "node_modules/@mantine/hooks": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-6.0.0-alpha.0.tgz", - "integrity": "sha512-nM07MwufE1u0TztsKqFcxWoiWVtPq9ksm9pa6YiiS7pHtnq6BE+8qK8ASBqCtTpXydMYGeIQ2fgJH2hRGVtQjg==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-6.0.0-alpha.2.tgz", + "integrity": "sha512-KHNJKN7cZ/WcGZLyRlH26d53Dd9GhsZIC4nLE7SZIJupJZQhIxYjR2XHPIRa2+e5LCG6cy2h7gViV244fLpmZw==", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@mantine/modals": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-6.0.0-alpha.0.tgz", - "integrity": "sha512-SAAuS/Z5qMzeP0ZMVfSwy5B/C4YHi3e6C2wzJ9WrDYAxmwVKFTShDffY8X0QHq452n16oc5q2H9nhsm2/4+lCg==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-6.0.0-alpha.2.tgz", + "integrity": "sha512-DUz9ZPb3j8JRlco0MouWW89BMbnHHXvbBhJUgKPLg68IlNW5BwE0HukzS222oZPpenbltwbqrICUXH5jtchm7A==", "dependencies": { - "@mantine/utils": "6.0.0-alpha.0" + "@mantine/utils": "6.0.0-alpha.2" }, "peerDependencies": { - "@mantine/core": "6.0.0-alpha.0", - "@mantine/hooks": "6.0.0-alpha.0", + "@mantine/core": "6.0.0-alpha.2", + "@mantine/hooks": "6.0.0-alpha.2", "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "node_modules/@mantine/notifications": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-6.0.0-alpha.0.tgz", - "integrity": "sha512-itxhWPiOBfNvNPnrmNEuuDsjCyOYznYYrsnklYywwGpvMfXFXJjOiAhgGqEf7VsEo56k787jDATt9aveBIDofQ==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-6.0.0-alpha.2.tgz", + "integrity": "sha512-Z4HXSh5Gut6g7DOZY3SOkOemHIuBlMoe6yyHPiK5n6V6NFJfnSiaqK3GFYjUBN+tCt2fATGuv+0o9D5L0elVHQ==", "dependencies": { - "@mantine/utils": "6.0.0-alpha.0", + "@mantine/utils": "6.0.0-alpha.2", "react-transition-group": "4.4.2" }, "peerDependencies": { - "@mantine/core": "6.0.0-alpha.0", - "@mantine/hooks": "6.0.0-alpha.0", + "@mantine/core": "6.0.0-alpha.2", + "@mantine/hooks": "6.0.0-alpha.2", "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "node_modules/@mantine/styles": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-6.0.0-alpha.0.tgz", - "integrity": "sha512-DEq94AX41zOr5wsRO5vn8rLb3cFhfycU0pELzMHi8TLUiMuiphTn8eM5QrrfX78AGDK4z6fFwT+KI7J5Brm+mA==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-6.0.0-alpha.2.tgz", + "integrity": "sha512-DWYk4DiJ7SAmrTTjXrehmGwkc8X9EeEgZvnsDXndQ5DoSnEX3znHvdtP4A9V2AdSz3OBG/i8fAUAaW0MOd5lkw==", "dependencies": { "clsx": "1.1.1", "csstype": "3.0.9" @@ -1809,9 +1809,9 @@ "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" }, "node_modules/@mantine/utils": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/utils/-/utils-6.0.0-alpha.0.tgz", - "integrity": "sha512-1UggIXUVrsYi/Fo3wc/0v1A0rwV562TJmoqUtaJCyB/cyhemytEztpfl4XzxhITwoy7Ydziw3ubZnfMMchUX5w==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/utils/-/utils-6.0.0-alpha.2.tgz", + "integrity": "sha512-SXcVeSHyPPk8lbR/mj2c5MoizwFU/WaNzkEKLlaUbi0I7HwReUaf8dJuiURTySwxJQpu7kiLEYmv2ETNowNlGQ==", "peerDependencies": { "react": ">=16.8.0" } @@ -2310,32 +2310,23 @@ } }, "node_modules/@teamsupercell/typings-for-css-modules-loader": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@teamsupercell/typings-for-css-modules-loader/-/typings-for-css-modules-loader-2.5.1.tgz", - "integrity": "sha512-8Dz/2awNbkrFHf3IpF8YGUPniXAZW/z7OTiosO+xucIU1+jVg/cT4uyGZ7z9cmAsnExsxq4igazxwgGBXVpUgA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@teamsupercell/typings-for-css-modules-loader/-/typings-for-css-modules-loader-2.5.2.tgz", + "integrity": "sha512-3sqH2B4itcm5XgV1IHENt4NOaW7bOC1CwJr63vrdKWWyKVxNxtBM+ABVhJZYFCCVAwNy7ulA64z6HyQqw96m4A==", "dev": true, "dependencies": { "camelcase": "^5.3.1", - "loader-utils": "1.2.3", + "loader-utils": "^1.4.2", "schema-utils": "^2.0.1" }, "optionalDependencies": { "prettier": "*" } }, - "node_modules/@teamsupercell/typings-for-css-modules-loader/node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/@teamsupercell/typings-for-css-modules-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -2345,13 +2336,13 @@ } }, "node_modules/@teamsupercell/typings-for-css-modules-loader/node_modules/loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, "dependencies": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" }, "engines": { @@ -3803,15 +3794,6 @@ "ajv": "^6.9.1" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -3895,9 +3877,9 @@ "dev": true }, "node_modules/app-builder-lib": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.3.3.tgz", - "integrity": "sha512-m0+M53+HYMzqKxwNQZT143K7WwXEGUy9LY31l8dJphXx2P/FQod615mVbxHyqbDCG4J5bHdWm21qZ0e2DVY6CQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.6.0.tgz", + "integrity": "sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA==", "dev": true, "dependencies": { "@develar/schema-utils": "~2.6.5", @@ -3906,13 +3888,13 @@ "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "23.3.3", - "builder-util-runtime": "9.0.3", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.4", "ejs": "^3.1.7", "electron-osx-sign": "^0.6.0", - "electron-publish": "23.3.3", + "electron-publish": "23.6.0", "form-data": "^4.0.0", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", @@ -3932,9 +3914,9 @@ } }, "node_modules/app-builder-lib/node_modules/builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -4217,9 +4199,10 @@ } }, "node_modules/asar": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz", - "integrity": "sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz", + "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==", + "deprecated": "Please use @electron/asar moving forward. There is no API change, just a package name change", "dev": true, "dependencies": { "chromium-pickle-js": "^0.2.0", @@ -4763,40 +4746,6 @@ "dev": true, "optional": true }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -5000,9 +4949,9 @@ "dev": true }, "node_modules/builder-util": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.3.3.tgz", - "integrity": "sha512-MJZlUiq2PY5hjYv9+XNaoYdsITqvLgRDoHSFg/4nzpInbNxNjLQOolL04Zsyp+hgfcbFvMC4h0KkR1CMPHLWbA==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.6.0.tgz", + "integrity": "sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ==", "dev": true, "dependencies": { "@types/debug": "^4.1.6", @@ -5010,7 +4959,7 @@ "7zip-bin": "~5.1.1", "app-builder-bin": "4.0.0", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.0.3", + "builder-util-runtime": "9.1.1", "chalk": "^4.1.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", @@ -5037,9 +4986,9 @@ } }, "node_modules/builder-util/node_modules/builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -5668,18 +5617,6 @@ "node": ">=6" } }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -6822,9 +6759,9 @@ "dev": true }, "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, "engines": { "node": ">=0.10" @@ -6848,15 +6785,6 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -7104,14 +7032,14 @@ } }, "node_modules/dmg-builder": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.3.3.tgz", - "integrity": "sha512-ECwAjt+ZWyOvddrkDx1xRD6IVUCZb5SV6vSMHZd+Va3G2sUXHrnglR1cGDKRF4oYRQm8SYVrpLZKbi8npyDcAQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.6.0.tgz", + "integrity": "sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA==", "dev": true, "dependencies": { - "app-builder-lib": "23.3.3", - "builder-util": "23.3.3", - "builder-util-runtime": "9.0.3", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" @@ -7121,9 +7049,9 @@ } }, "node_modules/dmg-builder/node_modules/builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -7413,9 +7341,9 @@ } }, "node_modules/electron": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-21.2.0.tgz", - "integrity": "sha512-oKV4fo8l6jlOZ1cYZ4RpZz02ZxLuBo3SO7DH+FrJ8uDyCirP+eVJ/qlzu23odtNe0P7S/mYAZbC6abZHWoqtLg==", + "version": "21.4.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-21.4.0.tgz", + "integrity": "sha512-eko9hBBgJujF6er/LYhft1Os4NKaw/lcitF2HWjDsjw2B2aCxWLkw+gPslJVhW6OfusC/vzpvqi26XEgnVnnOg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -7431,23 +7359,23 @@ } }, "node_modules/electron-builder": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.3.3.tgz", - "integrity": "sha512-mFYYdhoFPKevP6y5uaaF3dusmB2OtQ/HnwwpyOePeU7QDS0SEIAUokQsHUanAiJAZcBqtY7iyLBgX18QybdFFw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.6.0.tgz", + "integrity": "sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw==", "dev": true, "dependencies": { "@types/yargs": "^17.0.1", - "app-builder-lib": "23.3.3", - "builder-util": "23.3.3", - "builder-util-runtime": "9.0.3", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "chalk": "^4.1.1", - "dmg-builder": "23.3.3", + "dmg-builder": "23.6.0", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", "read-config-file": "6.2.0", - "update-notifier": "^5.1.0", - "yargs": "^17.0.1" + "simple-update-notifier": "^1.0.7", + "yargs": "^17.5.1" }, "bin": { "electron-builder": "cli.js", @@ -7458,9 +7386,9 @@ } }, "node_modules/electron-builder/node_modules/builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -7470,6 +7398,20 @@ "node": ">=12.0.0" } }, + "node_modules/electron-builder/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/electron-builder/node_modules/fs-extra": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", @@ -7506,27 +7448,27 @@ } }, "node_modules/electron-builder/node_modules/yargs": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.0.tgz", - "integrity": "sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" } }, "node_modules/electron-builder/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { "node": ">=12" @@ -7635,6 +7577,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", + "deprecated": "Please use @electron/osx-sign moving forward. Be aware the API is slightly different", "dev": true, "dependencies": { "bluebird": "^3.5.0", @@ -7680,14 +7623,14 @@ "dev": true }, "node_modules/electron-publish": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.3.3.tgz", - "integrity": "sha512-1dX17eE5xVXedTxjC+gjsP74oC0+sIHgqysp0ryTlF9+yfQUyXjBk6kcK+zhtBA2SsHMSglDtM+JPxDD/WpPTQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.6.0.tgz", + "integrity": "sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg==", "dev": true, "dependencies": { "@types/fs-extra": "^9.0.11", - "builder-util": "23.3.3", - "builder-util-runtime": "9.0.3", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "chalk": "^4.1.1", "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", @@ -7695,9 +7638,9 @@ } }, "node_modules/electron-publish/node_modules/builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -7733,18 +7676,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/electron-publish/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/electron-publish/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -8379,15 +8310,6 @@ "node": ">=6" } }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -10160,6 +10082,12 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", + "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -10307,9 +10235,9 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "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" @@ -10889,30 +10817,6 @@ "node": ">=10.0" } }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "engines": { - "node": ">=10" - } - }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -11282,15 +11186,6 @@ "node": ">=0.10.0" } }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -11691,16 +11586,16 @@ } }, "node_modules/i18next-parser": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/i18next-parser/-/i18next-parser-6.5.0.tgz", - "integrity": "sha512-sD+6QRn3pnZCLBdncOy2YZ1RTeGSJV1UxdCzgBJEllszkGfnlYCMkevQr99RK7ph4cQyjoXr2HgVqwM3dtYZiQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/i18next-parser/-/i18next-parser-6.6.0.tgz", + "integrity": "sha512-yA3W6PL+7epCyUFTpUDdztKArfpeGMWRUOnB/4FZRodfXkjCIBcBg728h6b/lrBTbva4OlFjVgv1kCXbvZVRWQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.15.4", "broccoli-plugin": "^4.0.7", "cheerio": "^1.0.0-rc.2", "colors": "1.4.0", - "commander": "~9.3.0", + "commander": "~9.4.1", "concat-stream": "~2.0.0", "eol": "^0.9.1", "fs-extra": "^10.0.0", @@ -11711,7 +11606,7 @@ "sort-keys": "^5.0.0", "through2": "~4.0.2", "typescript": "^4.2.4", - "vinyl": "~2.2.1", + "vinyl": "~3.0.0", "vinyl-fs": "^3.0.2", "vue-template-compiler": "^2.6.11" }, @@ -11724,6 +11619,15 @@ "yarn": ">=1" } }, + "node_modules/i18next-parser/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/i18next-parser/node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -11734,9 +11638,9 @@ } }, "node_modules/i18next-parser/node_modules/commander": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "dev": true, "engines": { "node": "^12.20.0 || >=14" @@ -11797,6 +11701,15 @@ "node": ">= 6" } }, + "node_modules/i18next-parser/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/i18next-parser/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -11806,6 +11719,22 @@ "node": ">= 10.0.0" } }, + "node_modules/i18next-parser/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/iconv-corefoundation": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", @@ -11945,15 +11874,6 @@ "node": ">=8" } }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -12355,22 +12275,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -12407,18 +12311,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -12699,12 +12591,6 @@ "node": ">=8" } }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -13621,9 +13507,9 @@ "optional": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -13742,18 +13628,6 @@ "language-subtag-registry": "~0.3.2" } }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", @@ -14077,9 +13951,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -14641,6 +14515,18 @@ "node": ">=8.6" } }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -15684,30 +15570,6 @@ "node": ">=6" } }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -17255,18 +17117,6 @@ "node": ">=6" } }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", @@ -17302,6 +17152,12 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -17391,30 +17247,6 @@ "node": ">=0.10.0" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -18026,30 +17858,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -18643,27 +18451,6 @@ "dev": true, "optional": true }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -18967,6 +18754,27 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/sirv": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", @@ -19636,6 +19444,16 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, + "node_modules/streamx": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.13.2.tgz", + "integrity": "sha512-+TWqixPhGDXEG9L/XczSbhfkmwAtGs3BJX5QNU6cvno+pOLKeszByWcnaTu6dg8efsTYqR8ZZuXWHhZfgrxMvA==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -21432,6 +21250,15 @@ "node": ">=10" } }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "dependencies": { + "streamx": "^2.12.5" + } + }, "node_modules/temp-file": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", @@ -22058,9 +21885,9 @@ } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -22513,90 +22340,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/update-notifier/node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/update-notifier/node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -23658,18 +23401,6 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", @@ -23759,15 +23490,6 @@ "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -25109,71 +24831,71 @@ } }, "@mantine/core": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/core/-/core-6.0.0-alpha.0.tgz", - "integrity": "sha512-GUeofUfoD84JviBZjXCwzpejjgXs57jbqU9RrpzeFo90nHPrCLp+gCPGMRmpJGShQVlAHk5AWBqDMFDQOSMIwA==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-6.0.0-alpha.2.tgz", + "integrity": "sha512-9HsCPpFX8wn2tb2gVtHmiijoVnqWFSfKfI/Za4SCb3CwKL4iGLnXPKOEZxTU5YEMbAsPqFTIKo66Eh/FgbvjpA==", "requires": { "@floating-ui/react-dom-interactions": "^0.10.1", - "@mantine/styles": "6.0.0-alpha.0", - "@mantine/utils": "6.0.0-alpha.0", + "@mantine/styles": "6.0.0-alpha.2", + "@mantine/utils": "6.0.0-alpha.2", "@radix-ui/react-scroll-area": "1.0.2", "react-remove-scroll": "^2.5.5", "react-textarea-autosize": "8.3.4" } }, "@mantine/dates": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-6.0.0-alpha.0.tgz", - "integrity": "sha512-T8KpdhU71Y0TuPvmzwuOIzEwFDzaoutqzAr1YuzwArGNJ4G1Dab9Yzlv+rJyobkEkv51zH9DY6G/NBYLOTvj3g==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-6.0.0-alpha.2.tgz", + "integrity": "sha512-EpyTYiYuupU449qzX5YNB/14+2Czd4boC7MrRW5QFsGpaDpfcj8p2fa7Avqtxd5Yj189iRjqdr43c+GIlQMEiw==", "requires": { - "@mantine/utils": "6.0.0-alpha.0" + "@mantine/utils": "6.0.0-alpha.2" } }, "@mantine/dropzone": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-6.0.0-alpha.0.tgz", - "integrity": "sha512-c7geyTSklNfAnVUFFSha7mEXVTAHMydrpIccMbEOJKgNrRIYVCE14lk+1G+FGBEBYjkd3ezAfpugHVKmWThBFw==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-6.0.0-alpha.2.tgz", + "integrity": "sha512-b5dwc5s43mqZSBQGp2tx/Ld5rSO/J2E+dI3JQktM4CN84au0qdy8cZ17nNDA3EihbjqCoeXneR3xvmjUlRBRwQ==", "requires": { - "@mantine/utils": "6.0.0-alpha.0", + "@mantine/utils": "6.0.0-alpha.2", "react-dropzone": "14.2.3" } }, "@mantine/form": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/form/-/form-6.0.0-alpha.0.tgz", - "integrity": "sha512-lTBsF2k4Lg1ci5votYEc3UiOkCBUbUEBDuIVhq30T78cYrHwfaLuw+WgxpY3eJC+HKOkzmowjWLCDOslRy81WQ==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/form/-/form-6.0.0-alpha.2.tgz", + "integrity": "sha512-h7sBfr6Frlygu7Jc9gsDTDLjMN0cQ1DZ7exm4Es0Q1cw30biybTAdY5HnBLPkcFYohsrBT4WvWT9v7gEcoyi8A==", "requires": { "fast-deep-equal": "^3.1.3", "klona": "^2.0.5" } }, "@mantine/hooks": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-6.0.0-alpha.0.tgz", - "integrity": "sha512-nM07MwufE1u0TztsKqFcxWoiWVtPq9ksm9pa6YiiS7pHtnq6BE+8qK8ASBqCtTpXydMYGeIQ2fgJH2hRGVtQjg==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-6.0.0-alpha.2.tgz", + "integrity": "sha512-KHNJKN7cZ/WcGZLyRlH26d53Dd9GhsZIC4nLE7SZIJupJZQhIxYjR2XHPIRa2+e5LCG6cy2h7gViV244fLpmZw==", "requires": {} }, "@mantine/modals": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-6.0.0-alpha.0.tgz", - "integrity": "sha512-SAAuS/Z5qMzeP0ZMVfSwy5B/C4YHi3e6C2wzJ9WrDYAxmwVKFTShDffY8X0QHq452n16oc5q2H9nhsm2/4+lCg==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-6.0.0-alpha.2.tgz", + "integrity": "sha512-DUz9ZPb3j8JRlco0MouWW89BMbnHHXvbBhJUgKPLg68IlNW5BwE0HukzS222oZPpenbltwbqrICUXH5jtchm7A==", "requires": { - "@mantine/utils": "6.0.0-alpha.0" + "@mantine/utils": "6.0.0-alpha.2" } }, "@mantine/notifications": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-6.0.0-alpha.0.tgz", - "integrity": "sha512-itxhWPiOBfNvNPnrmNEuuDsjCyOYznYYrsnklYywwGpvMfXFXJjOiAhgGqEf7VsEo56k787jDATt9aveBIDofQ==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-6.0.0-alpha.2.tgz", + "integrity": "sha512-Z4HXSh5Gut6g7DOZY3SOkOemHIuBlMoe6yyHPiK5n6V6NFJfnSiaqK3GFYjUBN+tCt2fATGuv+0o9D5L0elVHQ==", "requires": { - "@mantine/utils": "6.0.0-alpha.0", + "@mantine/utils": "6.0.0-alpha.2", "react-transition-group": "4.4.2" } }, "@mantine/styles": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-6.0.0-alpha.0.tgz", - "integrity": "sha512-DEq94AX41zOr5wsRO5vn8rLb3cFhfycU0pELzMHi8TLUiMuiphTn8eM5QrrfX78AGDK4z6fFwT+KI7J5Brm+mA==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-6.0.0-alpha.2.tgz", + "integrity": "sha512-DWYk4DiJ7SAmrTTjXrehmGwkc8X9EeEgZvnsDXndQ5DoSnEX3znHvdtP4A9V2AdSz3OBG/i8fAUAaW0MOd5lkw==", "requires": { "clsx": "1.1.1", "csstype": "3.0.9" @@ -25187,9 +24909,9 @@ } }, "@mantine/utils": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@mantine/utils/-/utils-6.0.0-alpha.0.tgz", - "integrity": "sha512-1UggIXUVrsYi/Fo3wc/0v1A0rwV562TJmoqUtaJCyB/cyhemytEztpfl4XzxhITwoy7Ydziw3ubZnfMMchUX5w==", + "version": "6.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mantine/utils/-/utils-6.0.0-alpha.2.tgz", + "integrity": "sha512-SXcVeSHyPPk8lbR/mj2c5MoizwFU/WaNzkEKLlaUbi0I7HwReUaf8dJuiURTySwxJQpu7kiLEYmv2ETNowNlGQ==", "requires": {} }, "@mdn/browser-compat-data": { @@ -25545,40 +25267,34 @@ "integrity": "sha512-VZ1ESIo+PAPOsxqGzccFPWDD/gsJAViSTU6glhd5pLSMkYDsmtdklfYrE3bWLC3dsbLWI689yzpLgh436v26mQ==" }, "@teamsupercell/typings-for-css-modules-loader": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@teamsupercell/typings-for-css-modules-loader/-/typings-for-css-modules-loader-2.5.1.tgz", - "integrity": "sha512-8Dz/2awNbkrFHf3IpF8YGUPniXAZW/z7OTiosO+xucIU1+jVg/cT4uyGZ7z9cmAsnExsxq4igazxwgGBXVpUgA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@teamsupercell/typings-for-css-modules-loader/-/typings-for-css-modules-loader-2.5.2.tgz", + "integrity": "sha512-3sqH2B4itcm5XgV1IHENt4NOaW7bOC1CwJr63vrdKWWyKVxNxtBM+ABVhJZYFCCVAwNy7ulA64z6HyQqw96m4A==", "dev": true, "requires": { "camelcase": "^5.3.1", - "loader-utils": "1.2.3", + "loader-utils": "^1.4.2", "prettier": "*", "schema-utils": "^2.0.1" }, "dependencies": { - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" } }, "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" } }, @@ -26804,15 +26520,6 @@ "dev": true, "requires": {} }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" - } - }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -26868,9 +26575,9 @@ "dev": true }, "app-builder-lib": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.3.3.tgz", - "integrity": "sha512-m0+M53+HYMzqKxwNQZT143K7WwXEGUy9LY31l8dJphXx2P/FQod615mVbxHyqbDCG4J5bHdWm21qZ0e2DVY6CQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.6.0.tgz", + "integrity": "sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA==", "dev": true, "requires": { "@develar/schema-utils": "~2.6.5", @@ -26879,13 +26586,13 @@ "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "23.3.3", - "builder-util-runtime": "9.0.3", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.4", "ejs": "^3.1.7", "electron-osx-sign": "^0.6.0", - "electron-publish": "23.3.3", + "electron-publish": "23.6.0", "form-data": "^4.0.0", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", @@ -26902,9 +26609,9 @@ }, "dependencies": { "builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "requires": { "debug": "^4.3.4", @@ -27114,9 +26821,9 @@ "dev": true }, "asar": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz", - "integrity": "sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz", + "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==", "dev": true, "requires": { "@types/glob": "^7.1.1", @@ -27541,30 +27248,6 @@ "dev": true, "optional": true }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -27715,9 +27398,9 @@ "dev": true }, "builder-util": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.3.3.tgz", - "integrity": "sha512-MJZlUiq2PY5hjYv9+XNaoYdsITqvLgRDoHSFg/4nzpInbNxNjLQOolL04Zsyp+hgfcbFvMC4h0KkR1CMPHLWbA==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.6.0.tgz", + "integrity": "sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ==", "dev": true, "requires": { "@types/debug": "^4.1.6", @@ -27725,7 +27408,7 @@ "7zip-bin": "~5.1.1", "app-builder-bin": "4.0.0", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.0.3", + "builder-util-runtime": "9.1.1", "chalk": "^4.1.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", @@ -27740,9 +27423,9 @@ }, "dependencies": { "builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "requires": { "debug": "^4.3.4", @@ -28225,12 +27908,6 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -29084,9 +28761,9 @@ "dev": true }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, "decompress-response": { @@ -29104,12 +28781,6 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -29299,14 +28970,14 @@ } }, "dmg-builder": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.3.3.tgz", - "integrity": "sha512-ECwAjt+ZWyOvddrkDx1xRD6IVUCZb5SV6vSMHZd+Va3G2sUXHrnglR1cGDKRF4oYRQm8SYVrpLZKbi8npyDcAQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.6.0.tgz", + "integrity": "sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA==", "dev": true, "requires": { - "app-builder-lib": "23.3.3", - "builder-util": "23.3.3", - "builder-util-runtime": "9.0.3", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "dmg-license": "^1.0.11", "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", @@ -29314,9 +28985,9 @@ }, "dependencies": { "builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "requires": { "debug": "^4.3.4", @@ -29548,9 +29219,9 @@ } }, "electron": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-21.2.0.tgz", - "integrity": "sha512-oKV4fo8l6jlOZ1cYZ4RpZz02ZxLuBo3SO7DH+FrJ8uDyCirP+eVJ/qlzu23odtNe0P7S/mYAZbC6abZHWoqtLg==", + "version": "21.4.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-21.4.0.tgz", + "integrity": "sha512-eko9hBBgJujF6er/LYhft1Os4NKaw/lcitF2HWjDsjw2B2aCxWLkw+gPslJVhW6OfusC/vzpvqi26XEgnVnnOg==", "dev": true, "requires": { "@electron/get": "^1.14.1", @@ -29567,35 +29238,46 @@ } }, "electron-builder": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.3.3.tgz", - "integrity": "sha512-mFYYdhoFPKevP6y5uaaF3dusmB2OtQ/HnwwpyOePeU7QDS0SEIAUokQsHUanAiJAZcBqtY7iyLBgX18QybdFFw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.6.0.tgz", + "integrity": "sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw==", "dev": true, "requires": { "@types/yargs": "^17.0.1", - "app-builder-lib": "23.3.3", - "builder-util": "23.3.3", - "builder-util-runtime": "9.0.3", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "chalk": "^4.1.1", - "dmg-builder": "23.3.3", + "dmg-builder": "23.6.0", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", "read-config-file": "6.2.0", - "update-notifier": "^5.1.0", - "yargs": "^17.0.1" + "simple-update-notifier": "^1.0.7", + "yargs": "^17.5.1" }, "dependencies": { "builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "requires": { "debug": "^4.3.4", "sax": "^1.2.4" } }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, "fs-extra": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", @@ -29624,24 +29306,24 @@ "dev": true }, "yargs": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.0.tgz", - "integrity": "sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" } }, "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true } } @@ -29774,14 +29456,14 @@ } }, "electron-publish": { - "version": "23.3.3", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.3.3.tgz", - "integrity": "sha512-1dX17eE5xVXedTxjC+gjsP74oC0+sIHgqysp0ryTlF9+yfQUyXjBk6kcK+zhtBA2SsHMSglDtM+JPxDD/WpPTQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.6.0.tgz", + "integrity": "sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg==", "dev": true, "requires": { "@types/fs-extra": "^9.0.11", - "builder-util": "23.3.3", - "builder-util-runtime": "9.0.3", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "chalk": "^4.1.1", "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", @@ -29789,9 +29471,9 @@ }, "dependencies": { "builder-util-runtime": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", - "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dev": true, "requires": { "debug": "^4.3.4", @@ -29819,12 +29501,6 @@ "universalify": "^2.0.0" } }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -30307,12 +29983,6 @@ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -31584,6 +31254,12 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "fast-fifo": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", + "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==", + "dev": true + }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -31708,9 +31384,9 @@ } }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -32162,23 +31838,6 @@ "serialize-error": "^7.0.1" } }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "requires": { - "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - } - } - }, "global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -32466,12 +32125,6 @@ } } }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -32783,16 +32436,16 @@ } }, "i18next-parser": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/i18next-parser/-/i18next-parser-6.5.0.tgz", - "integrity": "sha512-sD+6QRn3pnZCLBdncOy2YZ1RTeGSJV1UxdCzgBJEllszkGfnlYCMkevQr99RK7ph4cQyjoXr2HgVqwM3dtYZiQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/i18next-parser/-/i18next-parser-6.6.0.tgz", + "integrity": "sha512-yA3W6PL+7epCyUFTpUDdztKArfpeGMWRUOnB/4FZRodfXkjCIBcBg728h6b/lrBTbva4OlFjVgv1kCXbvZVRWQ==", "dev": true, "requires": { "@babel/runtime": "^7.15.4", "broccoli-plugin": "^4.0.7", "cheerio": "^1.0.0-rc.2", "colors": "1.4.0", - "commander": "~9.3.0", + "commander": "~9.4.1", "concat-stream": "~2.0.0", "eol": "^0.9.1", "fs-extra": "^10.0.0", @@ -32803,11 +32456,17 @@ "sort-keys": "^5.0.0", "through2": "~4.0.2", "typescript": "^4.2.4", - "vinyl": "~2.2.1", + "vinyl": "~3.0.0", "vinyl-fs": "^3.0.2", "vue-template-compiler": "^2.6.11" }, "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -32815,9 +32474,9 @@ "dev": true }, "commander": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "dev": true }, "concat-stream": { @@ -32864,11 +32523,30 @@ "util-deprecate": "^1.0.1" } }, + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true + }, + "vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + } } } }, @@ -32963,12 +32641,6 @@ } } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, "import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -33258,16 +32930,6 @@ "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -33292,12 +32954,6 @@ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -33483,12 +33139,6 @@ "is-docker": "^2.0.0" } }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -34208,9 +33858,9 @@ "optional": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "jsonfile": { "version": "4.0.0", @@ -34305,15 +33955,6 @@ "language-subtag-registry": "~0.3.2" } }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, "lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", @@ -34542,9 +34183,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "requires": { "big.js": "^5.2.2", @@ -34982,6 +34623,12 @@ "picomatch": "^2.3.1" } }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -35767,26 +35414,6 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -36920,15 +36547,6 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, "qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", @@ -36944,6 +36562,12 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -37016,26 +36640,6 @@ } } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - } - } - }, "react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -37467,24 +37071,6 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -37934,23 +37520,6 @@ "dev": true, "optional": true }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -38204,6 +37773,23 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, "sirv": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", @@ -38753,6 +38339,16 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, + "streamx": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.13.2.tgz", + "integrity": "sha512-+TWqixPhGDXEG9L/XczSbhfkmwAtGs3BJX5QNU6cvno+pOLKeszByWcnaTu6dg8efsTYqR8ZZuXWHhZfgrxMvA==", + "dev": true, + "requires": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -40162,6 +39758,15 @@ } } }, + "teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "requires": { + "streamx": "^2.12.5" + } + }, "temp-file": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", @@ -40591,9 +40196,9 @@ }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -40991,74 +40596,6 @@ "picocolors": "^1.0.0" } }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - } - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -41842,15 +41379,6 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, "wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", @@ -41914,12 +41442,6 @@ "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", diff --git a/package.json b/package.json index 088cc081..aea5d439 100644 --- a/package.json +++ b/package.json @@ -254,14 +254,14 @@ "@ag-grid-community/react": "^28.2.1", "@ag-grid-community/styles": "^28.2.1", "@emotion/react": "^11.10.4", - "@mantine/core": "^6.0.0-alpha.0", - "@mantine/dates": "^6.0.0-alpha.0", - "@mantine/dropzone": "^6.0.0-alpha.0", - "@mantine/form": "^6.0.0-alpha.0", - "@mantine/hooks": "^6.0.0-alpha.0", - "@mantine/modals": "^6.0.0-alpha.0", - "@mantine/notifications": "^6.0.0-alpha.0", - "@mantine/utils": "^6.0.0-alpha.0", + "@mantine/core": "^6.0.0-alpha.2", + "@mantine/dates": "^6.0.0-alpha.2", + "@mantine/dropzone": "^6.0.0-alpha.2", + "@mantine/form": "^6.0.0-alpha.2", + "@mantine/hooks": "^6.0.0-alpha.2", + "@mantine/modals": "^6.0.0-alpha.2", + "@mantine/notifications": "^6.0.0-alpha.2", + "@mantine/utils": "^6.0.0-alpha.2", "@tanstack/react-query": "^4.16.1", "@tanstack/react-query-devtools": "^4.16.1", "@tanstack/react-virtual": "^3.0.0-beta.39", diff --git a/src/renderer/api/controller.ts b/src/renderer/api/controller.ts index 4c3602f4..f3fd235a 100644 --- a/src/renderer/api/controller.ts +++ b/src/renderer/api/controller.ts @@ -39,11 +39,16 @@ import type { FavoriteArgs, TopSongListArgs, RawTopSongListResponse, + AddToPlaylistArgs, + RawAddToPlaylistResponse, + RemoveFromPlaylistArgs, + RawRemoveFromPlaylistResponse, } from '/@/renderer/api/types'; import { subsonicApi } from '/@/renderer/api/subsonic.api'; import { jellyfinApi } from '/@/renderer/api/jellyfin.api'; export type ControllerEndpoint = Partial<{ + addToPlaylist: (args: AddToPlaylistArgs) => Promise; clearPlaylist: () => void; createFavorite: (args: FavoriteArgs) => Promise; createPlaylist: (args: CreatePlaylistArgs) => Promise; @@ -69,6 +74,7 @@ export type ControllerEndpoint = Partial<{ getSongList: (args: SongListArgs) => Promise; getTopSongs: (args: TopSongListArgs) => Promise; getUserList: (args: UserListArgs) => Promise; + removeFromPlaylist: (args: RemoveFromPlaylistArgs) => Promise; updatePlaylist: (args: UpdatePlaylistArgs) => Promise; updateRating: (args: RatingArgs) => Promise; }>; @@ -81,6 +87,7 @@ type ApiController = { const endpoints: ApiController = { jellyfin: { + addToPlaylist: jellyfinApi.addToPlaylist, clearPlaylist: undefined, createFavorite: jellyfinApi.createFavorite, createPlaylist: jellyfinApi.createPlaylist, @@ -106,10 +113,12 @@ const endpoints: ApiController = { getSongList: jellyfinApi.getSongList, getTopSongs: undefined, getUserList: undefined, + removeFromPlaylist: jellyfinApi.removeFromPlaylist, updatePlaylist: jellyfinApi.updatePlaylist, updateRating: undefined, }, navidrome: { + addToPlaylist: navidromeApi.addToPlaylist, clearPlaylist: undefined, createFavorite: subsonicApi.createFavorite, createPlaylist: navidromeApi.createPlaylist, @@ -135,6 +144,7 @@ const endpoints: ApiController = { getSongList: navidromeApi.getSongList, getTopSongs: subsonicApi.getTopSongList, getUserList: navidromeApi.getUserList, + removeFromPlaylist: navidromeApi.removeFromPlaylist, updatePlaylist: navidromeApi.updatePlaylist, updateRating: subsonicApi.updateRating, }, @@ -239,6 +249,14 @@ const deletePlaylist = async (args: DeletePlaylistArgs) => { return (apiController('deletePlaylist') as ControllerEndpoint['deletePlaylist'])?.(args); }; +const addToPlaylist = async (args: AddToPlaylistArgs) => { + return (apiController('addToPlaylist') as ControllerEndpoint['addToPlaylist'])?.(args); +}; + +const removeFromPlaylist = async (args: RemoveFromPlaylistArgs) => { + return (apiController('removeFromPlaylist') as ControllerEndpoint['removeFromPlaylist'])?.(args); +}; + const getPlaylistDetail = async (args: PlaylistDetailArgs) => { return (apiController('getPlaylistDetail') as ControllerEndpoint['getPlaylistDetail'])?.(args); }; @@ -270,6 +288,7 @@ const getTopSongList = async (args: TopSongListArgs) => { }; export const controller = { + addToPlaylist, createFavorite, createPlaylist, deleteFavorite, @@ -287,6 +306,7 @@ export const controller = { getSongList, getTopSongList, getUserList, + removeFromPlaylist, updatePlaylist, updateRating, }; diff --git a/src/renderer/api/jellyfin.api.ts b/src/renderer/api/jellyfin.api.ts index 34ebae14..d860de3e 100644 --- a/src/renderer/api/jellyfin.api.ts +++ b/src/renderer/api/jellyfin.api.ts @@ -1,6 +1,8 @@ import ky from 'ky'; import { nanoid } from 'nanoid/non-secure'; import type { + JFAddToPlaylist, + JFAddToPlaylistParams, JFAlbum, JFAlbumArtist, JFAlbumArtistDetail, @@ -27,6 +29,8 @@ import type { JFPlaylistDetailResponse, JFPlaylistList, JFPlaylistListResponse, + JFRemoveFromPlaylist, + JFRemoveFromPlaylistParams, JFSong, JFSongList, JFSongListParams, @@ -64,6 +68,8 @@ import { UpdatePlaylistArgs, UpdatePlaylistResponse, LibraryItem, + RemoveFromPlaylistArgs, + AddToPlaylistArgs, } from '/@/renderer/api/types'; import { useAuthStore } from '/@/renderer/store'; import { ServerListItem, ServerType } from '/@/renderer/types'; @@ -362,6 +368,45 @@ const getSongList = async (args: SongListArgs): Promise => { }; }; +const addToPlaylist = async (args: AddToPlaylistArgs): Promise => { + const { query, body, server, signal } = args; + + const searchParams: JFAddToPlaylistParams = { + ids: body.songId, + userId: server?.userId || '', + }; + + await api + .post(`playlists/${query.id}/items`, { + headers: { 'X-MediaBrowser-Token': server?.credential }, + prefixUrl: server?.url, + searchParams: parseSearchParams(searchParams), + signal, + }) + .json(); + + return null; +}; + +const removeFromPlaylist = async (args: RemoveFromPlaylistArgs): Promise => { + const { query, server, signal } = args; + + const searchParams: JFRemoveFromPlaylistParams = { + entryIds: query.songId, + }; + + await api + .delete(`playlists/${query.id}/items`, { + headers: { 'X-MediaBrowser-Token': server?.credential }, + prefixUrl: server?.url, + searchParams: parseSearchParams(searchParams), + signal, + }) + .json(); + + return null; +}; + const getPlaylistDetail = async (args: PlaylistDetailArgs): Promise => { const { query, server, signal } = args; @@ -677,6 +722,7 @@ const normalizeSong = ( name: item.Name, path: (item.MediaSources && item.MediaSources[0]?.Path) || null, playCount: (item.UserData && item.UserData.PlayCount) || 0, + playlistItemId: item.PlaylistItemId, // releaseDate: (item.ProductionYear && new Date(item.ProductionYear, 0, 1).toISOString()) || null, releaseDate: null, releaseYear: item.ProductionYear ? String(item.ProductionYear) : null, @@ -863,6 +909,7 @@ const normalizePlaylist = ( // }; export const jellyfinApi = { + addToPlaylist, authenticate, createFavorite, createPlaylist, @@ -879,6 +926,7 @@ export const jellyfinApi = { getPlaylistList, getPlaylistSongList, getSongList, + removeFromPlaylist, updatePlaylist, }; diff --git a/src/renderer/api/jellyfin.types.ts b/src/renderer/api/jellyfin.types.ts index 762e7a51..4f9bc9f6 100644 --- a/src/renderer/api/jellyfin.types.ts +++ b/src/renderer/api/jellyfin.types.ts @@ -59,6 +59,25 @@ export type JFSongList = { totalRecordCount: number; }; +export type JFAddToPlaylistResponse = { + added: number; +}; + +export type JFAddToPlaylistParams = { + ids: string[]; + userId: string; +}; + +export type JFAddToPlaylist = null; + +export type JFRemoveFromPlaylistResponse = null; + +export type JFRemoveFromPlaylistParams = { + entryIds: string[]; +}; + +export type JFRemoveFromPlaylist = null; + export interface JFPlaylistListResponse extends JFBasePaginatedResponse { Items: JFPlaylist[]; } @@ -252,6 +271,7 @@ export type JFSong = { MediaType: string; Name: string; ParentIndexNumber: number; + PlaylistItemId?: string; PremiereDate?: string; ProductionYear: number; RunTimeTicks: number; diff --git a/src/renderer/api/navidrome.api.ts b/src/renderer/api/navidrome.api.ts index af762565..0b970357 100644 --- a/src/renderer/api/navidrome.api.ts +++ b/src/renderer/api/navidrome.api.ts @@ -41,6 +41,12 @@ import type { NDUserListResponse, NDUserListParams, NDUser, + NDAddToPlaylist, + NDAddToPlaylistBody, + NDAddToPlaylistResponse, + NDRemoveFromPlaylistParams, + NDRemoveFromPlaylistResponse, + NDRemoveFromPlaylist, } from '/@/renderer/api/navidrome.types'; import { NDSongListSort, NDSortOrder } from '/@/renderer/api/navidrome.types'; import { @@ -73,6 +79,8 @@ import { sortOrderMap, User, LibraryItem, + AddToPlaylistArgs, + RemoveFromPlaylistArgs, } from '/@/renderer/api/types'; import { toast } from '/@/renderer/components/toast'; import { useAuthStore } from '/@/renderer/store'; @@ -472,6 +480,44 @@ const getPlaylistSongList = async (args: PlaylistSongListArgs): Promise => { + const { query, body, server, signal } = args; + + const json: NDAddToPlaylistBody = { + ids: body.songId, + }; + + await api + .post(`api/playlist/${query.id}/tracks`, { + headers: { 'x-nd-authorization': `Bearer ${server?.ndCredential}` }, + json, + prefixUrl: server?.url, + signal, + }) + .json(); + + return null; +}; + +const removeFromPlaylist = async (args: RemoveFromPlaylistArgs): Promise => { + const { query, server, signal } = args; + + const searchParams: NDRemoveFromPlaylistParams = { + id: query.songId, + }; + + await api + .delete(`api/playlist/${query.id}/tracks`, { + headers: { 'x-nd-authorization': `Bearer ${server?.ndCredential}` }, + prefixUrl: server?.url, + searchParams: parseSearchParams(searchParams), + signal, + }) + .json(); + + return null; +}; + const getCoverArtUrl = (args: { baseUrl: string; coverArtId: string; @@ -501,10 +547,12 @@ const normalizeSong = ( imageSize?: number, ): Song => { let id; + let playlistItemId; // Dynamically determine the id field based on whether or not the item is a playlist song if ('mediaFileId' in item) { id = item.mediaFileId; + playlistItemId = item.id; } else { id = item.id; } @@ -542,6 +590,7 @@ const normalizeSong = ( name: item.title, path: item.path, playCount: item.playCount, + playlistItemId, releaseDate: new Date(item.year, 0, 1).toISOString(), releaseYear: String(item.year), serverId: server.id, @@ -675,6 +724,7 @@ const normalizeUser = (item: NDUser): User => { }; export const navidromeApi = { + addToPlaylist, authenticate, createPlaylist, deletePlaylist, @@ -689,6 +739,7 @@ export const navidromeApi = { getSongDetail, getSongList, getUserList, + removeFromPlaylist, updatePlaylist, }; diff --git a/src/renderer/api/navidrome.types.ts b/src/renderer/api/navidrome.types.ts index 64d15c0a..de3bff18 100644 --- a/src/renderer/api/navidrome.types.ts +++ b/src/renderer/api/navidrome.types.ts @@ -274,6 +274,26 @@ export type NDAlbumArtistListParams = { } & NDPagination & NDOrder; +export type NDAddToPlaylistResponse = { + added: number; +}; + +export type NDAddToPlaylistBody = { + ids: string[]; +}; + +export type NDAddToPlaylist = null; + +export type NDRemoveFromPlaylistResponse = { + ids: string[]; +}; + +export type NDRemoveFromPlaylistParams = { + id: string[]; +}; + +export type NDRemoveFromPlaylist = null; + export type NDCreatePlaylistParams = { comment?: string; name: string; diff --git a/src/renderer/api/types.ts b/src/renderer/api/types.ts index dd9e4730..f7a795d1 100644 --- a/src/renderer/api/types.ts +++ b/src/renderer/api/types.ts @@ -205,6 +205,7 @@ export type Song = { name: string; path: string | null; playCount: number; + playlistItemId?: string; releaseDate: string | null; releaseYear: string | null; serverId: string; @@ -777,6 +778,32 @@ export type RatingQuery = { id: string[]; rating: number }; export type RatingArgs = { query: RatingQuery } & BaseEndpointArgs; +// Add to playlist +export type RawAddToPlaylistResponse = null | undefined; + +export type AddToPlaylistQuery = { + id: string; +}; + +export type AddToPlaylistBody = { + songId: string[]; +}; + +export type AddToPlaylistArgs = { + body: AddToPlaylistBody; + query: AddToPlaylistQuery; +} & BaseEndpointArgs; + +// Remove from playlist +export type RawRemoveFromPlaylistResponse = null | undefined; + +export type RemoveFromPlaylistQuery = { + id: string; + songId: string[]; +}; + +export type RemoveFromPlaylistArgs = { query: RemoveFromPlaylistQuery } & BaseEndpointArgs; + // Create Playlist export type RawCreatePlaylistResponse = CreatePlaylistResponse | undefined; @@ -850,6 +877,7 @@ export type PlaylistListQuery = { limit?: number; ndParams?: { owner_id?: string; + smart?: boolean; }; searchTerm?: string; sortBy: PlaylistListSort; diff --git a/src/renderer/app.tsx b/src/renderer/app.tsx index 79bc64d1..75b62635 100644 --- a/src/renderer/app.tsx +++ b/src/renderer/app.tsx @@ -15,6 +15,7 @@ import '@ag-grid-community/styles/ag-grid.css'; import { ContextMenuProvider } from '/@/renderer/features/context-menu'; import { useHandlePlayQueueAdd } from '/@/renderer/features/player/hooks/use-handle-playqueue-add'; import { PlayQueueHandlerContext } from '/@/renderer/features/player'; +import { AddToPlaylistContextModal } from '/@/renderer/features/playlists'; ModuleRegistry.registerModules([ClientSideRowModelModule, InfiniteRowModelModule]); @@ -53,10 +54,10 @@ export const App = () => { }, fontFamily: 'var(--content-font-family)', fontSizes: { - lg: '1.5rem', - md: '1.1rem', + lg: '1.1rem', + md: '1rem', sm: '0.9rem', - xl: '2rem', + xl: '1.5rem', xs: '0.8rem', }, headings: { @@ -90,7 +91,7 @@ export const App = () => { transition: 'slide-down', }, }} - modals={{ base: BaseContextModal }} + modals={{ addToPlaylist: AddToPlaylistContextModal, base: BaseContextModal }} > diff --git a/src/renderer/components/card/card-controls.tsx b/src/renderer/components/card/card-controls.tsx index d5d460c7..48e69ae4 100644 --- a/src/renderer/components/card/card-controls.tsx +++ b/src/renderer/components/card/card-controls.tsx @@ -2,6 +2,7 @@ import type { MouseEvent } from 'react'; import React from 'react'; import type { UnstyledButtonProps } from '@mantine/core'; import { Group } from '@mantine/core'; +import { openContextModal } from '@mantine/modals'; import { RiPlayFill, RiMore2Fill, RiHeartFill, RiHeartLine } from 'react-icons/ri'; import styled from 'styled-components'; import { _Button } from '/@/renderer/components/button'; @@ -137,6 +138,19 @@ export const CardControls = ({ }); }; + const openAddToPlaylistModal = (e: MouseEvent) => { + e.stopPropagation(); + openContextModal({ + innerProps: { + albumId: itemType === LibraryItem.ALBUM ? [itemData.id] : undefined, + artistId: itemType === LibraryItem.ALBUM_ARTIST ? [itemData.id] : undefined, + }, + modal: 'addToPlaylist', + size: 'md', + title: 'Add to playlist', + }); + }; + return ( @@ -190,8 +204,9 @@ export const CardControls = ({ {type.label} ))} - Add to playlist - Refresh metadata + + Add to playlist + diff --git a/src/renderer/components/virtual-grid/grid-card/grid-card-controls.tsx b/src/renderer/components/virtual-grid/grid-card/grid-card-controls.tsx index f38b1fe5..24a65aff 100644 --- a/src/renderer/components/virtual-grid/grid-card/grid-card-controls.tsx +++ b/src/renderer/components/virtual-grid/grid-card/grid-card-controls.tsx @@ -2,6 +2,7 @@ import type { MouseEvent } from 'react'; import React from 'react'; import type { UnstyledButtonProps } from '@mantine/core'; import { Group } from '@mantine/core'; +import { openContextModal } from '@mantine/modals'; import { RiPlayFill, RiMore2Fill, RiHeartFill, RiHeartLine } from 'react-icons/ri'; import styled from 'styled-components'; import { _Button } from '/@/renderer/components/button'; @@ -151,6 +152,19 @@ export const GridCardControls = ({ }); }; + const openAddToPlaylistModal = (e: MouseEvent) => { + e.stopPropagation(); + openContextModal({ + innerProps: { + albumId: itemType === LibraryItem.ALBUM ? [itemData.id] : undefined, + artistId: itemType === LibraryItem.ALBUM_ARTIST ? [itemData.id] : undefined, + }, + modal: 'addToPlaylist', + size: 'md', + title: 'Add to playlist', + }); + }; + return ( {/* */} @@ -206,8 +220,9 @@ export const GridCardControls = ({ {type.label} ))} - Add to playlist - Refresh metadata + + Add to playlist + diff --git a/src/renderer/features/albums/components/album-detail-content.tsx b/src/renderer/features/albums/components/album-detail-content.tsx index ca03a837..3aed9066 100644 --- a/src/renderer/features/albums/components/album-detail-content.tsx +++ b/src/renderer/features/albums/components/album-detail-content.tsx @@ -12,6 +12,7 @@ import { ColDef, RowDoubleClickedEvent } from '@ag-grid-community/core'; import type { AgGridReact as AgGridReactType } from '@ag-grid-community/react/lib/agGridReact'; import { Box, Group, Stack } from '@mantine/core'; import { useSetState } from '@mantine/hooks'; +import { openContextModal } from '@mantine/modals'; import { RiHeartFill, RiHeartLine, RiMoreFill } from 'react-icons/ri'; import { generatePath, useParams } from 'react-router'; import { useAlbumDetail } from '/@/renderer/features/albums/queries/album-detail-query'; @@ -182,6 +183,17 @@ export const AlbumDetailContent = ({ tableRef }: AlbumDetailContentProps) => { const { intersectRef, tableContainerRef } = useFixedTableHeader(); + const handleAddToPlaylist = () => { + openContextModal({ + innerProps: { + albumId: [albumId], + }, + modal: 'addToPlaylist', + size: 'md', + title: 'Add to playlist', + }); + }; + return ( @@ -227,7 +239,7 @@ export const AlbumDetailContent = ({ tableRef }: AlbumDetailContentProps) => { ))} - Add to playlist + Add to playlist diff --git a/src/renderer/features/artists/components/album-artist-detail-content.tsx b/src/renderer/features/artists/components/album-artist-detail-content.tsx index ebd7ae08..2b0a5048 100644 --- a/src/renderer/features/artists/components/album-artist-detail-content.tsx +++ b/src/renderer/features/artists/components/album-artist-detail-content.tsx @@ -10,6 +10,7 @@ import { } from '/@/renderer/components'; import { ColDef, RowDoubleClickedEvent } from '@ag-grid-community/core'; import { Box, Group, Stack } from '@mantine/core'; +import { openContextModal } from '@mantine/modals'; import { RiArrowDownSLine, RiHeartFill, RiHeartLine, RiMoreFill } from 'react-icons/ri'; import { generatePath, useParams } from 'react-router'; import { useCurrentServer } from '/@/renderer/store'; @@ -266,6 +267,17 @@ export const AlbumArtistDetailContent = () => { } }; + const handleAddToPlaylist = () => { + openContextModal({ + innerProps: { + artistId: [albumArtistId], + }, + modal: 'addToPlaylist', + size: 'md', + title: 'Add to playlist', + }); + }; + const topSongs = topSongsQuery?.data?.items?.slice(0, 10); const showBiography = @@ -318,7 +330,7 @@ export const AlbumArtistDetailContent = () => { ))} - Add to playlist + Add to playlist + + + + + + + ); +}; diff --git a/src/renderer/features/playlists/components/playlist-detail-content.tsx b/src/renderer/features/playlists/components/playlist-detail-content.tsx index 1b1a0b9d..7ffdbbb8 100644 --- a/src/renderer/features/playlists/components/playlist-detail-content.tsx +++ b/src/renderer/features/playlists/components/playlist-detail-content.tsx @@ -28,7 +28,7 @@ import { VirtualTable, } from '/@/renderer/components'; import { useHandleTableContextMenu } from '/@/renderer/features/context-menu'; -import { SONG_CONTEXT_MENU_ITEMS } from '/@/renderer/features/context-menu/context-menu-items'; +import { PLAYLIST_SONG_CONTEXT_MENU_ITEMS } from '/@/renderer/features/context-menu/context-menu-items'; import { usePlayQueueAdd } from '/@/renderer/features/player'; import { UpdatePlaylistForm } from '/@/renderer/features/playlists/components/update-playlist-form'; import { useDeletePlaylist } from '/@/renderer/features/playlists/mutations/delete-playlist-mutation'; @@ -90,7 +90,11 @@ export const PlaylistDetailContent = ({ tableRef }: PlaylistDetailContentProps) [page.table.columns], ); - const handleContextMenu = useHandleTableContextMenu(LibraryItem.SONG, SONG_CONTEXT_MENU_ITEMS); + const handleContextMenu = useHandleTableContextMenu( + LibraryItem.SONG, + PLAYLIST_SONG_CONTEXT_MENU_ITEMS, + { playlistId }, + ); const playlistSongData = useMemo( () => playlistSongsQueryInfinite.data?.pages.flatMap((p) => p.items), diff --git a/src/renderer/features/playlists/components/playlist-detail-song-list-content.tsx b/src/renderer/features/playlists/components/playlist-detail-song-list-content.tsx index afefde34..eab82163 100644 --- a/src/renderer/features/playlists/components/playlist-detail-song-list-content.tsx +++ b/src/renderer/features/playlists/components/playlist-detail-song-list-content.tsx @@ -26,7 +26,7 @@ import { useQueryClient } from '@tanstack/react-query'; import { AnimatePresence } from 'framer-motion'; import debounce from 'lodash/debounce'; import { useHandleTableContextMenu } from '/@/renderer/features/context-menu'; -import { SONG_CONTEXT_MENU_ITEMS } from '/@/renderer/features/context-menu/context-menu-items'; +import { PLAYLIST_SONG_CONTEXT_MENU_ITEMS } from '/@/renderer/features/context-menu/context-menu-items'; import { usePlayButtonBehavior } from '/@/renderer/store/settings.store'; import { LibraryItem, @@ -185,7 +185,11 @@ export const PlaylistDetailSongListContent = ({ tableRef }: PlaylistDetailConten setPagination(playlistId, { scrollOffset }); }; - const handleContextMenu = useHandleTableContextMenu(LibraryItem.SONG, SONG_CONTEXT_MENU_ITEMS); + const handleContextMenu = useHandleTableContextMenu( + LibraryItem.SONG, + PLAYLIST_SONG_CONTEXT_MENU_ITEMS, + { playlistId, tableRef }, + ); const handleRowDoubleClick = (e: RowDoubleClickedEvent) => { if (!e.data) return; diff --git a/src/renderer/features/playlists/index.ts b/src/renderer/features/playlists/index.ts index cbe0667d..1fa563c8 100644 --- a/src/renderer/features/playlists/index.ts +++ b/src/renderer/features/playlists/index.ts @@ -1,5 +1,8 @@ export * from './queries/playlist-list-query'; +export * from './components/add-to-playlist-context-modal'; export * from './components/create-playlist-form'; export * from './mutations/delete-playlist-mutation'; export * from './mutations/create-playlist-mutation'; export * from './mutations/update-playlist-mutation'; +export * from './mutations/add-to-playlist-mutation'; +export * from './mutations/remove-from-playlist-mutation'; diff --git a/src/renderer/features/playlists/mutations/add-to-playlist-mutation.ts b/src/renderer/features/playlists/mutations/add-to-playlist-mutation.ts new file mode 100644 index 00000000..a68e1730 --- /dev/null +++ b/src/renderer/features/playlists/mutations/add-to-playlist-mutation.ts @@ -0,0 +1,28 @@ +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { HTTPError } from 'ky'; +import { api } from '/@/renderer/api'; +import { queryKeys } from '/@/renderer/api/query-keys'; +import { AddToPlaylistArgs, RawAddToPlaylistResponse } from '/@/renderer/api/types'; +import { MutationOptions } from '/@/renderer/lib/react-query'; +import { useCurrentServer } from '/@/renderer/store'; + +export const useAddToPlaylist = (options?: MutationOptions) => { + const queryClient = useQueryClient(); + const server = useCurrentServer(); + + return useMutation, null>({ + mutationFn: (args) => api.controller.addToPlaylist({ ...args, server }), + onSuccess: (_data, variables) => { + queryClient.invalidateQueries(queryKeys.playlists.list(server?.id || ''), { exact: false }); + + queryClient.invalidateQueries( + queryKeys.playlists.detail(server?.id || '', variables.query.id), + ); + + queryClient.invalidateQueries( + queryKeys.playlists.detailSongList(server?.id || '', variables.query.id), + ); + }, + ...options, + }); +}; diff --git a/src/renderer/features/playlists/mutations/remove-from-playlist-mutation.ts b/src/renderer/features/playlists/mutations/remove-from-playlist-mutation.ts new file mode 100644 index 00000000..e78dd2c6 --- /dev/null +++ b/src/renderer/features/playlists/mutations/remove-from-playlist-mutation.ts @@ -0,0 +1,33 @@ +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { HTTPError } from 'ky'; +import { api } from '/@/renderer/api'; +import { queryKeys } from '/@/renderer/api/query-keys'; +import { RawRemoveFromPlaylistResponse, RemoveFromPlaylistArgs } from '/@/renderer/api/types'; +import { MutationOptions } from '/@/renderer/lib/react-query'; +import { useCurrentServer } from '/@/renderer/store'; + +export const useRemoveFromPlaylist = (options?: MutationOptions) => { + const queryClient = useQueryClient(); + const server = useCurrentServer(); + + return useMutation< + RawRemoveFromPlaylistResponse, + HTTPError, + Omit, + null + >({ + mutationFn: (args) => api.controller.removeFromPlaylist({ ...args, server }), + onSuccess: (_data, variables) => { + queryClient.invalidateQueries(queryKeys.playlists.list(server?.id || ''), { exact: false }); + + queryClient.invalidateQueries( + queryKeys.playlists.detail(server?.id || '', variables.query.id), + ); + + queryClient.invalidateQueries( + queryKeys.playlists.detailSongList(server?.id || '', variables.query.id), + ); + }, + ...options, + }); +};