diff options
Diffstat (limited to 'modules/ext/webdav.js')
| -rw-r--r-- | modules/ext/webdav.js | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/modules/ext/webdav.js b/modules/ext/webdav.js index 8096b2e..464db16 100644 --- a/modules/ext/webdav.js +++ b/modules/ext/webdav.js @@ -626,11 +626,23 @@ class WebDAVModule { // Build structured export: root + currentPath + aliases + moduleRegistry let exportData; try { + // Deep-clone and strip system dirs to prevent fractal bloat + let rootForExport; + try { + rootForExport = JSON.parse(JSON.stringify(self.terminal.fs.root)); + if (rootForExport && rootForExport.content) { + delete rootForExport.content['_sessions']; + delete rootForExport.content['_snapshots']; + delete rootForExport.content['.trash']; + } + } catch (e) { + rootForExport = self.terminal.fs.root; + } exportData = { type: 'webx11-backup', version: 2, savedAt: new Date().toISOString(), - root: self.terminal.fs.root, + root: rootForExport, currentPath: self.terminal.fs.currentPath, aliases: self.terminal.moduleManager.aliases || {}, moduleRegistry: self.terminal.moduleManager.moduleRegistry || [] |