diff options
author | Ferdinand Thiessen <opensource@fthiessen.de> | 2025-01-27 19:31:30 +0100 |
---|---|---|
committer | Ferdinand Thiessen <opensource@fthiessen.de> | 2025-01-27 19:31:30 +0100 |
commit | 7e483a2d21694f50fbf39a7ff597640ea24c4136 (patch) | |
tree | 05f6b1c0221ce08d642d904174996af7ff4c7ec3 | |
parent | 6dc83b96c40d094ccb3a8b8dfa74fec263e2852d (diff) | |
download | nextcloud-server-7e483a2d21694f50fbf39a7ff597640ea24c4136.tar.gz nextcloud-server-7e483a2d21694f50fbf39a7ff597640ea24c4136.zip |
refactor: Drop `query-string` dependency in favor of native `URLSearchParams`
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
-rw-r--r-- | apps/files/src/router/router.ts | 5 | ||||
-rw-r--r-- | apps/files_sharing/src/router/index.ts | 6 | ||||
-rw-r--r-- | core/src/views/Login.vue | 27 | ||||
-rw-r--r-- | package-lock.json | 51 | ||||
-rw-r--r-- | package.json | 1 |
5 files changed, 21 insertions, 69 deletions
diff --git a/apps/files/src/router/router.ts b/apps/files/src/router/router.ts index de81755d234..76a131a19f0 100644 --- a/apps/files/src/router/router.ts +++ b/apps/files/src/router/router.ts @@ -6,7 +6,6 @@ import type { RawLocation, Route } from 'vue-router' import type { ErrorHandler } from 'vue-router/types/router.d.ts' import { generateUrl } from '@nextcloud/router' -import queryString from 'query-string' import Router from 'vue-router' import Vue from 'vue' @@ -42,7 +41,9 @@ const router = new Router({ // Custom stringifyQuery to prevent encoding of slashes in the url stringifyQuery(query) { - const result = queryString.stringify(query).replace(/%2F/gmi, '/') + const params = new URLSearchParams(Object.entries(query)) + const result = params.toString().replace(/%2F/gmi, '/') + // Only for vue-router 3 (vue2) we need to prepend a `?` return result ? ('?' + result) : '' }, }) diff --git a/apps/files_sharing/src/router/index.ts b/apps/files_sharing/src/router/index.ts index 6a417975e32..f8855bb7c2d 100644 --- a/apps/files_sharing/src/router/index.ts +++ b/apps/files_sharing/src/router/index.ts @@ -7,7 +7,6 @@ import type { ErrorHandler } from 'vue-router/types/router.d.ts' import { loadState } from '@nextcloud/initial-state' import { generateUrl } from '@nextcloud/router' -import queryString from 'query-string' import Router from 'vue-router' import Vue from 'vue' @@ -44,9 +43,10 @@ const router = new Router({ }, ], - // Custom stringifyQuery to prevent encoding of slashes in the url stringifyQuery(query) { - const result = queryString.stringify(query).replace(/%2F/gmi, '/') + const params = new URLSearchParams(Object.entries(query)) + const result = params.toString().replace(/%2F/gmi, '/') + // Only for vue-router 3 (vue2) we need to prepend a `?` return result ? ('?' + result) : '' }, }) diff --git a/core/src/views/Login.vue b/core/src/views/Login.vue index a13109bb766..79bfa6fd089 100644 --- a/core/src/views/Login.vue +++ b/core/src/views/Login.vue @@ -105,7 +105,6 @@ <script> import { loadState } from '@nextcloud/initial-state' -import queryString from 'query-string' import LoginForm from '../components/login/LoginForm.vue' import PasswordLessLoginForm from '../components/login/PasswordLessLoginForm.vue' @@ -113,17 +112,7 @@ import ResetPassword from '../components/login/ResetPassword.vue' import UpdatePassword from '../components/login/UpdatePassword.vue' import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' import NcNoteCard from '@nextcloud/vue/dist/Components/NcNoteCard.js' - -const query = queryString.parse(location.search) -if (query.clear === '1') { - try { - window.localStorage.clear() - window.sessionStorage.clear() - console.debug('Browser storage cleared') - } catch (e) { - console.error('Could not clear browser storage', e) - } -} +import logger from '../logger' export default { name: 'Login', @@ -165,6 +154,20 @@ export default { } }, + beforeCreate() { + const clear = window.location.searchParams.get('clear') + + if (clear === '1') { + try { + window.localStorage.clear() + window.sessionStorage.clear() + logger.debug('Browser storage cleared') + } catch (error) { + logger.error('Could not clear browser storage', { error }) + } + } + }, + methods: { passwordResetFinished() { this.resetPasswordTarget = '' diff --git a/package-lock.json b/package-lock.json index e2f0e2a9489..06ef09d2c53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,7 +64,6 @@ "p-queue": "^7.4.1", "path": "^0.12.7", "pinia": "^2.3.0", - "query-string": "^9.1.0", "regenerator-runtime": "^0.14.1", "select2": "3.5.1", "snap.js": "^2.0.9", @@ -10227,15 +10226,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/decode-uri-component": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz", - "integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==", - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, "node_modules/deep-eql": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", @@ -13276,18 +13266,6 @@ "node": ">=8" } }, - "node_modules/filter-obj": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", - "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -20550,23 +20528,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/query-string": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.1.0.tgz", - "integrity": "sha512-t6dqMECpCkqfyv2FfwVS1xcB6lgXW/0XZSaKdsCNGYkqMO76AFiJEg4vINzoDKcZa6MS7JX+OHIjwh06K5vczw==", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.4.1", - "filter-obj": "^5.1.0", - "split-on-first": "^3.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", @@ -22712,18 +22673,6 @@ "dev": true, "license": "ISC" }, - "node_modules/split-on-first": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz", - "integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/splitpanes": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-2.4.1.tgz", diff --git a/package.json b/package.json index 24227bfc7f9..63af3090326 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,6 @@ "p-queue": "^7.4.1", "path": "^0.12.7", "pinia": "^2.3.0", - "query-string": "^9.1.0", "regenerator-runtime": "^0.14.1", "select2": "3.5.1", "snap.js": "^2.0.9", |