@sync-in/server 1.10.1 → 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 +47 -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 +18 -17
- 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-U5E5H2DD.js → chunk-27ATUHBH.js} +1 -1
- package/static/{chunk-HZAB6F4Q.js → chunk-2CKLZ3FM.js} +1 -1
- package/static/{chunk-XZHWESIY.js → chunk-2QZPX7LO.js} +1 -1
- package/static/{chunk-UOK3LKSX.js → chunk-2R6IBBPZ.js} +1 -1
- package/static/{chunk-DVCN3P7Q.js → chunk-4FIGEBNL.js} +1 -1
- package/static/chunk-4P3JABAP.js +13 -0
- package/static/chunk-5CZOSAMZ.js +1 -0
- package/static/{chunk-RBTLSPYJ.js → chunk-677WUBCT.js} +1 -1
- package/static/{chunk-KEZNIIFH.js → chunk-74CAHBFM.js} +1 -1
- package/static/{chunk-WRK2FTKU.js → chunk-7GWW6MJO.js} +1 -1
- package/static/{chunk-EKWB5W72.js → chunk-7WOPGQXB.js} +1 -1
- package/static/{chunk-IMFO2MI7.js → chunk-A4UGPSWX.js} +1 -1
- package/static/{chunk-KDUAB76O.js → chunk-AHO37FKW.js} +1 -1
- package/static/chunk-AQCXMKP3.js +1 -0
- package/static/chunk-B6PDYCRO.js +3 -0
- package/static/{chunk-PPJCVBJH.js → chunk-CU76ATCF.js} +1 -1
- package/static/{chunk-ARS47O5X.js → chunk-CWYHOPOP.js} +1 -1
- package/static/{chunk-CSVPAZHK.js → chunk-E5WI5725.js} +1 -1
- package/static/{chunk-XX3JPJUM.js → chunk-FC5HTKVM.js} +1 -1
- package/static/{chunk-QGHNJVJ6.js → chunk-FOSM7EYI.js} +1 -1
- package/static/{chunk-JAJ7VXMB.js → chunk-GAZO25PI.js} +1 -1
- package/static/{chunk-IHS5LSJJ.js → chunk-GB7ABR5N.js} +1 -1
- package/static/{chunk-27V66YJV.js → chunk-GEHFKZQ5.js} +2 -2
- package/static/{chunk-3QTROEHV.js → chunk-GQFMWVFD.js} +1 -1
- package/static/{chunk-FWQJ4ZCD.js → chunk-GVNTC564.js} +1 -1
- package/static/{chunk-4NIYCYRS.js → chunk-HGL3NYP2.js} +2 -2
- package/static/chunk-HLIWPWRA.js +1 -0
- package/static/{chunk-3VRUIWQG.js → chunk-HNYB3M4S.js} +1 -1
- package/static/{chunk-7HJFIMNF.js → chunk-HUXAUQMN.js} +1 -1
- package/static/chunk-I2XA6PPK.js +1 -0
- package/static/{chunk-RJULB733.js → chunk-ISV3BO6R.js} +1 -1
- package/static/{chunk-R4VYKZVJ.js → chunk-IWWBV6EM.js} +1 -1
- package/static/{chunk-TTWMFWEC.js → chunk-JV3AGU5B.js} +1 -1
- package/static/{chunk-X7NHX5C7.js → chunk-K25E7YGG.js} +1 -1
- package/static/chunk-K46PUTZB.js +1 -0
- package/static/{chunk-D2MLAO5N.js → chunk-KERFLJ56.js} +1 -7
- package/static/{chunk-LZUHREOF.js → chunk-KJD3KFF3.js} +1 -1
- package/static/chunk-KPKSI23S.js +1 -0
- package/static/{chunk-CMNMPG6Z.js → chunk-KZS7CTNR.js} +1 -1
- package/static/{chunk-RNVPQQKT.js → chunk-L5IHUVXL.js} +1 -1
- package/static/{chunk-2GXOVGTD.js → chunk-L7RRX2M3.js} +1 -1
- package/static/{chunk-WFMEUST4.js → chunk-LGWJ2WKU.js} +1 -1
- package/static/{chunk-ZOMRIN3G.js → chunk-MLC7JK2H.js} +2 -2
- package/static/{chunk-76REYAEA.js → chunk-MOHNYW2A.js} +1 -1
- package/static/{chunk-ZHUBWKA2.js → chunk-MTRXBVWZ.js} +1 -1
- package/static/{chunk-QJ22N76V.js → chunk-MZQK6LNV.js} +1 -1
- package/static/{chunk-SDJNZULP.js → chunk-NCDUOVMW.js} +1 -1
- package/static/chunk-NGUAJIGI.js +1 -0
- package/static/chunk-NIPP6JDI.js +1 -0
- package/static/{chunk-VD5JHSDS.js → chunk-NMTBMHUL.js} +1 -1
- package/static/chunk-O4XXMZFX.js +4 -0
- package/static/{chunk-WZPF4LS2.js → chunk-OANZITPM.js} +1 -1
- package/static/{chunk-JNTNMIUH.js → chunk-OGE4SAHU.js} +1 -1
- package/static/{chunk-S6H2ELRY.js → chunk-OI3ME22C.js} +1 -1
- package/static/{chunk-7KAYOR3A.js → chunk-Q3EGCMF5.js} +1 -1
- package/static/chunk-QF2NSHZA.js +1 -0
- package/static/{chunk-3ZBAQTHJ.js → chunk-QIGUDEZF.js} +1 -1
- package/static/{chunk-76M3BMK6.js → chunk-QJVC3SRJ.js} +11 -11
- package/static/{chunk-VBTZDHZ3.js → chunk-QKN6LAAA.js} +1 -1
- package/static/{chunk-JRXG43AA.js → chunk-QRFESU5O.js} +2 -2
- package/static/chunk-QVRVFYJH.js +1 -0
- package/static/{chunk-BCN4T5DO.js → chunk-RFJIPIOK.js} +2 -2
- package/static/{chunk-2RWLNKZH.js → chunk-RLL634K4.js} +1 -1
- package/static/{chunk-D5FQ72R4.js → chunk-RS2OFKWP.js} +1 -1
- package/static/{chunk-CN5YVRFT.js → chunk-RWAAC3A4.js} +1 -1
- package/static/{chunk-LWSCODLD.js → chunk-RWCNTCU5.js} +1 -1
- package/static/{chunk-FTFEQDWH.js → chunk-S5Y64DDS.js} +1 -1
- package/static/{chunk-J7474P3L.js → chunk-SLG5KDU6.js} +1 -1
- package/static/chunk-TJ4CVFEL.js +1 -0
- package/static/{chunk-KAUCN24H.js → chunk-TWCGKSYE.js} +1 -1
- package/static/{chunk-PDG7DOEF.js → chunk-UMDRE4S7.js} +1 -1
- package/static/chunk-VRIOLRYR.js +5 -0
- package/static/chunk-VS4O2XDP.js +1 -0
- package/static/{chunk-ZEJLIGAY.js → chunk-VSBFNFOM.js} +1 -1
- package/static/{chunk-XSURUW7C.js → chunk-WN4WXCVK.js} +1 -1
- package/static/{chunk-S44QIK3G.js → chunk-WX7RXW7K.js} +1 -1
- package/static/{chunk-3ZLBVUCX.js → chunk-XC4POKR3.js} +2 -2
- package/static/{chunk-TNCKNU6I.js → chunk-Y4AUYQTG.js} +1 -1
- package/static/{chunk-3MVPXC3U.js → chunk-Y67J3BOL.js} +1 -1
- package/static/{chunk-QTPIEEZW.js → chunk-YMIXHRJQ.js} +1 -7
- package/static/{chunk-VZFZUI6D.js → chunk-ZUNKFAKP.js} +1 -1
- package/static/index.html +3 -3
- package/static/main-QN4UCOC5.js +5 -0
- package/static/{styles-XLLEY5Y3.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-2YQ4SX3A.js +0 -13
- package/static/chunk-46TJLPJY.js +0 -1
- package/static/chunk-6OEOADR6.js +0 -1
- package/static/chunk-AALPWGPB.js +0 -3
- package/static/chunk-CVXLHSO5.js +0 -1
- package/static/chunk-G7RZN7HN.js +0 -1
- package/static/chunk-LTJNLOX2.js +0 -1
- package/static/chunk-NIKNG2FX.js +0 -1
- package/static/chunk-NNZWSNAW.js +0 -1
- package/static/chunk-NWKBB7J4.js +0 -1
- package/static/chunk-PVYVY3GD.js +0 -1
- package/static/chunk-Q5X5TPAG.js +0 -1
- package/static/chunk-R4VMWCM5.js +0 -1
- package/static/chunk-SNOOCDJD.js +0 -1
- package/static/chunk-SPQH3ATC.js +0 -5
- package/static/chunk-ZCSHU3D7.js +0 -1
- package/static/chunk-ZU5MQTFN.js +0 -4
- package/static/main-5O3KLGIR.js +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.controller.spec.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.controller.spec.ts"],"sourcesContent":["import { Test, TestingModule } from '@nestjs/testing'\nimport { ContextInterceptor } from '../../../../infrastructure/context/interceptors/context.interceptor'\nimport { ContextManager } from '../../../../infrastructure/context/services/context-manager.service'\nimport { SpacesManager } from '../../../spaces/services/spaces-manager.service'\nimport { FILE_MODE } from '../../constants/operations'\nimport { FilesMethods } from '../../services/files-methods.service'\nimport { OnlyOfficeManager } from './only-office-manager.service'\nimport { OnlyOfficeController } from './only-office.controller'\n\ndescribe(OnlyOfficeController.name, () => {\n let controller: OnlyOfficeController\n\n const filesOnlyOfficeManagerMock = {\n getSettings: jest.fn(),\n callBack: jest.fn()\n }\n\n const filesMethodsMock = {\n headOrGet: jest.fn()\n }\n\n beforeEach(async () => {\n jest.clearAllMocks()\n const module: TestingModule = await Test.createTestingModule({\n controllers: [OnlyOfficeController],\n providers: [\n { provide: OnlyOfficeManager, useValue: filesOnlyOfficeManagerMock },\n { provide: FilesMethods, useValue: filesMethodsMock },\n { provide: SpacesManager, useValue: {} },\n ContextManager,\n ContextInterceptor\n ]\n }).compile()\n\n controller = module.get<OnlyOfficeController>(OnlyOfficeController)\n })\n\n it('should be defined', () => {\n expect(controller).toBeDefined()\n })\n\n describe('onlyOfficeSettings', () => {\n it('should call manager with default mode \"view\" when mode is undefined', async () => {\n const user: any = { id: 1 }\n const space: any = { id: 'space-1' }\n const req: any = { headers: {}, params: {}, query: {}, user, space }\n const expected = { config: 'ok', mode: FILE_MODE.VIEW }\n filesOnlyOfficeManagerMock.getSettings.mockResolvedValue(expected)\n\n const result = await controller.onlyOfficeSettings(req)\n\n expect(filesOnlyOfficeManagerMock.getSettings).toHaveBeenCalledTimes(1)\n expect(filesOnlyOfficeManagerMock.getSettings).toHaveBeenCalledWith(user, space, req)\n expect(result).toBe(expected)\n })\n\n it('should pass provided mode to manager', async () => {\n const user: any = { id: 2 }\n const space: any = { id: 'space-2' }\n const req: any = { headers: { 'x-test': '1' }, user, space }\n const expected = { config: 'ok', mode: FILE_MODE.EDIT }\n filesOnlyOfficeManagerMock.getSettings.mockResolvedValue(expected)\n\n const result = await controller.onlyOfficeSettings(req)\n\n expect(filesOnlyOfficeManagerMock.getSettings).toHaveBeenCalledWith(user, space, req)\n expect(result).toBe(expected)\n })\n })\n\n describe('onlyOfficeDocument', () => {\n it('should delegate to filesMethods.headOrGet with req and res', async () => {\n const req: any = { params: { '*': 'path/to/file' } }\n const res: any = { header: jest.fn(), status: jest.fn().mockReturnThis() }\n const stream: any = { readable: true }\n filesMethodsMock.headOrGet.mockResolvedValue(stream)\n\n const result = await controller.onlyOfficeDocument(req, res)\n\n expect(filesMethodsMock.headOrGet).toHaveBeenCalledTimes(1)\n expect(filesMethodsMock.headOrGet).toHaveBeenCalledWith(req, res)\n expect(result).toBe(stream)\n })\n })\n\n describe('onlyOfficeCallBack', () => {\n it('should call manager.callBack with user, space, token and fileId (fid)', async () => {\n const user: any = { id: 3 }\n const space: any = { id: 'space-3' }\n const token = 'jwt-token'\n const expected = { ok: true }\n filesOnlyOfficeManagerMock.callBack.mockResolvedValue(expected)\n\n const result = await controller.onlyOfficeCallBack(user, space, token)\n\n expect(filesOnlyOfficeManagerMock.callBack).toHaveBeenCalledTimes(1)\n expect(filesOnlyOfficeManagerMock.callBack).toHaveBeenCalledWith(user, space, token)\n expect(result).toBe(expected)\n })\n })\n})\n"],"names":["describe","OnlyOfficeController","name","controller","filesOnlyOfficeManagerMock","getSettings","jest","fn","callBack","filesMethodsMock","headOrGet","beforeEach","clearAllMocks","module","Test","createTestingModule","controllers","providers","provide","OnlyOfficeManager","useValue","FilesMethods","SpacesManager","ContextManager","ContextInterceptor","compile","get","it","expect","toBeDefined","user","id","space","req","headers","params","query","expected","config","mode","FILE_MODE","VIEW","mockResolvedValue","result","onlyOfficeSettings","toHaveBeenCalledTimes","toHaveBeenCalledWith","toBe","EDIT","res","header","status","mockReturnThis","stream","readable","onlyOfficeDocument","token","ok","onlyOfficeCallBack"],"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/files/modules/only-office/only-office.dtos.ts"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.dtos.ts"],"names":[],"mappings":""}
|
|
@@ -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/files/modules/only-office/only-office.guard.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.guard.ts"],"sourcesContent":["import { ExecutionContext, Injectable, Logger } from '@nestjs/common'\nimport { AuthGuard, IAuthGuard } from '@nestjs/passport'\n\n@Injectable()\nexport class OnlyOfficeGuard extends AuthGuard('filesOnlyOfficeToken') implements IAuthGuard {\n private readonly logger = new Logger(OnlyOfficeGuard.name)\n\n handleRequest<TUser = any>(err: any, user: any, info: Error, ctx: ExecutionContext, status?: any): TUser {\n const req = this.getRequest(ctx)\n req.raw.user = user?.login || 'unauthorized'\n if (info) {\n this.logger.warn(`<${req.raw.user}> <${req.ip}> ${info}`)\n }\n return super.handleRequest(err, user, info, ctx, status)\n }\n}\n"],"names":["OnlyOfficeGuard","AuthGuard","handleRequest","err","user","info","ctx","status","req","getRequest","raw","login","logger","warn","ip","Logger","name"],"mappings":";;;;+BAIaA;;;eAAAA;;;wBAJwC;0BACf;;;;;;;AAG/B,IAAA,AAAMA,kBAAN,MAAMA,wBAAwBC,IAAAA,mBAAS,EAAC;IAG7CC,cAA2BC,GAAQ,EAAEC,IAAS,EAAEC,IAAW,EAAEC,GAAqB,EAAEC,MAAY,EAAS;QACvG,MAAMC,MAAM,IAAI,CAACC,UAAU,CAACH;QAC5BE,IAAIE,GAAG,CAACN,IAAI,GAAGA,MAAMO,SAAS;QAC9B,IAAIN,MAAM;YACR,IAAI,CAACO,MAAM,CAACC,IAAI,CAAC,CAAC,CAAC,EAAEL,IAAIE,GAAG,CAACN,IAAI,CAAC,GAAG,EAAEI,IAAIM,EAAE,CAAC,EAAE,EAAET,MAAM;QAC1D;QACA,OAAO,KAAK,CAACH,cAAcC,KAAKC,MAAMC,MAAMC,KAAKC;IACnD;;QAVK,qBACYK,SAAS,IAAIG,cAAM,CAACf,gBAAgBgB,IAAI;;AAU3D"}
|
|
@@ -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/files/modules/only-office/only-office.guard.spec.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.guard.spec.ts"],"sourcesContent":["import { createMock, DeepMocked } from '@golevelup/ts-jest'\nimport { ExecutionContext } from '@nestjs/common'\nimport { JwtModule, JwtService } from '@nestjs/jwt'\nimport { Test, TestingModule } from '@nestjs/testing'\nimport { PinoLogger } from 'nestjs-pino'\nimport { JwtPayload } from '../../../../authentication/interfaces/jwt-payload.interface'\nimport { configuration } from '../../../../configuration/config.environment'\nimport { ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME } from './only-office.constants'\nimport { OnlyOfficeGuard } from './only-office.guard'\nimport { API_ONLY_OFFICE_CALLBACK } from './only-office.routes'\nimport { OnlyOfficeStrategy } from './only-office.strategy'\n\ndescribe(OnlyOfficeGuard.name, () => {\n let jwtService: JwtService\n let filesOnlyOfficeGuard: OnlyOfficeGuard\n let context: DeepMocked<ExecutionContext>\n let accessToken: string\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n imports: [JwtModule.register({ global: true })],\n providers: [\n OnlyOfficeGuard,\n OnlyOfficeStrategy,\n {\n provide: PinoLogger,\n useValue: {\n assign: () => undefined\n }\n }\n ]\n }).compile()\n\n jwtService = module.get<JwtService>(JwtService)\n filesOnlyOfficeGuard = module.get<OnlyOfficeGuard>(OnlyOfficeGuard)\n context = createMock<ExecutionContext>()\n accessToken = await jwtService.signAsync({ identity: { id: 1, login: 'foo' } } as JwtPayload, {\n secret: configuration.auth.token.access.secret,\n expiresIn: 30\n })\n })\n\n it('should be defined', () => {\n expect(jwtService).toBeDefined()\n expect(filesOnlyOfficeGuard).toBeDefined()\n expect(accessToken).toBeDefined()\n })\n\n it('should not pass without a valid token', async () => {\n context.switchToHttp().getRequest.mockReturnValue({\n url: `${API_ONLY_OFFICE_CALLBACK}`,\n raw: { user: '' }\n })\n await expect(filesOnlyOfficeGuard.canActivate(context)).rejects.toThrow('Unauthorized')\n })\n\n it('should pass with a (un)valid token', async () => {\n context.switchToHttp().getRequest.mockReturnValue({\n url: `${API_ONLY_OFFICE_CALLBACK}?${ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME}=${accessToken}`,\n raw: { user: '' }\n })\n expect(await filesOnlyOfficeGuard.canActivate(context)).toBe(true)\n context.switchToHttp().getRequest.mockReturnValue({\n url: `${API_ONLY_OFFICE_CALLBACK}?${ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME}=unvalidToken`,\n raw: { user: '' }\n })\n await expect(filesOnlyOfficeGuard.canActivate(context)).rejects.toThrow('Unauthorized')\n })\n})\n"],"names":["describe","OnlyOfficeGuard","name","jwtService","filesOnlyOfficeGuard","context","accessToken","beforeAll","module","Test","createTestingModule","imports","JwtModule","register","global","providers","OnlyOfficeStrategy","provide","PinoLogger","useValue","assign","undefined","compile","get","JwtService","createMock","signAsync","identity","id","login","secret","configuration","auth","token","access","expiresIn","it","expect","toBeDefined","switchToHttp","getRequest","mockReturnValue","url","API_ONLY_OFFICE_CALLBACK","raw","user","canActivate","rejects","toThrow","ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME","toBe"],"mappings":";;;;wBAAuC;qBAED;yBACF;4BACT;mCAEG;qCACqB;iCACnB;kCACS;oCACN;AAEnCA,SAASC,gCAAe,CAACC,IAAI,EAAE;IAC7B,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJC,UAAU;QACR,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,SAAS;gBAACC,cAAS,CAACC,QAAQ,CAAC;oBAAEC,QAAQ;gBAAK;aAAG;YAC/CC,WAAW;gBACTd,gCAAe;gBACfe,sCAAkB;gBAClB;oBACEC,SAASC,sBAAU;oBACnBC,UAAU;wBACRC,QAAQ,IAAMC;oBAChB;gBACF;aACD;QACH,GAAGC,OAAO;QAEVnB,aAAaK,OAAOe,GAAG,CAAaC,eAAU;QAC9CpB,uBAAuBI,OAAOe,GAAG,CAAkBtB,gCAAe;QAClEI,UAAUoB,IAAAA,kBAAU;QACpBnB,cAAc,MAAMH,WAAWuB,SAAS,CAAC;YAAEC,UAAU;gBAAEC,IAAI;gBAAGC,OAAO;YAAM;QAAE,GAAiB;YAC5FC,QAAQC,gCAAa,CAACC,IAAI,CAACC,KAAK,CAACC,MAAM,CAACJ,MAAM;YAC9CK,WAAW;QACb;IACF;IAEAC,GAAG,qBAAqB;QACtBC,OAAOlC,YAAYmC,WAAW;QAC9BD,OAAOjC,sBAAsBkC,WAAW;QACxCD,OAAO/B,aAAagC,WAAW;IACjC;IAEAF,GAAG,yCAAyC;QAC1C/B,QAAQkC,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,KAAK,GAAGC,0CAAwB,EAAE;YAClCC,KAAK;gBAAEC,MAAM;YAAG;QAClB;QACA,MAAMR,OAAOjC,qBAAqB0C,WAAW,CAACzC,UAAU0C,OAAO,CAACC,OAAO,CAAC;IAC1E;IAEAZ,GAAG,sCAAsC;QACvC/B,QAAQkC,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,KAAK,GAAGC,0CAAwB,CAAC,CAAC,EAAEM,uDAAkC,CAAC,CAAC,EAAE3C,aAAa;YACvFsC,KAAK;gBAAEC,MAAM;YAAG;QAClB;QACAR,OAAO,MAAMjC,qBAAqB0C,WAAW,CAACzC,UAAU6C,IAAI,CAAC;QAC7D7C,QAAQkC,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,KAAK,GAAGC,0CAAwB,CAAC,CAAC,EAAEM,uDAAkC,CAAC,aAAa,CAAC;YACrFL,KAAK;gBAAEC,MAAM;YAAG;QAClB;QACA,MAAMR,OAAOjC,qBAAqB0C,WAAW,CAACzC,UAAU0C,OAAO,CAACC,OAAO,CAAC;IAC1E;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/files/modules/only-office/only-office.interface.ts"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.interface.ts"],"names":[],"mappings":""}
|
|
@@ -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/files/modules/only-office/only-office.module.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.module.ts"],"sourcesContent":["import { Module } from '@nestjs/common'\nimport { OnlyOfficeManager } from './only-office-manager.service'\nimport { OnlyOfficeController } from './only-office.controller'\nimport { OnlyOfficeGuard } from './only-office.guard'\nimport { OnlyOfficeStrategy } from './only-office.strategy'\n\n@Module({\n controllers: [OnlyOfficeController],\n providers: [OnlyOfficeManager, OnlyOfficeGuard, OnlyOfficeStrategy]\n})\nexport class OnlyOfficeModule {}\n"],"names":["OnlyOfficeModule","controllers","OnlyOfficeController","providers","OnlyOfficeManager","OnlyOfficeGuard","OnlyOfficeStrategy"],"mappings":";;;;+BAUaA;;;eAAAA;;;wBAVU;0CACW;sCACG;iCACL;oCACG;;;;;;;AAM5B,IAAA,AAAMA,mBAAN,MAAMA;AAAkB;;;QAH7BC,aAAa;YAACC,0CAAoB;SAAC;QACnCC,WAAW;YAACC,2CAAiB;YAAEC,gCAAe;YAAEC,sCAAkB;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/files/modules/only-office/only-office.routes.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.routes.ts"],"sourcesContent":["import { SPACES_ROUTE } from '../../../spaces/constants/routes'\n\nexport const ONLY_OFFICE_ROUTE = {\n BASE: SPACES_ROUTE.BASE,\n ONLY_OFFICE: 'onlyoffice',\n SETTINGS: 'settings',\n DOCUMENT: 'document',\n CALLBACK: 'callback'\n} as const\n\nexport const API_ONLY_OFFICE = `${ONLY_OFFICE_ROUTE.BASE}/${ONLY_OFFICE_ROUTE.ONLY_OFFICE}`\nexport const API_ONLY_OFFICE_SETTINGS = `${API_ONLY_OFFICE}/${ONLY_OFFICE_ROUTE.SETTINGS}`\nexport const API_ONLY_OFFICE_DOCUMENT = `${API_ONLY_OFFICE}/${ONLY_OFFICE_ROUTE.DOCUMENT}`\nexport const API_ONLY_OFFICE_CALLBACK = `${API_ONLY_OFFICE}/${ONLY_OFFICE_ROUTE.CALLBACK}`\n"],"names":["API_ONLY_OFFICE","API_ONLY_OFFICE_CALLBACK","API_ONLY_OFFICE_DOCUMENT","API_ONLY_OFFICE_SETTINGS","ONLY_OFFICE_ROUTE","BASE","SPACES_ROUTE","ONLY_OFFICE","SETTINGS","DOCUMENT","CALLBACK"],"mappings":";;;;;;;;;;;QAUaA;eAAAA;;QAGAC;eAAAA;;QADAC;eAAAA;;QADAC;eAAAA;;QATAC;eAAAA;;;wBAFgB;AAEtB,MAAMA,oBAAoB;IAC/BC,MAAMC,oBAAY,CAACD,IAAI;IACvBE,aAAa;IACbC,UAAU;IACVC,UAAU;IACVC,UAAU;AACZ;AAEO,MAAMV,kBAAkB,GAAGI,kBAAkBC,IAAI,CAAC,CAAC,EAAED,kBAAkBG,WAAW,EAAE;AACpF,MAAMJ,2BAA2B,GAAGH,gBAAgB,CAAC,EAAEI,kBAAkBI,QAAQ,EAAE;AACnF,MAAMN,2BAA2B,GAAGF,gBAAgB,CAAC,EAAEI,kBAAkBK,QAAQ,EAAE;AACnF,MAAMR,2BAA2B,GAAGD,gBAAgB,CAAC,EAAEI,kBAAkBM,QAAQ,EAAE"}
|
|
@@ -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/files/modules/only-office/only-office.strategy.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../backend/src/applications/files/modules/only-office/only-office.strategy.ts"],"sourcesContent":["import { Injectable } from '@nestjs/common'\nimport { AbstractStrategy, PassportStrategy } from '@nestjs/passport'\nimport { PinoLogger } from 'nestjs-pino'\nimport { ExtractJwt, Strategy } from 'passport-jwt'\nimport { AuthTokenAccessStrategy } from '../../../../authentication/guards/auth-token-access.strategy'\nimport { JwtPayload } from '../../../../authentication/interfaces/jwt-payload.interface'\nimport { configuration } from '../../../../configuration/config.environment'\nimport { UserModel } from '../../../users/models/user.model'\nimport { ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME } from './only-office.constants'\n\n@Injectable()\nexport class OnlyOfficeStrategy extends PassportStrategy(Strategy, 'filesOnlyOfficeToken') implements AbstractStrategy {\n constructor(private readonly logger: PinoLogger) {\n super({\n jwtFromRequest: ExtractJwt.fromExtractors([\n AuthTokenAccessStrategy.extractJWTFromCookie,\n ExtractJwt.fromUrlQueryParameter(ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME)\n ]),\n secretOrKey: configuration.auth.token.access.secret,\n ignoreExpiration: false,\n passReqToCallback: false\n })\n }\n\n validate(jwtPayload: JwtPayload): UserModel {\n this.logger.assign({ user: jwtPayload.identity.login })\n return new UserModel(jwtPayload.identity)\n }\n}\n"],"names":["OnlyOfficeStrategy","PassportStrategy","Strategy","validate","jwtPayload","logger","assign","user","identity","login","UserModel","jwtFromRequest","ExtractJwt","fromExtractors","AuthTokenAccessStrategy","extractJWTFromCookie","fromUrlQueryParameter","ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME","secretOrKey","configuration","auth","token","access","secret","ignoreExpiration","passReqToCallback"],"mappings":";;;;+BAWaA;;;eAAAA;;;wBAXc;0BACwB;4BACxB;6BACU;yCACG;mCAEV;2BACJ;qCACyB;;;;;;;;;;AAG5C,IAAA,AAAMA,qBAAN,MAAMA,2BAA2BC,IAAAA,0BAAgB,EAACC,qBAAQ,EAAE;IAajEC,SAASC,UAAsB,EAAa;QAC1C,IAAI,CAACC,MAAM,CAACC,MAAM,CAAC;YAAEC,MAAMH,WAAWI,QAAQ,CAACC,KAAK;QAAC;QACrD,OAAO,IAAIC,oBAAS,CAACN,WAAWI,QAAQ;IAC1C;IAfA,YAAY,AAAiBH,MAAkB,CAAE;QAC/C,KAAK,CAAC;YACJM,gBAAgBC,uBAAU,CAACC,cAAc,CAAC;gBACxCC,gDAAuB,CAACC,oBAAoB;gBAC5CH,uBAAU,CAACI,qBAAqB,CAACC,uDAAkC;aACpE;YACDC,aAAaC,gCAAa,CAACC,IAAI,CAACC,KAAK,CAACC,MAAM,CAACC,MAAM;YACnDC,kBAAkB;YAClBC,mBAAmB;QACrB,SAT2BpB,SAAAA;IAU7B;AAMF"}
|
|
@@ -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/files/schemas/file-content.interface.ts"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/files/schemas/file-content.interface.ts"],"names":[],"mappings":""}
|
|
@@ -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/files/schemas/file-recent.interface.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/files/schemas/file-recent.interface.ts"],"sourcesContent":["import { filesRecents } from './files-recents.schema'\n\ntype FileRecentSchema = typeof filesRecents.$inferSelect\n\nexport class FileRecent implements FileRecentSchema {\n id: number\n ownerId: number\n spaceId: number\n shareId: number\n path: string\n name: string\n mime: string\n mtime: number\n}\n"],"names":["FileRecent"],"mappings":";;;;+BAIaA;;;eAAAA;;;AAAN,IAAA,AAAMA,aAAN,MAAMA;AASb"}
|
|
@@ -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/files/schemas/file.interface.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/files/schemas/file.interface.ts"],"sourcesContent":["import type { files } from './files.schema'\n\ntype FileSchema = typeof files.$inferSelect\n\nexport class File implements FileSchema {\n id: number\n ownerId: number\n spaceId: number\n spaceExternalRootId: number\n shareExternalId: number\n path: string\n name: string\n isDir: boolean\n inTrash: boolean\n mime: string\n size: number\n mtime: number\n ctime: number\n}\n"],"names":["File"],"mappings":";;;;+BAIaA;;;eAAAA;;;AAAN,IAAA,AAAMA,OAAN,MAAMA;AAcb"}
|
|
@@ -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/files/schemas/files-content.schema.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/files/schemas/files-content.schema.ts"],"sourcesContent":["export const FILES_CONTENT_TABLE_PREFIX = 'files_content_' as const\n\n// The utf8mb4_uca1400_ai_ci COLLATE is better for precision but slower\nexport function createTableFilesContent(tableName: string): string {\n return `\n CREATE TABLE IF NOT EXISTS ${tableName}\n (\n id bigint NOT NULL,\n path varchar(4096) NOT NULL,\n name varchar(255) NOT NULL,\n mime varchar(255),\n size bigint unsigned NOT NULL,\n mtime bigint unsigned NOT NULL,\n content LONGTEXT,\n FULLTEXT (content),\n CONSTRAINT files_content_id PRIMARY KEY (id)\n ) CHARACTER SET utf8mb4\n COLLATE utf8mb4_general_ci;`\n}\n"],"names":["FILES_CONTENT_TABLE_PREFIX","createTableFilesContent","tableName"],"mappings":";;;;;;;;;;;QAAaA;eAAAA;;QAGGC;eAAAA;;;AAHT,MAAMD,6BAA6B;AAGnC,SAASC,wBAAwBC,SAAiB;IACvD,OAAO,CAAC;iCACuB,EAAEA,UAAU;;;;;;;;;;;;mCAYV,CAAC;AACpC"}
|
|
@@ -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/files/schemas/files-recents.schema.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/files/schemas/files-recents.schema.ts"],"sourcesContent":["import { bigint, index, mysqlTable, varchar } from 'drizzle-orm/mysql-core'\nimport { shares } from '../../shares/schemas/shares.schema'\nimport { spaces } from '../../spaces/schemas/spaces.schema'\nimport { users } from '../../users/schemas/users.schema'\n\nexport const filesRecents = mysqlTable(\n 'files_recents',\n {\n id: bigint('id', { mode: 'number', unsigned: false }),\n ownerId: bigint('ownerId', { mode: 'number', unsigned: true }).references(() => users.id, { onDelete: 'cascade' }),\n spaceId: bigint('spaceId', { mode: 'number', unsigned: true }).references(() => spaces.id, { onDelete: 'cascade' }),\n shareId: bigint('shareId', { mode: 'number', unsigned: true }).references(() => shares.id, { onDelete: 'cascade' }),\n path: varchar('path', { length: 4096 }).notNull(),\n name: varchar('name', { length: 255 }).notNull(),\n mime: varchar('mime', { length: 255 }),\n mtime: bigint('mtime', { mode: 'number', unsigned: true }).notNull()\n },\n (table) => [\n index('owner_idx').on(table.ownerId),\n index('space_idx').on(table.spaceId),\n index('share_idx').on(table.shareId),\n index('mtime_idx').on(table.mtime),\n index('path_idx').on(table.path)\n ]\n)\n"],"names":["filesRecents","mysqlTable","id","bigint","mode","unsigned","ownerId","references","users","onDelete","spaceId","spaces","shareId","shares","path","varchar","length","notNull","name","mime","mtime","table","index","on"],"mappings":";;;;+BAKaA;;;eAAAA;;;2BALsC;8BAC5B;8BACA;6BACD;AAEf,MAAMA,eAAeC,IAAAA,qBAAU,EACpC,iBACA;IACEC,IAAIC,IAAAA,iBAAM,EAAC,MAAM;QAAEC,MAAM;QAAUC,UAAU;IAAM;IACnDC,SAASH,IAAAA,iBAAM,EAAC,WAAW;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGE,UAAU,CAAC,IAAMC,kBAAK,CAACN,EAAE,EAAE;QAAEO,UAAU;IAAU;IAChHC,SAASP,IAAAA,iBAAM,EAAC,WAAW;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGE,UAAU,CAAC,IAAMI,oBAAM,CAACT,EAAE,EAAE;QAAEO,UAAU;IAAU;IACjHG,SAAST,IAAAA,iBAAM,EAAC,WAAW;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGE,UAAU,CAAC,IAAMM,oBAAM,CAACX,EAAE,EAAE;QAAEO,UAAU;IAAU;IACjHK,MAAMC,IAAAA,kBAAO,EAAC,QAAQ;QAAEC,QAAQ;IAAK,GAAGC,OAAO;IAC/CC,MAAMH,IAAAA,kBAAO,EAAC,QAAQ;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IAC9CE,MAAMJ,IAAAA,kBAAO,EAAC,QAAQ;QAAEC,QAAQ;IAAI;IACpCI,OAAOjB,IAAAA,iBAAM,EAAC,SAAS;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGY,OAAO;AACpE,GACA,CAACI,QAAU;QACTC,IAAAA,gBAAK,EAAC,aAAaC,EAAE,CAACF,MAAMf,OAAO;QACnCgB,IAAAA,gBAAK,EAAC,aAAaC,EAAE,CAACF,MAAMX,OAAO;QACnCY,IAAAA,gBAAK,EAAC,aAAaC,EAAE,CAACF,MAAMT,OAAO;QACnCU,IAAAA,gBAAK,EAAC,aAAaC,EAAE,CAACF,MAAMD,KAAK;QACjCE,IAAAA,gBAAK,EAAC,YAAYC,EAAE,CAACF,MAAMP,IAAI;KAChC"}
|
|
@@ -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/files/schemas/files.schema.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/files/schemas/files.schema.ts"],"sourcesContent":["import { SQL, sql } from 'drizzle-orm'\nimport { AnyMySqlColumn, bigint, boolean, index, mysqlTable, varchar } from 'drizzle-orm/mysql-core'\nimport { escapeSQLRegexp } from '../../../common/functions'\nimport { shares } from '../../shares/schemas/shares.schema'\nimport { spacesRoots } from '../../spaces/schemas/spaces-roots.schema'\nimport { spaces } from '../../spaces/schemas/spaces.schema'\nimport { users } from '../../users/schemas/users.schema'\n\n/*\n ownerId: defined if the file is in a personal space (spaceId & spaceExternalRootId & shareExternalId must be null)\n spaceId: defined if the file is in a space (ownerId & spaceExternalRootId & shareExternalId must be null)\n spaceExternalRootId: defined if the file is in space root with an external path (spaceId required)\n shareExternalId: defined for a share created with an external path (spaceId & spaceRootId must be null)\n*/\n\nexport const files = mysqlTable(\n 'files',\n {\n id: bigint('id', { mode: 'number', unsigned: true }).autoincrement().primaryKey(),\n ownerId: bigint('ownerId', { mode: 'number', unsigned: true }).references(() => users.id, { onDelete: 'cascade' }),\n spaceId: bigint('spaceId', { mode: 'number', unsigned: true }).references(() => spaces.id, { onDelete: 'cascade' }),\n spaceExternalRootId: bigint('spaceExternalRootId', {\n mode: 'number',\n unsigned: true\n }).references((): AnyMySqlColumn => spacesRoots.id, { onDelete: 'cascade' }),\n shareExternalId: bigint('shareExternalId', { mode: 'number', unsigned: true }).references(() => shares.id, { onDelete: 'cascade' }),\n path: varchar('path', { length: 4096 }).notNull(),\n name: varchar('name', { length: 255 }).notNull(),\n isDir: boolean('isDir').notNull(),\n inTrash: boolean('inTrash').default(false).notNull(),\n mime: varchar('mime', { length: 255 }),\n size: bigint('size', { mode: 'number', unsigned: true }).default(0),\n mtime: bigint('mtime', { mode: 'number', unsigned: true }).default(0),\n ctime: bigint('ctime', { mode: 'number', unsigned: true }).default(0)\n },\n (table) => [\n index('owner_idx').on(table.ownerId),\n index('space_idx').on(table.spaceId),\n index('space_external_root_idx').on(table.spaceExternalRootId),\n index('share_external_idx').on(table.shareExternalId),\n index('name_idx').on(table.name),\n index('path_idx').on(table.path)\n ]\n)\n\n// supports the case where path = '.' or './sync-in' and removes '.' or './' if exists\nexport const filePathSQL = (file: any): SQL<string> => sql`REGEXP_REPLACE(CONCAT(${file.path}, '/', ${file.name}), '^(\\\\\\\\.\\\\\\\\/){0,1}(.*)', '\\\\\\\\2')`\n\nexport const childFilesFindRegexp = (path: string): SQL<string> => sql`${files.path}${sql.raw(`REGEXP '^${escapeSQLRegexp(path)}(/|$)'`)}`\n\nexport const childFilesReplaceRegexp = (srcPath: string, dstPath: string): SQL<string> =>\n sql`REGEXP_REPLACE(${files.path}, '^${sql.raw(escapeSQLRegexp(srcPath))}', '${sql.raw(escapeSQLRegexp(dstPath))}')`\n"],"names":["childFilesFindRegexp","childFilesReplaceRegexp","filePathSQL","files","mysqlTable","id","bigint","mode","unsigned","autoincrement","primaryKey","ownerId","references","users","onDelete","spaceId","spaces","spaceExternalRootId","spacesRoots","shareExternalId","shares","path","varchar","length","notNull","name","isDir","boolean","inTrash","default","mime","size","mtime","ctime","table","index","on","file","sql","raw","escapeSQLRegexp","srcPath","dstPath"],"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
|
});
|
|
@@ -52,7 +48,10 @@ let FilesContentManager = class FilesContentManager {
|
|
|
52
48
|
try {
|
|
53
49
|
await this.indexFiles(indexSuffix, paths);
|
|
54
50
|
} catch (e) {
|
|
55
|
-
this.logger.error(
|
|
51
|
+
this.logger.error({
|
|
52
|
+
tag: this.parseAndIndexAllFiles.name,
|
|
53
|
+
msg: `${e}`
|
|
54
|
+
});
|
|
56
55
|
}
|
|
57
56
|
indexSuffixes.push(indexSuffix);
|
|
58
57
|
}
|
|
@@ -82,7 +81,10 @@ let FilesContentManager = class FilesContentManager {
|
|
|
82
81
|
if (rootFileContent !== null) {
|
|
83
82
|
this.filesIndexer.insertRecord(indexName, rootFileContent).catch((e)=>{
|
|
84
83
|
errorRecords++;
|
|
85
|
-
this.logger.error(
|
|
84
|
+
this.logger.error({
|
|
85
|
+
tag: this.indexFiles.name,
|
|
86
|
+
msg: `${indexSuffix} | ${rootFileContent.name} : ${e}`
|
|
87
|
+
});
|
|
86
88
|
});
|
|
87
89
|
indexedRecords++;
|
|
88
90
|
}
|
|
@@ -91,27 +93,45 @@ let FilesContentManager = class FilesContentManager {
|
|
|
91
93
|
for await (const fileContent of this.parseFiles(p.realPath, context)){
|
|
92
94
|
this.filesIndexer.insertRecord(indexName, fileContent).catch((e)=>{
|
|
93
95
|
errorRecords++;
|
|
94
|
-
this.logger.error(
|
|
96
|
+
this.logger.error({
|
|
97
|
+
tag: this.indexFiles.name,
|
|
98
|
+
msg: `${indexSuffix} | ${fileContent.name} : ${e}`
|
|
99
|
+
});
|
|
95
100
|
});
|
|
96
101
|
indexedRecords++;
|
|
97
102
|
}
|
|
98
103
|
}
|
|
99
104
|
if (context.db.size === 0 && indexedRecords === 0) {
|
|
100
105
|
// case when no data
|
|
101
|
-
this.filesIndexer.dropIndex(indexName).catch((e)=>this.logger.error(
|
|
102
|
-
|
|
106
|
+
this.filesIndexer.dropIndex(indexName).catch((e)=>this.logger.error({
|
|
107
|
+
tag: this.indexFiles.name,
|
|
108
|
+
msg: `${indexSuffix} - unable to drop index : ${e}`
|
|
109
|
+
}));
|
|
110
|
+
this.logger.log({
|
|
111
|
+
tag: this.indexFiles.name,
|
|
112
|
+
msg: `${indexSuffix} - no data, index not stored`
|
|
113
|
+
});
|
|
103
114
|
} else {
|
|
104
115
|
// clean up old records
|
|
105
116
|
const recordsToDelete = [
|
|
106
117
|
...context.db.keys()
|
|
107
118
|
].filter((key)=>!context.fs.has(key));
|
|
108
119
|
if (recordsToDelete.length > 0) {
|
|
109
|
-
this.filesIndexer.deleteRecords(indexName, recordsToDelete).catch((e)=>this.logger.error(
|
|
120
|
+
this.filesIndexer.deleteRecords(indexName, recordsToDelete).catch((e)=>this.logger.error({
|
|
121
|
+
tag: this.indexFiles.name,
|
|
122
|
+
msg: `${indexSuffix} - unable to delete records : ${e}`
|
|
123
|
+
}));
|
|
110
124
|
}
|
|
111
125
|
if (indexedRecords === 0 && errorRecords === 0 && recordsToDelete.length === 0) {
|
|
112
|
-
this.logger.log(
|
|
126
|
+
this.logger.log({
|
|
127
|
+
tag: this.indexFiles.name,
|
|
128
|
+
msg: `${indexSuffix} - no new data`
|
|
129
|
+
});
|
|
113
130
|
} else {
|
|
114
|
-
this.logger.log(
|
|
131
|
+
this.logger.log({
|
|
132
|
+
tag: this.indexFiles.name,
|
|
133
|
+
msg: `${indexSuffix} - indexed: ${indexedRecords - errorRecords}, errors: ${errorRecords}, deleted: ${recordsToDelete.length}`
|
|
134
|
+
});
|
|
115
135
|
}
|
|
116
136
|
}
|
|
117
137
|
}
|
|
@@ -131,7 +151,10 @@ let FilesContentManager = class FilesContentManager {
|
|
|
131
151
|
}
|
|
132
152
|
}
|
|
133
153
|
} catch (e) {
|
|
134
|
-
this.logger.warn(
|
|
154
|
+
this.logger.warn({
|
|
155
|
+
tag: this.parseFiles.name,
|
|
156
|
+
msg: `${context.indexSuffix} - unable to parse: ${dir} - ${e}`
|
|
157
|
+
});
|
|
135
158
|
}
|
|
136
159
|
}
|
|
137
160
|
async analyzeFile(realPath, context, isRootFile = false) {
|
|
@@ -144,7 +167,10 @@ let FilesContentManager = class FilesContentManager {
|
|
|
144
167
|
try {
|
|
145
168
|
stats = await _promises.default.stat(realPath);
|
|
146
169
|
} catch (e) {
|
|
147
|
-
this.logger.warn(
|
|
170
|
+
this.logger.warn({
|
|
171
|
+
tag: this.analyzeFile.name,
|
|
172
|
+
msg: `unable to stats: ${realPath} - ${e}`
|
|
173
|
+
});
|
|
148
174
|
return null;
|
|
149
175
|
}
|
|
150
176
|
if (stats.size === 0 || stats.size > this.maxDocumentSize) {
|
|
@@ -181,7 +207,10 @@ let FilesContentManager = class FilesContentManager {
|
|
|
181
207
|
});
|
|
182
208
|
return content.length ? content : null;
|
|
183
209
|
} catch (e) {
|
|
184
|
-
this.logger.warn(
|
|
210
|
+
this.logger.warn({
|
|
211
|
+
tag: this.parseContent.name,
|
|
212
|
+
msg: `unable to index: ${rPath} - ${e}`
|
|
213
|
+
});
|
|
185
214
|
}
|
|
186
215
|
return null;
|
|
187
216
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/files/services/files-content-manager.service.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { Injectable, Logger } from '@nestjs/common'\nimport fs from 'fs/promises'\nimport { Stats } from 'node:fs'\nimport path from 'node:path'\nimport { indexableExtensions, shareIndexPrefix, spaceIndexPrefix, userIndexPrefix } from '../constants/indexing'\nimport { FileIndexContext, FileParseContext } from '../interfaces/file-parse-index'\nimport { FilesIndexer } from '../models/files-indexer'\nimport { FileContent } from '../schemas/file-content.interface'\nimport { docTextify } from '../utils/doc-textify/doc-textify'\nimport { getMimeType } from '../utils/files'\nimport { FilesParser } from './files-parser.service'\n\n@Injectable()\nexport class FilesContentManager {\n private readonly maxDocumentSize = 150 * 1_000_000\n private readonly logger = new Logger(FilesContentManager.name)\n\n constructor(\n private readonly filesIndexer: FilesIndexer,\n private readonly filesParser: FilesParser\n ) {}\n\n async parseAndIndexAllFiles(): Promise<void> {\n const indexSuffixes: string[] = []\n for await (const [id, type, paths] of this.filesParser.allPaths()) {\n let indexSuffix: string\n switch (type) {\n case 'user':\n indexSuffix = `${userIndexPrefix}${id}`\n break\n case 'space':\n indexSuffix = `${spaceIndexPrefix}${id}`\n break\n case 'share':\n indexSuffix = `${shareIndexPrefix}${id}`\n }\n try {\n await this.indexFiles(indexSuffix, paths)\n } catch (e) {\n this.logger.error(`${this.parseAndIndexAllFiles.name} : ${e}`)\n }\n indexSuffixes.push(indexSuffix)\n }\n // clean up old tables\n await this.filesIndexer.cleanIndexes(indexSuffixes)\n }\n\n private async indexFiles(indexSuffix: string, paths: FileParseContext[]): Promise<void> {\n const indexName = this.filesIndexer.getIndexName(indexSuffix)\n if (!(await this.filesIndexer.createIndex(indexName))) {\n return\n }\n const context: FileIndexContext = {\n indexSuffix: indexSuffix,\n pathPrefix: '',\n regexBasePath: undefined,\n db: await this.filesIndexer.getRecordStats(indexName),\n fs: new Set()\n }\n let indexedRecords = 0\n let errorRecords = 0\n\n for (const p of paths) {\n context.regexBasePath = new RegExp(`^/?${p.realPath}/?`)\n context.pathPrefix = p.pathPrefix || ''\n if (!p.isDir) {\n // Handles the space root file or shared file case\n const rootFileContent = await this.analyzeFile(p.realPath, context, true)\n if (rootFileContent !== null) {\n this.filesIndexer.insertRecord(indexName, rootFileContent).catch((e: Error) => {\n errorRecords++\n this.logger.error(`${this.indexFiles.name} - ${indexSuffix} | ${rootFileContent.name} : ${e}`)\n })\n indexedRecords++\n }\n continue\n }\n for await (const fileContent of this.parseFiles(p.realPath, context)) {\n this.filesIndexer.insertRecord(indexName, fileContent).catch((e: Error) => {\n errorRecords++\n this.logger.error(`${this.indexFiles.name} - ${indexSuffix} | ${fileContent.name} : ${e}`)\n })\n indexedRecords++\n }\n }\n\n if (context.db.size === 0 && indexedRecords === 0) {\n // case when no data\n this.filesIndexer\n .dropIndex(indexName)\n .catch((e: Error) => this.logger.error(`${this.indexFiles.name} - ${indexSuffix} - unable to drop index : ${e}`))\n this.logger.log(`${this.indexFiles.name} - ${indexSuffix} - no data, index not stored`)\n } else {\n // clean up old records\n const recordsToDelete: number[] = [...context.db.keys()].filter((key) => !context.fs.has(key))\n if (recordsToDelete.length > 0) {\n this.filesIndexer\n .deleteRecords(indexName, recordsToDelete)\n .catch((e: Error) => this.logger.error(`${this.indexFiles.name} - ${indexSuffix} - unable to delete records : ${e}`))\n }\n if (indexedRecords === 0 && errorRecords === 0 && recordsToDelete.length === 0) {\n this.logger.log(`${this.indexFiles.name} - ${indexSuffix} - no new data`)\n } else {\n this.logger.log(\n `${this.indexFiles.name} - ${indexSuffix} - indexed: ${indexedRecords - errorRecords}, errors: ${errorRecords}, deleted: ${recordsToDelete.length}`\n )\n }\n }\n }\n\n private async *parseFiles(dir: string, context: FileIndexContext): AsyncGenerator<FileContent> {\n try {\n for (const entry of await fs.readdir(dir, { withFileTypes: true })) {\n const realPath = path.join(entry.parentPath, entry.name)\n if (entry.isDirectory()) {\n yield* this.parseFiles(realPath, context)\n continue\n }\n const fileContent = await this.analyzeFile(realPath, context)\n if (fileContent !== null) {\n yield fileContent\n }\n }\n } catch (e) {\n this.logger.warn(`${this.parseFiles.name} - ${context.indexSuffix} - unable to parse: ${dir} - ${e}`)\n }\n }\n\n private async analyzeFile(realPath: string, context: FileIndexContext, isRootFile = false): Promise<FileContent> {\n const extension = path.extname(realPath).slice(1).toLowerCase()\n if (!indexableExtensions.has(extension)) return null\n\n const fileName = isRootFile ? path.basename(context.pathPrefix) : path.basename(realPath)\n\n // ignore temporary documents\n if (fileName.startsWith('~$')) return null\n\n let stats: Stats\n try {\n stats = await fs.stat(realPath)\n } catch (e) {\n this.logger.warn(`${this.analyzeFile.name} - unable to stats: ${realPath} - ${e}`)\n return null\n }\n if (stats.size === 0 || stats.size > this.maxDocumentSize) {\n return null\n }\n\n const filePath = isRootFile\n ? path.dirname(context.pathPrefix) || '.'\n : path.join(context.pathPrefix, path.dirname(realPath).replace(context.regexBasePath, '') || '.')\n\n const f = context.db.get(stats.ino)\n if (f && f.size === stats.size && f.path === filePath && f.name === fileName) {\n // no changes, store inode id & skip it\n context.fs.add(stats.ino)\n return null\n }\n\n // store inode id\n context.fs.add(stats.ino)\n\n // store the content with null value to not parse it later\n return {\n id: stats.ino,\n path: filePath,\n name: fileName,\n mime: getMimeType(realPath, false),\n size: stats.size,\n mtime: stats.mtime.getTime(),\n content: await this.parseContent(realPath, extension)\n }\n }\n\n private async parseContent(rPath: string, extension: string): Promise<string> {\n try {\n const content = await docTextify(\n rPath,\n { newlineDelimiter: ' ', minCharsToExtract: 10 },\n {\n extension: extension,\n verified: true\n }\n )\n return content.length ? content : null\n } catch (e) {\n this.logger.warn(`${this.parseContent.name} - unable to index: ${rPath} - ${e}`)\n }\n return null\n }\n}\n"],"names":["FilesContentManager","parseAndIndexAllFiles","indexSuffixes","id","type","paths","filesParser","allPaths","indexSuffix","userIndexPrefix","spaceIndexPrefix","shareIndexPrefix","indexFiles","e","logger","error","name","push","filesIndexer","cleanIndexes","indexName","getIndexName","createIndex","context","pathPrefix","regexBasePath","undefined","db","getRecordStats","fs","Set","indexedRecords","errorRecords","p","RegExp","realPath","isDir","rootFileContent","analyzeFile","insertRecord","catch","fileContent","parseFiles","size","dropIndex","log","recordsToDelete","keys","filter","key","has","length","deleteRecords","dir","entry","readdir","withFileTypes","path","join","parentPath","isDirectory","warn","isRootFile","extension","extname","slice","toLowerCase","indexableExtensions","fileName","basename","startsWith","stats","stat","maxDocumentSize","filePath","dirname","replace","f","get","ino","add","mime","getMimeType","mtime","getTime","content","parseContent","rPath","docTextify","newlineDelimiter","minCharsToExtract","verified","Logger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/applications/files/services/files-content-manager.service.ts"],"sourcesContent":["import { Injectable, Logger } from '@nestjs/common'\nimport fs from 'fs/promises'\nimport { Stats } from 'node:fs'\nimport path from 'node:path'\nimport { indexableExtensions, shareIndexPrefix, spaceIndexPrefix, userIndexPrefix } from '../constants/indexing'\nimport { FileIndexContext, FileParseContext } from '../interfaces/file-parse-index'\nimport { FilesIndexer } from '../models/files-indexer'\nimport { FileContent } from '../schemas/file-content.interface'\nimport { docTextify } from '../utils/doc-textify/doc-textify'\nimport { getMimeType } from '../utils/files'\nimport { FilesParser } from './files-parser.service'\n\n@Injectable()\nexport class FilesContentManager {\n private readonly maxDocumentSize = 150 * 1_000_000\n private readonly logger = new Logger(FilesContentManager.name)\n\n constructor(\n private readonly filesIndexer: FilesIndexer,\n private readonly filesParser: FilesParser\n ) {}\n\n async parseAndIndexAllFiles(): Promise<void> {\n const indexSuffixes: string[] = []\n for await (const [id, type, paths] of this.filesParser.allPaths()) {\n let indexSuffix: string\n switch (type) {\n case 'user':\n indexSuffix = `${userIndexPrefix}${id}`\n break\n case 'space':\n indexSuffix = `${spaceIndexPrefix}${id}`\n break\n case 'share':\n indexSuffix = `${shareIndexPrefix}${id}`\n }\n try {\n await this.indexFiles(indexSuffix, paths)\n } catch (e) {\n this.logger.error({ tag: this.parseAndIndexAllFiles.name, msg: `${e}` })\n }\n indexSuffixes.push(indexSuffix)\n }\n // clean up old tables\n await this.filesIndexer.cleanIndexes(indexSuffixes)\n }\n\n private async indexFiles(indexSuffix: string, paths: FileParseContext[]): Promise<void> {\n const indexName = this.filesIndexer.getIndexName(indexSuffix)\n if (!(await this.filesIndexer.createIndex(indexName))) {\n return\n }\n const context: FileIndexContext = {\n indexSuffix: indexSuffix,\n pathPrefix: '',\n regexBasePath: undefined,\n db: await this.filesIndexer.getRecordStats(indexName),\n fs: new Set()\n }\n let indexedRecords = 0\n let errorRecords = 0\n\n for (const p of paths) {\n context.regexBasePath = new RegExp(`^/?${p.realPath}/?`)\n context.pathPrefix = p.pathPrefix || ''\n if (!p.isDir) {\n // Handles the space root file or shared file case\n const rootFileContent = await this.analyzeFile(p.realPath, context, true)\n if (rootFileContent !== null) {\n this.filesIndexer.insertRecord(indexName, rootFileContent).catch((e: Error) => {\n errorRecords++\n this.logger.error({ tag: this.indexFiles.name, msg: `${indexSuffix} | ${rootFileContent.name} : ${e}` })\n })\n indexedRecords++\n }\n continue\n }\n for await (const fileContent of this.parseFiles(p.realPath, context)) {\n this.filesIndexer.insertRecord(indexName, fileContent).catch((e: Error) => {\n errorRecords++\n this.logger.error({ tag: this.indexFiles.name, msg: `${indexSuffix} | ${fileContent.name} : ${e}` })\n })\n indexedRecords++\n }\n }\n\n if (context.db.size === 0 && indexedRecords === 0) {\n // case when no data\n this.filesIndexer\n .dropIndex(indexName)\n .catch((e: Error) => this.logger.error({ tag: this.indexFiles.name, msg: `${indexSuffix} - unable to drop index : ${e}` }))\n this.logger.log({ tag: this.indexFiles.name, msg: `${indexSuffix} - no data, index not stored` })\n } else {\n // clean up old records\n const recordsToDelete: number[] = [...context.db.keys()].filter((key) => !context.fs.has(key))\n if (recordsToDelete.length > 0) {\n this.filesIndexer\n .deleteRecords(indexName, recordsToDelete)\n .catch((e: Error) => this.logger.error({ tag: this.indexFiles.name, msg: `${indexSuffix} - unable to delete records : ${e}` }))\n }\n if (indexedRecords === 0 && errorRecords === 0 && recordsToDelete.length === 0) {\n this.logger.log({ tag: this.indexFiles.name, msg: `${indexSuffix} - no new data` })\n } else {\n this.logger.log({\n tag: this.indexFiles.name,\n msg: `${indexSuffix} - indexed: ${indexedRecords - errorRecords}, errors: ${errorRecords}, deleted: ${recordsToDelete.length}`\n })\n }\n }\n }\n\n private async *parseFiles(dir: string, context: FileIndexContext): AsyncGenerator<FileContent> {\n try {\n for (const entry of await fs.readdir(dir, { withFileTypes: true })) {\n const realPath = path.join(entry.parentPath, entry.name)\n if (entry.isDirectory()) {\n yield* this.parseFiles(realPath, context)\n continue\n }\n const fileContent = await this.analyzeFile(realPath, context)\n if (fileContent !== null) {\n yield fileContent\n }\n }\n } catch (e) {\n this.logger.warn({ tag: this.parseFiles.name, msg: `${context.indexSuffix} - unable to parse: ${dir} - ${e}` })\n }\n }\n\n private async analyzeFile(realPath: string, context: FileIndexContext, isRootFile = false): Promise<FileContent> {\n const extension = path.extname(realPath).slice(1).toLowerCase()\n if (!indexableExtensions.has(extension)) return null\n\n const fileName = isRootFile ? path.basename(context.pathPrefix) : path.basename(realPath)\n\n // ignore temporary documents\n if (fileName.startsWith('~$')) return null\n\n let stats: Stats\n try {\n stats = await fs.stat(realPath)\n } catch (e) {\n this.logger.warn({ tag: this.analyzeFile.name, msg: `unable to stats: ${realPath} - ${e}` })\n return null\n }\n if (stats.size === 0 || stats.size > this.maxDocumentSize) {\n return null\n }\n\n const filePath = isRootFile\n ? path.dirname(context.pathPrefix) || '.'\n : path.join(context.pathPrefix, path.dirname(realPath).replace(context.regexBasePath, '') || '.')\n\n const f = context.db.get(stats.ino)\n if (f && f.size === stats.size && f.path === filePath && f.name === fileName) {\n // no changes, store inode id & skip it\n context.fs.add(stats.ino)\n return null\n }\n\n // store inode id\n context.fs.add(stats.ino)\n\n // store the content with null value to not parse it later\n return {\n id: stats.ino,\n path: filePath,\n name: fileName,\n mime: getMimeType(realPath, false),\n size: stats.size,\n mtime: stats.mtime.getTime(),\n content: await this.parseContent(realPath, extension)\n }\n }\n\n private async parseContent(rPath: string, extension: string): Promise<string> {\n try {\n const content = await docTextify(\n rPath,\n { newlineDelimiter: ' ', minCharsToExtract: 10 },\n {\n extension: extension,\n verified: true\n }\n )\n return content.length ? content : null\n } catch (e) {\n this.logger.warn({ tag: this.parseContent.name, msg: `unable to index: ${rPath} - ${e}` })\n }\n return null\n }\n}\n"],"names":["FilesContentManager","parseAndIndexAllFiles","indexSuffixes","id","type","paths","filesParser","allPaths","indexSuffix","userIndexPrefix","spaceIndexPrefix","shareIndexPrefix","indexFiles","e","logger","error","tag","name","msg","push","filesIndexer","cleanIndexes","indexName","getIndexName","createIndex","context","pathPrefix","regexBasePath","undefined","db","getRecordStats","fs","Set","indexedRecords","errorRecords","p","RegExp","realPath","isDir","rootFileContent","analyzeFile","insertRecord","catch","fileContent","parseFiles","size","dropIndex","log","recordsToDelete","keys","filter","key","has","length","deleteRecords","dir","entry","readdir","withFileTypes","path","join","parentPath","isDirectory","warn","isRootFile","extension","extname","slice","toLowerCase","indexableExtensions","fileName","basename","startsWith","stats","stat","maxDocumentSize","filePath","dirname","replace","f","get","ino","add","mime","getMimeType","mtime","getTime","content","parseContent","rPath","docTextify","newlineDelimiter","minCharsToExtract","verified","Logger"],"mappings":"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"}
|