aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/css/files.css2
-rw-r--r--apps/files/css/files.css.map2
-rw-r--r--apps/files/css/files.scss40
-rw-r--r--apps/files/css/merged.css2
-rw-r--r--apps/files/css/merged.css.map2
-rw-r--r--apps/files/css/mobile.css2
-rw-r--r--apps/files/css/mobile.css.map2
-rw-r--r--apps/files/css/mobile.scss5
-rw-r--r--apps/files/js/merged-index.json1
-rw-r--r--apps/files/js/systemtagsplugin.js128
-rw-r--r--build/integration/features/contacts-menu.feature18
-rw-r--r--build/psalm-baseline-ocp.xml86
-rw-r--r--build/psalm-baseline.xml2803
-rw-r--r--core/Application.php3
-rw-r--r--core/Command/Db/AddMissingIndices.php8
-rw-r--r--core/Migrations/Version13000Date20170718121200.php2
-rw-r--r--core/Migrations/Version27000Date20220613163520.php51
-rw-r--r--lib/composer/composer/autoload_classmap.php1
-rw-r--r--lib/composer/composer/autoload_static.php1
-rw-r--r--lib/private/Files/Config/UserMountCache.php36
-rw-r--r--package-lock.json108
-rw-r--r--package.json4
-rw-r--r--psalm-ocp.xml2
-rw-r--r--psalm.xml2
-rw-r--r--vendor-bin/psalm/composer.json2
-rw-r--r--vendor-bin/psalm/composer.lock435
-rw-r--r--version.php2
27 files changed, 2347 insertions, 1403 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index abe4a64758e..ee370c2ea70 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -1 +1 @@
-.actions{padding:3px;height:100%;display:inline-block;float:left}.actions input,.actions button,.actions .button{margin:0;float:left}.actions .button a{color:#555}.actions .button a:hover,.actions .button a:focus{background-color:var(--color-background-hover)}.actions .button a:active{background-color:var(--color-primary-light)}.actions.creatable{position:relative;display:flex;flex:1 1}.actions.creatable .button:not(:last-child){margin-right:3px}.actions.hidden{display:none}#trash{margin-right:8px;float:right;z-index:1010;padding:10px;font-weight:normal}.newFileMenu .error,.newFileMenu .error+.icon-confirm,.files-fileList .error{color:var(--color-error);border-color:var(--color-error)}.files-filestable{position:relative;width:100%;min-width:250px;display:block;flex-direction:column}.emptycontent:not(.hidden)~.files-filestable{display:none}.files-filestable thead{position:-webkit-sticky;position:sticky;top:44px;z-index:60;display:block;background-color:var(--color-main-background-translucent)}.files-filestable tbody{display:table;width:100%}.files-filestable tbody tr[data-permissions="0"],.files-filestable tbody tr[data-permissions="16"]{background-color:var(--color-background-dark)}.files-filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,.files-filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext{color:var(--color-text-maxcontrast)}.files-filestable tbody tr[data-e2eencrypted=true] .selection{pointer-events:none}.files-filestable.hidden{display:none}.app-files #app-content>.viewcontainer{min-height:0%;width:100%}.app-files #app-content{width:calc(100% - 300px)}.file-drag,.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:var(--color-primary-light) !important}.app-files #app-content.dir-drop{background-color:var(--color-main-background) !important}.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:rgba(0,0,0,0) !important}.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{background-color:var(--color-primary-light) !important}.nav-icon-files{background-image:var(--icon-folder-dark)}.nav-icon-recent{background-image:var(--icon-recent-dark)}.nav-icon-favorites{background-image:var(--icon-starred-dark)}.nav-icon-sharingin,.nav-icon-sharingout,.nav-icon-pendingshares,.nav-icon-shareoverview{background-image:var(--icon-share-dark)}.nav-icon-sharinglinks{background-image:var(--icon-public-dark)}.nav-icon-extstoragemounts{background-image:var(--icon-external-dark)}.nav-icon-trashbin{background-image:var(--icon-delete-dark)}.nav-icon-trashbin-starred{background-image:var(--icon-delete-#ff0000)}.nav-icon-deletedshares{background-image:var(--icon-unshare-dark)}.nav-icon-favorites-starred{background-image:var(--icon-starred-yellow)}#app-navigation .nav-files a.nav-icon-files{width:auto}#app-navigation .nav-files a.new{width:40px;height:32px;padding:0 10px;margin:0;cursor:pointer}#app-navigation .nav-files a.new.hidden{display:none}#app-navigation .nav-files a.new.disabled{opacity:.3}.files-filestable tbody tr{height:51px}.files-filestable tbody tr:hover,.files-filestable tbody tr:focus,.files-filestable tbody .name:focus,.files-filestable tbody tr:hover .filename form,table tr.mouseOver td{background-color:var(--color-background-hover)}.files-filestable tbody tr:active,.files-filestable tbody tr.highlighted,.files-filestable tbody tr.highlighted .name:focus,.files-filestable tbody tr.selected,.files-filestable tbody tr.searchresult{background-color:var(--color-primary-light)}tbody a{color:var(--color-main-text)}span.conflict-path,span.extension,span.uploading,td.date{color:var(--color-text-maxcontrast)}span.conflict-path,span.extension{-webkit-transition:opacity 300ms;-moz-transition:opacity 300ms;-o-transition:opacity 300ms;transition:opacity 300ms;vertical-align:top}tr:hover span.conflict-path,tr:focus span.conflict-path,tr:hover span.extension,tr:focus span.extension{opacity:1;color:var(--color-text-maxcontrast)}table th,table th a{color:var(--color-text-maxcontrast)}table.multiselect th a{color:var(--color-main-text)}table th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}table th .columntitle:focus-visible{border-radius:2px}table.multiselect th .columntitle{display:inline-block;margin-right:-20px}table th .columntitle.name{padding-left:0;margin-left:44px}table.multiselect th .columntitle.name{margin-left:0}table th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}.sort-indicator.hidden,.multiselect .sort-indicator,table.multiselect th:hover .sort-indicator.hidden,table.multiselect th:focus .sort-indicator.hidden{visibility:hidden}.multiselect .sort,.multiselect .sort span{cursor:default}table th:hover .sort-indicator.hidden,table th:focus .sort-indicator.hidden{visibility:visible}table th,table td{border-bottom:1px solid var(--color-border);text-align:left;font-weight:normal}table td{padding:0 15px;font-style:normal;background-position:8px center;background-repeat:no-repeat}table th.column-name{position:relative;width:9999px;padding:0}.column-name-container{position:relative;height:50px}table th.column-selection{padding-top:2px}table th.column-size,table td.filesize{text-align:right}table th.column-mtime,table td.date,table th.column-last,table td.column-last{-moz-box-sizing:border-box;box-sizing:border-box;position:relative;min-width:130px}#app-content-recent,#app-content-favorites,#app-content-shareoverview,#app-content-sharingout,#app-content-sharingin,#app-content-sharinglinks,#app-content-deletedshares,#app-content-pendingshares{margin-top:22px}#app-content-recent thead,#app-content-favorites thead,#app-content-shareoverview thead,#app-content-sharingout thead,#app-content-sharingin thead,#app-content-sharinglinks thead,#app-content-deletedshares thead,#app-content-pendingshares thead{top:0}table.multiselect thead th{background-color:var(--color-main-background-translucent);font-weight:bold}#app-content.with-app-sidebar table.multiselect thead{margin-right:27%}table.multiselect .column-name{position:relative;width:9999px}table.multiselect .column-mtime>a{display:none}table td.selection,table th.selection,table td.fileaction{width:32px;text-align:center}table td.filename a.name,table td.filename p.name{display:flex;position:relative;-moz-box-sizing:border-box;box-sizing:border-box;height:50px;line-height:50px;padding:0}table td.filename .thumbnail-wrapper{width:0;min-width:50px;max-width:50px;height:50px}table td.filename .thumbnail-wrapper.icon-loading-small:after{z-index:10}table td.filename .thumbnail-wrapper.icon-loading-small .thumbnail{opacity:.2}table td.filename .thumbnail{display:inline-block;width:32px;height:32px;background-size:contain;background-position:center;background-repeat:no-repeat;margin-left:9px;margin-top:9px;border-radius:var(--border-radius);cursor:pointer;position:absolute;z-index:4}table td.filename p.name .thumbnail{cursor:default}table tr[data-has-preview=true] .thumbnail{border:1px solid var(--color-border)}table:not(.view-grid) td.filename input.filename{width:70% !important;margin-left:48px !important;cursor:text}table td.filename form{margin-top:-40px;position:relative;top:-6px}table td.filename a,table td.login,table td.logout,table td.download,table td.upload,table td.create,table td.delete{padding:3px 8px 8px 3px}table td.filename .nametext,.modified,.column-last>span:first-child{float:left;padding:15px 0}.modified,.column-last>span:first-child{position:relative;overflow:hidden;text-overflow:ellipsis;width:110px}table td.filename{max-width:0}table td.filename .nametext{width:0;flex-grow:1;display:flex;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:100%;z-index:10;padding:0 20px 0 0}.hide-hidden-files .files-filestable .files-fileList tr.hidden-file,.hide-hidden-files .files-filestable .files-fileList tr.hidden-file.dragging{display:none !important}.files-fileList tr.animate-opacity{-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.files-fileList tr.dragging{opacity:.2}table td.filename .nametext .innernametext{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top}table td.filename .uploadtext{position:absolute;font-weight:normal;margin-left:50px;left:0;bottom:0;height:20px;padding:0 4px;padding-left:1px;font-size:11px;line-height:22px;color:var(--color-text-maxcontrast);text-overflow:ellipsis;white-space:nowrap}table td.selection{padding:0}.files-fileList tr td.selection>.selectCheckBox+label:before{opacity:.3;margin-right:0}.files-fileList tr:hover td.selection>.selectCheckBox+label:before,.files-fileList tr:focus td.selection>.selectCheckBox+label:before,.files-fileList tr td.selection>.selectCheckBox:checked+label:before,.files-fileList tr.selected td.selection>.selectCheckBox+label:before{opacity:1}.files-fileList tr.halfselected td.selection>.selectCheckBox+label:before{opacity:.5}.files-fileList tr td.selection>.selectCheckBox+label,.select-all+label{padding:16px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill);outline:none !important;border:2px solid var(--color-primary) !important;padding:14px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{outline-offset:0px}.files-fileList tr td.filename{position:relative;width:100%;padding-left:0;padding-right:0;-webkit-transition:background-image 500ms;-moz-transition:background-image 500ms;-o-transition:background-image 500ms;transition:background-image 500ms}.files-fileList tr td.filename a.name label,.files-fileList tr td.filename p.name label{position:absolute;width:80%;height:50px}.files-fileList tr td.filename .favorite{display:inline-block;float:left}.files-fileList tr td.filename .favorite-mark{position:absolute;display:block;top:-6px;right:-6px;line-height:100%;text-align:center}#uploadsize-message,#delete-confirm{display:none}.fileactions{z-index:50}.busy .fileactions,.busy .action{visibility:hidden}.bubble,#app-navigation .app-navigation-entry-menu{min-width:100px}.files-fileList .icon-loading-small{opacity:1 !important;display:inline !important}.files-fileList .action.action-share-notification span,.files-fileList a.name{cursor:default !important}.files-fileList a.name.disabled *{cursor:default}.files-fileList a.name.disabled a,.files-fileList a.name.disabled a *{cursor:pointer}.files-fileList a.name.disabled:focus{background:none}a.action>img{height:16px;width:16px;vertical-align:text-bottom}a.action.action-editlocally img.icon{filter:var(--background-invert-if-dark)}.selectedActions{position:relative;display:inline-block;vertical-align:middle}.selectedActions.hidden{display:none}.selectedActions a{display:inline;line-height:50px;padding:16px 5px}.selectedActions a.hidden{display:none}.selectedActions a img{position:relative;vertical-align:text-bottom;margin-bottom:-1px}.selectedActions .actions-selected .icon-more{margin-top:-3px}.files-fileList td a a.action{display:inline;padding:17px 8px;line-height:50px;opacity:.3}.files-fileList td a a.action.action-share{padding:17px 14px}.files-fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared+span{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.files-fileList td a a.action.action-share .avatar{display:inline-block;vertical-align:middle}.files-fileList td a a.action.action-menu{padding-top:17px;padding-bottom:17px;padding-left:14px;padding-right:14px}.files-fileList td a a.action.no-permission:hover,.files-fileList td a a.action.no-permission:focus{opacity:.3}.files-fileList td a a.action.disabled:hover,.files-fileList td a a.action.disabled:focus,.files-fileList td a a.action.disabled img{opacity:.3}.files-fileList td a a.action.disabled.action-download{opacity:.7}.files-fileList td a a.action.disabled.action-download:hover,.files-fileList td a a.action.disabled.action-download:focus{opacity:.7}.files-fileList td a a.action:hover,.files-fileList td a a.action:focus{opacity:1}.files-fileList td a a.action:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.files-fileList td a .fileActionsMenu a.action,.files-fileList td a a.action.action-share.shared-style{opacity:.7}.files-fileList td a .fileActionsMenu .action.permanent{opacity:1}.files-fileList .action.action-share.permanent.shared-style span:not(.icon){display:inline-block;max-width:70px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;margin-left:6px}.files-fileList .remoteAddress .userDomain{margin-left:0 !important}.files-fileList .favorite-mark.permanent{opacity:1}.files-fileList .fileActionsMenu a.action:hover,.files-fileList .fileActionsMenu a.action:focus,.files-fileList a.action.action-share.shared-style:hover,.files-fileList a.action.action-share.shared-style:focus{opacity:1}.files-fileList tr a.action.disabled{background:none}.selectedActions a.download.disabled,.files-fileList tr a.action.action-download.disabled{color:#000}.files-fileList tr:hover a.action.disabled:hover *{cursor:default}.summary{color:var(--color-text-maxcontrast);height:330px}.files-filestable .summary .filesummary{width:100%;padding-left:101px}#body-public .summary{height:180px}.summary:hover,.summary:focus,.summary,table tr.summary td{background-color:rgba(0,0,0,0)}.summary td{border-bottom:none;vertical-align:top;padding-top:20px}.summary td:first-child{padding:0}.hiddeninfo{white-space:pre-line}table.dragshadow{width:auto;z-index:2000}table.dragshadow td.filename{padding-left:60px;padding-right:16px;height:36px;max-width:unset}table.dragshadow td.size{padding-right:8px}.mask{z-index:50;position:absolute;top:0;left:0;right:0;bottom:0;background-color:var(--color-main-background);background-repeat:no-repeat no-repeat;background-position:50%;opacity:.7;transition:opacity 100ms;-moz-transition:opacity 100ms;-o-transition:opacity 100ms;-ms-transition:opacity 100ms;-webkit-transition:opacity 100ms}.mask.transparent{opacity:0}.newFileMenu{font-weight:300;top:100%;left:-48px !important;margin-top:4px;min-width:100px;z-index:1001}.newFileMenu::after{left:61px !important}.files-controls{box-sizing:border-box;position:-webkit-sticky;position:sticky;height:50px;padding:0;margin:0;background-color:var(--color-main-background-translucent);z-index:62;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;top:0;padding-left:50px}.files-controls .actions>div>.button,.files-controls .actions>div button,.files-controls .actions>.button,.files-controls .actions button{box-sizing:border-box;display:inline-block;display:flex;height:44px;width:44px;padding:9px;align-items:center;justify-content:center}.files-controls .actions>div .button.hidden,.files-controls .actions .button.hidden{display:none}.viewer-mode #app-navigation+#app-content .files-controls{left:0}.files-filestable .filename .action .icon,.files-filestable .selectedActions a .icon,.files-filestable .filename .favorite-mark .icon,.files-controls .actions .button .icon{display:inline-block;vertical-align:middle;background-size:16px 16px}.files-filestable .filename .favorite-mark .icon-star{background-image:none}.files-filestable .filename .favorite-mark .icon-starred{background-image:var(--icon-starred-yellow) !important}.files-filestable .filename .action .icon.hidden,.files-filestable .selectedActions a .icon.hidden,.files-controls .actions .button .icon.hidden{display:none}.files-filestable .filename .action .icon.loading,.files-filestable .selectedActions a .icon.loading,.files-controls .actions .button .icon.loading{width:15px;height:15px}.app-files .actions .button.new{position:relative}.breadcrumb{align-items:center}.breadcrumb .icon-home{border-radius:var(--border-radius)}.breadcrumb .canDrop>a,.files-filestable tbody tr.canDrop{background-color:rgba(0,130,201,.3)}.dropzone-background{background-color:rgba(0,130,201,.3)}.dropzone-background :hover{box-shadow:none !important}.notCreatable{margin-left:12px;margin-right:44px;margin-top:12px;color:var(--color-main-text);overflow:auto;min-width:160px;height:54px}.notCreatable:not(.hidden){display:flex}.notCreatable .icon-alert-outline{top:-15px;position:relative;margin-right:4px}.quota-navigation-item{margin:0 !important;border:none;border-radius:0;background-color:rgba(0,0,0,0);z-index:1;height:44px;display:flex !important;flex-direction:column}.quota-navigation-item__text{height:30px}.quota-navigation-item[href="#"],.quota-navigation-item[href="#"] *{cursor:default !important}.quota-navigation-item__container{height:5px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) thead tr{display:block;border-bottom:1px solid var(--color-border);background-color:var(--color-main-background-translucent)}.files-filestable.view-grid:not(.hidden) thead tr th{width:auto;border:none}.files-filestable.view-grid:not(.hidden) tbody{display:grid;grid-template-columns:repeat(auto-fill, 160px);justify-content:space-around;row-gap:15px;margin:15px 0}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden){display:block;position:relative;height:190px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted{background-color:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions{background-color:var(--color-background-hover)}.files-filestable.view-grid:not(.hidden) tbody td{display:inline;border-bottom:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper{min-width:0;max-width:none;position:absolute;width:160px;height:160px;padding:14px;top:0;left:0;z-index:-1}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail{width:calc(100% - 2 * 14px);height:calc(100% - 2 * 14px);background-size:contain;margin:0;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark{padding:14px;left:auto;top:-22px;right:-22px}.files-filestable.view-grid:not(.hidden) tbody td.filename .uploadtext{width:100%;margin:0;top:0;bottom:auto;height:28px;padding-top:4px;padding-left:28px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name{height:100%;border-radius:var(--border-radius);overflow:hidden;cursor:pointer !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext{display:flex;height:44px;margin-top:146px;text-align:center;line-height:44px;padding:0}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{display:inline-block;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before{content:"";flex:1;min-width:14px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after{content:"";flex:1;min-width:44px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions{height:initial;margin-top:146px;display:flex;align-items:center;position:absolute;right:0}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action{padding:14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu){display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img{padding:6px;border-radius:50%}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename form{padding:3px 14px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody td.filename form input.filename{width:100%;margin-left:0;cursor:text}.files-filestable.view-grid:not(.hidden) tbody td.filesize,.files-filestable.view-grid:not(.hidden) tbody td.date{display:none}.files-filestable.view-grid:not(.hidden) tbody td.selection,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark{position:absolute;top:-8px;left:-8px;display:flex;width:44px;height:44px;z-index:10;background:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody td.selection label,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label{width:44px;height:44px;display:inline-flex;padding:14px}.files-filestable.view-grid:not(.hidden) tbody td.selection label::before,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before{margin:0;width:14px;height:14px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:0;width:150px;margin:0 5px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon){overflow:hidden;text-overflow:ellipsis}.files-filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension{display:block}.files-filestable.view-grid:not(.hidden) tfoot{display:grid}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden){display:inline-block;margin:0 auto;height:418px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td{padding-top:50px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child,.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date{display:none}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info{margin-left:0}#view-toggle{background-color:var(--color-main-background-translucent);border:none;margin:0;padding:22px;opacity:.5;float:right;right:var(--default-grid-baseline);top:var(--default-grid-baseline);z-index:100;position:sticky}#view-toggle:hover,#view-toggle:focus,#showgridview:focus+#view-toggle{opacity:1}#view-toggle:focus-visible,#showgridview:focus-visible+#view-toggle{box-shadow:inset 0 0 0 2px var(--color-primary) !important}#showgridview{position:fixed;top:0}#body-public .files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{max-width:124px}#body-public .files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:-80px}#body-public #view-toggle{position:absolute;right:0;top:0}#gallery-button{display:none}#tag_multiple_files_container{overflow:hidden;background-color:#fff;border-radius:3px;position:relative;display:flex;flex-wrap:wrap;margin-bottom:10px}#tag_multiple_files_container h3{width:100%;padding:0 18px}#tag_multiple_files_container .systemTagsInputFieldContainer{flex:1 1 80%;min-width:0;margin:0 12px}/*# sourceMappingURL=files.css.map */
+.actions{padding:3px;height:100%;display:inline-block;float:left}.actions input,.actions button,.actions .button{margin:0;float:left}.actions .button a{color:#555}.actions .button a:hover,.actions .button a:focus{background-color:var(--color-background-hover)}.actions .button a:active{background-color:var(--color-primary-light)}.actions.creatable{position:relative;display:flex;flex:1 1}.actions.creatable .button:not(:last-child){margin-right:3px}.actions.hidden{display:none}#trash{margin-right:8px;float:right;z-index:1010;padding:10px;font-weight:normal}.newFileMenu .error,.newFileMenu .error+.icon-confirm,.files-fileList .error{color:var(--color-error);border-color:var(--color-error)}.files-filestable{position:relative;width:100%;min-width:250px;display:block;flex-direction:column}.emptycontent:not(.hidden)~.files-filestable{display:none}.files-filestable thead{position:-webkit-sticky;position:sticky;top:44px;z-index:60;display:block;background-color:var(--color-main-background-translucent)}.files-filestable tbody{display:table;width:100%}.files-filestable tbody tr[data-permissions="0"],.files-filestable tbody tr[data-permissions="16"]{background-color:var(--color-background-dark)}.files-filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,.files-filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext{color:var(--color-text-maxcontrast)}.files-filestable tbody tr[data-e2eencrypted=true] .selection{pointer-events:none}.files-filestable.hidden{display:none}.app-files #app-content>.viewcontainer{min-height:0%;width:100%}.app-files #app-content{width:calc(100% - 300px)}.file-drag,.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:var(--color-primary-light) !important}.app-files #app-content.dir-drop{background-color:var(--color-main-background) !important}.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:rgba(0,0,0,0) !important}.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{background-color:var(--color-primary-light) !important}.nav-icon-files{background-image:var(--icon-folder-dark)}.nav-icon-recent{background-image:var(--icon-recent-dark)}.nav-icon-favorites{background-image:var(--icon-starred-dark)}.nav-icon-sharingin,.nav-icon-sharingout,.nav-icon-pendingshares,.nav-icon-shareoverview{background-image:var(--icon-share-dark)}.nav-icon-sharinglinks{background-image:var(--icon-public-dark)}.nav-icon-extstoragemounts{background-image:var(--icon-external-dark)}.nav-icon-trashbin{background-image:var(--icon-delete-dark)}.nav-icon-trashbin-starred{background-image:var(--icon-delete-#ff0000)}.nav-icon-deletedshares{background-image:var(--icon-unshare-dark)}.nav-icon-favorites-starred{background-image:var(--icon-starred-yellow)}#app-navigation .nav-files a.nav-icon-files{width:auto}#app-navigation .nav-files a.new{width:40px;height:32px;padding:0 10px;margin:0;cursor:pointer}#app-navigation .nav-files a.new.hidden{display:none}#app-navigation .nav-files a.new.disabled{opacity:.3}.files-filestable tbody tr{height:51px}.files-filestable tbody tr:hover,.files-filestable tbody tr:focus,.files-filestable tbody .name:focus,.files-filestable tbody tr:hover .filename form,table tr.mouseOver td{background-color:var(--color-background-hover)}.files-filestable tbody tr:active,.files-filestable tbody tr.highlighted,.files-filestable tbody tr.highlighted .name:focus,.files-filestable tbody tr.selected,.files-filestable tbody tr.searchresult{background-color:var(--color-primary-light)}tbody a{color:var(--color-main-text)}span.conflict-path,span.extension,span.uploading,td.date{color:var(--color-text-maxcontrast)}span.conflict-path,span.extension{-webkit-transition:opacity 300ms;-moz-transition:opacity 300ms;-o-transition:opacity 300ms;transition:opacity 300ms;vertical-align:top}tr:hover span.conflict-path,tr:focus span.conflict-path,tr:hover span.extension,tr:focus span.extension{opacity:1;color:var(--color-text-maxcontrast)}table th,table th a{color:var(--color-text-maxcontrast)}table.multiselect th a{color:var(--color-main-text)}table th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}table th .columntitle:focus-visible{border-radius:2px}table.multiselect th .columntitle{display:inline-block;margin-right:-20px}table th .columntitle.name{padding-left:0;margin-left:44px}table.multiselect th .columntitle.name{margin-left:0}table th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}.sort-indicator.hidden,.multiselect .sort-indicator,table.multiselect th:hover .sort-indicator.hidden,table.multiselect th:focus .sort-indicator.hidden{visibility:hidden}.multiselect .sort,.multiselect .sort span{cursor:default}table th:hover .sort-indicator.hidden,table th:focus .sort-indicator.hidden{visibility:visible}table th,table td{border-bottom:1px solid var(--color-border);text-align:left;font-weight:normal}table td{padding:0 15px;font-style:normal;background-position:8px center;background-repeat:no-repeat}table th.column-name{position:relative;width:9999px;padding:0}.column-name-container{position:relative;height:50px}table th.column-selection{padding-top:2px}table th.column-size,table td.filesize{text-align:right}table th.column-mtime,table td.date,table th.column-last,table td.column-last{-moz-box-sizing:border-box;box-sizing:border-box;position:relative;min-width:130px}#app-content-recent,#app-content-favorites,#app-content-shareoverview,#app-content-sharingout,#app-content-sharingin,#app-content-sharinglinks,#app-content-deletedshares,#app-content-pendingshares{margin-top:22px}#app-content-recent thead,#app-content-favorites thead,#app-content-shareoverview thead,#app-content-sharingout thead,#app-content-sharingin thead,#app-content-sharinglinks thead,#app-content-deletedshares thead,#app-content-pendingshares thead{top:0}table.multiselect thead th{background-color:var(--color-main-background-translucent);font-weight:bold}#app-content.with-app-sidebar table.multiselect thead{margin-right:27%}table.multiselect .column-name{position:relative;width:9999px}table.multiselect .column-mtime>a{display:none}table td.selection,table th.selection,table td.fileaction{width:32px;text-align:center}table td.filename a.name,table td.filename p.name{display:flex;position:relative;-moz-box-sizing:border-box;box-sizing:border-box;height:50px;line-height:50px;padding:0}table td.filename .thumbnail-wrapper{width:0;min-width:50px;max-width:50px;height:50px}table td.filename .thumbnail-wrapper.icon-loading-small:after{z-index:10}table td.filename .thumbnail-wrapper.icon-loading-small .thumbnail{opacity:.2}table td.filename .thumbnail{display:inline-block;width:32px;height:32px;background-size:contain;background-position:center;background-repeat:no-repeat;margin-left:9px;margin-top:9px;border-radius:var(--border-radius);cursor:pointer;position:absolute;z-index:4}table td.filename p.name .thumbnail{cursor:default}table tr[data-has-preview=true] .thumbnail{border:1px solid var(--color-border)}table:not(.view-grid) td.filename input.filename{width:70% !important;margin-left:48px !important;cursor:text}table td.filename form{margin-top:-40px;position:relative;top:-6px}table td.filename a,table td.login,table td.logout,table td.download,table td.upload,table td.create,table td.delete{padding:3px 8px 8px 3px}table td.filename .nametext,.modified,.column-last>span:first-child{float:left;padding:15px 0}.modified,.column-last>span:first-child{position:relative;overflow:hidden;text-overflow:ellipsis;width:110px}table td.filename{max-width:0}table td.filename .nametext{width:0;flex-grow:1;display:flex;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:100%;z-index:10;padding:0 20px 0 0}table td.filename .system-tags{--min-size: 32px;display:flex;justify-content:center;align-items:center;flex:1 1 100%;min-width:calc(var(--min-size)*2);max-width:300px}table td.filename .system-tags .system-tags__tag{padding:5px 10px;border:1px solid;border-radius:var(--border-radius-pill);border-color:var(--color-border);color:var(--color-text-maxcontrast);height:var(--min-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px;text-align:center}table td.filename .system-tags .system-tags__tag--more{overflow:visible;text-overflow:initial}table td.filename .system-tags .system-tags__tag+.system-tags__tag{margin-left:5px}.hide-hidden-files .files-filestable .files-fileList tr.hidden-file,.hide-hidden-files .files-filestable .files-fileList tr.hidden-file.dragging{display:none !important}.files-fileList tr.animate-opacity{-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.files-fileList tr.dragging{opacity:.2}table td.filename .nametext .innernametext{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top}table td.filename .uploadtext{position:absolute;font-weight:normal;margin-left:50px;left:0;bottom:0;height:20px;padding:0 4px;padding-left:1px;font-size:11px;line-height:22px;color:var(--color-text-maxcontrast);text-overflow:ellipsis;white-space:nowrap}table td.selection{padding:0}.files-fileList tr td.selection>.selectCheckBox+label:before{opacity:.3;margin-right:0}.files-fileList tr:hover td.selection>.selectCheckBox+label:before,.files-fileList tr:focus td.selection>.selectCheckBox+label:before,.files-fileList tr td.selection>.selectCheckBox:checked+label:before,.files-fileList tr.selected td.selection>.selectCheckBox+label:before{opacity:1}.files-fileList tr.halfselected td.selection>.selectCheckBox+label:before{opacity:.5}.files-fileList tr td.selection>.selectCheckBox+label,.select-all+label{padding:16px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill);outline:none !important;border:2px solid var(--color-primary) !important;padding:14px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{outline-offset:0px}.files-fileList tr td.filename{position:relative;width:100%;padding-left:0;padding-right:0;-webkit-transition:background-image 500ms;-moz-transition:background-image 500ms;-o-transition:background-image 500ms;transition:background-image 500ms}.files-fileList tr td.filename a.name label,.files-fileList tr td.filename p.name label{position:absolute;width:80%;height:50px}.files-fileList tr td.filename .favorite{display:inline-block;float:left}.files-fileList tr td.filename .favorite-mark{position:absolute;display:block;top:-6px;right:-6px;line-height:100%;text-align:center}#uploadsize-message,#delete-confirm{display:none}.fileactions{z-index:50}.busy .fileactions,.busy .action{visibility:hidden}.bubble,#app-navigation .app-navigation-entry-menu{min-width:100px}.files-fileList .icon-loading-small{opacity:1 !important;display:inline !important}.files-fileList .action.action-share-notification span,.files-fileList a.name{cursor:default !important}.files-fileList a.name.disabled *{cursor:default}.files-fileList a.name.disabled a,.files-fileList a.name.disabled a *{cursor:pointer}.files-fileList a.name.disabled:focus{background:none}a.action>img{height:16px;width:16px;vertical-align:text-bottom}a.action.action-editlocally img.icon{filter:var(--background-invert-if-dark)}.selectedActions{position:relative;display:inline-block;vertical-align:middle}.selectedActions.hidden{display:none}.selectedActions a{display:inline;line-height:50px;padding:16px 5px}.selectedActions a.hidden{display:none}.selectedActions a img{position:relative;vertical-align:text-bottom;margin-bottom:-1px}.selectedActions .actions-selected .icon-more{margin-top:-3px}.files-fileList td a a.action{display:inline;padding:17px 8px;line-height:50px;opacity:.3}.files-fileList td a a.action.action-share{padding:17px 14px}.files-fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared+span{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.files-fileList td a a.action.action-share .avatar{display:inline-block;vertical-align:middle}.files-fileList td a a.action.action-menu{padding-top:17px;padding-bottom:17px;padding-left:14px;padding-right:14px}.files-fileList td a a.action.no-permission:hover,.files-fileList td a a.action.no-permission:focus{opacity:.3}.files-fileList td a a.action.disabled:hover,.files-fileList td a a.action.disabled:focus,.files-fileList td a a.action.disabled img{opacity:.3}.files-fileList td a a.action.disabled.action-download{opacity:.7}.files-fileList td a a.action.disabled.action-download:hover,.files-fileList td a a.action.disabled.action-download:focus{opacity:.7}.files-fileList td a a.action:hover,.files-fileList td a a.action:focus{opacity:1}.files-fileList td a a.action:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.files-fileList td a .fileActionsMenu a.action,.files-fileList td a a.action.action-share.shared-style{opacity:.7}.files-fileList td a .fileActionsMenu .action.permanent{opacity:1}.files-fileList .action.action-share.permanent.shared-style span:not(.icon){display:inline-block;max-width:70px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;margin-left:6px}.files-fileList .remoteAddress .userDomain{margin-left:0 !important}.files-fileList .favorite-mark.permanent{opacity:1}.files-fileList .fileActionsMenu a.action:hover,.files-fileList .fileActionsMenu a.action:focus,.files-fileList a.action.action-share.shared-style:hover,.files-fileList a.action.action-share.shared-style:focus{opacity:1}.files-fileList tr a.action.disabled{background:none}.selectedActions a.download.disabled,.files-fileList tr a.action.action-download.disabled{color:#000}.files-fileList tr:hover a.action.disabled:hover *{cursor:default}.summary{color:var(--color-text-maxcontrast);height:330px}.files-filestable .summary .filesummary{width:100%;padding-left:101px}#body-public .summary{height:180px}.summary:hover,.summary:focus,.summary,table tr.summary td{background-color:rgba(0,0,0,0)}.summary td{border-bottom:none;vertical-align:top;padding-top:20px}.summary td:first-child{padding:0}.hiddeninfo{white-space:pre-line}table.dragshadow{width:auto;z-index:2000}table.dragshadow td.filename{padding-left:60px;padding-right:16px;height:36px;max-width:unset}table.dragshadow td.size{padding-right:8px}.mask{z-index:50;position:absolute;top:0;left:0;right:0;bottom:0;background-color:var(--color-main-background);background-repeat:no-repeat no-repeat;background-position:50%;opacity:.7;transition:opacity 100ms;-moz-transition:opacity 100ms;-o-transition:opacity 100ms;-ms-transition:opacity 100ms;-webkit-transition:opacity 100ms}.mask.transparent{opacity:0}.newFileMenu{font-weight:300;top:100%;left:-48px !important;margin-top:4px;min-width:100px;z-index:1001}.newFileMenu::after{left:61px !important}.files-controls{box-sizing:border-box;position:-webkit-sticky;position:sticky;height:50px;padding:0;margin:0;background-color:var(--color-main-background-translucent);z-index:62;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;top:0;padding-left:50px}.files-controls .actions>div>.button,.files-controls .actions>div button,.files-controls .actions>.button,.files-controls .actions button{box-sizing:border-box;display:inline-block;display:flex;height:44px;width:44px;padding:9px;align-items:center;justify-content:center}.files-controls .actions>div .button.hidden,.files-controls .actions .button.hidden{display:none}.viewer-mode #app-navigation+#app-content .files-controls{left:0}.files-filestable .filename .action .icon,.files-filestable .selectedActions a .icon,.files-filestable .filename .favorite-mark .icon,.files-controls .actions .button .icon{display:inline-block;vertical-align:middle;background-size:16px 16px}.files-filestable .filename .favorite-mark .icon-star{background-image:none}.files-filestable .filename .favorite-mark .icon-starred{background-image:var(--icon-starred-yellow) !important}.files-filestable .filename .action .icon.hidden,.files-filestable .selectedActions a .icon.hidden,.files-controls .actions .button .icon.hidden{display:none}.files-filestable .filename .action .icon.loading,.files-filestable .selectedActions a .icon.loading,.files-controls .actions .button .icon.loading{width:15px;height:15px}.app-files .actions .button.new{position:relative}.breadcrumb{align-items:center}.breadcrumb .icon-home{border-radius:var(--border-radius)}.breadcrumb .canDrop>a,.files-filestable tbody tr.canDrop{background-color:rgba(0,130,201,.3)}.dropzone-background{background-color:rgba(0,130,201,.3)}.dropzone-background :hover{box-shadow:none !important}.notCreatable{margin-left:12px;margin-right:44px;margin-top:12px;color:var(--color-main-text);overflow:auto;min-width:160px;height:54px}.notCreatable:not(.hidden){display:flex}.notCreatable .icon-alert-outline{top:-15px;position:relative;margin-right:4px}.quota-navigation-item{margin:0 !important;border:none;border-radius:0;background-color:rgba(0,0,0,0);z-index:1;height:44px;display:flex !important;flex-direction:column}.quota-navigation-item__text{height:30px}.quota-navigation-item[href="#"],.quota-navigation-item[href="#"] *{cursor:default !important}.quota-navigation-item__container{height:5px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) thead tr{display:block;border-bottom:1px solid var(--color-border);background-color:var(--color-main-background-translucent)}.files-filestable.view-grid:not(.hidden) thead tr th{width:auto;border:none}.files-filestable.view-grid:not(.hidden) tbody{display:grid;grid-template-columns:repeat(auto-fill, 160px);justify-content:space-around;row-gap:15px;margin:15px 0}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden){display:block;position:relative;height:190px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted{background-color:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions{background-color:var(--color-background-hover)}.files-filestable.view-grid:not(.hidden) tbody td{display:inline;border-bottom:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper{min-width:0;max-width:none;position:absolute;width:160px;height:160px;padding:14px;top:0;left:0;z-index:-1}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail{width:calc(100% - 2 * 14px);height:calc(100% - 2 * 14px);background-size:contain;margin:0;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark{padding:14px;left:auto;top:-22px;right:-22px}.files-filestable.view-grid:not(.hidden) tbody td.filename .uploadtext{width:100%;margin:0;top:0;bottom:auto;height:28px;padding-top:4px;padding-left:28px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name{height:100%;border-radius:var(--border-radius);overflow:hidden;cursor:pointer !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext{display:flex;height:44px;margin-top:146px;text-align:center;line-height:44px;padding:0}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{display:inline-block;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before{content:"";flex:1;min-width:14px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after{content:"";flex:1;min-width:44px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .system-tags{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions{height:initial;margin-top:146px;display:flex;align-items:center;position:absolute;right:0}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action{padding:14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu){display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img{padding:6px;border-radius:50%}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename form{padding:3px 14px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody td.filename form input.filename{width:100%;margin-left:0;cursor:text}.files-filestable.view-grid:not(.hidden) tbody td.filesize,.files-filestable.view-grid:not(.hidden) tbody td.date{display:none}.files-filestable.view-grid:not(.hidden) tbody td.selection,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark{position:absolute;top:-8px;left:-8px;display:flex;width:44px;height:44px;z-index:10;background:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody td.selection label,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label{width:44px;height:44px;display:inline-flex;padding:14px}.files-filestable.view-grid:not(.hidden) tbody td.selection label::before,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before{margin:0;width:14px;height:14px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:0;width:150px;margin:0 5px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon){overflow:hidden;text-overflow:ellipsis}.files-filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension{display:block}.files-filestable.view-grid:not(.hidden) tfoot{display:grid}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden){display:inline-block;margin:0 auto;height:418px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td{padding-top:50px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child,.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date{display:none}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info{margin-left:0}#view-toggle{background-color:var(--color-main-background-translucent);border:none;margin:0;padding:22px;opacity:.5;float:right;right:var(--default-grid-baseline);top:var(--default-grid-baseline);z-index:100;position:sticky}#view-toggle:hover,#view-toggle:focus,#showgridview:focus+#view-toggle{opacity:1}#view-toggle:focus-visible,#showgridview:focus-visible+#view-toggle{box-shadow:inset 0 0 0 2px var(--color-primary) !important}#showgridview{position:fixed;top:0}#body-public .files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{max-width:124px}#body-public .files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:-80px}#body-public #view-toggle{position:absolute;right:0;top:0}#gallery-button{display:none}#tag_multiple_files_container{overflow:hidden;background-color:#fff;border-radius:3px;position:relative;display:flex;flex-wrap:wrap;margin-bottom:10px}#tag_multiple_files_container h3{width:100%;padding:0 18px}#tag_multiple_files_container .systemTagsInputFieldContainer{flex:1 1 80%;min-width:0;margin:0 12px}/*# sourceMappingURL=files.css.map */
diff --git a/apps/files/css/files.css.map b/apps/files/css/files.css.map
index 60f978b2a09..84dcb9c9921 100644
--- a/apps/files/css/files.css.map
+++ b/apps/files/css/files.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,4CAGD,mBACC,kBACA,aACA,SACA,4CACC,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAGD,6FACC,uDAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,uDAID,gBCtEC,yCDyED,iBCzEC,yCD4ED,oBC5EC,0CD+ED,yFC/EC,wCDqFD,uBCrFC,yCDwFD,2BCxFC,2CD2FD,mBC3FC,yCD8FD,2BC9FC,4CDiGD,wBCjGC,0CDoGD,4BCpGC,4CDwGD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,4CAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAKH,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,iDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAGD,qCACC,wCAID,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,QA1EK,KA2EL,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAIF,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QApJK,KAqJL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WACA,YACA,WACA,yBAEA,kJACC,WACA,YACA,oBACA,QAxNO,KAyNP,kKACC,SACA,MA3NM,KA4NN,OA5NM,KAkOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,2DASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA","file":"files.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,4CAGD,mBACC,kBACA,aACA,SACA,4CACC,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAGD,6FACC,uDAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,uDAID,gBCtEC,yCDyED,iBCzEC,yCD4ED,oBC5EC,0CD+ED,yFC/EC,wCDqFD,uBCrFC,yCDwFD,2BCxFC,2CD2FD,mBC3FC,yCD8FD,2BC9FC,4CDiGD,wBCjGC,0CDoGD,4BCpGC,4CDwGD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,4CAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAID,+BACC,iBACA,aACA,uBACA,mBACA,cACA,kCACA,gBAEA,iDACC,iBACA,iBACA,wCACA,iCACA,oCACA,uBACA,mBACA,gBACA,uBACA,iBACA,kBAEA,uDACC,iBACA,sBAID,mEACC,gBAOL,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,iDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAGD,qCACC,wCAID,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,QA1EK,KA2EL,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAKF,8EACC,aAGD,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QAzJK,KA0JL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WACA,YACA,WACA,yBAEA,kJACC,WACA,YACA,oBACA,QA7NO,KA8NP,kKACC,SACA,MAhOM,KAiON,OAjOM,KAuOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,2DASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA","file":"files.css"} \ No newline at end of file
diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss
index 8205c63fc2c..67c8adff897 100644
--- a/apps/files/css/files.scss
+++ b/apps/files/css/files.scss
@@ -436,6 +436,41 @@ table {
z-index: 10;
padding: 0 20px 0 0;
}
+
+ /* System tags */
+ .system-tags {
+ --min-size: 32px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex: 1 1 100%;
+ min-width: calc(var(--min-size) * 2);
+ max-width: 300px;
+
+ .system-tags__tag {
+ padding: 5px 10px;
+ border: 1px solid;
+ border-radius: var(--border-radius-pill);
+ border-color: var(--color-border);
+ color: var(--color-text-maxcontrast);
+ height: var(--min-size);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ line-height: 22px; // min-size - 2 * 5px padding
+ text-align: center;
+
+ &--more {
+ overflow: visible;
+ text-overflow: initial;
+ }
+
+ // Proper spacing if multiple shown
+ & + .system-tags__tag {
+ margin-left: 5px;
+ }
+ }
+ }
}
}
@@ -1111,6 +1146,11 @@ table.dragshadow td.size {
}
}
+ /* System tags */
+ .system-tags {
+ display: none;
+ }
+
.fileactions {
height: initial;
margin-top: $grid-size - $grid-pad;
diff --git a/apps/files/css/merged.css b/apps/files/css/merged.css
index 48c8ff1eac0..75615a7c34d 100644
--- a/apps/files/css/merged.css
+++ b/apps/files/css/merged.css
@@ -1 +1 @@
-.actions{padding:3px;height:100%;display:inline-block;float:left}.actions input,.actions button,.actions .button{margin:0;float:left}.actions .button a{color:#555}.actions .button a:hover,.actions .button a:focus{background-color:var(--color-background-hover)}.actions .button a:active{background-color:var(--color-primary-light)}.actions.creatable{position:relative;display:flex;flex:1 1}.actions.creatable .button:not(:last-child){margin-right:3px}.actions.hidden{display:none}#trash{margin-right:8px;float:right;z-index:1010;padding:10px;font-weight:normal}.newFileMenu .error,.newFileMenu .error+.icon-confirm,.files-fileList .error{color:var(--color-error);border-color:var(--color-error)}.files-filestable{position:relative;width:100%;min-width:250px;display:block;flex-direction:column}.emptycontent:not(.hidden)~.files-filestable{display:none}.files-filestable thead{position:-webkit-sticky;position:sticky;top:44px;z-index:60;display:block;background-color:var(--color-main-background-translucent)}.files-filestable tbody{display:table;width:100%}.files-filestable tbody tr[data-permissions="0"],.files-filestable tbody tr[data-permissions="16"]{background-color:var(--color-background-dark)}.files-filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,.files-filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext{color:var(--color-text-maxcontrast)}.files-filestable tbody tr[data-e2eencrypted=true] .selection{pointer-events:none}.files-filestable.hidden{display:none}.app-files #app-content>.viewcontainer{min-height:0%;width:100%}.app-files #app-content{width:calc(100% - 300px)}.file-drag,.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:var(--color-primary-light) !important}.app-files #app-content.dir-drop{background-color:var(--color-main-background) !important}.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:rgba(0,0,0,0) !important}.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{background-color:var(--color-primary-light) !important}.nav-icon-files{background-image:var(--icon-folder-dark)}.nav-icon-recent{background-image:var(--icon-recent-dark)}.nav-icon-favorites{background-image:var(--icon-starred-dark)}.nav-icon-sharingin,.nav-icon-sharingout,.nav-icon-pendingshares,.nav-icon-shareoverview{background-image:var(--icon-share-dark)}.nav-icon-sharinglinks{background-image:var(--icon-public-dark)}.nav-icon-extstoragemounts{background-image:var(--icon-external-dark)}.nav-icon-trashbin{background-image:var(--icon-delete-dark)}.nav-icon-trashbin-starred{background-image:var(--icon-delete-#ff0000)}.nav-icon-deletedshares{background-image:var(--icon-unshare-dark)}.nav-icon-favorites-starred{background-image:var(--icon-starred-yellow)}#app-navigation .nav-files a.nav-icon-files{width:auto}#app-navigation .nav-files a.new{width:40px;height:32px;padding:0 10px;margin:0;cursor:pointer}#app-navigation .nav-files a.new.hidden{display:none}#app-navigation .nav-files a.new.disabled{opacity:.3}.files-filestable tbody tr{height:51px}.files-filestable tbody tr:hover,.files-filestable tbody tr:focus,.files-filestable tbody .name:focus,.files-filestable tbody tr:hover .filename form,table tr.mouseOver td{background-color:var(--color-background-hover)}.files-filestable tbody tr:active,.files-filestable tbody tr.highlighted,.files-filestable tbody tr.highlighted .name:focus,.files-filestable tbody tr.selected,.files-filestable tbody tr.searchresult{background-color:var(--color-primary-light)}tbody a{color:var(--color-main-text)}span.conflict-path,span.extension,span.uploading,td.date{color:var(--color-text-maxcontrast)}span.conflict-path,span.extension{-webkit-transition:opacity 300ms;-moz-transition:opacity 300ms;-o-transition:opacity 300ms;transition:opacity 300ms;vertical-align:top}tr:hover span.conflict-path,tr:focus span.conflict-path,tr:hover span.extension,tr:focus span.extension{opacity:1;color:var(--color-text-maxcontrast)}table th,table th a{color:var(--color-text-maxcontrast)}table.multiselect th a{color:var(--color-main-text)}table th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}table th .columntitle:focus-visible{border-radius:2px}table.multiselect th .columntitle{display:inline-block;margin-right:-20px}table th .columntitle.name{padding-left:0;margin-left:44px}table.multiselect th .columntitle.name{margin-left:0}table th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}.sort-indicator.hidden,.multiselect .sort-indicator,table.multiselect th:hover .sort-indicator.hidden,table.multiselect th:focus .sort-indicator.hidden{visibility:hidden}.multiselect .sort,.multiselect .sort span{cursor:default}table th:hover .sort-indicator.hidden,table th:focus .sort-indicator.hidden{visibility:visible}table th,table td{border-bottom:1px solid var(--color-border);text-align:left;font-weight:normal}table td{padding:0 15px;font-style:normal;background-position:8px center;background-repeat:no-repeat}table th.column-name{position:relative;width:9999px;padding:0}.column-name-container{position:relative;height:50px}table th.column-selection{padding-top:2px}table th.column-size,table td.filesize{text-align:right}table th.column-mtime,table td.date,table th.column-last,table td.column-last{-moz-box-sizing:border-box;box-sizing:border-box;position:relative;min-width:130px}#app-content-recent,#app-content-favorites,#app-content-shareoverview,#app-content-sharingout,#app-content-sharingin,#app-content-sharinglinks,#app-content-deletedshares,#app-content-pendingshares{margin-top:22px}#app-content-recent thead,#app-content-favorites thead,#app-content-shareoverview thead,#app-content-sharingout thead,#app-content-sharingin thead,#app-content-sharinglinks thead,#app-content-deletedshares thead,#app-content-pendingshares thead{top:0}table.multiselect thead th{background-color:var(--color-main-background-translucent);font-weight:bold}#app-content.with-app-sidebar table.multiselect thead{margin-right:27%}table.multiselect .column-name{position:relative;width:9999px}table.multiselect .column-mtime>a{display:none}table td.selection,table th.selection,table td.fileaction{width:32px;text-align:center}table td.filename a.name,table td.filename p.name{display:flex;position:relative;-moz-box-sizing:border-box;box-sizing:border-box;height:50px;line-height:50px;padding:0}table td.filename .thumbnail-wrapper{width:0;min-width:50px;max-width:50px;height:50px}table td.filename .thumbnail-wrapper.icon-loading-small:after{z-index:10}table td.filename .thumbnail-wrapper.icon-loading-small .thumbnail{opacity:.2}table td.filename .thumbnail{display:inline-block;width:32px;height:32px;background-size:contain;background-position:center;background-repeat:no-repeat;margin-left:9px;margin-top:9px;border-radius:var(--border-radius);cursor:pointer;position:absolute;z-index:4}table td.filename p.name .thumbnail{cursor:default}table tr[data-has-preview=true] .thumbnail{border:1px solid var(--color-border)}table:not(.view-grid) td.filename input.filename{width:70% !important;margin-left:48px !important;cursor:text}table td.filename form{margin-top:-40px;position:relative;top:-6px}table td.filename a,table td.login,table td.logout,table td.download,table td.upload,table td.create,table td.delete{padding:3px 8px 8px 3px}table td.filename .nametext,.modified,.column-last>span:first-child{float:left;padding:15px 0}.modified,.column-last>span:first-child{position:relative;overflow:hidden;text-overflow:ellipsis;width:110px}table td.filename{max-width:0}table td.filename .nametext{width:0;flex-grow:1;display:flex;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:100%;z-index:10;padding:0 20px 0 0}.hide-hidden-files .files-filestable .files-fileList tr.hidden-file,.hide-hidden-files .files-filestable .files-fileList tr.hidden-file.dragging{display:none !important}.files-fileList tr.animate-opacity{-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.files-fileList tr.dragging{opacity:.2}table td.filename .nametext .innernametext{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top}table td.filename .uploadtext{position:absolute;font-weight:normal;margin-left:50px;left:0;bottom:0;height:20px;padding:0 4px;padding-left:1px;font-size:11px;line-height:22px;color:var(--color-text-maxcontrast);text-overflow:ellipsis;white-space:nowrap}table td.selection{padding:0}.files-fileList tr td.selection>.selectCheckBox+label:before{opacity:.3;margin-right:0}.files-fileList tr:hover td.selection>.selectCheckBox+label:before,.files-fileList tr:focus td.selection>.selectCheckBox+label:before,.files-fileList tr td.selection>.selectCheckBox:checked+label:before,.files-fileList tr.selected td.selection>.selectCheckBox+label:before{opacity:1}.files-fileList tr.halfselected td.selection>.selectCheckBox+label:before{opacity:.5}.files-fileList tr td.selection>.selectCheckBox+label,.select-all+label{padding:16px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill);outline:none !important;border:2px solid var(--color-primary) !important;padding:14px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{outline-offset:0px}.files-fileList tr td.filename{position:relative;width:100%;padding-left:0;padding-right:0;-webkit-transition:background-image 500ms;-moz-transition:background-image 500ms;-o-transition:background-image 500ms;transition:background-image 500ms}.files-fileList tr td.filename a.name label,.files-fileList tr td.filename p.name label{position:absolute;width:80%;height:50px}.files-fileList tr td.filename .favorite{display:inline-block;float:left}.files-fileList tr td.filename .favorite-mark{position:absolute;display:block;top:-6px;right:-6px;line-height:100%;text-align:center}#uploadsize-message,#delete-confirm{display:none}.fileactions{z-index:50}.busy .fileactions,.busy .action{visibility:hidden}.bubble,#app-navigation .app-navigation-entry-menu{min-width:100px}.files-fileList .icon-loading-small{opacity:1 !important;display:inline !important}.files-fileList .action.action-share-notification span,.files-fileList a.name{cursor:default !important}.files-fileList a.name.disabled *{cursor:default}.files-fileList a.name.disabled a,.files-fileList a.name.disabled a *{cursor:pointer}.files-fileList a.name.disabled:focus{background:none}a.action>img{height:16px;width:16px;vertical-align:text-bottom}a.action.action-editlocally img.icon{filter:var(--background-invert-if-dark)}.selectedActions{position:relative;display:inline-block;vertical-align:middle}.selectedActions.hidden{display:none}.selectedActions a{display:inline;line-height:50px;padding:16px 5px}.selectedActions a.hidden{display:none}.selectedActions a img{position:relative;vertical-align:text-bottom;margin-bottom:-1px}.selectedActions .actions-selected .icon-more{margin-top:-3px}.files-fileList td a a.action{display:inline;padding:17px 8px;line-height:50px;opacity:.3}.files-fileList td a a.action.action-share{padding:17px 14px}.files-fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared+span{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.files-fileList td a a.action.action-share .avatar{display:inline-block;vertical-align:middle}.files-fileList td a a.action.action-menu{padding-top:17px;padding-bottom:17px;padding-left:14px;padding-right:14px}.files-fileList td a a.action.no-permission:hover,.files-fileList td a a.action.no-permission:focus{opacity:.3}.files-fileList td a a.action.disabled:hover,.files-fileList td a a.action.disabled:focus,.files-fileList td a a.action.disabled img{opacity:.3}.files-fileList td a a.action.disabled.action-download{opacity:.7}.files-fileList td a a.action.disabled.action-download:hover,.files-fileList td a a.action.disabled.action-download:focus{opacity:.7}.files-fileList td a a.action:hover,.files-fileList td a a.action:focus{opacity:1}.files-fileList td a a.action:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.files-fileList td a .fileActionsMenu a.action,.files-fileList td a a.action.action-share.shared-style{opacity:.7}.files-fileList td a .fileActionsMenu .action.permanent{opacity:1}.files-fileList .action.action-share.permanent.shared-style span:not(.icon){display:inline-block;max-width:70px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;margin-left:6px}.files-fileList .remoteAddress .userDomain{margin-left:0 !important}.files-fileList .favorite-mark.permanent{opacity:1}.files-fileList .fileActionsMenu a.action:hover,.files-fileList .fileActionsMenu a.action:focus,.files-fileList a.action.action-share.shared-style:hover,.files-fileList a.action.action-share.shared-style:focus{opacity:1}.files-fileList tr a.action.disabled{background:none}.selectedActions a.download.disabled,.files-fileList tr a.action.action-download.disabled{color:#000}.files-fileList tr:hover a.action.disabled:hover *{cursor:default}.summary{color:var(--color-text-maxcontrast);height:330px}.files-filestable .summary .filesummary{width:100%;padding-left:101px}#body-public .summary{height:180px}.summary:hover,.summary:focus,.summary,table tr.summary td{background-color:rgba(0,0,0,0)}.summary td{border-bottom:none;vertical-align:top;padding-top:20px}.summary td:first-child{padding:0}.hiddeninfo{white-space:pre-line}table.dragshadow{width:auto;z-index:2000}table.dragshadow td.filename{padding-left:60px;padding-right:16px;height:36px;max-width:unset}table.dragshadow td.size{padding-right:8px}.mask{z-index:50;position:absolute;top:0;left:0;right:0;bottom:0;background-color:var(--color-main-background);background-repeat:no-repeat no-repeat;background-position:50%;opacity:.7;transition:opacity 100ms;-moz-transition:opacity 100ms;-o-transition:opacity 100ms;-ms-transition:opacity 100ms;-webkit-transition:opacity 100ms}.mask.transparent{opacity:0}.newFileMenu{font-weight:300;top:100%;left:-48px !important;margin-top:4px;min-width:100px;z-index:1001}.newFileMenu::after{left:61px !important}.files-controls{box-sizing:border-box;position:-webkit-sticky;position:sticky;height:50px;padding:0;margin:0;background-color:var(--color-main-background-translucent);z-index:62;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;top:0;padding-left:50px}.files-controls .actions>div>.button,.files-controls .actions>div button,.files-controls .actions>.button,.files-controls .actions button{box-sizing:border-box;display:inline-block;display:flex;height:44px;width:44px;padding:9px;align-items:center;justify-content:center}.files-controls .actions>div .button.hidden,.files-controls .actions .button.hidden{display:none}.viewer-mode #app-navigation+#app-content .files-controls{left:0}.files-filestable .filename .action .icon,.files-filestable .selectedActions a .icon,.files-filestable .filename .favorite-mark .icon,.files-controls .actions .button .icon{display:inline-block;vertical-align:middle;background-size:16px 16px}.files-filestable .filename .favorite-mark .icon-star{background-image:none}.files-filestable .filename .favorite-mark .icon-starred{background-image:var(--icon-starred-yellow) !important}.files-filestable .filename .action .icon.hidden,.files-filestable .selectedActions a .icon.hidden,.files-controls .actions .button .icon.hidden{display:none}.files-filestable .filename .action .icon.loading,.files-filestable .selectedActions a .icon.loading,.files-controls .actions .button .icon.loading{width:15px;height:15px}.app-files .actions .button.new{position:relative}.breadcrumb{align-items:center}.breadcrumb .icon-home{border-radius:var(--border-radius)}.breadcrumb .canDrop>a,.files-filestable tbody tr.canDrop{background-color:rgba(0,130,201,.3)}.dropzone-background{background-color:rgba(0,130,201,.3)}.dropzone-background :hover{box-shadow:none !important}.notCreatable{margin-left:12px;margin-right:44px;margin-top:12px;color:var(--color-main-text);overflow:auto;min-width:160px;height:54px}.notCreatable:not(.hidden){display:flex}.notCreatable .icon-alert-outline{top:-15px;position:relative;margin-right:4px}.quota-navigation-item{margin:0 !important;border:none;border-radius:0;background-color:rgba(0,0,0,0);z-index:1;height:44px;display:flex !important;flex-direction:column}.quota-navigation-item__text{height:30px}.quota-navigation-item[href="#"],.quota-navigation-item[href="#"] *{cursor:default !important}.quota-navigation-item__container{height:5px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) thead tr{display:block;border-bottom:1px solid var(--color-border);background-color:var(--color-main-background-translucent)}.files-filestable.view-grid:not(.hidden) thead tr th{width:auto;border:none}.files-filestable.view-grid:not(.hidden) tbody{display:grid;grid-template-columns:repeat(auto-fill, 160px);justify-content:space-around;row-gap:15px;margin:15px 0}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden){display:block;position:relative;height:190px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted{background-color:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions{background-color:var(--color-background-hover)}.files-filestable.view-grid:not(.hidden) tbody td{display:inline;border-bottom:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper{min-width:0;max-width:none;position:absolute;width:160px;height:160px;padding:14px;top:0;left:0;z-index:-1}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail{width:calc(100% - 2 * 14px);height:calc(100% - 2 * 14px);background-size:contain;margin:0;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark{padding:14px;left:auto;top:-22px;right:-22px}.files-filestable.view-grid:not(.hidden) tbody td.filename .uploadtext{width:100%;margin:0;top:0;bottom:auto;height:28px;padding-top:4px;padding-left:28px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name{height:100%;border-radius:var(--border-radius);overflow:hidden;cursor:pointer !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext{display:flex;height:44px;margin-top:146px;text-align:center;line-height:44px;padding:0}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{display:inline-block;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before{content:"";flex:1;min-width:14px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after{content:"";flex:1;min-width:44px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions{height:initial;margin-top:146px;display:flex;align-items:center;position:absolute;right:0}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action{padding:14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu){display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img{padding:6px;border-radius:50%}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename form{padding:3px 14px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody td.filename form input.filename{width:100%;margin-left:0;cursor:text}.files-filestable.view-grid:not(.hidden) tbody td.filesize,.files-filestable.view-grid:not(.hidden) tbody td.date{display:none}.files-filestable.view-grid:not(.hidden) tbody td.selection,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark{position:absolute;top:-8px;left:-8px;display:flex;width:44px;height:44px;z-index:10;background:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody td.selection label,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label{width:44px;height:44px;display:inline-flex;padding:14px}.files-filestable.view-grid:not(.hidden) tbody td.selection label::before,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before{margin:0;width:14px;height:14px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:0;width:150px;margin:0 5px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon){overflow:hidden;text-overflow:ellipsis}.files-filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension{display:block}.files-filestable.view-grid:not(.hidden) tfoot{display:grid}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden){display:inline-block;margin:0 auto;height:418px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td{padding-top:50px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child,.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date{display:none}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info{margin-left:0}#view-toggle{background-color:var(--color-main-background-translucent);border:none;margin:0;padding:22px;opacity:.5;float:right;right:var(--default-grid-baseline);top:var(--default-grid-baseline);z-index:100;position:sticky}#view-toggle:hover,#view-toggle:focus,#showgridview:focus+#view-toggle{opacity:1}#view-toggle:focus-visible,#showgridview:focus-visible+#view-toggle{box-shadow:inset 0 0 0 2px var(--color-primary) !important}#showgridview{position:fixed;top:0}#body-public .files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{max-width:124px}#body-public .files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:-80px}#body-public #view-toggle{position:absolute;right:0;top:0}#gallery-button{display:none}#tag_multiple_files_container{overflow:hidden;background-color:#fff;border-radius:3px;position:relative;display:flex;flex-wrap:wrap;margin-bottom:10px}#tag_multiple_files_container h3{width:100%;padding:0 18px}#tag_multiple_files_container .systemTagsInputFieldContainer{flex:1 1 80%;min-width:0;margin:0 12px}#upload{box-sizing:border-box;height:36px;width:39px;padding:0 !important;margin-left:3px;overflow:hidden;vertical-align:top;position:relative;z-index:-20}#upload .icon-upload{position:relative;display:block;width:100%;height:44px;width:44px;margin:-5px -3px;cursor:pointer;z-index:10;opacity:.65}.file_upload_target{display:none}.file_upload_form{display:inline;float:left;margin:0;padding:0;cursor:pointer;overflow:visible}.uploadprogresswrapper,.uploadprogresswrapper *{box-sizing:border-box}.uploadprogresswrapper{display:inline-block;vertical-align:top;height:36px;margin-left:3px}.uploadprogresswrapper>input[type=button]{height:36px;margin-left:3px}#uploadprogressbar{border-color:var(--color-border-dark);border-radius:var(--border-radius-pill) 0 0 var(--border-radius-pill);border-right:0;position:relative;float:left;width:200px;height:44px;display:inline-block;text-align:center}#uploadprogressbar .ui-progressbar-value{margin-top:.1em}#uploadprogressbar .ui-progressbar-value.ui-widget-header.ui-corner-left{height:calc(100% + 2px);top:-1px;left:-1px;position:absolute;overflow:hidden;background-color:var(--color-primary)}#uploadprogressbar .label{top:8px;opacity:1;overflow:hidden;white-space:nowrap;font-weight:normal}#uploadprogressbar .label.inner{color:var(--color-primary-text);position:absolute;display:block;width:200px}#uploadprogressbar .label.outer{position:relative;color:var(--color-main-text)}#uploadprogressbar .desktop{display:block}#uploadprogressbar .mobile{display:none}#uploadprogressbar+.stop{border-top-left-radius:0;border-bottom-left-radius:0}.oc-dialog .fileexists{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-bottom:30px}.oc-dialog .fileexists .conflict .filename,.oc-dialog .fileexists .conflict .mtime,.oc-dialog .fileexists .conflict .size{-webkit-touch-callout:initial;-webkit-user-select:initial;-khtml-user-select:initial;-moz-user-select:initial;-ms-user-select:initial;user-select:initial}.oc-dialog .fileexists .conflict .message{color:#e9322d}.oc-dialog .fileexists table{width:100%}.oc-dialog .fileexists th{padding-left:0;padding-right:0}.oc-dialog .fileexists th input[type=checkbox]{margin-right:3px}.oc-dialog .fileexists th:first-child{width:225px}.oc-dialog .fileexists th label{font-weight:normal;color:var(--color-main-text)}.oc-dialog .fileexists th .count{margin-left:3px}.oc-dialog .fileexists .conflicts .template{display:none}.oc-dialog .fileexists .conflict{width:100%;height:85px}.oc-dialog .fileexists .conflict .filename{color:#777;word-break:break-all;clear:left}.oc-dialog .fileexists .icon{width:64px;height:64px;margin:0px 5px 5px 5px;background-repeat:no-repeat;background-size:64px 64px;float:left}.oc-dialog .fileexists .original,.oc-dialog .fileexists .replacement{float:left;width:50%}.oc-dialog .fileexists .conflicts{overflow-y:auto;max-height:225px}.oc-dialog .fileexists .conflict input[type=checkbox]{float:left}.oc-dialog .fileexists #allfileslabel{float:right}.oc-dialog .fileexists #allfiles{vertical-align:bottom;position:relative;top:-3px}.oc-dialog .fileexists #allfiles+span{vertical-align:bottom}.oc-dialog .oc-dialog-buttonrow{width:100%;text-align:right}.oc-dialog .oc-dialog-buttonrow .cancel{float:left}.highlightUploaded{-webkit-animation:highlightAnimation 2s 1;-moz-animation:highlightAnimation 2s 1;-o-animation:highlightAnimation 2s 1;animation:highlightAnimation 2s 1}@-webkit-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-moz-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-o-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@media only screen and (max-width: 988px)and (min-width: 1025px),only screen and (max-width: 688px){.app-files #app-content.dir-drop{background-color:#fff !important}table th.column-size,table td.filesize,table th.column-mtime,table td.date{display:none}table td{padding:0}table.multiselect thead{padding-left:0}.fileList a.action.action-menu img{padding-left:0}.fileList .fileActionsMenu{margin-right:6px}.fileList a.action-share span:not(.icon):not(.avatar){position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}#uploadprogressbar,#uploadprogressbar .label.inner{width:50px}#uploadprogressbar .desktop{display:none !important}#uploadprogressbar .mobile{display:block !important}table.dragshadow{z-index:1000}}@media only screen and (max-width: 480px){table th .selectedActions{float:right}table th .selectedActions>a span:not(.icon){display:none}table th .selectedActions a{padding:17px 14px}table.multiselect th .columntitle.name{margin-left:0}}.app-sidebar .detailFileInfoContainer{min-height:50px;padding:15px}.app-sidebar .detailFileInfoContainer>div{clear:both}.app-sidebar .mainFileInfoView .icon{display:inline-block;background-size:16px 16px}.app-sidebar .mainFileInfoView .permalink{padding:6px 10px;vertical-align:top;opacity:.6}.app-sidebar .mainFileInfoView .permalink:hover,.app-sidebar .mainFileInfoView .permalink:focus{opacity:1}.app-sidebar .mainFileInfoView .permalink-field>input{clear:both;width:90%}.app-sidebar .thumbnailContainer.large{margin-left:-15px;margin-right:-35px;margin-top:-15px}.app-sidebar .thumbnailContainer.large.portrait{margin:0}.app-sidebar .large .thumbnail{width:100%;display:block;background-repeat:no-repeat;background-position:center;background-size:100%;float:none;margin:0;height:auto}.app-sidebar .large .thumbnail .stretcher{content:"";display:block;padding-bottom:56.25%}.app-sidebar .large.portrait .thumbnail{background-position:50% top}.app-sidebar .large.portrait .thumbnail{background-size:contain}.app-sidebar .large.text{overflow-y:scroll;overflow-x:hidden;padding-top:14px;font-size:80%;margin-left:0}.app-sidebar .thumbnail{width:100%;min-height:75px;display:inline-block;float:left;margin-right:10px;background-size:contain;background-repeat:no-repeat}.app-sidebar .ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-sidebar .fileName{font-size:16px;padding-top:13px;padding-bottom:3px}.app-sidebar .fileName h3{width:calc(100% - 42px);display:inline-block;padding:5px 0;margin:-5px 0}.app-sidebar .file-details{color:var(--color-text-maxcontrast)}.app-sidebar .action-favorite{vertical-align:sub;padding:10px;margin:-10px}.app-sidebar .action-favorite>span{opacity:.7 !important}.app-sidebar .detailList{float:left}.app-sidebar .close{position:absolute;top:0;right:0;opacity:.5;z-index:1;width:44px;height:44px}.whatsNewPopover{bottom:35px !important;left:15px !important;width:270px;z-index:700}.whatsNewPopover p{width:auto !important}.whatsNewPopover .caption{font-weight:bold;cursor:auto !important}.whatsNewPopover .icon-close{position:absolute;right:0}.whatsNewPopover::after{content:none}/*# sourceMappingURL=merged.css.map */
+.actions{padding:3px;height:100%;display:inline-block;float:left}.actions input,.actions button,.actions .button{margin:0;float:left}.actions .button a{color:#555}.actions .button a:hover,.actions .button a:focus{background-color:var(--color-background-hover)}.actions .button a:active{background-color:var(--color-primary-light)}.actions.creatable{position:relative;display:flex;flex:1 1}.actions.creatable .button:not(:last-child){margin-right:3px}.actions.hidden{display:none}#trash{margin-right:8px;float:right;z-index:1010;padding:10px;font-weight:normal}.newFileMenu .error,.newFileMenu .error+.icon-confirm,.files-fileList .error{color:var(--color-error);border-color:var(--color-error)}.files-filestable{position:relative;width:100%;min-width:250px;display:block;flex-direction:column}.emptycontent:not(.hidden)~.files-filestable{display:none}.files-filestable thead{position:-webkit-sticky;position:sticky;top:44px;z-index:60;display:block;background-color:var(--color-main-background-translucent)}.files-filestable tbody{display:table;width:100%}.files-filestable tbody tr[data-permissions="0"],.files-filestable tbody tr[data-permissions="16"]{background-color:var(--color-background-dark)}.files-filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,.files-filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext{color:var(--color-text-maxcontrast)}.files-filestable tbody tr[data-e2eencrypted=true] .selection{pointer-events:none}.files-filestable.hidden{display:none}.app-files #app-content>.viewcontainer{min-height:0%;width:100%}.app-files #app-content{width:calc(100% - 300px)}.file-drag,.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:var(--color-primary-light) !important}.app-files #app-content.dir-drop{background-color:var(--color-main-background) !important}.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:rgba(0,0,0,0) !important}.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{background-color:var(--color-primary-light) !important}.nav-icon-files{background-image:var(--icon-folder-dark)}.nav-icon-recent{background-image:var(--icon-recent-dark)}.nav-icon-favorites{background-image:var(--icon-starred-dark)}.nav-icon-sharingin,.nav-icon-sharingout,.nav-icon-pendingshares,.nav-icon-shareoverview{background-image:var(--icon-share-dark)}.nav-icon-sharinglinks{background-image:var(--icon-public-dark)}.nav-icon-extstoragemounts{background-image:var(--icon-external-dark)}.nav-icon-trashbin{background-image:var(--icon-delete-dark)}.nav-icon-trashbin-starred{background-image:var(--icon-delete-#ff0000)}.nav-icon-deletedshares{background-image:var(--icon-unshare-dark)}.nav-icon-favorites-starred{background-image:var(--icon-starred-yellow)}#app-navigation .nav-files a.nav-icon-files{width:auto}#app-navigation .nav-files a.new{width:40px;height:32px;padding:0 10px;margin:0;cursor:pointer}#app-navigation .nav-files a.new.hidden{display:none}#app-navigation .nav-files a.new.disabled{opacity:.3}.files-filestable tbody tr{height:51px}.files-filestable tbody tr:hover,.files-filestable tbody tr:focus,.files-filestable tbody .name:focus,.files-filestable tbody tr:hover .filename form,table tr.mouseOver td{background-color:var(--color-background-hover)}.files-filestable tbody tr:active,.files-filestable tbody tr.highlighted,.files-filestable tbody tr.highlighted .name:focus,.files-filestable tbody tr.selected,.files-filestable tbody tr.searchresult{background-color:var(--color-primary-light)}tbody a{color:var(--color-main-text)}span.conflict-path,span.extension,span.uploading,td.date{color:var(--color-text-maxcontrast)}span.conflict-path,span.extension{-webkit-transition:opacity 300ms;-moz-transition:opacity 300ms;-o-transition:opacity 300ms;transition:opacity 300ms;vertical-align:top}tr:hover span.conflict-path,tr:focus span.conflict-path,tr:hover span.extension,tr:focus span.extension{opacity:1;color:var(--color-text-maxcontrast)}table th,table th a{color:var(--color-text-maxcontrast)}table.multiselect th a{color:var(--color-main-text)}table th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}table th .columntitle:focus-visible{border-radius:2px}table.multiselect th .columntitle{display:inline-block;margin-right:-20px}table th .columntitle.name{padding-left:0;margin-left:44px}table.multiselect th .columntitle.name{margin-left:0}table th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}.sort-indicator.hidden,.multiselect .sort-indicator,table.multiselect th:hover .sort-indicator.hidden,table.multiselect th:focus .sort-indicator.hidden{visibility:hidden}.multiselect .sort,.multiselect .sort span{cursor:default}table th:hover .sort-indicator.hidden,table th:focus .sort-indicator.hidden{visibility:visible}table th,table td{border-bottom:1px solid var(--color-border);text-align:left;font-weight:normal}table td{padding:0 15px;font-style:normal;background-position:8px center;background-repeat:no-repeat}table th.column-name{position:relative;width:9999px;padding:0}.column-name-container{position:relative;height:50px}table th.column-selection{padding-top:2px}table th.column-size,table td.filesize{text-align:right}table th.column-mtime,table td.date,table th.column-last,table td.column-last{-moz-box-sizing:border-box;box-sizing:border-box;position:relative;min-width:130px}#app-content-recent,#app-content-favorites,#app-content-shareoverview,#app-content-sharingout,#app-content-sharingin,#app-content-sharinglinks,#app-content-deletedshares,#app-content-pendingshares{margin-top:22px}#app-content-recent thead,#app-content-favorites thead,#app-content-shareoverview thead,#app-content-sharingout thead,#app-content-sharingin thead,#app-content-sharinglinks thead,#app-content-deletedshares thead,#app-content-pendingshares thead{top:0}table.multiselect thead th{background-color:var(--color-main-background-translucent);font-weight:bold}#app-content.with-app-sidebar table.multiselect thead{margin-right:27%}table.multiselect .column-name{position:relative;width:9999px}table.multiselect .column-mtime>a{display:none}table td.selection,table th.selection,table td.fileaction{width:32px;text-align:center}table td.filename a.name,table td.filename p.name{display:flex;position:relative;-moz-box-sizing:border-box;box-sizing:border-box;height:50px;line-height:50px;padding:0}table td.filename .thumbnail-wrapper{width:0;min-width:50px;max-width:50px;height:50px}table td.filename .thumbnail-wrapper.icon-loading-small:after{z-index:10}table td.filename .thumbnail-wrapper.icon-loading-small .thumbnail{opacity:.2}table td.filename .thumbnail{display:inline-block;width:32px;height:32px;background-size:contain;background-position:center;background-repeat:no-repeat;margin-left:9px;margin-top:9px;border-radius:var(--border-radius);cursor:pointer;position:absolute;z-index:4}table td.filename p.name .thumbnail{cursor:default}table tr[data-has-preview=true] .thumbnail{border:1px solid var(--color-border)}table:not(.view-grid) td.filename input.filename{width:70% !important;margin-left:48px !important;cursor:text}table td.filename form{margin-top:-40px;position:relative;top:-6px}table td.filename a,table td.login,table td.logout,table td.download,table td.upload,table td.create,table td.delete{padding:3px 8px 8px 3px}table td.filename .nametext,.modified,.column-last>span:first-child{float:left;padding:15px 0}.modified,.column-last>span:first-child{position:relative;overflow:hidden;text-overflow:ellipsis;width:110px}table td.filename{max-width:0}table td.filename .nametext{width:0;flex-grow:1;display:flex;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:100%;z-index:10;padding:0 20px 0 0}table td.filename .system-tags{--min-size: 32px;display:flex;justify-content:center;align-items:center;flex:1 1 100%;min-width:calc(var(--min-size)*2);max-width:300px}table td.filename .system-tags .system-tags__tag{padding:5px 10px;border:1px solid;border-radius:var(--border-radius-pill);border-color:var(--color-border);color:var(--color-text-maxcontrast);height:var(--min-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px;text-align:center}table td.filename .system-tags .system-tags__tag--more{overflow:visible;text-overflow:initial}table td.filename .system-tags .system-tags__tag+.system-tags__tag{margin-left:5px}.hide-hidden-files .files-filestable .files-fileList tr.hidden-file,.hide-hidden-files .files-filestable .files-fileList tr.hidden-file.dragging{display:none !important}.files-fileList tr.animate-opacity{-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.files-fileList tr.dragging{opacity:.2}table td.filename .nametext .innernametext{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top}table td.filename .uploadtext{position:absolute;font-weight:normal;margin-left:50px;left:0;bottom:0;height:20px;padding:0 4px;padding-left:1px;font-size:11px;line-height:22px;color:var(--color-text-maxcontrast);text-overflow:ellipsis;white-space:nowrap}table td.selection{padding:0}.files-fileList tr td.selection>.selectCheckBox+label:before{opacity:.3;margin-right:0}.files-fileList tr:hover td.selection>.selectCheckBox+label:before,.files-fileList tr:focus td.selection>.selectCheckBox+label:before,.files-fileList tr td.selection>.selectCheckBox:checked+label:before,.files-fileList tr.selected td.selection>.selectCheckBox+label:before{opacity:1}.files-fileList tr.halfselected td.selection>.selectCheckBox+label:before{opacity:.5}.files-fileList tr td.selection>.selectCheckBox+label,.select-all+label{padding:16px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill);outline:none !important;border:2px solid var(--color-primary) !important;padding:14px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{outline-offset:0px}.files-fileList tr td.filename{position:relative;width:100%;padding-left:0;padding-right:0;-webkit-transition:background-image 500ms;-moz-transition:background-image 500ms;-o-transition:background-image 500ms;transition:background-image 500ms}.files-fileList tr td.filename a.name label,.files-fileList tr td.filename p.name label{position:absolute;width:80%;height:50px}.files-fileList tr td.filename .favorite{display:inline-block;float:left}.files-fileList tr td.filename .favorite-mark{position:absolute;display:block;top:-6px;right:-6px;line-height:100%;text-align:center}#uploadsize-message,#delete-confirm{display:none}.fileactions{z-index:50}.busy .fileactions,.busy .action{visibility:hidden}.bubble,#app-navigation .app-navigation-entry-menu{min-width:100px}.files-fileList .icon-loading-small{opacity:1 !important;display:inline !important}.files-fileList .action.action-share-notification span,.files-fileList a.name{cursor:default !important}.files-fileList a.name.disabled *{cursor:default}.files-fileList a.name.disabled a,.files-fileList a.name.disabled a *{cursor:pointer}.files-fileList a.name.disabled:focus{background:none}a.action>img{height:16px;width:16px;vertical-align:text-bottom}a.action.action-editlocally img.icon{filter:var(--background-invert-if-dark)}.selectedActions{position:relative;display:inline-block;vertical-align:middle}.selectedActions.hidden{display:none}.selectedActions a{display:inline;line-height:50px;padding:16px 5px}.selectedActions a.hidden{display:none}.selectedActions a img{position:relative;vertical-align:text-bottom;margin-bottom:-1px}.selectedActions .actions-selected .icon-more{margin-top:-3px}.files-fileList td a a.action{display:inline;padding:17px 8px;line-height:50px;opacity:.3}.files-fileList td a a.action.action-share{padding:17px 14px}.files-fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared+span{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.files-fileList td a a.action.action-share .avatar{display:inline-block;vertical-align:middle}.files-fileList td a a.action.action-menu{padding-top:17px;padding-bottom:17px;padding-left:14px;padding-right:14px}.files-fileList td a a.action.no-permission:hover,.files-fileList td a a.action.no-permission:focus{opacity:.3}.files-fileList td a a.action.disabled:hover,.files-fileList td a a.action.disabled:focus,.files-fileList td a a.action.disabled img{opacity:.3}.files-fileList td a a.action.disabled.action-download{opacity:.7}.files-fileList td a a.action.disabled.action-download:hover,.files-fileList td a a.action.disabled.action-download:focus{opacity:.7}.files-fileList td a a.action:hover,.files-fileList td a a.action:focus{opacity:1}.files-fileList td a a.action:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.files-fileList td a .fileActionsMenu a.action,.files-fileList td a a.action.action-share.shared-style{opacity:.7}.files-fileList td a .fileActionsMenu .action.permanent{opacity:1}.files-fileList .action.action-share.permanent.shared-style span:not(.icon){display:inline-block;max-width:70px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;margin-left:6px}.files-fileList .remoteAddress .userDomain{margin-left:0 !important}.files-fileList .favorite-mark.permanent{opacity:1}.files-fileList .fileActionsMenu a.action:hover,.files-fileList .fileActionsMenu a.action:focus,.files-fileList a.action.action-share.shared-style:hover,.files-fileList a.action.action-share.shared-style:focus{opacity:1}.files-fileList tr a.action.disabled{background:none}.selectedActions a.download.disabled,.files-fileList tr a.action.action-download.disabled{color:#000}.files-fileList tr:hover a.action.disabled:hover *{cursor:default}.summary{color:var(--color-text-maxcontrast);height:330px}.files-filestable .summary .filesummary{width:100%;padding-left:101px}#body-public .summary{height:180px}.summary:hover,.summary:focus,.summary,table tr.summary td{background-color:rgba(0,0,0,0)}.summary td{border-bottom:none;vertical-align:top;padding-top:20px}.summary td:first-child{padding:0}.hiddeninfo{white-space:pre-line}table.dragshadow{width:auto;z-index:2000}table.dragshadow td.filename{padding-left:60px;padding-right:16px;height:36px;max-width:unset}table.dragshadow td.size{padding-right:8px}.mask{z-index:50;position:absolute;top:0;left:0;right:0;bottom:0;background-color:var(--color-main-background);background-repeat:no-repeat no-repeat;background-position:50%;opacity:.7;transition:opacity 100ms;-moz-transition:opacity 100ms;-o-transition:opacity 100ms;-ms-transition:opacity 100ms;-webkit-transition:opacity 100ms}.mask.transparent{opacity:0}.newFileMenu{font-weight:300;top:100%;left:-48px !important;margin-top:4px;min-width:100px;z-index:1001}.newFileMenu::after{left:61px !important}.files-controls{box-sizing:border-box;position:-webkit-sticky;position:sticky;height:50px;padding:0;margin:0;background-color:var(--color-main-background-translucent);z-index:62;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;top:0;padding-left:50px}.files-controls .actions>div>.button,.files-controls .actions>div button,.files-controls .actions>.button,.files-controls .actions button{box-sizing:border-box;display:inline-block;display:flex;height:44px;width:44px;padding:9px;align-items:center;justify-content:center}.files-controls .actions>div .button.hidden,.files-controls .actions .button.hidden{display:none}.viewer-mode #app-navigation+#app-content .files-controls{left:0}.files-filestable .filename .action .icon,.files-filestable .selectedActions a .icon,.files-filestable .filename .favorite-mark .icon,.files-controls .actions .button .icon{display:inline-block;vertical-align:middle;background-size:16px 16px}.files-filestable .filename .favorite-mark .icon-star{background-image:none}.files-filestable .filename .favorite-mark .icon-starred{background-image:var(--icon-starred-yellow) !important}.files-filestable .filename .action .icon.hidden,.files-filestable .selectedActions a .icon.hidden,.files-controls .actions .button .icon.hidden{display:none}.files-filestable .filename .action .icon.loading,.files-filestable .selectedActions a .icon.loading,.files-controls .actions .button .icon.loading{width:15px;height:15px}.app-files .actions .button.new{position:relative}.breadcrumb{align-items:center}.breadcrumb .icon-home{border-radius:var(--border-radius)}.breadcrumb .canDrop>a,.files-filestable tbody tr.canDrop{background-color:rgba(0,130,201,.3)}.dropzone-background{background-color:rgba(0,130,201,.3)}.dropzone-background :hover{box-shadow:none !important}.notCreatable{margin-left:12px;margin-right:44px;margin-top:12px;color:var(--color-main-text);overflow:auto;min-width:160px;height:54px}.notCreatable:not(.hidden){display:flex}.notCreatable .icon-alert-outline{top:-15px;position:relative;margin-right:4px}.quota-navigation-item{margin:0 !important;border:none;border-radius:0;background-color:rgba(0,0,0,0);z-index:1;height:44px;display:flex !important;flex-direction:column}.quota-navigation-item__text{height:30px}.quota-navigation-item[href="#"],.quota-navigation-item[href="#"] *{cursor:default !important}.quota-navigation-item__container{height:5px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) thead tr{display:block;border-bottom:1px solid var(--color-border);background-color:var(--color-main-background-translucent)}.files-filestable.view-grid:not(.hidden) thead tr th{width:auto;border:none}.files-filestable.view-grid:not(.hidden) tbody{display:grid;grid-template-columns:repeat(auto-fill, 160px);justify-content:space-around;row-gap:15px;margin:15px 0}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden){display:block;position:relative;height:190px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted{background-color:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions{background-color:var(--color-background-hover)}.files-filestable.view-grid:not(.hidden) tbody td{display:inline;border-bottom:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper{min-width:0;max-width:none;position:absolute;width:160px;height:160px;padding:14px;top:0;left:0;z-index:-1}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail{width:calc(100% - 2 * 14px);height:calc(100% - 2 * 14px);background-size:contain;margin:0;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark{padding:14px;left:auto;top:-22px;right:-22px}.files-filestable.view-grid:not(.hidden) tbody td.filename .uploadtext{width:100%;margin:0;top:0;bottom:auto;height:28px;padding-top:4px;padding-left:28px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name{height:100%;border-radius:var(--border-radius);overflow:hidden;cursor:pointer !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext{display:flex;height:44px;margin-top:146px;text-align:center;line-height:44px;padding:0}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{display:inline-block;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before{content:"";flex:1;min-width:14px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after{content:"";flex:1;min-width:44px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .system-tags{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions{height:initial;margin-top:146px;display:flex;align-items:center;position:absolute;right:0}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action{padding:14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu){display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img{padding:6px;border-radius:50%}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename form{padding:3px 14px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody td.filename form input.filename{width:100%;margin-left:0;cursor:text}.files-filestable.view-grid:not(.hidden) tbody td.filesize,.files-filestable.view-grid:not(.hidden) tbody td.date{display:none}.files-filestable.view-grid:not(.hidden) tbody td.selection,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark{position:absolute;top:-8px;left:-8px;display:flex;width:44px;height:44px;z-index:10;background:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody td.selection label,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label{width:44px;height:44px;display:inline-flex;padding:14px}.files-filestable.view-grid:not(.hidden) tbody td.selection label::before,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before{margin:0;width:14px;height:14px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:0;width:150px;margin:0 5px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon){overflow:hidden;text-overflow:ellipsis}.files-filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension{display:block}.files-filestable.view-grid:not(.hidden) tfoot{display:grid}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden){display:inline-block;margin:0 auto;height:418px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td{padding-top:50px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child,.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date{display:none}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info{margin-left:0}#view-toggle{background-color:var(--color-main-background-translucent);border:none;margin:0;padding:22px;opacity:.5;float:right;right:var(--default-grid-baseline);top:var(--default-grid-baseline);z-index:100;position:sticky}#view-toggle:hover,#view-toggle:focus,#showgridview:focus+#view-toggle{opacity:1}#view-toggle:focus-visible,#showgridview:focus-visible+#view-toggle{box-shadow:inset 0 0 0 2px var(--color-primary) !important}#showgridview{position:fixed;top:0}#body-public .files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{max-width:124px}#body-public .files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:-80px}#body-public #view-toggle{position:absolute;right:0;top:0}#gallery-button{display:none}#tag_multiple_files_container{overflow:hidden;background-color:#fff;border-radius:3px;position:relative;display:flex;flex-wrap:wrap;margin-bottom:10px}#tag_multiple_files_container h3{width:100%;padding:0 18px}#tag_multiple_files_container .systemTagsInputFieldContainer{flex:1 1 80%;min-width:0;margin:0 12px}#upload{box-sizing:border-box;height:36px;width:39px;padding:0 !important;margin-left:3px;overflow:hidden;vertical-align:top;position:relative;z-index:-20}#upload .icon-upload{position:relative;display:block;width:100%;height:44px;width:44px;margin:-5px -3px;cursor:pointer;z-index:10;opacity:.65}.file_upload_target{display:none}.file_upload_form{display:inline;float:left;margin:0;padding:0;cursor:pointer;overflow:visible}.uploadprogresswrapper,.uploadprogresswrapper *{box-sizing:border-box}.uploadprogresswrapper{display:inline-block;vertical-align:top;height:36px;margin-left:3px}.uploadprogresswrapper>input[type=button]{height:36px;margin-left:3px}#uploadprogressbar{border-color:var(--color-border-dark);border-radius:var(--border-radius-pill) 0 0 var(--border-radius-pill);border-right:0;position:relative;float:left;width:200px;height:44px;display:inline-block;text-align:center}#uploadprogressbar .ui-progressbar-value{margin-top:.1em}#uploadprogressbar .ui-progressbar-value.ui-widget-header.ui-corner-left{height:calc(100% + 2px);top:-1px;left:-1px;position:absolute;overflow:hidden;background-color:var(--color-primary)}#uploadprogressbar .label{top:8px;opacity:1;overflow:hidden;white-space:nowrap;font-weight:normal}#uploadprogressbar .label.inner{color:var(--color-primary-text);position:absolute;display:block;width:200px}#uploadprogressbar .label.outer{position:relative;color:var(--color-main-text)}#uploadprogressbar .desktop{display:block}#uploadprogressbar .mobile{display:none}#uploadprogressbar+.stop{border-top-left-radius:0;border-bottom-left-radius:0}.oc-dialog .fileexists{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-bottom:30px}.oc-dialog .fileexists .conflict .filename,.oc-dialog .fileexists .conflict .mtime,.oc-dialog .fileexists .conflict .size{-webkit-touch-callout:initial;-webkit-user-select:initial;-khtml-user-select:initial;-moz-user-select:initial;-ms-user-select:initial;user-select:initial}.oc-dialog .fileexists .conflict .message{color:#e9322d}.oc-dialog .fileexists table{width:100%}.oc-dialog .fileexists th{padding-left:0;padding-right:0}.oc-dialog .fileexists th input[type=checkbox]{margin-right:3px}.oc-dialog .fileexists th:first-child{width:225px}.oc-dialog .fileexists th label{font-weight:normal;color:var(--color-main-text)}.oc-dialog .fileexists th .count{margin-left:3px}.oc-dialog .fileexists .conflicts .template{display:none}.oc-dialog .fileexists .conflict{width:100%;height:85px}.oc-dialog .fileexists .conflict .filename{color:#777;word-break:break-all;clear:left}.oc-dialog .fileexists .icon{width:64px;height:64px;margin:0px 5px 5px 5px;background-repeat:no-repeat;background-size:64px 64px;float:left}.oc-dialog .fileexists .original,.oc-dialog .fileexists .replacement{float:left;width:50%}.oc-dialog .fileexists .conflicts{overflow-y:auto;max-height:225px}.oc-dialog .fileexists .conflict input[type=checkbox]{float:left}.oc-dialog .fileexists #allfileslabel{float:right}.oc-dialog .fileexists #allfiles{vertical-align:bottom;position:relative;top:-3px}.oc-dialog .fileexists #allfiles+span{vertical-align:bottom}.oc-dialog .oc-dialog-buttonrow{width:100%;text-align:right}.oc-dialog .oc-dialog-buttonrow .cancel{float:left}.highlightUploaded{-webkit-animation:highlightAnimation 2s 1;-moz-animation:highlightAnimation 2s 1;-o-animation:highlightAnimation 2s 1;animation:highlightAnimation 2s 1}@-webkit-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-moz-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-o-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@media only screen and (max-width: 988px)and (min-width: 1025px),only screen and (max-width: 688px){.app-files #app-content.dir-drop{background-color:#fff !important}table th.column-size,table td.filesize,table th.column-mtime,table td.date{display:none}table td{padding:0}table.multiselect thead{padding-left:0}.fileList a.action.action-menu img{padding-left:0}.fileList .fileActionsMenu{margin-right:6px}.fileList a.action-share span:not(.icon):not(.avatar){position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}td.filename a.name .system-tags{display:none}#uploadprogressbar,#uploadprogressbar .label.inner{width:50px}#uploadprogressbar .desktop{display:none !important}#uploadprogressbar .mobile{display:block !important}table.dragshadow{z-index:1000}}@media only screen and (max-width: 480px){table th .selectedActions{float:right}table th .selectedActions>a span:not(.icon){display:none}table th .selectedActions a{padding:17px 14px}table.multiselect th .columntitle.name{margin-left:0}}.app-sidebar .detailFileInfoContainer{min-height:50px;padding:15px}.app-sidebar .detailFileInfoContainer>div{clear:both}.app-sidebar .mainFileInfoView .icon{display:inline-block;background-size:16px 16px}.app-sidebar .mainFileInfoView .permalink{padding:6px 10px;vertical-align:top;opacity:.6}.app-sidebar .mainFileInfoView .permalink:hover,.app-sidebar .mainFileInfoView .permalink:focus{opacity:1}.app-sidebar .mainFileInfoView .permalink-field>input{clear:both;width:90%}.app-sidebar .thumbnailContainer.large{margin-left:-15px;margin-right:-35px;margin-top:-15px}.app-sidebar .thumbnailContainer.large.portrait{margin:0}.app-sidebar .large .thumbnail{width:100%;display:block;background-repeat:no-repeat;background-position:center;background-size:100%;float:none;margin:0;height:auto}.app-sidebar .large .thumbnail .stretcher{content:"";display:block;padding-bottom:56.25%}.app-sidebar .large.portrait .thumbnail{background-position:50% top}.app-sidebar .large.portrait .thumbnail{background-size:contain}.app-sidebar .large.text{overflow-y:scroll;overflow-x:hidden;padding-top:14px;font-size:80%;margin-left:0}.app-sidebar .thumbnail{width:100%;min-height:75px;display:inline-block;float:left;margin-right:10px;background-size:contain;background-repeat:no-repeat}.app-sidebar .ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-sidebar .fileName{font-size:16px;padding-top:13px;padding-bottom:3px}.app-sidebar .fileName h3{width:calc(100% - 42px);display:inline-block;padding:5px 0;margin:-5px 0}.app-sidebar .file-details{color:var(--color-text-maxcontrast)}.app-sidebar .action-favorite{vertical-align:sub;padding:10px;margin:-10px}.app-sidebar .action-favorite>span{opacity:.7 !important}.app-sidebar .detailList{float:left}.app-sidebar .close{position:absolute;top:0;right:0;opacity:.5;z-index:1;width:44px;height:44px}.whatsNewPopover{bottom:35px !important;left:15px !important;width:270px;z-index:700}.whatsNewPopover p{width:auto !important}.whatsNewPopover .caption{font-weight:bold;cursor:auto !important}.whatsNewPopover .icon-close{position:absolute;right:0}.whatsNewPopover::after{content:none}/*# sourceMappingURL=merged.css.map */
diff --git a/apps/files/css/merged.css.map b/apps/files/css/merged.css.map
index 077ccbd7b27..5b260ebdcd4 100644
--- a/apps/files/css/merged.css.map
+++ b/apps/files/css/merged.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss","upload.scss","mobile.scss","detailsView.scss","../../../core/css/whatsnew.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,4CAGD,mBACC,kBACA,aACA,SACA,4CACC,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAGD,6FACC,uDAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,uDAID,gBCtEC,yCDyED,iBCzEC,yCD4ED,oBC5EC,0CD+ED,yFC/EC,wCDqFD,uBCrFC,yCDwFD,2BCxFC,2CD2FD,mBC3FC,yCD8FD,2BC9FC,4CDiGD,wBCjGC,0CDoGD,4BCpGC,4CDwGD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,4CAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAKH,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,iDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAGD,qCACC,wCAID,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,QA1EK,KA2EL,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAIF,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QApJK,KAqJL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WACA,YACA,WACA,yBAEA,kJACC,WACA,YACA,oBACA,QAxNO,KAyNP,kKACC,SACA,MA3NM,KA4NN,OA5NM,KAkOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,2DASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA,cE3yCF,QACC,sBACA,YACA,WACA,qBACA,gBACA,gBACA,mBACA,kBACA,YAED,qBACC,kBACA,cACA,WACA,YACA,WACA,iBACA,eACA,WACA,YAED,iCACA,+FAEA,gDACC,sBAGD,uBACC,qBACA,mBACA,YACA,gBAED,0CACC,YACA,gBAED,mBACC,sCACA,sEACA,eACA,kBACA,WACA,YACA,YACA,qBACA,kBAEA,yCACC,gBAGF,yEACC,wBACA,SACA,UACA,kBACA,gBACA,sCAED,0BACC,QACA,UACA,gBACA,mBACA,mBAED,gCACC,gCACA,kBACA,cACA,YAED,gCACC,kBACA,6BAED,4BACC,cAED,2BACC,aAGD,yBACC,yBACA,4BAGD,uBACC,2BACA,yBACA,wBACA,sBACA,qBACA,iBACA,mBAGD,0HAGC,8BACA,4BACA,2BACA,yBACA,wBACA,oBAED,0CACC,cAED,6BACC,WAED,0BACC,eACA,gBAED,+CACC,iBAED,sCACC,YAED,gCACC,mBACA,6BAED,iCACC,gBAED,4CACC,aAED,iCACC,WACA,YAED,2CACC,WACA,qBACA,WAED,6BACC,WACA,YACA,uBACA,4BACA,0BACA,WAGD,qEAEC,WACA,UAED,kCACC,gBACA,iBAED,sDACC,WAED,sCACC,YAED,iCACC,sBACA,kBACA,SAED,sCACC,sBAGD,gCACC,WACA,iBAEA,wCACC,WAIF,mBACC,0CACA,uCACA,qCACA,kCAGD,sCACE,4BACA,qCAEF,mCACE,4BACA,qCAEF,iCACE,4BACA,qCAEF,8BACE,4BACA,qCC3MF,oGAEA,iCACC,iCAGD,2EAIC,aAID,SACC,UAID,wBACC,eAGD,mCACC,eAGD,2BACC,iBAID,sDACC,kBACA,cACA,SACA,UACA,WACA,gBAKD,mDACC,WAGD,4BACC,wBAED,2BACC,yBAID,iBACC,cAID,0CAEC,0BACC,YAED,4CACC,aAID,4BACC,kBAID,uCACC,eClFF,sCACC,gBACA,aAGD,0CACC,WAID,qCACC,qBACA,0BAGD,0CACC,iBACA,mBACA,WAEA,gGAEC,UAGF,sDACC,WACA,UAGD,uCACC,kBACA,mBACA,iBAGD,gDACC,SAGD,+BACC,WACA,cACA,4BACA,2BACA,qBACA,WACA,SACA,YAGD,0CACC,WACA,cACA,sBAGD,wCACC,4BAGD,wCACC,wBAGD,yBACC,kBACA,kBACA,iBACA,cACA,cAGD,wBACC,WACA,gBACA,qBACA,WACA,kBACA,wBACA,4BAGD,uBACC,mBACA,uBACA,gBAGD,uBACC,eACA,iBACA,mBAGD,0BACC,wBACA,qBACA,cACA,cAGD,2BACC,oCAGD,8BACC,mBACA,aACA,aAGD,mCACC,sBAGD,yBACC,WAGD,oBACC,kBACA,MACA,QACA,WACA,UACA,WACA,YCxHD,iBACE,uBACA,qBACA,YACA,YAGF,mBACE,sBAGF,0BACE,iBACA,uBAGF,6BACE,kBACA,QAGF,wBACE","file":"merged.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss","upload.scss","mobile.scss","detailsView.scss","../../../core/css/whatsnew.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,4CAGD,mBACC,kBACA,aACA,SACA,4CACC,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAGD,6FACC,uDAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,uDAID,gBCtEC,yCDyED,iBCzEC,yCD4ED,oBC5EC,0CD+ED,yFC/EC,wCDqFD,uBCrFC,yCDwFD,2BCxFC,2CD2FD,mBC3FC,yCD8FD,2BC9FC,4CDiGD,wBCjGC,0CDoGD,4BCpGC,4CDwGD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,4CAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAID,+BACC,iBACA,aACA,uBACA,mBACA,cACA,kCACA,gBAEA,iDACC,iBACA,iBACA,wCACA,iCACA,oCACA,uBACA,mBACA,gBACA,uBACA,iBACA,kBAEA,uDACC,iBACA,sBAID,mEACC,gBAOL,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,iDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAGD,qCACC,wCAID,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,QA1EK,KA2EL,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAKF,8EACC,aAGD,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QAzJK,KA0JL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WACA,YACA,WACA,yBAEA,kJACC,WACA,YACA,oBACA,QA7NO,KA8NP,kKACC,SACA,MAhOM,KAiON,OAjOM,KAuOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,2DASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA,cEn1CF,QACC,sBACA,YACA,WACA,qBACA,gBACA,gBACA,mBACA,kBACA,YAED,qBACC,kBACA,cACA,WACA,YACA,WACA,iBACA,eACA,WACA,YAED,iCACA,+FAEA,gDACC,sBAGD,uBACC,qBACA,mBACA,YACA,gBAED,0CACC,YACA,gBAED,mBACC,sCACA,sEACA,eACA,kBACA,WACA,YACA,YACA,qBACA,kBAEA,yCACC,gBAGF,yEACC,wBACA,SACA,UACA,kBACA,gBACA,sCAED,0BACC,QACA,UACA,gBACA,mBACA,mBAED,gCACC,gCACA,kBACA,cACA,YAED,gCACC,kBACA,6BAED,4BACC,cAED,2BACC,aAGD,yBACC,yBACA,4BAGD,uBACC,2BACA,yBACA,wBACA,sBACA,qBACA,iBACA,mBAGD,0HAGC,8BACA,4BACA,2BACA,yBACA,wBACA,oBAED,0CACC,cAED,6BACC,WAED,0BACC,eACA,gBAED,+CACC,iBAED,sCACC,YAED,gCACC,mBACA,6BAED,iCACC,gBAED,4CACC,aAED,iCACC,WACA,YAED,2CACC,WACA,qBACA,WAED,6BACC,WACA,YACA,uBACA,4BACA,0BACA,WAGD,qEAEC,WACA,UAED,kCACC,gBACA,iBAED,sDACC,WAED,sCACC,YAED,iCACC,sBACA,kBACA,SAED,sCACC,sBAGD,gCACC,WACA,iBAEA,wCACC,WAIF,mBACC,0CACA,uCACA,qCACA,kCAGD,sCACE,4BACA,qCAEF,mCACE,4BACA,qCAEF,iCACE,4BACA,qCAEF,8BACE,4BACA,qCC3MF,oGAEA,iCACC,iCAGD,2EAIC,aAID,SACC,UAID,wBACC,eAGD,mCACC,eAGD,2BACC,iBAID,sDACC,kBACA,cACA,SACA,UACA,WACA,gBAID,gCACC,aAKD,mDACC,WAGD,4BACC,wBAED,2BACC,yBAID,iBACC,cAID,0CAEC,0BACC,YAED,4CACC,aAID,4BACC,kBAID,uCACC,eCvFF,sCACC,gBACA,aAGD,0CACC,WAID,qCACC,qBACA,0BAGD,0CACC,iBACA,mBACA,WAEA,gGAEC,UAGF,sDACC,WACA,UAGD,uCACC,kBACA,mBACA,iBAGD,gDACC,SAGD,+BACC,WACA,cACA,4BACA,2BACA,qBACA,WACA,SACA,YAGD,0CACC,WACA,cACA,sBAGD,wCACC,4BAGD,wCACC,wBAGD,yBACC,kBACA,kBACA,iBACA,cACA,cAGD,wBACC,WACA,gBACA,qBACA,WACA,kBACA,wBACA,4BAGD,uBACC,mBACA,uBACA,gBAGD,uBACC,eACA,iBACA,mBAGD,0BACC,wBACA,qBACA,cACA,cAGD,2BACC,oCAGD,8BACC,mBACA,aACA,aAGD,mCACC,sBAGD,yBACC,WAGD,oBACC,kBACA,MACA,QACA,WACA,UACA,WACA,YCxHD,iBACE,uBACA,qBACA,YACA,YAGF,mBACE,sBAGF,0BACE,iBACA,uBAGF,6BACE,kBACA,QAGF,wBACE","file":"merged.css"} \ No newline at end of file
diff --git a/apps/files/css/mobile.css b/apps/files/css/mobile.css
index 4074fe59147..b6634703e8d 100644
--- a/apps/files/css/mobile.css
+++ b/apps/files/css/mobile.css
@@ -1 +1 @@
-@media only screen and (max-width: 988px)and (min-width: 1025px),only screen and (max-width: 688px){.app-files #app-content.dir-drop{background-color:#fff !important}table th.column-size,table td.filesize,table th.column-mtime,table td.date{display:none}table td{padding:0}table.multiselect thead{padding-left:0}.fileList a.action.action-menu img{padding-left:0}.fileList .fileActionsMenu{margin-right:6px}.fileList a.action-share span:not(.icon):not(.avatar){position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}#uploadprogressbar,#uploadprogressbar .label.inner{width:50px}#uploadprogressbar .desktop{display:none !important}#uploadprogressbar .mobile{display:block !important}table.dragshadow{z-index:1000}}@media only screen and (max-width: 480px){table th .selectedActions{float:right}table th .selectedActions>a span:not(.icon){display:none}table th .selectedActions a{padding:17px 14px}table.multiselect th .columntitle.name{margin-left:0}}/*# sourceMappingURL=mobile.css.map */
+@media only screen and (max-width: 988px)and (min-width: 1025px),only screen and (max-width: 688px){.app-files #app-content.dir-drop{background-color:#fff !important}table th.column-size,table td.filesize,table th.column-mtime,table td.date{display:none}table td{padding:0}table.multiselect thead{padding-left:0}.fileList a.action.action-menu img{padding-left:0}.fileList .fileActionsMenu{margin-right:6px}.fileList a.action-share span:not(.icon):not(.avatar){position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}td.filename a.name .system-tags{display:none}#uploadprogressbar,#uploadprogressbar .label.inner{width:50px}#uploadprogressbar .desktop{display:none !important}#uploadprogressbar .mobile{display:block !important}table.dragshadow{z-index:1000}}@media only screen and (max-width: 480px){table th .selectedActions{float:right}table th .selectedActions>a span:not(.icon){display:none}table th .selectedActions a{padding:17px 14px}table.multiselect th .columntitle.name{margin-left:0}}/*# sourceMappingURL=mobile.css.map */
diff --git a/apps/files/css/mobile.css.map b/apps/files/css/mobile.css.map
index 7437b1cd034..231d7d9890d 100644
--- a/apps/files/css/mobile.css.map
+++ b/apps/files/css/mobile.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["mobile.scss"],"names":[],"mappings":"AAMA,oGAEA,iCACC,iCAGD,2EAIC,aAID,SACC,UAID,wBACC,eAGD,mCACC,eAGD,2BACC,iBAID,sDACC,kBACA,cACA,SACA,UACA,WACA,gBAKD,mDACC,WAGD,4BACC,wBAED,2BACC,yBAID,iBACC,cAID,0CAEC,0BACC,YAED,4CACC,aAID,4BACC,kBAID,uCACC","file":"mobile.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["mobile.scss"],"names":[],"mappings":"AAMA,oGAEA,iCACC,iCAGD,2EAIC,aAID,SACC,UAID,wBACC,eAGD,mCACC,eAGD,2BACC,iBAID,sDACC,kBACA,cACA,SACA,UACA,WACA,gBAID,gCACC,aAKD,mDACC,WAGD,4BACC,wBAED,2BACC,yBAID,iBACC,cAID,0CAEC,0BACC,YAED,4CACC,aAID,4BACC,kBAID,uCACC","file":"mobile.css"} \ No newline at end of file
diff --git a/apps/files/css/mobile.scss b/apps/files/css/mobile.scss
index ffaf5c68965..ee451f6d099 100644
--- a/apps/files/css/mobile.scss
+++ b/apps/files/css/mobile.scss
@@ -45,6 +45,11 @@ table.multiselect thead {
overflow: hidden;
}
+// Hide system tags on mobile
+td.filename a.name .system-tags {
+ display: none;
+}
+
/* shorten elements for mobile */
#uploadprogressbar, #uploadprogressbar .label.inner {
diff --git a/apps/files/js/merged-index.json b/apps/files/js/merged-index.json
index 01a46958d8b..2b7d6ec7d6d 100644
--- a/apps/files/js/merged-index.json
+++ b/apps/files/js/merged-index.json
@@ -27,5 +27,6 @@
"sidebarpreviewmanager.js",
"sidebarpreviewtext.js",
"tagsplugin.js",
+ "systemtagsplugin.js",
"templates.js"
]
diff --git a/apps/files/js/systemtagsplugin.js b/apps/files/js/systemtagsplugin.js
new file mode 100644
index 00000000000..f92e6879a3f
--- /dev/null
+++ b/apps/files/js/systemtagsplugin.js
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+/* global Handlebars */
+
+(function (OCA) {
+
+ _.extend(OC.Files.Client, {
+ PROPERTY_SYSTEM_TAGS: '{' + OC.Files.Client.NS_NEXTCLOUD + '}system-tags',
+ });
+
+ OCA.Files = OCA.Files || {};
+
+ /**
+ * Extends the file actions and file list to add system tags inline
+ *
+ * @namespace OCA.Files.SystemTagsPlugin
+ */
+ OCA.Files.SystemTagsPlugin = {
+ name: 'SystemTags',
+
+ allowedLists: [
+ 'files',
+ 'favorites',
+ 'shares.self',
+ 'shares.others',
+ 'shares.link'
+ ],
+
+ _buildTagSpan: function(tag, isMore = false) {
+ var $tag = $('<li class="system-tags__tag"></li>');
+ $tag.text(tag).addClass(isMore ? 'system-tags__tag--more' : '');
+ return $tag;
+ },
+
+ _buildTagsUI: function(tags) {
+ $systemTags = $('<ul class="system-tags"></ul>');
+ if (tags.length === 1) {
+ $systemTags.attr('aria-label', t('files', 'This file has the tag {tag}', { tag: tags[0] }));
+ } else if (tags.length > 1) {
+ var firstTags = tags.slice(0, -1).join(', ');
+ var lastTag = tags[tags.length - 1];
+ $systemTags.attr('aria-label', t('files', 'This file has the tags {firstTags} and {lastTag}', { firstTags, lastTag }));
+ }
+
+ if (tags.length > 0) {
+ $systemTags.append(this._buildTagSpan(tags[0]));
+ }
+
+ // More tags than the one we're showing
+ if (tags.length > 1) {
+ $moreTag = this._buildTagSpan('+' + (tags.length - 1), true)
+ $moreTag.attr('title', tags.slice(1).join(', '));
+ $systemTags.append($moreTag);
+ }
+
+ return $systemTags;
+ },
+
+ _extendFileList: function(fileList) {
+ var self = this;
+
+ // extend row prototype
+ var oldCreateRow = fileList._createRow;
+ fileList._createRow = function(fileData) {
+ var $tr = oldCreateRow.apply(this, arguments);
+ var systemTags = fileData.systemTags || [];
+
+ // Update tr data list
+ $tr.attr('data-systemTags', systemTags.join('|'));
+
+ // No tags, no need to do anything
+ if (systemTags.length === 0) {
+ return $tr;
+ }
+
+ // Build tags ui and inject
+ $systemTags = self._buildTagsUI.apply(self, [systemTags])
+ $systemTags.insertAfter($tr.find('td.filename .nametext'));
+ return $tr;
+ };
+
+ var oldElementToFile = fileList.elementToFile;
+ fileList.elementToFile = function ($el) {
+ var fileInfo = oldElementToFile.apply(this, arguments);
+ var systemTags = $el.attr('data-systemTags');
+ fileInfo.systemTags = systemTags?.split?.('|') || [];
+ return fileInfo;
+ };
+
+ var oldGetWebdavProperties = fileList._getWebdavProperties;
+ fileList._getWebdavProperties = function () {
+ var props = oldGetWebdavProperties.apply(this, arguments);
+ props.push(OC.Files.Client.PROPERTY_SYSTEM_TAGS);
+ return props;
+ };
+
+ fileList.filesClient.addFileInfoParser(function (response) {
+ var data = {};
+ var props = response.propStat[0].properties;
+ var systemTags = props[OC.Files.Client.PROPERTY_SYSTEM_TAGS] || [];
+ if (systemTags && systemTags.length) {
+ data.systemTags = systemTags
+ .filter(xmlvalue => xmlvalue.namespaceURI === OC.Files.Client.NS_NEXTCLOUD && xmlvalue.nodeName.split(':')[1] === 'system-tag')
+ .map(xmlvalue => xmlvalue.textContent || xmlvalue.text);
+ }
+ return data;
+ });
+ },
+
+ attach: function(fileList) {
+ if (this.allowedLists.indexOf(fileList.id) < 0) {
+ return;
+ }
+ this._extendFileList(fileList);
+ },
+ };
+})
+(OCA);
+
+OC.Plugins.register('OCA.Files.FileList', OCA.Files.SystemTagsPlugin);
diff --git a/build/integration/features/contacts-menu.feature b/build/integration/features/contacts-menu.feature
index 845d4d35925..b8e2f7b30c5 100644
--- a/build/integration/features/contacts-menu.feature
+++ b/build/integration/features/contacts-menu.feature
@@ -100,10 +100,11 @@ Feature: contacts-menu
And Sending a "PUT" to "/settings/users/user2/settings" with requesttoken
| email | another_test@example.com |
| emailScope | contacts |
- When Logging in using web as "user0"
- And searching for contacts matching with "test"
- Then the list of searched contacts has "1" contacts
- And searched contact "0" is named "user2"
+ # Disabled because it regularly breaks on drone:
+ # When Logging in using web as "user0"
+ # And searching for contacts matching with "test"
+ # Then the list of searched contacts has "1" contacts
+ # And searched contact "0" is named "user2"
Scenario: users can be found by other properties if the visibility of one is private
Given user "user0" exists
@@ -152,10 +153,11 @@ Feature: contacts-menu
| emailScope | private |
And Sending a "PUT" to "/settings/users/user1/settings" with requesttoken
| emailScope | contacts |
- When Logging in using web as "user0"
- And searching for contacts matching with "test"
- Then the list of searched contacts has "1" contacts
- And searched contact "0" is named "user1"
+ # Disabled because it regularly fails on drone:
+ # When Logging in using web as "user0"
+ # And searching for contacts matching with "test"
+ # Then the list of searched contacts has "1" contacts
+ # And searched contact "0" is named "user1"
diff --git a/build/psalm-baseline-ocp.xml b/build/psalm-baseline-ocp.xml
index e993e85e5a2..21a2ce27001 100644
--- a/build/psalm-baseline-ocp.xml
+++ b/build/psalm-baseline-ocp.xml
@@ -1,130 +1,152 @@
<?xml version="1.0" encoding="UTF-8"?>
-<files psalm-version="4.30.0@d0bc6e25d89f649e4f36a534f330f8bb4643dd69">
+<files psalm-version="5.9.0@8b9ad1eb9e8b7d3101f949291da2b9f7767cd163">
<file src="lib/private/legacy/OC_Template.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>OC</code>
</UndefinedClass>
</file>
<file src="lib/public/AppFramework/ApiController.php">
- <NoInterfaceProperties occurrences="1">
- <code>$this-&gt;request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->server]]></code>
</NoInterfaceProperties>
</file>
<file src="lib/public/AppFramework/App.php">
- <InternalMethod occurrences="1">
- <code>new RouteConfig($this-&gt;container, $router, $routes)</code>
+ <InternalMethod>
+ <code><![CDATA[new RouteConfig($this->container, $router, $routes)]]></code>
</InternalMethod>
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/AppFramework/Db/Entity.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>string</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>$column</code>
</NullableReturnStatement>
</file>
<file src="lib/public/AppFramework/Http/JSONResponse.php">
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;data</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->data]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>array</code>
</InvalidReturnType>
</file>
<file src="lib/public/AppFramework/Http/RedirectToDefaultAppResponse.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/AppFramework/Http/Response.php">
- <UndefinedClass occurrences="2">
+ <UndefinedClass>
<code>\OC</code>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/BackgroundJob/TimedJob.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
+ <code>$jobList</code>
<code>$jobList</code>
</MoreSpecificImplementedParamType>
</file>
+ <file src="lib/public/Cache/CappedMemoryCache.php">
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/public/Defaults.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Diagnostics/IQueryLogger.php">
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
<code>mixed</code>
</LessSpecificImplementedReturnType>
</file>
+ <file src="lib/public/EventDispatcher/GenericEvent.php">
+ <MissingTemplateParam>
+ <code>ArrayAccess</code>
+ <code>IteratorAggregate</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/public/Federation/Exceptions/ActionNotSupportedException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Federation/Exceptions/AuthenticationFailedException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Federation/Exceptions/BadRequestException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Federation/Exceptions/ProviderAlreadyExistsException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Federation/Exceptions/ProviderDoesNotExistsException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Files.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>\OC_App::getStorage($app)</code>
</FalsableReturnStatement>
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
+ <file src="lib/public/Files/Cache/ICacheEntry.php">
+ <MissingTemplateParam>
+ <code>ArrayAccess</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/public/Files/LockNotAcquiredException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Files/StorageAuthException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Files/StorageBadConfigException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Files/StorageConnectionException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Files/StorageNotAvailableException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
<file src="lib/public/Files/StorageTimeoutException.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OC</code>
</UndefinedClass>
</file>
+ <file src="lib/public/L10N/ILanguageIterator.php">
+ <MissingTemplateParam>
+ <code>\Iterator</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/public/Template.php">
- <UndefinedFunction occurrences="7">
+ <UndefinedFunction>
<code>\html_select_options($options, $selected, $params)</code>
<code>\human_file_size($bytes)</code>
<code>\image_path($app, $image)</code>
@@ -135,7 +157,7 @@
</UndefinedFunction>
</file>
<file src="lib/public/Util.php">
- <UndefinedClass occurrences="14">
+ <UndefinedClass>
<code>\OC</code>
<code>\OC</code>
<code>\OC</code>
diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml
index 88720fa5b0c..ac20e6ffbad 100644
--- a/build/psalm-baseline.xml
+++ b/build/psalm-baseline.xml
@@ -1,222 +1,348 @@
<?xml version="1.0" encoding="UTF-8"?>
-<files psalm-version="4.30.0@d0bc6e25d89f649e4f36a534f330f8bb4643dd69">
+<files psalm-version="5.9.0@8b9ad1eb9e8b7d3101f949291da2b9f7767cd163">
<file src="3rdparty/sabre/dav/lib/CalDAV/Calendar.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$calendarData</code>
</MoreSpecificImplementedParamType>
</file>
<file src="3rdparty/sabre/dav/lib/CalDAV/CalendarHome.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$data</code>
</MoreSpecificImplementedParamType>
</file>
<file src="3rdparty/sabre/dav/lib/CalDAV/Principal/User.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$data</code>
</MoreSpecificImplementedParamType>
</file>
<file src="3rdparty/sabre/dav/lib/CardDAV/AddressBook.php">
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
<code>array</code>
</LessSpecificImplementedReturnType>
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$vcardData</code>
</MoreSpecificImplementedParamType>
</file>
<file src="3rdparty/sabre/dav/lib/CardDAV/AddressBookHome.php">
- <InvalidPropertyAssignmentValue occurrences="1">
+ <InvalidPropertyAssignmentValue>
<code>$principalUri</code>
</InvalidPropertyAssignmentValue>
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$data</code>
</MoreSpecificImplementedParamType>
</file>
<file src="3rdparty/sabre/dav/lib/DAVACL/AbstractPrincipalCollection.php">
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
<code>array</code>
</LessSpecificImplementedReturnType>
</file>
+ <file src="apps/admin_audit/lib/Listener/CriticalActionPerformedEventListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/cloud_federation_api/lib/Controller/RequestHandlerController.php">
- <TypeDoesNotContainType occurrences="1">
+ <TypeDoesNotContainType>
<code>!is_array($notification)</code>
</TypeDoesNotContainType>
</file>
+ <file src="apps/comments/lib/Listener/CommentsEntityEventListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/comments/lib/Listener/LoadAdditionalScripts.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/comments/lib/Listener/LoadSidebarScripts.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/comments/lib/Search/Result.php">
- <InvalidScalarArgument occurrences="1">
- <code>(int) $comment-&gt;getId()</code>
- </InvalidScalarArgument>
+ <InvalidArgument>
+ <code><![CDATA[(int) $comment->getId()]]></code>
+ </InvalidArgument>
+ </file>
+ <file src="apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
</file>
<file src="apps/dav/appinfo/v1/caldav.php">
- <UndefinedGlobalVariable occurrences="1">
+ <UndefinedGlobalVariable>
<code>$baseuri</code>
</UndefinedGlobalVariable>
</file>
<file src="apps/dav/appinfo/v1/carddav.php">
- <UndefinedGlobalVariable occurrences="1">
+ <UndefinedGlobalVariable>
<code>$baseuri</code>
</UndefinedGlobalVariable>
</file>
<file src="apps/dav/appinfo/v1/publicwebdav.php">
- <InternalMethod occurrences="2">
+ <InternalMethod>
<code>\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper($previousLog)</code>
<code>\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(false)</code>
</InternalMethod>
- <UndefinedGlobalVariable occurrences="1">
+ <UndefinedGlobalVariable>
<code>$baseuri</code>
</UndefinedGlobalVariable>
</file>
<file src="apps/dav/appinfo/v1/webdav.php">
- <InvalidArgument occurrences="1">
- <code>'OCA\DAV\Connector\Sabre::addPlugin'</code>
+ <InvalidArgument>
+ <code><![CDATA['OCA\DAV\Connector\Sabre::addPlugin']]></code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
- <UndefinedGlobalVariable occurrences="1">
+ <UndefinedGlobalVariable>
<code>$baseuri</code>
</UndefinedGlobalVariable>
</file>
<file src="apps/dav/appinfo/v2/direct.php">
- <UndefinedGlobalVariable occurrences="1">
+ <UndefinedGlobalVariable>
<code>$baseuri</code>
</UndefinedGlobalVariable>
</file>
<file src="apps/dav/appinfo/v2/remote.php">
- <UndefinedGlobalVariable occurrences="1">
+ <UndefinedGlobalVariable>
<code>$baseuri</code>
</UndefinedGlobalVariable>
</file>
<file src="apps/dav/lib/AppInfo/Application.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>CalendarDeletionDefaultUpdaterListener::class</code>
</InvalidArgument>
</file>
<file src="apps/dav/lib/CalDAV/BirthdayService.php">
- <UndefinedMethod occurrences="2">
+ <UndefinedMethod>
<code>setDateTime</code>
<code>setDateTime</code>
</UndefinedMethod>
- <UndefinedPropertyFetch occurrences="4">
- <code>$existingBirthday-&gt;VEVENT-&gt;DTSTART</code>
- <code>$existingBirthday-&gt;VEVENT-&gt;SUMMARY</code>
- <code>$newCalendarData-&gt;VEVENT-&gt;DTSTART</code>
- <code>$newCalendarData-&gt;VEVENT-&gt;SUMMARY</code>
+ <UndefinedPropertyFetch>
+ <code><![CDATA[$existingBirthday->VEVENT->DTSTART]]></code>
+ <code><![CDATA[$existingBirthday->VEVENT->SUMMARY]]></code>
+ <code><![CDATA[$newCalendarData->VEVENT->DTSTART]]></code>
+ <code><![CDATA[$newCalendarData->VEVENT->SUMMARY]]></code>
</UndefinedPropertyFetch>
</file>
<file src="apps/dav/lib/CalDAV/CachedSubscription.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$calendarData</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/CalDAV/CachedSubscriptionObject.php">
- <NullableReturnStatement occurrences="1">
- <code>$this-&gt;objectData['calendardata']</code>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->objectData['calendardata']]]></code>
</NullableReturnStatement>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
+ <code>$calendarData</code>
<code>$calendarData</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/CalDAV/CalDavBackend.php">
- <InvalidNullableReturnType occurrences="2">
+ <InvalidNullableReturnType>
<code>array</code>
<code>array</code>
</InvalidNullableReturnType>
- <MoreSpecificImplementedParamType occurrences="2">
+ <MoreSpecificImplementedParamType>
<code>$objectData</code>
<code>$uris</code>
+ <code>$uris</code>
</MoreSpecificImplementedParamType>
- <NullableReturnStatement occurrences="2">
+ <NullableReturnStatement>
+ <code><![CDATA[$this->atomic(function () use ($calendarId, $syncToken, $syncLevel, $limit, $calendarType) {
+ // Current synctoken
+ $qb = $this->db->getQueryBuilder();
+ $qb->select('synctoken')
+ ->from('calendars')
+ ->where(
+ $qb->expr()->eq('id', $qb->createNamedParameter($calendarId))
+ );
+ $stmt = $qb->executeQuery();
+ $currentToken = $stmt->fetchOne();
+
+ if ($currentToken === false) {
+ return null;
+ }
+
+ $result = [
+ 'syncToken' => $currentToken,
+ 'added' => [],
+ 'modified' => [],
+ 'deleted' => [],
+ ];
+
+ if ($syncToken) {
+ $qb = $this->db->getQueryBuilder();
+
+ $qb->select('uri', 'operation')
+ ->from('calendarchanges')
+ ->where(
+ $qb->expr()->andX(
+ $qb->expr()->gte('synctoken', $qb->createNamedParameter($syncToken)),
+ $qb->expr()->lt('synctoken', $qb->createNamedParameter($currentToken)),
+ $qb->expr()->eq('calendarid', $qb->createNamedParameter($calendarId)),
+ $qb->expr()->eq('calendartype', $qb->createNamedParameter($calendarType))
+ )
+ )->orderBy('synctoken');
+ if (is_int($limit) && $limit > 0) {
+ $qb->setMaxResults($limit);
+ }
+
+ // Fetching all changes
+ $stmt = $qb->executeQuery();
+ $changes = [];
+
+ // This loop ensures that any duplicates are overwritten, only the
+ // last change on a node is relevant.
+ while ($row = $stmt->fetch()) {
+ $changes[$row['uri']] = $row['operation'];
+ }
+ $stmt->closeCursor();
+
+ foreach ($changes as $uri => $operation) {
+ switch ($operation) {
+ case 1:
+ $result['added'][] = $uri;
+ break;
+ case 2:
+ $result['modified'][] = $uri;
+ break;
+ case 3:
+ $result['deleted'][] = $uri;
+ break;
+ }
+ }
+ } else {
+ // No synctoken supplied, this is the initial sync.
+ $qb = $this->db->getQueryBuilder();
+ $qb->select('uri')
+ ->from('calendarobjects')
+ ->where(
+ $qb->expr()->andX(
+ $qb->expr()->eq('calendarid', $qb->createNamedParameter($calendarId)),
+ $qb->expr()->eq('calendartype', $qb->createNamedParameter($calendarType))
+ )
+ );
+ $stmt = $qb->executeQuery();
+ $result['added'] = $stmt->fetchAll(\PDO::FETCH_COLUMN);
+ $stmt->closeCursor();
+ }
+ return $result;
+ }, $this->db)]]></code>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="apps/dav/lib/CalDAV/CalendarHome.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>INode</code>
</InvalidNullableReturnType>
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
<code>INode</code>
</LessSpecificImplementedReturnType>
- <NullableReturnStatement occurrences="1">
- <code>$calendarPlugin-&gt;getCalendarInCalendarHome($this-&gt;principalInfo['uri'], $calendarUri)</code>
+ <NullableReturnStatement>
+ <code><![CDATA[$calendarPlugin->getCalendarInCalendarHome($this->principalInfo['uri'], $calendarUri)]]></code>
</NullableReturnStatement>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>calendarSearch</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/dav/lib/CalDAV/CalendarRoot.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$principal</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/CalDAV/Plugin.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>string|null</code>
</ImplementedReturnTypeMismatch>
</file>
<file src="apps/dav/lib/CalDAV/Principal/Collection.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$principalInfo</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/CalDAV/PublicCalendar.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$paths</code>
</MoreSpecificImplementedParamType>
</file>
<file src="apps/dav/lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php">
- <UndefinedMethod occurrences="3">
+ <UndefinedMethod>
<code>hasTime</code>
<code>isFloating</code>
<code>isFloating</code>
</UndefinedMethod>
</file>
<file src="apps/dav/lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php">
- <UndefinedMethod occurrences="3">
+ <UndefinedMethod>
<code>getDateTime</code>
<code>getDateTime</code>
<code>isFloating</code>
</UndefinedMethod>
</file>
<file src="apps/dav/lib/CalDAV/Reminder/NotificationProviderManager.php">
- <UndefinedConstant occurrences="1">
+ <UndefinedConstant>
<code>$provider::NOTIFICATION_TYPE</code>
</UndefinedConstant>
</file>
+ <file src="apps/dav/lib/CalDAV/Reminder/Notifier.php">
+ <TypeDoesNotContainType>
+ <code>$diff === false</code>
+ </TypeDoesNotContainType>
+ </file>
<file src="apps/dav/lib/CalDAV/Reminder/ReminderService.php">
- <UndefinedMethod occurrences="3">
- <code>getDateInterval</code>
+ <UndefinedMethod>
<code>getDateTime</code>
<code>getDateTime</code>
</UndefinedMethod>
- <UndefinedPropertyFetch occurrences="1">
- <code>$valarm-&gt;parent-&gt;UID</code>
+ <UndefinedPropertyFetch>
+ <code><![CDATA[$valarm->parent->UID]]></code>
</UndefinedPropertyFetch>
</file>
<file src="apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>array</code>
</InvalidNullableReturnType>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$principals</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string[]</code>
</InvalidReturnType>
- <NullableReturnStatement occurrences="2">
+ <NullableReturnStatement>
<code>null</code>
<code>null</code>
</NullableReturnStatement>
</file>
+ <file src="apps/dav/lib/CalDAV/Schedule/IMipPlugin.php">
+ <RedundantCast>
+ <code><![CDATA[(string)$iTipMessage->recipientName]]></code>
+ </RedundantCast>
+ <RedundantCondition>
+ <code><![CDATA[!empty($modified['old']) && is_array($modified['old'])]]></code>
+ <code><![CDATA[is_array($modified['old'])]]></code>
+ </RedundantCondition>
+ </file>
+ <file src="apps/dav/lib/CalDAV/Schedule/IMipService.php">
+ <UndefinedMethod>
+ <code>getNormalizedValue</code>
+ <code>getNormalizedValue</code>
+ </UndefinedMethod>
+ </file>
<file src="apps/dav/lib/CalDAV/Schedule/Plugin.php">
- <InvalidArgument occurrences="2">
- <code>[$aclPlugin, 'propFind']</code>
- <code>[$aclPlugin, 'propFind']</code>
+ <InvalidArgument>
+ <code><![CDATA[[$aclPlugin, 'propFind']]]></code>
+ <code><![CDATA[[$aclPlugin, 'propFind']]]></code>
</InvalidArgument>
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>get</code>
<code>getChildren</code>
</UndefinedInterfaceMethod>
- <UndefinedMethod occurrences="5">
+ <UndefinedMethod>
<code>getDateTime</code>
<code>hasTime</code>
<code>isFloating</code>
@@ -225,186 +351,206 @@
</UndefinedMethod>
</file>
<file src="apps/dav/lib/CalDAV/Search/SearchPlugin.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>bool</code>
</InvalidNullableReturnType>
</file>
<file src="apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php">
- <InvalidReturnStatement occurrences="1"/>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnStatement>
+ <code><![CDATA[[
+ 'property' => $property,
+ 'parameter' => $parameter,
+ ]]]></code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
<code>string</code>
</InvalidReturnType>
</file>
<file src="apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php">
- <TypeDoesNotContainType occurrences="3">
- <code>!is_array($newProps['filters']['comps'])</code>
- <code>!is_array($newProps['filters']['params'])</code>
- <code>!is_array($newProps['filters']['props'])</code>
+ <TypeDoesNotContainType>
+ <code><![CDATA[!is_array($newProps['filters']['comps'])]]></code>
+ <code><![CDATA[!is_array($newProps['filters']['params'])]]></code>
+ <code><![CDATA[!is_array($newProps['filters']['props'])]]></code>
+ <code><![CDATA[!isset($newProps['filters']['comps']) || !is_array($newProps['filters']['comps'])]]></code>
+ <code><![CDATA[!isset($newProps['filters']['params']) || !is_array($newProps['filters']['params'])]]></code>
+ <code><![CDATA[!isset($newProps['filters']['props']) || !is_array($newProps['filters']['props'])]]></code>
</TypeDoesNotContainType>
</file>
<file src="apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$webcalData</code>
</InvalidArgument>
</file>
<file src="apps/dav/lib/CardDAV/AddressBookImpl.php">
- <InvalidScalarArgument occurrences="2">
- <code>$this-&gt;getKey()</code>
- <code>$this-&gt;getKey()</code>
- </InvalidScalarArgument>
+ <InvalidArgument>
+ <code><![CDATA[$this->getKey()]]></code>
+ <code><![CDATA[$this->getKey()]]></code>
+ </InvalidArgument>
</file>
<file src="apps/dav/lib/CardDAV/AddressBookRoot.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$principal</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/CardDAV/CardDavBackend.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>false</code>
</FalsableReturnStatement>
- <TypeDoesNotContainType occurrences="1">
- <code>$addressBooks[$row['id']][$readOnlyPropertyName] === 0</code>
+ <TypeDoesNotContainType>
+ <code><![CDATA[$addressBooks[$row['id']][$readOnlyPropertyName] === 0]]></code>
</TypeDoesNotContainType>
</file>
<file src="apps/dav/lib/CardDAV/MultiGetExportPlugin.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>bool</code>
</InvalidNullableReturnType>
</file>
<file src="apps/dav/lib/CardDAV/PhotoCache.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>string</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>$type</code>
</NullableReturnStatement>
</file>
<file src="apps/dav/lib/CardDAV/Plugin.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>string|null</code>
</ImplementedReturnTypeMismatch>
</file>
<file src="apps/dav/lib/CardDAV/UserAddressBooks.php">
- <InvalidArgument occurrences="2">
- <code>$this-&gt;principalUri</code>
- <code>$this-&gt;principalUri</code>
+ <InvalidArgument>
+ <code><![CDATA[$this->principalUri]]></code>
+ <code><![CDATA[$this->principalUri]]></code>
</InvalidArgument>
</file>
<file src="apps/dav/lib/CardDAV/Xml/Groups.php">
- <InvalidPropertyAssignmentValue occurrences="1">
+ <InvalidPropertyAssignmentValue>
<code>$groups</code>
</InvalidPropertyAssignmentValue>
</file>
<file src="apps/dav/lib/Comments/CommentNode.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>int</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="apps/dav/lib/Comments/CommentsPlugin.php">
- <InvalidScalarArgument occurrences="2">
- <code>$args['datetime']</code>
+ <InvalidArgument>
<code>200</code>
+ </InvalidArgument>
+ <InvalidScalarArgument>
+ <code><![CDATA[$args['datetime']]]></code>
</InvalidScalarArgument>
- <UndefinedFunction occurrences="1">
+ <UndefinedFunction>
<code>\Sabre\HTTP\toDate($value)</code>
</UndefinedFunction>
</file>
+ <file src="apps/dav/lib/Comments/EntityTypeCollection.php">
+ <TypeDoesNotContainType>
+ <code>!is_string($name)</code>
+ </TypeDoesNotContainType>
+ </file>
<file src="apps/dav/lib/Comments/RootCollection.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>CommentsEntityEvent::EVENT_ENTITY</code>
</InvalidArgument>
- <InvalidNullableReturnType occurrences="2">
+ <InvalidNullableReturnType>
<code>\Sabre\DAV\INode[]</code>
<code>int</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="2">
- <code>$this-&gt;entityTypeCollections</code>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->entityTypeCollections]]></code>
<code>null</code>
</NullableReturnStatement>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>bool</code>
</InvalidNullableReturnType>
</file>
<file src="apps/dav/lib/Connector/Sabre/BearerAuth.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>tryTokenLogin</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/dav/lib/Connector/Sabre/Directory.php">
- <InvalidPropertyAssignmentValue occurrences="1">
+ <InvalidPropertyAssignmentValue>
<code>$nodes</code>
</InvalidPropertyAssignmentValue>
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;dirContent</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->dirContent]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>\Sabre\DAV\INode[]</code>
</InvalidReturnType>
- <NullArgument occurrences="3">
+ <NullArgument>
<code>null</code>
<code>null</code>
<code>null</code>
</NullArgument>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$fullSourcePath</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/Connector/Sabre/File.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$data</code>
</MoreSpecificImplementedParamType>
</file>
<file src="apps/dav/lib/Connector/Sabre/FilesReportPlugin.php">
- <InvalidNullableReturnType occurrences="1">
- <code>bool</code>
- </InvalidNullableReturnType>
- <InvalidScalarArgument occurrences="2">
+ <InvalidArgument>
<code>0</code>
<code>200</code>
- </InvalidScalarArgument>
- <NullableReturnStatement occurrences="1">
+ </InvalidArgument>
+ <InvalidNullableReturnType>
+ <code>bool</code>
+ </InvalidNullableReturnType>
+ <NullableReturnStatement>
<code>$resultFileIds</code>
</NullableReturnStatement>
- <TooManyArguments occurrences="1">
- <code>new PreconditionFailed('Cannot filter by non-existing tag', 0, $e)</code>
+ <TooManyArguments>
+ <code><![CDATA[new PreconditionFailed('Cannot filter by non-existing tag', 0, $e)]]></code>
</TooManyArguments>
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OCA\Circles\Api\v1\Circles</code>
</UndefinedClass>
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>getById</code>
<code>getPath</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/dav/lib/Connector/Sabre/Node.php">
- <InvalidNullableReturnType occurrences="2">
+ <InvalidNullableReturnType>
<code>int</code>
<code>integer</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="2">
- <code>$this-&gt;info-&gt;getId()</code>
- <code>$this-&gt;info-&gt;getId()</code>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->info->getId()]]></code>
+ <code><![CDATA[$this->info->getId()]]></code>
</NullableReturnStatement>
</file>
<file src="apps/dav/lib/Connector/Sabre/Principal.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>array</code>
</InvalidNullableReturnType>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$principals</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string[]</code>
</InvalidReturnType>
- <NullableReturnStatement occurrences="8">
+ <InvalidScalarArgument>
+ <code>$results</code>
+ </InvalidScalarArgument>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->circleToPrincipal($decodedName)
+ ?: $this->circleToPrincipal($name)]]></code>
<code>null</code>
<code>null</code>
<code>null</code>
@@ -413,65 +559,65 @@
<code>null</code>
<code>null</code>
</NullableReturnStatement>
- <UndefinedClass occurrences="2">
+ <UndefinedClass>
<code>\OCA\Circles\Api\v1\Circles</code>
<code>\OCA\Circles\Api\v1\Circles</code>
</UndefinedClass>
</file>
<file src="apps/dav/lib/Connector/Sabre/QuotaPlugin.php">
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>getPath</code>
<code>getPath</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/dav/lib/Connector/Sabre/ServerFactory.php">
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>new \OCA\DAV\Connector\Sabre\QuotaPlugin($view, true)</code>
</TooManyArguments>
</file>
<file src="apps/dav/lib/Connector/Sabre/ShareTypeList.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidArgument>
<code>$shareType</code>
- </InvalidScalarArgument>
+ </InvalidArgument>
</file>
<file src="apps/dav/lib/Connector/Sabre/ShareeList.php">
- <InvalidScalarArgument occurrences="1">
- <code>$share-&gt;getShareType()</code>
- </InvalidScalarArgument>
+ <InvalidArgument>
+ <code><![CDATA[$share->getShareType()]]></code>
+ </InvalidArgument>
</file>
<file src="apps/dav/lib/Connector/Sabre/TagsPlugin.php">
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getId</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/dav/lib/Controller/InvitationResponseController.php">
- <UndefinedPropertyAssignment occurrences="1">
- <code>$vEvent-&gt;DTSTAMP</code>
+ <UndefinedPropertyAssignment>
+ <code><![CDATA[$vEvent->DTSTAMP]]></code>
</UndefinedPropertyAssignment>
</file>
<file src="apps/dav/lib/DAV/CustomPropertiesBackend.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$whereValues</code>
</InvalidArgument>
</file>
<file src="apps/dav/lib/DAV/GroupPrincipalBackend.php">
- <InvalidNullableReturnType occurrences="2">
+ <InvalidNullableReturnType>
<code>array</code>
<code>string</code>
</InvalidNullableReturnType>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$principals</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string[]</code>
</InvalidReturnType>
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$members</code>
</MoreSpecificImplementedParamType>
- <NullableReturnStatement occurrences="7">
+ <NullableReturnStatement>
<code>null</code>
<code>null</code>
<code>null</code>
@@ -482,73 +628,145 @@
</NullableReturnStatement>
</file>
<file src="apps/dav/lib/DAV/SystemPrincipalBackend.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>array</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="apps/dav/lib/Direct/Server.php">
- <UndefinedThisPropertyAssignment occurrences="1">
- <code>$this-&gt;enablePropfindDepthInfinityf</code>
+ <UndefinedThisPropertyAssignment>
+ <code><![CDATA[$this->enablePropfindDepthInfinityf]]></code>
</UndefinedThisPropertyAssignment>
</file>
- <file src="apps/dav/lib/Files/BrowserErrorPagePlugin.php">
- <InvalidScalarArgument occurrences="1">
- <code>$body</code>
- </InvalidScalarArgument>
- </file>
<file src="apps/dav/lib/Files/FileSearchBackend.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$value</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>?string</code>
</InvalidReturnType>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$search</code>
</ParamNameMismatch>
- <UndefinedPropertyFetch occurrences="1">
- <code>$operator-&gt;arguments[0]-&gt;name</code>
+ <RedundantCondition>
+ <code><![CDATA[$date->getTimestamp() !== false]]></code>
+ </RedundantCondition>
+ <UndefinedPropertyFetch>
+ <code><![CDATA[$operator->arguments[0]->name]]></code>
+ <code><![CDATA[$operator->arguments[0]->name]]></code>
</UndefinedPropertyFetch>
</file>
<file src="apps/dav/lib/Files/LazySearchBackend.php">
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;backend-&gt;getArbiterPath()</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->backend->getArbiterPath()]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>bool</code>
</InvalidReturnType>
</file>
<file src="apps/dav/lib/HookManager.php">
- <InvalidPropertyAssignmentValue occurrences="2">
- <code>$this-&gt;usersToDelete</code>
- <code>$this-&gt;usersToDelete</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->usersToDelete]]></code>
+ <code><![CDATA[$this->usersToDelete]]></code>
</InvalidPropertyAssignmentValue>
</file>
+ <file src="apps/dav/lib/Listener/ActivityUpdaterListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/AddressbookListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/BirthdayListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/CalendarContactInteractionListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/CalendarObjectReminderUpdaterListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/CalendarPublicationListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/CalendarShareUpdateListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/CardListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/ClearPhotoCacheListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/SubscriptionListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/TrustedServerRemovedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/dav/lib/Listener/UserPreferenceListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/dav/lib/Migration/BuildCalendarSearchIndexBackgroundJob.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$arguments</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/Migration/BuildSocialSearchIndexBackgroundJob.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$arguments</code>
</ParamNameMismatch>
</file>
+ <file src="apps/dav/lib/Search/ContactsSearchProvider.php">
+ <InvalidOperand>
+ <code><![CDATA[$query->getCursor()]]></code>
+ </InvalidOperand>
+ </file>
<file src="apps/dav/lib/Search/EventsSearchProvider.php">
- <FalsableReturnStatement occurrences="1">
- <code>$this-&gt;l10n-&gt;l('date', $startDateTime, ['width' =&gt; 'medium'])</code>
+ <FalsableReturnStatement>
+ <code><![CDATA[$this->l10n->l('date', $startDateTime, ['width' => 'medium'])]]></code>
</FalsableReturnStatement>
- <InvalidPropertyAssignmentValue occurrences="1"/>
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;l10n-&gt;l('date', $startDateTime, ['width' =&gt; 'medium'])</code>
+ <InvalidOperand>
+ <code><![CDATA[$query->getCursor()]]></code>
+ </InvalidOperand>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[[
+ 'ATTENDEE' => ['CN'],
+ 'ORGANIZER' => ['CN'],
+ ]]]></code>
+ </InvalidPropertyAssignmentValue>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->l10n->l('date', $startDateTime, ['width' => 'medium'])]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string</code>
</InvalidReturnType>
- <UndefinedMethod occurrences="5">
+ <UndefinedMethod>
<code>getDateTime</code>
<code>getDateTime</code>
<code>hasTime</code>
@@ -557,126 +775,116 @@
</UndefinedMethod>
</file>
<file src="apps/dav/lib/Search/TasksSearchProvider.php">
- <UndefinedMethod occurrences="3">
+ <InvalidOperand>
+ <code><![CDATA[$query->getCursor()]]></code>
+ </InvalidOperand>
+ <UndefinedMethod>
<code>getDateTime</code>
<code>getDateTime</code>
<code>hasTime</code>
</UndefinedMethod>
</file>
<file src="apps/dav/lib/Server.php">
- <InvalidArgument occurrences="2">
- <code>'OCA\DAV\Connector\Sabre::addPlugin'</code>
- <code>'OCA\DAV\Connector\Sabre::authInit'</code>
+ <InvalidArgument>
+ <code><![CDATA['OCA\DAV\Connector\Sabre::addPlugin']]></code>
+ <code><![CDATA['OCA\DAV\Connector\Sabre::authInit']]></code>
</InvalidArgument>
- <TooManyArguments occurrences="2">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
</file>
- <file src="apps/dav/lib/SystemTag/SystemTagsByIdCollection.php">
- <InvalidNullableReturnType occurrences="1">
- <code>int</code>
- </InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
- <code>null</code>
- </NullableReturnStatement>
- </file>
<file src="apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php">
- <InvalidNullableReturnType occurrences="1">
- <code>int</code>
- </InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
- <code>null</code>
- </NullableReturnStatement>
- <ParamNameMismatch occurrences="2">
+ <ParamNameMismatch>
<code>$tagId</code>
<code>$tagName</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/SystemTag/SystemTagsObjectTypeCollection.php">
- <InvalidNullableReturnType occurrences="1">
- <code>int</code>
- </InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
- <code>null</code>
- </NullableReturnStatement>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$objectName</code>
</ParamNameMismatch>
</file>
<file src="apps/dav/lib/SystemTag/SystemTagsRelationsCollection.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>SystemTagsEntityEvent::EVENT_ENTITY</code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="apps/dav/lib/Traits/PrincipalProxyTrait.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$members</code>
</MoreSpecificImplementedParamType>
</file>
<file src="apps/dav/lib/Upload/AssemblyStream.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>false</code>
</FalsableReturnStatement>
- <InvalidPropertyAssignmentValue occurrences="1">
- <code>$this-&gt;currentStream</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->currentStream]]></code>
</InvalidPropertyAssignmentValue>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$context</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>array</code>
</InvalidReturnType>
- <RedundantFunctionCall occurrences="1">
+ <RedundantFunctionCall>
<code>array_values</code>
</RedundantFunctionCall>
</file>
+ <file src="apps/dav/lib/Upload/ChunkingV2Plugin.php">
+ <UndefinedInterfaceMethod>
+ <code>getId</code>
+ <code>getId</code>
+ <code>getId</code>
+ <code>getInternalPath</code>
+ <code>getNode</code>
+ <code>getSize</code>
+ </UndefinedInterfaceMethod>
+ </file>
<file src="apps/encryption/lib/Command/ScanLegacyFormat.php">
- <InvalidOperand occurrences="1">
- <code>$this-&gt;scanFolder($output, '/' . $user)</code>
+ <InvalidOperand>
+ <code><![CDATA[$this->scanFolder($output, '/' . $user)]]></code>
</InvalidOperand>
</file>
<file src="apps/encryption/lib/Crypto/Crypt.php">
- <RedundantCondition occurrences="2">
- <code>$userSession</code>
+ <RedundantCondition>
<code>$userSession</code>
</RedundantCondition>
- <TypeDoesNotContainType occurrences="1">
- <code>get_class($res) === 'OpenSSLAsymmetricKey'</code>
+ <TypeDoesNotContainType>
+ <code><![CDATA[get_class($res) === 'OpenSSLAsymmetricKey']]></code>
</TypeDoesNotContainType>
</file>
<file src="apps/encryption/lib/Crypto/Encryption.php">
- <ImplementedParamTypeMismatch occurrences="1">
- <code>$position</code>
+ <ImplementedParamTypeMismatch>
<code>$position</code>
</ImplementedParamTypeMismatch>
</file>
<file src="apps/encryption/lib/KeyManager.php">
- <InvalidScalarArgument occurrences="3">
+ <InvalidScalarArgument>
<code>time()</code>
<code>time()</code>
<code>time()</code>
</InvalidScalarArgument>
- <InvalidThrow occurrences="1">
+ <InvalidThrow>
<code>throw $exception;</code>
</InvalidThrow>
</file>
<file src="apps/encryption/lib/Session.php">
- <TooManyArguments occurrences="1">
- <code>new Exceptions\PrivateKeyMissingException('please try to log-out and log-in again', 0)</code>
+ <TooManyArguments>
+ <code><![CDATA[new Exceptions\PrivateKeyMissingException('please try to log-out and log-in again', 0)]]></code>
</TooManyArguments>
</file>
<file src="apps/encryption/lib/Util.php">
- <RedundantCondition occurrences="2">
- <code>$userSession</code>
+ <RedundantCondition>
<code>$userSession</code>
</RedundantCondition>
</file>
<file src="apps/federatedfilesharing/lib/Controller/RequestHandlerController.php">
- <InvalidScalarArgument occurrences="7">
+ <InvalidArgument>
<code>$id</code>
<code>$id</code>
<code>$id</code>
@@ -684,97 +892,117 @@
<code>$id</code>
<code>$id</code>
<code>$remoteId</code>
- </InvalidScalarArgument>
- <TypeDoesNotContainNull occurrences="3">
+ </InvalidArgument>
+ <TypeDoesNotContainNull>
+ <code>$id === null ||
+ $token === null ||
+ $shareWith === null ||
+ $permission === null</code>
<code>$permission === null</code>
<code>$remoteId === null</code>
</TypeDoesNotContainNull>
</file>
<file src="apps/federatedfilesharing/lib/FederatedShareProvider.php">
- <InvalidScalarArgument occurrences="5">
+ <InvalidArgument>
<code>$shareId</code>
<code>$shareId</code>
<code>$shareId</code>
<code>$shareId</code>
- <code>(int)$data['id']</code>
- </InvalidScalarArgument>
+ <code><![CDATA[(int)$data['id']]]></code>
+ </InvalidArgument>
+ </file>
+ <file src="apps/federatedfilesharing/lib/Listeners/LoadAdditionalScriptsListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
</file>
<file src="apps/federatedfilesharing/lib/Notifications.php">
- <InvalidReturnType occurrences="3">
+ <InvalidReturnType>
<code>bool</code>
<code>bool</code>
<code>bool</code>
</InvalidReturnType>
</file>
<file src="apps/federatedfilesharing/lib/OCM/CloudFederationProviderFiles.php">
- <InvalidReturnStatement occurrences="1">
- <code>$shareId</code>
- </InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
- <code>string</code>
- </InvalidReturnType>
- <InvalidScalarArgument occurrences="5">
+ <InvalidArgument>
<code>$id</code>
<code>$id</code>
<code>$id</code>
<code>$id</code>
- <code>(int)$share['id']</code>
+ </InvalidArgument>
+ <InvalidReturnStatement>
+ <code>$shareId</code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
+ <code>string</code>
+ </InvalidReturnType>
+ <InvalidScalarArgument>
+ <code><![CDATA[(int)$share['id']]]></code>
</InvalidScalarArgument>
</file>
+ <file src="apps/federation/lib/Listener/SabrePluginAuthInitListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/files/ajax/download.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$files_list</code>
</InvalidArgument>
</file>
<file src="apps/files/lib/Activity/Provider.php">
- <FalsableReturnStatement occurrences="1">
- <code>$this-&gt;fileEncrypted[$fileId]</code>
+ <FalsableReturnStatement>
+ <code><![CDATA[$this->fileEncrypted[$fileId]]]></code>
</FalsableReturnStatement>
- <InvalidScalarArgument occurrences="1">
- <code>$id</code>
- </InvalidScalarArgument>
- <TypeDoesNotContainType occurrences="7">
- <code>$this-&gt;fileIsEncrypted</code>
- <code>$this-&gt;fileIsEncrypted</code>
- <code>$this-&gt;fileIsEncrypted</code>
- <code>$this-&gt;fileIsEncrypted</code>
- <code>$this-&gt;fileIsEncrypted</code>
- <code>$this-&gt;fileIsEncrypted</code>
- <code>$this-&gt;fileIsEncrypted</code>
+ <TypeDoesNotContainType>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
+ <code><![CDATA[$this->fileIsEncrypted]]></code>
</TypeDoesNotContainType>
</file>
<file src="apps/files/lib/Command/Scan.php">
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="apps/files/lib/Command/ScanAppData.php">
- <NullArgument occurrences="2">
+ <NullArgument>
<code>null</code>
<code>null</code>
</NullArgument>
</file>
<file src="apps/files/lib/Controller/DirectEditingController.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$templateId</code>
</InvalidArgument>
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>getTemplates</code>
<code>open</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/files/lib/Controller/ViewController.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidArgument>
<code>$fileId</code>
- </InvalidScalarArgument>
- <UndefinedInterfaceMethod occurrences="3">
+ </InvalidArgument>
+ <UndefinedInterfaceMethod>
<code>getById</code>
<code>getRelativePath</code>
<code>getRelativePath</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/files/lib/Helper.php">
- <UndefinedInterfaceMethod occurrences="13">
+ <UndefinedInterfaceMethod>
<code>$file</code>
<code>$i</code>
<code>$i</code>
@@ -791,509 +1019,745 @@
</UndefinedInterfaceMethod>
</file>
<file src="apps/files/lib/Listener/LegacyLoadAdditionalScriptsAdapter.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$legacyEvent</code>
</InvalidArgument>
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files/lib/Listener/LoadSidebarListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files/lib/Listener/RenderReferenceEventListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
</file>
<file src="apps/files/lib/Service/OwnershipTransferService.php">
- <InvalidIterator occurrences="1">
- <code>$encryptedFiles</code>
- </InvalidIterator>
- <TypeDoesNotContainType occurrences="1">
+ <TypeDoesNotContainType>
<code>empty($encryptedFiles)</code>
</TypeDoesNotContainType>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>isReadyForUser</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/files/lib/Service/TagService.php">
- <InvalidArgument occurrences="1">
- <code>self::class . '::' . $eventName</code>
+ <InvalidArgument>
+ <code><![CDATA[self::class . '::' . $eventName]]></code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="apps/files_external/appinfo/routes.php">
- <InvalidScope occurrences="1">
+ <InvalidScope>
<code>$this</code>
</InvalidScope>
</file>
- <file src="apps/files_external/lib/Config/ConfigAdapter.php">
- <UndefinedClass occurrences="1">
- <code>new $objectClass($objectStore)</code>
- </UndefinedClass>
+ <file src="apps/files_external/lib/Controller/StoragesController.php">
+ <RedundantCast>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ <code>(int)$status</code>
+ </RedundantCast>
</file>
<file src="apps/files_external/lib/Controller/UserGlobalStoragesController.php">
- <UndefinedMethod occurrences="1">
+ <UndefinedMethod>
<code>getUniqueStorages</code>
</UndefinedMethod>
</file>
- <file src="apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php">
- <InvalidArgument occurrences="2">
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- </InvalidArgument>
+ <file src="apps/files_external/lib/Lib/Storage/AmazonS3.php">
+ <InvalidReturnStatement>
+ <code><![CDATA[IteratorDirectory::wrap(array_map(function (array $item) {
+ return $item['name'];
+ }, $content))]]></code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
+ <code>opendir</code>
+ </InvalidReturnType>
</file>
<file src="apps/files_external/lib/Lib/Storage/SFTP.php">
- <InternalMethod occurrences="1">
+ <InternalMethod>
<code>put</code>
</InternalMethod>
+ <InvalidReturnStatement>
+ <code>IteratorDirectory::wrap($dirStream)</code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
+ <code>opendir</code>
+ </InvalidReturnType>
+ </file>
+ <file src="apps/files_external/lib/Lib/Storage/SMB.php">
+ <InvalidReturnStatement>
+ <code>IteratorDirectory::wrap($names)</code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
+ <code>opendir</code>
+ </InvalidReturnType>
+ <RedundantCast>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ </RedundantCast>
</file>
<file src="apps/files_external/lib/Lib/Storage/Swift.php">
- <InvalidArgument occurrences="1">
- <code>$object-&gt;lastModified</code>
+ <InvalidArgument>
+ <code><![CDATA[$object->lastModified]]></code>
</InvalidArgument>
- <InvalidNullableReturnType occurrences="2">
+ <InvalidNullableReturnType>
<code>filetype</code>
<code>fopen</code>
</InvalidNullableReturnType>
+ <InvalidReturnStatement>
+ <code>IteratorDirectory::wrap($files)</code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
+ <code>opendir</code>
+ </InvalidReturnType>
+ </file>
+ <file src="apps/files_external/lib/Listener/GroupDeletedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_external/lib/Listener/StorePasswordListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_external/lib/Listener/UserDeletedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
</file>
<file src="apps/files_external/lib/Migration/DummyUserSession.php">
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>login</code>
</InvalidReturnType>
</file>
<file src="apps/files_external/lib/MountConfig.php">
- <InternalMethod occurrences="4">
+ <InternalMethod>
<code>decrypt</code>
<code>encrypt</code>
<code>setIV</code>
<code>setIV</code>
</InternalMethod>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>test</code>
</TooManyArguments>
</file>
<file src="apps/files_external/lib/Service/BackendService.php">
- <InvalidArgument occurrences="1">
- <code>'OCA\\Files_External::loadAdditionalBackends'</code>
+ <InvalidArgument>
+ <code><![CDATA['OCA\\Files_External::loadAdditionalBackends']]></code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
- <file src="apps/files_sharing/lib/AppInfo/Application.php">
- <InvalidArgument occurrences="6">
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- </InvalidArgument>
- </file>
<file src="apps/files_sharing/lib/Controller/ShareAPIController.php">
- <UndefinedClass occurrences="2">
+ <RedundantCast>
+ <code>(int)$code</code>
+ <code>(int)$code</code>
+ </RedundantCast>
+ <UndefinedClass>
<code>\OCA\Circles\Api\v1\Circles</code>
<code>\OCA\Circles\Api\v1\Circles</code>
</UndefinedClass>
- <UndefinedDocblockClass occurrences="4">
- <code>$this-&gt;getRoomShareHelper()</code>
- <code>$this-&gt;getRoomShareHelper()</code>
- <code>$this-&gt;getRoomShareHelper()</code>
+ <UndefinedDocblockClass>
+ <code><![CDATA[$this->getRoomShareHelper()]]></code>
+ <code><![CDATA[$this->getRoomShareHelper()]]></code>
+ <code><![CDATA[$this->getRoomShareHelper()]]></code>
<code>\OCA\Talk\Share\Helper\ShareAPIController</code>
</UndefinedDocblockClass>
</file>
<file src="apps/files_sharing/lib/Controller/ShareController.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$files_list</code>
</InvalidArgument>
</file>
<file src="apps/files_sharing/lib/External/Scanner.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$cacheData</code>
</MoreSpecificImplementedParamType>
</file>
<file src="apps/files_sharing/lib/Listener/LegacyBeforeTemplateRenderedListener.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$legacyEvent</code>
</InvalidArgument>
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_sharing/lib/Listener/LoadAdditionalListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_sharing/lib/Listener/LoadSidebarListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_sharing/lib/Listener/ShareInteractionListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_sharing/lib/Listener/UserAddedToGroupListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_sharing/lib/Listener/UserShareAcceptanceListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
</file>
<file src="apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php">
- <InvalidArgument occurrences="1">
- <code>$exception-&gt;getMessage()</code>
+ <InvalidArgument>
+ <code><![CDATA[$exception->getMessage()]]></code>
</InvalidArgument>
</file>
<file src="apps/files_sharing/lib/MountProvider.php">
- <RedundantFunctionCall occurrences="1">
+ <RedundantFunctionCall>
<code>array_values</code>
</RedundantFunctionCall>
</file>
<file src="apps/files_sharing/lib/ShareBackend/File.php">
- <InvalidScalarArgument occurrences="2">
+ <InvalidArgument>
<code>$itemSource</code>
<code>$itemSource</code>
- </InvalidScalarArgument>
- <MoreSpecificImplementedParamType occurrences="1">
+ </InvalidArgument>
+ <MoreSpecificImplementedParamType>
<code>$shareWith</code>
</MoreSpecificImplementedParamType>
</file>
<file src="apps/files_sharing/lib/ShareBackend/Folder.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>fetchRow</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/files_sharing/lib/SharedMount.php">
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>bool</code>
</InvalidReturnType>
</file>
<file src="apps/files_sharing/lib/SharedStorage.php">
- <FalsableReturnStatement occurrences="1">
- <code>$this-&gt;sourceRootInfo</code>
+ <FalsableReturnStatement>
+ <code><![CDATA[$this->sourceRootInfo]]></code>
</FalsableReturnStatement>
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>ICacheEntry</code>
</InvalidNullableReturnType>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>new FailedCache()</code>
</InvalidReturnStatement>
- <NullableReturnStatement occurrences="1">
- <code>$this-&gt;sourceRootInfo</code>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->sourceRootInfo]]></code>
</NullableReturnStatement>
</file>
<file src="apps/files_sharing/lib/Updater.php">
- <UndefinedMethod occurrences="1">
+ <UndefinedMethod>
<code>moveMount</code>
</UndefinedMethod>
</file>
+ <file src="apps/files_sharing/templates/public.php">
+ <RedundantCondition>
+ <code><![CDATA[$_['hideFileList'] !== true]]></code>
+ <code><![CDATA[isset($_['hideFileList']) && $_['hideFileList'] !== true]]></code>
+ </RedundantCondition>
+ </file>
+ <file src="apps/files_trashbin/lib/Listeners/LoadAdditionalScripts.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/files_trashbin/lib/Sabre/AbstractTrash.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>int</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
- <code>$this-&gt;data-&gt;getId()</code>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->data->getId()]]></code>
</NullableReturnStatement>
</file>
<file src="apps/files_trashbin/lib/Sabre/AbstractTrashFolder.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$entry</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>ITrash</code>
</InvalidReturnType>
</file>
<file src="apps/files_trashbin/lib/Sabre/RestoreFolder.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>getChild</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="apps/files_trashbin/lib/Sabre/RootCollection.php">
- <MismatchingDocblockReturnType occurrences="1">
+ <MismatchingDocblockReturnType>
<code>INode</code>
</MismatchingDocblockReturnType>
</file>
<file src="apps/files_trashbin/lib/Sabre/TrashRoot.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$entry</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>ITrash</code>
</InvalidReturnType>
</file>
<file src="apps/files_trashbin/lib/Storage.php">
- <InvalidArgument occurrences="1">
- <code>'OCA\Files_Trashbin::moveToTrash'</code>
+ <InvalidArgument>
+ <code><![CDATA['OCA\Files_Trashbin::moveToTrash']]></code>
</InvalidArgument>
- <InvalidOperand occurrences="1">
- <code>$this-&gt;mountPoint</code>
+ <InvalidOperand>
+ <code><![CDATA[$this->mountPoint]]></code>
</InvalidOperand>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="apps/files_trashbin/lib/Trash/LegacyTrashBackend.php">
- <RedundantCondition occurrences="2">
- <code>$trashFiles</code>
+ <RedundantCondition>
<code>$trashFiles</code>
</RedundantCondition>
- <TypeDoesNotContainType occurrences="1">
+ <TypeDoesNotContainType>
<code>null</code>
</TypeDoesNotContainType>
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>$file</code>
<code>getById</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/files_trashbin/lib/Trashbin.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>false</code>
</FalsableReturnStatement>
- <InvalidScalarArgument occurrences="2">
+ <InvalidArgument>
<code>$timestamp</code>
+ </InvalidArgument>
+ <InvalidScalarArgument>
<code>$timestamp</code>
</InvalidScalarArgument>
</file>
<file src="apps/files_versions/appinfo/routes.php">
- <InvalidScope occurrences="2">
+ <InvalidScope>
<code>$this</code>
<code>$this</code>
</InvalidScope>
</file>
+ <file src="apps/files_versions/lib/Listener/FileEventsListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_versions/lib/Listener/LoadAdditionalListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/files_versions/lib/Listener/LoadSidebarListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/files_versions/lib/Sabre/RestoreFolder.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>getChild</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="apps/files_versions/lib/Sabre/VersionHome.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>getChild</code>
</InvalidNullableReturnType>
</file>
+ <file src="apps/files_versions/lib/Storage.php">
+ <RedundantCondition>
+ <code><![CDATA[$storage1->instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage')]]></code>
+ </RedundantCondition>
+ </file>
<file src="apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php">
- <InvalidScalarArgument occurrences="1">
- <code>$this-&gt;retries + 1</code>
- </InvalidScalarArgument>
+ <InvalidArgument>
+ <code><![CDATA[$this->retries + 1]]></code>
+ </InvalidArgument>
</file>
<file src="apps/oauth2/lib/Controller/OauthApiController.php">
- <NoInterfaceProperties occurrences="1">
- <code>$this-&gt;request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->server]]></code>
</NoInterfaceProperties>
</file>
<file src="apps/provisioning_api/lib/Controller/UsersController.php">
- <TypeDoesNotContainNull occurrences="2">
+ <TypeDoesNotContainNull>
<code>$groupid === null</code>
<code>$groupid === null</code>
</TypeDoesNotContainNull>
</file>
+ <file src="apps/provisioning_api/lib/Listener/UserDeletedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php">
+ <InvalidReturnType>
+ <code>Response</code>
+ </InvalidReturnType>
+ </file>
<file src="apps/settings/lib/AppInfo/Application.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>AppPasswordCreatedActivityListener::class</code>
</InvalidArgument>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getSettingsManager</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/settings/lib/Controller/AppSettingsController.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>ignoreNextcloudRequirementForApp</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/settings/lib/Controller/CheckSetupController.php">
- <InvalidArgument occurrences="3">
+ <InvalidArgument>
<code>IDBConnection::CHECK_MISSING_COLUMNS_EVENT</code>
<code>IDBConnection::CHECK_MISSING_INDEXES_EVENT</code>
<code>IDBConnection::CHECK_MISSING_PRIMARY_KEYS_EVENT</code>
</InvalidArgument>
- <TooManyArguments occurrences="3">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="apps/settings/lib/Hooks.php">
- <InvalidArrayOffset occurrences="1">
- <code>[$user-&gt;getEMailAddress() =&gt; $user-&gt;getDisplayName()]</code>
+ <InvalidArrayOffset>
+ <code><![CDATA[[$user->getEMailAddress() => $user->getDisplayName()]]]></code>
</InvalidArrayOffset>
</file>
+ <file src="apps/settings/lib/Listener/GroupRemovedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/settings/lib/Listener/UserAddedToGroupActivityListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/settings/lib/Listener/UserRemovedFromGroupActivityListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/settings/lib/Settings/Admin/Security.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>isReady</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/settings/lib/Settings/Admin/Sharing.php">
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="apps/sharebymail/lib/ShareByMailProvider.php">
- <InvalidScalarArgument occurrences="2">
- <code>$share-&gt;getId()</code>
- <code>(int)$data['id']</code>
- </InvalidScalarArgument>
+ <InvalidArgument>
+ <code><![CDATA[$share->getId()]]></code>
+ <code><![CDATA[(int)$data['id']]]></code>
+ </InvalidArgument>
</file>
<file src="apps/systemtags/lib/Activity/Listener.php">
- <InvalidScalarArgument occurrences="2">
- <code>$event-&gt;getObjectId()</code>
- <code>$event-&gt;getObjectId()</code>
- </InvalidScalarArgument>
+ <InvalidArgument>
+ <code><![CDATA[$event->getObjectId()]]></code>
+ <code><![CDATA[$event->getObjectId()]]></code>
+ </InvalidArgument>
+ </file>
+ <file src="apps/theming/lib/Jobs/MigrateBackgroundImages.php">
+ <OverriddenInterfaceConstant>
+ <code>TIME_SENSITIVE</code>
+ </OverriddenInterfaceConstant>
+ </file>
+ <file src="apps/theming/lib/Listener/BeforePreferenceListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/theming/lib/Listener/BeforeTemplateRenderedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/theming/lib/Util.php">
+ <InvalidReturnStatement>
+ <code><![CDATA[array_values($color->getRgb())]]></code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
+ <code>array{0: int, 1: int, 2: int}</code>
+ </InvalidReturnType>
+ </file>
+ <file src="apps/twofactor_backupcodes/lib/Listener/ActivityPublisher.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/twofactor_backupcodes/lib/Listener/ClearNotifications.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/twofactor_backupcodes/lib/Listener/ProviderDisabled.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/twofactor_backupcodes/lib/Listener/ProviderEnabled.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/twofactor_backupcodes/lib/Listener/RegistryUpdater.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/twofactor_backupcodes/lib/Listener/UserDeleted.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
</file>
<file src="apps/updatenotification/lib/Notification/BackgroundJob.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>false</code>
</InvalidArgument>
- <InvalidPropertyAssignmentValue occurrences="1">
- <code>$this-&gt;users</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->users]]></code>
</InvalidPropertyAssignmentValue>
</file>
<file src="apps/user_ldap/ajax/getNewServerConfigPrefix.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidScalarArgument>
<code>$ln + 1</code>
</InvalidScalarArgument>
</file>
<file src="apps/user_ldap/appinfo/routes.php">
- <InvalidScope occurrences="1">
+ <InvalidScope>
<code>$this</code>
</InvalidScope>
</file>
<file src="apps/user_ldap/lib/Access.php">
- <InvalidReturnStatement occurrences="2">
+ <InvalidReturnStatement>
<code>$uuid</code>
<code>$values</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string[]</code>
</InvalidReturnType>
+ <RedundantCast>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ </RedundantCast>
</file>
<file src="apps/user_ldap/lib/AppInfo/Application.php">
- <InvalidArgument occurrences="1">
- <code>'OCA\\User_LDAP\\User\\User::postLDAPBackendAdded'</code>
+ <InvalidArgument>
+ <code><![CDATA['OCA\\User_LDAP\\User\\User::postLDAPBackendAdded']]></code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="apps/user_ldap/lib/Connection.php">
- <ParadoxicalCondition occurrences="1"/>
+ <NoValue>
+ <code>$subj</code>
+ </NoValue>
+ <ParadoxicalCondition>
+ <code>default:
+ $subj = $key;
+ break;</code>
+ </ParadoxicalCondition>
</file>
<file src="apps/user_ldap/lib/Group_LDAP.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidScalarArgument>
<code>$groupID</code>
</InvalidScalarArgument>
</file>
<file src="apps/user_ldap/lib/Group_Proxy.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$gid</code>
</ParamNameMismatch>
</file>
<file src="apps/user_ldap/lib/Jobs/Sync.php">
- <InvalidOperand occurrences="1">
+ <InvalidOperand>
<code>$i</code>
</InvalidOperand>
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="apps/user_ldap/lib/Mapping/AbstractMapping.php">
- <RedundantCondition occurrences="1">
+ <RedundantCondition>
<code>isset($qb)</code>
</RedundantCondition>
- <TypeDoesNotContainNull occurrences="1">
+ <TypeDoesNotContainNull>
<code>isset($qb)</code>
</TypeDoesNotContainNull>
</file>
<file src="apps/user_ldap/lib/Proxy.php">
- <InvalidDocblock occurrences="1">
+ <InvalidDocblock>
<code>protected function handleRequest($id, $method, $parameters, $passOnWhen = false) {</code>
</InvalidDocblock>
</file>
<file src="apps/user_ldap/lib/User/Manager.php">
- <InvalidDocblock occurrences="1">
+ <InvalidDocblock>
<code>public function setLdapAccess(Access $access) {</code>
</InvalidDocblock>
</file>
<file src="apps/user_ldap/lib/User/User.php">
- <FalsableReturnStatement occurrences="1">
- <code>$this-&gt;avatarImage</code>
+ <FalsableReturnStatement>
+ <code><![CDATA[$this->avatarImage]]></code>
</FalsableReturnStatement>
- <InvalidPropertyAssignmentValue occurrences="1">
- <code>$this-&gt;refreshedFeatures</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->refreshedFeatures]]></code>
</InvalidPropertyAssignmentValue>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>null</code>
</InvalidReturnType>
+ <RedundantCondition>
+ <code><![CDATA[$aQuota && (count($aQuota) > 0)]]></code>
+ </RedundantCondition>
</file>
<file src="apps/user_ldap/lib/User_LDAP.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>string|false</code>
</ImplementedReturnTypeMismatch>
- <MoreSpecificImplementedParamType occurrences="2">
+ <MoreSpecificImplementedParamType>
<code>$limit</code>
<code>$offset</code>
</MoreSpecificImplementedParamType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
+ <RedundantCondition>
+ <code><![CDATA[$displayName && (count($displayName) > 0)]]></code>
+ <code>is_string($dn)</code>
+ </RedundantCondition>
</file>
<file src="apps/user_ldap/lib/User_Proxy.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$uid</code>
</ParamNameMismatch>
</file>
+ <file src="apps/user_ldap/lib/Wizard.php">
+ <InvalidArrayOffset>
+ <code>$possibleAttrs[$i]</code>
+ </InvalidArrayOffset>
+ </file>
<file src="apps/user_status/lib/AppInfo/Application.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>registerProvider</code>
</UndefinedInterfaceMethod>
</file>
+ <file src="apps/user_status/lib/Listener/BeforeTemplateRenderedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/user_status/lib/Listener/UserDeletedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="apps/user_status/lib/Listener/UserLiveStatusListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/workflowengine/lib/Check/AbstractStringCheck.php">
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="apps/workflowengine/lib/Check/FileSize.php">
- <FalsableReturnStatement occurrences="1">
- <code>$this-&gt;size</code>
+ <FalsableReturnStatement>
+ <code><![CDATA[$this->size]]></code>
</FalsableReturnStatement>
- <InvalidPropertyAssignmentValue occurrences="1">
+ <InvalidPropertyAssignmentValue>
<code>$size</code>
</InvalidPropertyAssignmentValue>
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;size</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->size]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string</code>
</InvalidReturnType>
</file>
+ <file src="apps/workflowengine/lib/Check/FileSystemTags.php">
+ <UndefinedDocblockClass>
+ <code><![CDATA[$this->storage]]></code>
+ </UndefinedDocblockClass>
+ </file>
<file src="apps/workflowengine/lib/Check/RequestRemoteAddress.php">
- <InvalidScalarArgument occurrences="4">
+ <InvalidArgument>
<code>$decodedValue[1]</code>
<code>$decodedValue[1]</code>
<code>$decodedValue[1]</code>
<code>$decodedValue[1]</code>
- </InvalidScalarArgument>
+ </InvalidArgument>
</file>
<file src="apps/workflowengine/lib/Check/RequestTime.php">
- <InvalidScalarArgument occurrences="2">
+ <InvalidScalarArgument>
<code>$hour1</code>
<code>$minute1</code>
</InvalidScalarArgument>
</file>
<file src="apps/workflowengine/lib/Check/TFileCheck.php">
- <InvalidArgument occurrences="1">
- <code>['app' =&gt; Application::APP_ID, 'class' =&gt; get_class($subject)]</code>
+ <InvalidArgument>
+ <code><![CDATA[['app' => Application::APP_ID, 'class' => get_class($subject)]]]></code>
</InvalidArgument>
</file>
<file src="apps/workflowengine/lib/Entity/File.php">
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string</code>
</InvalidReturnType>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$uid</code>
</ParamNameMismatch>
</file>
+ <file src="apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="apps/workflowengine/lib/Manager.php">
- <InvalidArgument occurrences="3">
+ <InvalidArgument>
+ <code>$missingCheck</code>
<code>IManager::EVENT_NAME_REG_CHECK</code>
<code>IManager::EVENT_NAME_REG_ENTITY</code>
<code>IManager::EVENT_NAME_REG_OPERATION</code>
</InvalidArgument>
- <InvalidOperand occurrences="1">
+ <InvalidOperand>
<code>$result</code>
</InvalidOperand>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$result</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>bool</code>
</InvalidReturnType>
- <InvalidScalarArgument occurrences="1">
- <code>$missingCheck</code>
- </InvalidScalarArgument>
- <TooManyArguments occurrences="3">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="apps/workflowengine/lib/Service/RuleMatcher.php">
- <UndefinedInterfaceMethod occurrences="5">
+ <UndefinedInterfaceMethod>
<code>getAllConfiguredScopesForOperation</code>
<code>getChecks</code>
<code>getOperations</code>
@@ -1301,805 +1765,919 @@
<code>isUserScopeEnabled</code>
</UndefinedInterfaceMethod>
</file>
- <file src="core/Application.php">
- <InvalidArgument occurrences="10">
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- </InvalidArgument>
- </file>
<file src="core/BackgroundJobs/BackgroundCleanupUpdaterBackupsJob.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$arguments</code>
</ParamNameMismatch>
</file>
<file src="core/BackgroundJobs/CheckForUserCertificates.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$arguments</code>
</ParamNameMismatch>
</file>
<file src="core/BackgroundJobs/LookupServerSendCheckBackgroundJob.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$arguments</code>
</ParamNameMismatch>
</file>
<file src="core/Command/App/Install.php">
- <TypeDoesNotContainType occurrences="1">
+ <TypeDoesNotContainType>
<code>$result === false</code>
</TypeDoesNotContainType>
</file>
<file src="core/Command/App/ListApps.php">
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
<code>array</code>
</LessSpecificImplementedReturnType>
</file>
+ <file src="core/Command/App/Update.php">
+ <RedundantCondition>
+ <code>$result === true</code>
+ </RedundantCondition>
+ </file>
<file src="core/Command/Config/Import.php">
- <InvalidScalarArgument occurrences="2">
+ <InvalidScalarArgument>
<code>0</code>
<code>1</code>
</InvalidScalarArgument>
</file>
<file src="core/Command/Config/ListConfigs.php">
- <FalsableReturnStatement occurrences="1">
- <code>$this-&gt;appConfig-&gt;getValues($app, false)</code>
+ <FalsableReturnStatement>
+ <code><![CDATA[$this->appConfig->getValues($app, false)]]></code>
</FalsableReturnStatement>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>getFilteredValues</code>
</TooManyArguments>
</file>
<file src="core/Command/Db/AddMissingColumns.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>IDBConnection::ADD_MISSING_COLUMNS_EVENT</code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="core/Command/Db/AddMissingIndices.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>IDBConnection::ADD_MISSING_INDEXES_EVENT</code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="core/Command/Db/AddMissingPrimaryKeys.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>IDBConnection::ADD_MISSING_PRIMARY_KEYS_EVENT</code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="core/Command/Db/ConvertType.php">
- <InvalidScalarArgument occurrences="2">
+ <InvalidScalarArgument>
<code>0</code>
<code>1</code>
</InvalidScalarArgument>
</file>
<file src="core/Command/Encryption/Enable.php">
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="core/Command/Log/File.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>[0]</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string[]</code>
</InvalidReturnType>
</file>
<file src="core/Command/Log/Manage.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidArgument>
<code>$levelNum</code>
- </InvalidScalarArgument>
+ </InvalidArgument>
</file>
<file src="core/Command/Maintenance/DataFingerprint.php">
- <InvalidScalarArgument occurrences="1">
- <code>$this-&gt;timeFactory-&gt;getTime()</code>
+ <InvalidScalarArgument>
+ <code><![CDATA[$this->timeFactory->getTime()]]></code>
</InvalidScalarArgument>
</file>
<file src="core/Command/Maintenance/Mimetype/UpdateDB.php">
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>getAllMappings</code>
<code>updateFilecache</code>
</UndefinedInterfaceMethod>
</file>
<file src="core/Command/Maintenance/Mimetype/UpdateJS.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getAllAliases</code>
</UndefinedInterfaceMethod>
</file>
<file src="core/Command/Preview/Repair.php">
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>section</code>
<code>section</code>
</UndefinedInterfaceMethod>
</file>
<file src="core/Command/Preview/ResetRenderedTexts.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>[]</code>
</InvalidReturnStatement>
</file>
<file src="core/Controller/ClientFlowLoginV2Controller.php">
- <TypeDoesNotContainType occurrences="1">
+ <TypeDoesNotContainType>
<code>!is_string($stateToken)</code>
</TypeDoesNotContainType>
</file>
<file src="core/Controller/CollaborationResourcesController.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>searchCollections</code>
</UndefinedInterfaceMethod>
</file>
+ <file src="core/Controller/LostController.php">
+ <RedundantCast>
+ <code><![CDATA[(int)$e->getCode()]]></code>
+ </RedundantCast>
+ </file>
<file src="core/Controller/UnifiedSearchController.php">
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>findMatchingRoute</code>
</UndefinedInterfaceMethod>
</file>
+ <file src="core/Listener/BeforeTemplateRenderedListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="core/Middleware/TwoFactorMiddleware.php">
- <NoInterfaceProperties occurrences="1">
- <code>$this-&gt;request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->server]]></code>
</NoInterfaceProperties>
</file>
<file src="core/routes.php">
- <InvalidScope occurrences="2">
+ <InvalidScope>
<code>$this</code>
+ <code>$this</code>
+ <code><![CDATA[$this->create('core_ajax_update', '/core/ajax/update.php')]]></code>
</InvalidScope>
</file>
<file src="core/templates/layout.public.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getIcon</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/autoloader.php">
- <RedundantCondition occurrences="2">
- <code>$this-&gt;memoryCache</code>
- <code>$this-&gt;memoryCache</code>
+ <RedundantCondition>
+ <code><![CDATA[$this->memoryCache]]></code>
</RedundantCondition>
</file>
<file src="lib/base.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$restrictions</code>
</InvalidArgument>
</file>
<file src="lib/private/Accounts/AccountManager.php">
- <InvalidArgument occurrences="1">
- <code>'OC\AccountManager::userUpdated'</code>
+ <InvalidArgument>
+ <code><![CDATA['OC\AccountManager::userUpdated']]></code>
</InvalidArgument>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/Activity/Event.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$affectedUser</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Activity/Manager.php">
- <InvalidPropertyAssignmentValue occurrences="3">
- <code>$this-&gt;filterClasses</code>
- <code>$this-&gt;providerClasses</code>
- <code>$this-&gt;settingsClasses</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->filterClasses]]></code>
+ <code><![CDATA[$this->providerClasses]]></code>
+ <code><![CDATA[$this->settingsClasses]]></code>
</InvalidPropertyAssignmentValue>
- <TypeDoesNotContainType occurrences="1">
- <code>!is_string($currentUserId) &amp;&amp; $currentUserId !== null</code>
+ <TypeDoesNotContainType>
+ <code><![CDATA[!is_string($currentUserId) && $currentUserId !== null]]></code>
</TypeDoesNotContainType>
</file>
<file src="lib/private/AllConfig.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$key</code>
</MoreSpecificImplementedParamType>
+ <TypeDoesNotContainType>
+ <code>!is_array($userIds)</code>
+ </TypeDoesNotContainType>
</file>
<file src="lib/private/App/AppManager.php">
- <InvalidArgument occurrences="3">
+ <InvalidArgument>
<code>ManagerEvent::EVENT_APP_DISABLE</code>
<code>ManagerEvent::EVENT_APP_ENABLE</code>
<code>ManagerEvent::EVENT_APP_ENABLE_FOR_GROUPS</code>
</InvalidArgument>
- <LessSpecificImplementedReturnType occurrences="2">
+ <LessSpecificImplementedReturnType>
<code>array</code>
<code>array</code>
</LessSpecificImplementedReturnType>
- <TooManyArguments occurrences="3">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/App/AppStore/Fetcher/Fetcher.php">
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>fetch</code>
</TooManyArguments>
</file>
<file src="lib/private/App/DependencyAnalyzer.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>bool</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>version_compare($first, $second, $operator)</code>
</NullableReturnStatement>
</file>
<file src="lib/private/App/InfoParser.php">
- <InvalidArrayOffset occurrences="2">
+ <InvalidArrayOffset>
<code>$array[$element][]</code>
<code>$array[$element][]</code>
</InvalidArrayOffset>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>(string)$xml</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>array</code>
</InvalidReturnType>
</file>
<file src="lib/private/AppConfig.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>$values</code>
</FalsableReturnStatement>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>$default</code>
</NullableReturnStatement>
</file>
<file src="lib/private/AppFramework/Bootstrap/Coordinator.php">
- <InvalidPropertyAssignmentValue occurrences="1">
- <code>$this-&gt;bootedApps</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->bootedApps]]></code>
</InvalidPropertyAssignmentValue>
</file>
<file src="lib/private/AppFramework/Bootstrap/FunctionInjector.php">
- <UndefinedMethod occurrences="1">
+ <UndefinedMethod>
<code>getName</code>
</UndefinedMethod>
</file>
<file src="lib/private/AppFramework/DependencyInjection/DIContainer.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>boolean|null</code>
</ImplementedReturnTypeMismatch>
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;server</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->server]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="2">
+ <InvalidReturnType>
<code>\OCP\IServerContainer</code>
<code>mixed</code>
</InvalidReturnType>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getAppDataDir</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/AppFramework/Http/Dispatcher.php">
- <InvalidScalarArgument occurrences="1">
- <code>$throwable-&gt;getCode()</code>
- </InvalidScalarArgument>
- <NoInterfaceProperties occurrences="1">
- <code>$this-&gt;request-&gt;method</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->method]]></code>
</NoInterfaceProperties>
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="lib/private/AppFramework/Http/Output.php">
- <InvalidReturnStatement occurrences="2">
+ <InvalidReturnStatement>
<code>@readfile($path)</code>
<code>http_response_code()</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="2">
+ <InvalidReturnType>
<code>bool</code>
<code>int</code>
</InvalidReturnType>
</file>
<file src="lib/private/AppFramework/Http/Request.php">
- <NullableReturnStatement occurrences="9">
- <code>$host</code>
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
+ <NullableReturnStatement>
<code>$name</code>
<code>$remoteAddress</code>
- <code>$this-&gt;getOverwriteHost()</code>
- <code>$this-&gt;method</code>
+ <code><![CDATA[$this->getOverwriteHost()]]></code>
+ <code><![CDATA[$this->method]]></code>
<code>$uri</code>
- <code>isset($this-&gt;cookies[$key]) ? $this-&gt;cookies[$key] : null</code>
- <code>isset($this-&gt;env[$key]) ? $this-&gt;env[$key] : null</code>
- <code>isset($this-&gt;files[$key]) ? $this-&gt;files[$key] : null</code>
+ <code><![CDATA[isset($this->cookies[$key]) ? $this->cookies[$key] : null]]></code>
+ <code><![CDATA[isset($this->env[$key]) ? $this->env[$key] : null]]></code>
+ <code><![CDATA[isset($this->files[$key]) ? $this->files[$key] : null]]></code>
</NullableReturnStatement>
- <RedundantCondition occurrences="1">
+ <RedundantCondition>
<code>\is_array($params)</code>
</RedundantCondition>
- <UndefinedFunction occurrences="1">
+ <UndefinedFunction>
<code>\Sabre\HTTP\decodePath($pathInfo)</code>
</UndefinedFunction>
</file>
<file src="lib/private/AppFramework/Logger.php">
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>log</code>
</InvalidReturnType>
</file>
<file src="lib/private/AppFramework/Middleware/AdditionalScriptsMiddleware.php">
- <InvalidArgument occurrences="2">
+ <InvalidArgument>
<code>TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS</code>
<code>TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS_LOGGEDIN</code>
</InvalidArgument>
- <TooManyArguments occurrences="2">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/AppFramework/Middleware/OCSMiddleware.php">
- <InternalMethod occurrences="1">
+ <InternalMethod>
<code>setOCSVersion</code>
</InternalMethod>
</file>
<file src="lib/private/AppFramework/Middleware/Security/CORSMiddleware.php">
- <NoInterfaceProperties occurrences="2">
- <code>$this-&gt;request-&gt;server</code>
- <code>$this-&gt;request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->server]]></code>
+ <code><![CDATA[$this->request->server]]></code>
</NoInterfaceProperties>
</file>
<file src="lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php">
- <NoInterfaceProperties occurrences="1">
- <code>$this-&gt;request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->server]]></code>
</NoInterfaceProperties>
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OCA\Talk\Controller\PageController</code>
</UndefinedClass>
</file>
<file src="lib/private/AppFramework/Routing/RouteConfig.php">
- <InvalidArrayOffset occurrences="1">
- <code>$action['url-postfix']</code>
+ <InvalidArrayOffset>
+ <code><![CDATA[$action['url-postfix']]]></code>
</InvalidArrayOffset>
</file>
<file src="lib/private/AppFramework/Services/AppConfig.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$default</code>
</MoreSpecificImplementedParamType>
</file>
+ <file src="lib/private/AppFramework/Utility/SimpleContainer.php">
+ <MissingTemplateParam>
+ <code>ArrayAccess</code>
+ </MissingTemplateParam>
+ <RedundantCast>
+ <code><![CDATA[(int) $e->getCode()]]></code>
+ </RedundantCast>
+ </file>
<file src="lib/private/Archive/TAR.php">
- <UndefinedDocblockClass occurrences="1">
- <code>$this-&gt;tar-&gt;extractInString($path)</code>
+ <UndefinedDocblockClass>
+ <code><![CDATA[$this->tar->extractInString($path)]]></code>
</UndefinedDocblockClass>
</file>
+ <file src="lib/private/Authentication/Listeners/UserDeletedFilesCleanupListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="lib/private/Authentication/Listeners/UserDeletedWebAuthnCleanupListener.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/private/Authentication/LoginCredentials/Store.php">
- <RedundantCondition occurrences="1">
+ <RedundantCondition>
<code>$trySession</code>
</RedundantCondition>
</file>
+ <file src="lib/private/Authentication/Token/IToken.php">
+ <AmbiguousConstantInheritance>
+ <code>DO_NOT_REMEMBER</code>
+ <code>PERMANENT_TOKEN</code>
+ <code>REMEMBER</code>
+ <code>TEMPORARY_TOKEN</code>
+ <code>WIPE_TOKEN</code>
+ </AmbiguousConstantInheritance>
+ </file>
<file src="lib/private/Authentication/Token/PublicKeyToken.php">
- <UndefinedMagicMethod occurrences="16"/>
+ <UndefinedMagicMethod>
+ <code>getExpires</code>
+ <code>getLastCheck</code>
+ <code>getLoginName</code>
+ <code>getName</code>
+ <code>getPassword</code>
+ <code>getRemember</code>
+ <code>getScope</code>
+ <code>setExpires</code>
+ <code>setLastCheck</code>
+ <code>setName</code>
+ <code>setPassword</code>
+ <code>setPasswordInvalid</code>
+ <code>setScope</code>
+ <code>setScope</code>
+ <code>setToken</code>
+ <code>setType</code>
+ </UndefinedMagicMethod>
</file>
<file src="lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php">
- <InvalidReturnStatement occurrences="1"/>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnStatement>
+ <code><![CDATA[array_map(function (array $row) {
+ return [
+ 'provider_id' => $row['provider_id'],
+ 'uid' => $row['uid'],
+ 'enabled' => 1 === (int) $row['enabled'],
+ ];
+ }, $rows)]]></code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
<code>int[]</code>
</InvalidReturnType>
</file>
<file src="lib/private/Authentication/TwoFactorAuth/Manager.php">
- <InvalidArgument occurrences="2">
+ <InvalidArgument>
<code>IProvider::EVENT_FAILED</code>
<code>IProvider::EVENT_SUCCESS</code>
</InvalidArgument>
- <TooManyArguments occurrences="2">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/Authentication/TwoFactorAuth/ProviderSet.php">
- <InvalidArgument occurrences="1">
- <code>$this-&gt;providers</code>
+ <InvalidArgument>
+ <code><![CDATA[$this->providers]]></code>
</InvalidArgument>
- <InvalidPropertyAssignmentValue occurrences="2">
- <code>$this-&gt;providers</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->providers]]></code>
<code>[]</code>
</InvalidPropertyAssignmentValue>
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;providers</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->providers]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>IProvider[]</code>
</InvalidReturnType>
- <UndefinedInterfaceMethod occurrences="1">
- <code>$this-&gt;providers</code>
+ <UndefinedInterfaceMethod>
+ <code><![CDATA[$this->providers]]></code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Authentication/TwoFactorAuth/Registry.php">
- <InvalidArrayAccess occurrences="1">
- <code>$provider['provider_id']</code>
+ <InvalidArrayAccess>
+ <code><![CDATA[$provider['provider_id']]]></code>
</InvalidArrayAccess>
</file>
<file src="lib/private/BackgroundJob/QueuedJob.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
+ <code>$jobList</code>
<code>$jobList</code>
</MoreSpecificImplementedParamType>
</file>
+ <file src="lib/private/Cache/CappedMemoryCache.php">
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/private/Cache/File.php">
- <LessSpecificImplementedReturnType occurrences="2">
+ <LessSpecificImplementedReturnType>
<code>bool|mixed</code>
<code>bool|mixed</code>
</LessSpecificImplementedReturnType>
</file>
- <file src="lib/private/Collaboration/Reference/File/FileReferenceEventListener.php">
- <InvalidArgument occurrences="3">
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- <code>addServiceListener</code>
- </InvalidArgument>
- </file>
- <file src="lib/private/Collaboration/Reference/RenderReferenceEventListener.php">
- <InvalidArgument occurrences="1">
- <code>addServiceListener</code>
- </InvalidArgument>
+ <file src="lib/private/Calendar/Manager.php">
+ <NamedArgumentNotAllowed>
+ <code><![CDATA[array_map(function ($registration) use ($principalUri, $calendarUris) {
+ try {
+ /** @var ICalendarProvider $provider */
+ $provider = $this->container->get($registration->getService());
+ } catch (Throwable $e) {
+ $this->logger->error('Could not load calendar provider ' . $registration->getService() . ': ' . $e->getMessage(), [
+ 'exception' => $e,
+ ]);
+ return [];
+ }
+
+ return $provider->getCalendars($principalUri, $calendarUris);
+ }, $context->getCalendarProviders())]]></code>
+ </NamedArgumentNotAllowed>
</file>
<file src="lib/private/Command/CallableJob.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$serializedCallable</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Command/ClosureJob.php">
- <ParamNameMismatch occurrences="1">
+ <InvalidArgument>
+ <code>[LaravelClosure::class, OpisClosure::class]</code>
+ </InvalidArgument>
+ <ParamNameMismatch>
<code>$serializedCallable</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Command/CommandJob.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$serializedCommand</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Comments/Comment.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>\DateTime|null</code>
</ImplementedReturnTypeMismatch>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$timestamp</code>
</ParamNameMismatch>
- <TypeDoesNotContainType occurrences="1">
+ <TypeDoesNotContainType>
<code>!is_array($mentions[0])</code>
</TypeDoesNotContainType>
</file>
<file src="lib/private/Comments/Manager.php">
- <InvalidDocblock occurrences="1">
+ <InvalidDocblock>
<code>public function getForObjectSince(</code>
</InvalidDocblock>
+ <RedundantCast>
+ <code>(string)$id</code>
+ </RedundantCast>
</file>
<file src="lib/private/Config.php">
- <InvalidOperand occurrences="2">
- <code>$this-&gt;delete($key)</code>
- <code>$this-&gt;set($key, $value)</code>
+ <InvalidOperand>
+ <code><![CDATA[$this->delete($key)]]></code>
+ <code><![CDATA[$this->set($key, $value)]]></code>
</InvalidOperand>
- <UndefinedVariable occurrences="2">
+ <UndefinedVariable>
<code>$CONFIG</code>
<code>$CONFIG</code>
</UndefinedVariable>
</file>
<file src="lib/private/Console/Application.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>ConsoleEvent::EVENT_RUN</code>
</InvalidArgument>
- <NoInterfaceProperties occurrences="1">
- <code>$this-&gt;request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->server]]></code>
</NoInterfaceProperties>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/ContactsManager.php">
- <InvalidNullableReturnType occurrences="3">
+ <InvalidArgument>
+ <code>$searchOptions</code>
+ </InvalidArgument>
+ <InvalidNullableReturnType>
<code>IAddressBook</code>
<code>array</code>
<code>bool</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="5">
+ <NullableReturnStatement>
<code>null</code>
<code>null</code>
<code>null</code>
<code>null</code>
<code>null</code>
</NullableReturnStatement>
- <ParamNameMismatch occurrences="2">
+ <ParamNameMismatch>
<code>$addressBook</code>
<code>$addressBook</code>
</ParamNameMismatch>
</file>
<file src="lib/private/DB/Adapter.php">
- <InvalidReturnStatement occurrences="1">
- <code>$builder-&gt;execute()</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$builder->execute()]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>int</code>
</InvalidReturnType>
</file>
<file src="lib/private/DB/AdapterMySQL.php">
- <InternalMethod occurrences="1">
+ <InternalMethod>
<code>getParams</code>
</InternalMethod>
+ <InvalidArrayOffset>
+ <code><![CDATA[$params['collation']]]></code>
+ </InvalidArrayOffset>
</file>
<file src="lib/private/DB/Connection.php">
- <InternalMethod occurrences="1">
+ <InternalMethod>
<code>getParams</code>
</InternalMethod>
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;adapter-&gt;lastInsertId($seqName)</code>
+ <InvalidArgument>
+ <code>$params</code>
+ </InvalidArgument>
+ <InvalidArrayOffset>
+ <code><![CDATA[$params['adapter']]]></code>
+ <code><![CDATA[$params['tablePrefix']]]></code>
+ </InvalidArrayOffset>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->adapter->lastInsertId($seqName)]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string</code>
</InvalidReturnType>
- <ParamNameMismatch occurrences="2">
+ <ParamNameMismatch>
<code>$seqName</code>
<code>$statement</code>
</ParamNameMismatch>
</file>
+ <file src="lib/private/DB/Exceptions/DbalException.php">
+ <RedundantCondition>
+ <code><![CDATA[is_int($original->getCode())]]></code>
+ </RedundantCondition>
+ <TypeDoesNotContainType>
+ <code>0</code>
+ </TypeDoesNotContainType>
+ </file>
<file src="lib/private/DB/MigrationService.php">
- <InvalidOperand occurrences="2">
+ <InvalidOperand>
<code>$offset</code>
<code>$offset</code>
</InvalidOperand>
</file>
<file src="lib/private/DB/OracleConnection.php">
- <InvalidArrayAccess occurrences="1">
+ <InvalidArrayAccess>
<code>$key[0]</code>
</InvalidArrayAccess>
</file>
<file src="lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php">
- <ImplicitToStringCast occurrences="1">
- <code>$this-&gt;functionBuilder-&gt;lower($x)</code>
+ <ImplicitToStringCast>
+ <code><![CDATA[$this->functionBuilder->lower($x)]]></code>
</ImplicitToStringCast>
- <InvalidScalarArgument occurrences="2">
+ <InvalidArgument>
<code>$y</code>
<code>$y</code>
- </InvalidScalarArgument>
+ </InvalidArgument>
</file>
<file src="lib/private/DB/QueryBuilder/ExpressionBuilder/MySqlExpressionBuilder.php">
- <InternalMethod occurrences="1">
+ <InternalMethod>
<code>getParams</code>
</InternalMethod>
+ <InvalidArrayOffset>
+ <code><![CDATA[$params['collation']]]></code>
+ </InvalidArrayOffset>
</file>
<file src="lib/private/DB/QueryBuilder/QueryBuilder.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>string</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>$alias</code>
</NullableReturnStatement>
- <ParamNameMismatch occurrences="2">
+ <ParamNameMismatch>
<code>$groupBys</code>
<code>$selects</code>
</ParamNameMismatch>
</file>
<file src="lib/private/DB/QueryBuilder/QuoteHelper.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>string</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>$string</code>
</NullableReturnStatement>
</file>
<file src="lib/private/DateTimeFormatter.php">
- <FalsableReturnStatement occurrences="1"/>
- <InvalidDocblock occurrences="2">
+ <FalsableReturnStatement>
+ <code><![CDATA[$l->l($type, $timestamp, [
+ 'width' => $format,
+ ])]]></code>
+ </FalsableReturnStatement>
+ <InvalidDocblock>
<code>public function formatDateSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null) {</code>
<code>public function formatTimeSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null) {</code>
</InvalidDocblock>
- <InvalidReturnStatement occurrences="1"/>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnStatement>
+ <code><![CDATA[$l->l($type, $timestamp, [
+ 'width' => $format,
+ ])]]></code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
<code>string</code>
</InvalidReturnType>
</file>
<file src="lib/private/DateTimeZone.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidScalarArgument>
<code>$timestamp</code>
</InvalidScalarArgument>
</file>
<file src="lib/private/Diagnostics/Query.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>float</code>
</ImplementedReturnTypeMismatch>
</file>
<file src="lib/private/Diagnostics/QueryLogger.php">
- <InvalidReturnType occurrences="1">
+ <InvalidArgument>
+ <code>microtime(true)</code>
+ </InvalidArgument>
+ <InvalidReturnType>
<code>stopQuery</code>
</InvalidReturnType>
- <InvalidScalarArgument occurrences="1">
- <code>microtime(true)</code>
- </InvalidScalarArgument>
</file>
<file src="lib/private/DirectEditing/Manager.php">
- <InvalidReturnStatement occurrences="1">
- <code>$query-&gt;execute()</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$query->execute()]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="2">
+ <InvalidReturnType>
<code>TemplateResponse</code>
<code>int</code>
</InvalidReturnType>
- <UndefinedMethod occurrences="2">
+ <UndefinedMethod>
+ <code>$template</code>
+ <code>$template</code>
<code>$template</code>
<code>$template</code>
</UndefinedMethod>
</file>
<file src="lib/private/DirectEditing/Token.php">
- <UndefinedMethod occurrences="1">
+ <UndefinedMethod>
<code>getShareForToken</code>
</UndefinedMethod>
</file>
<file src="lib/private/Encryption/Keys/Storage.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>deleteUserKey</code>
</InvalidNullableReturnType>
- <NullArgument occurrences="3">
+ <NullArgument>
<code>null</code>
<code>null</code>
<code>null</code>
</NullArgument>
</file>
<file src="lib/private/Encryption/Manager.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>bool</code>
</ImplementedReturnTypeMismatch>
</file>
<file src="lib/private/EventDispatcher/EventDispatcher.php">
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/EventDispatcher/SymfonyAdapter.php">
- <ImplementedParamTypeMismatch occurrences="1">
+ <ImplementedParamTypeMismatch>
<code>$eventName</code>
</ImplementedParamTypeMismatch>
- <ParamNameMismatch occurrences="1">
+ <NoValue>
+ <code>$listener</code>
+ </NoValue>
+ <ParamNameMismatch>
<code>$eventName</code>
</ParamNameMismatch>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/Federation/CloudFederationProviderManager.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$providerId</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Files/Cache/Cache.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$parentData</code>
</InvalidArgument>
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>array</code>
</InvalidNullableReturnType>
- <InvalidScalarArgument occurrences="3">
- <code>$path</code>
+ <InvalidScalarArgument>
<code>$path</code>
<code>\OC_Util::normalizeUnicode($path)</code>
</InvalidScalarArgument>
- <NullableReturnStatement occurrences="2">
+ <NullableReturnStatement>
<code>null</code>
<code>null</code>
</NullableReturnStatement>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$searchQuery</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Files/Cache/FailedCache.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>[]</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="3">
+ <InvalidReturnType>
<code>getIncomplete</code>
<code>insert</code>
<code>put</code>
</InvalidReturnType>
</file>
<file src="lib/private/Files/Cache/HomeCache.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>$data</code>
</FalsableReturnStatement>
- <MoreSpecificImplementedParamType occurrences="1"/>
+ <MoreSpecificImplementedParamType>
+ <code>$file</code>
+ <code>$file</code>
+ </MoreSpecificImplementedParamType>
</file>
<file src="lib/private/Files/Cache/Scanner.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidArgument>
+ <code>self::SCAN_RECURSIVE_INCOMPLETE</code>
+ </InvalidArgument>
+ <InvalidReturnStatement>
<code>$existingChildren</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>array[]</code>
</InvalidReturnType>
- <InvalidScalarArgument occurrences="1">
- <code>self::SCAN_RECURSIVE_INCOMPLETE</code>
- </InvalidScalarArgument>
</file>
<file src="lib/private/Files/Cache/Storage.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>array</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
- <code>self::getGlobalCache()-&gt;getStorageInfo($storageId)</code>
+ <NullableReturnStatement>
+ <code><![CDATA[self::getGlobalCache()->getStorageInfo($storageId)]]></code>
</NullableReturnStatement>
</file>
<file src="lib/private/Files/Cache/Updater.php">
- <RedundantCondition occurrences="1">
- <code>$this-&gt;cache instanceof Cache</code>
+ <RedundantCondition>
+ <code><![CDATA[$this->cache instanceof Cache]]></code>
</RedundantCondition>
</file>
<file src="lib/private/Files/Cache/Wrapper/CacheWrapper.php">
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
+ <code>array</code>
<code>array</code>
</LessSpecificImplementedReturnType>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$searchQuery</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Files/Config/MountProviderCollection.php">
- <InvalidOperand occurrences="1">
+ <InvalidOperand>
<code>$user</code>
</InvalidOperand>
- <RedundantCondition occurrences="1">
- <code>get_class($provider) !== 'OCA\Files_Sharing\MountProvider'</code>
+ <RedundantCondition>
+ <code><![CDATA[get_class($provider) !== 'OCA\Files_Sharing\MountProvider']]></code>
</RedundantCondition>
- <TypeDoesNotContainType occurrences="1">
- <code>get_class($provider) === 'OCA\Files_Sharing\MountProvider'</code>
+ <TypeDoesNotContainType>
+ <code><![CDATA[get_class($provider) === 'OCA\Files_Sharing\MountProvider']]></code>
</TypeDoesNotContainType>
</file>
<file src="lib/private/Files/Config/UserMountCache.php">
- <InvalidReturnType occurrences="2">
+ <InvalidReturnType>
<code>remoteStorageMounts</code>
<code>removeUserStorageMount</code>
</InvalidReturnType>
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
<code>array</code>
</LessSpecificImplementedReturnType>
</file>
+ <file src="lib/private/Files/FileInfo.php">
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/private/Files/Filesystem.php">
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>addStorageWrapper</code>
</TooManyArguments>
</file>
<file src="lib/private/Files/Mount/MountPoint.php">
- <InvalidScalarArgument occurrences="1">
- <code>$exception-&gt;getCode()</code>
- </InvalidScalarArgument>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>wrap</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Files/Mount/ObjectHomeMountProvider.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>\OCP\Files\Mount\IMountPoint</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="lib/private/Files/Node/File.php">
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;view-&gt;hash($type, $this-&gt;path, $raw)</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->view->hash($type, $this->path, $raw)]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
- <code>string</code>
+ <InvalidReturnType>
<code>string</code>
</InvalidReturnType>
</file>
<file src="lib/private/Files/Node/Folder.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$node</code>
</MoreSpecificImplementedParamType>
</file>
<file src="lib/private/Files/Node/HookConnector.php">
- <InvalidArgument occurrences="13">
- <code>'\OCP\Files::postCopy'</code>
- <code>'\OCP\Files::postCreate'</code>
- <code>'\OCP\Files::postDelete'</code>
- <code>'\OCP\Files::postRename'</code>
- <code>'\OCP\Files::postTouch'</code>
- <code>'\OCP\Files::postWrite'</code>
- <code>'\OCP\Files::preCopy'</code>
- <code>'\OCP\Files::preCreate'</code>
- <code>'\OCP\Files::preDelete'</code>
- <code>'\OCP\Files::preRename'</code>
- <code>'\OCP\Files::preTouch'</code>
- <code>'\OCP\Files::preWrite'</code>
- <code>'\OCP\Files::read'</code>
+ <InvalidArgument>
+ <code><![CDATA['\OCP\Files::postCopy']]></code>
+ <code><![CDATA['\OCP\Files::postCreate']]></code>
+ <code><![CDATA['\OCP\Files::postDelete']]></code>
+ <code><![CDATA['\OCP\Files::postRename']]></code>
+ <code><![CDATA['\OCP\Files::postTouch']]></code>
+ <code><![CDATA['\OCP\Files::postWrite']]></code>
+ <code><![CDATA['\OCP\Files::preCopy']]></code>
+ <code><![CDATA['\OCP\Files::preCreate']]></code>
+ <code><![CDATA['\OCP\Files::preDelete']]></code>
+ <code><![CDATA['\OCP\Files::preRename']]></code>
+ <code><![CDATA['\OCP\Files::preTouch']]></code>
+ <code><![CDATA['\OCP\Files::preWrite']]></code>
+ <code><![CDATA['\OCP\Files::read']]></code>
</InvalidArgument>
- <TooManyArguments occurrences="13">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
@@ -2114,7 +2692,7 @@
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
- <UndefinedInterfaceMethod occurrences="13">
+ <UndefinedInterfaceMethod>
<code>emit</code>
<code>emit</code>
<code>emit</code>
@@ -2131,344 +2709,317 @@
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Files/Node/LazyFolder.php">
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;__call(__FUNCTION__, func_get_args())</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->__call(__FUNCTION__, func_get_args())]]></code>
</InvalidReturnStatement>
</file>
<file src="lib/private/Files/Node/Node.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>Node</code>
</ImplementedReturnTypeMismatch>
- <InvalidArgument occurrences="1">
- <code>'\OCP\Files::' . $hook</code>
+ <InvalidArgument>
+ <code><![CDATA['\OCP\Files::' . $hook]]></code>
</InvalidArgument>
- <InvalidNullableReturnType occurrences="1"/>
- <InvalidReturnType occurrences="1">
+ <InvalidNullableReturnType>
+ <code>FileInfo</code>
+ </InvalidNullableReturnType>
+ <InvalidReturnType>
<code>getChecksum</code>
</InvalidReturnType>
- <NullableReturnStatement occurrences="1"/>
- <ParamNameMismatch occurrences="1">
+ <NullableReturnStatement>
+ <code><![CDATA[$this->fileInfo]]></code>
+ </NullableReturnStatement>
+ <ParamNameMismatch>
<code>$type</code>
</ParamNameMismatch>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
- <UndefinedInterfaceMethod occurrences="1">
- <code>$this-&gt;fileInfo</code>
+ <UndefinedInterfaceMethod>
+ <code><![CDATA[$this->fileInfo]]></code>
+ <code><![CDATA[$this->fileInfo]]></code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Files/Node/Root.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>Node</code>
</ImplementedReturnTypeMismatch>
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>\OC\User\User</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
- <code>$this-&gt;user</code>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->user]]></code>
</NullableReturnStatement>
- <UndefinedMethod occurrences="1">
+ <UndefinedMethod>
<code>remove</code>
</UndefinedMethod>
</file>
<file src="lib/private/Files/ObjectStore/HomeObjectStoreStorage.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>false|string</code>
</ImplementedReturnTypeMismatch>
</file>
<file src="lib/private/Files/ObjectStore/NoopScanner.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$cacheData</code>
</MoreSpecificImplementedParamType>
</file>
<file src="lib/private/Files/ObjectStore/ObjectStoreStorage.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidScalarArgument>
<code>$source</code>
</InvalidScalarArgument>
</file>
<file src="lib/private/Files/ObjectStore/S3ConnectionTrait.php">
- <InternalClass occurrences="1">
+ <InternalClass>
+ <code>ClientResolver::_default_signature_provider()</code>
<code>ClientResolver::_default_signature_provider()</code>
</InternalClass>
- <InternalMethod occurrences="1">
+ <InternalMethod>
<code>ClientResolver::_default_signature_provider()</code>
</InternalMethod>
- <UndefinedFunction occurrences="2">
- <code>\Aws\or_chain([self::class, 'legacySignatureProvider'], ClientResolver::_default_signature_provider())</code>
+ <UndefinedFunction>
+ <code>Promise\promise_for(
+ new Credentials($key, $secret)
+ )</code>
+ <code><![CDATA[\Aws\or_chain([self::class, 'legacySignatureProvider'], ClientResolver::_default_signature_provider())]]></code>
</UndefinedFunction>
</file>
<file src="lib/private/Files/ObjectStore/S3ObjectTrait.php">
- <InternalMethod occurrences="1">
+ <InternalMethod>
<code>upload</code>
</InternalMethod>
- <UndefinedFunction occurrences="1">
+ <UndefinedFunction>
<code>\Aws\serialize($command)</code>
</UndefinedFunction>
</file>
<file src="lib/private/Files/ObjectStore/S3Signature.php">
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="lib/private/Files/ObjectStore/StorageObjectStore.php">
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>string</code>
</InvalidReturnType>
</file>
<file src="lib/private/Files/Storage/Common.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>string|false</code>
</ImplementedReturnTypeMismatch>
- <InvalidOperand occurrences="2">
+ <InvalidOperand>
<code>!$permissions</code>
- <code>$this-&gt;copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file)</code>
+ <code><![CDATA[$this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file)]]></code>
</InvalidOperand>
- <NoInterfaceProperties occurrences="8">
- <code>$storage-&gt;cache</code>
- <code>$storage-&gt;cache</code>
- <code>$storage-&gt;propagator</code>
- <code>$storage-&gt;propagator</code>
- <code>$storage-&gt;scanner</code>
- <code>$storage-&gt;scanner</code>
- <code>$storage-&gt;updater</code>
- <code>$storage-&gt;updater</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$storage->cache]]></code>
+ <code><![CDATA[$storage->cache]]></code>
+ <code><![CDATA[$storage->propagator]]></code>
+ <code><![CDATA[$storage->propagator]]></code>
+ <code><![CDATA[$storage->scanner]]></code>
+ <code><![CDATA[$storage->scanner]]></code>
+ <code><![CDATA[$storage->updater]]></code>
+ <code><![CDATA[$storage->updater]]></code>
</NoInterfaceProperties>
</file>
<file src="lib/private/Files/Storage/DAV.php">
- <InvalidClass occurrences="2">
+ <InvalidClass>
<code>ArrayCache</code>
<code>ArrayCache</code>
</InvalidClass>
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>getETag</code>
</InvalidNullableReturnType>
- <InvalidReturnStatement occurrences="1">
- <code>$response-&gt;getBody()</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$response->getBody()]]></code>
+ <code>IteratorDirectory::wrap($content)</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>fopen</code>
+ <code>opendir</code>
</InvalidReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="lib/private/Files/Storage/FailedStorage.php">
- <InvalidReturnStatement occurrences="2">
+ <InvalidReturnStatement>
<code>new FailedCache()</code>
<code>true</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="2">
+ <InvalidReturnType>
<code>getCache</code>
<code>verifyPath</code>
</InvalidReturnType>
- <InvalidScalarArgument occurrences="38">
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- <code>$this-&gt;e-&gt;getCode()</code>
- </InvalidScalarArgument>
</file>
<file src="lib/private/Files/Storage/Local.php">
- <ImplicitToStringCast occurrences="1">
+ <ImplicitToStringCast>
<code>$file</code>
</ImplicitToStringCast>
- <InvalidOperand occurrences="1">
+ <InvalidOperand>
<code>$result</code>
</InvalidOperand>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$result</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>rename</code>
</InvalidReturnType>
- <TypeDoesNotContainNull occurrences="2">
+ <TypeDoesNotContainNull>
<code>$space === false || is_null($space)</code>
<code>is_null($space)</code>
</TypeDoesNotContainNull>
- <TypeDoesNotContainType occurrences="1">
+ <TypeDoesNotContainType>
<code>$stat === false</code>
</TypeDoesNotContainType>
</file>
<file src="lib/private/Files/Storage/LocalRootStorage.php">
- <NoInterfaceProperties occurrences="2">
- <code>$storage-&gt;scanner</code>
- <code>$storage-&gt;scanner</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$storage->scanner]]></code>
+ <code><![CDATA[$storage->scanner]]></code>
</NoInterfaceProperties>
</file>
<file src="lib/private/Files/Storage/Wrapper/Encoding.php">
- <InvalidScalarArgument occurrences="3">
+ <InvalidArgument>
<code>\Normalizer::FORM_C</code>
<code>\Normalizer::FORM_C</code>
<code>\Normalizer::FORM_D</code>
- </InvalidScalarArgument>
- <UndefinedInterfaceMethod occurrences="13">
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
- <code>$this-&gt;namesCache</code>
+ </InvalidArgument>
+ <UndefinedInterfaceMethod>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
+ <code><![CDATA[$this->namesCache]]></code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Files/Storage/Wrapper/Encryption.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>false</code>
</FalsableReturnStatement>
- <InvalidOperand occurrences="3">
+ <InvalidOperand>
<code>$result</code>
<code>$result</code>
- <code>$this-&gt;copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file, false, $isRename)</code>
+ <code><![CDATA[$this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file, false, $isRename)]]></code>
</InvalidOperand>
- <InvalidReturnStatement occurrences="3">
+ <InvalidReturnStatement>
<code>$newUnencryptedSize</code>
<code>$result</code>
- <code>$this-&gt;storage-&gt;file_get_contents($path)</code>
+ <code><![CDATA[$this->storage->file_get_contents($path)]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="3">
+ <InvalidReturnType>
<code>bool</code>
<code>int</code>
<code>string</code>
</InvalidReturnType>
- <InvalidScalarArgument occurrences="4">
+ <InvalidScalarArgument>
<code>$lastChunkPos</code>
- <code>$newUnencryptedSize</code>
- <code>$size</code>
<code>$size</code>
- <code>$sourceStorage-&gt;filemtime($sourceInternalPath)</code>
</InvalidScalarArgument>
</file>
<file src="lib/private/Files/Storage/Wrapper/Jail.php">
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;getWrapperStorage()-&gt;filetype($this-&gt;getUnjailedPath($path))</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->getWrapperStorage()->filetype($this->getUnjailedPath($path))]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>bool</code>
</InvalidReturnType>
</file>
- <file src="lib/private/Files/Storage/Wrapper/Quota.php">
- <InvalidScalarArgument occurrences="1">
- <code>$free</code>
- </InvalidScalarArgument>
- </file>
<file src="lib/private/Files/Storage/Wrapper/Wrapper.php">
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;getWrapperStorage()-&gt;test()</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->getWrapperStorage()->test()]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>true</code>
</InvalidReturnType>
</file>
<file src="lib/private/Files/Stream/SeekableHttpStream.php">
- <InvalidReturnType occurrences="2">
+ <InvalidReturnType>
<code>stream_close</code>
<code>stream_flush</code>
</InvalidReturnType>
</file>
<file src="lib/private/Files/Template/TemplateManager.php">
- <RedundantCondition occurrences="1">
+ <RedundantCondition>
<code>!$isDefaultTemplates</code>
</RedundantCondition>
</file>
<file src="lib/private/Files/Type/Detection.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$mimetype</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Files/Type/Loader.php">
- <InvalidReturnStatement occurrences="1">
- <code>$update-&gt;execute()</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$update->execute()]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>int</code>
</InvalidReturnType>
</file>
<file src="lib/private/Files/View.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidScalarArgument>
<code>$mtime</code>
</InvalidScalarArgument>
+ <UndefinedInterfaceMethod>
+ <code>acquireLock</code>
+ <code>changeLock</code>
+ <code>releaseLock</code>
+ </UndefinedInterfaceMethod>
</file>
<file src="lib/private/FullTextSearch/Model/IndexDocument.php">
- <TypeDoesNotContainNull occurrences="1">
- <code>is_null($this-&gt;getContent())</code>
+ <TypeDoesNotContainNull>
+ <code><![CDATA[is_null($this->getContent())]]></code>
</TypeDoesNotContainNull>
</file>
<file src="lib/private/Group/Database.php">
- <InvalidArrayOffset occurrences="1">
- <code>$this-&gt;groupCache[$gid]['displayname']</code>
+ <InvalidArrayOffset>
+ <code><![CDATA[$this->groupCache[$gid]['displayname']]]></code>
</InvalidArrayOffset>
- <InvalidPropertyAssignmentValue occurrences="3">
- <code>$this-&gt;groupCache</code>
- <code>$this-&gt;groupCache</code>
- <code>$this-&gt;groupCache</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->groupCache]]></code>
+ <code><![CDATA[$this->groupCache]]></code>
+ <code><![CDATA[$this->groupCache]]></code>
</InvalidPropertyAssignmentValue>
</file>
+ <file src="lib/private/Group/DisplayNameCache.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/private/Group/Group.php">
- <InvalidArgument occurrences="7">
- <code>IGroup::class . '::postAddUser'</code>
- <code>IGroup::class . '::postDelete'</code>
- <code>IGroup::class . '::postRemoveUser'</code>
- <code>IGroup::class . '::preAddUser'</code>
- <code>IGroup::class . '::preDelete'</code>
- <code>IGroup::class . '::preRemoveUser'</code>
+ <InvalidArgument>
+ <code><![CDATA[IGroup::class . '::postAddUser']]></code>
+ <code><![CDATA[IGroup::class . '::postDelete']]></code>
+ <code><![CDATA[IGroup::class . '::postRemoveUser']]></code>
+ <code><![CDATA[IGroup::class . '::preAddUser']]></code>
+ <code><![CDATA[IGroup::class . '::preDelete']]></code>
+ <code><![CDATA[IGroup::class . '::preRemoveUser']]></code>
<code>bool</code>
</InvalidArgument>
- <InvalidOperand occurrences="1">
+ <InvalidOperand>
<code>$hide</code>
</InvalidOperand>
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$user</code>
</MoreSpecificImplementedParamType>
- <RedundantCondition occurrences="6">
- <code>$this-&gt;emitter</code>
- <code>$this-&gt;emitter</code>
- <code>$this-&gt;emitter</code>
- <code>$this-&gt;emitter</code>
- <code>$this-&gt;emitter</code>
- <code>$this-&gt;emitter</code>
+ <RedundantCondition>
+ <code><![CDATA[$this->emitter]]></code>
+ <code><![CDATA[$this->emitter]]></code>
+ <code><![CDATA[$this->emitter]]></code>
</RedundantCondition>
- <TooManyArguments occurrences="6">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
@@ -2476,7 +3027,7 @@
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
- <UndefinedMethod occurrences="4">
+ <UndefinedMethod>
<code>addToGroup</code>
<code>countUsersInGroup</code>
<code>deleteGroup</code>
@@ -2484,170 +3035,225 @@
</UndefinedMethod>
</file>
<file src="lib/private/Group/Manager.php">
- <UndefinedInterfaceMethod occurrences="3">
+ <UndefinedInterfaceMethod>
<code>createGroup</code>
<code>getGroupDetails</code>
<code>isAdmin</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Http/Client/Response.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>string|resource</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1"/>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->stream ?
+ $this->response->getBody()->detach():
+ $this->response->getBody()->getContents()]]></code>
+ </NullableReturnStatement>
</file>
<file src="lib/private/Installer.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>false</code>
</FalsableReturnStatement>
- <InvalidArgument occurrences="2">
+ <InvalidArgument>
<code>false</code>
<code>false</code>
</InvalidArgument>
- <InvalidArrayOffset occurrences="2">
- <code>$app['path']</code>
- <code>$app['path']</code>
+ <InvalidArrayOffset>
+ <code><![CDATA[$app['path']]]></code>
+ <code><![CDATA[$app['path']]]></code>
</InvalidArrayOffset>
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="lib/private/IntegrityCheck/Checker.php">
- <InvalidArrayAccess occurrences="3">
- <code>$x509-&gt;getDN(X509::DN_OPENSSL)['CN']</code>
- <code>$x509-&gt;getDN(X509::DN_OPENSSL)['CN']</code>
- <code>$x509-&gt;getDN(true)['CN']</code>
+ <InvalidArrayAccess>
+ <code><![CDATA[$x509->getDN(X509::DN_OPENSSL)['CN']]]></code>
+ <code><![CDATA[$x509->getDN(X509::DN_OPENSSL)['CN']]]></code>
+ <code><![CDATA[$x509->getDN(true)['CN']]]></code>
</InvalidArrayAccess>
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>getAllAliases</code>
<code>getOnlyDefaultAliases</code>
</UndefinedInterfaceMethod>
</file>
+ <file src="lib/private/IntegrityCheck/Iterator/ExcludeFileByNameFilterIterator.php">
+ <MissingTemplateParam>
+ <code>ExcludeFileByNameFilterIterator</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php">
+ <MissingTemplateParam>
+ <code>ExcludeFoldersByPathFilterIterator</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/private/L10N/Factory.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>null|string</code>
</ImplementedReturnTypeMismatch>
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
<code>array|mixed</code>
</LessSpecificImplementedReturnType>
</file>
<file src="lib/private/LargeFileHelper.php">
- <InvalidOperand occurrences="1">
+ <InvalidOperand>
<code>$matches[1]</code>
</InvalidOperand>
- <InvalidScalarArgument occurrences="1">
- <code>$data</code>
- </InvalidScalarArgument>
</file>
<file src="lib/private/Lockdown/Filesystem/NullCache.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>get</code>
</InvalidNullableReturnType>
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>[]</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>getIncomplete</code>
</InvalidReturnType>
- <NullableReturnStatement occurrences="1"/>
+ <NullableReturnStatement>
+ <code><![CDATA[$file !== '' ? null :
+ new CacheEntry([
+ 'fileid' => -1,
+ 'parent' => -1,
+ 'name' => '',
+ 'path' => '',
+ 'size' => '0',
+ 'mtime' => time(),
+ 'storage_mtime' => time(),
+ 'etag' => '',
+ 'mimetype' => FileInfo::MIMETYPE_FOLDER,
+ 'mimepart' => 'httpd',
+ 'permissions' => Constants::PERMISSION_READ
+ ])]]></code>
+ </NullableReturnStatement>
</file>
<file src="lib/private/Lockdown/Filesystem/NullStorage.php">
- <InvalidNullableReturnType occurrences="2">
+ <InvalidNullableReturnType>
<code>getOwner</code>
<code>getPermissions</code>
</InvalidNullableReturnType>
- <InvalidReturnStatement occurrences="2">
+ <InvalidReturnStatement>
<code>new IteratorDirectory([])</code>
<code>new NullCache()</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="2">
+ <InvalidReturnType>
<code>getCache</code>
<code>opendir</code>
</InvalidReturnType>
- <NullableReturnStatement occurrences="2">
+ <NullableReturnStatement>
<code>null</code>
<code>null</code>
</NullableReturnStatement>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>new IteratorDirectory([])</code>
</TooManyArguments>
</file>
<file src="lib/private/Lockdown/LockdownManager.php">
- <InvalidFunctionCall occurrences="1">
+ <InvalidFunctionCall>
<code>$callback()</code>
</InvalidFunctionCall>
- <InvalidPropertyAssignmentValue occurrences="1">
+ <InvalidPropertyAssignmentValue>
<code>$sessionCallback</code>
</InvalidPropertyAssignmentValue>
</file>
<file src="lib/private/Log.php">
- <RedundantCondition occurrences="2">
- <code>$request</code>
+ <RedundantCondition>
<code>$request</code>
</RedundantCondition>
</file>
<file src="lib/private/Log/File.php">
- <TypeDoesNotContainNull occurrences="1">
+ <TypeDoesNotContainNull>
<code>$limit === null</code>
</TypeDoesNotContainNull>
</file>
<file src="lib/private/Log/LogDetails.php">
- <RedundantCondition occurrences="1">
- <code>is_string($request-&gt;getMethod())</code>
+ <RedundantCondition>
+ <code><![CDATA[is_string($request->getMethod())]]></code>
</RedundantCondition>
</file>
<file src="lib/private/Log/Rotate.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$dummy</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Log/Systemdlog.php">
- <UndefinedFunction occurrences="1"/>
+ <UndefinedFunction>
+ <code><![CDATA[sd_journal_send('PRIORITY='.$journal_level,
+ 'SYSLOG_IDENTIFIER='.$this->syslogId,
+ 'MESSAGE=' . $this->logDetailsAsJSON($app, $message, $level))]]></code>
+ </UndefinedFunction>
</file>
<file src="lib/private/Memcache/APCu.php">
- <InvalidReturnStatement occurrences="1">
- <code>apcu_add($this-&gt;getPrefix() . $key, $value, $ttl)</code>
+ <InvalidClass>
+ <code>\APCUIterator</code>
+ </InvalidClass>
+ <InvalidReturnStatement>
+ <code><![CDATA[apcu_add($this->getPrefix() . $key, $value, $ttl)]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>bool</code>
</InvalidReturnType>
</file>
<file src="lib/private/Memcache/Cache.php">
- <LessSpecificImplementedReturnType occurrences="4">
+ <LessSpecificImplementedReturnType>
<code>mixed</code>
<code>mixed</code>
<code>mixed</code>
<code>mixed</code>
</LessSpecificImplementedReturnType>
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
+ </file>
+ <file src="lib/private/Memcache/ProfilerWrapperCache.php">
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
</file>
<file src="lib/private/Memcache/Redis.php">
- <InvalidMethodCall occurrences="2">
+ <InvalidMethodCall>
<code>exec</code>
<code>exec</code>
</InvalidMethodCall>
</file>
+ <file src="lib/private/Metadata/Provider/ExifProvider.php">
+ <InvalidReturnStatement>
+ <code>$exifData</code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
+ <code><![CDATA[array{'gps': FileMetadata, 'size': FileMetadata}]]></code>
+ </InvalidReturnType>
+ </file>
<file src="lib/private/NavigationManager.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$id</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Preview/BackgroundCleanupJob.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>[]</code>
</InvalidReturnStatement>
</file>
<file src="lib/private/Preview/Generator.php">
- <InvalidArgument occurrences="2">
+ <InvalidArgument>
<code>$maxPreviewImage</code>
+ <code>$semId</code>
<code>IPreview::EVENT</code>
</InvalidArgument>
- <MismatchingDocblockParamType occurrences="1">
+ <InvalidReturnStatement>
+ <code>$sem</code>
+ </InvalidReturnStatement>
+ <InvalidReturnType>
+ <code>false|resource</code>
+ </InvalidReturnType>
+ <MismatchingDocblockParamType>
<code>ISimpleFile</code>
</MismatchingDocblockParamType>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
- <UndefinedInterfaceMethod occurrences="7">
+ <UndefinedInterfaceMethod>
<code>height</code>
<code>height</code>
<code>preciseResizeCopy</code>
@@ -2658,118 +3264,123 @@
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Preview/ProviderV1Adapter.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$thumbnail === false ? null: $thumbnail</code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>?IImage</code>
</InvalidReturnType>
</file>
<file src="lib/private/RedisFactory.php">
- <InvalidScalarArgument occurrences="1">
+ <InvalidArgument>
<code>\RedisCluster::OPT_SLAVE_FAILOVER</code>
- </InvalidScalarArgument>
+ </InvalidArgument>
</file>
<file src="lib/private/Remote/Api/OCS.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>array</code>
</ImplementedReturnTypeMismatch>
</file>
<file src="lib/private/Remote/Instance.php">
- <InvalidReturnStatement occurrences="1">
- <code>$request-&gt;getBody()</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$request->getBody()]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>bool|string</code>
</InvalidReturnType>
- <InvalidScalarArgument occurrences="1">
+ <InvalidScalarArgument>
<code>$response</code>
</InvalidScalarArgument>
</file>
<file src="lib/private/Repair/Owncloud/CleanPreviews.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>false</code>
</InvalidArgument>
</file>
<file src="lib/private/Repair/Owncloud/CleanPreviewsBackgroundJob.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$arguments</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Repair/Owncloud/MoveAvatarsBackgroundJob.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$arguments</code>
</ParamNameMismatch>
- <TypeDoesNotContainType occurrences="1">
+ <TypeDoesNotContainType>
<code>$counter % 100 === 0</code>
</TypeDoesNotContainType>
</file>
<file src="lib/private/Repair/RemoveLinkShares.php">
- <InvalidPropertyAssignmentValue occurrences="1">
- <code>$this-&gt;userToNotify</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->userToNotify]]></code>
</InvalidPropertyAssignmentValue>
</file>
<file src="lib/private/Repair/RepairInvalidShares.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$out</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Repair/RepairMimeTypes.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$out</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Repair/SqliteAutoincrement.php">
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$out</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Route/Router.php">
- <InvalidClass occurrences="1">
+ <InvalidClass>
<code>\OC_APP</code>
</InvalidClass>
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>string</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
- <code>$this-&gt;collectionName</code>
+ <NullableReturnStatement>
+ <code><![CDATA[$this->collectionName]]></code>
</NullableReturnStatement>
</file>
<file src="lib/private/Search.php">
- <RedundantCondition occurrences="1">
+ <RedundantCondition>
<code>$provider instanceof Provider</code>
</RedundantCondition>
</file>
<file src="lib/private/Search/Result/File.php">
- <InvalidPropertyAssignmentValue occurrences="4">
- <code>$data-&gt;getId()</code>
- <code>$data-&gt;getMtime()</code>
- <code>$data-&gt;getPermissions()</code>
- <code>$this-&gt;hasPreview($data)</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$data->getId()]]></code>
+ <code><![CDATA[$data->getMtime()]]></code>
+ <code><![CDATA[$data->getPermissions()]]></code>
+ <code><![CDATA[$this->hasPreview($data)]]></code>
</InvalidPropertyAssignmentValue>
</file>
<file src="lib/private/Security/Bruteforce/Throttler.php">
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
</file>
<file src="lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php">
- <NoInterfaceProperties occurrences="1">
- <code>$this-&gt;request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->server]]></code>
</NoInterfaceProperties>
</file>
+ <file src="lib/private/Security/CSRF/CsrfToken.php">
+ <InvalidArgument>
+ <code><![CDATA[\strlen($this->value)]]></code>
+ </InvalidArgument>
+ </file>
<file src="lib/private/Security/CredentialsManager.php">
- <InvalidReturnStatement occurrences="2">
- <code>$qb-&gt;execute()</code>
- <code>$qb-&gt;execute()</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$qb->execute()]]></code>
+ <code><![CDATA[$qb->execute()]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="2">
+ <InvalidReturnType>
<code>int</code>
<code>int</code>
</InvalidReturnType>
</file>
<file src="lib/private/Security/Crypto.php">
- <InternalMethod occurrences="6">
+ <InternalMethod>
<code>decrypt</code>
<code>encrypt</code>
<code>setIV</code>
@@ -2779,85 +3390,99 @@
</InternalMethod>
</file>
<file src="lib/private/Server.php">
- <ImplementedReturnTypeMismatch occurrences="3">
+ <ImplementedReturnTypeMismatch>
<code>\OCP\Calendar\Resource\IManager</code>
<code>\OCP\Calendar\Room\IManager</code>
<code>\OCP\Files\Folder|null</code>
</ImplementedReturnTypeMismatch>
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>new GenericEvent($user)</code>
</InvalidArgument>
- <UndefinedDocblockClass occurrences="1">
+ <UndefinedDocblockClass>
<code>\OC\OCSClient</code>
</UndefinedDocblockClass>
</file>
<file src="lib/private/ServerContainer.php">
- <InvalidPropertyAssignmentValue occurrences="1">
- <code>$this-&gt;hasNoAppContainer</code>
+ <InvalidPropertyAssignmentValue>
+ <code><![CDATA[$this->hasNoAppContainer]]></code>
</InvalidPropertyAssignmentValue>
+ <NoValue>
+ <code><![CDATA[return $this->appContainers[$namespace];]]></code>
+ </NoValue>
+ </file>
+ <file src="lib/private/Session/CryptoSessionData.php">
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
</file>
<file src="lib/private/Session/Internal.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$value</code>
</MoreSpecificImplementedParamType>
</file>
<file src="lib/private/Session/Memory.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$value</code>
</MoreSpecificImplementedParamType>
</file>
+ <file src="lib/private/Session/Session.php">
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/private/Setup.php">
- <RedundantCondition occurrences="2">
- <code>$content !== ''</code>
- <code>$type === 'pdo'</code>
+ <RedundantCondition>
+ <code><![CDATA[$content !== '']]></code>
+ <code><![CDATA[$type === 'pdo']]></code>
</RedundantCondition>
- <UndefinedVariable occurrences="1">
+ <UndefinedVariable>
<code>$vendor</code>
</UndefinedVariable>
</file>
<file src="lib/private/Setup/AbstractDatabase.php">
- <UndefinedThisPropertyFetch occurrences="4">
- <code>$this-&gt;dbprettyname</code>
- <code>$this-&gt;dbprettyname</code>
- <code>$this-&gt;dbprettyname</code>
- <code>$this-&gt;dbprettyname</code>
+ <TypeDoesNotContainType>
+ <code><![CDATA[ctype_digit($this->dbPort)]]></code>
+ </TypeDoesNotContainType>
+ <UndefinedThisPropertyFetch>
+ <code><![CDATA[$this->dbprettyname]]></code>
+ <code><![CDATA[$this->dbprettyname]]></code>
+ <code><![CDATA[$this->dbprettyname]]></code>
+ <code><![CDATA[$this->dbprettyname]]></code>
</UndefinedThisPropertyFetch>
</file>
<file src="lib/private/Share/Share.php">
- <InvalidOperand occurrences="1">
+ <InvalidOperand>
<code>!self::isResharingAllowed()</code>
</InvalidOperand>
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>getParents</code>
<code>getParents</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Share20/DefaultShareProvider.php">
- <InvalidScalarArgument occurrences="3">
- <code>$share-&gt;getId()</code>
- <code>$share-&gt;getId()</code>
- <code>(int)$data['id']</code>
- </InvalidScalarArgument>
- <TooManyArguments occurrences="1">
+ <InvalidArgument>
+ <code><![CDATA[$share->getId()]]></code>
+ <code><![CDATA[$share->getId()]]></code>
+ <code><![CDATA[(int)$data['id']]]></code>
+ </InvalidArgument>
+ <TooManyArguments>
<code>set</code>
</TooManyArguments>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getParent</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Share20/Manager.php">
- <InvalidArgument occurrences="6">
- <code>'OCP\Share::postAcceptShare'</code>
- <code>'OCP\Share::postShare'</code>
- <code>'OCP\Share::postUnshare'</code>
- <code>'OCP\Share::postUnshareFromSelf'</code>
- <code>'OCP\Share::preShare'</code>
- <code>'OCP\Share::preUnshare'</code>
- </InvalidArgument>
- <InvalidScalarArgument occurrences="1">
+ <InvalidArgument>
<code>$id</code>
- </InvalidScalarArgument>
- <TooManyArguments occurrences="7">
+ <code><![CDATA['OCP\Share::postAcceptShare']]></code>
+ <code><![CDATA['OCP\Share::postShare']]></code>
+ <code><![CDATA['OCP\Share::postUnshare']]></code>
+ <code><![CDATA['OCP\Share::postUnshareFromSelf']]></code>
+ <code><![CDATA['OCP\Share::preShare']]></code>
+ <code><![CDATA['OCP\Share::preUnshare']]></code>
+ </InvalidArgument>
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
@@ -2866,27 +3491,27 @@
<code>dispatch</code>
<code>update</code>
</TooManyArguments>
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OCA\Circles\Api\v1\Circles</code>
</UndefinedClass>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getChildren</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Share20/ProviderFactory.php">
- <InvalidNullableReturnType occurrences="2">
+ <InvalidNullableReturnType>
<code>FederatedShareProvider</code>
<code>ShareByMailProvider</code>
</InvalidNullableReturnType>
- <InvalidReturnStatement occurrences="3">
+ <InvalidReturnStatement>
<code>$provider</code>
<code>$provider</code>
- <code>$this-&gt;shareByCircleProvider</code>
+ <code><![CDATA[$this->shareByCircleProvider]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>getProviderForType</code>
</InvalidReturnType>
- <NullableReturnStatement occurrences="6">
+ <NullableReturnStatement>
<code>null</code>
<code>null</code>
<code>null</code>
@@ -2894,20 +3519,20 @@
<code>null</code>
<code>null</code>
</NullableReturnStatement>
- <ParamNameMismatch occurrences="1">
+ <ParamNameMismatch>
<code>$shareProviderClass</code>
</ParamNameMismatch>
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\OCA\Circles\ShareByCircleProvider</code>
</UndefinedClass>
- <UndefinedDocblockClass occurrences="5">
+ <UndefinedDocblockClass>
<code>RoomShareProvider</code>
<code>\OCA\Circles\ShareByCircleProvider</code>
<code>\OCA\Talk\Share\RoomShareProvider</code>
<code>private $roomShareProvider = null;</code>
<code>private $shareByCircleProvider = null;</code>
</UndefinedDocblockClass>
- <UndefinedInterfaceMethod occurrences="4">
+ <UndefinedInterfaceMethod>
<code>getLazyRootFolder</code>
<code>getLazyRootFolder</code>
<code>getLazyRootFolder</code>
@@ -2915,271 +3540,317 @@
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Streamer.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$stream</code>
</InvalidArgument>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>get</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/SubAdmin.php">
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>listen</code>
<code>listen</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Support/Subscription/Registry.php">
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getSupportedApps</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/SystemTag/SystemTagManager.php">
- <FalsableReturnStatement occurrences="3">
- <code>false</code>
- <code>false</code>
- <code>false</code>
- </FalsableReturnStatement>
- <InvalidArgument occurrences="3">
+ <InvalidArgument>
<code>ManagerEvent::EVENT_CREATE</code>
<code>ManagerEvent::EVENT_DELETE</code>
<code>ManagerEvent::EVENT_UPDATE</code>
</InvalidArgument>
- <InvalidReturnType occurrences="2">
- <code>bool</code>
- <code>bool</code>
- </InvalidReturnType>
- <TooManyArguments occurrences="3">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/SystemTag/SystemTagObjectMapper.php">
- <InvalidArgument occurrences="2">
+ <InvalidArgument>
<code>MapperEvent::EVENT_ASSIGN</code>
<code>MapperEvent::EVENT_UNASSIGN</code>
</InvalidArgument>
- <TooManyArguments occurrences="2">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/TagManager.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>\OCP\ITags</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="lib/private/Tags.php">
- <InvalidScalarArgument occurrences="2">
+ <InvalidScalarArgument>
<code>$from</code>
<code>$names</code>
</InvalidScalarArgument>
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
<code>$tag</code>
</MoreSpecificImplementedParamType>
</file>
<file src="lib/private/TempManager.php">
- <FalsableReturnStatement occurrences="2">
+ <FalsableReturnStatement>
<code>false</code>
<code>false</code>
</FalsableReturnStatement>
</file>
<file src="lib/private/Template/CSSResourceLocator.php">
- <ParamNameMismatch occurrences="2">
+ <ParamNameMismatch>
<code>$style</code>
<code>$style</code>
</ParamNameMismatch>
</file>
<file src="lib/private/Template/JSConfigHelper.php">
- <NullArgument occurrences="2">
+ <NullArgument>
<code>null</code>
<code>null</code>
</NullArgument>
</file>
<file src="lib/private/Template/JSResourceLocator.php">
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>false</code>
</InvalidArgument>
- <ParamNameMismatch occurrences="2">
+ <ParamNameMismatch>
<code>$script</code>
<code>$script</code>
</ParamNameMismatch>
</file>
<file src="lib/private/TemplateLayout.php">
- <InvalidParamDefault occurrences="2">
+ <InvalidParamDefault>
<code>string</code>
<code>string</code>
</InvalidParamDefault>
- <InvalidScalarArgument occurrences="2">
+ <InvalidScalarArgument>
<code>$appName</code>
<code>$appName</code>
</InvalidScalarArgument>
- <UndefinedInterfaceMethod occurrences="1">
+ <UndefinedInterfaceMethod>
<code>getInitialStates</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/URLGenerator.php">
- <InvalidReturnStatement occurrences="1">
+ <InvalidReturnStatement>
<code>$path</code>
</InvalidReturnStatement>
</file>
<file src="lib/private/User/Database.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>false</code>
</FalsableReturnStatement>
</file>
+ <file src="lib/private/User/DisplayNameCache.php">
+ <MissingTemplateParam>
+ <code>IEventListener</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/private/User/Manager.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>IUser|false</code>
</ImplementedReturnTypeMismatch>
- <InvalidArgument occurrences="1">
+ <InvalidArgument>
<code>$backend</code>
</InvalidArgument>
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>createUser</code>
<code>getUsersForUserValueCaseInsensitive</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/User/Session.php">
- <ImplementedReturnTypeMismatch occurrences="1">
+ <ImplementedReturnTypeMismatch>
<code>boolean|null</code>
</ImplementedReturnTypeMismatch>
- <InvalidArgument occurrences="1">
- <code>IUser::class . '::firstLogin'</code>
+ <InvalidArgument>
+ <code><![CDATA[IUser::class . '::firstLogin']]></code>
</InvalidArgument>
- <NoInterfaceProperties occurrences="2">
- <code>$request-&gt;server</code>
- <code>$request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$request->server]]></code>
+ <code><![CDATA[$request->server]]></code>
</NoInterfaceProperties>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
</file>
<file src="lib/private/User/User.php">
- <InvalidArgument occurrences="5">
- <code>IUser::class . '::changeUser'</code>
- <code>IUser::class . '::postDelete'</code>
- <code>IUser::class . '::postSetPassword'</code>
- <code>IUser::class . '::preDelete'</code>
- <code>IUser::class . '::preSetPassword'</code>
+ <InvalidArgument>
+ <code><![CDATA[IUser::class . '::changeUser']]></code>
+ <code><![CDATA[IUser::class . '::postDelete']]></code>
+ <code><![CDATA[IUser::class . '::postSetPassword']]></code>
+ <code><![CDATA[IUser::class . '::preDelete']]></code>
+ <code><![CDATA[IUser::class . '::preSetPassword']]></code>
</InvalidArgument>
- <TooManyArguments occurrences="5">
+ <TooManyArguments>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
<code>dispatch</code>
</TooManyArguments>
+ <UndefinedInterfaceMethod>
+ <code>emit</code>
+ <code>emit</code>
+ <code>emit</code>
+ <code>emit</code>
+ <code>emit</code>
+ </UndefinedInterfaceMethod>
</file>
<file src="lib/private/legacy/OC_API.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>int</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
</file>
<file src="lib/private/legacy/OC_App.php">
- <InvalidArgument occurrences="2">
+ <InvalidArgument>
<code>$groupsList</code>
<code>ManagerEvent::EVENT_APP_UPDATE</code>
</InvalidArgument>
- <InvalidArrayOffset occurrences="2">
- <code>$dir['path']</code>
- <code>$dir['url']</code>
+ <InvalidArrayOffset>
+ <code><![CDATA[$dir['path']]]></code>
+ <code><![CDATA[$dir['url']]]></code>
</InvalidArrayOffset>
- <NullArgument occurrences="1">
+ <NullArgument>
<code>null</code>
</NullArgument>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>null</code>
</NullableReturnStatement>
- <TooManyArguments occurrences="1">
+ <TooManyArguments>
<code>dispatch</code>
</TooManyArguments>
- <TypeDoesNotContainNull occurrences="2">
+ <TypeDoesNotContainNull>
<code>$appId === null</code>
<code>$appId === null</code>
</TypeDoesNotContainNull>
</file>
<file src="lib/private/legacy/OC_FileChunking.php">
- <UndefinedDocblockClass occurrences="1">
+ <UndefinedDocblockClass>
<code>\OC\InsufficientStorageException</code>
</UndefinedDocblockClass>
</file>
<file src="lib/private/legacy/OC_Files.php">
- <RedundantCondition occurrences="2">
+ <RedundantCondition>
<code>$getType === self::ZIP_DIR</code>
<code>$getType === self::ZIP_DIR</code>
</RedundantCondition>
- <UndefinedInterfaceMethod occurrences="2">
+ <UndefinedInterfaceMethod>
<code>get</code>
<code>get</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/legacy/OC_Helper.php">
- <InvalidOperand occurrences="1">
- <code>$matches[1][$last_match][0]</code>
- </InvalidOperand>
- <InvalidScalarArgument occurrences="1">
+ <InvalidArrayOffset>
+ <code>$matches[0][$last_match]</code>
+ <code>$matches[1][$last_match]</code>
+ </InvalidArrayOffset>
+ <InvalidScalarArgument>
<code>$path</code>
</InvalidScalarArgument>
- <RedundantCondition occurrences="1">
- <code>count($obd_values) &gt; 0</code>
- </RedundantCondition>
+ <UndefinedInterfaceMethod>
+ <code>getQuota</code>
+ </UndefinedInterfaceMethod>
+ </file>
+ <file src="lib/private/legacy/OC_Template.php">
+ <InvalidReturnType>
+ <code>bool|string</code>
+ </InvalidReturnType>
</file>
<file src="lib/private/legacy/OC_User.php">
- <UndefinedClass occurrences="1">
+ <UndefinedClass>
<code>\Test\Util\User\Dummy</code>
</UndefinedClass>
</file>
+ <file src="lib/private/legacy/OC_Util.php">
+ <InvalidOperand>
+ <code>$version</code>
+ <code>$version</code>
+ </InvalidOperand>
+ <InvalidReturnType>
+ <code>void</code>
+ </InvalidReturnType>
+ </file>
<file src="lib/public/AppFramework/ApiController.php">
- <NoInterfaceProperties occurrences="1">
- <code>$this-&gt;request-&gt;server</code>
+ <NoInterfaceProperties>
+ <code><![CDATA[$this->request->server]]></code>
</NoInterfaceProperties>
</file>
<file src="lib/public/AppFramework/App.php">
- <InternalMethod occurrences="1">
- <code>new RouteConfig($this-&gt;container, $router, $routes)</code>
+ <InternalMethod>
+ <code><![CDATA[new RouteConfig($this->container, $router, $routes)]]></code>
</InternalMethod>
</file>
<file src="lib/public/AppFramework/Db/Entity.php">
- <InvalidNullableReturnType occurrences="1">
+ <InvalidNullableReturnType>
<code>string</code>
</InvalidNullableReturnType>
- <NullableReturnStatement occurrences="1">
+ <NullableReturnStatement>
<code>$column</code>
</NullableReturnStatement>
</file>
<file src="lib/public/AppFramework/Http/JSONResponse.php">
- <InvalidReturnStatement occurrences="1">
- <code>$this-&gt;data</code>
+ <InvalidReturnStatement>
+ <code><![CDATA[$this->data]]></code>
</InvalidReturnStatement>
- <InvalidReturnType occurrences="1">
+ <InvalidReturnType>
<code>array</code>
</InvalidReturnType>
</file>
+ <file src="lib/public/Authentication/TwoFactorAuth/IProvider.php">
+ <AmbiguousConstantInheritance>
+ <code>EVENT_FAILED</code>
+ <code>EVENT_SUCCESS</code>
+ </AmbiguousConstantInheritance>
+ </file>
<file src="lib/public/BackgroundJob/TimedJob.php">
- <MoreSpecificImplementedParamType occurrences="1">
+ <MoreSpecificImplementedParamType>
+ <code>$jobList</code>
<code>$jobList</code>
</MoreSpecificImplementedParamType>
</file>
+ <file src="lib/public/Cache/CappedMemoryCache.php">
+ <MissingTemplateParam>
+ <code>\ArrayAccess</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/public/Diagnostics/IQueryLogger.php">
- <LessSpecificImplementedReturnType occurrences="1">
+ <LessSpecificImplementedReturnType>
<code>mixed</code>
</LessSpecificImplementedReturnType>
</file>
+ <file src="lib/public/EventDispatcher/GenericEvent.php">
+ <MissingTemplateParam>
+ <code>ArrayAccess</code>
+ <code>IteratorAggregate</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/public/Files.php">
- <FalsableReturnStatement occurrences="1">
+ <FalsableReturnStatement>
<code>\OC_App::getStorage($app)</code>
</FalsableReturnStatement>
</file>
+ <file src="lib/public/Files/Cache/ICacheEntry.php">
+ <MissingTemplateParam>
+ <code>ArrayAccess</code>
+ </MissingTemplateParam>
+ </file>
<file src="lib/public/Files/Storage.php">
- <InvalidParamDefault occurrences="1">
+ <InvalidParamDefault>
<code>array</code>
</InvalidParamDefault>
</file>
+ <file src="lib/public/L10N/ILanguageIterator.php">
+ <MissingTemplateParam>
+ <code>\Iterator</code>
+ </MissingTemplateParam>
+ </file>
</files>
diff --git a/core/Application.php b/core/Application.php
index 4ebbada95e6..2e354610154 100644
--- a/core/Application.php
+++ b/core/Application.php
@@ -239,6 +239,9 @@ class Application extends App {
if (!$table->hasIndex('mounts_class_index')) {
$subject->addHintForMissingSubject($table->getName(), 'mounts_class_index');
}
+ if (!$table->hasIndex('mounts_user_root_path_index')) {
+ $subject->addHintForMissingSubject($table->getName(), 'mounts_user_root_path_index');
+ }
}
}
);
diff --git a/core/Command/Db/AddMissingIndices.php b/core/Command/Db/AddMissingIndices.php
index e22d0fddeca..b317f44b499 100644
--- a/core/Command/Db/AddMissingIndices.php
+++ b/core/Command/Db/AddMissingIndices.php
@@ -465,6 +465,14 @@ class AddMissingIndices extends Command {
$updated = true;
$output->writeln('<info>oc_mounts table updated successfully.</info>');
}
+ if (!$table->hasIndex('mounts_user_root_path_index')) {
+ $output->writeln('<info>Adding mounts_user_root_path_index index to the oc_mounts table, this can take some time...</info>');
+
+ $table->addIndex(['user_id', 'root_id', 'mount_point'], 'mounts_user_root_path_index', [], ['lengths' => [null, null, 128]]);
+ $this->connection->migrateToSchema($schema->getWrappedSchema());
+ $updated = true;
+ $output->writeln('<info>oc_mounts table updated successfully.</info>');
+ }
}
if (!$updated) {
diff --git a/core/Migrations/Version13000Date20170718121200.php b/core/Migrations/Version13000Date20170718121200.php
index 0924e0590d3..34a249814fb 100644
--- a/core/Migrations/Version13000Date20170718121200.php
+++ b/core/Migrations/Version13000Date20170718121200.php
@@ -149,7 +149,7 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
$table->addIndex(['storage_id'], 'mounts_storage_index');
$table->addIndex(['root_id'], 'mounts_root_index');
$table->addIndex(['mount_id'], 'mounts_mount_id_index');
- $table->addUniqueIndex(['user_id', 'root_id'], 'mounts_user_root_index');
+ $table->addIndex(['user_id', 'root_id', 'mount_point'], 'mounts_user_root_path_index', [], ['lengths' => [null, null, 128]]);
} else {
$table = $schema->getTable('mounts');
$table->addColumn('mount_id', Types::BIGINT, [
diff --git a/core/Migrations/Version27000Date20220613163520.php b/core/Migrations/Version27000Date20220613163520.php
new file mode 100644
index 00000000000..4217f3b3270
--- /dev/null
+++ b/core/Migrations/Version27000Date20220613163520.php
@@ -0,0 +1,51 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2022 Your name <your@email.com>
+ *
+ * @author Your name <your@email.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version27000Date20220613163520 extends SimpleMigrationStep {
+ public function name(): string {
+ return "Add mountpoint path to mounts table unique index";
+ }
+
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('mounts');
+ if ($table->hasIndex('mounts_user_root_index')) {
+ $table->dropIndex('mounts_user_root_index');
+ // new index gets added with "add missing indexes"
+ }
+
+ return $schema;
+ }
+}
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index eb2f3e46354..90164534da1 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -1108,6 +1108,7 @@ return array(
'OC\\Core\\Migrations\\Version25000Date20220602190540' => $baseDir . '/core/Migrations/Version25000Date20220602190540.php',
'OC\\Core\\Migrations\\Version25000Date20220905140840' => $baseDir . '/core/Migrations/Version25000Date20220905140840.php',
'OC\\Core\\Migrations\\Version25000Date20221007010957' => $baseDir . '/core/Migrations/Version25000Date20221007010957.php',
+ 'OC\\Core\\Migrations\\Version27000Date20220613163520' => $baseDir . '/core/Migrations/Version27000Date20220613163520.php',
'OC\\Core\\Migrations\\Version27000Date20230309104325' => $baseDir . '/core/Migrations/Version27000Date20230309104325.php',
'OC\\Core\\Migrations\\Version27000Date20230309104802' => $baseDir . '/core/Migrations/Version27000Date20230309104802.php',
'OC\\Core\\Notification\\CoreNotifier' => $baseDir . '/core/Notification/CoreNotifier.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index 9343231a55b..43cdde51734 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -1141,6 +1141,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OC\\Core\\Migrations\\Version25000Date20220602190540' => __DIR__ . '/../../..' . '/core/Migrations/Version25000Date20220602190540.php',
'OC\\Core\\Migrations\\Version25000Date20220905140840' => __DIR__ . '/../../..' . '/core/Migrations/Version25000Date20220905140840.php',
'OC\\Core\\Migrations\\Version25000Date20221007010957' => __DIR__ . '/../../..' . '/core/Migrations/Version25000Date20221007010957.php',
+ 'OC\\Core\\Migrations\\Version27000Date20220613163520' => __DIR__ . '/../../..' . '/core/Migrations/Version27000Date20220613163520.php',
'OC\\Core\\Migrations\\Version27000Date20230309104325' => __DIR__ . '/../../..' . '/core/Migrations/Version27000Date20230309104325.php',
'OC\\Core\\Migrations\\Version27000Date20230309104802' => __DIR__ . '/../../..' . '/core/Migrations/Version27000Date20230309104802.php',
'OC\\Core\\Notification\\CoreNotifier' => __DIR__ . '/../../..' . '/core/Notification/CoreNotifier.php',
diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php
index a60b39823c5..9838b0a213c 100644
--- a/lib/private/Files/Config/UserMountCache.php
+++ b/lib/private/Files/Config/UserMountCache.php
@@ -92,38 +92,39 @@ class UserMountCache implements IUserMountCache {
}
}, $mounts);
$newMounts = array_values(array_filter($newMounts));
- $newMountRootIds = array_map(function (ICachedMountInfo $mount) {
- return $mount->getRootId();
+ $newMountKeys = array_map(function (ICachedMountInfo $mount) {
+ return $mount->getRootId() . '::' . $mount->getMountPoint();
}, $newMounts);
- $newMounts = array_combine($newMountRootIds, $newMounts);
+ $newMounts = array_combine($newMountKeys, $newMounts);
$cachedMounts = $this->getMountsForUser($user);
if (is_array($mountProviderClasses)) {
$cachedMounts = array_filter($cachedMounts, function (ICachedMountInfo $mountInfo) use ($mountProviderClasses, $newMounts) {
// for existing mounts that didn't have a mount provider set
// we still want the ones that map to new mounts
- if ($mountInfo->getMountProvider() === '' && isset($newMounts[$mountInfo->getRootId()])) {
+ $mountKey = $mountInfo->getRootId() . '::' . $mountInfo->getMountPoint();
+ if ($mountInfo->getMountProvider() === '' && isset($newMounts[$mountKey])) {
return true;
}
return in_array($mountInfo->getMountProvider(), $mountProviderClasses);
});
}
- $cachedMountRootIds = array_map(function (ICachedMountInfo $mount) {
- return $mount->getRootId();
+ $cachedRootKeys = array_map(function (ICachedMountInfo $mount) {
+ return $mount->getRootId() . '::' . $mount->getMountPoint();
}, $cachedMounts);
- $cachedMounts = array_combine($cachedMountRootIds, $cachedMounts);
+ $cachedMounts = array_combine($cachedRootKeys, $cachedMounts);
$addedMounts = [];
$removedMounts = [];
- foreach ($newMounts as $rootId => $newMount) {
- if (!isset($cachedMounts[$rootId])) {
+ foreach ($newMounts as $mountKey => $newMount) {
+ if (!isset($cachedMounts[$mountKey])) {
$addedMounts[] = $newMount;
}
}
- foreach ($cachedMounts as $rootId => $cachedMount) {
- if (!isset($newMounts[$rootId])) {
+ foreach ($cachedMounts as $mountKey => $cachedMount) {
+ if (!isset($newMounts[$mountKey])) {
$removedMounts[] = $cachedMount;
}
}
@@ -161,13 +162,13 @@ class UserMountCache implements IUserMountCache {
private function findChangedMounts(array $newMounts, array $cachedMounts) {
$new = [];
foreach ($newMounts as $mount) {
- $new[$mount->getRootId()] = $mount;
+ $new[$mount->getRootId() . '::' . $mount->getMountPoint()] = $mount;
}
$changed = [];
foreach ($cachedMounts as $cachedMount) {
- $rootId = $cachedMount->getRootId();
- if (isset($new[$rootId])) {
- $newMount = $new[$rootId];
+ $key = $cachedMount->getRootId() . '::' . $cachedMount->getMountPoint();
+ if (isset($new[$key])) {
+ $newMount = $new[$key];
if (
$newMount->getMountPoint() !== $cachedMount->getMountPoint() ||
$newMount->getStorageId() !== $cachedMount->getStorageId() ||
@@ -190,7 +191,7 @@ class UserMountCache implements IUserMountCache {
'mount_point' => $mount->getMountPoint(),
'mount_id' => $mount->getMountId(),
'mount_provider_class' => $mount->getMountProvider(),
- ], ['root_id', 'user_id']);
+ ], ['root_id', 'user_id', 'mount_point']);
} else {
// in some cases this is legitimate, like orphaned shares
$this->logger->debug('Could not get storage info for mount at ' . $mount->getMountPoint());
@@ -216,7 +217,8 @@ class UserMountCache implements IUserMountCache {
$query = $builder->delete('mounts')
->where($builder->expr()->eq('user_id', $builder->createNamedParameter($mount->getUser()->getUID())))
- ->andWhere($builder->expr()->eq('root_id', $builder->createNamedParameter($mount->getRootId(), IQueryBuilder::PARAM_INT)));
+ ->andWhere($builder->expr()->eq('root_id', $builder->createNamedParameter($mount->getRootId(), IQueryBuilder::PARAM_INT)))
+ ->andWhere($builder->expr()->eq('mount_point', $builder->createNamedParameter($mount->getMountPoint())));
$query->execute();
}
diff --git a/package-lock.json b/package-lock.json
index 3a5ec68a038..a8410311395 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -106,10 +106,10 @@
"@testing-library/vue": "^5.8.3",
"@types/dockerode": "^3.3.14",
"@typescript-eslint/eslint-plugin": "^5.59.1",
- "@typescript-eslint/parser": "^5.44.0",
+ "@typescript-eslint/parser": "^5.59.2",
"@vue/test-utils": "^1.3.5",
"@vue/tsconfig": "^0.1.3",
- "@vue/vue2-jest": "^29.2.3",
+ "@vue/vue2-jest": "^29.2.4",
"babel-jest": "^29.5.0",
"babel-loader": "^9.1.0",
"babel-loader-exclude-node-modules-except": "^1.2.1",
@@ -5551,14 +5551,14 @@
"dev": true
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz",
- "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz",
+ "integrity": "sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.59.0",
- "@typescript-eslint/types": "5.59.0",
- "@typescript-eslint/typescript-estree": "5.59.0",
+ "@typescript-eslint/scope-manager": "5.59.2",
+ "@typescript-eslint/types": "5.59.2",
+ "@typescript-eslint/typescript-estree": "5.59.2",
"debug": "^4.3.4"
},
"engines": {
@@ -5578,13 +5578,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz",
- "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz",
+ "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.59.0",
- "@typescript-eslint/visitor-keys": "5.59.0"
+ "@typescript-eslint/types": "5.59.2",
+ "@typescript-eslint/visitor-keys": "5.59.2"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -5724,9 +5724,9 @@
"dev": true
},
"node_modules/@typescript-eslint/types": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz",
- "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz",
+ "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -5737,13 +5737,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz",
- "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz",
+ "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.59.0",
- "@typescript-eslint/visitor-keys": "5.59.0",
+ "@typescript-eslint/types": "5.59.2",
+ "@typescript-eslint/visitor-keys": "5.59.2",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -5942,12 +5942,12 @@
"dev": true
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz",
- "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz",
+ "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.59.0",
+ "@typescript-eslint/types": "5.59.2",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -6124,9 +6124,9 @@
}
},
"node_modules/@vue/vue2-jest": {
- "version": "29.2.3",
- "resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-29.2.3.tgz",
- "integrity": "sha512-q0mAc+ILQfegSLkD6eaopmMU2nd4rO2bzsbKtCe1y4tkvHH3UMO7g1OSYvcEffTIEEPh306NYTV02z1W2t813Q==",
+ "version": "29.2.4",
+ "resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-29.2.4.tgz",
+ "integrity": "sha512-oU/Ai4sufLlrhsj8GqRqfhMr6Ud4rehmwYP358/SjKcvUqOCoKa2lOBndDzG4uZVMNnQqQbKWIg7wqL3aRYPBA==",
"dev": true,
"dependencies": {
"@babel/plugin-transform-modules-commonjs": "^7.2.0",
@@ -30651,25 +30651,25 @@
}
},
"@typescript-eslint/parser": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz",
- "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz",
+ "integrity": "sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.59.0",
- "@typescript-eslint/types": "5.59.0",
- "@typescript-eslint/typescript-estree": "5.59.0",
+ "@typescript-eslint/scope-manager": "5.59.2",
+ "@typescript-eslint/types": "5.59.2",
+ "@typescript-eslint/typescript-estree": "5.59.2",
"debug": "^4.3.4"
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz",
- "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz",
+ "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.59.0",
- "@typescript-eslint/visitor-keys": "5.59.0"
+ "@typescript-eslint/types": "5.59.2",
+ "@typescript-eslint/visitor-keys": "5.59.2"
}
},
"@typescript-eslint/type-utils": {
@@ -30748,19 +30748,19 @@
}
},
"@typescript-eslint/types": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz",
- "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz",
+ "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz",
- "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz",
+ "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.59.0",
- "@typescript-eslint/visitor-keys": "5.59.0",
+ "@typescript-eslint/types": "5.59.2",
+ "@typescript-eslint/visitor-keys": "5.59.2",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -30884,12 +30884,12 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.59.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz",
- "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==",
+ "version": "5.59.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz",
+ "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.59.0",
+ "@typescript-eslint/types": "5.59.2",
"eslint-visitor-keys": "^3.3.0"
},
"dependencies": {
@@ -31010,9 +31010,9 @@
"requires": {}
},
"@vue/vue2-jest": {
- "version": "29.2.3",
- "resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-29.2.3.tgz",
- "integrity": "sha512-q0mAc+ILQfegSLkD6eaopmMU2nd4rO2bzsbKtCe1y4tkvHH3UMO7g1OSYvcEffTIEEPh306NYTV02z1W2t813Q==",
+ "version": "29.2.4",
+ "resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-29.2.4.tgz",
+ "integrity": "sha512-oU/Ai4sufLlrhsj8GqRqfhMr6Ud4rehmwYP358/SjKcvUqOCoKa2lOBndDzG4uZVMNnQqQbKWIg7wqL3aRYPBA==",
"dev": true,
"requires": {
"@babel/plugin-transform-modules-commonjs": "^7.2.0",
diff --git a/package.json b/package.json
index 5bfb4c0a558..c15b802e725 100644
--- a/package.json
+++ b/package.json
@@ -131,10 +131,10 @@
"@testing-library/vue": "^5.8.3",
"@types/dockerode": "^3.3.14",
"@typescript-eslint/eslint-plugin": "^5.59.1",
- "@typescript-eslint/parser": "^5.44.0",
+ "@typescript-eslint/parser": "^5.59.2",
"@vue/test-utils": "^1.3.5",
"@vue/tsconfig": "^0.1.3",
- "@vue/vue2-jest": "^29.2.3",
+ "@vue/vue2-jest": "^29.2.4",
"babel-jest": "^29.5.0",
"babel-loader": "^9.1.0",
"babel-loader-exclude-node-modules-except": "^1.2.1",
diff --git a/psalm-ocp.xml b/psalm-ocp.xml
index 47804e30fde..e5cef0a28b0 100644
--- a/psalm-ocp.xml
+++ b/psalm-ocp.xml
@@ -6,7 +6,7 @@
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config"
errorBaseline="build/psalm-baseline-ocp.xml"
- findUnusedBaselineEntry="true"
+ findUnusedBaselineEntry="false"
findUnusedCode="false"
>
<plugins>
diff --git a/psalm.xml b/psalm.xml
index cd50a2722da..dbe6d1f29df 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -6,7 +6,7 @@
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config"
errorBaseline="build/psalm-baseline.xml"
- findUnusedBaselineEntry="true"
+ findUnusedBaselineEntry="false"
findUnusedCode="false"
>
<plugins>
diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json
index 4274f9323ab..b342aeedd91 100644
--- a/vendor-bin/psalm/composer.json
+++ b/vendor-bin/psalm/composer.json
@@ -1,6 +1,6 @@
{
"require": {
- "vimeo/psalm": "^4.30"
+ "vimeo/psalm": "^5.9"
},
"config": {
"platform": {
diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock
index 617f6cf5075..1794df5aa8d 100644
--- a/vendor-bin/psalm/composer.lock
+++ b/vendor-bin/psalm/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "74200460a7dbe18316eb477367d697a8",
+ "content-hash": "3c6bc45f8cc92ede530a2a5c08b4ad70",
"packages": [
{
"name": "amphp/amp",
@@ -173,79 +173,6 @@
"time": "2021-03-30T17:13:30+00:00"
},
{
- "name": "composer/package-versions-deprecated",
- "version": "1.11.99.5",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/package-versions-deprecated.git",
- "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d",
- "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.1.0 || ^2.0",
- "php": "^7 || ^8"
- },
- "replace": {
- "ocramius/package-versions": "1.11.99"
- },
- "require-dev": {
- "composer/composer": "^1.9.3 || ^2.0@dev",
- "ext-zip": "^1.13",
- "phpunit/phpunit": "^6.5 || ^7"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "PackageVersions\\Installer",
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PackageVersions\\": "src/PackageVersions"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- },
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be"
- }
- ],
- "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
- "support": {
- "issues": "https://github.com/composer/package-versions-deprecated/issues",
- "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2022-01-17T14:14:24+00:00"
- },
- {
"name": "composer/pcre",
"version": "3.0.2",
"source": {
@@ -602,6 +529,67 @@
"time": "2022-03-02T22:36:06+00:00"
},
{
+ "name": "fidry/cpu-core-counter",
+ "version": "0.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theofidry/cpu-core-counter.git",
+ "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623",
+ "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "fidry/makefile": "^0.2.0",
+ "phpstan/extension-installer": "^1.2.0",
+ "phpstan/phpstan": "^1.9.2",
+ "phpstan/phpstan-deprecation-rules": "^1.0.0",
+ "phpstan/phpstan-phpunit": "^1.2.2",
+ "phpstan/phpstan-strict-rules": "^1.4.4",
+ "phpunit/phpunit": "^9.5.26 || ^8.5.31",
+ "theofidry/php-cs-fixer-config": "^1.0",
+ "webmozarts/strict-phpunit": "^7.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Fidry\\CpuCoreCounter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Théo FIDRY",
+ "email": "theo.fidry@gmail.com"
+ }
+ ],
+ "description": "Tiny utility to get the number of CPU cores.",
+ "keywords": [
+ "CPU",
+ "core"
+ ],
+ "support": {
+ "issues": "https://github.com/theofidry/cpu-core-counter/issues",
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theofidry",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-24T12:35:10+00:00"
+ },
+ {
"name": "netresearch/jsonmapper",
"version": "v4.0.0",
"source": {
@@ -709,59 +697,6 @@
"time": "2022-09-04T07:30:47+00:00"
},
{
- "name": "openlss/lib-array2xml",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/nullivex/lib-array2xml.git",
- "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90",
- "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.2"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "LSS": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Bryan Tong",
- "email": "bryan@nullivex.com",
- "homepage": "https://www.nullivex.com"
- },
- {
- "name": "Tony Butler",
- "email": "spudz76@gmail.com",
- "homepage": "https://www.nullivex.com"
- }
- ],
- "description": "Array2XML conversion library credit to lalit.org",
- "homepage": "https://www.nullivex.com",
- "keywords": [
- "array",
- "array conversion",
- "xml",
- "xml conversion"
- ],
- "support": {
- "issues": "https://github.com/nullivex/lib-array2xml/issues",
- "source": "https://github.com/nullivex/lib-array2xml/tree/master"
- },
- "time": "2019-03-29T20:06:56+00:00"
- },
- {
"name": "phpdocumentor/reflection-common",
"version": "2.2.0",
"source": {
@@ -1091,6 +1026,69 @@
"time": "2020-10-26T13:10:38+00:00"
},
{
+ "name": "spatie/array-to-xml",
+ "version": "3.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/array-to-xml.git",
+ "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/13f76acef5362d15c71ae1ac6350cc3df5e25e43",
+ "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.2",
+ "pestphp/pest": "^1.21",
+ "spatie/pest-plugin-snapshots": "^1.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\ArrayToXml\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://freek.dev",
+ "role": "Developer"
+ }
+ ],
+ "description": "Convert an array to xml",
+ "homepage": "https://github.com/spatie/array-to-xml",
+ "keywords": [
+ "array",
+ "convert",
+ "xml"
+ ],
+ "support": {
+ "source": "https://github.com/spatie/array-to-xml/tree/3.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-24T13:43:51+00:00"
+ },
+ {
"name": "symfony/console",
"version": "v5.4.15",
"source": {
@@ -1257,6 +1255,70 @@
"time": "2022-01-02T09:53:40+00:00"
},
{
+ "name": "symfony/filesystem",
+ "version": "v5.4.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/e75960b1bbfd2b8c9e483e0d74811d555ca3de9f",
+ "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v5.4.21"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-14T08:03:56+00:00"
+ },
+ {
"name": "symfony/polyfill-ctype",
"version": "v1.26.0",
"source": {
@@ -1919,24 +1981,24 @@
},
{
"name": "vimeo/psalm",
- "version": "4.30.0",
+ "version": "5.9.0",
"source": {
"type": "git",
"url": "https://github.com/vimeo/psalm.git",
- "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69"
+ "reference": "8b9ad1eb9e8b7d3101f949291da2b9f7767cd163"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69",
- "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69",
+ "url": "https://api.github.com/repos/vimeo/psalm/zipball/8b9ad1eb9e8b7d3101f949291da2b9f7767cd163",
+ "reference": "8b9ad1eb9e8b7d3101f949291da2b9f7767cd163",
"shasum": ""
},
"require": {
"amphp/amp": "^2.4.2",
"amphp/byte-stream": "^1.5",
- "composer/package-versions-deprecated": "^1.8.0",
+ "composer-runtime-api": "^2",
"composer/semver": "^1.4 || ^2.0 || ^3.0",
- "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0",
+ "composer/xdebug-handler": "^2.0 || ^3.0",
"dnoegel/php-xdg-base-dir": "^0.1.1",
"ext-ctype": "*",
"ext-dom": "*",
@@ -1945,35 +2007,35 @@
"ext-mbstring": "*",
"ext-simplexml": "*",
"ext-tokenizer": "*",
- "felixfbecker/advanced-json-rpc": "^3.0.3",
- "felixfbecker/language-server-protocol": "^1.5",
+ "felixfbecker/advanced-json-rpc": "^3.1",
+ "felixfbecker/language-server-protocol": "^1.5.2",
+ "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1",
"netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
- "nikic/php-parser": "^4.13",
- "openlss/lib-array2xml": "^1.0",
- "php": "^7.1|^8",
- "sebastian/diff": "^3.0 || ^4.0",
- "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0",
- "symfony/polyfill-php80": "^1.25",
- "webmozart/path-util": "^2.3"
+ "nikic/php-parser": "^4.14",
+ "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0",
+ "sebastian/diff": "^4.0 || ^5.0",
+ "spatie/array-to-xml": "^2.17.0 || ^3.0",
+ "symfony/console": "^4.1.6 || ^5.0 || ^6.0",
+ "symfony/filesystem": "^5.4 || ^6.0"
},
"provide": {
"psalm/psalm": "self.version"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.2",
- "brianium/paratest": "^4.0||^6.0",
+ "amphp/phpunit-util": "^2.0",
+ "bamarni/composer-bin-plugin": "^1.4",
+ "brianium/paratest": "^6.9",
"ext-curl": "*",
+ "mockery/mockery": "^1.5",
+ "nunomaduro/mock-final-classes": "^1.1",
"php-parallel-lint/php-parallel-lint": "^1.2",
- "phpdocumentor/reflection-docblock": "^5",
- "phpmyadmin/sql-parser": "5.1.0||dev-master",
- "phpspec/prophecy": ">=1.9.0",
- "phpstan/phpdoc-parser": "1.2.* || 1.6.4",
- "phpunit/phpunit": "^9.0",
- "psalm/plugin-phpunit": "^0.16",
- "slevomat/coding-standard": "^7.0",
- "squizlabs/php_codesniffer": "^3.5",
- "symfony/process": "^4.3 || ^5.0 || ^6.0",
- "weirdan/prophecy-shim": "^1.0 || ^2.0"
+ "phpstan/phpdoc-parser": "^1.6",
+ "phpunit/phpunit": "^9.6",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18",
+ "slevomat/coding-standard": "^8.4",
+ "squizlabs/php_codesniffer": "^3.6",
+ "symfony/process": "^4.4 || ^5.0 || ^6.0"
},
"suggest": {
"ext-curl": "In order to send data to shepherd",
@@ -1989,17 +2051,14 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.x-dev",
+ "dev-master": "5.x-dev",
+ "dev-4.x": "4.x-dev",
"dev-3.x": "3.x-dev",
"dev-2.x": "2.x-dev",
"dev-1.x": "1.x-dev"
}
},
"autoload": {
- "files": [
- "src/functions.php",
- "src/spl_object_id.php"
- ],
"psr-4": {
"Psalm\\": "src/Psalm/"
}
@@ -2017,13 +2076,14 @@
"keywords": [
"code",
"inspection",
- "php"
+ "php",
+ "static analysis"
],
"support": {
"issues": "https://github.com/vimeo/psalm/issues",
- "source": "https://github.com/vimeo/psalm/tree/4.30.0"
+ "source": "https://github.com/vimeo/psalm/tree/5.9.0"
},
- "time": "2022-11-06T20:37:08+00:00"
+ "time": "2023-03-29T21:38:21+00:00"
},
{
"name": "webmozart/assert",
@@ -2082,57 +2142,6 @@
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
},
"time": "2022-06-03T18:03:27+00:00"
- },
- {
- "name": "webmozart/path-util",
- "version": "2.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozart/path-util.git",
- "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
- "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "webmozart/assert": "~1.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.6",
- "sebastian/version": "^1.0.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.3-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\PathUtil\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
- "support": {
- "issues": "https://github.com/webmozart/path-util/issues",
- "source": "https://github.com/webmozart/path-util/tree/2.3.0"
- },
- "abandoned": "symfony/filesystem",
- "time": "2015-12-17T08:42:14+00:00"
}
],
"packages-dev": [],
diff --git a/version.php b/version.php
index d20714276b1..44889f77860 100644
--- a/version.php
+++ b/version.php
@@ -30,7 +30,7 @@
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patch level
// when updating major/minor version number.
-$OC_Version = [27, 0, 0, 0];
+$OC_Version = [27, 0, 0, 1];
// The human-readable string
$OC_VersionString = '27.0.0 dev';