@sync-in/server 1.3.2 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +3 -3
- package/package.json +14 -14
- package/server/applications/files/services/files-manager.service.js +11 -2
- package/server/applications/files/services/files-manager.service.js.map +1 -1
- package/server/applications/files/utils/send-file.js +1 -1
- package/server/applications/files/utils/send-file.js.map +1 -1
- package/server/applications/sync/services/sync-manager.service.js +1 -1
- package/server/applications/sync/services/sync-manager.service.js.map +1 -1
- package/server/applications/webdav/services/webdav-methods.service.js +28 -28
- package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
- package/static/3rdpartylicenses.txt +85 -85
- package/static/assets/codemirror/mode/gas/gas.js +2 -0
- package/static/chunk-2OSA27SE.js +1 -0
- package/static/chunk-2PQGH3LQ.js +1 -0
- package/static/chunk-2QNFUN7G.js +1 -0
- package/static/chunk-3UFSZ24R.js +1 -0
- package/static/chunk-3XDVB3TW.js +1 -0
- package/static/chunk-4RF354LU.js +1 -0
- package/static/chunk-55WOZ7P6.js +4 -0
- package/static/chunk-5SYLS7WR.js +1 -0
- package/static/chunk-6HV65OKG.js +1 -0
- package/static/chunk-7XBZXSHI.js +1 -0
- package/static/chunk-AS7H5UIO.js +1 -0
- package/static/chunk-BOIXDTUT.js +4 -0
- package/static/chunk-ESSY62VJ.js +1 -0
- package/static/chunk-GLAK4VQT.js +1 -0
- package/static/chunk-GW5AVRYT.js +1 -0
- package/static/chunk-HPRC4PXX.js +1 -0
- package/static/chunk-J6YSVODR.js +1 -0
- package/static/chunk-JQOMI5VI.js +560 -0
- package/static/chunk-MLLPT7BU.js +1 -0
- package/static/chunk-MTBJHA2L.js +1 -0
- package/static/chunk-OWYD7F64.js +1 -0
- package/static/chunk-Q35EEVWP.js +1 -0
- package/static/chunk-Q7LN54AP.js +1 -0
- package/static/chunk-QKELW3MH.js +1 -0
- package/static/chunk-RTRJ3KFH.js +1 -0
- package/static/chunk-SOYI5P5A.js +7 -0
- package/static/{chunk-E27KCFP6.js → chunk-VCXIQZT4.js} +3 -3
- package/static/chunk-W4LKCEBR.js +1 -0
- package/static/chunk-WWKXW4MM.js +24 -0
- package/static/chunk-X2BMM3NY.js +1 -0
- package/static/chunk-X4CIBLP6.js +1 -0
- package/static/chunk-XQFA4DLU.js +1 -0
- package/static/chunk-YQGJX5R7.js +1 -0
- package/static/chunk-ZEZVOO4G.js +1 -0
- package/static/chunk-ZJDBESQA.js +1 -0
- package/static/index.html +2 -2
- package/static/main-2GG5BCQL.js +10 -0
- package/static/{scripts-MQMRSPYD.js → scripts-263WP5VB.js} +2 -2
- package/static/{styles-TJJDSCD4.css → styles-3DONJ2Z4.css} +1 -1
- package/sync-in-server.js +12 -5
- package/static/assets/mimes/7zip.svg +0 -14
- package/static/assets/mimes/application-7zip.svg +0 -14
- package/static/assets/mimes/application-atom+xml.svg +0 -15
- package/static/assets/mimes/application-gzip.svg +0 -16
- package/static/assets/mimes/application-mathml+xml.svg +0 -188
- package/static/assets/mimes/application-mp4.svg +0 -18
- package/static/assets/mimes/application-msexcel.svg +0 -1
- package/static/assets/mimes/application-msword-template.svg +0 -1
- package/static/assets/mimes/application-pgp-encrypted.svg +0 -16
- package/static/assets/mimes/application-pgp-keys.svg +0 -16
- package/static/assets/mimes/application-pgp-signature.svg +0 -16
- package/static/assets/mimes/application-powerpoint.svg +0 -1
- package/static/assets/mimes/application-rdf+xml.svg +0 -14
- package/static/assets/mimes/application-rss+xml.svg +0 -15
- package/static/assets/mimes/application-rtf.svg +0 -14
- package/static/assets/mimes/application-text.svg +0 -14
- package/static/assets/mimes/application-vnd.ms-excel.sheet.binary.macroenabled.12.svg +0 -1
- package/static/assets/mimes/application-vnd.ms-excel.sheet.macroenabled.12.svg +0 -1
- package/static/assets/mimes/application-vnd.ms-excel.template.macroenabled.12.svg +0 -1
- package/static/assets/mimes/application-vnd.ms-powerpoint.presentation.macroenabled.12.svg +0 -1
- package/static/assets/mimes/application-vnd.ms-powerpoint.template.macroenabled.12.svg +0 -1
- package/static/assets/mimes/application-vnd.ms-word.document.macroenabled.12.svg +0 -1
- package/static/assets/mimes/application-vnd.ms-word.svg +0 -1
- package/static/assets/mimes/application-vnd.ms-word.template.macroenabled.12.svg +0 -1
- package/static/assets/mimes/application-vnd.mspowerpoint.svg +0 -1
- package/static/assets/mimes/application-vnd.oasis.opendocument.chart.svg +0 -1
- package/static/assets/mimes/application-vnd.oasis.opendocument.text-master.svg +0 -92
- package/static/assets/mimes/application-vnd.oasis.opendocument.text-web.svg +0 -18
- package/static/assets/mimes/application-vnd.openofficeorg.extension.svg +0 -59
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.presentationml.presentation.svg +0 -1
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.presentationml.slideshow.svg +0 -1
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.svg +0 -1
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.spreadsheetml.template.svg +0 -1
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.wordprocessingml.document.svg +0 -1
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.wordprocessingml.template.svg +0 -1
- package/static/assets/mimes/application-vnd.rn-realmedia.svg +0 -18
- package/static/assets/mimes/application-vnd.sun.xml.calc.svg +0 -1
- package/static/assets/mimes/application-vnd.sun.xml.writer-global.svg +0 -1
- package/static/assets/mimes/application-vnd.sun.xml.writer-template.svg +0 -1
- package/static/assets/mimes/application-vnd.sun.xml.writer.svg +0 -1
- package/static/assets/mimes/application-vnd.sun.xml.writer.template.svg +0 -14
- package/static/assets/mimes/application-wps-office.doc.svg +0 -1
- package/static/assets/mimes/application-wps-office.docx.svg +0 -1
- package/static/assets/mimes/application-wps-office.ppt.svg +0 -1
- package/static/assets/mimes/application-wps-office.pptx.svg +0 -1
- package/static/assets/mimes/application-wps-office.xls.svg +0 -1
- package/static/assets/mimes/application-wps-office.xlsx.svg +0 -1
- package/static/assets/mimes/application-x-7zip.svg +0 -14
- package/static/assets/mimes/application-x-ace.svg +0 -14
- package/static/assets/mimes/application-x-addon.svg +0 -59
- package/static/assets/mimes/application-x-ar.svg +0 -16
- package/static/assets/mimes/application-x-arc.svg +0 -14
- package/static/assets/mimes/application-x-archive.svg +0 -16
- package/static/assets/mimes/application-x-arj.svg +0 -14
- package/static/assets/mimes/application-x-audacity-project.svg +0 -24
- package/static/assets/mimes/application-x-bzdvi.svg +0 -14
- package/static/assets/mimes/application-x-bzip-compressed-tar.svg +0 -14
- package/static/assets/mimes/application-x-class-file.svg +0 -37
- package/static/assets/mimes/application-x-compress-tar.svg +0 -16
- package/static/assets/mimes/application-x-compress.svg +0 -16
- package/static/assets/mimes/application-x-compressed-tar.svg +0 -14
- package/static/assets/mimes/application-x-core.svg +0 -20
- package/static/assets/mimes/application-x-cpio.svg +0 -16
- package/static/assets/mimes/application-x-deb.svg +0 -14
- package/static/assets/mimes/application-x-designer.svg +0 -48
- package/static/assets/mimes/application-x-egon.svg +0 -12
- package/static/assets/mimes/application-x-extension-html.svg +0 -18
- package/static/assets/mimes/application-x-font-afm.svg +0 -14
- package/static/assets/mimes/application-x-font-snf.svg +0 -14
- package/static/assets/mimes/application-x-font-speedo.svg +0 -14
- package/static/assets/mimes/application-x-font-type1.svg +0 -14
- package/static/assets/mimes/application-x-gettext-translation.svg +0 -14
- package/static/assets/mimes/application-x-gnome-theme-package.svg +0 -109
- package/static/assets/mimes/application-x-gzdvi.svg +0 -16
- package/static/assets/mimes/application-x-gzip.svg +0 -16
- package/static/assets/mimes/application-x-httpd-php.svg +0 -18
- package/static/assets/mimes/application-x-iso9660-image.svg +0 -292
- package/static/assets/mimes/application-x-java-archive.svg +0 -16
- package/static/assets/mimes/application-x-jokosher.svg +0 -24
- package/static/assets/mimes/application-x-kcachegrind.svg +0 -273
- package/static/assets/mimes/application-x-kcsrc.svg +0 -109
- package/static/assets/mimes/application-x-keepass2.svg +0 -2
- package/static/assets/mimes/application-x-kgetlist.svg +0 -53
- package/static/assets/mimes/application-x-lha.svg +0 -14
- package/static/assets/mimes/application-x-lzma-compressed-tar.svg +0 -16
- package/static/assets/mimes/application-x-lzop.svg +0 -16
- package/static/assets/mimes/application-x-m4.svg +0 -14
- package/static/assets/mimes/application-x-matroska.svg +0 -18
- package/static/assets/mimes/application-x-mplayer2.svg +0 -18
- package/static/assets/mimes/application-x-ms-application.svg +0 -306
- package/static/assets/mimes/application-x-msdos-program.svg +0 -306
- package/static/assets/mimes/application-x-msdownload.svg +0 -306
- package/static/assets/mimes/application-x-msi.svg +0 -306
- package/static/assets/mimes/application-x-mswinurl.svg +0 -18
- package/static/assets/mimes/application-x-mswrite.svg +0 -1
- package/static/assets/mimes/application-x-object.svg +0 -273
- package/static/assets/mimes/application-x-ole-storage.svg +0 -273
- package/static/assets/mimes/application-x-pak.svg +0 -16
- package/static/assets/mimes/application-x-perl.svg +0 -15
- package/static/assets/mimes/application-x-php.svg +0 -18
- package/static/assets/mimes/application-x-python-bytecode.svg +0 -16
- package/static/assets/mimes/application-x-rar.svg +0 -14
- package/static/assets/mimes/application-x-rpm.svg +0 -14
- package/static/assets/mimes/application-x-ruby.svg +0 -22
- package/static/assets/mimes/application-x-sh.svg +0 -17
- package/static/assets/mimes/application-x-shared-library-la.svg +0 -62
- package/static/assets/mimes/application-x-shellscript.svg +0 -17
- package/static/assets/mimes/application-x-shockwave-flash.svg +0 -18
- package/static/assets/mimes/application-x-srt.svg +0 -210
- package/static/assets/mimes/application-x-tar.svg +0 -16
- package/static/assets/mimes/application-x-tarz.svg +0 -14
- package/static/assets/mimes/application-x-trash.svg +0 -14
- package/static/assets/mimes/application-x-tzo.svg +0 -14
- package/static/assets/mimes/application-x-wine-extension-pdd.svg +0 -14
- package/static/assets/mimes/application-x-zip.svg +0 -14
- package/static/assets/mimes/application-x-zoo.svg +0 -14
- package/static/assets/mimes/application-xhtml+xml.svg +0 -18
- package/static/assets/mimes/application-xml.svg +0 -18
- package/static/assets/mimes/application-xsd.svg +0 -18
- package/static/assets/mimes/application-xslt+xml.svg +0 -18
- package/static/assets/mimes/application-zip.svg +0 -14
- package/static/assets/mimes/applications-java.svg +0 -14
- package/static/assets/mimes/archive.svg +0 -16
- package/static/assets/mimes/ascii.svg +0 -14
- package/static/assets/mimes/audio-ac3.svg +0 -24
- package/static/assets/mimes/audio-flac.svg +0 -24
- package/static/assets/mimes/audio-mpeg.svg +0 -24
- package/static/assets/mimes/audio-vn.rn-realmedia.svg +0 -18
- package/static/assets/mimes/audio-vnd.rn-realvideo.svg +0 -18
- package/static/assets/mimes/audio-x-adpcm.svg +0 -24
- package/static/assets/mimes/audio-x-aiff.svg +0 -24
- package/static/assets/mimes/audio-x-flac+ogg.svg +0 -24
- package/static/assets/mimes/audio-x-flac.svg +0 -24
- package/static/assets/mimes/audio-x-it.svg +0 -24
- package/static/assets/mimes/audio-x-monkey.svg +0 -24
- package/static/assets/mimes/audio-x-mpegurl.svg +0 -24
- package/static/assets/mimes/audio-x-wav.svg +0 -24
- package/static/assets/mimes/audio-x-xi.svg +0 -24
- package/static/assets/mimes/audio-x-xm.svg +0 -24
- package/static/assets/mimes/binary.svg +0 -40
- package/static/assets/mimes/deb.svg +0 -14
- package/static/assets/mimes/divx.svg +0 -18
- package/static/assets/mimes/document.svg +0 -14
- package/static/assets/mimes/emblem-package.svg +0 -16
- package/static/assets/mimes/eps.svg +0 -24
- package/static/assets/mimes/exec.svg +0 -40
- package/static/assets/mimes/folder-tar.svg +0 -16
- package/static/assets/mimes/folder_tar.svg +0 -16
- package/static/assets/mimes/font-otf.svg +0 -14
- package/static/assets/mimes/font.svg +0 -14
- package/static/assets/mimes/font_bitmap.svg +0 -14
- package/static/assets/mimes/font_truetype.svg +0 -14
- package/static/assets/mimes/font_type1.svg +0 -14
- package/static/assets/mimes/fonts-package.svg +0 -16
- package/static/assets/mimes/gedit-plugin.svg +0 -59
- package/static/assets/mimes/gnome-exe-thumbnailer-generic-x.svg +0 -306
- package/static/assets/mimes/gnome-exe-thumbnailer-generic.svg +0 -306
- package/static/assets/mimes/gnome-exe-thumbnailer-template.svg +0 -306
- package/static/assets/mimes/gnome-fs-executable.svg +0 -40
- package/static/assets/mimes/gnome-mime-application-atom+xml.svg +0 -15
- package/static/assets/mimes/gnome-mime-application-msexcel.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-msword.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-ogg.svg +0 -24
- package/static/assets/mimes/gnome-mime-application-pdf.svg +0 -13
- package/static/assets/mimes/gnome-mime-application-postscript.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-powerpoint.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-rss+xml.svg +0 -15
- package/static/assets/mimes/gnome-mime-application-rtf.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-vnd.ms-excel.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-vnd.ms-powerpoint.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-vnd.ms-word.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-vnd.mspowerpoint.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-vnd.oasis.opendocument.formula.svg +0 -188
- package/static/assets/mimes/gnome-mime-application-vnd.oasis.opendocument.text-web.svg +0 -18
- package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.presentationml.presentation.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.presentationml.slideshow.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.wordprocessingml.document.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia-secure.svg +0 -18
- package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia-vbr.svg +0 -18
- package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia.svg +0 -18
- package/static/assets/mimes/gnome-mime-application-wps-office.doc.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-wps-office.docx.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-wps-office.ppt.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-wps-office.pptx.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-wps-office.xls.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-wps-office.xlsx.svg +0 -1
- package/static/assets/mimes/gnome-mime-application-x-7z-compressed.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-7zip.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-archive.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-arj.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-bittorrent.svg +0 -53
- package/static/assets/mimes/gnome-mime-application-x-bzip-compressed-tar.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-bzip-compressed.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-bzip.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-class-file.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-compress.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-compressed-tar.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-cpio-compressed.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-cpio.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-deb.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-designer.svg +0 -48
- package/static/assets/mimes/gnome-mime-application-x-executable.svg +0 -40
- package/static/assets/mimes/gnome-mime-application-x-font-afm.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-font-bdf.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-font-linux-psf.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-font-pcf.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-font-sunos-news.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-font-ttf.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-glade.svg +0 -48
- package/static/assets/mimes/gnome-mime-application-x-gnome-app-info.svg +0 -109
- package/static/assets/mimes/gnome-mime-application-x-gnome-theme-package.svg +0 -109
- package/static/assets/mimes/gnome-mime-application-x-gzip.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-gzpostscript.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-jar.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-java.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-killustrator.svg +0 -12
- package/static/assets/mimes/gnome-mime-application-x-lha.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-lhz.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-lzma-compressed-tar.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-lzma.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-ms-dos-executable.svg +0 -306
- package/static/assets/mimes/gnome-mime-application-x-perl.svg +0 -15
- package/static/assets/mimes/gnome-mime-application-x-php.svg +0 -18
- package/static/assets/mimes/gnome-mime-application-x-python-bytecode.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-rar.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-rpm.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-x-ruby.svg +0 -22
- package/static/assets/mimes/gnome-mime-application-x-shellscript.svg +0 -17
- package/static/assets/mimes/gnome-mime-application-x-shockwave-flash.svg +0 -18
- package/static/assets/mimes/gnome-mime-application-x-stuffit.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-tar.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-tarz.svg +0 -16
- package/static/assets/mimes/gnome-mime-application-x-tex.svg +0 -79
- package/static/assets/mimes/gnome-mime-application-x-theme.svg +0 -109
- package/static/assets/mimes/gnome-mime-application-x-zip.svg +0 -14
- package/static/assets/mimes/gnome-mime-application-xhtml+xml.svg +0 -18
- package/static/assets/mimes/gnome-mime-application-xml.svg +0 -18
- package/static/assets/mimes/gnome-mime-application-zip.svg +0 -14
- package/static/assets/mimes/gnome-mime-application.svg +0 -40
- package/static/assets/mimes/gnome-mime-audio.svg +0 -24
- package/static/assets/mimes/gnome-mime-image-vnd.adobe.photoshop.svg +0 -14
- package/static/assets/mimes/gnome-mime-image-x-cmu-raster.svg +0 -12
- package/static/assets/mimes/gnome-mime-image-x-killustrator.svg +0 -12
- package/static/assets/mimes/gnome-mime-image-x-psd.svg +0 -14
- package/static/assets/mimes/gnome-mime-image-x-xpixmap.svg +0 -12
- package/static/assets/mimes/gnome-mime-image.svg +0 -12
- package/static/assets/mimes/gnome-mime-text-html.svg +0 -18
- package/static/assets/mimes/gnome-mime-text-install.svg +0 -20
- package/static/assets/mimes/gnome-mime-text-plain.svg +0 -14
- package/static/assets/mimes/gnome-mime-text-vnd.wap.wml.svg +0 -18
- package/static/assets/mimes/gnome-mime-text-x-changelog.svg +0 -208
- package/static/assets/mimes/gnome-mime-text-x-copying.svg +0 -17
- package/static/assets/mimes/gnome-mime-text-x-csh.svg +0 -17
- package/static/assets/mimes/gnome-mime-text-x-gtkrc.svg +0 -109
- package/static/assets/mimes/gnome-mime-text-x-install.svg +0 -17
- package/static/assets/mimes/gnome-mime-text-x-java-source.svg +0 -14
- package/static/assets/mimes/gnome-mime-text-x-java.svg +0 -14
- package/static/assets/mimes/gnome-mime-text-x-makefile.svg +0 -176
- package/static/assets/mimes/gnome-mime-text-x-opml+xml.svg +0 -15
- package/static/assets/mimes/gnome-mime-text-x-opml.svg +0 -15
- package/static/assets/mimes/gnome-mime-text-x-python.svg +0 -16
- package/static/assets/mimes/gnome-mime-text-x-readme.svg +0 -15
- package/static/assets/mimes/gnome-mime-text-x-sh.svg +0 -17
- package/static/assets/mimes/gnome-mime-text-x-zsh.svg +0 -17
- package/static/assets/mimes/gnome-mime-text.svg +0 -14
- package/static/assets/mimes/gnome-mime-video-x-ms-asf.svg +0 -18
- package/static/assets/mimes/gnome-mime-video-x-ms-wmv.svg +0 -18
- package/static/assets/mimes/gnome-mime-video.svg +0 -18
- package/static/assets/mimes/gnome-mime-x-font-afm.svg +0 -14
- package/static/assets/mimes/gnome-mime-x-install.svg +0 -20
- package/static/assets/mimes/gnome-package.svg +0 -16
- package/static/assets/mimes/html.svg +0 -18
- package/static/assets/mimes/image-gif.svg +0 -12
- package/static/assets/mimes/image-jpeg.svg +0 -12
- package/static/assets/mimes/image-png.svg +0 -12
- package/static/assets/mimes/image-svg+xml-compressed.svg +0 -12
- package/static/assets/mimes/image-svg+xml.svg +0 -12
- package/static/assets/mimes/image-vnd.adobe.photoshop.svg +0 -14
- package/static/assets/mimes/image-vnd.microsoft.icon.svg +0 -12
- package/static/assets/mimes/image-x-psdimage-x-psd.svg +0 -14
- package/static/assets/mimes/image-x-xfig.svg +0 -12
- package/static/assets/mimes/image.svg +0 -12
- package/static/assets/mimes/internet-feed.svg +0 -15
- package/static/assets/mimes/libpeas-plugin.svg +0 -59
- package/static/assets/mimes/libreoffice-database.svg +0 -155
- package/static/assets/mimes/libreoffice-extension.svg +0 -59
- package/static/assets/mimes/libreoffice-extensionn.svg +0 -59
- package/static/assets/mimes/libreoffice-formula.svg +0 -188
- package/static/assets/mimes/libreoffice-oasis-formula.svg +0 -188
- package/static/assets/mimes/libreoffice34-extension.svg +0 -59
- package/static/assets/mimes/media-audio.svg +0 -24
- package/static/assets/mimes/media-video.svg +0 -18
- package/static/assets/mimes/mime-ascii.svg +0 -14
- package/static/assets/mimes/mime_ascii.svg +0 -14
- package/static/assets/mimes/misc.svg +0 -14
- package/static/assets/mimes/multipart-encrypted.svg +0 -273
- package/static/assets/mimes/music.svg +0 -24
- package/static/assets/mimes/none.svg +0 -110
- package/static/assets/mimes/openofficeorg3-extension.svg +0 -59
- package/static/assets/mimes/package.svg +0 -16
- package/static/assets/mimes/package_editors.svg +0 -14
- package/static/assets/mimes/pdf.svg +0 -13
- package/static/assets/mimes/preferences-certificate.svg +0 -28
- package/static/assets/mimes/preferences-plugin.svg +0 -59
- package/static/assets/mimes/rar.svg +0 -14
- package/static/assets/mimes/raw.svg +0 -12
- package/static/assets/mimes/scii.svg +0 -14
- package/static/assets/mimes/shellscript.svg +0 -17
- package/static/assets/mimes/sound.svg +0 -24
- package/static/assets/mimes/stock_certificate.svg +0 -28
- package/static/assets/mimes/stock_new-formula.svg +0 -188
- package/static/assets/mimes/stock_new-html.svg +0 -18
- package/static/assets/mimes/stock_script.svg +0 -17
- package/static/assets/mimes/stock_scripts.svg +0 -17
- package/static/assets/mimes/tar.svg +0 -16
- package/static/assets/mimes/text-css.svg +0 -18
- package/static/assets/mimes/text-enriched.svg +0 -14
- package/static/assets/mimes/text-htmlh.svg +0 -18
- package/static/assets/mimes/text-javascript.svg +0 -6
- package/static/assets/mimes/text-mht.svg +0 -18
- package/static/assets/mimes/text-plain.svg +0 -14
- package/static/assets/mimes/text-x-bibtex.svg +0 -79
- package/static/assets/mimes/text-x-gtkrc.svg +0 -109
- package/static/assets/mimes/text-x-java-source.svg +0 -14
- package/static/assets/mimes/text-x-lua.svg +0 -14
- package/static/assets/mimes/text-x-nfo.svg +0 -14
- package/static/assets/mimes/text-x-opml+xml.svg +0 -15
- package/static/assets/mimes/text-x-opml.svg +0 -15
- package/static/assets/mimes/text-x-tex.svg +0 -79
- package/static/assets/mimes/text-x-vala.svg +0 -14
- package/static/assets/mimes/text-x.svg +0 -14
- package/static/assets/mimes/text-xmcd.svg +0 -358
- package/static/assets/mimes/text.svg +0 -14
- package/static/assets/mimes/text2.svg +0 -14
- package/static/assets/mimes/tgz.svg +0 -16
- package/static/assets/mimes/txt.svg +0 -14
- package/static/assets/mimes/txt2.svg +0 -14
- package/static/assets/mimes/uri-mms.svg +0 -18
- package/static/assets/mimes/uri-mmst.svg +0 -18
- package/static/assets/mimes/uri-mmsu.svg +0 -18
- package/static/assets/mimes/uri-pnm.svg +0 -18
- package/static/assets/mimes/uri-rtspt.svg +0 -18
- package/static/assets/mimes/uri-rtspu.svg +0 -18
- package/static/assets/mimes/video-quicktime.svg +0 -18
- package/static/assets/mimes/video-vivo.svg +0 -18
- package/static/assets/mimes/video-wavelet.svg +0 -18
- package/static/assets/mimes/video-webm.svg +0 -18
- package/static/assets/mimes/video-x-anim.svg +0 -18
- package/static/assets/mimes/video-x-flic.svg +0 -18
- package/static/assets/mimes/video-x-google-vlc-plugin.svg +0 -18
- package/static/assets/mimes/video-x-javafx.svg +0 -18
- package/static/assets/mimes/video-x-matroska.svg +0 -18
- package/static/assets/mimes/video-x-mng.svg +0 -18
- package/static/assets/mimes/video-x-ms-asf-plugin.svg +0 -18
- package/static/assets/mimes/video-x-ms-asf.svg +0 -18
- package/static/assets/mimes/video-x-ms-wmp.svg +0 -18
- package/static/assets/mimes/video-x-ms-wmv.svg +0 -18
- package/static/assets/mimes/video-x-nsv.svg +0 -18
- package/static/assets/mimes/video-x-sgi-movie.svg +0 -18
- package/static/assets/mimes/video-x-theora+ogg.svg +0 -18
- package/static/assets/mimes/video-x-wmv.svg +0 -18
- package/static/assets/mimes/video.svg +0 -18
- package/static/assets/mimes/www.svg +0 -18
- package/static/assets/mimes/x-kde-nsplugin-generated.svg +0 -59
- package/static/assets/mimes/zip.svg +0 -14
- package/static/chunk-2LIE3SKB.js +0 -7
- package/static/chunk-3BKYCF53.js +0 -1
- package/static/chunk-6CFIZHYI.js +0 -1
- package/static/chunk-7FVU676A.js +0 -4
- package/static/chunk-7RNZNYVF.js +0 -1
- package/static/chunk-7SJOQRBE.js +0 -1
- package/static/chunk-BS5LXHXU.js +0 -1
- package/static/chunk-CPHC7U34.js +0 -1
- package/static/chunk-DVHXFWN7.js +0 -1
- package/static/chunk-DYRV5R67.js +0 -1
- package/static/chunk-EWJD5G76.js +0 -1
- package/static/chunk-EYXC4W63.js +0 -24
- package/static/chunk-FPEGN42P.js +0 -564
- package/static/chunk-GAL4ENT6.js +0 -1
- package/static/chunk-GSVMWC5N.js +0 -1
- package/static/chunk-HNWPHW2W.js +0 -1
- package/static/chunk-IPGNGPWY.js +0 -1
- package/static/chunk-J5O3CY2H.js +0 -1
- package/static/chunk-JRVJIJB5.js +0 -1
- package/static/chunk-MAWDGVNC.js +0 -1
- package/static/chunk-N3QPDPBV.js +0 -1
- package/static/chunk-NSXFB3SX.js +0 -1
- package/static/chunk-OVO4W2GF.js +0 -1
- package/static/chunk-SOLCSMU7.js +0 -1
- package/static/chunk-SY5HMUMM.js +0 -1
- package/static/chunk-SZKZH4MJ.js +0 -1
- package/static/chunk-UGSGMP2I.js +0 -1
- package/static/chunk-ULTPIQL3.js +0 -1
- package/static/chunk-VBWPPICY.js +0 -1
- package/static/chunk-VFSSL4TI.js +0 -1
- package/static/chunk-WGSPBZVN.js +0 -1
- package/static/chunk-X6UFHF4Q.js +0 -1
- package/static/chunk-XBHT4AH5.js +0 -1
- package/static/chunk-ZYB4TLJM.js +0 -4
- package/static/main-EDITZWHO.js +0 -10
|
@@ -94,33 +94,6 @@ let WebDAVMethods = class WebDAVMethods {
|
|
|
94
94
|
return (0, _webdav1.DAV_ERROR_RES)(_common.HttpStatus.LOCKED, _webdav.PRECONDITION.LOCK_CONFLICT, res, fileLock.davLock?.lockroot || fileLock.dbFilePath);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
async lockRefresh(req, res, dbFilePath) {
|
|
98
|
-
if (req.dav?.ifHeaders?.length !== 1) {
|
|
99
|
-
this.logger.warn('Expected a lock token (only one lock may be refreshed at a time)');
|
|
100
|
-
return res.status(_common.HttpStatus.BAD_REQUEST).send('Expected a lock token (only one lock may be refreshed at a time)');
|
|
101
|
-
}
|
|
102
|
-
let token;
|
|
103
|
-
try {
|
|
104
|
-
token = (0, _ifheader.extractOneToken)(req.dav.ifHeaders);
|
|
105
|
-
} catch (e) {
|
|
106
|
-
this.logger.warn(`${this.lockRefresh.name} - unable to extract token : ${JSON.stringify(req.dav.ifHeaders)} (${e})`);
|
|
107
|
-
return res.status(_common.HttpStatus.BAD_REQUEST).send('Unable to extract token');
|
|
108
|
-
}
|
|
109
|
-
const lock = await this.filesLockManager.isLockedWithToken(token, dbFilePath);
|
|
110
|
-
if (!lock) {
|
|
111
|
-
this.logger.warn(`Lock token does not exist or not match URL : ${token}`);
|
|
112
|
-
return (0, _webdav1.DAV_ERROR_RES)(_common.HttpStatus.PRECONDITION_FAILED, _webdav.PRECONDITION.LOCK_TOKEN_MISMATCH, res);
|
|
113
|
-
}
|
|
114
|
-
if (lock.owner.id !== req.user.id) {
|
|
115
|
-
this.logger.warn(`Lock token does not match owner : ${lock.owner.login} != ${req.user.login}`);
|
|
116
|
-
return res.status(_common.HttpStatus.FORBIDDEN).send('Lock token does not match owner');
|
|
117
|
-
}
|
|
118
|
-
await this.filesLockManager.refreshLockTimeout(lock, req.dav.lock.timeout);
|
|
119
|
-
const lockProp = (0, _webdav1.LOCK_PROP)([
|
|
120
|
-
lock
|
|
121
|
-
]);
|
|
122
|
-
return res.type(_webdav.XML_CONTENT_TYPE).status(_common.HttpStatus.OK).send((0, _xml.xmlBuild)(lockProp));
|
|
123
|
-
}
|
|
124
97
|
async unlock(req, res) {
|
|
125
98
|
if (!await (0, _files.isPathExists)(req.space.realPath)) {
|
|
126
99
|
this.logger.warn(`Unable to unlock ${req.dav.url} : resource does not exist`);
|
|
@@ -338,7 +311,7 @@ let WebDAVMethods = class WebDAVMethods {
|
|
|
338
311
|
return;
|
|
339
312
|
}
|
|
340
313
|
try {
|
|
341
|
-
await this.filesManager.copyMove(req.user, req.space, dstSpace, req.dav.copyMove.isMove, req.dav.copyMove.overwrite, {
|
|
314
|
+
await this.filesManager.copyMove(req.user, req.space, dstSpace, req.dav.copyMove.isMove, req.dav.copyMove.overwrite, false, {
|
|
342
315
|
depth: req.dav.depth,
|
|
343
316
|
lockTokens: (0, _ifheader.extractAllTokens)(req.dav.ifHeaders)
|
|
344
317
|
});
|
|
@@ -418,6 +391,33 @@ let WebDAVMethods = class WebDAVMethods {
|
|
|
418
391
|
}
|
|
419
392
|
return atLeastOneOk;
|
|
420
393
|
}
|
|
394
|
+
async lockRefresh(req, res, dbFilePath) {
|
|
395
|
+
if (req.dav?.ifHeaders?.length !== 1) {
|
|
396
|
+
this.logger.warn('Expected a lock token (only one lock may be refreshed at a time)');
|
|
397
|
+
return res.status(_common.HttpStatus.BAD_REQUEST).send('Expected a lock token (only one lock may be refreshed at a time)');
|
|
398
|
+
}
|
|
399
|
+
let token;
|
|
400
|
+
try {
|
|
401
|
+
token = (0, _ifheader.extractOneToken)(req.dav.ifHeaders);
|
|
402
|
+
} catch (e) {
|
|
403
|
+
this.logger.warn(`${this.lockRefresh.name} - unable to extract token : ${JSON.stringify(req.dav.ifHeaders)} (${e})`);
|
|
404
|
+
return res.status(_common.HttpStatus.BAD_REQUEST).send('Unable to extract token');
|
|
405
|
+
}
|
|
406
|
+
const lock = await this.filesLockManager.isLockedWithToken(token, dbFilePath);
|
|
407
|
+
if (!lock) {
|
|
408
|
+
this.logger.warn(`Lock token does not exist or not match URL : ${token}`);
|
|
409
|
+
return (0, _webdav1.DAV_ERROR_RES)(_common.HttpStatus.PRECONDITION_FAILED, _webdav.PRECONDITION.LOCK_TOKEN_MISMATCH, res);
|
|
410
|
+
}
|
|
411
|
+
if (lock.owner.id !== req.user.id) {
|
|
412
|
+
this.logger.warn(`Lock token does not match owner : ${lock.owner.login} != ${req.user.login}`);
|
|
413
|
+
return res.status(_common.HttpStatus.FORBIDDEN).send('Lock token does not match owner');
|
|
414
|
+
}
|
|
415
|
+
await this.filesLockManager.refreshLockTimeout(lock, req.dav.lock.timeout);
|
|
416
|
+
const lockProp = (0, _webdav1.LOCK_PROP)([
|
|
417
|
+
lock
|
|
418
|
+
]);
|
|
419
|
+
return res.type(_webdav.XML_CONTENT_TYPE).status(_common.HttpStatus.OK).send((0, _xml.xmlBuild)(lockProp));
|
|
420
|
+
}
|
|
421
421
|
handleError(req, res, e, toUrl) {
|
|
422
422
|
this.logger.error(`Unable to ${req.method} ${req.dav.url}${toUrl ? ` -> ${toUrl}` : ''} : ${e.message}`);
|
|
423
423
|
if (e instanceof _filelockerror.LockConflict) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/webdav/services/webdav-methods.service.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { HttpException, HttpStatus, Injectable, Logger, StreamableFile } from '@nestjs/common'\nimport { FastifyReply } from 'fastify'\nimport { currentTimeStamp, encodeUrl } from '../../../common/shared'\nimport { FileLock } from '../../files/interfaces/file-lock.interface'\nimport { FileError } from '../../files/models/file-error'\nimport { LockConflict } from '../../files/models/file-lock-error'\nimport { FilesLockManager } from '../../files/services/files-lock-manager.service'\nimport { FilesManager } from '../../files/services/files-manager.service'\nimport { dirName, genEtag, isPathExists } from '../../files/utils/files'\nimport { SPACE_OPERATION, SPACE_REPOSITORY } from '../../spaces/constants/spaces'\nimport { SpaceEnv } from '../../spaces/models/space-env.model'\nimport { dbFileFromSpace } from '../../spaces/utils/paths'\nimport { haveSpaceEnvPermissions } from '../../spaces/utils/permissions'\nimport {\n DEPTH,\n LOCK_DISCOVERY_PROP,\n NS_PREFIX,\n PRECONDITION,\n PROPPATCH_METHOD,\n PROPPATCH_MODIFIED_PROPS,\n PROPPATCH_PROP_UPDATE,\n PROPPATCH_SUPPORTED_PROPS,\n PROPSTAT,\n STANDARD_PROPS,\n XML_CONTENT_TYPE\n} from '../constants/webdav'\nimport { IfHeaderDecorator } from '../decorators/if-header.decorator'\nimport { FastifyDAVRequest, WebDAVLock } from '../interfaces/webdav.interface'\nimport { extractAllTokens, extractOneToken } from '../utils/if-header'\nimport { DAV_ERROR_RES, LOCK_DISCOVERY, LOCK_PROP, MULTI_STATUS, PROP, PROP_STAT } from '../utils/webdav'\nimport { xmlBuild } from '../utils/xml'\nimport { WebDAVSpaces } from './webdav-spaces.service'\n\n@Injectable()\nexport class WebDAVMethods {\n private readonly logger = new Logger(WebDAVMethods.name)\n\n constructor(\n private readonly webDAVHandler: WebDAVSpaces,\n private readonly filesManager: FilesManager,\n private readonly filesLockManager: FilesLockManager\n ) {}\n\n async headOrGet(req: FastifyDAVRequest, res: FastifyReply, repository: string): Promise<StreamableFile> {\n if (repository === SPACE_REPOSITORY.FILES && !req.space.inSharesList) {\n const sendFile = this.filesManager.sendFileFromSpace(req.space)\n try {\n await sendFile.checks()\n return await sendFile.stream(req, res)\n } catch (e) {\n return this.handleError(req, res, e)\n }\n }\n this.logger.warn(`Not allowed on this resource : ${repository}`)\n return res.status(HttpStatus.FORBIDDEN).send('Not allowed on this resource')\n }\n\n @IfHeaderDecorator()\n async lock(req: FastifyDAVRequest, res: FastifyReply) {\n const isLockRefresh = !req.dav.body\n const rExists = await isPathExists(req.space.realPath)\n\n if (isLockRefresh) {\n // if the body has no content, the request must refresh the lock\n if (!rExists) {\n this.logger.warn('Lock refresh must specify an existing resource')\n return res.status(HttpStatus.BAD_REQUEST).send('Lock refresh must specify an existing resource')\n }\n return this.lockRefresh(req, res, req.space.dbFile.path)\n }\n if (!rExists) {\n if (!haveSpaceEnvPermissions(req.space, SPACE_OPERATION.ADD)) {\n this.logger.warn(`is not allowed to create on this space : *${req.space.alias}* (${req.space.id}) : ${req.space.url}`)\n return res.status(HttpStatus.FORBIDDEN).send('You are not allowed to do this action')\n }\n if (!(await isPathExists(dirName(req.space.realPath)))) {\n return res.status(HttpStatus.CONFLICT).send('Parent must exists')\n }\n }\n\n const davLock: WebDAVLock = {\n lockroot: req.dav.url,\n locktoken: null, // created later\n lockscope: req.dav.lock.lockscope,\n owner: req.dav.lock.owner\n }\n\n const [ok, fileLock] = await this.filesLockManager.create(req.user, req.space.dbFile, req.dav.depth, req.dav.lock.timeout, davLock)\n if (ok) {\n // Locking unmapped URLs: must create an empty resource (that is not a collection)\n if (!rExists) {\n // checkLocks set to false because the conflicts are already checked in `filesLockManager.create` method\n await this.filesManager.mkFile(req.user, req.space, false, false, false)\n }\n const lockProp = LOCK_PROP([fileLock])\n return res\n .header('lock-token', `<${davLock.locktoken}>`)\n .type(XML_CONTENT_TYPE)\n .status(rExists ? HttpStatus.OK : HttpStatus.CREATED)\n .send(xmlBuild(lockProp))\n } else {\n return DAV_ERROR_RES(HttpStatus.LOCKED, PRECONDITION.LOCK_CONFLICT, res, fileLock.davLock?.lockroot || fileLock.dbFilePath)\n }\n }\n\n private async lockRefresh(req: FastifyDAVRequest, res: FastifyReply, dbFilePath: string) {\n if (req.dav?.ifHeaders?.length !== 1) {\n this.logger.warn('Expected a lock token (only one lock may be refreshed at a time)')\n return res.status(HttpStatus.BAD_REQUEST).send('Expected a lock token (only one lock may be refreshed at a time)')\n }\n\n let token: string\n try {\n token = extractOneToken(req.dav.ifHeaders)\n } catch (e) {\n this.logger.warn(`${this.lockRefresh.name} - unable to extract token : ${JSON.stringify(req.dav.ifHeaders)} (${e})`)\n return res.status(HttpStatus.BAD_REQUEST).send('Unable to extract token')\n }\n\n const lock = await this.filesLockManager.isLockedWithToken(token, dbFilePath)\n if (!lock) {\n this.logger.warn(`Lock token does not exist or not match URL : ${token}`)\n return DAV_ERROR_RES(HttpStatus.PRECONDITION_FAILED, PRECONDITION.LOCK_TOKEN_MISMATCH, res)\n }\n if (lock.owner.id !== req.user.id) {\n this.logger.warn(`Lock token does not match owner : ${lock.owner.login} != ${req.user.login}`)\n return res.status(HttpStatus.FORBIDDEN).send('Lock token does not match owner')\n }\n\n await this.filesLockManager.refreshLockTimeout(lock, req.dav.lock.timeout)\n const lockProp = LOCK_PROP([lock])\n return res.type(XML_CONTENT_TYPE).status(HttpStatus.OK).send(xmlBuild(lockProp))\n }\n\n @IfHeaderDecorator()\n async unlock(req: FastifyDAVRequest, res: FastifyReply) {\n if (!(await isPathExists(req.space.realPath))) {\n this.logger.warn(`Unable to unlock ${req.dav.url} : resource does not exist`)\n return res.status(HttpStatus.NOT_FOUND).send(req.dav.url)\n }\n\n const lock = await this.filesLockManager.isLockedWithToken(req.dav.lock.token, req.space.dbFile.path)\n if (!lock) {\n this.logger.warn(`Lock token does not exist or not match URL : ${req.dav.lock.token}`)\n return DAV_ERROR_RES(HttpStatus.CONFLICT, PRECONDITION.LOCK_TOKEN_MISMATCH, res)\n }\n if (req.user.id !== lock.owner.id) {\n return res.status(HttpStatus.FORBIDDEN).send('Token was created by another user')\n }\n\n await this.filesLockManager.removeLock(lock.key)\n return res.status(HttpStatus.NO_CONTENT).send()\n }\n\n @IfHeaderDecorator()\n async propfind(req: FastifyDAVRequest, res: FastifyReply, repository: string): Promise<string> {\n if (repository === SPACE_REPOSITORY.FILES && !req.space.inSharesList) {\n if (!(await isPathExists(req.space.realPath))) {\n return res.status(HttpStatus.NOT_FOUND).send(req.dav.url)\n }\n }\n\n const responses: any[] = []\n let requestedProps: string[]\n let locks: Record<string, FileLock> = {}\n\n if (req.dav.propfindMode === PROPSTAT.PROP) {\n // ignores all unknown properties (non-RFC compliant but avoids generating too much content, faster)\n requestedProps = Object.keys(req.dav.body.propfind.prop).filter((prop: string) => STANDARD_PROPS.indexOf(prop) > -1)\n } else {\n requestedProps = STANDARD_PROPS\n }\n\n // Searches all child locks (only for real files) & ignores /webdav/shares endpoint (special case)\n if (req.dav.propfindMode !== PROPSTAT.PROPNAME && repository === SPACE_REPOSITORY.FILES && !req.space.inSharesList) {\n if (req.dav.depth === DEPTH.RESOURCE) {\n // match depth '0'\n locks = await this.filesLockManager.browseLocks(req.space.dbFile)\n } else {\n // match depth '1' or 'infinity'\n locks = await this.filesLockManager.browseParentChildLocks(req.space.dbFile)\n }\n }\n\n for await (const f of this.webDAVHandler.propfind(req, repository)) {\n let prop: any\n if (req.dav.propfindMode === PROPSTAT.PROPNAME) {\n prop = { ...Object.fromEntries(requestedProps.map((x) => [`${NS_PREFIX}:${x}`, ''])) }\n } else {\n prop = {}\n for (const p of requestedProps) {\n let fP: any\n if (p === LOCK_DISCOVERY_PROP) {\n fP = repository === SPACE_REPOSITORY.FILES && f.name in locks ? LOCK_DISCOVERY([locks[f.name]]) : null\n } else {\n fP = f[p]\n }\n if (fP !== undefined) prop[`${NS_PREFIX}:${p}`] = fP\n }\n }\n responses.push(PROP_STAT(f.href, PROP(prop, req.dav.httpVersion, HttpStatus.OK)))\n }\n const propfind = xmlBuild(MULTI_STATUS(responses))\n return res.type(XML_CONTENT_TYPE).status(HttpStatus.MULTI_STATUS).send(propfind)\n }\n\n @IfHeaderDecorator()\n async put(req: FastifyDAVRequest, res: FastifyReply): Promise<FastifyReply> {\n let rExists: boolean\n try {\n rExists = await this.filesManager.saveStream(req.user, req.space, req, {\n dav: {\n depth: req.dav.depth,\n lockTokens: extractAllTokens(req.dav.ifHeaders)\n }\n })\n } catch (e) {\n return this.handleError(req, res, e)\n }\n return res\n .header('etag', genEtag(null, req.space.realPath))\n .status(rExists ? HttpStatus.NO_CONTENT : HttpStatus.CREATED)\n .send()\n }\n\n @IfHeaderDecorator()\n async delete(req: FastifyDAVRequest, res: FastifyReply) {\n try {\n await this.filesManager.delete(req.user, req.space, { lockTokens: extractAllTokens(req.dav.ifHeaders) })\n } catch (e) {\n return this.handleError(req, res, e)\n }\n return res.status(HttpStatus.NO_CONTENT).send()\n }\n\n @IfHeaderDecorator()\n async proppatch(req: FastifyDAVRequest, res: FastifyReply) {\n /* only support 'time modifications' */\n if (!(await isPathExists(req.space.realPath))) {\n return res.status(HttpStatus.NOT_FOUND).send(req.dav.url)\n }\n\n // check locks\n try {\n await this.filesLockManager.checkConflicts(req.space.dbFile, req.dav.depth, {\n userId: req.user.id,\n lockTokens: extractAllTokens(req.dav.ifHeaders)\n })\n } catch (e) {\n return this.handleError(req, res, e)\n }\n\n // evaluate props and return multistatus if errors\n req.dav.proppatch = { props: {}, errors: [] }\n for (const action of Object.keys(req.dav.body[PROPPATCH_PROP_UPDATE])) {\n if (Object.values(PROPPATCH_METHOD).indexOf(action) === -1) {\n const msg = `Unknown tag : expected ${PROPPATCH_METHOD.SET} or ${PROPPATCH_METHOD.REMOVE}`\n this.logger.debug(msg)\n return res.status(HttpStatus.BAD_REQUEST).send(msg)\n }\n\n if (Array.isArray(req.dav.body[PROPPATCH_PROP_UPDATE][action])) {\n if (Object.keys(req.dav.body[PROPPATCH_PROP_UPDATE][action][0])[0] === PROPSTAT.PROP) {\n req.dav.body[PROPPATCH_PROP_UPDATE][action] = {\n [PROPSTAT.PROP]: req.dav.body[PROPPATCH_PROP_UPDATE][action].map((e: any) => e[PROPSTAT.PROP])\n }\n }\n }\n\n if (Object.keys(req.dav.body[PROPPATCH_PROP_UPDATE][action])[0] !== PROPSTAT.PROP) {\n const msg = `Unknown tag : expected ${PROPSTAT.PROP}`\n this.logger.debug(msg)\n return res.status(HttpStatus.BAD_REQUEST).send(msg)\n }\n\n if (!Array.isArray(req.dav.body[PROPPATCH_PROP_UPDATE][action][PROPSTAT.PROP])) {\n req.dav.body[PROPPATCH_PROP_UPDATE][action][PROPSTAT.PROP] = [req.dav.body[PROPPATCH_PROP_UPDATE][action][PROPSTAT.PROP]]\n }\n\n for (const prop of req.dav.body[PROPPATCH_PROP_UPDATE][action][PROPSTAT.PROP] as Record<string, string>[]) {\n for (let [name, value] of Object.entries(prop)) {\n if (action === PROPPATCH_METHOD.REMOVE) {\n value = null\n this.logger.debug(`Proppatch remove method not handled : ${name} -> ${value}`)\n }\n if (PROPPATCH_SUPPORTED_PROPS.indexOf(name) === -1) {\n req.dav.proppatch.errors.push(\n PROP(\n { [`${NS_PREFIX}:${name}`]: null },\n req.dav.httpVersion,\n HttpStatus.FORBIDDEN,\n STANDARD_PROPS.indexOf(name) > -1 ? PRECONDITION.PROTECTED_PROPERTY : undefined\n )\n )\n continue\n }\n req.dav.proppatch.props[name] = value\n }\n }\n }\n\n if (req.dav.proppatch.errors.length) {\n // convert all passed props to failed dependency\n for (const name of Object.keys(req.dav.proppatch.props)) {\n req.dav.proppatch.errors.push(PROP({ [`${NS_PREFIX}:${name}`]: null }, req.dav.httpVersion, HttpStatus.FAILED_DEPENDENCY))\n }\n const proppatch = xmlBuild(MULTI_STATUS(PROP_STAT(encodeUrl(req.dav.url), req.dav.proppatch.errors)))\n return res.status(HttpStatus.MULTI_STATUS).type(XML_CONTENT_TYPE).send(proppatch)\n }\n\n // apply modifications\n let atLeastOneError = false\n const states: Record<string, boolean> = {}\n for (const [name, value] of Object.entries(req.dav.proppatch.props)) {\n if (PROPPATCH_MODIFIED_PROPS.indexOf(name) > -1) {\n try {\n await this.filesManager.touch(req.user, req.space, currentTimeStamp(new Date(value)), false)\n } catch (e) {\n this.logger.error(`${this.proppatch.name} - unable to modify mtime on ${req.dav.url} : ${e}`)\n states[name] = false\n atLeastOneError = true\n }\n }\n // hook: we let the known Win32* properties pass to return a consistent result\n states[name] = true\n }\n\n const props = []\n for (const [name, state] of Object.entries(states)) {\n props.push(\n PROP(\n { [`${NS_PREFIX}:${name}`]: null },\n req.dav.httpVersion,\n state ? (atLeastOneError ? HttpStatus.FAILED_DEPENDENCY : HttpStatus.OK) : HttpStatus.BAD_REQUEST\n )\n )\n }\n const proppatch = xmlBuild(MULTI_STATUS(PROP_STAT(encodeUrl(req.dav.url), props)))\n return res.type(XML_CONTENT_TYPE).status(HttpStatus.MULTI_STATUS).send(proppatch)\n }\n\n @IfHeaderDecorator()\n async mkcol(req: FastifyDAVRequest, res: FastifyReply) {\n try {\n await this.filesManager.mkDir(req.user, req.space, false, { depth: req.dav.depth, lockTokens: extractAllTokens(req.dav.ifHeaders) })\n } catch (e) {\n return this.handleError(req, res, e)\n }\n return res.status(HttpStatus.CREATED).send()\n }\n\n @IfHeaderDecorator()\n async copyMove(req: FastifyDAVRequest, res: FastifyReply) {\n const dstSpace: SpaceEnv = await this.webDAVHandler.spaceEnv(req.user, req.dav.copyMove.destination)\n if (!dstSpace) {\n this.logger.warn(`Space not found for destination : ${req.dav.copyMove.destination}`)\n return res.status(HttpStatus.NOT_FOUND).send(req.dav.copyMove.destination)\n }\n const dstExisted = await isPathExists(dstSpace.realPath)\n // We must evaluate the if-headers on the destination\n const fakeDstReq = {\n dav: { ...req.dav, url: req.dav.copyMove.destination },\n user: req.user,\n space: dstSpace\n } as FastifyDAVRequest\n if (!(await this.evaluateIfHeaders(fakeDstReq, res))) {\n // if there is an error the response is generated inside the `evaluateIfHeaders` function\n return\n }\n try {\n await this.filesManager.copyMove(req.user, req.space, dstSpace, req.dav.copyMove.isMove, req.dav.copyMove.overwrite, {\n depth: req.dav.depth,\n lockTokens: extractAllTokens(req.dav.ifHeaders)\n })\n } catch (e) {\n return this.handleError(req, res, e, dstSpace.url)\n }\n return res.status(dstExisted ? HttpStatus.NO_CONTENT : HttpStatus.CREATED).send()\n }\n\n protected async evaluateIfHeaders(req: FastifyDAVRequest, res: FastifyReply): Promise<boolean> {\n if (!req.dav.ifHeaders) return true\n const errors: string[] = []\n let lastPath = null\n let lastSpaceEnv: SpaceEnv\n let lastRPath = undefined\n let lastEtag = undefined // for now, we only generate one etag type (weak)\n let atLeastOneOk = false\n\n for (const condition of req.dav.ifHeaders) {\n if (condition.path) {\n if (condition.path !== lastPath) {\n lastPath = condition.path\n lastSpaceEnv = await this.webDAVHandler.spaceEnv(req.user, lastPath)\n }\n // the path will be the same across conditions\n if (!lastSpaceEnv) {\n this.logger.warn(`If Header : path mismatch (${condition.path})`)\n return false\n }\n } else {\n lastPath = req.dav.url\n lastSpaceEnv = req.space\n }\n\n if (condition.haveLock) {\n try {\n const dbFile = dbFileFromSpace(req.user.id, lastSpaceEnv)\n const match = !!(await this.filesLockManager.getLocksByPath(dbFile)).length\n if (condition.haveLock.mustMatch !== match) {\n errors.push(`have lock condition mismatch (${condition.haveLock.mustMatch} != ${match})`)\n continue\n }\n } catch (e) {\n errors.push(`have lock condition mismatch : ${e.message}`)\n continue\n }\n }\n\n if (condition.token) {\n const token = await this.filesLockManager.getLockByToken(condition.token.value)\n const match = token && lastPath.startsWith(token.davLock?.lockroot)\n if (condition.token.mustMatch !== match) {\n if (!token) {\n errors.push(`lock token not found`)\n } else {\n errors.push(`lock token url mismatch (${lastPath} is not a child of ${token.davLock?.lockroot})`)\n }\n continue\n }\n }\n\n if (condition.etag) {\n if (lastEtag === undefined) {\n if (lastRPath === undefined) {\n lastRPath = (await isPathExists(req.space.realPath)) ? req.space.realPath : null\n }\n lastEtag = lastRPath ? genEtag(null, lastRPath) : null\n }\n const match = lastEtag === condition.etag.value\n if (condition.etag.mustMatch !== match) {\n errors.push(`etag mismatch (${condition.etag.value} != ${lastEtag})`)\n continue\n }\n }\n\n atLeastOneOk = true\n break\n }\n\n if (!atLeastOneOk) {\n this.logger.warn(`If header condition failed : ${errors.join(', ')}`)\n res.status(HttpStatus.PRECONDITION_FAILED).send('If header condition failed')\n }\n return atLeastOneOk\n }\n\n private handleError(req: FastifyDAVRequest, res: FastifyReply, e: any, toUrl?: string) {\n this.logger.error(`Unable to ${req.method} ${req.dav.url}${toUrl ? ` -> ${toUrl}` : ''} : ${e.message}`)\n if (e instanceof LockConflict) {\n return DAV_ERROR_RES(HttpStatus.LOCKED, PRECONDITION.LOCK_CONFLICT, res, e.lock.davLock?.lockroot || e.lock.dbFilePath)\n } else if (e instanceof FileError) {\n return res.status(e.httpCode).send(e.message)\n }\n throw new HttpException(e.message, HttpStatus.INTERNAL_SERVER_ERROR)\n }\n}\n"],"names":["WebDAVMethods","headOrGet","req","res","repository","SPACE_REPOSITORY","FILES","space","inSharesList","sendFile","filesManager","sendFileFromSpace","checks","stream","e","handleError","logger","warn","status","HttpStatus","FORBIDDEN","send","lock","isLockRefresh","dav","body","rExists","isPathExists","realPath","BAD_REQUEST","lockRefresh","dbFile","path","haveSpaceEnvPermissions","SPACE_OPERATION","ADD","alias","id","url","dirName","CONFLICT","davLock","lockroot","locktoken","lockscope","owner","ok","fileLock","filesLockManager","create","user","depth","timeout","mkFile","lockProp","LOCK_PROP","header","type","XML_CONTENT_TYPE","OK","CREATED","xmlBuild","DAV_ERROR_RES","LOCKED","PRECONDITION","LOCK_CONFLICT","dbFilePath","ifHeaders","length","token","extractOneToken","name","JSON","stringify","isLockedWithToken","PRECONDITION_FAILED","LOCK_TOKEN_MISMATCH","login","refreshLockTimeout","unlock","NOT_FOUND","removeLock","key","NO_CONTENT","propfind","responses","requestedProps","locks","propfindMode","PROPSTAT","PROP","Object","keys","prop","filter","STANDARD_PROPS","indexOf","PROPNAME","DEPTH","RESOURCE","browseLocks","browseParentChildLocks","f","webDAVHandler","fromEntries","map","x","NS_PREFIX","p","fP","LOCK_DISCOVERY_PROP","LOCK_DISCOVERY","undefined","push","PROP_STAT","href","httpVersion","MULTI_STATUS","put","saveStream","lockTokens","extractAllTokens","genEtag","delete","proppatch","checkConflicts","userId","props","errors","action","PROPPATCH_PROP_UPDATE","values","PROPPATCH_METHOD","msg","SET","REMOVE","debug","Array","isArray","value","entries","PROPPATCH_SUPPORTED_PROPS","PROTECTED_PROPERTY","FAILED_DEPENDENCY","encodeUrl","atLeastOneError","states","PROPPATCH_MODIFIED_PROPS","touch","currentTimeStamp","Date","error","state","mkcol","mkDir","copyMove","dstSpace","spaceEnv","destination","dstExisted","fakeDstReq","evaluateIfHeaders","isMove","overwrite","lastPath","lastSpaceEnv","lastRPath","lastEtag","atLeastOneOk","condition","haveLock","dbFileFromSpace","match","getLocksByPath","mustMatch","message","getLockByToken","startsWith","etag","join","toUrl","method","LockConflict","FileError","httpCode","HttpException","INTERNAL_SERVER_ERROR","Logger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/webdav/services/webdav-methods.service.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { HttpException, HttpStatus, Injectable, Logger, StreamableFile } from '@nestjs/common'\nimport { FastifyReply } from 'fastify'\nimport { currentTimeStamp, encodeUrl } from '../../../common/shared'\nimport { FileLock } from '../../files/interfaces/file-lock.interface'\nimport { FileError } from '../../files/models/file-error'\nimport { LockConflict } from '../../files/models/file-lock-error'\nimport { FilesLockManager } from '../../files/services/files-lock-manager.service'\nimport { FilesManager } from '../../files/services/files-manager.service'\nimport { dirName, genEtag, isPathExists } from '../../files/utils/files'\nimport { SPACE_OPERATION, SPACE_REPOSITORY } from '../../spaces/constants/spaces'\nimport { SpaceEnv } from '../../spaces/models/space-env.model'\nimport { dbFileFromSpace } from '../../spaces/utils/paths'\nimport { haveSpaceEnvPermissions } from '../../spaces/utils/permissions'\nimport {\n DEPTH,\n LOCK_DISCOVERY_PROP,\n NS_PREFIX,\n PRECONDITION,\n PROPPATCH_METHOD,\n PROPPATCH_MODIFIED_PROPS,\n PROPPATCH_PROP_UPDATE,\n PROPPATCH_SUPPORTED_PROPS,\n PROPSTAT,\n STANDARD_PROPS,\n XML_CONTENT_TYPE\n} from '../constants/webdav'\nimport { IfHeaderDecorator } from '../decorators/if-header.decorator'\nimport { FastifyDAVRequest, WebDAVLock } from '../interfaces/webdav.interface'\nimport { extractAllTokens, extractOneToken } from '../utils/if-header'\nimport { DAV_ERROR_RES, LOCK_DISCOVERY, LOCK_PROP, MULTI_STATUS, PROP, PROP_STAT } from '../utils/webdav'\nimport { xmlBuild } from '../utils/xml'\nimport { WebDAVSpaces } from './webdav-spaces.service'\n\n@Injectable()\nexport class WebDAVMethods {\n private readonly logger = new Logger(WebDAVMethods.name)\n\n constructor(\n private readonly webDAVHandler: WebDAVSpaces,\n private readonly filesManager: FilesManager,\n private readonly filesLockManager: FilesLockManager\n ) {}\n\n async headOrGet(req: FastifyDAVRequest, res: FastifyReply, repository: string): Promise<StreamableFile> {\n if (repository === SPACE_REPOSITORY.FILES && !req.space.inSharesList) {\n const sendFile = this.filesManager.sendFileFromSpace(req.space)\n try {\n await sendFile.checks()\n return await sendFile.stream(req, res)\n } catch (e) {\n return this.handleError(req, res, e)\n }\n }\n this.logger.warn(`Not allowed on this resource : ${repository}`)\n return res.status(HttpStatus.FORBIDDEN).send('Not allowed on this resource')\n }\n\n @IfHeaderDecorator()\n async lock(req: FastifyDAVRequest, res: FastifyReply) {\n const isLockRefresh = !req.dav.body\n const rExists = await isPathExists(req.space.realPath)\n\n if (isLockRefresh) {\n // if the body has no content, the request must refresh the lock\n if (!rExists) {\n this.logger.warn('Lock refresh must specify an existing resource')\n return res.status(HttpStatus.BAD_REQUEST).send('Lock refresh must specify an existing resource')\n }\n return this.lockRefresh(req, res, req.space.dbFile.path)\n }\n if (!rExists) {\n if (!haveSpaceEnvPermissions(req.space, SPACE_OPERATION.ADD)) {\n this.logger.warn(`is not allowed to create on this space : *${req.space.alias}* (${req.space.id}) : ${req.space.url}`)\n return res.status(HttpStatus.FORBIDDEN).send('You are not allowed to do this action')\n }\n if (!(await isPathExists(dirName(req.space.realPath)))) {\n return res.status(HttpStatus.CONFLICT).send('Parent must exists')\n }\n }\n\n const davLock: WebDAVLock = {\n lockroot: req.dav.url,\n locktoken: null, // created later\n lockscope: req.dav.lock.lockscope,\n owner: req.dav.lock.owner\n }\n\n const [ok, fileLock] = await this.filesLockManager.create(req.user, req.space.dbFile, req.dav.depth, req.dav.lock.timeout, davLock)\n if (ok) {\n // Locking unmapped URLs: must create an empty resource (that is not a collection)\n if (!rExists) {\n // checkLocks set to false because the conflicts are already checked in `filesLockManager.create` method\n await this.filesManager.mkFile(req.user, req.space, false, false, false)\n }\n const lockProp = LOCK_PROP([fileLock])\n return res\n .header('lock-token', `<${davLock.locktoken}>`)\n .type(XML_CONTENT_TYPE)\n .status(rExists ? HttpStatus.OK : HttpStatus.CREATED)\n .send(xmlBuild(lockProp))\n } else {\n return DAV_ERROR_RES(HttpStatus.LOCKED, PRECONDITION.LOCK_CONFLICT, res, fileLock.davLock?.lockroot || fileLock.dbFilePath)\n }\n }\n\n @IfHeaderDecorator()\n async unlock(req: FastifyDAVRequest, res: FastifyReply) {\n if (!(await isPathExists(req.space.realPath))) {\n this.logger.warn(`Unable to unlock ${req.dav.url} : resource does not exist`)\n return res.status(HttpStatus.NOT_FOUND).send(req.dav.url)\n }\n\n const lock = await this.filesLockManager.isLockedWithToken(req.dav.lock.token, req.space.dbFile.path)\n if (!lock) {\n this.logger.warn(`Lock token does not exist or not match URL : ${req.dav.lock.token}`)\n return DAV_ERROR_RES(HttpStatus.CONFLICT, PRECONDITION.LOCK_TOKEN_MISMATCH, res)\n }\n if (req.user.id !== lock.owner.id) {\n return res.status(HttpStatus.FORBIDDEN).send('Token was created by another user')\n }\n\n await this.filesLockManager.removeLock(lock.key)\n return res.status(HttpStatus.NO_CONTENT).send()\n }\n\n @IfHeaderDecorator()\n async propfind(req: FastifyDAVRequest, res: FastifyReply, repository: string): Promise<string> {\n if (repository === SPACE_REPOSITORY.FILES && !req.space.inSharesList) {\n if (!(await isPathExists(req.space.realPath))) {\n return res.status(HttpStatus.NOT_FOUND).send(req.dav.url)\n }\n }\n\n const responses: any[] = []\n let requestedProps: string[]\n let locks: Record<string, FileLock> = {}\n\n if (req.dav.propfindMode === PROPSTAT.PROP) {\n // ignores all unknown properties (non-RFC compliant but avoids generating too much content, faster)\n requestedProps = Object.keys(req.dav.body.propfind.prop).filter((prop: string) => STANDARD_PROPS.indexOf(prop) > -1)\n } else {\n requestedProps = STANDARD_PROPS\n }\n\n // Searches all child locks (only for real files) & ignores /webdav/shares endpoint (special case)\n if (req.dav.propfindMode !== PROPSTAT.PROPNAME && repository === SPACE_REPOSITORY.FILES && !req.space.inSharesList) {\n if (req.dav.depth === DEPTH.RESOURCE) {\n // match depth '0'\n locks = await this.filesLockManager.browseLocks(req.space.dbFile)\n } else {\n // match depth '1' or 'infinity'\n locks = await this.filesLockManager.browseParentChildLocks(req.space.dbFile)\n }\n }\n\n for await (const f of this.webDAVHandler.propfind(req, repository)) {\n let prop: any\n if (req.dav.propfindMode === PROPSTAT.PROPNAME) {\n prop = { ...Object.fromEntries(requestedProps.map((x) => [`${NS_PREFIX}:${x}`, ''])) }\n } else {\n prop = {}\n for (const p of requestedProps) {\n let fP: any\n if (p === LOCK_DISCOVERY_PROP) {\n fP = repository === SPACE_REPOSITORY.FILES && f.name in locks ? LOCK_DISCOVERY([locks[f.name]]) : null\n } else {\n fP = f[p]\n }\n if (fP !== undefined) prop[`${NS_PREFIX}:${p}`] = fP\n }\n }\n responses.push(PROP_STAT(f.href, PROP(prop, req.dav.httpVersion, HttpStatus.OK)))\n }\n const propfind = xmlBuild(MULTI_STATUS(responses))\n return res.type(XML_CONTENT_TYPE).status(HttpStatus.MULTI_STATUS).send(propfind)\n }\n\n @IfHeaderDecorator()\n async put(req: FastifyDAVRequest, res: FastifyReply): Promise<FastifyReply> {\n let rExists: boolean\n try {\n rExists = await this.filesManager.saveStream(req.user, req.space, req, {\n dav: {\n depth: req.dav.depth,\n lockTokens: extractAllTokens(req.dav.ifHeaders)\n }\n })\n } catch (e) {\n return this.handleError(req, res, e)\n }\n return res\n .header('etag', genEtag(null, req.space.realPath))\n .status(rExists ? HttpStatus.NO_CONTENT : HttpStatus.CREATED)\n .send()\n }\n\n @IfHeaderDecorator()\n async delete(req: FastifyDAVRequest, res: FastifyReply) {\n try {\n await this.filesManager.delete(req.user, req.space, { lockTokens: extractAllTokens(req.dav.ifHeaders) })\n } catch (e) {\n return this.handleError(req, res, e)\n }\n return res.status(HttpStatus.NO_CONTENT).send()\n }\n\n @IfHeaderDecorator()\n async proppatch(req: FastifyDAVRequest, res: FastifyReply) {\n /* only support 'time modifications' */\n if (!(await isPathExists(req.space.realPath))) {\n return res.status(HttpStatus.NOT_FOUND).send(req.dav.url)\n }\n\n // check locks\n try {\n await this.filesLockManager.checkConflicts(req.space.dbFile, req.dav.depth, {\n userId: req.user.id,\n lockTokens: extractAllTokens(req.dav.ifHeaders)\n })\n } catch (e) {\n return this.handleError(req, res, e)\n }\n\n // evaluate props and return multistatus if errors\n req.dav.proppatch = { props: {}, errors: [] }\n for (const action of Object.keys(req.dav.body[PROPPATCH_PROP_UPDATE])) {\n if (Object.values(PROPPATCH_METHOD).indexOf(action) === -1) {\n const msg = `Unknown tag : expected ${PROPPATCH_METHOD.SET} or ${PROPPATCH_METHOD.REMOVE}`\n this.logger.debug(msg)\n return res.status(HttpStatus.BAD_REQUEST).send(msg)\n }\n\n if (Array.isArray(req.dav.body[PROPPATCH_PROP_UPDATE][action])) {\n if (Object.keys(req.dav.body[PROPPATCH_PROP_UPDATE][action][0])[0] === PROPSTAT.PROP) {\n req.dav.body[PROPPATCH_PROP_UPDATE][action] = {\n [PROPSTAT.PROP]: req.dav.body[PROPPATCH_PROP_UPDATE][action].map((e: any) => e[PROPSTAT.PROP])\n }\n }\n }\n\n if (Object.keys(req.dav.body[PROPPATCH_PROP_UPDATE][action])[0] !== PROPSTAT.PROP) {\n const msg = `Unknown tag : expected ${PROPSTAT.PROP}`\n this.logger.debug(msg)\n return res.status(HttpStatus.BAD_REQUEST).send(msg)\n }\n\n if (!Array.isArray(req.dav.body[PROPPATCH_PROP_UPDATE][action][PROPSTAT.PROP])) {\n req.dav.body[PROPPATCH_PROP_UPDATE][action][PROPSTAT.PROP] = [req.dav.body[PROPPATCH_PROP_UPDATE][action][PROPSTAT.PROP]]\n }\n\n for (const prop of req.dav.body[PROPPATCH_PROP_UPDATE][action][PROPSTAT.PROP] as Record<string, string>[]) {\n for (let [name, value] of Object.entries(prop)) {\n if (action === PROPPATCH_METHOD.REMOVE) {\n value = null\n this.logger.debug(`Proppatch remove method not handled : ${name} -> ${value}`)\n }\n if (PROPPATCH_SUPPORTED_PROPS.indexOf(name) === -1) {\n req.dav.proppatch.errors.push(\n PROP(\n { [`${NS_PREFIX}:${name}`]: null },\n req.dav.httpVersion,\n HttpStatus.FORBIDDEN,\n STANDARD_PROPS.indexOf(name) > -1 ? PRECONDITION.PROTECTED_PROPERTY : undefined\n )\n )\n continue\n }\n req.dav.proppatch.props[name] = value\n }\n }\n }\n\n if (req.dav.proppatch.errors.length) {\n // convert all passed props to failed dependency\n for (const name of Object.keys(req.dav.proppatch.props)) {\n req.dav.proppatch.errors.push(PROP({ [`${NS_PREFIX}:${name}`]: null }, req.dav.httpVersion, HttpStatus.FAILED_DEPENDENCY))\n }\n const proppatch = xmlBuild(MULTI_STATUS(PROP_STAT(encodeUrl(req.dav.url), req.dav.proppatch.errors)))\n return res.status(HttpStatus.MULTI_STATUS).type(XML_CONTENT_TYPE).send(proppatch)\n }\n\n // apply modifications\n let atLeastOneError = false\n const states: Record<string, boolean> = {}\n for (const [name, value] of Object.entries(req.dav.proppatch.props)) {\n if (PROPPATCH_MODIFIED_PROPS.indexOf(name) > -1) {\n try {\n await this.filesManager.touch(req.user, req.space, currentTimeStamp(new Date(value)), false)\n } catch (e) {\n this.logger.error(`${this.proppatch.name} - unable to modify mtime on ${req.dav.url} : ${e}`)\n states[name] = false\n atLeastOneError = true\n }\n }\n // hook: we let the known Win32* properties pass to return a consistent result\n states[name] = true\n }\n\n const props = []\n for (const [name, state] of Object.entries(states)) {\n props.push(\n PROP(\n { [`${NS_PREFIX}:${name}`]: null },\n req.dav.httpVersion,\n state ? (atLeastOneError ? HttpStatus.FAILED_DEPENDENCY : HttpStatus.OK) : HttpStatus.BAD_REQUEST\n )\n )\n }\n const proppatch = xmlBuild(MULTI_STATUS(PROP_STAT(encodeUrl(req.dav.url), props)))\n return res.type(XML_CONTENT_TYPE).status(HttpStatus.MULTI_STATUS).send(proppatch)\n }\n\n @IfHeaderDecorator()\n async mkcol(req: FastifyDAVRequest, res: FastifyReply) {\n try {\n await this.filesManager.mkDir(req.user, req.space, false, { depth: req.dav.depth, lockTokens: extractAllTokens(req.dav.ifHeaders) })\n } catch (e) {\n return this.handleError(req, res, e)\n }\n return res.status(HttpStatus.CREATED).send()\n }\n\n @IfHeaderDecorator()\n async copyMove(req: FastifyDAVRequest, res: FastifyReply) {\n const dstSpace: SpaceEnv = await this.webDAVHandler.spaceEnv(req.user, req.dav.copyMove.destination)\n if (!dstSpace) {\n this.logger.warn(`Space not found for destination : ${req.dav.copyMove.destination}`)\n return res.status(HttpStatus.NOT_FOUND).send(req.dav.copyMove.destination)\n }\n const dstExisted = await isPathExists(dstSpace.realPath)\n // We must evaluate the if-headers on the destination\n const fakeDstReq = {\n dav: { ...req.dav, url: req.dav.copyMove.destination },\n user: req.user,\n space: dstSpace\n } as FastifyDAVRequest\n if (!(await this.evaluateIfHeaders(fakeDstReq, res))) {\n // if there is an error the response is generated inside the `evaluateIfHeaders` function\n return\n }\n try {\n await this.filesManager.copyMove(req.user, req.space, dstSpace, req.dav.copyMove.isMove, req.dav.copyMove.overwrite, false, {\n depth: req.dav.depth,\n lockTokens: extractAllTokens(req.dav.ifHeaders)\n })\n } catch (e) {\n return this.handleError(req, res, e, dstSpace.url)\n }\n return res.status(dstExisted ? HttpStatus.NO_CONTENT : HttpStatus.CREATED).send()\n }\n\n protected async evaluateIfHeaders(req: FastifyDAVRequest, res: FastifyReply): Promise<boolean> {\n if (!req.dav.ifHeaders) return true\n const errors: string[] = []\n let lastPath = null\n let lastSpaceEnv: SpaceEnv\n let lastRPath = undefined\n let lastEtag = undefined // for now, we only generate one etag type (weak)\n let atLeastOneOk = false\n\n for (const condition of req.dav.ifHeaders) {\n if (condition.path) {\n if (condition.path !== lastPath) {\n lastPath = condition.path\n lastSpaceEnv = await this.webDAVHandler.spaceEnv(req.user, lastPath)\n }\n // the path will be the same across conditions\n if (!lastSpaceEnv) {\n this.logger.warn(`If Header : path mismatch (${condition.path})`)\n return false\n }\n } else {\n lastPath = req.dav.url\n lastSpaceEnv = req.space\n }\n\n if (condition.haveLock) {\n try {\n const dbFile = dbFileFromSpace(req.user.id, lastSpaceEnv)\n const match = !!(await this.filesLockManager.getLocksByPath(dbFile)).length\n if (condition.haveLock.mustMatch !== match) {\n errors.push(`have lock condition mismatch (${condition.haveLock.mustMatch} != ${match})`)\n continue\n }\n } catch (e) {\n errors.push(`have lock condition mismatch : ${e.message}`)\n continue\n }\n }\n\n if (condition.token) {\n const token = await this.filesLockManager.getLockByToken(condition.token.value)\n const match = token && lastPath.startsWith(token.davLock?.lockroot)\n if (condition.token.mustMatch !== match) {\n if (!token) {\n errors.push(`lock token not found`)\n } else {\n errors.push(`lock token url mismatch (${lastPath} is not a child of ${token.davLock?.lockroot})`)\n }\n continue\n }\n }\n\n if (condition.etag) {\n if (lastEtag === undefined) {\n if (lastRPath === undefined) {\n lastRPath = (await isPathExists(req.space.realPath)) ? req.space.realPath : null\n }\n lastEtag = lastRPath ? genEtag(null, lastRPath) : null\n }\n const match = lastEtag === condition.etag.value\n if (condition.etag.mustMatch !== match) {\n errors.push(`etag mismatch (${condition.etag.value} != ${lastEtag})`)\n continue\n }\n }\n\n atLeastOneOk = true\n break\n }\n\n if (!atLeastOneOk) {\n this.logger.warn(`If header condition failed : ${errors.join(', ')}`)\n res.status(HttpStatus.PRECONDITION_FAILED).send('If header condition failed')\n }\n return atLeastOneOk\n }\n\n private async lockRefresh(req: FastifyDAVRequest, res: FastifyReply, dbFilePath: string) {\n if (req.dav?.ifHeaders?.length !== 1) {\n this.logger.warn('Expected a lock token (only one lock may be refreshed at a time)')\n return res.status(HttpStatus.BAD_REQUEST).send('Expected a lock token (only one lock may be refreshed at a time)')\n }\n\n let token: string\n try {\n token = extractOneToken(req.dav.ifHeaders)\n } catch (e) {\n this.logger.warn(`${this.lockRefresh.name} - unable to extract token : ${JSON.stringify(req.dav.ifHeaders)} (${e})`)\n return res.status(HttpStatus.BAD_REQUEST).send('Unable to extract token')\n }\n\n const lock = await this.filesLockManager.isLockedWithToken(token, dbFilePath)\n if (!lock) {\n this.logger.warn(`Lock token does not exist or not match URL : ${token}`)\n return DAV_ERROR_RES(HttpStatus.PRECONDITION_FAILED, PRECONDITION.LOCK_TOKEN_MISMATCH, res)\n }\n if (lock.owner.id !== req.user.id) {\n this.logger.warn(`Lock token does not match owner : ${lock.owner.login} != ${req.user.login}`)\n return res.status(HttpStatus.FORBIDDEN).send('Lock token does not match owner')\n }\n\n await this.filesLockManager.refreshLockTimeout(lock, req.dav.lock.timeout)\n const lockProp = LOCK_PROP([lock])\n return res.type(XML_CONTENT_TYPE).status(HttpStatus.OK).send(xmlBuild(lockProp))\n }\n\n private handleError(req: FastifyDAVRequest, res: FastifyReply, e: any, toUrl?: string) {\n this.logger.error(`Unable to ${req.method} ${req.dav.url}${toUrl ? ` -> ${toUrl}` : ''} : ${e.message}`)\n if (e instanceof LockConflict) {\n return DAV_ERROR_RES(HttpStatus.LOCKED, PRECONDITION.LOCK_CONFLICT, res, e.lock.davLock?.lockroot || e.lock.dbFilePath)\n } else if (e instanceof FileError) {\n return res.status(e.httpCode).send(e.message)\n }\n throw new HttpException(e.message, HttpStatus.INTERNAL_SERVER_ERROR)\n }\n}\n"],"names":["WebDAVMethods","headOrGet","req","res","repository","SPACE_REPOSITORY","FILES","space","inSharesList","sendFile","filesManager","sendFileFromSpace","checks","stream","e","handleError","logger","warn","status","HttpStatus","FORBIDDEN","send","lock","isLockRefresh","dav","body","rExists","isPathExists","realPath","BAD_REQUEST","lockRefresh","dbFile","path","haveSpaceEnvPermissions","SPACE_OPERATION","ADD","alias","id","url","dirName","CONFLICT","davLock","lockroot","locktoken","lockscope","owner","ok","fileLock","filesLockManager","create","user","depth","timeout","mkFile","lockProp","LOCK_PROP","header","type","XML_CONTENT_TYPE","OK","CREATED","xmlBuild","DAV_ERROR_RES","LOCKED","PRECONDITION","LOCK_CONFLICT","dbFilePath","unlock","NOT_FOUND","isLockedWithToken","token","LOCK_TOKEN_MISMATCH","removeLock","key","NO_CONTENT","propfind","responses","requestedProps","locks","propfindMode","PROPSTAT","PROP","Object","keys","prop","filter","STANDARD_PROPS","indexOf","PROPNAME","DEPTH","RESOURCE","browseLocks","browseParentChildLocks","f","webDAVHandler","fromEntries","map","x","NS_PREFIX","p","fP","LOCK_DISCOVERY_PROP","name","LOCK_DISCOVERY","undefined","push","PROP_STAT","href","httpVersion","MULTI_STATUS","put","saveStream","lockTokens","extractAllTokens","ifHeaders","genEtag","delete","proppatch","checkConflicts","userId","props","errors","action","PROPPATCH_PROP_UPDATE","values","PROPPATCH_METHOD","msg","SET","REMOVE","debug","Array","isArray","value","entries","PROPPATCH_SUPPORTED_PROPS","PROTECTED_PROPERTY","length","FAILED_DEPENDENCY","encodeUrl","atLeastOneError","states","PROPPATCH_MODIFIED_PROPS","touch","currentTimeStamp","Date","error","state","mkcol","mkDir","copyMove","dstSpace","spaceEnv","destination","dstExisted","fakeDstReq","evaluateIfHeaders","isMove","overwrite","lastPath","lastSpaceEnv","lastRPath","lastEtag","atLeastOneOk","condition","haveLock","dbFileFromSpace","match","getLocksByPath","mustMatch","message","getLockByToken","startsWith","etag","join","PRECONDITION_FAILED","extractOneToken","JSON","stringify","login","refreshLockTimeout","toUrl","method","LockConflict","FileError","httpCode","HttpException","INTERNAL_SERVER_ERROR","Logger"],"mappings":"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"}
|
|
@@ -77,34 +77,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
77
77
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
78
78
|
SOFTWARE.
|
|
79
79
|
|
|
80
|
-
--------------------------------------------------------------------------------
|
|
81
|
-
Package: ngx-bootstrap
|
|
82
|
-
License: "MIT"
|
|
83
|
-
|
|
84
|
-
The MIT License (MIT)
|
|
85
|
-
|
|
86
|
-
Copyright (c) 2015-2020 Valor Software
|
|
87
|
-
Copyright (c) 2015-2020 Dmitriy Shekhovtsov<valorkin@gmail.com>
|
|
88
|
-
|
|
89
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
90
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
91
|
-
in the Software without restriction, including without limitation the rights
|
|
92
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
93
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
94
|
-
furnished to do so, subject to the following conditions:
|
|
95
|
-
|
|
96
|
-
The above copyright notice and this permission notice shall be included in all
|
|
97
|
-
copies or substantial portions of the Software.
|
|
98
|
-
|
|
99
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
100
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
101
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
102
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
103
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
104
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
105
|
-
SOFTWARE.
|
|
106
|
-
|
|
107
|
-
|
|
108
80
|
--------------------------------------------------------------------------------
|
|
109
81
|
Package: @fortawesome/free-brands-svg-icons
|
|
110
82
|
License: "(CC-BY-4.0 AND MIT)"
|
|
@@ -134,7 +106,7 @@ as SVG and JS file types.
|
|
|
134
106
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
|
135
107
|
packaged as web and desktop font files.
|
|
136
108
|
|
|
137
|
-
Copyright (c)
|
|
109
|
+
Copyright (c) 2025 Fonticons, Inc. (https://fontawesome.com)
|
|
138
110
|
with Reserved Font Name: "Font Awesome".
|
|
139
111
|
|
|
140
112
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
@@ -234,7 +206,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
|
234
206
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
|
235
207
|
non-icon files.
|
|
236
208
|
|
|
237
|
-
Copyright
|
|
209
|
+
Copyright 2025 Fonticons, Inc.
|
|
238
210
|
|
|
239
211
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
240
212
|
this software and associated documentation files (the "Software"), to deal in the
|
|
@@ -275,6 +247,34 @@ trademarks does not indicate endorsement of the trademark holder by Font
|
|
|
275
247
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
|
276
248
|
to represent the company, product, or service to which they refer.**
|
|
277
249
|
|
|
250
|
+
--------------------------------------------------------------------------------
|
|
251
|
+
Package: ngx-bootstrap
|
|
252
|
+
License: "MIT"
|
|
253
|
+
|
|
254
|
+
The MIT License (MIT)
|
|
255
|
+
|
|
256
|
+
Copyright (c) 2015-2020 Valor Software
|
|
257
|
+
Copyright (c) 2015-2020 Dmitriy Shekhovtsov<valorkin@gmail.com>
|
|
258
|
+
|
|
259
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
260
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
261
|
+
in the Software without restriction, including without limitation the rights
|
|
262
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
263
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
264
|
+
furnished to do so, subject to the following conditions:
|
|
265
|
+
|
|
266
|
+
The above copyright notice and this permission notice shall be included in all
|
|
267
|
+
copies or substantial portions of the Software.
|
|
268
|
+
|
|
269
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
270
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
271
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
272
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
273
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
274
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
275
|
+
SOFTWARE.
|
|
276
|
+
|
|
277
|
+
|
|
278
278
|
--------------------------------------------------------------------------------
|
|
279
279
|
Package: codemirror
|
|
280
280
|
License: "MIT"
|
|
@@ -330,7 +330,7 @@ as SVG and JS file types.
|
|
|
330
330
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
|
331
331
|
packaged as web and desktop font files.
|
|
332
332
|
|
|
333
|
-
Copyright (c)
|
|
333
|
+
Copyright (c) 2025 Fonticons, Inc. (https://fontawesome.com)
|
|
334
334
|
with Reserved Font Name: "Font Awesome".
|
|
335
335
|
|
|
336
336
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
@@ -430,7 +430,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
|
430
430
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
|
431
431
|
non-icon files.
|
|
432
432
|
|
|
433
|
-
Copyright
|
|
433
|
+
Copyright 2025 Fonticons, Inc.
|
|
434
434
|
|
|
435
435
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
436
436
|
this software and associated documentation files (the "Software"), to deal in the
|
|
@@ -718,12 +718,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
718
718
|
SOFTWARE.
|
|
719
719
|
|
|
720
720
|
--------------------------------------------------------------------------------
|
|
721
|
-
Package: @angular/
|
|
721
|
+
Package: @angular/core
|
|
722
722
|
License: "MIT"
|
|
723
723
|
|
|
724
724
|
The MIT License
|
|
725
725
|
|
|
726
|
-
Copyright (c) 2025 Google LLC.
|
|
726
|
+
Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
|
|
727
727
|
|
|
728
728
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
729
729
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -744,12 +744,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
744
744
|
THE SOFTWARE.
|
|
745
745
|
|
|
746
746
|
--------------------------------------------------------------------------------
|
|
747
|
-
Package: @
|
|
747
|
+
Package: @angular/cdk
|
|
748
748
|
License: "MIT"
|
|
749
749
|
|
|
750
|
-
The MIT License
|
|
750
|
+
The MIT License
|
|
751
751
|
|
|
752
|
-
Copyright (c)
|
|
752
|
+
Copyright (c) 2025 Google LLC.
|
|
753
753
|
|
|
754
754
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
755
755
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -758,24 +758,24 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
758
758
|
copies of the Software, and to permit persons to whom the Software is
|
|
759
759
|
furnished to do so, subject to the following conditions:
|
|
760
760
|
|
|
761
|
-
The above copyright notice and this permission notice shall be included in
|
|
762
|
-
copies or substantial portions of the Software.
|
|
761
|
+
The above copyright notice and this permission notice shall be included in
|
|
762
|
+
all copies or substantial portions of the Software.
|
|
763
763
|
|
|
764
764
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
765
765
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
766
766
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
767
767
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
768
768
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
769
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
770
|
-
SOFTWARE.
|
|
769
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
770
|
+
THE SOFTWARE.
|
|
771
771
|
|
|
772
772
|
--------------------------------------------------------------------------------
|
|
773
|
-
Package: ngx-
|
|
773
|
+
Package: @perfectmemory/ngx-contextmenu
|
|
774
774
|
License: "MIT"
|
|
775
775
|
|
|
776
776
|
The MIT License (MIT)
|
|
777
777
|
|
|
778
|
-
Copyright (c)
|
|
778
|
+
Copyright (c) 2022
|
|
779
779
|
|
|
780
780
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
781
781
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -796,12 +796,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
796
796
|
SOFTWARE.
|
|
797
797
|
|
|
798
798
|
--------------------------------------------------------------------------------
|
|
799
|
-
Package:
|
|
799
|
+
Package: ngx-toastr
|
|
800
800
|
License: "MIT"
|
|
801
801
|
|
|
802
|
-
The MIT License
|
|
802
|
+
The MIT License (MIT)
|
|
803
803
|
|
|
804
|
-
Copyright (c)
|
|
804
|
+
Copyright (c) Scott Cooper <scttcper@gmail.com>
|
|
805
805
|
|
|
806
806
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
807
807
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -810,16 +810,16 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
810
810
|
copies of the Software, and to permit persons to whom the Software is
|
|
811
811
|
furnished to do so, subject to the following conditions:
|
|
812
812
|
|
|
813
|
-
The above copyright notice and this permission notice shall be included in
|
|
814
|
-
|
|
813
|
+
The above copyright notice and this permission notice shall be included in all
|
|
814
|
+
copies or substantial portions of the Software.
|
|
815
815
|
|
|
816
816
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
817
817
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
818
818
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
819
819
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
820
820
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
821
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
822
|
-
|
|
821
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
822
|
+
SOFTWARE.
|
|
823
823
|
|
|
824
824
|
--------------------------------------------------------------------------------
|
|
825
825
|
Package: @angular/router
|
|
@@ -1096,37 +1096,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
1096
1096
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1097
1097
|
THE SOFTWARE.
|
|
1098
1098
|
|
|
1099
|
-
--------------------------------------------------------------------------------
|
|
1100
|
-
Package: @angular/forms
|
|
1101
|
-
License: "MIT"
|
|
1102
|
-
|
|
1103
|
-
The MIT License
|
|
1104
|
-
|
|
1105
|
-
Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
|
|
1106
|
-
|
|
1107
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
1108
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
1109
|
-
in the Software without restriction, including without limitation the rights
|
|
1110
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
1111
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
1112
|
-
furnished to do so, subject to the following conditions:
|
|
1113
|
-
|
|
1114
|
-
The above copyright notice and this permission notice shall be included in
|
|
1115
|
-
all copies or substantial portions of the Software.
|
|
1116
|
-
|
|
1117
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
1118
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
1119
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
1120
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1121
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
1122
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1123
|
-
THE SOFTWARE.
|
|
1124
|
-
|
|
1125
|
-
--------------------------------------------------------------------------------
|
|
1126
|
-
Package: angular-l10n
|
|
1127
|
-
License: "MIT"
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
1099
|
--------------------------------------------------------------------------------
|
|
1131
1100
|
Package: @fortawesome/fontawesome-svg-core
|
|
1132
1101
|
License: "MIT"
|
|
@@ -1156,7 +1125,7 @@ as SVG and JS file types.
|
|
|
1156
1125
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
|
1157
1126
|
packaged as web and desktop font files.
|
|
1158
1127
|
|
|
1159
|
-
Copyright (c)
|
|
1128
|
+
Copyright (c) 2025 Fonticons, Inc. (https://fontawesome.com)
|
|
1160
1129
|
with Reserved Font Name: "Font Awesome".
|
|
1161
1130
|
|
|
1162
1131
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
@@ -1256,7 +1225,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
|
1256
1225
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
|
1257
1226
|
non-icon files.
|
|
1258
1227
|
|
|
1259
|
-
Copyright
|
|
1228
|
+
Copyright 2025 Fonticons, Inc.
|
|
1260
1229
|
|
|
1261
1230
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
1262
1231
|
this software and associated documentation files (the "Software"), to deal in the
|
|
@@ -1323,6 +1292,37 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
1323
1292
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1324
1293
|
THE SOFTWARE.
|
|
1325
1294
|
|
|
1295
|
+
--------------------------------------------------------------------------------
|
|
1296
|
+
Package: @angular/forms
|
|
1297
|
+
License: "MIT"
|
|
1298
|
+
|
|
1299
|
+
The MIT License
|
|
1300
|
+
|
|
1301
|
+
Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
|
|
1302
|
+
|
|
1303
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
1304
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
1305
|
+
in the Software without restriction, including without limitation the rights
|
|
1306
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
1307
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
1308
|
+
furnished to do so, subject to the following conditions:
|
|
1309
|
+
|
|
1310
|
+
The above copyright notice and this permission notice shall be included in
|
|
1311
|
+
all copies or substantial portions of the Software.
|
|
1312
|
+
|
|
1313
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
1314
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
1315
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
1316
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1317
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
1318
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1319
|
+
THE SOFTWARE.
|
|
1320
|
+
|
|
1321
|
+
--------------------------------------------------------------------------------
|
|
1322
|
+
Package: angular-l10n
|
|
1323
|
+
License: "MIT"
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
1326
|
--------------------------------------------------------------------------------
|
|
1327
1327
|
Package: @fortawesome/free-solid-svg-icons
|
|
1328
1328
|
License: "(CC-BY-4.0 AND MIT)"
|
|
@@ -1352,7 +1352,7 @@ as SVG and JS file types.
|
|
|
1352
1352
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
|
1353
1353
|
packaged as web and desktop font files.
|
|
1354
1354
|
|
|
1355
|
-
Copyright (c)
|
|
1355
|
+
Copyright (c) 2025 Fonticons, Inc. (https://fontawesome.com)
|
|
1356
1356
|
with Reserved Font Name: "Font Awesome".
|
|
1357
1357
|
|
|
1358
1358
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
@@ -1452,7 +1452,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
|
1452
1452
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
|
1453
1453
|
non-icon files.
|
|
1454
1454
|
|
|
1455
|
-
Copyright
|
|
1455
|
+
Copyright 2025 Fonticons, Inc.
|
|
1456
1456
|
|
|
1457
1457
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
1458
1458
|
this software and associated documentation files (the "Software"), to deal in the
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Ce,b as ve,c as be,d as xe,f as Ee,i as De}from"./chunk-BOIXDTUT.js";import{a as Se,b as Te}from"./chunk-MLLPT7BU.js";import{f as _e}from"./chunk-6HV65OKG.js";import{K as ce,L as ue,R as D,Sb as he,ua as de,va as pe,wa as ge,xb as fe}from"./chunk-55WOZ7P6.js";import{$c as q,Bf as re,Cb as _,Eb as d,Ed as te,Ee as oe,Fc as B,Fd as ie,Gf as le,Ma as a,Nb as b,Ob as U,Pb as s,Qb as x,Qf as me,Rb as E,Sb as A,Xa as O,Xb as k,Zc as j,ab as y,ad as H,bb as R,bf as ae,cd as p,dc as v,ec as S,ed as X,fc as M,fd as $,gd as z,ha as T,id as g,jb as f,kb as h,lb as F,ma as P,na as L,nb as G,nd as W,ob as N,od as J,of as se,pb as c,pd as K,pe as ne,qb as i,qd as Q,rb as n,rd as Y,sb as u,xd as Z,yd as ee,zb as V}from"./chunk-JQOMI5VI.js";import{a as I}from"./chunk-RTRJ3KFH.js";function we(t,m){if(t&1&&(u(0,"fa-icon",42),i(1,"span"),s(2),n()),t&2){let o=d();c("icon",o.icons.faPen),a(2),x(o.guest.fullName)}}function ye(t,m){if(t&1&&(u(0,"fa-icon",42),i(1,"span",43),s(2,"New guest"),n()),t&2){let o=d();c("icon",o.icons.faPlus)}}function Fe(t,m){if(t&1&&u(0,"fa-icon",2),t&2){let o=d();c("icon",o.icons.faSpinner)}}function Ge(t,m){t&1&&(i(0,"h4",3)(1,"span",43),s(2,"Edit guest"),n()())}function Ne(t,m){if(t&1&&(u(0,"fa-icon",44),i(1,"span",45),s(2,"Account"),n()),t&2){let o=d();c("icon",o.icons.faAddressCard)}}function Ue(t,m){if(t&1&&u(0,"app-password-strength-bar",22),t&2){let o=d();c("passwordToCheck",o.guestForm.value.password)}}function Ae(t,m){if(t&1&&(i(0,"option",26),s(1),n()),t&2){let o=m.$implicit;c("ngValue",o),a(),x(o)}}function ke(t,m){if(t&1&&(i(0,"option",34),s(1),n()),t&2){let o=m.$implicit,r=d();c("ngValue",r.allNotifications.indexOf(o)),a(),x(o)}}function Ie(t,m){if(t&1&&(i(0,"div"),s(1),v(2,"amDateFormat"),n(),i(3,"div"),s(4),v(5,"amDateFormat"),n()),t&2){let o=d(2);a(),A("",S(2,4,o.guest.currentAccess)," - ",o.guest.currentIp),a(3),A("",S(5,6,o.guest.lastAccess)," - ",o.guest.lastIp)}}function Pe(t,m){t&1&&(i(0,"span",37),s(1,"never"),n())}function Le(t,m){if(t&1&&(i(0,"div",11)(1,"div",12)(2,"label",46),s(3,"Creation date"),n(),i(4,"div",47),s(5),v(6,"amDateFormat"),n()(),i(7,"div",48)(8,"label",49),s(9,"Last accesses"),n(),i(10,"div",50),f(11,Ie,6,8)(12,Pe,2,0,"span",37),n()()()),t&2){let o=d();a(5),x(S(6,2,o.guest.createdAt)),a(6),h(o.guest.lastAccess?11:12)}}function Oe(t,m){if(t&1&&(u(0,"fa-icon",44),i(1,"span",51),s(2,"Managers"),n(),i(3,"span"),s(4),n()),t&2){let o=d();c("icon",o.icons.faUsersGear),a(4),E("(",o.guestForm.value.managers.length||0,")")}}function Re(t,m){t&1&&(i(0,"small",37),s(1,"At least one manager is required"),n())}function Ve(t,m){if(t&1){let o=V();i(0,"button",52),_("click",function(){P(o);let l=d();return L(l.confirmDeletion=!0)}),s(1," Remove "),n()}if(t&2){let o=d();c("disabled",o.confirmDeletion)}}var lt=(()=>{let m=class m{constructor(){this.guest=null,this.guestChange=new R,this.locale=T(ee),this.layout=T(fe),this.userService=T(_e),this.user=this.userService.user,this.icons={GROUPS:de.GROUPS,faPlus:le,faPen:se,faUsersGear:me,faSpinner:ae,faAddressCard:oe,faUsers:ne,faShieldHalved:re},this.allNotifications=Object.values(D),this.defaultPassword=this.layout.translateString(pe),this.languages=this.layout.getLanguages(!0),this.submitted=!1,this.loading=!1,this.confirmDeletion=!1}ngOnInit(){this.guestForm=new z({login:new g(this.guest?.login||"",[p.required,p.pattern(ce)]),email:new g(this.guest?.email||"",[p.required,p.maxLength(255),p.email]),firstName:new g(this.guest?.firstName||"",[p.required,p.maxLength(255)]),lastName:new g(this.guest?.lastName||"",p.maxLength(255)),password:new g(this.guest?this.defaultPassword:"",p.maxLength(255)),language:new g(this.guest?.language||null),notification:new g(this.guest?.notification||Object.values(D).indexOf(D.APPLICATION_EMAIL)),isActive:new g(this.guest?this.guest.isActive:!0),managers:new g(this.guest?.managers||[he(this.user)])})}updatePassword(r){this.guestForm.controls.password.setValue(r),this.guestForm.controls.password.markAsDirty()}updateManagers(r){this.guestForm.controls.managers.setValue(r),this.guestForm.controls.managers.markAsDirty(),this.guestForm.controls.managers.setErrors(r.length?null:{incorrect:!0})}searchMembers(r){let l={search:r,ignoreUserIds:this.guestForm.value.managers.map(e=>e.id),usersRole:ue.USER,onlyUsers:!0};return this.userService.searchMembers(l)}onCancel(){this.confirmDeletion?this.confirmDeletion=!1:this.layout.closeDialog()}onSubmit(){if(this.submitted=!0,this.confirmDeletion)this.userService.deleteGuest(this.guest.id).subscribe({next:()=>{this.guestChange.emit(["delete",this.guest]),this.layout.sendNotification("success","Guest deleted",this.guest.login),this.layout.closeDialog()},error:r=>this.onError(r)});else if(!this.guest)this.userService.createGuest(this.makeDto(!0)).subscribe({next:r=>{this.guestChange.emit(["add",r]),this.layout.sendNotification("success","Guest created",this.guestForm.value.login),this.layout.closeDialog()},error:r=>this.onError(r)});else{let r=this.makeDto();if(!Object.keys(r).length){this.loading=!1,this.submitted=!1;return}this.userService.updateGuest(this.guest.id,r).subscribe({next:l=>{l?this.guestChange.emit(["update",l]):this.guestChange.emit(["delete",this.guest]),this.layout.sendNotification("success","Guest updated",this.guestForm.value.login),this.layout.closeDialog()},error:l=>this.onError(l)})}}makeDto(r=!1){let l={};if(r)l=I({},this.guestForm.value);else for(let e in this.guestForm.controls)this.guestForm.controls[e].dirty&&(l[e]=this.guestForm.controls[e].value);for(let e in l)switch(e){case"language":l[e]=l[e]===ge?null:l[e];break;case"managers":l[e]=l[e].map(C=>C.id);break}return l}onError(r){this.layout.sendNotification("error","Guest error",this.guestForm.value.login,r),this.submitted=!1,this.confirmDeletion=!1}};m.\u0275fac=function(l){return new(l||m)},m.\u0275cmp=O({type:m,selectors:[["app-user-guest-dialog"]],inputs:{guest:"guest"},outputs:{guestChange:"guestChange"},decls:70,vars:40,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],["animation","spin","size","sm",1,"ms-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],["type","pills",3,"justified"],[1,"my-3"],["customClass","tab-dialog form-validation",3,"selectTab"],["tabHeading",""],[1,"d-flex","flex-column"],[1,"d-flex","col-12","pb-3"],[1,"flex-fill","col-6","pe-4"],["for","login","l10nTranslate",""],["id","login","appAutofocus","","formControlName","login","autocomplete","off","type","text",1,"form-control","form-control-sm",3,"autoSelect"],[1,"flex-fill","col-6","ps-4"],["for","email","l10nTranslate",""],["id","email","formControlName","email","autocomplete","off","type","email",1,"form-control","form-control-sm"],["for","firstName","l10nTranslate",""],["id","firstName","formControlName","firstName","autocomplete","off","type","text",1,"form-control","form-control-sm"],["for","lastName","l10nTranslate",""],["id","lastName","formControlName","lastName","autocomplete","off","type","text",1,"form-control","form-control-sm"],[1,"position-absolute","pe-4",2,"right","50%","padding-top","6px",3,"passwordToCheck"],["id","password","placeholder","Set a password",3,"passwordChange","password","showGenerator","showLabel","isRequired"],["for","language","l10nTranslate",""],["id","language","formControlName","language",1,"form-control","form-select","form-select-sm"],[3,"ngValue"],[1,"d-flex","flex-column","col-6","pe-4"],["for","account","l10nTranslate",""],["id","account",1,"form-check","form-switch","form-check-inline"],["for","isActive",1,"form-check-label"],["formControlName","isActive","id","isActive","type","checkbox",1,"form-check-input"],["for","notification","l10nTranslate",""],["id","notification","formControlName","notification",1,"form-control","form-select","form-select-sm"],["l10nTranslate","",3,"ngValue"],["customClass","tab-dialog",3,"selectTab"],[3,"membersChange","members","withPermissions","customPlaceholder","searchFunction"],["l10nTranslate","",1,"text-danger"],[1,"modal-footer"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"disabled"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",3,"click","disabled"],[1,"me-2",3,"icon"],["l10nTranslate",""],[3,"icon"],["l10nTranslate","",1,"ms-2"],["for","created","l10nTranslate",""],["id","created"],[1,"d-flex","flex-column","align-items-end","col-6","ps-4"],["for","access","l10nTranslate",""],["id","access",1,"text-align-end"],["l10nTranslate","",1,"ms-2","me-1"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"click","disabled"]],template:function(l,e){l&1&&(i(0,"div",0)(1,"h4",1),f(2,we,3,2)(3,ye,3,1),f(4,Fe,1,1,"fa-icon",2),n(),f(5,Ge,3,0,"h4",3),i(6,"button",4),_("click",function(){return e.layout.closeDialog()}),n()(),i(7,"div",5)(8,"tabset",6),u(9,"hr",7),i(10,"tab",8),_("selectTab",function(){return e.tabView=null}),y(11,Ne,3,1,"ng-template",9),i(12,"div",10)(13,"div",11)(14,"div",12)(15,"label",13),s(16,"Login"),n(),u(17,"input",14),n(),i(18,"div",15)(19,"label",16),s(20,"Email"),n(),u(21,"input",17),n()(),i(22,"div",11)(23,"div",12)(24,"label",18),s(25,"First name"),n(),u(26,"input",19),n(),i(27,"div",15)(28,"label",20),s(29,"Last name"),n(),u(30,"input",21),n()(),i(31,"div",11)(32,"div",12),f(33,Ue,1,1,"app-password-strength-bar",22),i(34,"app-input-password",23),_("passwordChange",function(w){return e.updatePassword(w)}),n()(),i(35,"div",15)(36,"label",24),s(37,"Language"),n(),i(38,"select",25),G(39,Ae,2,2,"option",26,F),n()()(),i(41,"div",11)(42,"div",27)(43,"label",28),s(44,"Account status"),n(),i(45,"div",29)(46,"label",30),u(47,"input",31),i(48,"span"),s(49),v(50,"translate"),v(51,"titlecase"),n()()()(),i(52,"div",15)(53,"label",32),s(54,"Notification"),n(),i(55,"select",33),G(56,ke,2,2,"option",34,F),n()()(),f(58,Le,13,4,"div",11),n()(),i(59,"tab",35),_("selectTab",function(){return e.tabView="managers"}),y(60,Oe,5,2,"ng-template",9),i(61,"div",7)(62,"app-user-search",36),_("membersChange",function(w){return e.updateManagers(w)}),n(),f(63,Re,2,0,"small",37),n()()()(),i(64,"div",38),f(65,Ve,2,1,"button",39),i(66,"button",40),_("click",function(){return e.onCancel()}),s(67,"Cancel"),n(),i(68,"button",41),_("click",function(){return e.onSubmit()}),s(69),n()()),l&2&&(a(2),h(e.guest?2:3),a(2),h(e.loading?4:-1),a(),h(e.guest?5:-1),a(),U(k("btn-close btn-close-white ",e.guest?"ms-2":"ms-auto"," ms-2")),a(),c("formGroup",e.guestForm),a(),c("justified",!0),a(9),b("is-invalid",e.guestForm.controls.login.invalid),c("autoSelect",!1),a(4),b("is-invalid",e.guestForm.controls.email.invalid),a(5),b("is-invalid",e.guestForm.controls.firstName.invalid),a(7),h(e.guestForm.value.password!==e.defaultPassword?33:-1),a(),c("password",e.guestForm.value.password)("showGenerator",!0)("showLabel",!0)("isRequired",!0),a(5),N(e.languages),a(9),b("text-danger",!e.guestForm.value.isActive),a(),E(" ",S(51,38,M(50,35,e.guestForm.value.isActive?"active":"suspended",e.locale.language))," "),a(7),N(e.allNotifications),a(2),h(e.guest?58:-1),a(4),c("members",e.guestForm.value.managers)("withPermissions",!1)("customPlaceholder","Type to search for managers to add")("searchFunction",e.searchMembers.bind(e)),a(),h(e.guestForm.value.managers.length?-1:63),a(2),h(e.guest!=null&&e.guest.id?65:-1),a(3),U(k("btn btn-sm ",e.confirmDeletion?"btn-danger":"btn-primary")),c("disabled",e.guestForm.invalid||e.submitted),a(),E(" ",e.confirmDeletion?"Confirm deletion":"Confirm"," "))},dependencies:[j,ie,Z,Q,Y,H,q,K,X,$,W,J,Se,Te,Ee,De,ve,be,xe,Ce,te,B],encapsulation:2});let t=m;return t})();export{lt as a};
|