From e17ac31c2139001f27c4ed6b1d2fe5418821571f Mon Sep 17 00:00:00 2001 From: Jonas Date: Sat, 13 Dec 2025 12:32:23 +0100 Subject: [PATCH 1/3] chore(dep): Update to `@nextcloud/files` 4.x Signed-off-by: Jonas --- package-lock.json | 116 +++++++++++++++++++++++++++------------------- package.json | 4 +- 2 files changed, 71 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index a3cc797903f..c2734bf11db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@nextcloud/browser-storage": "^0.5.0", "@nextcloud/dialogs": "^6.4.1", "@nextcloud/event-bus": "^3.3.3", - "@nextcloud/files": "^3.12.0", + "@nextcloud/files": "^4.0.0-beta.4", "@nextcloud/initial-state": "^3.0.0", "@nextcloud/l10n": "^3.4.1", "@nextcloud/logger": "^3.0.2", @@ -24,7 +24,7 @@ "@nextcloud/notify_push": "^1.3.1", "@nextcloud/router": "^3.1.0", "@nextcloud/sharing": "^0.3.0", - "@nextcloud/vue": "^8.34.0", + "@nextcloud/vue": "^8.35.0", "@quartzy/markdown-it-mentions": "^0.2.0", "@tiptap/core": "^3.13.0", "@tiptap/extension-blockquote": "^3.13.0", @@ -3492,6 +3492,28 @@ "vue": "^2.7.16" } }, + "node_modules/@nextcloud/dialogs/node_modules/@nextcloud/files": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.12.1.tgz", + "integrity": "sha512-GRGBkUMAERKVducWVBTR5kk4GQBncAmKWnSwc6vys3ipXeAeJfEANJVtQ/aHHoQdPc2h78mljbqKsMHdFAUDBA==", + "license": "AGPL-3.0-or-later", + "dependencies": { + "@nextcloud/auth": "^2.5.3", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/l10n": "^3.4.1", + "@nextcloud/logger": "^3.0.3", + "@nextcloud/paths": "^2.3.0", + "@nextcloud/router": "^3.1.0", + "@nextcloud/sharing": "^0.3.0", + "cancelable-promise": "^4.3.1", + "is-svg": "^6.1.0", + "typescript-event-target": "^1.1.1", + "webdav": "^5.8.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, "node_modules/@nextcloud/e2e-test-server": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@nextcloud/e2e-test-server/-/e2e-test-server-0.4.0.tgz", @@ -3625,20 +3647,20 @@ } }, "node_modules/@nextcloud/files": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.12.0.tgz", - "integrity": "sha512-LVZklgooZzBj2jkbPRZO4jnnvW5+RvOn7wN5weyOZltF6i2wVMbg1Y/Czl2pi/UNMjUm5ENqc0j7FgxMBo8bwA==", + "version": "4.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-4.0.0-beta.4.tgz", + "integrity": "sha512-2MwEZw0JXyNPOmj6PcEUT/9TbmEzT+C5c9zMC6hwJMjjLoO19Nf1VaxmHqyzgfNy1jzst8Eq106ZsBExH2rncw==", "license": "AGPL-3.0-or-later", "dependencies": { - "@nextcloud/auth": "^2.5.1", - "@nextcloud/capabilities": "^1.2.0", - "@nextcloud/l10n": "^3.3.0", + "@nextcloud/auth": "^2.5.3", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/l10n": "^3.4.1", "@nextcloud/logger": "^3.0.2", - "@nextcloud/paths": "^2.2.1", - "@nextcloud/router": "^3.0.1", - "@nextcloud/sharing": "^0.2.4", + "@nextcloud/paths": "^2.3.0", + "@nextcloud/router": "^3.1.0", + "@nextcloud/sharing": "^0.3.0", "cancelable-promise": "^4.3.1", - "is-svg": "^6.0.0", + "is-svg": "^6.1.0", "typescript-event-target": "^1.1.1", "webdav": "^5.8.0" }, @@ -3646,28 +3668,6 @@ "node": "^20.0.0 || ^22.0.0 || ^24.0.0" } }, - "node_modules/@nextcloud/files/node_modules/@nextcloud/initial-state": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-2.2.0.tgz", - "integrity": "sha512-cDW98L5KGGgpS8pzd+05304/p80cyu8U2xSDQGa+kGPTpUFmCbv2qnO5WrwwGTauyjYijCal2bmw82VddSH+Pg==", - "license": "GPL-3.0-or-later", - "engines": { - "node": "^20.0.0", - "npm": "^10.0.0" - } - }, - "node_modules/@nextcloud/files/node_modules/@nextcloud/sharing": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@nextcloud/sharing/-/sharing-0.2.5.tgz", - "integrity": "sha512-B3K5Dq9b5dexDA5n3AAuCF69Huwhrpw0J72fsVXV4KpPdImjhVPlExAv5o70AoXa+OqN4Rwn6gqJw+3ED892zg==", - "license": "GPL-3.0-or-later", - "dependencies": { - "@nextcloud/initial-state": "^2.2.0" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, "node_modules/@nextcloud/initial-state": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-3.0.0.tgz", @@ -3694,16 +3694,15 @@ } }, "node_modules/@nextcloud/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@nextcloud/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-wByt0R0/6QC44RBpaJr1MWghjjOxk/pRbACHo/ZWWKht1qYbJRHB4GtEi+35KEIHY07ZpqxiDk6dIRuN7sXYWQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@nextcloud/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-TcbVRL4/O5ffI1RXFmQAFD3gwwT15AAdr1770x+RNqVvfBdoGVyhzOwCIyA5Vfc3fA1iJXFa+rE6buJZSoqlcw==", "license": "GPL-3.0-or-later", "dependencies": { - "@nextcloud/auth": "^2.3.0" + "@nextcloud/auth": "^2.5.3" }, "engines": { - "node": "^20.0.0", - "npm": "^10.0.0" + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" } }, "node_modules/@nextcloud/moment": { @@ -3781,6 +3780,29 @@ "@nextcloud/files": "^3.12.0" } }, + "node_modules/@nextcloud/sharing/node_modules/@nextcloud/files": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.12.1.tgz", + "integrity": "sha512-GRGBkUMAERKVducWVBTR5kk4GQBncAmKWnSwc6vys3ipXeAeJfEANJVtQ/aHHoQdPc2h78mljbqKsMHdFAUDBA==", + "license": "AGPL-3.0-or-later", + "optional": true, + "dependencies": { + "@nextcloud/auth": "^2.5.3", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/l10n": "^3.4.1", + "@nextcloud/logger": "^3.0.3", + "@nextcloud/paths": "^2.3.0", + "@nextcloud/router": "^3.1.0", + "@nextcloud/sharing": "^0.3.0", + "cancelable-promise": "^4.3.1", + "is-svg": "^6.1.0", + "typescript-event-target": "^1.1.1", + "webdav": "^5.8.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, "node_modules/@nextcloud/timezones": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@nextcloud/timezones/-/timezones-0.2.0.tgz", @@ -3836,9 +3858,9 @@ } }, "node_modules/@nextcloud/vue": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.34.0.tgz", - "integrity": "sha512-zUmInTvT4NgbRjWJZbw8nA+h4EqitYKfoCTj3h3Xr930sQZcczQatPtSo5Sps8RAh+JJz3iiAqAawYqS9jvBdA==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.35.0.tgz", + "integrity": "sha512-qPm0aaPbnt7n694WQ97T+EMQTxCa3+RPKDzsBVD6vb01N4uGYwjvrEEOLVmBMlEWqkFy+ks3tpeOjkDPOoJbNA==", "license": "AGPL-3.0-or-later", "peer": true, "dependencies": { @@ -3847,12 +3869,12 @@ "@nextcloud/auth": "^2.5.3", "@nextcloud/axios": "^2.5.2", "@nextcloud/browser-storage": "^0.5.0", - "@nextcloud/capabilities": "^1.2.0", - "@nextcloud/event-bus": "^3.3.2", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/event-bus": "^3.3.3", "@nextcloud/initial-state": "^2.2.0", - "@nextcloud/l10n": "^3.4.0", + "@nextcloud/l10n": "^3.4.1", "@nextcloud/logger": "^3.0.2", - "@nextcloud/router": "^3.0.1", + "@nextcloud/router": "^3.1.0", "@nextcloud/sharing": "^0.3.0", "@nextcloud/timezones": "^0.2.0", "@nextcloud/vue-select": "^3.26.0", diff --git a/package.json b/package.json index 52351337472..cea63fa9dd3 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@nextcloud/browser-storage": "^0.5.0", "@nextcloud/dialogs": "^6.4.1", "@nextcloud/event-bus": "^3.3.3", - "@nextcloud/files": "^3.12.0", + "@nextcloud/files": "^4.0.0-beta.4", "@nextcloud/initial-state": "^3.0.0", "@nextcloud/l10n": "^3.4.1", "@nextcloud/logger": "^3.0.2", @@ -44,7 +44,7 @@ "@nextcloud/notify_push": "^1.3.1", "@nextcloud/router": "^3.1.0", "@nextcloud/sharing": "^0.3.0", - "@nextcloud/vue": "^8.34.0", + "@nextcloud/vue": "^8.35.0", "@quartzy/markdown-it-mentions": "^0.2.0", "@tiptap/core": "^3.13.0", "@tiptap/extension-blockquote": "^3.13.0", From ff4174565f1c953bb66b9c88358dbce98cdd5609 Mon Sep 17 00:00:00 2001 From: Jonas Date: Sat, 13 Dec 2025 12:32:56 +0100 Subject: [PATCH 2/3] fix(WebdavClient): Use dav functions from `@nextcloud/files/dav` Signed-off-by: Jonas --- src/services/WebdavClient.ts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/services/WebdavClient.ts b/src/services/WebdavClient.ts index 8c01011cec7..e0553eefa65 100644 --- a/src/services/WebdavClient.ts +++ b/src/services/WebdavClient.ts @@ -3,20 +3,16 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ import type { Node } from '@nextcloud/files' -import { - davGetClient, - davGetDefaultPropfind, - davResultToNode, -} from '@nextcloud/files' +import { getClient, getDefaultPropfind, resultToNode } from '@nextcloud/files/dav' import type { FileStat, ResponseDataDetailed } from 'webdav' -export const client = davGetClient() +export const client = getClient() export const fetchNode = async (node: Node): Promise => { - const propfindPayload = davGetDefaultPropfind() + const propfindPayload = getDefaultPropfind() const result = (await client.stat(`${node.root}${node.path}`, { details: true, data: propfindPayload, })) as ResponseDataDetailed - return davResultToNode(result.data) + return resultToNode(result.data) } From 946e265cec4a135d51a0097798154a444ac63011 Mon Sep 17 00:00:00 2001 From: Jonas Date: Sat, 13 Dec 2025 12:33:23 +0100 Subject: [PATCH 3/3] fix(Editor): Add mandatory `root` attribute to `new File()` Signed-off-by: Jonas --- src/components/Editor.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/Editor.vue b/src/components/Editor.vue index afa472f7db6..28474a3b439 100644 --- a/src/components/Editor.vue +++ b/src/components/Editor.vue @@ -501,6 +501,7 @@ export default defineComponent({ if (session.userId && this.relativePath?.length) { const node = new File({ id: this.fileId, + root: `/files/${session.userId}`, source: generateRemoteUrl( `dav/files/${session.userId}${this.relativePath}`, ),