@sync-in/server 1.11.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/LICENSE +1 -1
- package/README.md +3 -11
- package/environment/environment.dist.min.yaml +1 -1
- package/environment/environment.dist.yaml +173 -28
- package/package.json +17 -16
- package/server/app.bootstrap.js +1 -5
- package/server/app.bootstrap.js.map +1 -1
- package/server/app.constants.js +1 -5
- package/server/app.constants.js.map +1 -1
- package/server/app.e2e-spec.js +1 -5
- package/server/app.e2e-spec.js.map +1 -1
- package/server/app.functions.js +1 -5
- package/server/app.functions.js.map +1 -1
- package/server/app.module.js +1 -5
- package/server/app.module.js.map +1 -1
- package/server/app.service.js +1 -5
- package/server/app.service.js.map +1 -1
- package/server/app.service.spec.js +2 -6
- package/server/app.service.spec.js.map +1 -1
- package/server/applications/admin/admin.module.js +1 -5
- package/server/applications/admin/admin.module.js.map +1 -1
- package/server/applications/admin/constants/routes.js +1 -5
- package/server/applications/admin/constants/routes.js.map +1 -1
- package/server/applications/admin/interfaces/check-update.interfaces.js +1 -5
- package/server/applications/admin/interfaces/check-update.interfaces.js.map +1 -1
- package/server/applications/admin/services/admin-scheduler.service.js +1 -5
- package/server/applications/admin/services/admin-scheduler.service.js.map +1 -1
- package/server/applications/admin/services/admin.service.js +13 -8
- package/server/applications/admin/services/admin.service.js.map +1 -1
- package/server/applications/admin/services/admin.service.spec.js +1 -5
- package/server/applications/admin/services/admin.service.spec.js.map +1 -1
- package/server/applications/admin/utils/check-update.js +1 -5
- package/server/applications/admin/utils/check-update.js.map +1 -1
- package/server/applications/applications.config.js +1 -5
- package/server/applications/applications.config.js.map +1 -1
- package/server/applications/applications.constants.js +5 -5
- package/server/applications/applications.constants.js.map +1 -1
- package/server/applications/applications.module.js +1 -5
- package/server/applications/applications.module.js.map +1 -1
- package/server/applications/comments/comments.controller.js +1 -5
- package/server/applications/comments/comments.controller.js.map +1 -1
- package/server/applications/comments/comments.controller.spec.js +1 -5
- package/server/applications/comments/comments.controller.spec.js.map +1 -1
- package/server/applications/comments/comments.module.js +1 -5
- package/server/applications/comments/comments.module.js.map +1 -1
- package/server/applications/comments/constants/routes.js +1 -5
- package/server/applications/comments/constants/routes.js.map +1 -1
- package/server/applications/comments/dto/comment.dto.js +1 -5
- package/server/applications/comments/dto/comment.dto.js.map +1 -1
- package/server/applications/comments/interfaces/comment-recent.interface.js +1 -5
- package/server/applications/comments/interfaces/comment-recent.interface.js.map +1 -1
- package/server/applications/comments/schemas/comment.interface.js +1 -5
- package/server/applications/comments/schemas/comment.interface.js.map +1 -1
- package/server/applications/comments/schemas/comments.schema.js +1 -5
- package/server/applications/comments/schemas/comments.schema.js.map +1 -1
- package/server/applications/comments/services/comments-manager.service.js +9 -7
- package/server/applications/comments/services/comments-manager.service.js.map +1 -1
- package/server/applications/comments/services/comments-manager.service.spec.js +10 -8
- package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -1
- package/server/applications/comments/services/comments-queries.service.js +1 -5
- package/server/applications/comments/services/comments-queries.service.js.map +1 -1
- package/server/applications/files/adapters/files-indexer-mysql.service.js +29 -12
- package/server/applications/files/adapters/files-indexer-mysql.service.js.map +1 -1
- package/server/applications/files/adapters/files-indexer-mysql.service.spec.js +1 -5
- package/server/applications/files/adapters/files-indexer-mysql.service.spec.js.map +1 -1
- package/server/applications/files/constants/cache.js +1 -5
- package/server/applications/files/constants/cache.js.map +1 -1
- package/server/applications/files/constants/compress.js +1 -5
- package/server/applications/files/constants/compress.js.map +1 -1
- package/server/applications/files/constants/files.js +1 -5
- package/server/applications/files/constants/files.js.map +1 -1
- package/server/applications/files/constants/indexing.js +1 -5
- package/server/applications/files/constants/indexing.js.map +1 -1
- package/server/applications/files/constants/operations.js +1 -5
- package/server/applications/files/constants/operations.js.map +1 -1
- package/server/applications/files/constants/routes.js +1 -5
- package/server/applications/files/constants/routes.js.map +1 -1
- package/server/applications/files/constants/samples.js +1 -5
- package/server/applications/files/constants/samples.js.map +1 -1
- package/server/applications/files/dto/file-operations.dto.js +1 -5
- package/server/applications/files/dto/file-operations.dto.js.map +1 -1
- package/server/applications/files/events/file-task-event.js +1 -5
- package/server/applications/files/events/file-task-event.js.map +1 -1
- package/server/applications/files/files-tasks.controller.js +1 -5
- package/server/applications/files/files-tasks.controller.js.map +1 -1
- package/server/applications/files/files-tasks.controller.spec.js +1 -5
- package/server/applications/files/files-tasks.controller.spec.js.map +1 -1
- package/server/applications/files/files.config.js +1 -5
- package/server/applications/files/files.config.js.map +1 -1
- package/server/applications/files/files.controller.js +1 -5
- package/server/applications/files/files.controller.js.map +1 -1
- package/server/applications/files/files.controller.spec.js +1 -5
- package/server/applications/files/files.controller.spec.js.map +1 -1
- package/server/applications/files/files.module.js +1 -5
- package/server/applications/files/files.module.js.map +1 -1
- package/server/applications/files/interfaces/file-db-props.interface.js +1 -5
- package/server/applications/files/interfaces/file-db-props.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-lock.interface.js +1 -5
- package/server/applications/files/interfaces/file-lock.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-parse-index.js +1 -5
- package/server/applications/files/interfaces/file-parse-index.js.map +1 -1
- package/server/applications/files/interfaces/file-props.interface.js +1 -5
- package/server/applications/files/interfaces/file-props.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-recent-location.interface.js +1 -5
- package/server/applications/files/interfaces/file-recent-location.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-space.interface.js +1 -5
- package/server/applications/files/interfaces/file-space.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-tree.interface.js +1 -5
- package/server/applications/files/interfaces/file-tree.interface.js.map +1 -1
- package/server/applications/files/models/file-error.js +1 -5
- package/server/applications/files/models/file-error.js.map +1 -1
- package/server/applications/files/models/file-lock-error.js +1 -5
- package/server/applications/files/models/file-lock-error.js.map +1 -1
- package/server/applications/files/models/file-task.js +1 -5
- package/server/applications/files/models/file-task.js.map +1 -1
- package/server/applications/files/models/files-indexer.js +1 -5
- package/server/applications/files/models/files-indexer.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js +21 -10
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.config.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.config.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.constants.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.constants.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.controller.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.controller.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.dtos.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.dtos.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.guard.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.guard.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.interface.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.interface.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.module.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.module.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.routes.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.routes.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.strategy.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.strategy.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.utils.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.utils.js.map +1 -1
- package/server/applications/files/modules/file-editor-providers.interface.js +6 -0
- package/server/applications/files/modules/file-editor-providers.interface.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office-environment.decorator.js +1 -5
- package/server/applications/files/modules/only-office/only-office-environment.decorator.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office-manager.service.js +57 -19
- package/server/applications/files/modules/only-office/only-office-manager.service.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office-manager.service.spec.js +1 -5
- package/server/applications/files/modules/only-office/only-office-manager.service.spec.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.config.js +1 -5
- package/server/applications/files/modules/only-office/only-office.config.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.constants.js +1 -5
- package/server/applications/files/modules/only-office/only-office.constants.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.controller.js +1 -5
- package/server/applications/files/modules/only-office/only-office.controller.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.controller.spec.js +1 -5
- package/server/applications/files/modules/only-office/only-office.controller.spec.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.dtos.js +1 -5
- package/server/applications/files/modules/only-office/only-office.dtos.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.guard.js +1 -5
- package/server/applications/files/modules/only-office/only-office.guard.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.guard.spec.js +1 -5
- package/server/applications/files/modules/only-office/only-office.guard.spec.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.interface.js +1 -5
- package/server/applications/files/modules/only-office/only-office.interface.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.module.js +1 -5
- package/server/applications/files/modules/only-office/only-office.module.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.routes.js +1 -5
- package/server/applications/files/modules/only-office/only-office.routes.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.strategy.js +1 -5
- package/server/applications/files/modules/only-office/only-office.strategy.js.map +1 -1
- package/server/applications/files/schemas/file-content.interface.js +1 -5
- package/server/applications/files/schemas/file-content.interface.js.map +1 -1
- package/server/applications/files/schemas/file-recent.interface.js +1 -5
- package/server/applications/files/schemas/file-recent.interface.js.map +1 -1
- package/server/applications/files/schemas/file.interface.js +1 -5
- package/server/applications/files/schemas/file.interface.js.map +1 -1
- package/server/applications/files/schemas/files-content.schema.js +1 -5
- package/server/applications/files/schemas/files-content.schema.js.map +1 -1
- package/server/applications/files/schemas/files-recents.schema.js +1 -5
- package/server/applications/files/schemas/files-recents.schema.js.map +1 -1
- package/server/applications/files/schemas/files.schema.js +1 -5
- package/server/applications/files/schemas/files.schema.js.map +1 -1
- package/server/applications/files/services/files-content-manager.service.js +45 -16
- package/server/applications/files/services/files-content-manager.service.js.map +1 -1
- package/server/applications/files/services/files-lock-manager.service.js +53 -18
- package/server/applications/files/services/files-lock-manager.service.js.map +1 -1
- package/server/applications/files/services/files-lock-manager.service.spec.js +1 -5
- package/server/applications/files/services/files-lock-manager.service.spec.js.map +1 -1
- package/server/applications/files/services/files-manager.service.js +77 -24
- package/server/applications/files/services/files-manager.service.js.map +1 -1
- package/server/applications/files/services/files-manager.service.spec.js +1 -5
- package/server/applications/files/services/files-manager.service.spec.js.map +1 -1
- package/server/applications/files/services/files-methods.service.js +5 -6
- package/server/applications/files/services/files-methods.service.js.map +1 -1
- package/server/applications/files/services/files-methods.service.spec.js +1 -5
- package/server/applications/files/services/files-methods.service.spec.js.map +1 -1
- package/server/applications/files/services/files-parser.service.js +13 -8
- package/server/applications/files/services/files-parser.service.js.map +1 -1
- package/server/applications/files/services/files-parser.service.spec.js +1 -5
- package/server/applications/files/services/files-parser.service.spec.js.map +1 -1
- package/server/applications/files/services/files-queries.service.js +29 -12
- package/server/applications/files/services/files-queries.service.js.map +1 -1
- package/server/applications/files/services/files-recents.service.js +1 -5
- package/server/applications/files/services/files-recents.service.js.map +1 -1
- package/server/applications/files/services/files-recents.service.spec.js +1 -5
- package/server/applications/files/services/files-recents.service.spec.js.map +1 -1
- package/server/applications/files/services/files-scheduler.service.js +77 -24
- package/server/applications/files/services/files-scheduler.service.js.map +1 -1
- package/server/applications/files/services/files-search-manager.service.js +9 -7
- package/server/applications/files/services/files-search-manager.service.js.map +1 -1
- package/server/applications/files/services/files-search-manager.service.spec.js +1 -5
- package/server/applications/files/services/files-search-manager.service.spec.js.map +1 -1
- package/server/applications/files/services/files-tasks-manager.service.js +77 -24
- package/server/applications/files/services/files-tasks-manager.service.js.map +1 -1
- package/server/applications/files/services/files-tasks-manager.service.spec.js +1 -5
- package/server/applications/files/services/files-tasks-manager.service.spec.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/excel.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/excel.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/html.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/html.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/open-office.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/open-office.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/pdf.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/power-point.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/power-point.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/text.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/text.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/word.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/word.js.map +1 -1
- package/server/applications/files/utils/doc-textify/doc-textify.js +1 -5
- package/server/applications/files/utils/doc-textify/doc-textify.js.map +1 -1
- package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js +1 -5
- package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js.map +1 -1
- package/server/applications/files/utils/doc-textify/utils/clean.js +1 -5
- package/server/applications/files/utils/doc-textify/utils/clean.js.map +1 -1
- package/server/applications/files/utils/files-search.js +1 -5
- package/server/applications/files/utils/files-search.js.map +1 -1
- package/server/applications/files/utils/files-tree.js +1 -5
- package/server/applications/files/utils/files-tree.js.map +1 -1
- package/server/applications/files/utils/files.js +1 -5
- package/server/applications/files/utils/files.js.map +1 -1
- package/server/applications/files/utils/send-file.js +1 -5
- package/server/applications/files/utils/send-file.js.map +1 -1
- package/server/applications/files/utils/unzip-file.js +1 -5
- package/server/applications/files/utils/unzip-file.js.map +1 -1
- package/server/applications/files/utils/url-file.js +1 -5
- package/server/applications/files/utils/url-file.js.map +1 -1
- package/server/applications/links/constants/cache.js +1 -5
- package/server/applications/links/constants/cache.js.map +1 -1
- package/server/applications/links/constants/links.js +1 -5
- package/server/applications/links/constants/links.js.map +1 -1
- package/server/applications/links/constants/routes.js +1 -5
- package/server/applications/links/constants/routes.js.map +1 -1
- package/server/applications/links/dto/create-or-update-link.dto.js +1 -5
- package/server/applications/links/dto/create-or-update-link.dto.js.map +1 -1
- package/server/applications/links/interfaces/link-guest.interface.js +1 -5
- package/server/applications/links/interfaces/link-guest.interface.js.map +1 -1
- package/server/applications/links/interfaces/link-space.interface.js +1 -5
- package/server/applications/links/interfaces/link-space.interface.js.map +1 -1
- package/server/applications/links/links.controller.js +1 -5
- package/server/applications/links/links.controller.js.map +1 -1
- package/server/applications/links/links.controller.spec.js +1 -5
- package/server/applications/links/links.controller.spec.js.map +1 -1
- package/server/applications/links/schemas/link.interface.js +1 -5
- package/server/applications/links/schemas/link.interface.js.map +1 -1
- package/server/applications/links/schemas/links.schema.js +1 -5
- package/server/applications/links/schemas/links.schema.js.map +1 -1
- package/server/applications/links/services/links-manager.service.js +55 -20
- package/server/applications/links/services/links-manager.service.js.map +1 -1
- package/server/applications/links/services/links-manager.service.spec.js +3 -7
- package/server/applications/links/services/links-manager.service.spec.js.map +1 -1
- package/server/applications/links/services/links-queries.service.js +1 -5
- package/server/applications/links/services/links-queries.service.js.map +1 -1
- package/server/applications/notifications/constants/notifications.js +1 -5
- package/server/applications/notifications/constants/notifications.js.map +1 -1
- package/server/applications/notifications/constants/routes.js +1 -5
- package/server/applications/notifications/constants/routes.js.map +1 -1
- package/server/applications/notifications/constants/websocket.js +1 -5
- package/server/applications/notifications/constants/websocket.js.map +1 -1
- package/server/applications/notifications/i18n/de.js +1 -9
- package/server/applications/notifications/i18n/de.js.map +1 -1
- package/server/applications/notifications/i18n/es.js +1 -5
- package/server/applications/notifications/i18n/es.js.map +1 -1
- package/server/applications/notifications/i18n/fr.js +1 -5
- package/server/applications/notifications/i18n/fr.js.map +1 -1
- package/server/applications/notifications/i18n/hi.js +1 -5
- package/server/applications/notifications/i18n/hi.js.map +1 -1
- package/server/applications/notifications/i18n/index.js +1 -5
- package/server/applications/notifications/i18n/index.js.map +1 -1
- package/server/applications/notifications/i18n/it.js +1 -5
- package/server/applications/notifications/i18n/it.js.map +1 -1
- package/server/applications/notifications/i18n/ja.js +1 -5
- package/server/applications/notifications/i18n/ja.js.map +1 -1
- package/server/applications/notifications/i18n/ko.js +1 -5
- package/server/applications/notifications/i18n/ko.js.map +1 -1
- package/server/applications/notifications/i18n/pl.js +1 -5
- package/server/applications/notifications/i18n/pl.js.map +1 -1
- package/server/applications/notifications/i18n/pt.js +1 -5
- package/server/applications/notifications/i18n/pt.js.map +1 -1
- package/server/applications/notifications/i18n/pt_br.js +1 -5
- package/server/applications/notifications/i18n/pt_br.js.map +1 -1
- package/server/applications/notifications/i18n/ru.js +1 -5
- package/server/applications/notifications/i18n/ru.js.map +1 -1
- package/server/applications/notifications/i18n/tr.js +1 -5
- package/server/applications/notifications/i18n/tr.js.map +1 -1
- package/server/applications/notifications/i18n/zh.js +1 -5
- package/server/applications/notifications/i18n/zh.js.map +1 -1
- package/server/applications/notifications/interfaces/notification-properties.interface.js +1 -5
- package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -1
- package/server/applications/notifications/interfaces/user-mail-notification.interface.js +1 -5
- package/server/applications/notifications/interfaces/user-mail-notification.interface.js.map +1 -1
- package/server/applications/notifications/mails/models.js +1 -5
- package/server/applications/notifications/mails/models.js.map +1 -1
- package/server/applications/notifications/mails/templates.js +1 -5
- package/server/applications/notifications/mails/templates.js.map +1 -1
- package/server/applications/notifications/mails/urls.js +1 -5
- package/server/applications/notifications/mails/urls.js.map +1 -1
- package/server/applications/notifications/notifications.controller.js +1 -5
- package/server/applications/notifications/notifications.controller.js.map +1 -1
- package/server/applications/notifications/notifications.controller.spec.js +1 -5
- package/server/applications/notifications/notifications.controller.spec.js.map +1 -1
- package/server/applications/notifications/notifications.gateway.js +1 -5
- package/server/applications/notifications/notifications.gateway.js.map +1 -1
- package/server/applications/notifications/notifications.module.js +1 -5
- package/server/applications/notifications/notifications.module.js.map +1 -1
- package/server/applications/notifications/schemas/notification.interface.js +1 -5
- package/server/applications/notifications/schemas/notification.interface.js.map +1 -1
- package/server/applications/notifications/schemas/notifications.schema.js +1 -5
- package/server/applications/notifications/schemas/notifications.schema.js.map +1 -1
- package/server/applications/notifications/services/notifications-manager.service.js +25 -11
- package/server/applications/notifications/services/notifications-manager.service.js.map +1 -1
- package/server/applications/notifications/services/notifications-manager.service.spec.js +20 -11
- package/server/applications/notifications/services/notifications-manager.service.spec.js.map +1 -1
- package/server/applications/notifications/services/notifications-queries.service.js +1 -5
- package/server/applications/notifications/services/notifications-queries.service.js.map +1 -1
- package/server/applications/shares/constants/routes.js +1 -5
- package/server/applications/shares/constants/routes.js.map +1 -1
- package/server/applications/shares/constants/shares.js +1 -5
- package/server/applications/shares/constants/shares.js.map +1 -1
- package/server/applications/shares/dto/create-or-update-share.dto.js +1 -5
- package/server/applications/shares/dto/create-or-update-share.dto.js.map +1 -1
- package/server/applications/shares/interfaces/share-child.interface.js +1 -5
- package/server/applications/shares/interfaces/share-child.interface.js.map +1 -1
- package/server/applications/shares/interfaces/share-env.interface.js +1 -5
- package/server/applications/shares/interfaces/share-env.interface.js.map +1 -1
- package/server/applications/shares/interfaces/share-file.interface.js +1 -5
- package/server/applications/shares/interfaces/share-file.interface.js.map +1 -1
- package/server/applications/shares/interfaces/share-link.interface.js +1 -5
- package/server/applications/shares/interfaces/share-link.interface.js.map +1 -1
- package/server/applications/shares/interfaces/share-props.interface.js +1 -5
- package/server/applications/shares/interfaces/share-props.interface.js.map +1 -1
- package/server/applications/shares/models/share-child.model.js +1 -5
- package/server/applications/shares/models/share-child.model.js.map +1 -1
- package/server/applications/shares/schemas/share-members.interface.js +1 -5
- package/server/applications/shares/schemas/share-members.interface.js.map +1 -1
- package/server/applications/shares/schemas/share.interface.js +1 -5
- package/server/applications/shares/schemas/share.interface.js.map +1 -1
- package/server/applications/shares/schemas/shares-members.schema.js +1 -5
- package/server/applications/shares/schemas/shares-members.schema.js.map +1 -1
- package/server/applications/shares/schemas/shares.schema.js +1 -5
- package/server/applications/shares/schemas/shares.schema.js.map +1 -1
- package/server/applications/shares/services/shares-manager.service.js +214 -68
- package/server/applications/shares/services/shares-manager.service.js.map +1 -1
- package/server/applications/shares/services/shares-manager.service.spec.js +1 -5
- package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -1
- package/server/applications/shares/services/shares-queries.service.js +49 -17
- package/server/applications/shares/services/shares-queries.service.js.map +1 -1
- package/server/applications/shares/shares.controller.js +1 -5
- package/server/applications/shares/shares.controller.js.map +1 -1
- package/server/applications/shares/shares.controller.spec.js +1 -5
- package/server/applications/shares/shares.controller.spec.js.map +1 -1
- package/server/applications/shares/shares.module.js +1 -5
- package/server/applications/shares/shares.module.js.map +1 -1
- package/server/applications/spaces/constants/cache.js +1 -5
- package/server/applications/spaces/constants/cache.js.map +1 -1
- package/server/applications/spaces/constants/routes.js +1 -5
- package/server/applications/spaces/constants/routes.js.map +1 -1
- package/server/applications/spaces/constants/spaces.js +1 -5
- package/server/applications/spaces/constants/spaces.js.map +1 -1
- package/server/applications/spaces/decorators/space-override-permission.decorator.js +1 -5
- package/server/applications/spaces/decorators/space-override-permission.decorator.js.map +1 -1
- package/server/applications/spaces/decorators/space-skip-guard.decorator.js +1 -5
- package/server/applications/spaces/decorators/space-skip-guard.decorator.js.map +1 -1
- package/server/applications/spaces/decorators/space-skip-permissions.decorator.js +1 -5
- package/server/applications/spaces/decorators/space-skip-permissions.decorator.js.map +1 -1
- package/server/applications/spaces/decorators/space.decorator.js +1 -5
- package/server/applications/spaces/decorators/space.decorator.js.map +1 -1
- package/server/applications/spaces/dto/create-or-update-space.dto.js +1 -5
- package/server/applications/spaces/dto/create-or-update-space.dto.js.map +1 -1
- package/server/applications/spaces/dto/delete-space.dto.js +1 -5
- package/server/applications/spaces/dto/delete-space.dto.js.map +1 -1
- package/server/applications/spaces/dto/search-space.dto.js +1 -5
- package/server/applications/spaces/dto/search-space.dto.js.map +1 -1
- package/server/applications/spaces/dto/space-roots.dto.js +1 -5
- package/server/applications/spaces/dto/space-roots.dto.js.map +1 -1
- package/server/applications/spaces/guards/space.guard.js +17 -9
- package/server/applications/spaces/guards/space.guard.js.map +1 -1
- package/server/applications/spaces/guards/space.guard.spec.js +1 -5
- package/server/applications/spaces/guards/space.guard.spec.js.map +1 -1
- package/server/applications/spaces/interfaces/space-diff.interface.js +1 -5
- package/server/applications/spaces/interfaces/space-diff.interface.js.map +1 -1
- package/server/applications/spaces/interfaces/space-files.interface.js +1 -5
- package/server/applications/spaces/interfaces/space-files.interface.js.map +1 -1
- package/server/applications/spaces/interfaces/space-request.interface.js +1 -5
- package/server/applications/spaces/interfaces/space-request.interface.js.map +1 -1
- package/server/applications/spaces/interfaces/space-trash.interface.js +1 -5
- package/server/applications/spaces/interfaces/space-trash.interface.js.map +1 -1
- package/server/applications/spaces/models/space-env.model.js +1 -5
- package/server/applications/spaces/models/space-env.model.js.map +1 -1
- package/server/applications/spaces/models/space-props.model.js +1 -5
- package/server/applications/spaces/models/space-props.model.js.map +1 -1
- package/server/applications/spaces/models/space-root-props.model.js +1 -5
- package/server/applications/spaces/models/space-root-props.model.js.map +1 -1
- package/server/applications/spaces/models/space.model.js +1 -5
- package/server/applications/spaces/models/space.model.js.map +1 -1
- package/server/applications/spaces/schemas/space-members.interface.js +1 -5
- package/server/applications/spaces/schemas/space-members.interface.js.map +1 -1
- package/server/applications/spaces/schemas/space-root.interface.js +1 -5
- package/server/applications/spaces/schemas/space-root.interface.js.map +1 -1
- package/server/applications/spaces/schemas/space.interface.js +1 -5
- package/server/applications/spaces/schemas/space.interface.js.map +1 -1
- package/server/applications/spaces/schemas/spaces-members.schema.js +1 -5
- package/server/applications/spaces/schemas/spaces-members.schema.js.map +1 -1
- package/server/applications/spaces/schemas/spaces-roots.schema.js +1 -5
- package/server/applications/spaces/schemas/spaces-roots.schema.js.map +1 -1
- package/server/applications/spaces/schemas/spaces.schema.js +1 -5
- package/server/applications/spaces/schemas/spaces.schema.js.map +1 -1
- package/server/applications/spaces/services/spaces-browser.service.js +77 -24
- package/server/applications/spaces/services/spaces-browser.service.js.map +1 -1
- package/server/applications/spaces/services/spaces-browser.service.spec.js +1 -5
- package/server/applications/spaces/services/spaces-browser.service.spec.js.map +1 -1
- package/server/applications/spaces/services/spaces-manager.service.js +193 -53
- package/server/applications/spaces/services/spaces-manager.service.js.map +1 -1
- package/server/applications/spaces/services/spaces-manager.service.spec.js +1 -5
- package/server/applications/spaces/services/spaces-manager.service.spec.js.map +1 -1
- package/server/applications/spaces/services/spaces-queries.service.js +65 -21
- package/server/applications/spaces/services/spaces-queries.service.js.map +1 -1
- package/server/applications/spaces/services/spaces-scheduler.service.js +49 -17
- package/server/applications/spaces/services/spaces-scheduler.service.js.map +1 -1
- package/server/applications/spaces/spaces.controller.js +1 -5
- package/server/applications/spaces/spaces.controller.js.map +1 -1
- package/server/applications/spaces/spaces.controller.spec.js +1 -5
- package/server/applications/spaces/spaces.controller.spec.js.map +1 -1
- package/server/applications/spaces/spaces.module.js +1 -5
- package/server/applications/spaces/spaces.module.js.map +1 -1
- package/server/applications/spaces/utils/paths.js +1 -5
- package/server/applications/spaces/utils/paths.js.map +1 -1
- package/server/applications/spaces/utils/permissions.js +1 -5
- package/server/applications/spaces/utils/permissions.js.map +1 -1
- package/server/applications/spaces/utils/routes.js +1 -5
- package/server/applications/spaces/utils/routes.js.map +1 -1
- package/server/applications/sync/constants/auth.js +1 -5
- package/server/applications/sync/constants/auth.js.map +1 -1
- package/server/applications/sync/constants/routes.js +6 -5
- package/server/applications/sync/constants/routes.js.map +1 -1
- package/server/applications/sync/constants/store.js +1 -9
- package/server/applications/sync/constants/store.js.map +1 -1
- package/server/applications/sync/constants/sync.js +2 -6
- package/server/applications/sync/constants/sync.js.map +1 -1
- package/server/applications/sync/decorators/sync-context.decorator.js +1 -5
- package/server/applications/sync/decorators/sync-context.decorator.js.map +1 -1
- package/server/applications/sync/decorators/sync-environment.decorator.js +1 -5
- package/server/applications/sync/decorators/sync-environment.decorator.js.map +1 -1
- package/server/applications/sync/dtos/sync-client-auth.dto.js +12 -8
- package/server/applications/sync/dtos/sync-client-auth.dto.js.map +1 -1
- package/server/applications/sync/dtos/sync-client-info.dto.js +49 -0
- package/server/applications/sync/dtos/sync-client-info.dto.js.map +1 -0
- package/server/applications/sync/dtos/sync-client-registration.dto.js +34 -11
- package/server/applications/sync/dtos/sync-client-registration.dto.js.map +1 -1
- package/server/applications/sync/dtos/sync-operations.dto.js +1 -5
- package/server/applications/sync/dtos/sync-operations.dto.js.map +1 -1
- package/server/applications/sync/dtos/sync-path.dto.js +1 -5
- package/server/applications/sync/dtos/sync-path.dto.js.map +1 -1
- package/server/applications/sync/dtos/sync-upload.dto.js +1 -5
- package/server/applications/sync/dtos/sync-upload.dto.js.map +1 -1
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js +1 -5
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js.map +1 -1
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js +1 -5
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js.map +1 -1
- package/server/applications/sync/interfaces/store-manifest.interface.js +1 -5
- package/server/applications/sync/interfaces/store-manifest.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-client-auth.interface.js +1 -25
- package/server/applications/sync/interfaces/sync-client-auth.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-client-paths.interface.js +1 -5
- package/server/applications/sync/interfaces/sync-client-paths.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-client.interface.js +1 -5
- package/server/applications/sync/interfaces/sync-client.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-diff.interface.js +1 -5
- package/server/applications/sync/interfaces/sync-diff.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-path.interface.js +1 -5
- package/server/applications/sync/interfaces/sync-path.interface.js.map +1 -1
- package/server/applications/sync/schemas/sync-client.interface.js +1 -5
- package/server/applications/sync/schemas/sync-client.interface.js.map +1 -1
- package/server/applications/sync/schemas/sync-clients.schema.js +1 -5
- package/server/applications/sync/schemas/sync-clients.schema.js.map +1 -1
- package/server/applications/sync/schemas/sync-path.interface.js +1 -5
- package/server/applications/sync/schemas/sync-path.interface.js.map +1 -1
- package/server/applications/sync/schemas/sync-paths.schema.js +1 -5
- package/server/applications/sync/schemas/sync-paths.schema.js.map +1 -1
- package/server/applications/sync/services/sync-clients-manager.service.js +108 -44
- package/server/applications/sync/services/sync-clients-manager.service.js.map +1 -1
- package/server/applications/sync/services/sync-clients-manager.service.spec.js +14 -17
- package/server/applications/sync/services/sync-clients-manager.service.spec.js.map +1 -1
- package/server/applications/sync/services/sync-manager.service.js +29 -12
- package/server/applications/sync/services/sync-manager.service.js.map +1 -1
- package/server/applications/sync/services/sync-manager.service.spec.js +1 -5
- package/server/applications/sync/services/sync-manager.service.spec.js.map +1 -1
- package/server/applications/sync/services/sync-paths-manager.service.js +27 -17
- package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -1
- package/server/applications/sync/services/sync-paths-manager.service.spec.js +11 -15
- package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -1
- package/server/applications/sync/services/sync-queries.service.js +1 -5
- package/server/applications/sync/services/sync-queries.service.js.map +1 -1
- package/server/applications/sync/sync.config.js +1 -5
- package/server/applications/sync/sync.config.js.map +1 -1
- package/server/applications/sync/sync.controller.js +21 -6
- package/server/applications/sync/sync.controller.js.map +1 -1
- package/server/applications/sync/sync.controller.spec.js +1 -5
- package/server/applications/sync/sync.controller.spec.js.map +1 -1
- package/server/applications/sync/sync.module.js +1 -5
- package/server/applications/sync/sync.module.js.map +1 -1
- package/server/applications/sync/utils/functions.js +1 -5
- package/server/applications/sync/utils/functions.js.map +1 -1
- package/server/applications/sync/utils/normalizedMap.js +1 -5
- package/server/applications/sync/utils/normalizedMap.js.map +1 -1
- package/server/applications/sync/utils/routes.js +1 -5
- package/server/applications/sync/utils/routes.js.map +1 -1
- package/server/applications/users/admin-users.controller.js +2 -6
- package/server/applications/users/admin-users.controller.js.map +1 -1
- package/server/applications/users/admin-users.controller.spec.js +6 -10
- package/server/applications/users/admin-users.controller.spec.js.map +1 -1
- package/server/applications/users/constants/group.js +1 -5
- package/server/applications/users/constants/group.js.map +1 -1
- package/server/applications/users/constants/member.js +1 -5
- package/server/applications/users/constants/member.js.map +1 -1
- package/server/applications/users/constants/routes.js +1 -5
- package/server/applications/users/constants/routes.js.map +1 -1
- package/server/applications/users/constants/user.js +1 -5
- package/server/applications/users/constants/user.js.map +1 -1
- package/server/applications/users/constants/websocket.js +1 -5
- package/server/applications/users/constants/websocket.js.map +1 -1
- package/server/applications/users/decorators/permissions.decorator.js +1 -5
- package/server/applications/users/decorators/permissions.decorator.js.map +1 -1
- package/server/applications/users/decorators/roles.decorator.js +1 -5
- package/server/applications/users/decorators/roles.decorator.js.map +1 -1
- package/server/applications/users/decorators/user.decorator.js +1 -5
- package/server/applications/users/decorators/user.decorator.js.map +1 -1
- package/server/applications/users/dto/create-or-update-group.dto.js +1 -5
- package/server/applications/users/dto/create-or-update-group.dto.js.map +1 -1
- package/server/applications/users/dto/create-or-update-user.dto.js +1 -5
- package/server/applications/users/dto/create-or-update-user.dto.js.map +1 -1
- package/server/applications/users/dto/delete-user.dto.js +1 -5
- package/server/applications/users/dto/delete-user.dto.js.map +1 -1
- package/server/applications/users/dto/search-members.dto.js +1 -5
- package/server/applications/users/dto/search-members.dto.js.map +1 -1
- package/server/applications/users/dto/user-properties.dto.js +1 -5
- package/server/applications/users/dto/user-properties.dto.js.map +1 -1
- package/server/applications/users/guards/permissions.guard.js +1 -5
- package/server/applications/users/guards/permissions.guard.js.map +1 -1
- package/server/applications/users/guards/permissions.guard.spec.js +1 -5
- package/server/applications/users/guards/permissions.guard.spec.js.map +1 -1
- package/server/applications/users/guards/roles.guard.js +1 -5
- package/server/applications/users/guards/roles.guard.js.map +1 -1
- package/server/applications/users/guards/roles.guard.spec.js +1 -5
- package/server/applications/users/guards/roles.guard.spec.js.map +1 -1
- package/server/applications/users/interfaces/admin-group.interface.js +1 -5
- package/server/applications/users/interfaces/admin-group.interface.js.map +1 -1
- package/server/applications/users/interfaces/admin-user.interface.js +1 -5
- package/server/applications/users/interfaces/admin-user.interface.js.map +1 -1
- package/server/applications/users/interfaces/group-browse.interface.js +1 -5
- package/server/applications/users/interfaces/group-browse.interface.js.map +1 -1
- package/server/applications/users/interfaces/group-member.js +1 -5
- package/server/applications/users/interfaces/group-member.js.map +1 -1
- package/server/applications/users/interfaces/guest-user.interface.js +1 -5
- package/server/applications/users/interfaces/guest-user.interface.js.map +1 -1
- package/server/applications/users/interfaces/member.interface.js +1 -5
- package/server/applications/users/interfaces/member.interface.js.map +1 -1
- package/server/applications/users/interfaces/owner.interface.js +1 -5
- package/server/applications/users/interfaces/owner.interface.js.map +1 -1
- package/server/applications/users/interfaces/user-secrets.interface.js +1 -5
- package/server/applications/users/interfaces/user-secrets.interface.js.map +1 -1
- package/server/applications/users/interfaces/websocket.interface.js +1 -5
- package/server/applications/users/interfaces/websocket.interface.js.map +1 -1
- package/server/applications/users/models/user.model.js +1 -5
- package/server/applications/users/models/user.model.js.map +1 -1
- package/server/applications/users/schemas/group.interface.js +1 -5
- package/server/applications/users/schemas/group.interface.js.map +1 -1
- package/server/applications/users/schemas/groups.schema.js +1 -5
- package/server/applications/users/schemas/groups.schema.js.map +1 -1
- package/server/applications/users/schemas/user-group.interface.js +1 -5
- package/server/applications/users/schemas/user-group.interface.js.map +1 -1
- package/server/applications/users/schemas/user.interface.js +1 -5
- package/server/applications/users/schemas/user.interface.js.map +1 -1
- package/server/applications/users/schemas/users-groups.schema.js +1 -5
- package/server/applications/users/schemas/users-groups.schema.js.map +1 -1
- package/server/applications/users/schemas/users-guests.schema.js +1 -5
- package/server/applications/users/schemas/users-guests.schema.js.map +1 -1
- package/server/applications/users/schemas/users.schema.js +1 -5
- package/server/applications/users/schemas/users.schema.js.map +1 -1
- package/server/applications/users/services/admin-users-manager.service.js +67 -23
- package/server/applications/users/services/admin-users-manager.service.js.map +1 -1
- package/server/applications/users/services/admin-users-manager.service.spec.js +3 -7
- package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -1
- package/server/applications/users/services/admin-users-queries.service.js +65 -21
- package/server/applications/users/services/admin-users-queries.service.js.map +1 -1
- package/server/applications/users/services/users-manager.service.js +81 -25
- package/server/applications/users/services/users-manager.service.js.map +1 -1
- package/server/applications/users/services/users-manager.service.spec.js +14 -12
- package/server/applications/users/services/users-manager.service.spec.js.map +1 -1
- package/server/applications/users/services/users-queries.service.js +49 -17
- package/server/applications/users/services/users-queries.service.js.map +1 -1
- package/server/applications/users/users.controller.js +2 -6
- package/server/applications/users/users.controller.js.map +1 -1
- package/server/applications/users/users.controller.spec.js +5 -9
- package/server/applications/users/users.controller.spec.js.map +1 -1
- package/server/applications/users/users.e2e-spec.js +3 -7
- package/server/applications/users/users.e2e-spec.js.map +1 -1
- package/server/applications/users/users.gateway.js +29 -12
- package/server/applications/users/users.gateway.js.map +1 -1
- package/server/applications/users/users.gateway.spec.js +1 -5
- package/server/applications/users/users.gateway.spec.js.map +1 -1
- package/server/applications/users/users.module.js +1 -5
- package/server/applications/users/users.module.js.map +1 -1
- package/server/applications/users/utils/avatar.js +1 -5
- package/server/applications/users/utils/avatar.js.map +1 -1
- package/server/applications/users/utils/test.js +1 -5
- package/server/applications/users/utils/test.js.map +1 -1
- package/server/applications/webdav/constants/routes.js +1 -5
- package/server/applications/webdav/constants/routes.js.map +1 -1
- package/server/applications/webdav/constants/webdav.js +1 -5
- package/server/applications/webdav/constants/webdav.js.map +1 -1
- package/server/applications/webdav/decorators/if-header.decorator.js +1 -5
- package/server/applications/webdav/decorators/if-header.decorator.js.map +1 -1
- package/server/applications/webdav/decorators/webdav-context.decorator.js +1 -5
- package/server/applications/webdav/decorators/webdav-context.decorator.js.map +1 -1
- package/server/applications/webdav/filters/webdav.filter.js +1 -5
- package/server/applications/webdav/filters/webdav.filter.js.map +1 -1
- package/server/applications/webdav/filters/webdav.filter.spec.js +1 -5
- package/server/applications/webdav/filters/webdav.filter.spec.js.map +1 -1
- package/server/applications/webdav/guards/webdav-protocol.guard.js +54 -20
- package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -1
- package/server/applications/webdav/guards/webdav-protocol.guard.spec.js +54 -0
- package/server/applications/webdav/guards/webdav-protocol.guard.spec.js.map +1 -1
- package/server/applications/webdav/interfaces/if-header.interface.js +1 -5
- package/server/applications/webdav/interfaces/if-header.interface.js.map +1 -1
- package/server/applications/webdav/interfaces/webdav.interface.js +1 -5
- package/server/applications/webdav/interfaces/webdav.interface.js.map +1 -1
- package/server/applications/webdav/models/webdav-file.model.js +1 -5
- package/server/applications/webdav/models/webdav-file.model.js.map +1 -1
- package/server/applications/webdav/services/webdav-methods.service.js +74 -26
- package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
- package/server/applications/webdav/services/webdav-methods.service.spec.js +15 -18
- package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -1
- package/server/applications/webdav/services/webdav-spaces.service.js +17 -9
- package/server/applications/webdav/services/webdav-spaces.service.js.map +1 -1
- package/server/applications/webdav/services/webdav-spaces.service.spec.js +1 -5
- package/server/applications/webdav/services/webdav-spaces.service.spec.js.map +1 -1
- package/server/applications/webdav/utils/bootstrap.js +1 -5
- package/server/applications/webdav/utils/bootstrap.js.map +1 -1
- package/server/applications/webdav/utils/if-header.js +1 -5
- package/server/applications/webdav/utils/if-header.js.map +1 -1
- package/server/applications/webdav/utils/routes.js +1 -5
- package/server/applications/webdav/utils/routes.js.map +1 -1
- package/server/applications/webdav/utils/webdav.js +1 -5
- package/server/applications/webdav/utils/webdav.js.map +1 -1
- package/server/applications/webdav/utils/xml.js +1 -5
- package/server/applications/webdav/utils/xml.js.map +1 -1
- package/server/applications/webdav/webdav.controller.js +1 -5
- package/server/applications/webdav/webdav.controller.js.map +1 -1
- package/server/applications/webdav/webdav.controller.spec.js +1 -5
- package/server/applications/webdav/webdav.controller.spec.js.map +1 -1
- package/server/applications/webdav/webdav.e2e-spec.js +1 -5
- package/server/applications/webdav/webdav.e2e-spec.js.map +1 -1
- package/server/applications/webdav/webdav.module.js +1 -5
- package/server/applications/webdav/webdav.module.js.map +1 -1
- package/server/authentication/auth.config.js +23 -123
- package/server/authentication/auth.config.js.map +1 -1
- package/server/authentication/auth.controller.js +27 -21
- package/server/authentication/auth.controller.js.map +1 -1
- package/server/authentication/auth.controller.spec.js +6 -10
- package/server/authentication/auth.controller.spec.js.map +1 -1
- package/server/authentication/auth.e2e-spec.js +1 -5
- package/server/authentication/auth.e2e-spec.js.map +1 -1
- package/server/authentication/auth.module.js +17 -20
- package/server/authentication/auth.module.js.map +1 -1
- package/server/authentication/{services/auth-manager.service.js → auth.service.js} +41 -18
- package/server/authentication/auth.service.js.map +1 -0
- package/server/authentication/{services/auth-manager.service.spec.js → auth.service.spec.js} +6 -10
- package/server/authentication/auth.service.spec.js.map +1 -0
- package/server/authentication/constants/auth.js +1 -5
- package/server/authentication/constants/auth.js.map +1 -1
- package/server/authentication/constants/routes.js +41 -30
- package/server/authentication/constants/routes.js.map +1 -1
- package/server/authentication/constants/scope.js +2 -5
- package/server/authentication/constants/scope.js.map +1 -1
- package/server/authentication/decorators/auth-token-optional.decorator.js +1 -5
- package/server/authentication/decorators/auth-token-optional.decorator.js.map +1 -1
- package/server/authentication/decorators/auth-token-skip.decorator.js +1 -5
- package/server/authentication/decorators/auth-token-skip.decorator.js.map +1 -1
- package/server/authentication/dto/login-response.dto.js +1 -10
- package/server/authentication/dto/login-response.dto.js.map +1 -1
- package/server/authentication/dto/token-response.dto.js +1 -5
- package/server/authentication/dto/token-response.dto.js.map +1 -1
- package/server/authentication/guards/auth-anonymous.guard.js +1 -5
- package/server/authentication/guards/auth-anonymous.guard.js.map +1 -1
- package/server/authentication/guards/auth-anonymous.guard.spec.js +1 -5
- package/server/authentication/guards/auth-anonymous.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-anonymous.strategy.js +1 -5
- package/server/authentication/guards/auth-anonymous.strategy.js.map +1 -1
- package/server/authentication/guards/auth-basic.guard.js +1 -5
- package/server/authentication/guards/auth-basic.guard.js.map +1 -1
- package/server/authentication/guards/auth-basic.guard.spec.js +13 -14
- package/server/authentication/guards/auth-basic.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-basic.strategy.js +10 -11
- package/server/authentication/guards/auth-basic.strategy.js.map +1 -1
- package/server/authentication/guards/auth-digest.guard.js +1 -5
- package/server/authentication/guards/auth-digest.guard.js.map +1 -1
- package/server/authentication/guards/auth-digest.strategy.js +1 -5
- package/server/authentication/guards/auth-digest.strategy.js.map +1 -1
- package/server/authentication/guards/auth-local.guard.js +1 -5
- package/server/authentication/guards/auth-local.guard.js.map +1 -1
- package/server/authentication/guards/auth-local.guard.spec.js +9 -13
- package/server/authentication/guards/auth-local.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-local.strategy.js +6 -10
- package/server/authentication/guards/auth-local.strategy.js.map +1 -1
- package/server/authentication/guards/auth-token-access.guard.js +1 -5
- package/server/authentication/guards/auth-token-access.guard.js.map +1 -1
- package/server/authentication/guards/auth-token-access.guard.spec.js +3 -7
- package/server/authentication/guards/auth-token-access.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-token-access.strategy.js +3 -7
- package/server/authentication/guards/auth-token-access.strategy.js.map +1 -1
- package/server/authentication/guards/auth-token-refresh.guard.js +1 -5
- package/server/authentication/guards/auth-token-refresh.guard.js.map +1 -1
- package/server/authentication/guards/auth-token-refresh.guard.spec.js +3 -7
- package/server/authentication/guards/auth-token-refresh.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-token-refresh.strategy.js +3 -7
- package/server/authentication/guards/auth-token-refresh.strategy.js.map +1 -1
- package/server/authentication/guards/implementations/http-basic.strategy.js +1 -5
- package/server/authentication/guards/implementations/http-basic.strategy.js.map +1 -1
- package/server/authentication/guards/implementations/http-digest.strategy.js +1 -5
- package/server/authentication/guards/implementations/http-digest.strategy.js.map +1 -1
- package/server/authentication/interfaces/auth-request.interface.js +1 -5
- package/server/authentication/interfaces/auth-request.interface.js.map +1 -1
- package/server/authentication/interfaces/jwt-payload.interface.js +1 -5
- package/server/authentication/interfaces/jwt-payload.interface.js.map +1 -1
- package/server/authentication/interfaces/token.interface.js +1 -5
- package/server/authentication/interfaces/token.interface.js.map +1 -1
- package/server/authentication/providers/auth-providers.constants.js +18 -0
- package/server/authentication/providers/auth-providers.constants.js.map +1 -0
- package/server/authentication/providers/auth-providers.models.js +14 -0
- package/server/authentication/providers/auth-providers.models.js.map +1 -0
- package/server/authentication/providers/auth-providers.utils.js +42 -0
- package/server/authentication/providers/auth-providers.utils.js.map +1 -0
- package/server/authentication/providers/ldap/auth-ldap.config.js +143 -0
- package/server/authentication/providers/ldap/auth-ldap.config.js.map +1 -0
- package/server/authentication/{constants/auth-ldap.js → providers/ldap/auth-ldap.constants.js} +12 -6
- package/server/authentication/providers/ldap/auth-ldap.constants.js.map +1 -0
- package/server/authentication/providers/ldap/auth-provider-ldap.service.js +506 -0
- package/server/authentication/providers/ldap/auth-provider-ldap.service.js.map +1 -0
- package/server/authentication/providers/ldap/auth-provider-ldap.service.spec.js +674 -0
- package/server/authentication/providers/ldap/auth-provider-ldap.service.spec.js.map +1 -0
- package/server/authentication/{services/auth-methods/auth-method-database.service.js → providers/mysql/auth-provider-mysql.service.js} +16 -14
- package/server/authentication/providers/mysql/auth-provider-mysql.service.js.map +1 -0
- package/server/authentication/{services/auth-methods/auth-method-database.service.spec.js → providers/mysql/auth-provider-mysql.service.spec.js} +15 -19
- package/server/authentication/providers/mysql/auth-provider-mysql.service.spec.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc-desktop.constants.js +30 -0
- package/server/authentication/providers/oidc/auth-oidc-desktop.constants.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc.config.js +149 -0
- package/server/authentication/providers/oidc/auth-oidc.config.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc.constants.js +39 -0
- package/server/authentication/providers/oidc/auth-oidc.constants.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc.controller.js +83 -0
- package/server/authentication/providers/oidc/auth-oidc.controller.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc.interfaces.js +6 -0
- package/server/authentication/providers/oidc/auth-oidc.interfaces.js.map +1 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.module.js +36 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.module.js.map +1 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.service.js +373 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.service.js.map +1 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js +270 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js.map +1 -0
- package/server/authentication/{services/auth-methods/auth-method-two-fa.service.js → providers/two-fa/auth-provider-two-fa.service.js} +56 -38
- package/server/authentication/providers/two-fa/auth-provider-two-fa.service.js.map +1 -0
- package/server/authentication/{services/auth-methods/auth-method-two-fa.service.spec.js → providers/two-fa/auth-provider-two-fa.service.spec.js} +6 -10
- package/server/authentication/providers/two-fa/auth-provider-two-fa.service.spec.js.map +1 -0
- package/server/authentication/{guards → providers/two-fa}/auth-two-fa-guard.js +10 -14
- package/server/authentication/providers/two-fa/auth-two-fa-guard.js.map +1 -0
- package/server/authentication/providers/two-fa/auth-two-fa.config.js +57 -0
- package/server/authentication/providers/two-fa/auth-two-fa.config.js.map +1 -0
- package/server/authentication/{dto/two-fa-verify.dto.js → providers/two-fa/auth-two-fa.dtos.js} +8 -6
- package/server/authentication/providers/two-fa/auth-two-fa.dtos.js.map +1 -0
- package/server/authentication/providers/two-fa/auth-two-fa.interfaces.js +6 -0
- package/server/authentication/providers/two-fa/auth-two-fa.interfaces.js.map +1 -0
- package/server/authentication/utils/crypt-secret.js +1 -5
- package/server/authentication/utils/crypt-secret.js.map +1 -1
- package/server/common/constants.js +1 -5
- package/server/common/constants.js.map +1 -1
- package/server/common/decorators.js +1 -5
- package/server/common/decorators.js.map +1 -1
- package/server/common/functions.js +25 -9
- package/server/common/functions.js.map +1 -1
- package/server/common/i18n.js +1 -5
- package/server/common/i18n.js.map +1 -1
- package/server/common/image.js +1 -5
- package/server/common/image.js.map +1 -1
- package/server/common/interfaces.js +1 -5
- package/server/common/interfaces.js.map +1 -1
- package/server/common/qrcode.js +1 -5
- package/server/common/qrcode.js.map +1 -1
- package/server/common/shared.js +6 -6
- package/server/common/shared.js.map +1 -1
- package/server/configuration/config.constants.js +1 -5
- package/server/configuration/config.constants.js.map +1 -1
- package/server/configuration/config.environment.js +2 -6
- package/server/configuration/config.environment.js.map +1 -1
- package/server/configuration/config.interfaces.js +1 -5
- package/server/configuration/config.interfaces.js.map +1 -1
- package/server/configuration/config.loader.js +1 -5
- package/server/configuration/config.loader.js.map +1 -1
- package/server/configuration/config.logger.js +4 -8
- package/server/configuration/config.logger.js.map +1 -1
- package/server/configuration/config.validation.js +7 -5
- package/server/configuration/config.validation.js.map +1 -1
- package/server/infrastructure/cache/adapters/mysql-cache.adapter.js +9 -7
- package/server/infrastructure/cache/adapters/mysql-cache.adapter.js.map +1 -1
- package/server/infrastructure/cache/adapters/redis-cache.adapter.js +1 -5
- package/server/infrastructure/cache/adapters/redis-cache.adapter.js.map +1 -1
- package/server/infrastructure/cache/cache.config.js +1 -5
- package/server/infrastructure/cache/cache.config.js.map +1 -1
- package/server/infrastructure/cache/cache.decorator.js +9 -7
- package/server/infrastructure/cache/cache.decorator.js.map +1 -1
- package/server/infrastructure/cache/cache.e2e-spec.js +1 -5
- package/server/infrastructure/cache/cache.e2e-spec.js.map +1 -1
- package/server/infrastructure/cache/cache.module.js +1 -5
- package/server/infrastructure/cache/cache.module.js.map +1 -1
- package/server/infrastructure/cache/schemas/mysql-cache.interface.js +1 -5
- package/server/infrastructure/cache/schemas/mysql-cache.interface.js.map +1 -1
- package/server/infrastructure/cache/schemas/mysql-cache.schema.js +1 -5
- package/server/infrastructure/cache/schemas/mysql-cache.schema.js.map +1 -1
- package/server/infrastructure/cache/services/cache.service.js +1 -5
- package/server/infrastructure/cache/services/cache.service.js.map +1 -1
- package/server/infrastructure/context/context.module.js +1 -5
- package/server/infrastructure/context/context.module.js.map +1 -1
- package/server/infrastructure/context/interceptors/context.interceptor.js +1 -5
- package/server/infrastructure/context/interceptors/context.interceptor.js.map +1 -1
- package/server/infrastructure/context/interceptors/context.interceptor.spec.js +2 -6
- package/server/infrastructure/context/interceptors/context.interceptor.spec.js.map +1 -1
- package/server/infrastructure/context/interfaces/context-store.interface.js +1 -5
- package/server/infrastructure/context/interfaces/context-store.interface.js.map +1 -1
- package/server/infrastructure/context/services/context-manager.service.js +1 -5
- package/server/infrastructure/context/services/context-manager.service.js.map +1 -1
- package/server/infrastructure/context/services/context-manager.service.spec.js +1 -5
- package/server/infrastructure/context/services/context-manager.service.spec.js.map +1 -1
- package/server/infrastructure/database/columns.js +1 -5
- package/server/infrastructure/database/columns.js.map +1 -1
- package/server/infrastructure/database/configuration.js +1 -5
- package/server/infrastructure/database/configuration.js.map +1 -1
- package/server/infrastructure/database/constants.js +2 -6
- package/server/infrastructure/database/constants.js.map +1 -1
- package/server/infrastructure/database/database.config.js +1 -5
- package/server/infrastructure/database/database.config.js.map +1 -1
- package/server/infrastructure/database/database.logger.js +1 -5
- package/server/infrastructure/database/database.logger.js.map +1 -1
- package/server/infrastructure/database/database.module.js +1 -5
- package/server/infrastructure/database/database.module.js.map +1 -1
- package/server/infrastructure/database/interfaces/database.interface.js +1 -5
- package/server/infrastructure/database/interfaces/database.interface.js.map +1 -1
- package/server/infrastructure/database/schema.js +1 -5
- package/server/infrastructure/database/schema.js.map +1 -1
- package/server/infrastructure/database/scripts/create-user.js +1 -5
- package/server/infrastructure/database/scripts/create-user.js.map +1 -1
- package/server/infrastructure/database/scripts/db.js +1 -5
- package/server/infrastructure/database/scripts/db.js.map +1 -1
- package/server/infrastructure/database/scripts/seed/main.js +1 -5
- package/server/infrastructure/database/scripts/seed/main.js.map +1 -1
- package/server/infrastructure/database/scripts/seed/usersgroups.js +1 -5
- package/server/infrastructure/database/scripts/seed/usersgroups.js.map +1 -1
- package/server/infrastructure/database/utils.js +1 -5
- package/server/infrastructure/database/utils.js.map +1 -1
- package/server/infrastructure/mailer/interfaces/mail.interface.js +1 -5
- package/server/infrastructure/mailer/interfaces/mail.interface.js.map +1 -1
- package/server/infrastructure/mailer/mailer.config.js +1 -5
- package/server/infrastructure/mailer/mailer.config.js.map +1 -1
- package/server/infrastructure/mailer/mailer.module.js +1 -5
- package/server/infrastructure/mailer/mailer.module.js.map +1 -1
- package/server/infrastructure/mailer/mailer.service.js +1 -5
- package/server/infrastructure/mailer/mailer.service.js.map +1 -1
- package/server/infrastructure/mailer/mailer.service.spec.js +2 -6
- package/server/infrastructure/mailer/mailer.service.spec.js.map +1 -1
- package/server/infrastructure/scheduler/scheduler.constants.js +1 -5
- package/server/infrastructure/scheduler/scheduler.constants.js.map +1 -1
- package/server/infrastructure/scheduler/scheduler.module.js +1 -5
- package/server/infrastructure/scheduler/scheduler.module.js.map +1 -1
- package/server/infrastructure/websocket/adapters/cluster.adapter.js +1 -5
- package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -1
- package/server/infrastructure/websocket/adapters/redis.adapter.js +1 -5
- package/server/infrastructure/websocket/adapters/redis.adapter.js.map +1 -1
- package/server/infrastructure/websocket/adapters/web-socket.adapter.js +1 -5
- package/server/infrastructure/websocket/adapters/web-socket.adapter.js.map +1 -1
- package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js +1 -5
- package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js.map +1 -1
- package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js +1 -5
- package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js.map +1 -1
- package/server/infrastructure/websocket/utils.js +1 -5
- package/server/infrastructure/websocket/utils.js.map +1 -1
- package/server/infrastructure/websocket/web-socket.config.js +1 -5
- package/server/infrastructure/websocket/web-socket.config.js.map +1 -1
- package/server/main.js +5 -0
- package/server/main.js.map +1 -1
- package/static/assets/pdfjs/build/pdf.mjs +724 -745
- package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
- package/static/assets/pdfjs/build/pdf.sandbox.mjs +2 -2
- package/static/assets/pdfjs/build/pdf.worker.mjs +706 -193
- package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
- package/static/assets/pdfjs/version +1 -1
- package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +5 -5
- package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +1 -0
- package/static/assets/pdfjs/web/locale/fur/viewer.ftl +5 -0
- package/static/assets/pdfjs/web/locale/kk/viewer.ftl +28 -0
- package/static/assets/pdfjs/web/locale/ml/viewer.ftl +4 -0
- package/static/assets/pdfjs/web/locale/ru/viewer.ftl +3 -3
- package/static/assets/pdfjs/web/viewer.css +207 -65
- package/static/assets/pdfjs/web/viewer.html +11 -10
- package/static/assets/pdfjs/web/viewer.mjs +850 -270
- package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
- package/static/assets/pdfjs/web/wasm/LICENSE_JBIG2 +196 -0
- package/static/assets/pdfjs/web/wasm/LICENSE_PDFJS_JBIG2 +13 -0
- package/static/assets/pdfjs/web/wasm/jbig2.wasm +0 -0
- package/static/chunk-22TZP6HW.js +1 -0
- package/static/{chunk-G7TLKY5X.js → chunk-27ATUHBH.js} +1 -1
- package/static/{chunk-CQOQXVYG.js → chunk-2CKLZ3FM.js} +1 -1
- package/static/{chunk-FVFOX6OP.js → chunk-2QZPX7LO.js} +1 -1
- package/static/{chunk-32AVRWC3.js → chunk-2R6IBBPZ.js} +1 -1
- package/static/{chunk-76JDXKD7.js → chunk-4FIGEBNL.js} +1 -1
- package/static/{chunk-ACCGBDUZ.js → chunk-4P3JABAP.js} +4 -4
- package/static/chunk-5CZOSAMZ.js +1 -0
- package/static/{chunk-2PDTP6N4.js → chunk-677WUBCT.js} +1 -1
- package/static/{chunk-K5VO5XTG.js → chunk-74CAHBFM.js} +1 -1
- package/static/{chunk-WTWGBCFO.js → chunk-7GWW6MJO.js} +1 -1
- package/static/{chunk-JXZOYX4N.js → chunk-A4UGPSWX.js} +1 -1
- package/static/{chunk-44D7RWET.js → chunk-AHO37FKW.js} +1 -1
- package/static/{chunk-WB2DECOA.js → chunk-AQCXMKP3.js} +1 -1
- package/static/chunk-B6PDYCRO.js +3 -0
- package/static/{chunk-JVGN5V5E.js → chunk-CU76ATCF.js} +1 -1
- package/static/{chunk-Q5K4ZUHK.js → chunk-CWYHOPOP.js} +1 -1
- package/static/{chunk-IOX3ANJR.js → chunk-E5WI5725.js} +1 -1
- package/static/{chunk-NUG54Y65.js → chunk-FC5HTKVM.js} +1 -1
- package/static/{chunk-LRK6RNPR.js → chunk-FOSM7EYI.js} +1 -1
- package/static/{chunk-B4UP2EQM.js → chunk-GAZO25PI.js} +1 -1
- package/static/{chunk-3WBCGTYW.js → chunk-GB7ABR5N.js} +1 -1
- package/static/{chunk-XFZ37WVK.js → chunk-GEHFKZQ5.js} +1 -1
- package/static/{chunk-4CQLN5HL.js → chunk-GQFMWVFD.js} +1 -1
- package/static/{chunk-YBEH442D.js → chunk-GVNTC564.js} +1 -1
- package/static/{chunk-WO6GBHBZ.js → chunk-HGL3NYP2.js} +2 -2
- package/static/{chunk-IAWRRL6J.js → chunk-HLIWPWRA.js} +1 -1
- package/static/{chunk-6LHJBXUE.js → chunk-HNYB3M4S.js} +1 -1
- package/static/{chunk-5WTIUYFF.js → chunk-HUXAUQMN.js} +1 -1
- package/static/{chunk-VBH3Y2M5.js → chunk-I2XA6PPK.js} +1 -1
- package/static/{chunk-I3XI72AV.js → chunk-ISV3BO6R.js} +1 -1
- package/static/{chunk-P7X53PEP.js → chunk-JV3AGU5B.js} +1 -1
- package/static/{chunk-ZFAXICUH.js → chunk-K25E7YGG.js} +1 -1
- package/static/{chunk-CAD3RHAY.js → chunk-K46PUTZB.js} +1 -1
- package/static/{chunk-GYFLVCFN.js → chunk-KERFLJ56.js} +1 -7
- package/static/{chunk-WSTGWBVW.js → chunk-KJD3KFF3.js} +1 -1
- package/static/{chunk-R4P4NBUL.js → chunk-KPKSI23S.js} +1 -1
- package/static/{chunk-M7IFVC5D.js → chunk-KZS7CTNR.js} +1 -1
- package/static/{chunk-P2IJCGWD.js → chunk-L5IHUVXL.js} +1 -1
- package/static/{chunk-DXESTGOH.js → chunk-L7RRX2M3.js} +1 -1
- package/static/{chunk-WE3ISL7O.js → chunk-LGWJ2WKU.js} +1 -1
- package/static/{chunk-OKI3N5AI.js → chunk-MLC7JK2H.js} +2 -2
- package/static/{chunk-NG7QWUFM.js → chunk-MOHNYW2A.js} +1 -1
- package/static/{chunk-SQYWQUL4.js → chunk-NCDUOVMW.js} +1 -1
- package/static/chunk-NGUAJIGI.js +1 -0
- package/static/{chunk-OYPJUVD6.js → chunk-NIPP6JDI.js} +1 -1
- package/static/{chunk-Y433XOAJ.js → chunk-NMTBMHUL.js} +1 -1
- package/static/chunk-O4XXMZFX.js +4 -0
- package/static/{chunk-IOP3ON2H.js → chunk-OANZITPM.js} +1 -1
- package/static/{chunk-WJFKUJJX.js → chunk-OGE4SAHU.js} +1 -1
- package/static/{chunk-7EHP6HO3.js → chunk-OI3ME22C.js} +1 -1
- package/static/{chunk-D4XDSS6P.js → chunk-Q3EGCMF5.js} +1 -1
- package/static/{chunk-TQBCGNFG.js → chunk-QF2NSHZA.js} +1 -1
- package/static/{chunk-RBBMH2FM.js → chunk-QKN6LAAA.js} +1 -1
- package/static/{chunk-J45SD6RC.js → chunk-QRFESU5O.js} +2 -2
- package/static/chunk-QVRVFYJH.js +1 -0
- package/static/{chunk-BAHNSFET.js → chunk-RFJIPIOK.js} +1 -1
- package/static/{chunk-IZ7TCHUW.js → chunk-RLL634K4.js} +1 -1
- package/static/{chunk-MOWL3ILT.js → chunk-RS2OFKWP.js} +1 -1
- package/static/{chunk-WM56LPJ3.js → chunk-RWAAC3A4.js} +1 -1
- package/static/{chunk-F3GMI6OL.js → chunk-S5Y64DDS.js} +1 -1
- package/static/{chunk-VNNLMUK7.js → chunk-SLG5KDU6.js} +1 -1
- package/static/chunk-TJ4CVFEL.js +1 -0
- package/static/{chunk-SAN35XTD.js → chunk-TWCGKSYE.js} +1 -1
- package/static/{chunk-EUKVDBBK.js → chunk-UMDRE4S7.js} +1 -1
- package/static/{chunk-YKCUUBZP.js → chunk-VRIOLRYR.js} +4 -4
- package/static/chunk-VS4O2XDP.js +1 -0
- package/static/{chunk-2MRTBCSV.js → chunk-VSBFNFOM.js} +1 -1
- package/static/{chunk-CTPKDDVI.js → chunk-WN4WXCVK.js} +1 -1
- package/static/{chunk-2AA3WMW5.js → chunk-WX7RXW7K.js} +1 -1
- package/static/{chunk-J2BUPRCZ.js → chunk-XC4POKR3.js} +2 -2
- package/static/{chunk-AXLDYLIO.js → chunk-Y4AUYQTG.js} +1 -1
- package/static/{chunk-RPHWIW7S.js → chunk-YMIXHRJQ.js} +1 -7
- package/static/{chunk-AFNUBQMD.js → chunk-ZUNKFAKP.js} +1 -1
- package/static/index.html +3 -3
- package/static/main-QN4UCOC5.js +5 -0
- package/static/{styles-PD6764CP.css → styles-46GLIE7Y.css} +1 -1
- package/server/authentication/constants/auth-ldap.js.map +0 -1
- package/server/authentication/dto/two-fa-verify.dto.js.map +0 -1
- package/server/authentication/guards/auth-two-fa-guard.js.map +0 -1
- package/server/authentication/interfaces/two-fa-setup.interface.js +0 -10
- package/server/authentication/interfaces/two-fa-setup.interface.js.map +0 -1
- package/server/authentication/models/auth-method.js +0 -18
- package/server/authentication/models/auth-method.js.map +0 -1
- package/server/authentication/services/auth-manager.service.js.map +0 -1
- package/server/authentication/services/auth-manager.service.spec.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-database.service.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-ldap.service.js +0 -326
- package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +0 -534
- package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-two-fa.service.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js.map +0 -1
- package/static/chunk-3I6NPM62.js +0 -1
- package/static/chunk-GCPX3EFC.js +0 -1
- package/static/chunk-KBUIDMCK.js +0 -1
- package/static/chunk-KY6MNZLC.js +0 -1
- package/static/chunk-MPWD4VMY.js +0 -1
- package/static/chunk-QQAF3MLL.js +0 -1
- package/static/chunk-VHZKPUWE.js +0 -4
- package/static/chunk-YWLMFOB4.js +0 -3
- package/static/main-ZXEMCBMI.js +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../backend/src/applications/users/users.gateway.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { BeforeApplicationShutdown, Logger } from '@nestjs/common'\nimport {\n MessageBody,\n OnGatewayConnection,\n OnGatewayDisconnect,\n OnGatewayInit,\n SubscribeMessage,\n WebSocketGateway,\n WebSocketServer\n} from '@nestjs/websockets'\nimport { Server } from 'socket.io'\nimport { JwtIdentityPayload } from '../../authentication/interfaces/jwt-payload.interface'\nimport { sleep } from '../../common/functions'\nimport { GetWsUser } from '../../infrastructure/websocket/decorators/web-socket-user.decorator'\nimport { AuthenticatedSocketIO } from '../../infrastructure/websocket/interfaces/auth-socket-io.interface'\nimport { getClientAddress } from '../../infrastructure/websocket/utils'\nimport { USER_ONLINE_STATUS } from './constants/user'\nimport { USER_ROOM_PREFIX, USERS_WS } from './constants/websocket'\nimport { EventChangeOnlineStatus, EventUpdateOnlineStatus, UserOnline } from './interfaces/websocket.interface'\nimport { UsersManager } from './services/users-manager.service'\n\n@WebSocketGateway()\nexport class WebSocketUsers implements BeforeApplicationShutdown, OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect {\n @WebSocketServer() server: Server\n private readonly internalEventOnlineUsers = 'listOnlineUsers'\n private readonly logger = new Logger(WebSocketUsers.name)\n private initialized = false\n private shuttingDown = false\n private readonly waitTime: number = 3000 //ms\n // to show local rooms : this.server.of('/').adapter.rooms\n\n constructor(private readonly usersManager: UsersManager) {}\n\n afterInit(server: Server): any {\n server.on(this.internalEventOnlineUsers, (cb) => cb(this.filterUserRooms(this.server.sockets.adapter.rooms.keys())))\n setTimeout(() => (this.initialized = true), this.waitTime)\n }\n\n beforeApplicationShutdown(_signal?: string) {\n this.shuttingDown = true\n }\n\n async handleConnection(socket: AuthenticatedSocketIO): Promise<void> {\n if (this.shuttingDown) return\n socket.join(`${USER_ROOM_PREFIX}${socket.user.id}`)\n this.sendOnlineUser(socket.user, parseInt((socket.handshake.query.onlineStatus as string) || '0')).catch((e: Error) =>\n this.logger.error(`${this.handleConnection.name} - ${e}`)\n )\n this.sendAllOnlineUsers(socket.user.id).catch((e: Error) => this.logger.error(`${this.handleConnection.name} - ${e}`))\n this.logger.log(\n `Connected: *${socket.user.login}* (${socket.user.id}) [${socket.id}] ${getClientAddress(socket)} ${socket.handshake.headers['user-agent']}`\n )\n }\n\n async handleDisconnect(socket: AuthenticatedSocketIO): Promise<void> {\n if (this.shuttingDown) return\n socket.leave(`${USER_ROOM_PREFIX}${socket.user.id}`)\n this.sendOfflineUser(socket.user.id).catch((e: Error) => this.logger.error(`${this.handleDisconnect.name} - ${e}`))\n this.logger.log(\n `Disconnected: *${socket.user.login}* (${socket.user.id}) [${socket.id}] ${getClientAddress(socket)} ${socket.handshake.headers['user-agent']}`\n )\n }\n\n @SubscribeMessage(USERS_WS.EVENTS.ONLINE_STATUS)\n setOnlineStatus(@GetWsUser() user: JwtIdentityPayload, @MessageBody() body: EventChangeOnlineStatus) {\n if (body.store) {\n // store in db\n this.usersManager.setOnlineStatus(user, body.status)\n }\n this.sendOnlineStatus(user.id, body.status).catch((e: Error) => this.logger.error(`${this.setOnlineStatus.name} - ${e}`))\n }\n\n private sendMessageToUsers(userIds: number[], eventName: string, body: any) {\n if (userIds.length) {\n this.server.to(userIds.map((uid) => `${USER_ROOM_PREFIX}${uid}`)).emit(eventName, body)\n }\n }\n\n private async sendOnlineUser(user: JwtIdentityPayload, status: USER_ONLINE_STATUS) {\n if (!this.initialized) {\n // all online users will be propagated in the next seconds\n return\n }\n if (status === USER_ONLINE_STATUS.OFFLINE) {\n // user's online status is offline, do not send update to others\n return\n }\n const userIdsToNotify: number[] = await this.getOnlineUserIdsWhitelist(user.id)\n if (userIdsToNotify.length) {\n const onlineUser: UserOnline = {\n id: user.id,\n login: user.login,\n email: user.email,\n fullName: user.fullName,\n onlineStatus: status\n } satisfies UserOnline\n this.sendMessageToUsers(userIdsToNotify, USERS_WS.EVENTS.ONLINE_USER, onlineUser)\n }\n }\n\n private async sendOfflineUser(userId: number): Promise<void> {\n // avoid sending offline event on quick reconnects\n await sleep(this.waitTime)\n // check if user room is empty before send event\n if ((await this.getOnlineUserIds()).indexOf(userId) === -1) {\n this.sendOnlineStatus(userId, USER_ONLINE_STATUS.OFFLINE).catch((e: Error) => this.logger.error(`${this.sendOfflineUser.name} - ${e}`))\n }\n }\n\n private async sendAllOnlineUsers(toUserId: number) {\n if (!this.initialized) {\n // wait for all reconnections before propagating all online users\n await sleep(this.waitTime)\n }\n const onlineUserIds: number[] = await this.getOnlineUserIdsWhitelist(toUserId)\n if (onlineUserIds.length) {\n const onlineUsers: UserOnline[] = await this.usersManager.getOnlineUsers(onlineUserIds)\n if (onlineUsers.length) {\n this.sendMessageToUsers([toUserId], USERS_WS.EVENTS.ONLINE_USERS, onlineUsers)\n }\n }\n }\n\n private async sendOnlineStatus(userId: number, status: USER_ONLINE_STATUS) {\n const userIdsToNotify: number[] = await this.getOnlineUserIdsWhitelist(userId, false)\n if (userIdsToNotify.length) {\n const onlineStatus: EventUpdateOnlineStatus = { userId: userId, status: status }\n this.sendMessageToUsers(userIdsToNotify, USERS_WS.EVENTS.ONLINE_STATUS, onlineStatus)\n }\n }\n\n private async getOnlineUserIdsWhitelist(userId: number, excludeUser = true): Promise<number[]> {\n /* get online users visible for the user */\n const currentOnlineUserIds: number[] = await this.getOnlineUserIds()\n if (currentOnlineUserIds.length) {\n let usersWhitelist: number[] = await this.usersManager.usersWhitelist(userId)\n if (usersWhitelist) {\n if (excludeUser) {\n usersWhitelist = usersWhitelist.filter((uid) => uid !== userId)\n }\n return usersWhitelist.filter((uid) => currentOnlineUserIds.indexOf(uid) > -1)\n }\n }\n return []\n }\n\n private async getOnlineUserIds(): Promise<number[]> {\n /* get all online users from all workers */\n const localUserIds: number[] = this.filterUserRooms(this.server.sockets.adapter.rooms.keys())\n const remoteUserIds: number[][] = await this.server.serverSideEmitWithAck(this.internalEventOnlineUsers)\n return [...new Set([...localUserIds, ...remoteUserIds].flat())]\n }\n\n private filterUserRooms(rooms: Iterable<string>): number[] {\n return [...rooms].filter((r) => r.startsWith(USER_ROOM_PREFIX)).map((ur) => parseInt(ur.split(USER_ROOM_PREFIX).pop()))\n }\n}\n"],"names":["WebSocketUsers","afterInit","server","on","internalEventOnlineUsers","cb","filterUserRooms","sockets","adapter","rooms","keys","setTimeout","initialized","waitTime","beforeApplicationShutdown","_signal","shuttingDown","handleConnection","socket","join","USER_ROOM_PREFIX","user","id","sendOnlineUser","parseInt","handshake","query","onlineStatus","catch","e","logger","error","name","sendAllOnlineUsers","log","login","getClientAddress","headers","handleDisconnect","leave","sendOfflineUser","setOnlineStatus","body","store","usersManager","status","sendOnlineStatus","sendMessageToUsers","userIds","eventName","length","to","map","uid","emit","USER_ONLINE_STATUS","OFFLINE","userIdsToNotify","getOnlineUserIdsWhitelist","onlineUser","email","fullName","USERS_WS","EVENTS","ONLINE_USER","userId","sleep","getOnlineUserIds","indexOf","toUserId","onlineUserIds","onlineUsers","getOnlineUsers","ONLINE_USERS","ONLINE_STATUS","excludeUser","currentOnlineUserIds","usersWhitelist","filter","localUserIds","remoteUserIds","serverSideEmitWithAck","Set","flat","r","startsWith","ur","split","pop","Logger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../backend/src/applications/users/users.gateway.ts"],"sourcesContent":["import { BeforeApplicationShutdown, Logger } from '@nestjs/common'\nimport {\n MessageBody,\n OnGatewayConnection,\n OnGatewayDisconnect,\n OnGatewayInit,\n SubscribeMessage,\n WebSocketGateway,\n WebSocketServer\n} from '@nestjs/websockets'\nimport { Server } from 'socket.io'\nimport { JwtIdentityPayload } from '../../authentication/interfaces/jwt-payload.interface'\nimport { sleep } from '../../common/functions'\nimport { GetWsUser } from '../../infrastructure/websocket/decorators/web-socket-user.decorator'\nimport { AuthenticatedSocketIO } from '../../infrastructure/websocket/interfaces/auth-socket-io.interface'\nimport { getClientAddress } from '../../infrastructure/websocket/utils'\nimport { USER_ONLINE_STATUS } from './constants/user'\nimport { USER_ROOM_PREFIX, USERS_WS } from './constants/websocket'\nimport { EventChangeOnlineStatus, EventUpdateOnlineStatus, UserOnline } from './interfaces/websocket.interface'\nimport { UsersManager } from './services/users-manager.service'\n\n@WebSocketGateway()\nexport class WebSocketUsers implements BeforeApplicationShutdown, OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect {\n @WebSocketServer() server: Server\n private readonly internalEventOnlineUsers = 'listOnlineUsers'\n private readonly logger = new Logger(WebSocketUsers.name)\n private initialized = false\n private shuttingDown = false\n private readonly waitTime: number = 3000 //ms\n // to show local rooms : this.server.of('/').adapter.rooms\n\n constructor(private readonly usersManager: UsersManager) {}\n\n afterInit(server: Server): any {\n server.on(this.internalEventOnlineUsers, (cb) => cb(this.filterUserRooms(this.server.sockets.adapter.rooms.keys())))\n setTimeout(() => (this.initialized = true), this.waitTime)\n }\n\n beforeApplicationShutdown(_signal?: string) {\n this.shuttingDown = true\n }\n\n async handleConnection(socket: AuthenticatedSocketIO): Promise<void> {\n if (this.shuttingDown) return\n socket.join(`${USER_ROOM_PREFIX}${socket.user.id}`)\n this.sendOnlineUser(socket.user, parseInt((socket.handshake.query.onlineStatus as string) || '0')).catch((e: Error) =>\n this.logger.error({ tag: this.handleConnection.name, msg: `${e}` })\n )\n this.sendAllOnlineUsers(socket.user.id).catch((e: Error) => this.logger.error({ tag: this.handleConnection.name, msg: `${e}` }))\n this.logger.log({\n tag: this.handleConnection.name,\n msg: `Connected: *${socket.user.login}* (${socket.user.id}) [${socket.id}] ${getClientAddress(socket)} ${socket.handshake.headers['user-agent']}`\n })\n }\n\n async handleDisconnect(socket: AuthenticatedSocketIO): Promise<void> {\n if (this.shuttingDown) return\n socket.leave(`${USER_ROOM_PREFIX}${socket.user.id}`)\n this.sendOfflineUser(socket.user.id).catch((e: Error) => this.logger.error({ tag: this.handleDisconnect.name, msg: `${e}` }))\n this.logger.log({\n tag: this.handleDisconnect.name,\n msg: `Disconnected: *${socket.user.login}* (${socket.user.id}) [${socket.id}] ${getClientAddress(socket)} ${socket.handshake.headers['user-agent']}`\n })\n }\n\n @SubscribeMessage(USERS_WS.EVENTS.ONLINE_STATUS)\n setOnlineStatus(@GetWsUser() user: JwtIdentityPayload, @MessageBody() body: EventChangeOnlineStatus) {\n if (body.store) {\n // store in db\n this.usersManager.setOnlineStatus(user, body.status)\n }\n this.sendOnlineStatus(user.id, body.status).catch((e: Error) => this.logger.error({ tag: this.setOnlineStatus.name, msg: `${e}` }))\n }\n\n private sendMessageToUsers(userIds: number[], eventName: string, body: any) {\n if (userIds.length) {\n this.server.to(userIds.map((uid) => `${USER_ROOM_PREFIX}${uid}`)).emit(eventName, body)\n }\n }\n\n private async sendOnlineUser(user: JwtIdentityPayload, status: USER_ONLINE_STATUS) {\n if (!this.initialized) {\n // all online users will be propagated in the next seconds\n return\n }\n if (status === USER_ONLINE_STATUS.OFFLINE) {\n // user's online status is offline, do not send update to others\n return\n }\n const userIdsToNotify: number[] = await this.getOnlineUserIdsWhitelist(user.id)\n if (userIdsToNotify.length) {\n const onlineUser: UserOnline = {\n id: user.id,\n login: user.login,\n email: user.email,\n fullName: user.fullName,\n onlineStatus: status\n } satisfies UserOnline\n this.sendMessageToUsers(userIdsToNotify, USERS_WS.EVENTS.ONLINE_USER, onlineUser)\n }\n }\n\n private async sendOfflineUser(userId: number): Promise<void> {\n // avoid sending offline event on quick reconnects\n await sleep(this.waitTime)\n // check if user room is empty before send event\n if ((await this.getOnlineUserIds()).indexOf(userId) === -1) {\n this.sendOnlineStatus(userId, USER_ONLINE_STATUS.OFFLINE).catch((e: Error) =>\n this.logger.error({ tag: this.sendOfflineUser.name, msg: `${e}` })\n )\n }\n }\n\n private async sendAllOnlineUsers(toUserId: number) {\n if (!this.initialized) {\n // wait for all reconnections before propagating all online users\n await sleep(this.waitTime)\n }\n const onlineUserIds: number[] = await this.getOnlineUserIdsWhitelist(toUserId)\n if (onlineUserIds.length) {\n const onlineUsers: UserOnline[] = await this.usersManager.getOnlineUsers(onlineUserIds)\n if (onlineUsers.length) {\n this.sendMessageToUsers([toUserId], USERS_WS.EVENTS.ONLINE_USERS, onlineUsers)\n }\n }\n }\n\n private async sendOnlineStatus(userId: number, status: USER_ONLINE_STATUS) {\n const userIdsToNotify: number[] = await this.getOnlineUserIdsWhitelist(userId, false)\n if (userIdsToNotify.length) {\n const onlineStatus: EventUpdateOnlineStatus = { userId: userId, status: status }\n this.sendMessageToUsers(userIdsToNotify, USERS_WS.EVENTS.ONLINE_STATUS, onlineStatus)\n }\n }\n\n private async getOnlineUserIdsWhitelist(userId: number, excludeUser = true): Promise<number[]> {\n /* get online users visible for the user */\n const currentOnlineUserIds: number[] = await this.getOnlineUserIds()\n if (currentOnlineUserIds.length) {\n let usersWhitelist: number[] = await this.usersManager.usersWhitelist(userId)\n if (usersWhitelist) {\n if (excludeUser) {\n usersWhitelist = usersWhitelist.filter((uid) => uid !== userId)\n }\n return usersWhitelist.filter((uid) => currentOnlineUserIds.indexOf(uid) > -1)\n }\n }\n return []\n }\n\n private async getOnlineUserIds(): Promise<number[]> {\n /* get all online users from all workers */\n const localUserIds: number[] = this.filterUserRooms(this.server.sockets.adapter.rooms.keys())\n const remoteUserIds: number[][] = await this.server.serverSideEmitWithAck(this.internalEventOnlineUsers)\n return [...new Set([...localUserIds, ...remoteUserIds].flat())]\n }\n\n private filterUserRooms(rooms: Iterable<string>): number[] {\n return [...rooms].filter((r) => r.startsWith(USER_ROOM_PREFIX)).map((ur) => parseInt(ur.split(USER_ROOM_PREFIX).pop()))\n }\n}\n"],"names":["WebSocketUsers","afterInit","server","on","internalEventOnlineUsers","cb","filterUserRooms","sockets","adapter","rooms","keys","setTimeout","initialized","waitTime","beforeApplicationShutdown","_signal","shuttingDown","handleConnection","socket","join","USER_ROOM_PREFIX","user","id","sendOnlineUser","parseInt","handshake","query","onlineStatus","catch","e","logger","error","tag","name","msg","sendAllOnlineUsers","log","login","getClientAddress","headers","handleDisconnect","leave","sendOfflineUser","setOnlineStatus","body","store","usersManager","status","sendOnlineStatus","sendMessageToUsers","userIds","eventName","length","to","map","uid","emit","USER_ONLINE_STATUS","OFFLINE","userIdsToNotify","getOnlineUserIdsWhitelist","onlineUser","email","fullName","USERS_WS","EVENTS","ONLINE_USER","userId","sleep","getOnlineUserIds","indexOf","toUserId","onlineUserIds","onlineUsers","getOnlineUsers","ONLINE_USERS","ONLINE_STATUS","excludeUser","currentOnlineUserIds","usersWhitelist","filter","localUserIds","remoteUserIds","serverSideEmitWithAck","Set","flat","r","startsWith","ur","split","pop","Logger"],"mappings":"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"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../backend/src/applications/users/users.gateway.spec.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../backend/src/applications/users/users.gateway.spec.ts"],"sourcesContent":["import { Test, TestingModule } from '@nestjs/testing'\nimport { UsersManager } from './services/users-manager.service'\nimport { WebSocketUsers } from './users.gateway'\n\ndescribe(WebSocketUsers.name, () => {\n let gateway: WebSocketUsers\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [WebSocketUsers, { provide: UsersManager, useValue: {} }]\n }).compile()\n\n gateway = module.get<WebSocketUsers>(WebSocketUsers)\n })\n\n it('should be defined', () => {\n expect(gateway).toBeDefined()\n })\n\n // describe('test', () => {\n // it('should return ok', async () => {\n // await expect(gateway.test('')).resolves.toBe('ok')\n // })\n // })\n})\n"],"names":["describe","WebSocketUsers","name","gateway","beforeAll","module","Test","createTestingModule","providers","provide","UsersManager","useValue","compile","get","it","expect","toBeDefined"],"mappings":";;;;yBAAoC;qCACP;8BACE;AAE/BA,SAASC,4BAAc,CAACC,IAAI,EAAE;IAC5B,IAAIC;IAEJC,UAAU;QACR,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,WAAW;gBAACP,4BAAc;gBAAE;oBAAEQ,SAASC,iCAAY;oBAAEC,UAAU,CAAC;gBAAE;aAAE;QACtE,GAAGC,OAAO;QAEVT,UAAUE,OAAOQ,GAAG,CAAiBZ,4BAAc;IACrD;IAEAa,GAAG,qBAAqB;QACtBC,OAAOZ,SAASa,WAAW;IAC7B;AAEA,2BAA2B;AAC3B,yCAAyC;AACzC,yDAAyD;AACzD,OAAO;AACP,KAAK;AACP"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../backend/src/applications/users/users.module.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../backend/src/applications/users/users.module.ts"],"sourcesContent":["import { Global, Module } from '@nestjs/common'\nimport { AdminUsersController } from './admin-users.controller'\nimport { UserPermissionsGuard } from './guards/permissions.guard'\nimport { UserRolesGuard } from './guards/roles.guard'\nimport { AdminUsersManager } from './services/admin-users-manager.service'\nimport { AdminUsersQueries } from './services/admin-users-queries.service'\nimport { UsersManager } from './services/users-manager.service'\nimport { UsersQueries } from './services/users-queries.service'\nimport { UsersController } from './users.controller'\nimport { WebSocketUsers } from './users.gateway'\n\n@Global()\n@Module({\n controllers: [UsersController, AdminUsersController],\n providers: [WebSocketUsers, UserRolesGuard, UserPermissionsGuard, UsersManager, UsersQueries, AdminUsersManager, AdminUsersQueries],\n exports: [UsersManager, UsersQueries, AdminUsersManager, AdminUsersQueries]\n})\nexport class UsersModule {}\n"],"names":["UsersModule","controllers","UsersController","AdminUsersController","providers","WebSocketUsers","UserRolesGuard","UserPermissionsGuard","UsersManager","UsersQueries","AdminUsersManager","AdminUsersQueries","exports"],"mappings":";;;;+BAiBaA;;;eAAAA;;;wBAjBkB;sCACM;kCACA;4BACN;0CACG;0CACA;qCACL;qCACA;iCACG;8BACD;;;;;;;AAQxB,IAAA,AAAMA,cAAN,MAAMA;AAAa;;;;QAJxBC,aAAa;YAACC,gCAAe;YAAEC,0CAAoB;SAAC;QACpDC,WAAW;YAACC,4BAAc;YAAEC,0BAAc;YAAEC,sCAAoB;YAAEC,iCAAY;YAAEC,iCAAY;YAAEC,2CAAiB;YAAEC,2CAAiB;SAAC;QACnIC,SAAS;YAACJ,iCAAY;YAAEC,iCAAY;YAAEC,2CAAiB;YAAEC,2CAAiB;SAAC"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/users/utils/avatar.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/users/utils/avatar.ts"],"sourcesContent":["import path from 'node:path'\nimport { convertImageToBase64 } from '../../../common/image'\nimport { STATIC_ASSETS_PATH } from '../../../configuration/config.constants'\nimport { isPathExists } from '../../files/utils/files'\nimport { UserModel } from '../models/user.model'\n\nexport const USER_DEFAULT_AVATAR_FILE_PATH = path.join(STATIC_ASSETS_PATH, 'avatar.svg')\nexport const USER_AVATAR_FILE_NAME = 'avatar.png'\nexport const USER_AVATAR_MAX_UPLOAD_SIZE = 1024 * 1024 * 5 // 5MB\n\nexport async function getAvatarBase64(userLogin: string): Promise<string> {\n const userAvatarPath = path.join(UserModel.getHomePath(userLogin), USER_AVATAR_FILE_NAME)\n return convertImageToBase64((await isPathExists(userAvatarPath)) ? userAvatarPath : USER_DEFAULT_AVATAR_FILE_PATH)\n}\n"],"names":["USER_AVATAR_FILE_NAME","USER_AVATAR_MAX_UPLOAD_SIZE","USER_DEFAULT_AVATAR_FILE_PATH","getAvatarBase64","path","join","STATIC_ASSETS_PATH","userLogin","userAvatarPath","UserModel","getHomePath","convertImageToBase64","isPathExists"],"mappings":";;;;;;;;;;;QAOaA;eAAAA;;QACAC;eAAAA;;QAFAC;eAAAA;;QAISC;eAAAA;;;iEAVL;uBACoB;iCACF;uBACN;2BACH;;;;;;AAEnB,MAAMD,gCAAgCE,iBAAI,CAACC,IAAI,CAACC,mCAAkB,EAAE;AACpE,MAAMN,wBAAwB;AAC9B,MAAMC,8BAA8B,OAAO,OAAO,EAAE,MAAM;;AAE1D,eAAeE,gBAAgBI,SAAiB;IACrD,MAAMC,iBAAiBJ,iBAAI,CAACC,IAAI,CAACI,oBAAS,CAACC,WAAW,CAACH,YAAYP;IACnE,OAAOW,IAAAA,2BAAoB,EAAC,AAAC,MAAMC,IAAAA,mBAAY,EAACJ,kBAAmBA,iBAAiBN;AACtF"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/users/utils/test.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/users/utils/test.ts"],"sourcesContent":["import { faker } from '@faker-js/faker'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { USER_PERMISSION, USER_ROLE } from '../constants/user'\nimport type { UserModel } from '../models/user.model'\n\nexport function generateUserTest(withId: boolean = true): Partial<UserModel> {\n return {\n ...(withId && { id: -faker.number.int() }),\n login: faker.internet.username(),\n email: faker.internet.email(),\n firstName: SERVER_NAME,\n lastName: 'Testing',\n role: USER_ROLE.USER,\n isActive: true,\n password: 'password',\n applications: Object.values(USER_PERMISSION)\n }\n}\n"],"names":["generateUserTest","withId","id","faker","number","int","login","internet","username","email","firstName","SERVER_NAME","lastName","role","USER_ROLE","USER","isActive","password","applications","Object","values","USER_PERMISSION"],"mappings":";;;;+BAKgBA;;;eAAAA;;;uBALM;wBACM;sBACe;AAGpC,SAASA,iBAAiBC,SAAkB,IAAI;IACrD,OAAO;QACL,GAAIA,UAAU;YAAEC,IAAI,CAACC,YAAK,CAACC,MAAM,CAACC,GAAG;QAAG,CAAC;QACzCC,OAAOH,YAAK,CAACI,QAAQ,CAACC,QAAQ;QAC9BC,OAAON,YAAK,CAACI,QAAQ,CAACE,KAAK;QAC3BC,WAAWC,mBAAW;QACtBC,UAAU;QACVC,MAAMC,eAAS,CAACC,IAAI;QACpBC,UAAU;QACVC,UAAU;QACVC,cAAcC,OAAOC,MAAM,CAACC,qBAAe;IAC7C;AACF"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/webdav/constants/routes.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/webdav/constants/routes.ts"],"sourcesContent":["import { SERVER_NAME } from '../../../common/shared'\nimport { SPACE_ALIAS, SPACE_REPOSITORY } from '../../spaces/constants/spaces'\n\nexport const WEBDAV_BASE_PATH = 'webdav'\n\nexport const WEBDAV_NS = {\n SERVER: SERVER_NAME,\n WEBDAV: WEBDAV_BASE_PATH,\n PERSONAL: SPACE_ALIAS.PERSONAL,\n SPACES: SPACE_ALIAS.SPACES,\n SHARES: SPACE_ALIAS.SHARES,\n TRASH: SPACE_ALIAS.TRASH\n} as const\n\nexport const WEBDAV_SPACES: Record<(typeof WEBDAV_NS)[keyof typeof WEBDAV_NS], { route: string; spaceRepository: string[] }> = {\n [WEBDAV_NS.SERVER]: { route: '/', spaceRepository: null },\n [WEBDAV_NS.WEBDAV]: { route: `/${WEBDAV_BASE_PATH}`, spaceRepository: null },\n [WEBDAV_NS.PERSONAL]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.PERSONAL}`, spaceRepository: [SPACE_REPOSITORY.FILES, SPACE_ALIAS.PERSONAL] },\n [WEBDAV_NS.SPACES]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.SPACES}`, spaceRepository: [SPACE_REPOSITORY.FILES] },\n [WEBDAV_NS.SHARES]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.SHARES}`, spaceRepository: [SPACE_REPOSITORY.SHARES] },\n [WEBDAV_NS.TRASH]: {\n route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.TRASH}`,\n spaceRepository: [SPACE_REPOSITORY.TRASH]\n }\n}\n"],"names":["WEBDAV_BASE_PATH","WEBDAV_NS","WEBDAV_SPACES","SERVER","SERVER_NAME","WEBDAV","PERSONAL","SPACE_ALIAS","SPACES","SHARES","TRASH","route","spaceRepository","SPACE_REPOSITORY","FILES"],"mappings":";;;;;;;;;;;QAGaA;eAAAA;;QAEAC;eAAAA;;QASAC;eAAAA;;;wBAde;wBACkB;AAEvC,MAAMF,mBAAmB;AAEzB,MAAMC,YAAY;IACvBE,QAAQC,mBAAW;IACnBC,QAAQL;IACRM,UAAUC,mBAAW,CAACD,QAAQ;IAC9BE,QAAQD,mBAAW,CAACC,MAAM;IAC1BC,QAAQF,mBAAW,CAACE,MAAM;IAC1BC,OAAOH,mBAAW,CAACG,KAAK;AAC1B;AAEO,MAAMR,gBAAkH;IAC7H,CAACD,UAAUE,MAAM,CAAC,EAAE;QAAEQ,OAAO;QAAKC,iBAAiB;IAAK;IACxD,CAACX,UAAUI,MAAM,CAAC,EAAE;QAAEM,OAAO,CAAC,CAAC,EAAEX,kBAAkB;QAAEY,iBAAiB;IAAK;IAC3E,CAACX,UAAUK,QAAQ,CAAC,EAAE;QAAEK,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUK,QAAQ,EAAE;QAAEM,iBAAiB;YAACC,wBAAgB,CAACC,KAAK;YAAEP,mBAAW,CAACD,QAAQ;SAAC;IAAC;IAC7I,CAACL,UAAUO,MAAM,CAAC,EAAE;QAAEG,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUO,MAAM,EAAE;QAAEI,iBAAiB;YAACC,wBAAgB,CAACC,KAAK;SAAC;IAAC;IACnH,CAACb,UAAUQ,MAAM,CAAC,EAAE;QAAEE,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUQ,MAAM,EAAE;QAAEG,iBAAiB;YAACC,wBAAgB,CAACJ,MAAM;SAAC;IAAC;IACpH,CAACR,UAAUS,KAAK,CAAC,EAAE;QACjBC,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUS,KAAK,EAAE;QAChDE,iBAAiB;YAACC,wBAAgB,CAACH,KAAK;SAAC;IAC3C;AACF"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/webdav/constants/webdav.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/webdav/constants/webdav.ts"],"sourcesContent":["import { SERVER_NAME } from '../../../common/shared'\nimport { HTTP_STANDARD_METHOD, HTTP_WEBDAV_METHOD } from '../../applications.constants'\nimport { WEBDAV_BASE_PATH } from './routes'\n\nexport const REGEX_BASE_PATH = new RegExp(`^/?${WEBDAV_BASE_PATH}/`)\nexport const NS_DAV = 'DAV:'\nexport const NS_PREFIX = 'D'\nexport const LOCK_PREFIX = 'urn:uuid:'\nexport const XML_CONTENT_TYPE = 'application/xml; charset=utf-8'\nexport const HTML_CONTENT_TYPE = 'text/html; charset=utf-8'\nexport const WEBDAV_CONTENT_TYPES = ['application/xml', 'text/xml']\nexport const WEBDAV_APP_LOCK = 'WebDAV' as const\n\nexport const ALLOWED_WEBDAV_METHODS: string = [\n HTTP_STANDARD_METHOD.OPTIONS,\n HTTP_STANDARD_METHOD.HEAD,\n HTTP_STANDARD_METHOD.GET,\n HTTP_STANDARD_METHOD.PUT,\n HTTP_STANDARD_METHOD.DELETE,\n ...Object.values(HTTP_WEBDAV_METHOD)\n].join(', ')\n\nexport const ALLOW_EMPTY_BODY_METHODS: string[] = [HTTP_WEBDAV_METHOD.PROPFIND, HTTP_WEBDAV_METHOD.LOCK]\n\nexport const OPTIONS_HEADERS = {\n Server: SERVER_NAME,\n 'MS-Author-Via': 'DAV',\n DAV: '1,2',\n Allow: ALLOWED_WEBDAV_METHODS,\n 'Content-Type': HTML_CONTENT_TYPE,\n 'Content-Length': '0',\n 'Accept-Ranges': 'bytes'\n} as const\n\nexport const HEADER = {\n DEPTH: 'depth',\n IF: 'if',\n LOCK_TOKEN: 'lock-token',\n DESTINATION: 'destination',\n OVERWRITE: 'overwrite',\n TIMEOUT: 'timeout'\n} as const\n\nexport const LOCK_DISCOVERY_PROP = 'lockdiscovery'\nexport const STANDARD_PROPS = [\n 'creationdate',\n 'getcontenttype',\n 'resourcetype',\n 'getlastmodified',\n 'getcontentlength',\n 'displayname',\n 'getetag',\n 'supportedlock',\n LOCK_DISCOVERY_PROP\n]\n\nexport enum LOCK_SCOPE {\n EXCLUSIVE = 'exclusive',\n SHARED = 'shared'\n}\n\nexport enum DEPTH {\n INFINITY = 'infinity',\n RESOURCE = '0',\n MEMBERS = '1'\n}\n\nexport type LOCK_DEPTH = Omit<DEPTH, DEPTH.MEMBERS>\n\nexport enum PROPSTAT {\n ALLPROP = 'allprop',\n PROP = 'prop',\n PROPNAME = 'propname'\n}\n\nexport const PROPPATCH_PROP_UPDATE = 'propertyupdate'\nexport const PROPPATCH_METHOD = { SET: 'set', REMOVE: 'remove' }\nexport const PROPPATCH_MODIFIED_PROPS = ['getlastmodified', 'lastmodified', 'Win32LastModifiedTime']\nexport const PROPPATCH_SUPPORTED_PROPS = [...PROPPATCH_MODIFIED_PROPS, 'Win32CreationTime', 'Win32LastAccessTime', 'Win32FileAttributes']\n\nexport const PRECONDITION = {\n PROTECTED_PROPERTY: 'cannot-modify-protected-property',\n MISSING_LOCK_TOKEN: 'lock-token-submitted',\n LOCK_TOKEN_MISMATCH: 'lock-token-matches-request-uri',\n LOCK_CONFLICT: 'no-conflicting-lock',\n PROPFIND_FINITE_DEPTH: 'propfind-finite-depth'\n} as const\n"],"names":["ALLOWED_WEBDAV_METHODS","ALLOW_EMPTY_BODY_METHODS","DEPTH","HEADER","HTML_CONTENT_TYPE","LOCK_DISCOVERY_PROP","LOCK_PREFIX","LOCK_SCOPE","NS_DAV","NS_PREFIX","OPTIONS_HEADERS","PRECONDITION","PROPPATCH_METHOD","PROPPATCH_MODIFIED_PROPS","PROPPATCH_PROP_UPDATE","PROPPATCH_SUPPORTED_PROPS","PROPSTAT","REGEX_BASE_PATH","STANDARD_PROPS","WEBDAV_APP_LOCK","WEBDAV_CONTENT_TYPES","XML_CONTENT_TYPE","RegExp","WEBDAV_BASE_PATH","HTTP_STANDARD_METHOD","OPTIONS","HEAD","GET","PUT","DELETE","Object","values","HTTP_WEBDAV_METHOD","join","PROPFIND","LOCK","Server","SERVER_NAME","DAV","Allow","IF","LOCK_TOKEN","DESTINATION","OVERWRITE","TIMEOUT","SET","REMOVE","PROTECTED_PROPERTY","MISSING_LOCK_TOKEN","LOCK_TOKEN_MISMATCH","LOCK_CONFLICT","PROPFIND_FINITE_DEPTH"],"mappings":";;;;;;;;;;;QAaaA;eAAAA;;QASAC;eAAAA;;QAuCDC;eAAAA;;QA3BCC;eAAAA;;QAzBAC;eAAAA;;QAkCAC;eAAAA;;QApCAC;eAAAA;;QAiDDC;eAAAA;;QAnDCC;eAAAA;;QACAC;eAAAA;;QAkBAC;eAAAA;;QAwDAC;eAAAA;;QAJAC;eAAAA;;QACAC;eAAAA;;QAFAC;eAAAA;;QAGAC;eAAAA;;QATDC;eAAAA;;QAjECC;eAAAA;;QAwCAC;eAAAA;;QAjCAC;eAAAA;;QADAC;eAAAA;;QAFAC;eAAAA;;;wBARe;uCAC6B;wBACxB;AAE1B,MAAMJ,kBAAkB,IAAIK,OAAO,CAAC,GAAG,EAAEC,wBAAgB,CAAC,CAAC,CAAC;AAC5D,MAAMf,SAAS;AACf,MAAMC,YAAY;AAClB,MAAMH,cAAc;AACpB,MAAMe,mBAAmB;AACzB,MAAMjB,oBAAoB;AAC1B,MAAMgB,uBAAuB;IAAC;IAAmB;CAAW;AAC5D,MAAMD,kBAAkB;AAExB,MAAMnB,yBAAiC;IAC5CwB,2CAAoB,CAACC,OAAO;IAC5BD,2CAAoB,CAACE,IAAI;IACzBF,2CAAoB,CAACG,GAAG;IACxBH,2CAAoB,CAACI,GAAG;IACxBJ,2CAAoB,CAACK,MAAM;OACxBC,OAAOC,MAAM,CAACC,yCAAkB;CACpC,CAACC,IAAI,CAAC;AAEA,MAAMhC,2BAAqC;IAAC+B,yCAAkB,CAACE,QAAQ;IAAEF,yCAAkB,CAACG,IAAI;CAAC;AAEjG,MAAMzB,kBAAkB;IAC7B0B,QAAQC,mBAAW;IACnB,iBAAiB;IACjBC,KAAK;IACLC,OAAOvC;IACP,gBAAgBI;IAChB,kBAAkB;IAClB,iBAAiB;AACnB;AAEO,MAAMD,SAAS;IACpBD,OAAO;IACPsC,IAAI;IACJC,YAAY;IACZC,aAAa;IACbC,WAAW;IACXC,SAAS;AACX;AAEO,MAAMvC,sBAAsB;AAC5B,MAAMa,iBAAiB;IAC5B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAb;CACD;AAEM,IAAA,AAAKE,oCAAAA;;;WAAAA;;AAKL,IAAA,AAAKL,+BAAAA;;;;WAAAA;;AAQL,IAAA,AAAKc,kCAAAA;;;;WAAAA;;AAML,MAAMF,wBAAwB;AAC9B,MAAMF,mBAAmB;IAAEiC,KAAK;IAAOC,QAAQ;AAAS;AACxD,MAAMjC,2BAA2B;IAAC;IAAmB;IAAgB;CAAwB;AAC7F,MAAME,4BAA4B;OAAIF;IAA0B;IAAqB;IAAuB;CAAsB;AAElI,MAAMF,eAAe;IAC1BoC,oBAAoB;IACpBC,oBAAoB;IACpBC,qBAAqB;IACrBC,eAAe;IACfC,uBAAuB;AACzB"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/webdav/decorators/if-header.decorator.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/webdav/decorators/if-header.decorator.ts"],"sourcesContent":["import { FastifyReply } from 'fastify'\nimport { FastifyDAVRequest } from '../interfaces/webdav.interface'\n\nexport function IfHeaderDecorator() {\n return (_target: any, _key?: string | symbol, descriptor?: TypedPropertyDescriptor<any>) => {\n const originalMethod = descriptor.value\n descriptor.value = async function (...args: any[]) {\n const req: FastifyDAVRequest = args[0]\n const res: FastifyReply = args[1]\n if (!(await this.evaluateIfHeaders(req, res))) {\n // if there is an error the response is generated inside the `evaluateIfHeaders` function\n return\n }\n return await originalMethod.apply(this, args)\n }\n }\n}\n"],"names":["IfHeaderDecorator","_target","_key","descriptor","originalMethod","value","args","req","res","evaluateIfHeaders","apply"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA;IACd,OAAO,CAACC,SAAcC,MAAwBC;QAC5C,MAAMC,iBAAiBD,WAAWE,KAAK;QACvCF,WAAWE,KAAK,GAAG,eAAgB,GAAGC,IAAW;YAC/C,MAAMC,MAAyBD,IAAI,CAAC,EAAE;YACtC,MAAME,MAAoBF,IAAI,CAAC,EAAE;YACjC,IAAI,CAAE,MAAM,IAAI,CAACG,iBAAiB,CAACF,KAAKC,MAAO;gBAC7C,yFAAyF;gBACzF;YACF;YACA,OAAO,MAAMJ,eAAeM,KAAK,CAAC,IAAI,EAAEJ;QAC1C;IACF;AACF"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/webdav/decorators/webdav-context.decorator.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/webdav/decorators/webdav-context.decorator.ts"],"sourcesContent":["import { applyDecorators, SetMetadata, UseFilters, UseGuards } from '@nestjs/common'\nimport { AuthBasicGuard } from '../../../authentication/guards/auth-basic.guard'\nimport { WebDAVExceptionsFilter } from '../filters/webdav.filter'\nimport { WebDAVProtocolGuard } from '../guards/webdav-protocol.guard'\n\nexport const WEB_DAV_CONTEXT = 'WebDAVContext'\nexport const WebDAVContext = () => SetMetadata(WEB_DAV_CONTEXT, true)\nexport const WebDAVEnvironment = () => {\n return applyDecorators(WebDAVContext(), UseGuards(AuthBasicGuard, WebDAVProtocolGuard), UseFilters(WebDAVExceptionsFilter))\n}\n"],"names":["WEB_DAV_CONTEXT","WebDAVContext","WebDAVEnvironment","SetMetadata","applyDecorators","UseGuards","AuthBasicGuard","WebDAVProtocolGuard","UseFilters","WebDAVExceptionsFilter"],"mappings":";;;;;;;;;;;QAKaA;eAAAA;;QACAC;eAAAA;;QACAC;eAAAA;;;wBAPuD;gCACrC;8BACQ;qCACH;AAE7B,MAAMF,kBAAkB;AACxB,MAAMC,gBAAgB,IAAME,IAAAA,mBAAW,EAACH,iBAAiB;AACzD,MAAME,oBAAoB;IAC/B,OAAOE,IAAAA,uBAAe,EAACH,iBAAiBI,IAAAA,iBAAS,EAACC,8BAAc,EAAEC,wCAAmB,GAAGC,IAAAA,kBAAU,EAACC,oCAAsB;AAC3H"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/webdav/filters/webdav.filter.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/webdav/filters/webdav.filter.ts"],"sourcesContent":["import { ArgumentsHost, Catch, ExceptionFilter, HttpException } from '@nestjs/common'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { XML_CONTENT_TYPE } from '../constants/webdav'\n\n@Catch(HttpException)\nexport class WebDAVExceptionsFilter implements ExceptionFilter {\n catch(exception: HttpException, host: ArgumentsHost) {\n const ctx = host.switchToHttp()\n const res = ctx.getResponse()\n const status = exception.getStatus()\n\n if (status === 401) {\n // req.authInfo from the AuthBasicGuard\n res.header('WWW-Authenticate', `Basic realm=\"${SERVER_NAME}\"`).status(status).send()\n } else {\n let response: any = exception.getResponse()\n if (typeof response === 'object' && response !== null) {\n response = response.message\n }\n res.type(XML_CONTENT_TYPE).status(status).send(response)\n }\n }\n}\n"],"names":["WebDAVExceptionsFilter","catch","exception","host","ctx","switchToHttp","res","getResponse","status","getStatus","header","SERVER_NAME","send","response","message","type","XML_CONTENT_TYPE"],"mappings":";;;;+BAKaA;;;eAAAA;;;wBALwD;wBACzC;wBACK;;;;;;;AAG1B,IAAA,AAAMA,yBAAN,MAAMA;IACXC,MAAMC,SAAwB,EAAEC,IAAmB,EAAE;QACnD,MAAMC,MAAMD,KAAKE,YAAY;QAC7B,MAAMC,MAAMF,IAAIG,WAAW;QAC3B,MAAMC,SAASN,UAAUO,SAAS;QAElC,IAAID,WAAW,KAAK;YAClB,uCAAuC;YACvCF,IAAII,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAEC,mBAAW,CAAC,CAAC,CAAC,EAAEH,MAAM,CAACA,QAAQI,IAAI;QACpF,OAAO;YACL,IAAIC,WAAgBX,UAAUK,WAAW;YACzC,IAAI,OAAOM,aAAa,YAAYA,aAAa,MAAM;gBACrDA,WAAWA,SAASC,OAAO;YAC7B;YACAR,IAAIS,IAAI,CAACC,wBAAgB,EAAER,MAAM,CAACA,QAAQI,IAAI,CAACC;QACjD;IACF;AACF"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/webdav/filters/webdav.filter.spec.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/webdav/filters/webdav.filter.spec.ts"],"sourcesContent":["import { ArgumentsHost, HttpException } from '@nestjs/common'\nimport { Test } from '@nestjs/testing'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { XML_CONTENT_TYPE } from '../constants/webdav'\nimport { WebDAVExceptionsFilter } from './webdav.filter'\n\ndescribe('WebDAVExceptionsFilter', () => {\n let filter: WebDAVExceptionsFilter\n\n const createMockResponse = () => {\n const res: any = {}\n res.header = jest.fn().mockReturnValue(res)\n res.type = jest.fn().mockReturnValue(res)\n res.status = jest.fn().mockReturnValue(res)\n res.send = jest.fn().mockReturnValue(res)\n return res\n }\n\n const createMockHost = (res: any): ArgumentsHost =>\n ({\n switchToHttp: () => ({\n getResponse: () => res\n })\n // Other methods not used by the filter\n }) as unknown as ArgumentsHost\n\n beforeEach(async () => {\n const moduleRef = await Test.createTestingModule({\n providers: [WebDAVExceptionsFilter]\n }).compile()\n\n filter = moduleRef.get(WebDAVExceptionsFilter)\n })\n\n afterEach(() => {\n jest.clearAllMocks()\n })\n\n it('should set WWW-Authenticate header and send empty body for 401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const exception = new HttpException('Unauthorized', 401)\n\n filter.catch(exception, host)\n\n expect(res.header).toHaveBeenCalledWith('WWW-Authenticate', `Basic realm=\"${SERVER_NAME}\"`)\n expect(res.status).toHaveBeenCalledWith(401)\n expect(res.type).not.toHaveBeenCalled()\n expect(res.send).toHaveBeenCalled()\n // Ensure no body is sent\n expect(res.send.mock.calls[0][0]).toBeUndefined()\n })\n\n it('should set XML content type and forward string response for non-401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const exception = new HttpException('Internal error', 500)\n\n filter.catch(exception, host)\n\n expect(res.type).toHaveBeenCalledWith(XML_CONTENT_TYPE)\n expect(res.status).toHaveBeenCalledWith(500)\n expect(res.send).toHaveBeenCalledWith('Internal error')\n expect(res.header).not.toHaveBeenCalled()\n })\n\n it('should extract \"message\" from object response and send it as XML for non-401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const payload = { message: '<error>Bad Request</error>' }\n const exception = new HttpException(payload, 400)\n\n filter.catch(exception, host)\n\n expect(res.type).toHaveBeenCalledWith(XML_CONTENT_TYPE)\n expect(res.status).toHaveBeenCalledWith(400)\n expect(res.send).toHaveBeenCalledWith(payload.message)\n expect(res.header).not.toHaveBeenCalled()\n })\n})\n"],"names":["describe","filter","createMockResponse","res","header","jest","fn","mockReturnValue","type","status","send","createMockHost","switchToHttp","getResponse","beforeEach","moduleRef","Test","createTestingModule","providers","WebDAVExceptionsFilter","compile","get","afterEach","clearAllMocks","it","host","exception","HttpException","catch","expect","toHaveBeenCalledWith","SERVER_NAME","not","toHaveBeenCalled","mock","calls","toBeUndefined","XML_CONTENT_TYPE","payload","message"],"mappings":";;;;wBAA6C;yBACxB;wBACO;wBACK;8BACM;AAEvCA,SAAS,0BAA0B;IACjC,IAAIC;IAEJ,MAAMC,qBAAqB;QACzB,MAAMC,MAAW,CAAC;QAClBA,IAAIC,MAAM,GAAGC,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACvCA,IAAIK,IAAI,GAAGH,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACrCA,IAAIM,MAAM,GAAGJ,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACvCA,IAAIO,IAAI,GAAGL,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACrC,OAAOA;IACT;IAEA,MAAMQ,iBAAiB,CAACR,MACrB,CAAA;YACCS,cAAc,IAAO,CAAA;oBACnBC,aAAa,IAAMV;gBACrB,CAAA;QAEF,CAAA;IAEFW,WAAW;QACT,MAAMC,YAAY,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC/CC,WAAW;gBAACC,oCAAsB;aAAC;QACrC,GAAGC,OAAO;QAEVnB,SAASc,UAAUM,GAAG,CAACF,oCAAsB;IAC/C;IAEAG,UAAU;QACRjB,KAAKkB,aAAa;IACpB;IAEAC,GAAG,kEAAkE;QACnE,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMuB,YAAY,IAAIC,qBAAa,CAAC,gBAAgB;QAEpD1B,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIC,MAAM,EAAE0B,oBAAoB,CAAC,oBAAoB,CAAC,aAAa,EAAEC,mBAAW,CAAC,CAAC,CAAC;QAC1FF,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIK,IAAI,EAAEwB,GAAG,CAACC,gBAAgB;QACrCJ,OAAO1B,IAAIO,IAAI,EAAEuB,gBAAgB;QACjC,yBAAyB;QACzBJ,OAAO1B,IAAIO,IAAI,CAACwB,IAAI,CAACC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAEC,aAAa;IACjD;IAEAZ,GAAG,uEAAuE;QACxE,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMuB,YAAY,IAAIC,qBAAa,CAAC,kBAAkB;QAEtD1B,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIK,IAAI,EAAEsB,oBAAoB,CAACO,wBAAgB;QACtDR,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIO,IAAI,EAAEoB,oBAAoB,CAAC;QACtCD,OAAO1B,IAAIC,MAAM,EAAE4B,GAAG,CAACC,gBAAgB;IACzC;IAEAT,GAAG,gFAAgF;QACjF,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMmC,UAAU;YAAEC,SAAS;QAA6B;QACxD,MAAMb,YAAY,IAAIC,qBAAa,CAACW,SAAS;QAE7CrC,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIK,IAAI,EAAEsB,oBAAoB,CAACO,wBAAgB;QACtDR,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIO,IAAI,EAAEoB,oBAAoB,CAACQ,QAAQC,OAAO;QACrDV,OAAO1B,IAAIC,MAAM,EAAE4B,GAAG,CAACC,gBAAgB;IACzC;AACF"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -63,7 +59,10 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
|
|
|
63
59
|
}
|
|
64
60
|
checkUserPermission(req) {
|
|
65
61
|
if (req.method !== _applicationsconstants.HTTP_METHOD.OPTIONS && !req.user.havePermission(_user.USER_PERMISSION.WEBDAV)) {
|
|
66
|
-
this.logger.warn(
|
|
62
|
+
this.logger.warn({
|
|
63
|
+
tag: this.checkUserPermission.name,
|
|
64
|
+
msg: `does not have permission : ${_user.USER_PERMISSION.WEBDAV}`
|
|
65
|
+
});
|
|
67
66
|
throw new _common.HttpException('Missing permission', _common.HttpStatus.FORBIDDEN);
|
|
68
67
|
}
|
|
69
68
|
}
|
|
@@ -95,16 +94,21 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
|
|
|
95
94
|
} else {
|
|
96
95
|
throw new _common.HttpException(`${valid.err.code} : ${valid.err.msg}`, _common.HttpStatus.BAD_REQUEST);
|
|
97
96
|
}
|
|
98
|
-
req.dav.httpVersion = `${req.protocol.toUpperCase()}/${req.raw['httpVersion']}`;
|
|
99
97
|
req.dav.body = body;
|
|
100
98
|
return true;
|
|
101
99
|
}
|
|
102
100
|
parseIfHeader(req) {
|
|
103
101
|
// stores if headers, examine it later
|
|
104
102
|
if (req.headers[_webdav.HEADER.IF]) {
|
|
105
|
-
this.logger.verbose(
|
|
103
|
+
this.logger.verbose({
|
|
104
|
+
tag: this.parseIfHeader.name,
|
|
105
|
+
msg: `If header before : ${JSON.stringify(req.headers[_webdav.HEADER.IF])}`
|
|
106
|
+
});
|
|
106
107
|
const ifHeaders = (0, _ifheader.parseIfHeader)(req.headers[_webdav.HEADER.IF]);
|
|
107
|
-
this.logger.verbose(
|
|
108
|
+
this.logger.verbose({
|
|
109
|
+
tag: this.parseIfHeader.name,
|
|
110
|
+
msg: `If header after : ${JSON.stringify(ifHeaders)}`
|
|
111
|
+
});
|
|
108
112
|
if (ifHeaders.length) req.dav.ifHeaders = ifHeaders;
|
|
109
113
|
}
|
|
110
114
|
}
|
|
@@ -112,11 +116,20 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
|
|
|
112
116
|
req.dav.depth = req.headers[_webdav.HEADER.DEPTH]?.toLowerCase();
|
|
113
117
|
if (!req.dav.depth || req.dav.depth !== _webdav.DEPTH.MEMBERS && req.dav.depth !== _webdav.DEPTH.RESOURCE) {
|
|
114
118
|
if (!req.dav.depth) {
|
|
115
|
-
this.logger.warn(
|
|
119
|
+
this.logger.warn({
|
|
120
|
+
tag: this.propfindMethod.name,
|
|
121
|
+
msg: 'Missing propfind depth, default value 1 was set'
|
|
122
|
+
});
|
|
116
123
|
} else if (req.dav.depth === _webdav.DEPTH.INFINITY) {
|
|
117
|
-
this.logger.warn(
|
|
124
|
+
this.logger.warn({
|
|
125
|
+
tag: this.propfindMethod.name,
|
|
126
|
+
msg: 'Infinite depth is disabled for security reasons, default value 1 was set'
|
|
127
|
+
});
|
|
118
128
|
} else {
|
|
119
|
-
this.logger.warn(
|
|
129
|
+
this.logger.warn({
|
|
130
|
+
tag: this.propfindMethod.name,
|
|
131
|
+
msg: `Invalid propfind depth header : ${req.dav.depth}, default value 1 was set`
|
|
132
|
+
});
|
|
120
133
|
}
|
|
121
134
|
req.dav.depth = _webdav.DEPTH.MEMBERS;
|
|
122
135
|
}
|
|
@@ -129,7 +142,10 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
|
|
|
129
142
|
}
|
|
130
143
|
}
|
|
131
144
|
if (!req.dav.propfindMode) {
|
|
132
|
-
this.logger.warn(
|
|
145
|
+
this.logger.warn({
|
|
146
|
+
tag: this.propfindMethod.name,
|
|
147
|
+
msg: `Invalid propfind mode : ${JSON.stringify(Object.keys(req.dav.body.propfind))}`
|
|
148
|
+
});
|
|
133
149
|
throw new _common.HttpException('Invalid propfind mode', _common.HttpStatus.BAD_REQUEST);
|
|
134
150
|
}
|
|
135
151
|
} else {
|
|
@@ -145,7 +161,10 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
|
|
|
145
161
|
req.dav.depth = (req.headers[_webdav.HEADER.DEPTH] || _webdav.DEPTH.RESOURCE).toLowerCase();
|
|
146
162
|
this.parseBody(req);
|
|
147
163
|
if (!req.dav.body || Object.keys(req.dav.body).indexOf(_webdav.PROPPATCH_PROP_UPDATE) === -1) {
|
|
148
|
-
this.logger.debug(
|
|
164
|
+
this.logger.debug({
|
|
165
|
+
tag: this.proppatchMethod.name,
|
|
166
|
+
msg: `'${_webdav.PROPPATCH_PROP_UPDATE}' is missing : ${JSON.stringify(req.dav.body)}`
|
|
167
|
+
});
|
|
149
168
|
throw new _common.HttpException(`'${_webdav.PROPPATCH_PROP_UPDATE}' is missing`, _common.HttpStatus.BAD_REQUEST);
|
|
150
169
|
}
|
|
151
170
|
this.parseIfHeader(req);
|
|
@@ -164,7 +183,10 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
|
|
|
164
183
|
const seconds = parseInt(timeoutSplit[timeoutSplit.length - 1], 10);
|
|
165
184
|
req.dav.lock.timeout = seconds > _cache.CACHE_LOCK_DEFAULT_TTL ? _cache.CACHE_LOCK_DEFAULT_TTL : seconds;
|
|
166
185
|
} catch (e) {
|
|
167
|
-
this.logger.warn(
|
|
186
|
+
this.logger.warn({
|
|
187
|
+
tag: this.lockMethod.name,
|
|
188
|
+
msg: `unable to set timeout, use the default value : ${e}`
|
|
189
|
+
});
|
|
168
190
|
req.dav.lock.timeout = _cache.CACHE_LOCK_DEFAULT_TTL;
|
|
169
191
|
}
|
|
170
192
|
}
|
|
@@ -172,17 +194,26 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
|
|
|
172
194
|
this.parseBody(req);
|
|
173
195
|
if (req.dav.body) {
|
|
174
196
|
if (!req.dav.body.lockinfo) {
|
|
175
|
-
this.logger.warn(
|
|
197
|
+
this.logger.warn({
|
|
198
|
+
tag: this.lockMethod.name,
|
|
199
|
+
msg: `Missing lockinfo : ${JSON.stringify(req.dav.body)}`
|
|
200
|
+
});
|
|
176
201
|
throw new _common.HttpException('Missing lockinfo', _common.HttpStatus.BAD_REQUEST);
|
|
177
202
|
}
|
|
178
203
|
try {
|
|
179
204
|
req.dav.lock.lockscope = Object.keys(req.dav.body.lockinfo.lockscope)[0];
|
|
180
205
|
} catch (e) {
|
|
181
|
-
this.logger.warn(
|
|
206
|
+
this.logger.warn({
|
|
207
|
+
tag: this.lockMethod.name,
|
|
208
|
+
msg: `invalid or undefined lockscope : ${JSON.stringify(req.dav.body.lockinfo)} : ${e}`
|
|
209
|
+
});
|
|
182
210
|
throw new _common.HttpException('Invalid or undefined lockscope', _common.HttpStatus.BAD_REQUEST);
|
|
183
211
|
}
|
|
184
212
|
if (Object.values(_webdav.LOCK_SCOPE).indexOf(req.dav.lock.lockscope) === -1) {
|
|
185
|
-
this.logger.warn(
|
|
213
|
+
this.logger.warn({
|
|
214
|
+
tag: this.lockMethod.name,
|
|
215
|
+
msg: `invalid or undefined lockscope : ${JSON.stringify(req.dav.body.lockinfo)}`
|
|
216
|
+
});
|
|
186
217
|
throw new _common.HttpException('Invalid or undefined lockscope', _common.HttpStatus.BAD_REQUEST);
|
|
187
218
|
}
|
|
188
219
|
if (req.dav.body.lockinfo.owner) {
|
|
@@ -234,9 +265,12 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
|
|
|
234
265
|
if (!req.headers[_webdav.HEADER.DESTINATION]) {
|
|
235
266
|
throw new _common.HttpException(`Missing ${_webdav.HEADER.DESTINATION} header`, _common.HttpStatus.BAD_REQUEST);
|
|
236
267
|
}
|
|
237
|
-
const destination = (0,
|
|
268
|
+
const destination = (0, _functions.urlToPath)(req.headers[_webdav.HEADER.DESTINATION]);
|
|
238
269
|
if (!_webdav.REGEX_BASE_PATH.test(destination)) {
|
|
239
|
-
this.logger.warn(
|
|
270
|
+
this.logger.warn({
|
|
271
|
+
tag: this.copyMoveMethod.name,
|
|
272
|
+
msg: `The destination does not match the webdav base path : ${destination}`
|
|
273
|
+
});
|
|
240
274
|
throw new _common.HttpException('The destination does not match', _common.HttpStatus.BAD_REQUEST);
|
|
241
275
|
}
|
|
242
276
|
req.dav.depth = (req.headers[_webdav.HEADER.DEPTH] || _webdav.DEPTH.INFINITY).toLowerCase();
|