diff --git a/package-lock.json b/package-lock.json index 8a527dca6..5bccf6e31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -77,7 +77,6 @@ "mime-types": "^3.0.2", "mustache": "^4.2.0", "picomatch": "^4.0.4", - "url-parse": "^1.5.10", "vanilla-picker": "^2.12.3", "yargs": "^18.0.0" }, @@ -8972,12 +8971,6 @@ "node": ">=6" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT" - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -9178,12 +9171,6 @@ "node": ">=0.10.0" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, "node_modules/resolve": { "version": "1.22.12", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", @@ -10139,16 +10126,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 674480896..26516d658 100644 --- a/package.json +++ b/package.json @@ -182,7 +182,6 @@ "mime-types": "^3.0.2", "mustache": "^4.2.0", "picomatch": "^4.0.4", - "url-parse": "^1.5.10", "vanilla-picker": "^2.12.3", "yargs": "^18.0.0" }, diff --git a/src/lib/remoteStorage.js b/src/lib/remoteStorage.js index 5185de0ce..2eac55444 100644 --- a/src/lib/remoteStorage.js +++ b/src/lib/remoteStorage.js @@ -3,7 +3,6 @@ import Ftp from "fileSystem/ftp"; import Sftp from "fileSystem/sftp"; import loader from "dialogs/loader"; import multiPrompt from "dialogs/multiPrompt"; -import URLParse from "url-parse"; import helpers from "utils/helpers"; import Url from "utils/Url"; import { interstitialAd } from "./startAd"; @@ -367,7 +366,7 @@ export default { } }, edit({ name, storageType, url }) { - let { username, password, hostname, port, query } = URLParse(url, true); + let { username, password, hostname, port, searchParams } = new URL(url); if (username) { username = decodeURIComponent(username); @@ -378,11 +377,12 @@ export default { } if (storageType === "ftp") { - let { security, mode } = query; + let security = searchParams.get("security"); if (security) { security = decodeURIComponent(security); } + let mode = searchParams.get("mode"); if (mode) { mode = decodeURIComponent(mode); } @@ -399,11 +399,12 @@ export default { } if (storageType === "sftp") { - let { passPhrase, keyFile } = query; + let passPhrase = searchParams.get("passPhrase"); if (passPhrase) { passPhrase = decodeURIComponent(passPhrase); } + let keyFile = searchParams.get("keyFile"); if (keyFile) { keyFile = decodeURIComponent(keyFile); } diff --git a/src/pages/fileBrowser/fileBrowser.js b/src/pages/fileBrowser/fileBrowser.js index cd1445dc4..268972618 100644 --- a/src/pages/fileBrowser/fileBrowser.js +++ b/src/pages/fileBrowser/fileBrowser.js @@ -25,7 +25,6 @@ import { hideAd } from "lib/startAd"; import mimeTypes from "mime-types"; import mustache from "mustache"; import filesSettings from "settings/filesSettings"; -import URLParse from "url-parse"; import helpers from "utils/helpers"; import Url from "utils/Url"; import _addMenu from "./add-menu.hbs"; @@ -1162,9 +1161,9 @@ function FileBrowserInclude(mode, info, doesOpenLast = true) { } if (storage.url) { - const parsedUrl = URLParse(storage.url, true); + const parsedUrl = new URL(storage.url); const keyFile = decodeURIComponent( - parsedUrl.query["keyFile"] || "", + parsedUrl.searchParams.get("keyFile") || "", ); if (keyFile) { fsOperation(keyFile).delete(); diff --git a/src/utils/Url.js b/src/utils/Url.js index 948503129..0c161cc86 100644 --- a/src/utils/Url.js +++ b/src/utils/Url.js @@ -1,4 +1,3 @@ -import URLParse from "url-parse"; import path from "./Path"; import Uri from "./Uri"; @@ -268,7 +267,7 @@ export default { * @returns {string} */ hidePassword(url) { - const { protocol, username, hostname, pathname } = URLParse(url); + const { protocol, username, hostname, pathname } = new URL(url); if (protocol === "file:") { return url; } else { @@ -287,10 +286,8 @@ export default { url = url.replace(/#/g, uuid); } - let { username, password, hostname, pathname, port, query } = URLParse( - url, - true, - ); + let { username, password, hostname, pathname, port, searchParams } = + new URL(url); if (pathname) { pathname = decodeURIComponent(pathname); @@ -309,6 +306,7 @@ export default { port = Number.parseInt(port); } + const query = Object.fromEntries(searchParams); let { keyFile, passPhrase } = query; if (keyFile) {