@sync-in/server 1.3.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 +93 -0
- package/LICENSE +660 -0
- package/README.md +106 -0
- package/environment/environment.dist.min.yaml +11 -0
- package/environment/environment.dist.yaml +95 -0
- package/migrations/0000_init.sql +324 -0
- package/migrations/meta/0000_snapshot.json +2417 -0
- package/migrations/meta/_journal.json +13 -0
- package/package.json +80 -0
- package/server/app.bootstrap.js +103 -0
- package/server/app.bootstrap.js.map +1 -0
- package/server/app.constants.js +58 -0
- package/server/app.constants.js.map +1 -0
- package/server/app.e2e-spec.js +34 -0
- package/server/app.e2e-spec.js.map +1 -0
- package/server/app.module.js +72 -0
- package/server/app.module.js.map +1 -0
- package/server/app.service.js +72 -0
- package/server/app.service.js.map +1 -0
- package/server/app.service.spec.js +94 -0
- package/server/app.service.spec.js.map +1 -0
- package/server/applications/admin/admin.module.js +31 -0
- package/server/applications/admin/admin.module.js.map +1 -0
- package/server/applications/admin/constants/routes.js +19 -0
- package/server/applications/admin/constants/routes.js.map +1 -0
- package/server/applications/applications.config.js +50 -0
- package/server/applications/applications.config.js.map +1 -0
- package/server/applications/applications.constants.js +69 -0
- package/server/applications/applications.constants.js.map +1 -0
- package/server/applications/applications.module.js +59 -0
- package/server/applications/applications.module.js.map +1 -0
- package/server/applications/comments/comments.controller.js +133 -0
- package/server/applications/comments/comments.controller.js.map +1 -0
- package/server/applications/comments/comments.controller.spec.js +63 -0
- package/server/applications/comments/comments.controller.spec.js.map +1 -0
- package/server/applications/comments/comments.module.js +39 -0
- package/server/applications/comments/comments.module.js.map +1 -0
- package/server/applications/comments/constants/routes.js +35 -0
- package/server/applications/comments/constants/routes.js.map +1 -0
- package/server/applications/comments/dto/comment.dto.js +62 -0
- package/server/applications/comments/dto/comment.dto.js.map +1 -0
- package/server/applications/comments/interfaces/comment-recent.interface.js +10 -0
- package/server/applications/comments/interfaces/comment-recent.interface.js.map +1 -0
- package/server/applications/comments/schemas/comment.interface.js +18 -0
- package/server/applications/comments/schemas/comment.interface.js.map +1 -0
- package/server/applications/comments/schemas/comments.schema.js +57 -0
- package/server/applications/comments/schemas/comments.schema.js.map +1 -0
- package/server/applications/comments/services/comments-manager.service.js +137 -0
- package/server/applications/comments/services/comments-manager.service.js.map +1 -0
- package/server/applications/comments/services/comments-manager.service.spec.js +51 -0
- package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -0
- package/server/applications/comments/services/comments-queries.service.js +185 -0
- package/server/applications/comments/services/comments-queries.service.js.map +1 -0
- package/server/applications/files/adapters/files-indexer-mysql.service.js +174 -0
- package/server/applications/files/adapters/files-indexer-mysql.service.js.map +1 -0
- package/server/applications/files/assets/samples/sample.docx +0 -0
- package/server/applications/files/assets/samples/sample.odp +0 -0
- package/server/applications/files/assets/samples/sample.ods +0 -0
- package/server/applications/files/assets/samples/sample.odt +0 -0
- package/server/applications/files/assets/samples/sample.pptx +0 -0
- package/server/applications/files/assets/samples/sample.rtf +194 -0
- package/server/applications/files/assets/samples/sample.xlsx +0 -0
- package/server/applications/files/constants/cache.js +36 -0
- package/server/applications/files/constants/cache.js.map +1 -0
- package/server/applications/files/constants/compress.js +26 -0
- package/server/applications/files/constants/compress.js.map +1 -0
- package/server/applications/files/constants/files.js +103 -0
- package/server/applications/files/constants/files.js.map +1 -0
- package/server/applications/files/constants/indexing.js +49 -0
- package/server/applications/files/constants/indexing.js.map +1 -0
- package/server/applications/files/constants/only-office.js +536 -0
- package/server/applications/files/constants/only-office.js.map +1 -0
- package/server/applications/files/constants/operations.js +29 -0
- package/server/applications/files/constants/operations.js.map +1 -0
- package/server/applications/files/constants/routes.js +100 -0
- package/server/applications/files/constants/routes.js.map +1 -0
- package/server/applications/files/constants/samples.js +35 -0
- package/server/applications/files/constants/samples.js.map +1 -0
- package/server/applications/files/decorators/only-office-environment.decorator.js +32 -0
- package/server/applications/files/decorators/only-office-environment.decorator.js.map +1 -0
- package/server/applications/files/dto/file-operations.dto.js +145 -0
- package/server/applications/files/dto/file-operations.dto.js.map +1 -0
- package/server/applications/files/events/file-task-event.js +23 -0
- package/server/applications/files/events/file-task-event.js.map +1 -0
- package/server/applications/files/files-only-office.controller.js +111 -0
- package/server/applications/files/files-only-office.controller.js.map +1 -0
- package/server/applications/files/files-only-office.controller.spec.js +47 -0
- package/server/applications/files/files-only-office.controller.spec.js.map +1 -0
- package/server/applications/files/files-tasks.controller.js +97 -0
- package/server/applications/files/files-tasks.controller.js.map +1 -0
- package/server/applications/files/files-tasks.controller.spec.js +40 -0
- package/server/applications/files/files-tasks.controller.spec.js.map +1 -0
- package/server/applications/files/files.config.js +96 -0
- package/server/applications/files/files.config.js.map +1 -0
- package/server/applications/files/files.controller.js +319 -0
- package/server/applications/files/files.controller.js.map +1 -0
- package/server/applications/files/files.controller.spec.js +84 -0
- package/server/applications/files/files.controller.spec.js.map +1 -0
- package/server/applications/files/files.module.js +78 -0
- package/server/applications/files/files.module.js.map +1 -0
- package/server/applications/files/guards/files-only-office.guard.js +48 -0
- package/server/applications/files/guards/files-only-office.guard.js.map +1 -0
- package/server/applications/files/guards/files-only-office.guard.spec.js +16 -0
- package/server/applications/files/guards/files-only-office.guard.spec.js.map +1 -0
- package/server/applications/files/guards/files-only-office.strategy.js +60 -0
- package/server/applications/files/guards/files-only-office.strategy.js.map +1 -0
- package/server/applications/files/interfaces/file-db-props.interface.js +10 -0
- package/server/applications/files/interfaces/file-db-props.interface.js.map +1 -0
- package/server/applications/files/interfaces/file-lock.interface.js +10 -0
- package/server/applications/files/interfaces/file-lock.interface.js.map +1 -0
- package/server/applications/files/interfaces/file-parse-index.js +10 -0
- package/server/applications/files/interfaces/file-parse-index.js.map +1 -0
- package/server/applications/files/interfaces/file-props.interface.js +10 -0
- package/server/applications/files/interfaces/file-props.interface.js.map +1 -0
- package/server/applications/files/interfaces/file-recent-location.interface.js +10 -0
- package/server/applications/files/interfaces/file-recent-location.interface.js.map +1 -0
- package/server/applications/files/interfaces/file-space.interface.js +18 -0
- package/server/applications/files/interfaces/file-space.interface.js.map +1 -0
- package/server/applications/files/interfaces/file-tree.interface.js +10 -0
- package/server/applications/files/interfaces/file-tree.interface.js.map +1 -0
- package/server/applications/files/interfaces/only-office-config.interface.js +10 -0
- package/server/applications/files/interfaces/only-office-config.interface.js.map +1 -0
- package/server/applications/files/models/file-error.js +23 -0
- package/server/applications/files/models/file-error.js.map +1 -0
- package/server/applications/files/models/file-lock-error.js +23 -0
- package/server/applications/files/models/file-lock-error.js.map +1 -0
- package/server/applications/files/models/file-task.js +52 -0
- package/server/applications/files/models/file-task.js.map +1 -0
- package/server/applications/files/models/files-indexer.js +18 -0
- package/server/applications/files/models/files-indexer.js.map +1 -0
- package/server/applications/files/schemas/file-content.interface.js +10 -0
- package/server/applications/files/schemas/file-content.interface.js.map +1 -0
- package/server/applications/files/schemas/file-recent.interface.js +18 -0
- package/server/applications/files/schemas/file-recent.interface.js.map +1 -0
- package/server/applications/files/schemas/file.interface.js +18 -0
- package/server/applications/files/schemas/file.interface.js.map +1 -0
- package/server/applications/files/schemas/files-content.schema.js +41 -0
- package/server/applications/files/schemas/files-content.schema.js.map +1 -0
- package/server/applications/files/schemas/files-recents.schema.js +63 -0
- package/server/applications/files/schemas/files-recents.schema.js.map +1 -0
- package/server/applications/files/schemas/files.schema.js +100 -0
- package/server/applications/files/schemas/files.schema.js.map +1 -0
- package/server/applications/files/services/files-content-manager.service.js +204 -0
- package/server/applications/files/services/files-content-manager.service.js.map +1 -0
- package/server/applications/files/services/files-lock-manager.service.js +285 -0
- package/server/applications/files/services/files-lock-manager.service.js.map +1 -0
- package/server/applications/files/services/files-lock-manager.service.spec.js +40 -0
- package/server/applications/files/services/files-lock-manager.service.spec.js.map +1 -0
- package/server/applications/files/services/files-manager.service.js +565 -0
- package/server/applications/files/services/files-manager.service.js.map +1 -0
- package/server/applications/files/services/files-manager.service.spec.js +43 -0
- package/server/applications/files/services/files-manager.service.spec.js.map +1 -0
- package/server/applications/files/services/files-methods.service.js +180 -0
- package/server/applications/files/services/files-methods.service.js.map +1 -0
- package/server/applications/files/services/files-methods.service.spec.js +135 -0
- package/server/applications/files/services/files-methods.service.spec.js.map +1 -0
- package/server/applications/files/services/files-only-office-manager.service.js +395 -0
- package/server/applications/files/services/files-only-office-manager.service.js.map +1 -0
- package/server/applications/files/services/files-only-office-manager.service.spec.js +58 -0
- package/server/applications/files/services/files-only-office-manager.service.spec.js.map +1 -0
- package/server/applications/files/services/files-parser.service.js +189 -0
- package/server/applications/files/services/files-parser.service.js.map +1 -0
- package/server/applications/files/services/files-parser.service.spec.js +31 -0
- package/server/applications/files/services/files-parser.service.spec.js.map +1 -0
- package/server/applications/files/services/files-queries.service.js +314 -0
- package/server/applications/files/services/files-queries.service.js.map +1 -0
- package/server/applications/files/services/files-recents.service.js +97 -0
- package/server/applications/files/services/files-recents.service.js.map +1 -0
- package/server/applications/files/services/files-recents.service.spec.js +41 -0
- package/server/applications/files/services/files-recents.service.spec.js.map +1 -0
- package/server/applications/files/services/files-scheduler.service.js +179 -0
- package/server/applications/files/services/files-scheduler.service.js.map +1 -0
- package/server/applications/files/services/files-search-manager.service.js +146 -0
- package/server/applications/files/services/files-search-manager.service.js.map +1 -0
- package/server/applications/files/services/files-search-manager.service.spec.js +46 -0
- package/server/applications/files/services/files-search-manager.service.spec.js.map +1 -0
- package/server/applications/files/services/files-tasks-manager.service.js +253 -0
- package/server/applications/files/services/files-tasks-manager.service.js.map +1 -0
- package/server/applications/files/services/files-tasks-manager.service.spec.js +46 -0
- package/server/applications/files/services/files-tasks-manager.service.spec.js.map +1 -0
- package/server/applications/files/utils/doc-textify/adapters/excel.js +91 -0
- package/server/applications/files/utils/doc-textify/adapters/excel.js.map +1 -0
- package/server/applications/files/utils/doc-textify/adapters/html.js +33 -0
- package/server/applications/files/utils/doc-textify/adapters/html.js.map +1 -0
- package/server/applications/files/utils/doc-textify/adapters/open-office.js +110 -0
- package/server/applications/files/utils/doc-textify/adapters/open-office.js.map +1 -0
- package/server/applications/files/utils/doc-textify/adapters/pdf.js +67 -0
- package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -0
- package/server/applications/files/utils/doc-textify/adapters/power-point.js +111 -0
- package/server/applications/files/utils/doc-textify/adapters/power-point.js.map +1 -0
- package/server/applications/files/utils/doc-textify/adapters/text.js +27 -0
- package/server/applications/files/utils/doc-textify/adapters/text.js.map +1 -0
- package/server/applications/files/utils/doc-textify/adapters/word.js +101 -0
- package/server/applications/files/utils/doc-textify/adapters/word.js.map +1 -0
- package/server/applications/files/utils/doc-textify/doc-textify.js +75 -0
- package/server/applications/files/utils/doc-textify/doc-textify.js.map +1 -0
- package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js +10 -0
- package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js.map +1 -0
- package/server/applications/files/utils/doc-textify/utils/clean.js +34 -0
- package/server/applications/files/utils/doc-textify/utils/clean.js.map +1 -0
- package/server/applications/files/utils/files-search.js +144 -0
- package/server/applications/files/utils/files-search.js.map +1 -0
- package/server/applications/files/utils/files-tree.js +86 -0
- package/server/applications/files/utils/files-tree.js.map +1 -0
- package/server/applications/files/utils/files.js +386 -0
- package/server/applications/files/utils/files.js.map +1 -0
- package/server/applications/files/utils/send-file.js +70 -0
- package/server/applications/files/utils/send-file.js.map +1 -0
- package/server/applications/files/utils/unzip-file.js +60 -0
- package/server/applications/files/utils/unzip-file.js.map +1 -0
- package/server/applications/files/utils/url-file.js +39 -0
- package/server/applications/files/utils/url-file.js.map +1 -0
- package/server/applications/links/constants/cache.js +28 -0
- package/server/applications/links/constants/cache.js.map +1 -0
- package/server/applications/links/constants/links.js +36 -0
- package/server/applications/links/constants/links.js.map +1 -0
- package/server/applications/links/constants/routes.js +41 -0
- package/server/applications/links/constants/routes.js.map +1 -0
- package/server/applications/links/dto/create-or-update-link.dto.js +95 -0
- package/server/applications/links/dto/create-or-update-link.dto.js.map +1 -0
- package/server/applications/links/interfaces/link-guest.interface.js +10 -0
- package/server/applications/links/interfaces/link-guest.interface.js.map +1 -0
- package/server/applications/links/interfaces/link-space.interface.js +10 -0
- package/server/applications/links/interfaces/link-space.interface.js.map +1 -0
- package/server/applications/links/links.controller.js +107 -0
- package/server/applications/links/links.controller.js.map +1 -0
- package/server/applications/links/links.controller.spec.js +88 -0
- package/server/applications/links/links.controller.spec.js.map +1 -0
- package/server/applications/links/schemas/link.interface.js +18 -0
- package/server/applications/links/schemas/link.interface.js.map +1 -0
- package/server/applications/links/schemas/links.schema.js +56 -0
- package/server/applications/links/schemas/links.schema.js.map +1 -0
- package/server/applications/links/services/links-manager.service.js +158 -0
- package/server/applications/links/services/links-manager.service.js.map +1 -0
- package/server/applications/links/services/links-manager.service.spec.js +84 -0
- package/server/applications/links/services/links-manager.service.spec.js.map +1 -0
- package/server/applications/links/services/links-queries.service.js +181 -0
- package/server/applications/links/services/links-queries.service.js.map +1 -0
- package/server/applications/notifications/constants/notifications.js +62 -0
- package/server/applications/notifications/constants/notifications.js.map +1 -0
- package/server/applications/notifications/constants/routes.js +30 -0
- package/server/applications/notifications/constants/routes.js.map +1 -0
- package/server/applications/notifications/constants/websocket.js +22 -0
- package/server/applications/notifications/constants/websocket.js.map +1 -0
- package/server/applications/notifications/i18n/fr.js +43 -0
- package/server/applications/notifications/i18n/fr.js.map +1 -0
- package/server/applications/notifications/i18n/index.js +37 -0
- package/server/applications/notifications/i18n/index.js.map +1 -0
- package/server/applications/notifications/interfaces/notification-properties.interface.js +10 -0
- package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -0
- package/server/applications/notifications/interfaces/user-mail-notification.js +10 -0
- package/server/applications/notifications/interfaces/user-mail-notification.js.map +1 -0
- package/server/applications/notifications/mails/models.js +133 -0
- package/server/applications/notifications/mails/models.js.map +1 -0
- package/server/applications/notifications/mails/templates.js +51 -0
- package/server/applications/notifications/mails/templates.js.map +1 -0
- package/server/applications/notifications/mails/urls.js +51 -0
- package/server/applications/notifications/mails/urls.js.map +1 -0
- package/server/applications/notifications/notifications.controller.js +110 -0
- package/server/applications/notifications/notifications.controller.js.map +1 -0
- package/server/applications/notifications/notifications.controller.spec.js +33 -0
- package/server/applications/notifications/notifications.controller.spec.js.map +1 -0
- package/server/applications/notifications/notifications.gateway.js +45 -0
- package/server/applications/notifications/notifications.gateway.js.map +1 -0
- package/server/applications/notifications/notifications.module.js +44 -0
- package/server/applications/notifications/notifications.module.js.map +1 -0
- package/server/applications/notifications/schemas/notification.interface.js +18 -0
- package/server/applications/notifications/schemas/notification.interface.js.map +1 -0
- package/server/applications/notifications/schemas/notifications.schema.js +45 -0
- package/server/applications/notifications/schemas/notifications.schema.js.map +1 -0
- package/server/applications/notifications/services/notifications-manager.service.js +143 -0
- package/server/applications/notifications/services/notifications-manager.service.js.map +1 -0
- package/server/applications/notifications/services/notifications-manager.service.spec.js +46 -0
- package/server/applications/notifications/services/notifications-manager.service.spec.js.map +1 -0
- package/server/applications/notifications/services/notifications-queries.service.js +100 -0
- package/server/applications/notifications/services/notifications-queries.service.js.map +1 -0
- package/server/applications/shares/constants/routes.js +46 -0
- package/server/applications/shares/constants/routes.js.map +1 -0
- package/server/applications/shares/constants/shares.js +31 -0
- package/server/applications/shares/constants/shares.js.map +1 -0
- package/server/applications/shares/dto/create-or-update-share.dto.js +232 -0
- package/server/applications/shares/dto/create-or-update-share.dto.js.map +1 -0
- package/server/applications/shares/interfaces/share-child.interface.js +10 -0
- package/server/applications/shares/interfaces/share-child.interface.js.map +1 -0
- package/server/applications/shares/interfaces/share-env.interface.js +10 -0
- package/server/applications/shares/interfaces/share-env.interface.js.map +1 -0
- package/server/applications/shares/interfaces/share-file.interface.js +21 -0
- package/server/applications/shares/interfaces/share-file.interface.js.map +1 -0
- package/server/applications/shares/interfaces/share-link.interface.js +10 -0
- package/server/applications/shares/interfaces/share-link.interface.js.map +1 -0
- package/server/applications/shares/interfaces/share-props.interface.js +22 -0
- package/server/applications/shares/interfaces/share-props.interface.js.map +1 -0
- package/server/applications/shares/models/share-child.model.js +30 -0
- package/server/applications/shares/models/share-child.model.js.map +1 -0
- package/server/applications/shares/schemas/share-members.interface.js +18 -0
- package/server/applications/shares/schemas/share-members.interface.js.map +1 -0
- package/server/applications/shares/schemas/share.interface.js +18 -0
- package/server/applications/shares/schemas/share.interface.js.map +1 -0
- package/server/applications/shares/schemas/shares-members.schema.js +69 -0
- package/server/applications/shares/schemas/shares-members.schema.js.map +1 -0
- package/server/applications/shares/schemas/shares.schema.js +91 -0
- package/server/applications/shares/schemas/shares.schema.js.map +1 -0
- package/server/applications/shares/services/shares-manager.service.js +1010 -0
- package/server/applications/shares/services/shares-manager.service.js.map +1 -0
- package/server/applications/shares/services/shares-manager.service.spec.js +56 -0
- package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -0
- package/server/applications/shares/services/shares-queries.service.js +892 -0
- package/server/applications/shares/services/shares-queries.service.js.map +1 -0
- package/server/applications/shares/shares.controller.js +293 -0
- package/server/applications/shares/shares.controller.js.map +1 -0
- package/server/applications/shares/shares.controller.spec.js +60 -0
- package/server/applications/shares/shares.controller.spec.js.map +1 -0
- package/server/applications/shares/shares.module.js +49 -0
- package/server/applications/shares/shares.module.js.map +1 -0
- package/server/applications/spaces/constants/cache.js +32 -0
- package/server/applications/spaces/constants/cache.js.map +1 -0
- package/server/applications/spaces/constants/routes.js +58 -0
- package/server/applications/spaces/constants/routes.js.map +1 -0
- package/server/applications/spaces/constants/spaces.js +104 -0
- package/server/applications/spaces/constants/spaces.js.map +1 -0
- package/server/applications/spaces/decorators/space-skip-guard.decorator.js +27 -0
- package/server/applications/spaces/decorators/space-skip-guard.decorator.js.map +1 -0
- package/server/applications/spaces/decorators/space-skip-permissions.decorator.js +27 -0
- package/server/applications/spaces/decorators/space-skip-permissions.decorator.js.map +1 -0
- package/server/applications/spaces/decorators/space.decorator.js +20 -0
- package/server/applications/spaces/decorators/space.decorator.js.map +1 -0
- package/server/applications/spaces/dto/create-or-update-space.dto.js +164 -0
- package/server/applications/spaces/dto/create-or-update-space.dto.js.map +1 -0
- package/server/applications/spaces/dto/delete-space.dto.js +33 -0
- package/server/applications/spaces/dto/delete-space.dto.js.map +1 -0
- package/server/applications/spaces/dto/search-space.dto.js +47 -0
- package/server/applications/spaces/dto/search-space.dto.js.map +1 -0
- package/server/applications/spaces/dto/space-roots.dto.js +117 -0
- package/server/applications/spaces/dto/space-roots.dto.js.map +1 -0
- package/server/applications/spaces/guards/space.guard.js +151 -0
- package/server/applications/spaces/guards/space.guard.js.map +1 -0
- package/server/applications/spaces/guards/space.guard.spec.js +457 -0
- package/server/applications/spaces/guards/space.guard.spec.js.map +1 -0
- package/server/applications/spaces/interfaces/space-diff.interface.js +10 -0
- package/server/applications/spaces/interfaces/space-diff.interface.js.map +1 -0
- package/server/applications/spaces/interfaces/space-files.interface.js +10 -0
- package/server/applications/spaces/interfaces/space-files.interface.js.map +1 -0
- package/server/applications/spaces/interfaces/space-quota.interface.js +10 -0
- package/server/applications/spaces/interfaces/space-quota.interface.js.map +1 -0
- package/server/applications/spaces/interfaces/space-request.interface.js +10 -0
- package/server/applications/spaces/interfaces/space-request.interface.js.map +1 -0
- package/server/applications/spaces/interfaces/space-trash.interface.js +10 -0
- package/server/applications/spaces/interfaces/space-trash.interface.js.map +1 -0
- package/server/applications/spaces/models/space-env.model.js +112 -0
- package/server/applications/spaces/models/space-env.model.js.map +1 -0
- package/server/applications/spaces/models/space-props.model.js +60 -0
- package/server/applications/spaces/models/space-props.model.js.map +1 -0
- package/server/applications/spaces/models/space-root-props.model.js +18 -0
- package/server/applications/spaces/models/space-root-props.model.js.map +1 -0
- package/server/applications/spaces/models/space.model.js +64 -0
- package/server/applications/spaces/models/space.model.js.map +1 -0
- package/server/applications/spaces/schemas/space-members.interface.js +18 -0
- package/server/applications/spaces/schemas/space-members.interface.js.map +1 -0
- package/server/applications/spaces/schemas/space-root.interface.js +18 -0
- package/server/applications/spaces/schemas/space-root.interface.js.map +1 -0
- package/server/applications/spaces/schemas/space.interface.js +18 -0
- package/server/applications/spaces/schemas/space.interface.js.map +1 -0
- package/server/applications/spaces/schemas/spaces-members.schema.js +73 -0
- package/server/applications/spaces/schemas/spaces-members.schema.js.map +1 -0
- package/server/applications/spaces/schemas/spaces-roots.schema.js +61 -0
- package/server/applications/spaces/schemas/spaces-roots.schema.js.map +1 -0
- package/server/applications/spaces/schemas/spaces.schema.js +63 -0
- package/server/applications/spaces/schemas/spaces.schema.js.map +1 -0
- package/server/applications/spaces/services/spaces-browser.service.js +308 -0
- package/server/applications/spaces/services/spaces-browser.service.js.map +1 -0
- package/server/applications/spaces/services/spaces-browser.service.spec.js +74 -0
- package/server/applications/spaces/services/spaces-browser.service.spec.js.map +1 -0
- package/server/applications/spaces/services/spaces-manager.service.js +818 -0
- package/server/applications/spaces/services/spaces-manager.service.js.map +1 -0
- package/server/applications/spaces/services/spaces-manager.service.spec.js +269 -0
- package/server/applications/spaces/services/spaces-manager.service.spec.js.map +1 -0
- package/server/applications/spaces/services/spaces-queries.service.js +763 -0
- package/server/applications/spaces/services/spaces-queries.service.js.map +1 -0
- package/server/applications/spaces/services/spaces-scheduler.service.js +88 -0
- package/server/applications/spaces/services/spaces-scheduler.service.js.map +1 -0
- package/server/applications/spaces/spaces.controller.js +386 -0
- package/server/applications/spaces/spaces.controller.js.map +1 -0
- package/server/applications/spaces/spaces.controller.spec.js +65 -0
- package/server/applications/spaces/spaces.controller.spec.js.map +1 -0
- package/server/applications/spaces/spaces.module.js +51 -0
- package/server/applications/spaces/spaces.module.js.map +1 -0
- package/server/applications/spaces/utils/paths.js +241 -0
- package/server/applications/spaces/utils/paths.js.map +1 -0
- package/server/applications/spaces/utils/permissions.js +88 -0
- package/server/applications/spaces/utils/permissions.js.map +1 -0
- package/server/applications/spaces/utils/routes.js +20 -0
- package/server/applications/spaces/utils/routes.js.map +1 -0
- package/server/applications/sync/constants/auth.js +38 -0
- package/server/applications/sync/constants/auth.js.map +1 -0
- package/server/applications/sync/constants/routes.js +47 -0
- package/server/applications/sync/constants/routes.js.map +1 -0
- package/server/applications/sync/constants/store.js +48 -0
- package/server/applications/sync/constants/store.js.map +1 -0
- package/server/applications/sync/constants/sync.js +128 -0
- package/server/applications/sync/constants/sync.js.map +1 -0
- package/server/applications/sync/decorators/sync-context.decorator.js +27 -0
- package/server/applications/sync/decorators/sync-context.decorator.js.map +1 -0
- package/server/applications/sync/decorators/sync-environment.decorator.js +25 -0
- package/server/applications/sync/decorators/sync-environment.decorator.js.map +1 -0
- package/server/applications/sync/dtos/sync-client-auth.dto.js +47 -0
- package/server/applications/sync/dtos/sync-client-auth.dto.js.map +1 -0
- package/server/applications/sync/dtos/sync-client-registration.dto.js +51 -0
- package/server/applications/sync/dtos/sync-client-registration.dto.js.map +1 -0
- package/server/applications/sync/dtos/sync-operations.dto.js +104 -0
- package/server/applications/sync/dtos/sync-operations.dto.js.map +1 -0
- package/server/applications/sync/dtos/sync-path.dto.js +130 -0
- package/server/applications/sync/dtos/sync-path.dto.js.map +1 -0
- package/server/applications/sync/dtos/sync-upload.dto.js +49 -0
- package/server/applications/sync/dtos/sync-upload.dto.js.map +1 -0
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js +55 -0
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js.map +1 -0
- package/server/applications/sync/interfaces/store-manifest.interface.js +10 -0
- package/server/applications/sync/interfaces/store-manifest.interface.js.map +1 -0
- package/server/applications/sync/interfaces/sync-client-auth.interface.js +30 -0
- package/server/applications/sync/interfaces/sync-client-auth.interface.js.map +1 -0
- package/server/applications/sync/interfaces/sync-client-paths.interface.js +10 -0
- package/server/applications/sync/interfaces/sync-client-paths.interface.js.map +1 -0
- package/server/applications/sync/interfaces/sync-client.interface.js +10 -0
- package/server/applications/sync/interfaces/sync-client.interface.js.map +1 -0
- package/server/applications/sync/interfaces/sync-diff.interface.js +11 -0
- package/server/applications/sync/interfaces/sync-diff.interface.js.map +1 -0
- package/server/applications/sync/interfaces/sync-path.interface.js +10 -0
- package/server/applications/sync/interfaces/sync-path.interface.js.map +1 -0
- package/server/applications/sync/schemas/sync-client.interface.js +18 -0
- package/server/applications/sync/schemas/sync-client.interface.js.map +1 -0
- package/server/applications/sync/schemas/sync-clients.schema.js +57 -0
- package/server/applications/sync/schemas/sync-clients.schema.js.map +1 -0
- package/server/applications/sync/schemas/sync-path.interface.js +18 -0
- package/server/applications/sync/schemas/sync-path.interface.js.map +1 -0
- package/server/applications/sync/schemas/sync-paths.schema.js +76 -0
- package/server/applications/sync/schemas/sync-paths.schema.js.map +1 -0
- package/server/applications/sync/services/sync-clients-manager.service.js +218 -0
- package/server/applications/sync/services/sync-clients-manager.service.js.map +1 -0
- package/server/applications/sync/services/sync-clients-manager.service.spec.js +56 -0
- package/server/applications/sync/services/sync-clients-manager.service.spec.js.map +1 -0
- package/server/applications/sync/services/sync-manager.service.js +299 -0
- package/server/applications/sync/services/sync-manager.service.js.map +1 -0
- package/server/applications/sync/services/sync-manager.service.spec.js +41 -0
- package/server/applications/sync/services/sync-manager.service.spec.js.map +1 -0
- package/server/applications/sync/services/sync-paths-manager.service.js +290 -0
- package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -0
- package/server/applications/sync/services/sync-paths-manager.service.spec.js +56 -0
- package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -0
- package/server/applications/sync/services/sync-queries.service.js +238 -0
- package/server/applications/sync/services/sync-queries.service.js.map +1 -0
- package/server/applications/sync/sync.config.js +36 -0
- package/server/applications/sync/sync.config.js.map +1 -0
- package/server/applications/sync/sync.controller.js +407 -0
- package/server/applications/sync/sync.controller.js.map +1 -0
- package/server/applications/sync/sync.controller.spec.js +53 -0
- package/server/applications/sync/sync.controller.spec.js.map +1 -0
- package/server/applications/sync/sync.module.js +45 -0
- package/server/applications/sync/sync.module.js.map +1 -0
- package/server/applications/sync/utils/functions.js +26 -0
- package/server/applications/sync/utils/functions.js.map +1 -0
- package/server/applications/sync/utils/normalizedMap.js +52 -0
- package/server/applications/sync/utils/normalizedMap.js.map +1 -0
- package/server/applications/sync/utils/routes.js +27 -0
- package/server/applications/sync/utils/routes.js.map +1 -0
- package/server/applications/users/admin-users.controller.js +350 -0
- package/server/applications/users/admin-users.controller.js.map +1 -0
- package/server/applications/users/admin-users.controller.spec.js +60 -0
- package/server/applications/users/admin-users.controller.spec.js.map +1 -0
- package/server/applications/users/constants/group.js +35 -0
- package/server/applications/users/constants/group.js.map +1 -0
- package/server/applications/users/constants/member.js +39 -0
- package/server/applications/users/constants/member.js.map +1 -0
- package/server/applications/users/constants/routes.js +134 -0
- package/server/applications/users/constants/routes.js.map +1 -0
- package/server/applications/users/constants/user.js +118 -0
- package/server/applications/users/constants/user.js.map +1 -0
- package/server/applications/users/constants/websocket.js +33 -0
- package/server/applications/users/constants/websocket.js.map +1 -0
- package/server/applications/users/decorators/permissions.decorator.js +18 -0
- package/server/applications/users/decorators/permissions.decorator.js.map +1 -0
- package/server/applications/users/decorators/roles.decorator.js +18 -0
- package/server/applications/users/decorators/roles.decorator.js.map +1 -0
- package/server/applications/users/decorators/user.decorator.js +20 -0
- package/server/applications/users/decorators/user.decorator.js.map +1 -0
- package/server/applications/users/dto/create-or-update-group.dto.js +66 -0
- package/server/applications/users/dto/create-or-update-group.dto.js.map +1 -0
- package/server/applications/users/dto/create-or-update-user.dto.js +167 -0
- package/server/applications/users/dto/create-or-update-user.dto.js.map +1 -0
- package/server/applications/users/dto/delete-user.dto.js +54 -0
- package/server/applications/users/dto/delete-user.dto.js.map +1 -0
- package/server/applications/users/dto/search-members.dto.js +79 -0
- package/server/applications/users/dto/search-members.dto.js.map +1 -0
- package/server/applications/users/dto/user-password.dto.js +35 -0
- package/server/applications/users/dto/user-password.dto.js.map +1 -0
- package/server/applications/users/dto/user-properties.dto.js +64 -0
- package/server/applications/users/dto/user-properties.dto.js.map +1 -0
- package/server/applications/users/guards/permissions.guard.js +71 -0
- package/server/applications/users/guards/permissions.guard.js.map +1 -0
- package/server/applications/users/guards/permissions.guard.spec.js +103 -0
- package/server/applications/users/guards/permissions.guard.spec.js.map +1 -0
- package/server/applications/users/guards/roles.guard.js +62 -0
- package/server/applications/users/guards/roles.guard.js.map +1 -0
- package/server/applications/users/guards/roles.guard.spec.js +90 -0
- package/server/applications/users/guards/roles.guard.spec.js.map +1 -0
- package/server/applications/users/interfaces/admin-group.interface.js +10 -0
- package/server/applications/users/interfaces/admin-group.interface.js.map +1 -0
- package/server/applications/users/interfaces/admin-user.interface.js +10 -0
- package/server/applications/users/interfaces/admin-user.interface.js.map +1 -0
- package/server/applications/users/interfaces/group-browse.interface.js +10 -0
- package/server/applications/users/interfaces/group-browse.interface.js.map +1 -0
- package/server/applications/users/interfaces/group-member.js +10 -0
- package/server/applications/users/interfaces/group-member.js.map +1 -0
- package/server/applications/users/interfaces/guest-user.interface.js +10 -0
- package/server/applications/users/interfaces/guest-user.interface.js.map +1 -0
- package/server/applications/users/interfaces/member.interface.js +10 -0
- package/server/applications/users/interfaces/member.interface.js.map +1 -0
- package/server/applications/users/interfaces/owner.interface.js +10 -0
- package/server/applications/users/interfaces/owner.interface.js.map +1 -0
- package/server/applications/users/interfaces/websocket.interface.js +10 -0
- package/server/applications/users/interfaces/websocket.interface.js.map +1 -0
- package/server/applications/users/models/user.model.js +226 -0
- package/server/applications/users/models/user.model.js.map +1 -0
- package/server/applications/users/schemas/group.interface.js +18 -0
- package/server/applications/users/schemas/group.interface.js.map +1 -0
- package/server/applications/users/schemas/groups.schema.js +56 -0
- package/server/applications/users/schemas/groups.schema.js.map +1 -0
- package/server/applications/users/schemas/user-group.interface.js +18 -0
- package/server/applications/users/schemas/user-group.interface.js.map +1 -0
- package/server/applications/users/schemas/user.interface.js +18 -0
- package/server/applications/users/schemas/user.interface.js.map +1 -0
- package/server/applications/users/schemas/users-groups.schema.js +49 -0
- package/server/applications/users/schemas/users-groups.schema.js.map +1 -0
- package/server/applications/users/schemas/users-guests.schema.js +46 -0
- package/server/applications/users/schemas/users-guests.schema.js.map +1 -0
- package/server/applications/users/schemas/users.schema.js +94 -0
- package/server/applications/users/schemas/users.schema.js.map +1 -0
- package/server/applications/users/services/admin-users-manager.service.js +385 -0
- package/server/applications/users/services/admin-users-manager.service.js.map +1 -0
- package/server/applications/users/services/admin-users-manager.service.spec.js +50 -0
- package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -0
- package/server/applications/users/services/admin-users-queries.service.js +315 -0
- package/server/applications/users/services/admin-users-queries.service.js.map +1 -0
- package/server/applications/users/services/users-manager.service.js +424 -0
- package/server/applications/users/services/users-manager.service.js.map +1 -0
- package/server/applications/users/services/users-manager.service.spec.js +151 -0
- package/server/applications/users/services/users-manager.service.spec.js.map +1 -0
- package/server/applications/users/services/users-queries.service.js +570 -0
- package/server/applications/users/services/users-queries.service.js.map +1 -0
- package/server/applications/users/users.controller.js +371 -0
- package/server/applications/users/users.controller.js.map +1 -0
- package/server/applications/users/users.controller.spec.js +86 -0
- package/server/applications/users/users.controller.spec.js.map +1 -0
- package/server/applications/users/users.e2e-spec.js +97 -0
- package/server/applications/users/users.e2e-spec.js.map +1 -0
- package/server/applications/users/users.gateway.js +182 -0
- package/server/applications/users/users.gateway.js.map +1 -0
- package/server/applications/users/users.gateway.spec.js +36 -0
- package/server/applications/users/users.gateway.spec.js.map +1 -0
- package/server/applications/users/users.module.js +57 -0
- package/server/applications/users/users.module.js.map +1 -0
- package/server/applications/users/utils/test.js +34 -0
- package/server/applications/users/utils/test.js.map +1 -0
- package/server/applications/webdav/constants/routes.js +73 -0
- package/server/applications/webdav/constants/routes.js.map +1 -0
- package/server/applications/webdav/constants/webdav.js +168 -0
- package/server/applications/webdav/constants/webdav.js.map +1 -0
- package/server/applications/webdav/decorators/if-header.decorator.js +27 -0
- package/server/applications/webdav/decorators/if-header.decorator.js.map +1 -0
- package/server/applications/webdav/decorators/webdav-context.decorator.js +36 -0
- package/server/applications/webdav/decorators/webdav-context.decorator.js.map +1 -0
- package/server/applications/webdav/filters/webdav.filter.js +45 -0
- package/server/applications/webdav/filters/webdav.filter.js.map +1 -0
- package/server/applications/webdav/guards/webdav-protocol.guard.js +262 -0
- package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -0
- package/server/applications/webdav/interfaces/if-header.interface.js +10 -0
- package/server/applications/webdav/interfaces/if-header.interface.js.map +1 -0
- package/server/applications/webdav/interfaces/webdav.interface.js +10 -0
- package/server/applications/webdav/interfaces/webdav.interface.js.map +1 -0
- package/server/applications/webdav/models/webdav-file.model.js +74 -0
- package/server/applications/webdav/models/webdav-file.model.js.map +1 -0
- package/server/applications/webdav/services/webdav-methods.service.js +520 -0
- package/server/applications/webdav/services/webdav-methods.service.js.map +1 -0
- package/server/applications/webdav/services/webdav-methods.service.spec.js +41 -0
- package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -0
- package/server/applications/webdav/services/webdav-spaces.service.js +169 -0
- package/server/applications/webdav/services/webdav-spaces.service.js.map +1 -0
- package/server/applications/webdav/services/webdav-spaces.service.spec.js +36 -0
- package/server/applications/webdav/services/webdav-spaces.service.spec.js.map +1 -0
- package/server/applications/webdav/utils/if-header.js +89 -0
- package/server/applications/webdav/utils/if-header.js.map +1 -0
- package/server/applications/webdav/utils/routes.js +30 -0
- package/server/applications/webdav/utils/routes.js.map +1 -0
- package/server/applications/webdav/utils/webdav.js +167 -0
- package/server/applications/webdav/utils/webdav.js.map +1 -0
- package/server/applications/webdav/utils/xml.js +72 -0
- package/server/applications/webdav/utils/xml.js.map +1 -0
- package/server/applications/webdav/webdav.controller.js +173 -0
- package/server/applications/webdav/webdav.controller.js.map +1 -0
- package/server/applications/webdav/webdav.controller.spec.js +41 -0
- package/server/applications/webdav/webdav.controller.spec.js.map +1 -0
- package/server/applications/webdav/webdav.e2e-spec.js +69 -0
- package/server/applications/webdav/webdav.e2e-spec.js.map +1 -0
- package/server/applications/webdav/webdav.module.js +41 -0
- package/server/applications/webdav/webdav.module.js.map +1 -0
- package/server/authentication/auth.config.js +223 -0
- package/server/authentication/auth.config.js.map +1 -0
- package/server/authentication/auth.controller.js +126 -0
- package/server/authentication/auth.controller.js.map +1 -0
- package/server/authentication/auth.controller.spec.js +132 -0
- package/server/authentication/auth.controller.spec.js.map +1 -0
- package/server/authentication/auth.e2e-spec.js +340 -0
- package/server/authentication/auth.e2e-spec.js.map +1 -0
- package/server/authentication/auth.module.js +84 -0
- package/server/authentication/auth.module.js.map +1 -0
- package/server/authentication/constants/auth.js +54 -0
- package/server/authentication/constants/auth.js.map +1 -0
- package/server/authentication/constants/routes.js +55 -0
- package/server/authentication/constants/routes.js.map +1 -0
- package/server/authentication/decorators/auth-token-optional.decorator.js +26 -0
- package/server/authentication/decorators/auth-token-optional.decorator.js.map +1 -0
- package/server/authentication/decorators/auth-token-skip.decorator.js +27 -0
- package/server/authentication/decorators/auth-token-skip.decorator.js.map +1 -0
- package/server/authentication/dto/login-response.dto.js +23 -0
- package/server/authentication/dto/login-response.dto.js.map +1 -0
- package/server/authentication/dto/token-response.dto.js +44 -0
- package/server/authentication/dto/token-response.dto.js.map +1 -0
- package/server/authentication/guards/auth-anonymous.guard.js +37 -0
- package/server/authentication/guards/auth-anonymous.guard.js.map +1 -0
- package/server/authentication/guards/auth-anonymous.guard.spec.js +65 -0
- package/server/authentication/guards/auth-anonymous.guard.spec.js.map +1 -0
- package/server/authentication/guards/auth-anonymous.strategy.js +44 -0
- package/server/authentication/guards/auth-anonymous.strategy.js.map +1 -0
- package/server/authentication/guards/auth-basic.guard.js +54 -0
- package/server/authentication/guards/auth-basic.guard.js.map +1 -0
- package/server/authentication/guards/auth-basic.guard.spec.js +148 -0
- package/server/authentication/guards/auth-basic.guard.spec.js.map +1 -0
- package/server/authentication/guards/auth-basic.strategy.js +79 -0
- package/server/authentication/guards/auth-basic.strategy.js.map +1 -0
- package/server/authentication/guards/auth-digest.guard.js +24 -0
- package/server/authentication/guards/auth-digest.guard.js.map +1 -0
- package/server/authentication/guards/auth-digest.strategy.js +28 -0
- package/server/authentication/guards/auth-digest.strategy.js.map +1 -0
- package/server/authentication/guards/auth-local.guard.js +40 -0
- package/server/authentication/guards/auth-local.guard.js.map +1 -0
- package/server/authentication/guards/auth-local.guard.spec.js +87 -0
- package/server/authentication/guards/auth-local.guard.spec.js.map +1 -0
- package/server/authentication/guards/auth-local.strategy.js +59 -0
- package/server/authentication/guards/auth-local.strategy.js.map +1 -0
- package/server/authentication/guards/auth-token-access.guard.js +66 -0
- package/server/authentication/guards/auth-token-access.guard.js.map +1 -0
- package/server/authentication/guards/auth-token-access.guard.spec.js +262 -0
- package/server/authentication/guards/auth-token-access.guard.spec.js.map +1 -0
- package/server/authentication/guards/auth-token-access.strategy.js +68 -0
- package/server/authentication/guards/auth-token-access.strategy.js.map +1 -0
- package/server/authentication/guards/auth-token-refresh.guard.js +40 -0
- package/server/authentication/guards/auth-token-refresh.guard.js.map +1 -0
- package/server/authentication/guards/auth-token-refresh.guard.spec.js +189 -0
- package/server/authentication/guards/auth-token-refresh.guard.spec.js.map +1 -0
- package/server/authentication/guards/auth-token-refresh.strategy.js +72 -0
- package/server/authentication/guards/auth-token-refresh.strategy.js.map +1 -0
- package/server/authentication/interfaces/auth-request.interface.js +10 -0
- package/server/authentication/interfaces/auth-request.interface.js.map +1 -0
- package/server/authentication/interfaces/jwt-payload.interface.js +28 -0
- package/server/authentication/interfaces/jwt-payload.interface.js.map +1 -0
- package/server/authentication/interfaces/token.interface.js +23 -0
- package/server/authentication/interfaces/token.interface.js.map +1 -0
- package/server/authentication/models/auth-method.js +18 -0
- package/server/authentication/models/auth-method.js.map +1 -0
- package/server/authentication/services/auth-manager.service.js +174 -0
- package/server/authentication/services/auth-manager.service.js.map +1 -0
- package/server/authentication/services/auth-manager.service.spec.js +41 -0
- package/server/authentication/services/auth-manager.service.spec.js.map +1 -0
- package/server/authentication/services/auth-methods/auth-method-database.service.js +55 -0
- package/server/authentication/services/auth-methods/auth-method-database.service.js.map +1 -0
- package/server/authentication/services/auth-methods/auth-method-database.service.spec.js +88 -0
- package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +1 -0
- package/server/authentication/services/auth-methods/auth-method-ldap.service.js +185 -0
- package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +1 -0
- package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +36 -0
- package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +1 -0
- package/server/common/constants.js +23 -0
- package/server/common/constants.js.map +1 -0
- package/server/common/decorators.js +35 -0
- package/server/common/decorators.js.map +1 -0
- package/server/common/fonts/avatar.ttf +0 -0
- package/server/common/functions.js +292 -0
- package/server/common/functions.js.map +1 -0
- package/server/common/image.js +113 -0
- package/server/common/image.js.map +1 -0
- package/server/common/interfaces.js +10 -0
- package/server/common/interfaces.js.map +1 -0
- package/server/common/shared.js +105 -0
- package/server/common/shared.js.map +1 -0
- package/server/configuration/config.constants.js +65 -0
- package/server/configuration/config.constants.js.map +1 -0
- package/server/configuration/config.environment.js +57 -0
- package/server/configuration/config.environment.js.map +1 -0
- package/server/configuration/config.loader.js +195 -0
- package/server/configuration/config.loader.js.map +1 -0
- package/server/configuration/config.logger.js +69 -0
- package/server/configuration/config.logger.js.map +1 -0
- package/server/configuration/config.validation.js +175 -0
- package/server/configuration/config.validation.js.map +1 -0
- package/server/infrastructure/cache/adapters/mysql-cache.adapter.js +169 -0
- package/server/infrastructure/cache/adapters/mysql-cache.adapter.js.map +1 -0
- package/server/infrastructure/cache/adapters/redis-cache.adapter.js +129 -0
- package/server/infrastructure/cache/adapters/redis-cache.adapter.js.map +1 -0
- package/server/infrastructure/cache/cache.config.js +53 -0
- package/server/infrastructure/cache/cache.config.js.map +1 -0
- package/server/infrastructure/cache/cache.decorator.js +53 -0
- package/server/infrastructure/cache/cache.decorator.js.map +1 -0
- package/server/infrastructure/cache/cache.e2e-spec.js +111 -0
- package/server/infrastructure/cache/cache.e2e-spec.js.map +1 -0
- package/server/infrastructure/cache/cache.module.js +58 -0
- package/server/infrastructure/cache/cache.module.js.map +1 -0
- package/server/infrastructure/cache/schemas/mysql-cache.interface.js +18 -0
- package/server/infrastructure/cache/schemas/mysql-cache.interface.js.map +1 -0
- package/server/infrastructure/cache/schemas/mysql-cache.schema.js +26 -0
- package/server/infrastructure/cache/schemas/mysql-cache.schema.js.map +1 -0
- package/server/infrastructure/cache/services/cache.service.js +18 -0
- package/server/infrastructure/cache/services/cache.service.js.map +1 -0
- package/server/infrastructure/context/context.module.js +40 -0
- package/server/infrastructure/context/context.module.js.map +1 -0
- package/server/infrastructure/context/interceptors/context.interceptor.js +45 -0
- package/server/infrastructure/context/interceptors/context.interceptor.js.map +1 -0
- package/server/infrastructure/context/interfaces/context-store.interface.js +10 -0
- package/server/infrastructure/context/interfaces/context-store.interface.js.map +1 -0
- package/server/infrastructure/context/services/context-manager.service.js +43 -0
- package/server/infrastructure/context/services/context-manager.service.js.map +1 -0
- package/server/infrastructure/database/configuration.js +29 -0
- package/server/infrastructure/database/configuration.js.map +1 -0
- package/server/infrastructure/database/constants.js +41 -0
- package/server/infrastructure/database/constants.js.map +1 -0
- package/server/infrastructure/database/database.config.js +44 -0
- package/server/infrastructure/database/database.config.js.map +1 -0
- package/server/infrastructure/database/database.logger.js +22 -0
- package/server/infrastructure/database/database.logger.js.map +1 -0
- package/server/infrastructure/database/database.module.js +94 -0
- package/server/infrastructure/database/database.module.js.map +1 -0
- package/server/infrastructure/database/interfaces/database.interface.js +10 -0
- package/server/infrastructure/database/interfaces/database.interface.js.map +1 -0
- package/server/infrastructure/database/schema.js +40 -0
- package/server/infrastructure/database/schema.js.map +1 -0
- package/server/infrastructure/database/scripts/create-user.js +97 -0
- package/server/infrastructure/database/scripts/create-user.js.map +1 -0
- package/server/infrastructure/database/scripts/db.js +68 -0
- package/server/infrastructure/database/scripts/db.js.map +1 -0
- package/server/infrastructure/database/scripts/seed/main.js +18 -0
- package/server/infrastructure/database/scripts/seed/main.js.map +1 -0
- package/server/infrastructure/database/scripts/seed/usersgroups.js +92 -0
- package/server/infrastructure/database/scripts/seed/usersgroups.js.map +1 -0
- package/server/infrastructure/database/utils.js +117 -0
- package/server/infrastructure/database/utils.js.map +1 -0
- package/server/infrastructure/mailer/interfaces/mail.interface.js +10 -0
- package/server/infrastructure/mailer/interfaces/mail.interface.js.map +1 -0
- package/server/infrastructure/mailer/mailer.config.js +94 -0
- package/server/infrastructure/mailer/mailer.config.js.map +1 -0
- package/server/infrastructure/mailer/mailer.module.js +37 -0
- package/server/infrastructure/mailer/mailer.module.js.map +1 -0
- package/server/infrastructure/mailer/mailer.service.js +93 -0
- package/server/infrastructure/mailer/mailer.service.js.map +1 -0
- package/server/infrastructure/scheduler/scheduler.constants.js +30 -0
- package/server/infrastructure/scheduler/scheduler.constants.js.map +1 -0
- package/server/infrastructure/scheduler/scheduler.module.js +52 -0
- package/server/infrastructure/scheduler/scheduler.module.js.map +1 -0
- package/server/infrastructure/websocket/adapters/cluster.adapter.js +40 -0
- package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -0
- package/server/infrastructure/websocket/adapters/redis.adapter.js +61 -0
- package/server/infrastructure/websocket/adapters/redis.adapter.js.map +1 -0
- package/server/infrastructure/websocket/adapters/web-socket.adapter.js +127 -0
- package/server/infrastructure/websocket/adapters/web-socket.adapter.js.map +1 -0
- package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js +20 -0
- package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js.map +1 -0
- package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js +10 -0
- package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js.map +1 -0
- package/server/infrastructure/websocket/utils.js +23 -0
- package/server/infrastructure/websocket/utils.js.map +1 -0
- package/server/infrastructure/websocket/web-socket.config.js +54 -0
- package/server/infrastructure/websocket/web-socket.config.js.map +1 -0
- package/server/main.js +27 -0
- package/server/main.js.map +1 -0
- package/static/3rdpartylicenses.txt +1522 -0
- package/static/assets/avatar.svg +7 -0
- package/static/assets/codemirror/mode/apl/apl.js +174 -0
- package/static/assets/codemirror/mode/asciiarmor/asciiarmor.js +74 -0
- package/static/assets/codemirror/mode/asn.1/asn.1.js +204 -0
- package/static/assets/codemirror/mode/asterisk/asterisk.js +220 -0
- package/static/assets/codemirror/mode/brainfuck/brainfuck.js +85 -0
- package/static/assets/codemirror/mode/clike/clike.js +942 -0
- package/static/assets/codemirror/mode/clojure/clojure.js +293 -0
- package/static/assets/codemirror/mode/cmake/cmake.js +97 -0
- package/static/assets/codemirror/mode/cobol/cobol.js +255 -0
- package/static/assets/codemirror/mode/coffeescript/coffeescript.js +359 -0
- package/static/assets/codemirror/mode/commonlisp/commonlisp.js +125 -0
- package/static/assets/codemirror/mode/crystal/crystal.js +433 -0
- package/static/assets/codemirror/mode/css/css.js +862 -0
- package/static/assets/codemirror/mode/cypher/cypher.js +152 -0
- package/static/assets/codemirror/mode/d/d.js +223 -0
- package/static/assets/codemirror/mode/dart/dart.js +168 -0
- package/static/assets/codemirror/mode/diff/diff.js +47 -0
- package/static/assets/codemirror/mode/django/django.js +356 -0
- package/static/assets/codemirror/mode/dockerfile/dockerfile.js +211 -0
- package/static/assets/codemirror/mode/dtd/dtd.js +142 -0
- package/static/assets/codemirror/mode/dylan/dylan.js +352 -0
- package/static/assets/codemirror/mode/ebnf/ebnf.js +195 -0
- package/static/assets/codemirror/mode/ecl/ecl.js +206 -0
- package/static/assets/codemirror/mode/eiffel/eiffel.js +160 -0
- package/static/assets/codemirror/mode/elm/elm.js +245 -0
- package/static/assets/codemirror/mode/erlang/erlang.js +619 -0
- package/static/assets/codemirror/mode/factor/factor.js +85 -0
- package/static/assets/codemirror/mode/fcl/fcl.js +173 -0
- package/static/assets/codemirror/mode/forth/forth.js +180 -0
- package/static/assets/codemirror/mode/fortran/fortran.js +188 -0
- package/static/assets/codemirror/mode/gas/gas.js +353 -0
- package/static/assets/codemirror/mode/gfm/gfm.js +129 -0
- package/static/assets/codemirror/mode/gherkin/gherkin.js +194 -0
- package/static/assets/codemirror/mode/go/go.js +187 -0
- package/static/assets/codemirror/mode/groovy/groovy.js +245 -0
- package/static/assets/codemirror/mode/haml/haml.js +161 -0
- package/static/assets/codemirror/mode/handlebars/handlebars.js +70 -0
- package/static/assets/codemirror/mode/haskell/haskell.js +268 -0
- package/static/assets/codemirror/mode/haskell-literate/haskell-literate.js +43 -0
- package/static/assets/codemirror/mode/haxe/haxe.js +515 -0
- package/static/assets/codemirror/mode/htmlembedded/htmlembedded.js +37 -0
- package/static/assets/codemirror/mode/htmlmixed/htmlmixed.js +153 -0
- package/static/assets/codemirror/mode/http/http.js +113 -0
- package/static/assets/codemirror/mode/idl/idl.js +290 -0
- package/static/assets/codemirror/mode/javascript/javascript.js +960 -0
- package/static/assets/codemirror/mode/jinja2/jinja2.js +193 -0
- package/static/assets/codemirror/mode/jsx/jsx.js +149 -0
- package/static/assets/codemirror/mode/julia/julia.js +390 -0
- package/static/assets/codemirror/mode/livescript/livescript.js +280 -0
- package/static/assets/codemirror/mode/lua/lua.js +160 -0
- package/static/assets/codemirror/mode/markdown/markdown.js +886 -0
- package/static/assets/codemirror/mode/mathematica/mathematica.js +176 -0
- package/static/assets/codemirror/mode/mbox/mbox.js +129 -0
- package/static/assets/codemirror/mode/meta.js +221 -0
- package/static/assets/codemirror/mode/mirc/mirc.js +193 -0
- package/static/assets/codemirror/mode/mllike/mllike.js +359 -0
- package/static/assets/codemirror/mode/modelica/modelica.js +245 -0
- package/static/assets/codemirror/mode/mscgen/mscgen.js +175 -0
- package/static/assets/codemirror/mode/mumps/mumps.js +148 -0
- package/static/assets/codemirror/mode/nginx/nginx.js +178 -0
- package/static/assets/codemirror/mode/nsis/nsis.js +95 -0
- package/static/assets/codemirror/mode/ntriples/ntriples.js +195 -0
- package/static/assets/codemirror/mode/octave/octave.js +139 -0
- package/static/assets/codemirror/mode/oz/oz.js +252 -0
- package/static/assets/codemirror/mode/pascal/pascal.js +136 -0
- package/static/assets/codemirror/mode/pegjs/pegjs.js +111 -0
- package/static/assets/codemirror/mode/perl/perl.js +836 -0
- package/static/assets/codemirror/mode/php/php.js +234 -0
- package/static/assets/codemirror/mode/pig/pig.js +178 -0
- package/static/assets/codemirror/mode/powershell/powershell.js +398 -0
- package/static/assets/codemirror/mode/properties/properties.js +78 -0
- package/static/assets/codemirror/mode/protobuf/protobuf.js +72 -0
- package/static/assets/codemirror/mode/pug/pug.js +591 -0
- package/static/assets/codemirror/mode/puppet/puppet.js +220 -0
- package/static/assets/codemirror/mode/python/python.js +402 -0
- package/static/assets/codemirror/mode/q/q.js +139 -0
- package/static/assets/codemirror/mode/r/r.js +190 -0
- package/static/assets/codemirror/mode/rpm/changes/index.html +66 -0
- package/static/assets/codemirror/mode/rpm/rpm.js +109 -0
- package/static/assets/codemirror/mode/rst/rst.js +557 -0
- package/static/assets/codemirror/mode/ruby/ruby.js +303 -0
- package/static/assets/codemirror/mode/rust/rust.js +72 -0
- package/static/assets/codemirror/mode/sas/sas.js +303 -0
- package/static/assets/codemirror/mode/sass/sass.js +459 -0
- package/static/assets/codemirror/mode/scheme/scheme.js +284 -0
- package/static/assets/codemirror/mode/shell/shell.js +168 -0
- package/static/assets/codemirror/mode/sieve/sieve.js +193 -0
- package/static/assets/codemirror/mode/slim/slim.js +575 -0
- package/static/assets/codemirror/mode/smalltalk/smalltalk.js +168 -0
- package/static/assets/codemirror/mode/smarty/smarty.js +225 -0
- package/static/assets/codemirror/mode/solr/solr.js +104 -0
- package/static/assets/codemirror/mode/soy/soy.js +665 -0
- package/static/assets/codemirror/mode/sparql/sparql.js +184 -0
- package/static/assets/codemirror/mode/spreadsheet/spreadsheet.js +112 -0
- package/static/assets/codemirror/mode/sql/sql.js +529 -0
- package/static/assets/codemirror/mode/stex/stex.js +264 -0
- package/static/assets/codemirror/mode/stylus/stylus.js +775 -0
- package/static/assets/codemirror/mode/swift/swift.js +221 -0
- package/static/assets/codemirror/mode/tcl/tcl.js +140 -0
- package/static/assets/codemirror/mode/textile/textile.js +469 -0
- package/static/assets/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
- package/static/assets/codemirror/mode/tiddlywiki/tiddlywiki.js +308 -0
- package/static/assets/codemirror/mode/tiki/tiki.css +26 -0
- package/static/assets/codemirror/mode/tiki/tiki.js +312 -0
- package/static/assets/codemirror/mode/toml/toml.js +88 -0
- package/static/assets/codemirror/mode/tornado/tornado.js +68 -0
- package/static/assets/codemirror/mode/troff/troff.js +84 -0
- package/static/assets/codemirror/mode/ttcn/ttcn.js +283 -0
- package/static/assets/codemirror/mode/ttcn-cfg/ttcn-cfg.js +214 -0
- package/static/assets/codemirror/mode/turtle/turtle.js +162 -0
- package/static/assets/codemirror/mode/twig/twig.js +141 -0
- package/static/assets/codemirror/mode/vb/vb.js +275 -0
- package/static/assets/codemirror/mode/vbscript/vbscript.js +350 -0
- package/static/assets/codemirror/mode/velocity/velocity.js +202 -0
- package/static/assets/codemirror/mode/verilog/verilog.js +781 -0
- package/static/assets/codemirror/mode/vhdl/vhdl.js +189 -0
- package/static/assets/codemirror/mode/vue/vue.js +77 -0
- package/static/assets/codemirror/mode/wast/wast.js +132 -0
- package/static/assets/codemirror/mode/webidl/webidl.js +195 -0
- package/static/assets/codemirror/mode/xml/xml.js +417 -0
- package/static/assets/codemirror/mode/xquery/xquery.js +448 -0
- package/static/assets/codemirror/mode/yacas/yacas.js +204 -0
- package/static/assets/codemirror/mode/yaml/yaml.js +120 -0
- package/static/assets/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +72 -0
- package/static/assets/codemirror/mode/z80/z80.js +116 -0
- package/static/assets/favicon.svg +25 -0
- package/static/assets/logo-dark.svg +32 -0
- package/static/assets/logo.svg +32 -0
- package/static/assets/mimes/7zip.svg +14 -0
- package/static/assets/mimes/application-7zip.svg +14 -0
- package/static/assets/mimes/application-atom+xml.svg +15 -0
- package/static/assets/mimes/application-atom.svg +15 -0
- package/static/assets/mimes/application-certificate.svg +28 -0
- package/static/assets/mimes/application-epub+zip.svg +10 -0
- package/static/assets/mimes/application-gzip.svg +16 -0
- package/static/assets/mimes/application-javascript.svg +6 -0
- package/static/assets/mimes/application-json.svg +11 -0
- package/static/assets/mimes/application-mathml+xml.svg +188 -0
- package/static/assets/mimes/application-mp4.svg +18 -0
- package/static/assets/mimes/application-msexcel.svg +1 -0
- package/static/assets/mimes/application-msword-template.svg +1 -0
- package/static/assets/mimes/application-msword.svg +1 -0
- package/static/assets/mimes/application-octet-stream.svg +273 -0
- package/static/assets/mimes/application-pdf.svg +13 -0
- package/static/assets/mimes/application-pgp-encrypted.svg +16 -0
- package/static/assets/mimes/application-pgp-keys.svg +16 -0
- package/static/assets/mimes/application-pgp-signature.svg +16 -0
- package/static/assets/mimes/application-pgp.svg +16 -0
- package/static/assets/mimes/application-postscript.svg +57 -0
- package/static/assets/mimes/application-powerpoint.svg +1 -0
- package/static/assets/mimes/application-rdf+xml.svg +14 -0
- package/static/assets/mimes/application-rss+xml.svg +15 -0
- package/static/assets/mimes/application-rtf.svg +14 -0
- package/static/assets/mimes/application-script-blank.svg +15 -0
- package/static/assets/mimes/application-sql.svg +1 -0
- package/static/assets/mimes/application-text.svg +14 -0
- package/static/assets/mimes/application-vnd.android.package-archive.svg +16 -0
- package/static/assets/mimes/application-vnd.apple.keynote.svg +16 -0
- package/static/assets/mimes/application-vnd.apple.numbers.svg +16 -0
- package/static/assets/mimes/application-vnd.apple.pages.svg +16 -0
- package/static/assets/mimes/application-vnd.ms-excel.sheet.binary.macroenabled.12.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-excel.sheet.macroenabled.12.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-excel.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-excel.template.macroenabled.12.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-powerpoint.presentation.macroenabled.12.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-powerpoint.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-powerpoint.template.macroenabled.12.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-word.document.macroenabled.12.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-word.svg +1 -0
- package/static/assets/mimes/application-vnd.ms-word.template.macroenabled.12.svg +1 -0
- package/static/assets/mimes/application-vnd.mspowerpoint.svg +1 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.chart.svg +1 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.database.svg +155 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.formula-template.svg +263 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.formula.svg +188 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.graphics-template.svg +530 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.graphics.svg +89 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.presentation-template.svg +197 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.presentation.svg +122 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.spreadsheet-template.svg +452 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.spreadsheet.svg +266 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.text-master.svg +92 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.text-template.svg +90 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.text-web.svg +18 -0
- package/static/assets/mimes/application-vnd.oasis.opendocument.text.svg +92 -0
- package/static/assets/mimes/application-vnd.openofficeorg.extension.svg +59 -0
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.presentationml.presentation.svg +1 -0
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.presentationml.slideshow.svg +1 -0
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.svg +1 -0
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.spreadsheetml.template.svg +1 -0
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.wordprocessingml.document.svg +1 -0
- package/static/assets/mimes/application-vnd.openxmlformats-officedocument.wordprocessingml.template.svg +1 -0
- package/static/assets/mimes/application-vnd.rn-realmedia.svg +18 -0
- package/static/assets/mimes/application-vnd.sun.xml.calc.svg +1 -0
- package/static/assets/mimes/application-vnd.sun.xml.writer-global.svg +1 -0
- package/static/assets/mimes/application-vnd.sun.xml.writer-template.svg +1 -0
- package/static/assets/mimes/application-vnd.sun.xml.writer.svg +1 -0
- package/static/assets/mimes/application-vnd.sun.xml.writer.template.svg +14 -0
- package/static/assets/mimes/application-vnd.visio.svg +26 -0
- package/static/assets/mimes/application-wps-office.doc.svg +1 -0
- package/static/assets/mimes/application-wps-office.docx.svg +1 -0
- package/static/assets/mimes/application-wps-office.ppt.svg +1 -0
- package/static/assets/mimes/application-wps-office.pptx.svg +1 -0
- package/static/assets/mimes/application-wps-office.xls.svg +1 -0
- package/static/assets/mimes/application-wps-office.xlsx.svg +1 -0
- package/static/assets/mimes/application-x-7z-compressed.svg +14 -0
- package/static/assets/mimes/application-x-7zip.svg +14 -0
- package/static/assets/mimes/application-x-ace.svg +14 -0
- package/static/assets/mimes/application-x-addon.svg +59 -0
- package/static/assets/mimes/application-x-apple-diskimage.svg +1 -0
- package/static/assets/mimes/application-x-ar.svg +16 -0
- package/static/assets/mimes/application-x-arc.svg +14 -0
- package/static/assets/mimes/application-x-archive.svg +16 -0
- package/static/assets/mimes/application-x-arj.svg +14 -0
- package/static/assets/mimes/application-x-audacity-project.svg +24 -0
- package/static/assets/mimes/application-x-bittorrent.svg +53 -0
- package/static/assets/mimes/application-x-blender.svg +353 -0
- package/static/assets/mimes/application-x-bzdvi.svg +14 -0
- package/static/assets/mimes/application-x-bzip-compressed-tar.svg +14 -0
- package/static/assets/mimes/application-x-bzip.svg +16 -0
- package/static/assets/mimes/application-x-cd-image.svg +292 -0
- package/static/assets/mimes/application-x-cda.svg +358 -0
- package/static/assets/mimes/application-x-class-file.svg +37 -0
- package/static/assets/mimes/application-x-compress-tar.svg +16 -0
- package/static/assets/mimes/application-x-compress.svg +16 -0
- package/static/assets/mimes/application-x-compressed-tar.svg +14 -0
- package/static/assets/mimes/application-x-core.svg +20 -0
- package/static/assets/mimes/application-x-cpio.svg +16 -0
- package/static/assets/mimes/application-x-deb.svg +14 -0
- package/static/assets/mimes/application-x-designer.svg +48 -0
- package/static/assets/mimes/application-x-egon.svg +12 -0
- package/static/assets/mimes/application-x-executable.svg +40 -0
- package/static/assets/mimes/application-x-extension-html.svg +18 -0
- package/static/assets/mimes/application-x-font-afm.svg +14 -0
- package/static/assets/mimes/application-x-font-snf.svg +14 -0
- package/static/assets/mimes/application-x-font-speedo.svg +14 -0
- package/static/assets/mimes/application-x-font-type1.svg +14 -0
- package/static/assets/mimes/application-x-gettext-translation.svg +14 -0
- package/static/assets/mimes/application-x-glade.svg +48 -0
- package/static/assets/mimes/application-x-gnome-theme-package.svg +109 -0
- package/static/assets/mimes/application-x-gzdvi.svg +16 -0
- package/static/assets/mimes/application-x-gzip.svg +16 -0
- package/static/assets/mimes/application-x-httpd-php.svg +18 -0
- package/static/assets/mimes/application-x-iso9660-image.svg +292 -0
- package/static/assets/mimes/application-x-java-archive.svg +16 -0
- package/static/assets/mimes/application-x-java.svg +37 -0
- package/static/assets/mimes/application-x-jokosher.svg +24 -0
- package/static/assets/mimes/application-x-kcachegrind.svg +273 -0
- package/static/assets/mimes/application-x-kcsrc.svg +109 -0
- package/static/assets/mimes/application-x-keepass.svg +2 -0
- package/static/assets/mimes/application-x-keepass2.svg +2 -0
- package/static/assets/mimes/application-x-kgetlist.svg +53 -0
- package/static/assets/mimes/application-x-lha.svg +14 -0
- package/static/assets/mimes/application-x-lzma-compressed-tar.svg +16 -0
- package/static/assets/mimes/application-x-lzop.svg +16 -0
- package/static/assets/mimes/application-x-m4.svg +14 -0
- package/static/assets/mimes/application-x-matroska.svg +18 -0
- package/static/assets/mimes/application-x-mplayer2.svg +18 -0
- package/static/assets/mimes/application-x-ms-application.svg +306 -0
- package/static/assets/mimes/application-x-ms-dos-executable.svg +306 -0
- package/static/assets/mimes/application-x-msdos-program.svg +306 -0
- package/static/assets/mimes/application-x-msdownload.svg +306 -0
- package/static/assets/mimes/application-x-msi.svg +306 -0
- package/static/assets/mimes/application-x-mswinurl.svg +18 -0
- package/static/assets/mimes/application-x-mswrite.svg +1 -0
- package/static/assets/mimes/application-x-nzb.svg +15 -0
- package/static/assets/mimes/application-x-object.svg +273 -0
- package/static/assets/mimes/application-x-ole-storage.svg +273 -0
- package/static/assets/mimes/application-x-pak.svg +16 -0
- package/static/assets/mimes/application-x-perl.svg +15 -0
- package/static/assets/mimes/application-x-php.svg +18 -0
- package/static/assets/mimes/application-x-plasma.svg +20 -0
- package/static/assets/mimes/application-x-python-bytecode.svg +16 -0
- package/static/assets/mimes/application-x-rar.svg +14 -0
- package/static/assets/mimes/application-x-rpm.svg +14 -0
- package/static/assets/mimes/application-x-ruby.svg +22 -0
- package/static/assets/mimes/application-x-sh.svg +17 -0
- package/static/assets/mimes/application-x-shared-library-la.svg +62 -0
- package/static/assets/mimes/application-x-sharedlib.svg +62 -0
- package/static/assets/mimes/application-x-shellscript.svg +17 -0
- package/static/assets/mimes/application-x-shockwave-flash.svg +18 -0
- package/static/assets/mimes/application-x-srt.svg +210 -0
- package/static/assets/mimes/application-x-subrip.svg +210 -0
- package/static/assets/mimes/application-x-tar.svg +16 -0
- package/static/assets/mimes/application-x-tarz.svg +14 -0
- package/static/assets/mimes/application-x-tex.svg +79 -0
- package/static/assets/mimes/application-x-theme.svg +109 -0
- package/static/assets/mimes/application-x-trash.svg +14 -0
- package/static/assets/mimes/application-x-tzo.svg +14 -0
- package/static/assets/mimes/application-x-wine-extension-pdd.svg +14 -0
- package/static/assets/mimes/application-x-zip.svg +14 -0
- package/static/assets/mimes/application-x-zoo.svg +14 -0
- package/static/assets/mimes/application-xhtml+xml.svg +18 -0
- package/static/assets/mimes/application-xhtml.svg +18 -0
- package/static/assets/mimes/application-xml.svg +18 -0
- package/static/assets/mimes/application-xsd.svg +18 -0
- package/static/assets/mimes/application-xslt+xml.svg +18 -0
- package/static/assets/mimes/application-zip.svg +14 -0
- package/static/assets/mimes/applications-java.svg +14 -0
- package/static/assets/mimes/archive.svg +16 -0
- package/static/assets/mimes/ascii.svg +14 -0
- package/static/assets/mimes/audio-ac3.svg +24 -0
- package/static/assets/mimes/audio-flac.svg +24 -0
- package/static/assets/mimes/audio-mpeg.svg +24 -0
- package/static/assets/mimes/audio-vn.rn-realmedia.svg +18 -0
- package/static/assets/mimes/audio-vnd.rn-realvideo.svg +18 -0
- package/static/assets/mimes/audio-x-adpcm.svg +24 -0
- package/static/assets/mimes/audio-x-aiff.svg +24 -0
- package/static/assets/mimes/audio-x-flac+ogg.svg +24 -0
- package/static/assets/mimes/audio-x-flac.svg +24 -0
- package/static/assets/mimes/audio-x-generic.svg +24 -0
- package/static/assets/mimes/audio-x-it.svg +24 -0
- package/static/assets/mimes/audio-x-monkey.svg +24 -0
- package/static/assets/mimes/audio-x-mpegurl.svg +24 -0
- package/static/assets/mimes/audio-x-wav.svg +24 -0
- package/static/assets/mimes/audio-x-xi.svg +24 -0
- package/static/assets/mimes/audio-x-xm.svg +24 -0
- package/static/assets/mimes/binary.svg +40 -0
- package/static/assets/mimes/deb.svg +14 -0
- package/static/assets/mimes/directory.svg +9 -0
- package/static/assets/mimes/directory_disabled.svg +9 -0
- package/static/assets/mimes/directory_error.svg +9 -0
- package/static/assets/mimes/directory_share.svg +9 -0
- package/static/assets/mimes/directory_sync.svg +9 -0
- package/static/assets/mimes/divx.svg +18 -0
- package/static/assets/mimes/document.svg +14 -0
- package/static/assets/mimes/emblem-package.svg +16 -0
- package/static/assets/mimes/eps.svg +24 -0
- package/static/assets/mimes/exec.svg +40 -0
- package/static/assets/mimes/extension.svg +59 -0
- package/static/assets/mimes/file.svg +12 -0
- package/static/assets/mimes/folder-tar.svg +16 -0
- package/static/assets/mimes/folder_tar.svg +16 -0
- package/static/assets/mimes/font-otf.svg +14 -0
- package/static/assets/mimes/font-x-generic.svg +14 -0
- package/static/assets/mimes/font.svg +14 -0
- package/static/assets/mimes/font_bitmap.svg +14 -0
- package/static/assets/mimes/font_truetype.svg +14 -0
- package/static/assets/mimes/font_type1.svg +14 -0
- package/static/assets/mimes/fonts-package.svg +16 -0
- package/static/assets/mimes/gedit-plugin.svg +59 -0
- package/static/assets/mimes/gnome-exe-thumbnailer-generic-x.svg +306 -0
- package/static/assets/mimes/gnome-exe-thumbnailer-generic.svg +306 -0
- package/static/assets/mimes/gnome-exe-thumbnailer-template.svg +306 -0
- package/static/assets/mimes/gnome-fs-executable.svg +40 -0
- package/static/assets/mimes/gnome-mime-application-atom+xml.svg +15 -0
- package/static/assets/mimes/gnome-mime-application-msexcel.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-msword.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-ogg.svg +24 -0
- package/static/assets/mimes/gnome-mime-application-pdf.svg +13 -0
- package/static/assets/mimes/gnome-mime-application-postscript.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-powerpoint.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-rss+xml.svg +15 -0
- package/static/assets/mimes/gnome-mime-application-rtf.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-vnd.ms-excel.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-vnd.ms-powerpoint.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-vnd.ms-word.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-vnd.mspowerpoint.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-vnd.oasis.opendocument.formula.svg +188 -0
- package/static/assets/mimes/gnome-mime-application-vnd.oasis.opendocument.text-web.svg +18 -0
- package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.presentationml.presentation.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.presentationml.slideshow.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.wordprocessingml.document.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia-secure.svg +18 -0
- package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia-vbr.svg +18 -0
- package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia.svg +18 -0
- package/static/assets/mimes/gnome-mime-application-wps-office.doc.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-wps-office.docx.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-wps-office.ppt.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-wps-office.pptx.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-wps-office.xls.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-wps-office.xlsx.svg +1 -0
- package/static/assets/mimes/gnome-mime-application-x-7z-compressed.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-7zip.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-archive.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-arj.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-bittorrent.svg +53 -0
- package/static/assets/mimes/gnome-mime-application-x-bzip-compressed-tar.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-bzip-compressed.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-bzip.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-class-file.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-compress.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-compressed-tar.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-cpio-compressed.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-cpio.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-deb.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-designer.svg +48 -0
- package/static/assets/mimes/gnome-mime-application-x-executable.svg +40 -0
- package/static/assets/mimes/gnome-mime-application-x-font-afm.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-font-bdf.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-font-linux-psf.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-font-pcf.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-font-sunos-news.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-font-ttf.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-glade.svg +48 -0
- package/static/assets/mimes/gnome-mime-application-x-gnome-app-info.svg +109 -0
- package/static/assets/mimes/gnome-mime-application-x-gnome-theme-package.svg +109 -0
- package/static/assets/mimes/gnome-mime-application-x-gzip.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-gzpostscript.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-jar.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-java.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-killustrator.svg +12 -0
- package/static/assets/mimes/gnome-mime-application-x-lha.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-lhz.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-lzma-compressed-tar.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-lzma.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-ms-dos-executable.svg +306 -0
- package/static/assets/mimes/gnome-mime-application-x-perl.svg +15 -0
- package/static/assets/mimes/gnome-mime-application-x-php.svg +18 -0
- package/static/assets/mimes/gnome-mime-application-x-python-bytecode.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-rar.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-rpm.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-x-ruby.svg +22 -0
- package/static/assets/mimes/gnome-mime-application-x-shellscript.svg +17 -0
- package/static/assets/mimes/gnome-mime-application-x-shockwave-flash.svg +18 -0
- package/static/assets/mimes/gnome-mime-application-x-stuffit.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-tar.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-tarz.svg +16 -0
- package/static/assets/mimes/gnome-mime-application-x-tex.svg +79 -0
- package/static/assets/mimes/gnome-mime-application-x-theme.svg +109 -0
- package/static/assets/mimes/gnome-mime-application-x-zip.svg +14 -0
- package/static/assets/mimes/gnome-mime-application-xhtml+xml.svg +18 -0
- package/static/assets/mimes/gnome-mime-application-xml.svg +18 -0
- package/static/assets/mimes/gnome-mime-application-zip.svg +14 -0
- package/static/assets/mimes/gnome-mime-application.svg +40 -0
- package/static/assets/mimes/gnome-mime-audio.svg +24 -0
- package/static/assets/mimes/gnome-mime-image-vnd.adobe.photoshop.svg +14 -0
- package/static/assets/mimes/gnome-mime-image-x-cmu-raster.svg +12 -0
- package/static/assets/mimes/gnome-mime-image-x-killustrator.svg +12 -0
- package/static/assets/mimes/gnome-mime-image-x-psd.svg +14 -0
- package/static/assets/mimes/gnome-mime-image-x-xpixmap.svg +12 -0
- package/static/assets/mimes/gnome-mime-image.svg +12 -0
- package/static/assets/mimes/gnome-mime-text-html.svg +18 -0
- package/static/assets/mimes/gnome-mime-text-install.svg +20 -0
- package/static/assets/mimes/gnome-mime-text-plain.svg +14 -0
- package/static/assets/mimes/gnome-mime-text-vnd.wap.wml.svg +18 -0
- package/static/assets/mimes/gnome-mime-text-x-changelog.svg +208 -0
- package/static/assets/mimes/gnome-mime-text-x-copying.svg +17 -0
- package/static/assets/mimes/gnome-mime-text-x-csh.svg +17 -0
- package/static/assets/mimes/gnome-mime-text-x-gtkrc.svg +109 -0
- package/static/assets/mimes/gnome-mime-text-x-install.svg +17 -0
- package/static/assets/mimes/gnome-mime-text-x-java-source.svg +14 -0
- package/static/assets/mimes/gnome-mime-text-x-java.svg +14 -0
- package/static/assets/mimes/gnome-mime-text-x-makefile.svg +176 -0
- package/static/assets/mimes/gnome-mime-text-x-opml+xml.svg +15 -0
- package/static/assets/mimes/gnome-mime-text-x-opml.svg +15 -0
- package/static/assets/mimes/gnome-mime-text-x-python.svg +16 -0
- package/static/assets/mimes/gnome-mime-text-x-readme.svg +15 -0
- package/static/assets/mimes/gnome-mime-text-x-sh.svg +17 -0
- package/static/assets/mimes/gnome-mime-text-x-zsh.svg +17 -0
- package/static/assets/mimes/gnome-mime-text.svg +14 -0
- package/static/assets/mimes/gnome-mime-video-x-ms-asf.svg +18 -0
- package/static/assets/mimes/gnome-mime-video-x-ms-wmv.svg +18 -0
- package/static/assets/mimes/gnome-mime-video.svg +18 -0
- package/static/assets/mimes/gnome-mime-x-font-afm.svg +14 -0
- package/static/assets/mimes/gnome-mime-x-install.svg +20 -0
- package/static/assets/mimes/gnome-package.svg +16 -0
- package/static/assets/mimes/html.svg +18 -0
- package/static/assets/mimes/image-gif.svg +12 -0
- package/static/assets/mimes/image-jpeg.svg +12 -0
- package/static/assets/mimes/image-png.svg +12 -0
- package/static/assets/mimes/image-svg+xml-compressed.svg +12 -0
- package/static/assets/mimes/image-svg+xml.svg +12 -0
- package/static/assets/mimes/image-svg.svg +12 -0
- package/static/assets/mimes/image-vnd.adobe.photoshop.svg +14 -0
- package/static/assets/mimes/image-vnd.microsoft.icon.svg +12 -0
- package/static/assets/mimes/image-x-eps.svg +24 -0
- package/static/assets/mimes/image-x-generic.svg +12 -0
- package/static/assets/mimes/image-x-psd.svg +14 -0
- package/static/assets/mimes/image-x-psdimage-x-psd.svg +14 -0
- package/static/assets/mimes/image-x-xcf.svg +21 -0
- package/static/assets/mimes/image-x-xfig.svg +12 -0
- package/static/assets/mimes/image.svg +12 -0
- package/static/assets/mimes/internet-feed.svg +15 -0
- package/static/assets/mimes/libpeas-plugin.svg +59 -0
- package/static/assets/mimes/libreoffice-database.svg +155 -0
- package/static/assets/mimes/libreoffice-extension.svg +59 -0
- package/static/assets/mimes/libreoffice-extensionn.svg +59 -0
- package/static/assets/mimes/libreoffice-formula.svg +188 -0
- package/static/assets/mimes/libreoffice-oasis-formula.svg +188 -0
- package/static/assets/mimes/libreoffice34-extension.svg +59 -0
- package/static/assets/mimes/media-audio.svg +24 -0
- package/static/assets/mimes/media-video.svg +18 -0
- package/static/assets/mimes/mime-ascii.svg +14 -0
- package/static/assets/mimes/mime_ascii.svg +14 -0
- package/static/assets/mimes/misc.svg +14 -0
- package/static/assets/mimes/multipart-encrypted.svg +273 -0
- package/static/assets/mimes/music.svg +24 -0
- package/static/assets/mimes/none.svg +110 -0
- package/static/assets/mimes/old-file.svg +22 -0
- package/static/assets/mimes/openofficeorg3-extension.svg +59 -0
- package/static/assets/mimes/package-x-generic.svg +16 -0
- package/static/assets/mimes/package.svg +16 -0
- package/static/assets/mimes/package_editors.svg +14 -0
- package/static/assets/mimes/packages-gdebi.svg +14 -0
- package/static/assets/mimes/pdf.svg +13 -0
- package/static/assets/mimes/preferences-certificate.svg +28 -0
- package/static/assets/mimes/preferences-plugin.svg +59 -0
- package/static/assets/mimes/rar.svg +14 -0
- package/static/assets/mimes/raw.svg +12 -0
- package/static/assets/mimes/rpm.svg +14 -0
- package/static/assets/mimes/scii.svg +14 -0
- package/static/assets/mimes/shellscript.svg +17 -0
- package/static/assets/mimes/sound.svg +24 -0
- package/static/assets/mimes/stock_certificate.svg +28 -0
- package/static/assets/mimes/stock_new-formula.svg +188 -0
- package/static/assets/mimes/stock_new-html.svg +18 -0
- package/static/assets/mimes/stock_script.svg +17 -0
- package/static/assets/mimes/stock_scripts.svg +17 -0
- package/static/assets/mimes/tar.svg +16 -0
- package/static/assets/mimes/text-css.svg +18 -0
- package/static/assets/mimes/text-enriched.svg +14 -0
- package/static/assets/mimes/text-html.svg +18 -0
- package/static/assets/mimes/text-htmlh.svg +18 -0
- package/static/assets/mimes/text-javascript.svg +6 -0
- package/static/assets/mimes/text-markdown.svg +26 -0
- package/static/assets/mimes/text-mht.svg +18 -0
- package/static/assets/mimes/text-plain.svg +14 -0
- package/static/assets/mimes/text-richtext.svg +14 -0
- package/static/assets/mimes/text-typescript.svg +1 -0
- package/static/assets/mimes/text-x-bak.svg +14 -0
- package/static/assets/mimes/text-x-bibtex.svg +79 -0
- package/static/assets/mimes/text-x-changelog.svg +208 -0
- package/static/assets/mimes/text-x-copying.svg +17 -0
- package/static/assets/mimes/text-x-generic.svg +14 -0
- package/static/assets/mimes/text-x-gtkrc.svg +109 -0
- package/static/assets/mimes/text-x-install.svg +20 -0
- package/static/assets/mimes/text-x-java-source.svg +14 -0
- package/static/assets/mimes/text-x-java.svg +14 -0
- package/static/assets/mimes/text-x-log.svg +1135 -0
- package/static/assets/mimes/text-x-lua.svg +14 -0
- package/static/assets/mimes/text-x-makefile.svg +176 -0
- package/static/assets/mimes/text-x-microdvd.svg +210 -0
- package/static/assets/mimes/text-x-nfo.svg +14 -0
- package/static/assets/mimes/text-x-opml+xml.svg +15 -0
- package/static/assets/mimes/text-x-opml.svg +15 -0
- package/static/assets/mimes/text-x-patch.svg +19 -0
- package/static/assets/mimes/text-x-perl.svg +15 -0
- package/static/assets/mimes/text-x-python.svg +16 -0
- package/static/assets/mimes/text-x-readme.svg +15 -0
- package/static/assets/mimes/text-x-ruby.svg +22 -0
- package/static/assets/mimes/text-x-script.svg +17 -0
- package/static/assets/mimes/text-x-tex.svg +79 -0
- package/static/assets/mimes/text-x-vala.svg +14 -0
- package/static/assets/mimes/text-x.svg +14 -0
- package/static/assets/mimes/text-xmcd.svg +358 -0
- package/static/assets/mimes/text-xml.svg +18 -0
- package/static/assets/mimes/text-yaml.svg +1 -0
- package/static/assets/mimes/text.svg +14 -0
- package/static/assets/mimes/text2.svg +14 -0
- package/static/assets/mimes/tgz.svg +16 -0
- package/static/assets/mimes/txt.svg +14 -0
- package/static/assets/mimes/txt2.svg +14 -0
- package/static/assets/mimes/unknown.svg +110 -0
- package/static/assets/mimes/uri-mms.svg +18 -0
- package/static/assets/mimes/uri-mmst.svg +18 -0
- package/static/assets/mimes/uri-mmsu.svg +18 -0
- package/static/assets/mimes/uri-pnm.svg +18 -0
- package/static/assets/mimes/uri-rtspt.svg +18 -0
- package/static/assets/mimes/uri-rtspu.svg +18 -0
- package/static/assets/mimes/video-quicktime.svg +18 -0
- package/static/assets/mimes/video-vivo.svg +18 -0
- package/static/assets/mimes/video-wavelet.svg +18 -0
- package/static/assets/mimes/video-webm.svg +18 -0
- package/static/assets/mimes/video-x-anim.svg +18 -0
- package/static/assets/mimes/video-x-flic.svg +18 -0
- package/static/assets/mimes/video-x-generic.svg +18 -0
- package/static/assets/mimes/video-x-google-vlc-plugin.svg +18 -0
- package/static/assets/mimes/video-x-javafx.svg +18 -0
- package/static/assets/mimes/video-x-matroska.svg +18 -0
- package/static/assets/mimes/video-x-mng.svg +18 -0
- package/static/assets/mimes/video-x-ms-asf-plugin.svg +18 -0
- package/static/assets/mimes/video-x-ms-asf.svg +18 -0
- package/static/assets/mimes/video-x-ms-wmp.svg +18 -0
- package/static/assets/mimes/video-x-ms-wmv.svg +18 -0
- package/static/assets/mimes/video-x-nsv.svg +18 -0
- package/static/assets/mimes/video-x-sgi-movie.svg +18 -0
- package/static/assets/mimes/video-x-theora+ogg.svg +18 -0
- package/static/assets/mimes/video-x-wmv.svg +18 -0
- package/static/assets/mimes/video.svg +18 -0
- package/static/assets/mimes/www.svg +18 -0
- package/static/assets/mimes/x-kde-nsplugin-generated.svg +59 -0
- package/static/assets/mimes/zip.svg +14 -0
- package/static/assets/pdfjs/LICENSE +177 -0
- package/static/assets/pdfjs/build/pdf.mjs +23371 -0
- package/static/assets/pdfjs/build/pdf.mjs.map +1 -0
- package/static/assets/pdfjs/build/pdf.sandbox.mjs +218 -0
- package/static/assets/pdfjs/build/pdf.sandbox.mjs.map +1 -0
- package/static/assets/pdfjs/build/pdf.worker.mjs +58148 -0
- package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -0
- package/static/assets/pdfjs/version +1 -0
- package/static/assets/pdfjs/web/cmaps/78-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/78-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/78-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/78-RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/78-RKSJ-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/78-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Add-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Add-RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Add-RKSJ-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Add-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-GB1-0.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-GB1-1.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-GB1-2.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-GB1-3.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-GB1-4.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-GB1-5.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/B5pc-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/B5pc-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/CNS-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/CNS-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/CNS1-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/CNS1-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/CNS2-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/CNS2-V.bcmap +3 -0
- package/static/assets/pdfjs/web/cmaps/ETHK-B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/ETHK-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/ETen-B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/ETen-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/ETenms-B5-H.bcmap +3 -0
- package/static/assets/pdfjs/web/cmaps/ETenms-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Ext-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Ext-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GB-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GB-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GB-H.bcmap +4 -0
- package/static/assets/pdfjs/web/cmaps/GB-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBK-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBK-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBK2K-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBK2K-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBKp-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBKp-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBT-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBT-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBT-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBT-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBpc-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/GBpc-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKdla-B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKdla-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKdlb-B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKdlb-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKgccs-B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKgccs-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKm314-B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKm314-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKm471-B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKm471-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKscs-B5-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/HKscs-B5-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Hankaku.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Hiragana.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSC-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSC-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSC-Johab-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSC-Johab-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSCms-UHC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSCms-UHC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Katakana.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/LICENSE +36 -0
- package/static/assets/pdfjs/web/cmaps/NWP-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/NWP-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/RKSJ-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/RKSJ-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/Roman.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/V.bcmap +0 -0
- package/static/assets/pdfjs/web/cmaps/WP-Symbol.bcmap +0 -0
- package/static/assets/pdfjs/web/compressed.tracemonkey-pldi-09.pdf +0 -0
- package/static/assets/pdfjs/web/debugger.css +114 -0
- package/static/assets/pdfjs/web/debugger.mjs +627 -0
- package/static/assets/pdfjs/web/iccs/CGATS001Compat-v2-micro.icc +0 -0
- package/static/assets/pdfjs/web/iccs/LICENSE +116 -0
- package/static/assets/pdfjs/web/images/altText_add.svg +3 -0
- package/static/assets/pdfjs/web/images/altText_disclaimer.svg +3 -0
- package/static/assets/pdfjs/web/images/altText_done.svg +3 -0
- package/static/assets/pdfjs/web/images/altText_spinner.svg +30 -0
- package/static/assets/pdfjs/web/images/altText_warning.svg +3 -0
- package/static/assets/pdfjs/web/images/annotation-check.svg +11 -0
- package/static/assets/pdfjs/web/images/annotation-comment.svg +16 -0
- package/static/assets/pdfjs/web/images/annotation-help.svg +26 -0
- package/static/assets/pdfjs/web/images/annotation-insert.svg +10 -0
- package/static/assets/pdfjs/web/images/annotation-key.svg +11 -0
- package/static/assets/pdfjs/web/images/annotation-newparagraph.svg +11 -0
- package/static/assets/pdfjs/web/images/annotation-noicon.svg +7 -0
- package/static/assets/pdfjs/web/images/annotation-note.svg +42 -0
- package/static/assets/pdfjs/web/images/annotation-paperclip.svg +6 -0
- package/static/assets/pdfjs/web/images/annotation-paragraph.svg +16 -0
- package/static/assets/pdfjs/web/images/annotation-pushpin.svg +7 -0
- package/static/assets/pdfjs/web/images/comment-actionsButton.svg +3 -0
- package/static/assets/pdfjs/web/images/comment-closeButton.svg +3 -0
- package/static/assets/pdfjs/web/images/comment-editButton.svg +3 -0
- package/static/assets/pdfjs/web/images/cursor-editorFreeHighlight.svg +6 -0
- package/static/assets/pdfjs/web/images/cursor-editorFreeText.svg +3 -0
- package/static/assets/pdfjs/web/images/cursor-editorInk.svg +4 -0
- package/static/assets/pdfjs/web/images/cursor-editorTextHighlight.svg +8 -0
- package/static/assets/pdfjs/web/images/editor-toolbar-delete.svg +5 -0
- package/static/assets/pdfjs/web/images/editor-toolbar-edit.svg +3 -0
- package/static/assets/pdfjs/web/images/findbarButton-next.svg +3 -0
- package/static/assets/pdfjs/web/images/findbarButton-previous.svg +3 -0
- package/static/assets/pdfjs/web/images/gv-toolbarButton-download.svg +3 -0
- package/static/assets/pdfjs/web/images/loading-icon.gif +0 -0
- package/static/assets/pdfjs/web/images/loading.svg +1 -0
- package/static/assets/pdfjs/web/images/messageBar_closingButton.svg +3 -0
- package/static/assets/pdfjs/web/images/messageBar_info.svg +3 -0
- package/static/assets/pdfjs/web/images/messageBar_warning.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-documentProperties.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-firstPage.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-handTool.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-lastPage.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-rotateCw.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-scrollPage.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-selectTool.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-spreadEven.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-spreadNone.svg +3 -0
- package/static/assets/pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-bookmark.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-currentOutlineItem.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-download.svg +4 -0
- package/static/assets/pdfjs/web/images/toolbarButton-editorFreeText.svg +5 -0
- package/static/assets/pdfjs/web/images/toolbarButton-editorHighlight.svg +6 -0
- package/static/assets/pdfjs/web/images/toolbarButton-editorInk.svg +4 -0
- package/static/assets/pdfjs/web/images/toolbarButton-editorSignature.svg +6 -0
- package/static/assets/pdfjs/web/images/toolbarButton-editorStamp.svg +8 -0
- package/static/assets/pdfjs/web/images/toolbarButton-menuArrow.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-openFile.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-pageDown.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-pageUp.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-presentationMode.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-print.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-search.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-sidebarToggle.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-viewAttachments.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-viewLayers.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-viewOutline.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-viewThumbnail.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-zoomIn.svg +3 -0
- package/static/assets/pdfjs/web/images/toolbarButton-zoomOut.svg +3 -0
- package/static/assets/pdfjs/web/images/treeitem-collapsed.svg +1 -0
- package/static/assets/pdfjs/web/images/treeitem-expanded.svg +1 -0
- package/static/assets/pdfjs/web/locale/ach/viewer.ftl +275 -0
- package/static/assets/pdfjs/web/locale/af/viewer.ftl +262 -0
- package/static/assets/pdfjs/web/locale/an/viewer.ftl +307 -0
- package/static/assets/pdfjs/web/locale/ar/viewer.ftl +627 -0
- package/static/assets/pdfjs/web/locale/ast/viewer.ftl +251 -0
- package/static/assets/pdfjs/web/locale/az/viewer.ftl +307 -0
- package/static/assets/pdfjs/web/locale/be/viewer.ftl +618 -0
- package/static/assets/pdfjs/web/locale/bg/viewer.ftl +451 -0
- package/static/assets/pdfjs/web/locale/bn/viewer.ftl +297 -0
- package/static/assets/pdfjs/web/locale/bo/viewer.ftl +297 -0
- package/static/assets/pdfjs/web/locale/br/viewer.ftl +382 -0
- package/static/assets/pdfjs/web/locale/brx/viewer.ftl +268 -0
- package/static/assets/pdfjs/web/locale/bs/viewer.ftl +618 -0
- package/static/assets/pdfjs/web/locale/ca/viewer.ftl +343 -0
- package/static/assets/pdfjs/web/locale/cak/viewer.ftl +341 -0
- package/static/assets/pdfjs/web/locale/ckb/viewer.ftl +292 -0
- package/static/assets/pdfjs/web/locale/cs/viewer.ftl +621 -0
- package/static/assets/pdfjs/web/locale/cy/viewer.ftl +627 -0
- package/static/assets/pdfjs/web/locale/da/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/de/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +621 -0
- package/static/assets/pdfjs/web/locale/el/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/en-CA/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/en-GB/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +667 -0
- package/static/assets/pdfjs/web/locale/eo/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/es-AR/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/es-CL/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/es-ES/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/es-MX/viewer.ftl +580 -0
- package/static/assets/pdfjs/web/locale/et/viewer.ftl +319 -0
- package/static/assets/pdfjs/web/locale/eu/viewer.ftl +619 -0
- package/static/assets/pdfjs/web/locale/fa/viewer.ftl +378 -0
- package/static/assets/pdfjs/web/locale/ff/viewer.ftl +297 -0
- package/static/assets/pdfjs/web/locale/fi/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/fr/viewer.ftl +611 -0
- package/static/assets/pdfjs/web/locale/fur/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/fy-NL/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/ga-IE/viewer.ftl +263 -0
- package/static/assets/pdfjs/web/locale/gd/viewer.ftl +343 -0
- package/static/assets/pdfjs/web/locale/gl/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/gn/viewer.ftl +614 -0
- package/static/assets/pdfjs/web/locale/gu-IN/viewer.ftl +297 -0
- package/static/assets/pdfjs/web/locale/he/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/hi-IN/viewer.ftl +297 -0
- package/static/assets/pdfjs/web/locale/hr/viewer.ftl +618 -0
- package/static/assets/pdfjs/web/locale/hsb/viewer.ftl +621 -0
- package/static/assets/pdfjs/web/locale/hu/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/hy-AM/viewer.ftl +314 -0
- package/static/assets/pdfjs/web/locale/hye/viewer.ftl +318 -0
- package/static/assets/pdfjs/web/locale/ia/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/id/viewer.ftl +603 -0
- package/static/assets/pdfjs/web/locale/is/viewer.ftl +600 -0
- package/static/assets/pdfjs/web/locale/it/viewer.ftl +623 -0
- package/static/assets/pdfjs/web/locale/ja/viewer.ftl +603 -0
- package/static/assets/pdfjs/web/locale/ka/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/kab/viewer.ftl +595 -0
- package/static/assets/pdfjs/web/locale/kk/viewer.ftl +603 -0
- package/static/assets/pdfjs/web/locale/km/viewer.ftl +273 -0
- package/static/assets/pdfjs/web/locale/kn/viewer.ftl +263 -0
- package/static/assets/pdfjs/web/locale/ko/viewer.ftl +603 -0
- package/static/assets/pdfjs/web/locale/lij/viewer.ftl +297 -0
- package/static/assets/pdfjs/web/locale/lo/viewer.ftl +343 -0
- package/static/assets/pdfjs/web/locale/locale.json +1 -0
- package/static/assets/pdfjs/web/locale/lt/viewer.ftl +318 -0
- package/static/assets/pdfjs/web/locale/ltg/viewer.ftl +296 -0
- package/static/assets/pdfjs/web/locale/lv/viewer.ftl +297 -0
- package/static/assets/pdfjs/web/locale/meh/viewer.ftl +137 -0
- package/static/assets/pdfjs/web/locale/mk/viewer.ftl +265 -0
- package/static/assets/pdfjs/web/locale/ml/viewer.ftl +524 -0
- package/static/assets/pdfjs/web/locale/mr/viewer.ftl +289 -0
- package/static/assets/pdfjs/web/locale/ms/viewer.ftl +297 -0
- package/static/assets/pdfjs/web/locale/my/viewer.ftl +256 -0
- package/static/assets/pdfjs/web/locale/nb-NO/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/ne-NP/viewer.ftl +284 -0
- package/static/assets/pdfjs/web/locale/nl/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/nn-NO/viewer.ftl +609 -0
- package/static/assets/pdfjs/web/locale/oc/viewer.ftl +436 -0
- package/static/assets/pdfjs/web/locale/pa-IN/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/pl/viewer.ftl +618 -0
- package/static/assets/pdfjs/web/locale/pt-BR/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/pt-PT/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/rm/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/ro/viewer.ftl +302 -0
- package/static/assets/pdfjs/web/locale/ru/viewer.ftl +618 -0
- package/static/assets/pdfjs/web/locale/sat/viewer.ftl +355 -0
- package/static/assets/pdfjs/web/locale/sc/viewer.ftl +394 -0
- package/static/assets/pdfjs/web/locale/scn/viewer.ftl +124 -0
- package/static/assets/pdfjs/web/locale/sco/viewer.ftl +314 -0
- package/static/assets/pdfjs/web/locale/si/viewer.ftl +301 -0
- package/static/assets/pdfjs/web/locale/sk/viewer.ftl +621 -0
- package/static/assets/pdfjs/web/locale/skr/viewer.ftl +524 -0
- package/static/assets/pdfjs/web/locale/sl/viewer.ftl +621 -0
- package/static/assets/pdfjs/web/locale/son/viewer.ftl +256 -0
- package/static/assets/pdfjs/web/locale/sq/viewer.ftl +606 -0
- package/static/assets/pdfjs/web/locale/sr/viewer.ftl +451 -0
- package/static/assets/pdfjs/web/locale/sv-SE/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/szl/viewer.ftl +307 -0
- package/static/assets/pdfjs/web/locale/ta/viewer.ftl +273 -0
- package/static/assets/pdfjs/web/locale/te/viewer.ftl +289 -0
- package/static/assets/pdfjs/web/locale/tg/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/th/viewer.ftl +603 -0
- package/static/assets/pdfjs/web/locale/tl/viewer.ftl +307 -0
- package/static/assets/pdfjs/web/locale/tr/viewer.ftl +615 -0
- package/static/assets/pdfjs/web/locale/trs/viewer.ftl +247 -0
- package/static/assets/pdfjs/web/locale/uk/viewer.ftl +618 -0
- package/static/assets/pdfjs/web/locale/ur/viewer.ftl +298 -0
- package/static/assets/pdfjs/web/locale/uz/viewer.ftl +237 -0
- package/static/assets/pdfjs/web/locale/vi/viewer.ftl +603 -0
- package/static/assets/pdfjs/web/locale/wo/viewer.ftl +177 -0
- package/static/assets/pdfjs/web/locale/xh/viewer.ftl +262 -0
- package/static/assets/pdfjs/web/locale/zh-CN/viewer.ftl +603 -0
- package/static/assets/pdfjs/web/locale/zh-TW/viewer.ftl +603 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitDingbats.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitFixed.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitFixedBold.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitSerif.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitSerifBold.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/FoxitSymbol.pfb +0 -0
- package/static/assets/pdfjs/web/standard_fonts/LICENSE_FOXIT +27 -0
- package/static/assets/pdfjs/web/standard_fonts/LICENSE_LIBERATION +102 -0
- package/static/assets/pdfjs/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
- package/static/assets/pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
- package/static/assets/pdfjs/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
- package/static/assets/pdfjs/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
- package/static/assets/pdfjs/web/viewer.css +6766 -0
- package/static/assets/pdfjs/web/viewer.html +768 -0
- package/static/assets/pdfjs/web/viewer.mjs +17445 -0
- package/static/assets/pdfjs/web/viewer.mjs.map +1 -0
- package/static/assets/pdfjs/web/wasm/LICENSE_OPENJPEG +39 -0
- package/static/assets/pdfjs/web/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
- package/static/assets/pdfjs/web/wasm/LICENSE_PDFJS_QCMS +22 -0
- package/static/assets/pdfjs/web/wasm/LICENSE_QCMS +21 -0
- package/static/assets/pdfjs/web/wasm/openjpeg.wasm +0 -0
- package/static/assets/pdfjs/web/wasm/openjpeg_nowasm_fallback.js +29 -0
- package/static/assets/pdfjs/web/wasm/qcms_bg.wasm +0 -0
- package/static/assets/protected.png +0 -0
- package/static/chunk-2EBPSJJT.js +1 -0
- package/static/chunk-3V7XYPSJ.js +4 -0
- package/static/chunk-4IYQWOGR.js +1 -0
- package/static/chunk-5RFOYHL3.js +1 -0
- package/static/chunk-7PCJMNDR.js +1 -0
- package/static/chunk-7WRQICEB.js +1 -0
- package/static/chunk-AKM2LQUU.js +1 -0
- package/static/chunk-ATFX6EIO.js +1 -0
- package/static/chunk-ATLT5DK5.js +1 -0
- package/static/chunk-DVHXFWN7.js +1 -0
- package/static/chunk-E27KCFP6.js +24 -0
- package/static/chunk-FPEGN42P.js +564 -0
- package/static/chunk-GAL4ENT6.js +1 -0
- package/static/chunk-GWUCWOVK.js +1 -0
- package/static/chunk-I644MKAO.js +1 -0
- package/static/chunk-IFJD2ISM.js +1 -0
- package/static/chunk-IUUTIYHF.js +1 -0
- package/static/chunk-JXZCNFW7.js +1 -0
- package/static/chunk-MEKYVWV4.js +1 -0
- package/static/chunk-MQZEETHL.js +7 -0
- package/static/chunk-NPLV4M2H.js +1 -0
- package/static/chunk-NU3TPXFY.js +4 -0
- package/static/chunk-O4CXCITB.js +1 -0
- package/static/chunk-OWGR4BYT.js +1 -0
- package/static/chunk-QFRQQ4K3.js +1 -0
- package/static/chunk-RAVRSB6R.js +1 -0
- package/static/chunk-RUNMEQOV.js +1 -0
- package/static/chunk-UGSGMP2I.js +1 -0
- package/static/chunk-UV4UIX6J.js +1 -0
- package/static/chunk-VBD7QTEP.js +1 -0
- package/static/chunk-VBWPPICY.js +1 -0
- package/static/chunk-VQRN7HFP.js +1 -0
- package/static/chunk-WTPZUBNX.js +24 -0
- package/static/chunk-XI72YZ2M.js +1 -0
- package/static/chunk-Z6IHRUVL.js +1 -0
- package/static/chunk-ZVPX26RB.js +1 -0
- package/static/chunk-ZZ3LHYOY.js +1 -0
- package/static/favicon.ico +0 -0
- package/static/index.html +19 -0
- package/static/main-ILCPT3IK.js +10 -0
- package/static/media/videogular-54D7AHHD.woff +0 -0
- package/static/media/videogular-H7MSXT3I.eot +0 -0
- package/static/media/videogular-ULU7CHZC.ttf +0 -0
- package/static/media/videogular-WX5DESMV.svg +29 -0
- package/static/polyfills-GNKGQMRJ.js +2 -0
- package/static/prerendered-routes.json +3 -0
- package/static/scripts-MQMRSPYD.js +30 -0
- package/static/styles-TJJDSCD4.css +1 -0
- package/sync-in-server.js +309 -0
|
@@ -0,0 +1,1010 @@
|
|
|
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";
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(exports, "SharesManager", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return SharesManager;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
const _common = require("@nestjs/common");
|
|
16
|
+
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
17
|
+
const _constants = require("../../../common/constants");
|
|
18
|
+
const _functions = require("../../../common/functions");
|
|
19
|
+
const _contextmanagerservice = require("../../../infrastructure/context/services/context-manager.service");
|
|
20
|
+
const _fileerror = require("../../files/models/file-error");
|
|
21
|
+
const _files = require("../../files/utils/files");
|
|
22
|
+
const _links = require("../../links/constants/links");
|
|
23
|
+
const _linksqueriesservice = require("../../links/services/links-queries.service");
|
|
24
|
+
const _notifications = require("../../notifications/constants/notifications");
|
|
25
|
+
const _notificationsmanagerservice = require("../../notifications/services/notifications-manager.service");
|
|
26
|
+
const _spaces = require("../../spaces/constants/spaces");
|
|
27
|
+
const _spaceenvmodel = require("../../spaces/models/space-env.model");
|
|
28
|
+
const _spacesqueriesservice = require("../../spaces/services/spaces-queries.service");
|
|
29
|
+
const _permissions = require("../../spaces/utils/permissions");
|
|
30
|
+
const _member = require("../../users/constants/member");
|
|
31
|
+
const _user = require("../../users/constants/user");
|
|
32
|
+
const _usersqueriesservice = require("../../users/services/users-queries.service");
|
|
33
|
+
const _shares = require("../constants/shares");
|
|
34
|
+
const _sharesqueriesservice = require("./shares-queries.service");
|
|
35
|
+
function _interop_require_default(obj) {
|
|
36
|
+
return obj && obj.__esModule ? obj : {
|
|
37
|
+
default: obj
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
41
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
43
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
44
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
45
|
+
}
|
|
46
|
+
function _ts_metadata(k, v) {
|
|
47
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
48
|
+
}
|
|
49
|
+
let SharesManager = class SharesManager {
|
|
50
|
+
permissions(user, spaceAlias) {
|
|
51
|
+
return this.sharesQueries.permissions(user.id, spaceAlias, +user.isAdmin);
|
|
52
|
+
}
|
|
53
|
+
listShares(user) {
|
|
54
|
+
return this.sharesQueries.listShares(user);
|
|
55
|
+
}
|
|
56
|
+
listSpaceShares(spaceId) {
|
|
57
|
+
return this.sharesQueries.listSpaceShares(spaceId);
|
|
58
|
+
}
|
|
59
|
+
listChildShares(user, shareId) {
|
|
60
|
+
return this.sharesQueries.listChildShares(user.id, shareId, +user.isAdmin);
|
|
61
|
+
}
|
|
62
|
+
async setAllowedPermissions(user, share, asAdmin = false) {
|
|
63
|
+
if (share.file?.ownerId === user.id || share.externalPath && user.isAdmin) {
|
|
64
|
+
// current user is the file owner (personal space case)
|
|
65
|
+
share.file.permissions = _shares.SHARE_ALL_OPERATIONS;
|
|
66
|
+
} else if (share.file?.space?.alias) {
|
|
67
|
+
share.file.ownerId = null;
|
|
68
|
+
// retrieve space permissions (cached query)
|
|
69
|
+
const spacePermissions = await this.spaceQueries.permissions(user.id, share.file.space.alias, share.file.space.root?.alias);
|
|
70
|
+
if (!spacePermissions) {
|
|
71
|
+
this.logger.warn(`${this.setAllowedPermissions.name} - missing space permissions : ${JSON.stringify(share)}`);
|
|
72
|
+
throw new _common.HttpException('Space not found', _common.HttpStatus.NOT_FOUND);
|
|
73
|
+
}
|
|
74
|
+
// compute permissions
|
|
75
|
+
const spaceEnv = new _spaceenvmodel.SpaceEnv(spacePermissions);
|
|
76
|
+
spaceEnv.setPermissions(true);
|
|
77
|
+
share.file.permissions = spaceEnv.envPermissions;
|
|
78
|
+
} else if (share.parent?.alias) {
|
|
79
|
+
// retrieve parent share permissions (cached query)
|
|
80
|
+
// use current the user permissions on the share or the share owner permissions if we request the share as admin
|
|
81
|
+
const userId = asAdmin ? share.ownerId : user.id;
|
|
82
|
+
const sharePermissions = await this.sharesQueries.permissions(userId, share.parent.alias, +user.isAdmin);
|
|
83
|
+
if (!sharePermissions) {
|
|
84
|
+
this.logger.warn(`${this.setAllowedPermissions.name} - missing share permissions : ${JSON.stringify(share)}`);
|
|
85
|
+
throw new _common.HttpException('Share not found', _common.HttpStatus.NOT_FOUND);
|
|
86
|
+
}
|
|
87
|
+
share.file.permissions = sharePermissions.permissions;
|
|
88
|
+
} else {
|
|
89
|
+
this.logger.error(`${this.setAllowedPermissions.name} - case not handled ${JSON.stringify(share)}`);
|
|
90
|
+
throw new _common.HttpException('Missing information', _common.HttpStatus.BAD_REQUEST);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async getShareWithMembers(user, shareId, asAdmin = false) {
|
|
94
|
+
// asAdmin : true if the user is the owner of the parent share or if the share is requested from the administration
|
|
95
|
+
const share = await this.sharesQueries.getShareWithMembers(user, shareId, asAdmin);
|
|
96
|
+
if (!share) {
|
|
97
|
+
throw new _common.HttpException('Not authorized', _common.HttpStatus.FORBIDDEN);
|
|
98
|
+
}
|
|
99
|
+
await this.setAllowedPermissions(user, share, asAdmin);
|
|
100
|
+
return share;
|
|
101
|
+
}
|
|
102
|
+
async createShare(user, createOrUpdateShareDto) {
|
|
103
|
+
const share = {
|
|
104
|
+
name: createOrUpdateShareDto.name,
|
|
105
|
+
alias: await this.sharesQueries.uniqueShareAlias(createOrUpdateShareDto.name),
|
|
106
|
+
description: createOrUpdateShareDto.description,
|
|
107
|
+
externalPath: createOrUpdateShareDto.externalPath,
|
|
108
|
+
enabled: createOrUpdateShareDto.enabled,
|
|
109
|
+
disabledAt: createOrUpdateShareDto.enabled ? null : new Date(),
|
|
110
|
+
type: createOrUpdateShareDto.type || _shares.SHARE_TYPE.COMMON
|
|
111
|
+
};
|
|
112
|
+
if (share.externalPath) {
|
|
113
|
+
/* EXTERNAL PATH CASE */ if (!user.isAdmin) {
|
|
114
|
+
throw new _common.HttpException('Not authorized', _common.HttpStatus.FORBIDDEN);
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
await (0, _files.checkExternalPath)(share.externalPath);
|
|
118
|
+
} catch (e) {
|
|
119
|
+
throw new _common.HttpException(e.message, e instanceof _fileerror.FileError ? e.httpCode : _common.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
120
|
+
}
|
|
121
|
+
share.ownerId = null;
|
|
122
|
+
} else {
|
|
123
|
+
/* SPACES CASE */ share.externalPath = null;
|
|
124
|
+
share.ownerId = user.id;
|
|
125
|
+
if (createOrUpdateShareDto.file.ownerId) {
|
|
126
|
+
/* PERSONAL SPACE CASE */ // check file
|
|
127
|
+
const realPath = _nodepath.default.join(user.filesPath, createOrUpdateShareDto.file.path);
|
|
128
|
+
if (!await (0, _files.isPathExists)(realPath)) {
|
|
129
|
+
this.logger.warn(`${this.createShare.name} - location does not exist : ${realPath}`);
|
|
130
|
+
throw new _common.HttpException('The location does not exist', _common.HttpStatus.NOT_FOUND);
|
|
131
|
+
}
|
|
132
|
+
const fileProps = {
|
|
133
|
+
...await (0, _files.getProps)(realPath, createOrUpdateShareDto.file.path),
|
|
134
|
+
id: createOrUpdateShareDto.file.id
|
|
135
|
+
};
|
|
136
|
+
share.fileId = await this.spaceQueries.getOrCreateUserFile(user.id, fileProps);
|
|
137
|
+
} else if (createOrUpdateShareDto.file.space?.alias) {
|
|
138
|
+
/* SPACE CASE */ const spacePermissions = await this.spaceQueries.permissions(user.id, createOrUpdateShareDto.file.space.alias, createOrUpdateShareDto.file.space.root.alias);
|
|
139
|
+
if (!spacePermissions) {
|
|
140
|
+
throw new _common.HttpException('Space not found', _common.HttpStatus.NOT_FOUND);
|
|
141
|
+
}
|
|
142
|
+
// compute space permissions
|
|
143
|
+
const space = new _spaceenvmodel.SpaceEnv(spacePermissions);
|
|
144
|
+
space.setPermissions(true);
|
|
145
|
+
// intersect space permissions for members
|
|
146
|
+
for (const m of createOrUpdateShareDto.members){
|
|
147
|
+
m.permissions = (0, _functions.intersectPermissions)(space.envPermissions, m.permissions);
|
|
148
|
+
}
|
|
149
|
+
// intersect space permissions for links
|
|
150
|
+
for (const l of createOrUpdateShareDto.links){
|
|
151
|
+
l.permissions = (0, _functions.intersectPermissions)(space.envPermissions, l.permissions);
|
|
152
|
+
}
|
|
153
|
+
// check file
|
|
154
|
+
try {
|
|
155
|
+
space.setPaths(user, createOrUpdateShareDto.file.space.root.alias, createOrUpdateShareDto.file.path.split('/').slice(space.root.id ? 1 : 0));
|
|
156
|
+
} catch (e) {
|
|
157
|
+
if (e instanceof _fileerror.FileError) {
|
|
158
|
+
throw new _common.HttpException(e.message, e.httpCode);
|
|
159
|
+
}
|
|
160
|
+
throw new _common.HttpException(e.message, _common.HttpStatus.BAD_REQUEST);
|
|
161
|
+
}
|
|
162
|
+
if (!await (0, _files.isPathExists)(space.realPath)) {
|
|
163
|
+
this.logger.warn(`${this.createShare.name} - space location does not exist : *${space.alias}* (${space.id}) : ${space.realPath}`);
|
|
164
|
+
throw new _common.HttpException('The location does not exist', _common.HttpStatus.NOT_FOUND);
|
|
165
|
+
}
|
|
166
|
+
share.spaceId = space.id;
|
|
167
|
+
share.spaceRootId = space.root?.id || null;
|
|
168
|
+
// define share.fileId
|
|
169
|
+
// if the file is the same as the space root, ignores share.fileId and only uses spaceId and spaceRootId
|
|
170
|
+
const isExternalSpaceRoot = createOrUpdateShareDto.file?.id < 0 && createOrUpdateShareDto.file?.path === createOrUpdateShareDto.file?.space?.root?.alias && createOrUpdateShareDto.file?.space?.root?.alias === spacePermissions.root?.alias && createOrUpdateShareDto.file?.space?.root?.name === spacePermissions.root?.name;
|
|
171
|
+
const isSpaceRoot = Number(createOrUpdateShareDto.file.id) === Number(spacePermissions.root?.file?.id);
|
|
172
|
+
if (!isSpaceRoot && !isExternalSpaceRoot) {
|
|
173
|
+
const fileProps = {
|
|
174
|
+
...await (0, _files.getProps)(space.realPath, space.dbFile.path),
|
|
175
|
+
id: undefined
|
|
176
|
+
};
|
|
177
|
+
// get or create file id
|
|
178
|
+
share.fileId = await this.spaceQueries.getOrCreateSpaceFile(createOrUpdateShareDto.file.id, fileProps, space.dbFile);
|
|
179
|
+
}
|
|
180
|
+
} else {
|
|
181
|
+
// unexpected case
|
|
182
|
+
throw new _common.HttpException('Missing information', _common.HttpStatus.BAD_REQUEST);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// create share
|
|
186
|
+
share.id = await this.sharesQueries.createShare(share);
|
|
187
|
+
// check & update members
|
|
188
|
+
await this.createOrUpdateLinksAsMembers(user, share, _links.LINK_TYPE.SHARE, createOrUpdateShareDto.links);
|
|
189
|
+
await this.updateMembers(user, share, [], createOrUpdateShareDto.members);
|
|
190
|
+
return this.getShareWithMembers(user, share.id);
|
|
191
|
+
}
|
|
192
|
+
async updateShare(user, shareId, createOrUpdateShareDto, asAdmin = false) {
|
|
193
|
+
// asAdmin : true if the user is the owner of the parent share or if the share is requested from the administration
|
|
194
|
+
const share = await this.getShareWithMembers(user, shareId, asAdmin);
|
|
195
|
+
// check & update share info
|
|
196
|
+
const shareDiffProps = {
|
|
197
|
+
modifiedAt: new Date()
|
|
198
|
+
};
|
|
199
|
+
for (const prop of [
|
|
200
|
+
'name',
|
|
201
|
+
'description',
|
|
202
|
+
'enabled'
|
|
203
|
+
]){
|
|
204
|
+
if (createOrUpdateShareDto[prop] !== share[prop]) {
|
|
205
|
+
shareDiffProps[prop] = createOrUpdateShareDto[prop];
|
|
206
|
+
if (prop === 'name') {
|
|
207
|
+
shareDiffProps.alias = await this.sharesQueries.uniqueShareAlias(shareDiffProps.name);
|
|
208
|
+
} else if (prop === 'enabled') {
|
|
209
|
+
shareDiffProps.disabledAt = shareDiffProps[prop] ? null : new Date();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// update in db
|
|
214
|
+
this.sharesQueries.updateShare(shareDiffProps, {
|
|
215
|
+
id: shareId
|
|
216
|
+
}).catch((e)=>this.logger.error(`${this.updateShare.name} - ${e}`));
|
|
217
|
+
// check & update members
|
|
218
|
+
const linkMembers = await this.createOrUpdateLinksAsMembers(user, share, _links.LINK_TYPE.SHARE, createOrUpdateShareDto.links);
|
|
219
|
+
// intersect share permissions for members
|
|
220
|
+
for (const m of createOrUpdateShareDto.members){
|
|
221
|
+
m.permissions = (0, _functions.intersectPermissions)(share.file.permissions, m.permissions);
|
|
222
|
+
}
|
|
223
|
+
// intersect share permissions for links
|
|
224
|
+
for (const l of linkMembers){
|
|
225
|
+
l.permissions = (0, _functions.intersectPermissions)(share.file.permissions, l.permissions);
|
|
226
|
+
}
|
|
227
|
+
await this.updateMembers(user, share, share.members, [
|
|
228
|
+
...createOrUpdateShareDto.members,
|
|
229
|
+
...linkMembers
|
|
230
|
+
]);
|
|
231
|
+
return this.getShareWithMembers(user, share.id, asAdmin);
|
|
232
|
+
}
|
|
233
|
+
async deleteShare(user, shareId, asAdmin = false) {
|
|
234
|
+
// asAdmin : true if the user is the owner of the parent share or if the share is requested from an admin
|
|
235
|
+
if (!asAdmin && !user.isAdmin && !await this.sharesQueries.shareExistsForOwner(user.id, shareId)) {
|
|
236
|
+
throw new _common.HttpException('Not authorized', _common.HttpStatus.FORBIDDEN);
|
|
237
|
+
}
|
|
238
|
+
try {
|
|
239
|
+
await this.deleteAllLinkMembers(shareId, _links.LINK_TYPE.SHARE);
|
|
240
|
+
await this.removeShareFromOwners(shareId, 'all', false, user.id);
|
|
241
|
+
} catch (e) {
|
|
242
|
+
this.logger.error(`${this.deleteShare.name} - unable to delete share (${shareId}) (asAdmin = ${asAdmin}) : ${e}`);
|
|
243
|
+
throw new _common.HttpException('Unable to delete share', _common.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
async getChildShare(user, shareId, childId, isLink) {
|
|
247
|
+
if (await this.checkChildSharePermissions(user, shareId, childId)) {
|
|
248
|
+
if (isLink) {
|
|
249
|
+
return this.getShareLink(user, childId, true);
|
|
250
|
+
}
|
|
251
|
+
return this.getShareWithMembers(user, childId, true);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
async updateChildShare(user, shareId, childId, createOrUpdateShareDto) {
|
|
255
|
+
if (await this.checkChildSharePermissions(user, shareId, childId)) {
|
|
256
|
+
return this.updateShare(user, childId, createOrUpdateShareDto, true);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
async deleteChildShare(user, shareId, childId) {
|
|
260
|
+
if (await this.checkChildSharePermissions(user, shareId, childId)) {
|
|
261
|
+
return this.deleteShare(user, childId, true);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
async createChildShare(user, createOrUpdateShareDto) {
|
|
265
|
+
// check parent share
|
|
266
|
+
const pSharePermissions = await this.sharesQueries.permissions(user.id, createOrUpdateShareDto.parent.alias, +user.isAdmin);
|
|
267
|
+
if (!pSharePermissions) {
|
|
268
|
+
this.logger.warn(`${this.createChildShare.name} - parent share does not exist or not authorized : ${createOrUpdateShareDto.parent.alias}`);
|
|
269
|
+
throw new _common.HttpException('Parent share not found', _common.HttpStatus.NOT_FOUND);
|
|
270
|
+
}
|
|
271
|
+
if (!(0, _permissions.haveSpacePermission)(pSharePermissions, _spaces.SPACE_OPERATION.SHARE_OUTSIDE)) {
|
|
272
|
+
this.logger.warn(`${this.createChildShare.name} - is not allowed to share outside of : *${pSharePermissions.alias}* (${pSharePermissions.id})`);
|
|
273
|
+
throw new _common.HttpException('You are not allowed to do this action', _common.HttpStatus.FORBIDDEN);
|
|
274
|
+
}
|
|
275
|
+
if (!pSharePermissions.enabled) {
|
|
276
|
+
this.logger.warn(`${this.createChildShare.name} - parent share is disabled : ${createOrUpdateShareDto.parent.alias}`);
|
|
277
|
+
throw new _common.HttpException('Parent share is disabled', _common.HttpStatus.FORBIDDEN);
|
|
278
|
+
}
|
|
279
|
+
let pShare;
|
|
280
|
+
let filePath;
|
|
281
|
+
if (pSharePermissions.root.externalPath) {
|
|
282
|
+
const highestParentId = await this.sharesQueries.findHighestParentShare(pSharePermissions.id);
|
|
283
|
+
if (!highestParentId) {
|
|
284
|
+
this.logger.warn(`${this.createChildShare.name} - unable to find the highest parent of : *${pSharePermissions.alias}* (${pSharePermissions.id})`);
|
|
285
|
+
throw new _common.HttpException('Parent share not found', _common.HttpStatus.NOT_FOUND);
|
|
286
|
+
}
|
|
287
|
+
pShare = await this.sharesQueries.shareEnv(highestParentId);
|
|
288
|
+
filePath = _nodepath.default.join(pSharePermissions.root?.file?.path || '', createOrUpdateShareDto.file.path);
|
|
289
|
+
} else {
|
|
290
|
+
pShare = await this.sharesQueries.shareEnv(pSharePermissions.id);
|
|
291
|
+
filePath = createOrUpdateShareDto.file.path;
|
|
292
|
+
}
|
|
293
|
+
// create a fake space env -> share env
|
|
294
|
+
const pShareEnv = new _spaceenvmodel.SpaceEnv(pShare, null, false);
|
|
295
|
+
try {
|
|
296
|
+
pShareEnv.setPaths(user, null, filePath.split('/'));
|
|
297
|
+
} catch (e) {
|
|
298
|
+
if (e instanceof _fileerror.FileError) {
|
|
299
|
+
throw new _common.HttpException(e.message, e.httpCode);
|
|
300
|
+
}
|
|
301
|
+
throw new _common.HttpException(e.message, _common.HttpStatus.BAD_REQUEST);
|
|
302
|
+
}
|
|
303
|
+
// check file
|
|
304
|
+
if (!await (0, _files.isPathExists)(pShareEnv.realPath)) {
|
|
305
|
+
this.logger.warn(`${this.createChildShare.name} - parent share location does not exist : ${pShareEnv.alias} (${pShareEnv.id}) : ${pShareEnv.realPath}`);
|
|
306
|
+
throw new _common.HttpException('The location does not exist', _common.HttpStatus.NOT_FOUND);
|
|
307
|
+
}
|
|
308
|
+
/* Manage the case where the child share is created from the parent share itself */ // special case, the parent share is directly linked to the space root file
|
|
309
|
+
const isLinkedToShareSpaceRoot = pShareEnv.fileId === null && Number(createOrUpdateShareDto.file.id) === Number(pSharePermissions.root?.id) && createOrUpdateShareDto.file.path === '.';
|
|
310
|
+
// special case, the parent share is directly linked to the share with an external path
|
|
311
|
+
const isLinkedToShareExternalPath = createOrUpdateShareDto.file.id < 0 && !!pShareEnv.root.externalPath && createOrUpdateShareDto.file.path === '.';
|
|
312
|
+
let fileId = null;
|
|
313
|
+
if (!isLinkedToShareSpaceRoot && !isLinkedToShareExternalPath) {
|
|
314
|
+
// fileId is mandatory for a file in a child share
|
|
315
|
+
const fileProps = {
|
|
316
|
+
...await (0, _files.getProps)(pShareEnv.realPath, pShareEnv.dbFile.path),
|
|
317
|
+
id: undefined
|
|
318
|
+
};
|
|
319
|
+
fileId = await this.spaceQueries.getOrCreateSpaceFile(createOrUpdateShareDto.file.id, fileProps, pShareEnv.dbFile);
|
|
320
|
+
}
|
|
321
|
+
const share = {
|
|
322
|
+
name: createOrUpdateShareDto.name,
|
|
323
|
+
alias: await this.sharesQueries.uniqueShareAlias(createOrUpdateShareDto.name),
|
|
324
|
+
ownerId: user.id,
|
|
325
|
+
spaceId: pShareEnv.spaceId,
|
|
326
|
+
spaceRootId: pShareEnv.spaceRootId,
|
|
327
|
+
parentId: pSharePermissions.id,
|
|
328
|
+
fileId: fileId,
|
|
329
|
+
description: createOrUpdateShareDto.description,
|
|
330
|
+
externalPath: pShareEnv.root.externalPath,
|
|
331
|
+
enabled: createOrUpdateShareDto.enabled,
|
|
332
|
+
disabledAt: createOrUpdateShareDto.enabled ? null : new Date(),
|
|
333
|
+
type: createOrUpdateShareDto.type || _shares.SHARE_TYPE.COMMON
|
|
334
|
+
};
|
|
335
|
+
// create child share
|
|
336
|
+
share.id = await this.sharesQueries.createShare(share);
|
|
337
|
+
// intersect parent share permissions for members
|
|
338
|
+
for (const m of createOrUpdateShareDto.members){
|
|
339
|
+
m.permissions = (0, _functions.intersectPermissions)(pSharePermissions.permissions, m.permissions);
|
|
340
|
+
}
|
|
341
|
+
// intersect parent share permissions for links
|
|
342
|
+
for (const l of createOrUpdateShareDto.links){
|
|
343
|
+
l.permissions = (0, _functions.intersectPermissions)(pSharePermissions.permissions, l.permissions);
|
|
344
|
+
}
|
|
345
|
+
// check & update members
|
|
346
|
+
await this.createOrUpdateLinksAsMembers(user, share, _links.LINK_TYPE.SHARE, createOrUpdateShareDto.links);
|
|
347
|
+
await this.updateMembers(user, share, [], createOrUpdateShareDto.members);
|
|
348
|
+
return this.getShareWithMembers(user, share.id);
|
|
349
|
+
}
|
|
350
|
+
async updateSharesFromSpace(/*
|
|
351
|
+
In this case the space is considered as a parent share
|
|
352
|
+
The shares and child shares of the member should be deleted if the member is removed from the space
|
|
353
|
+
Member permissions on shares and its child shares must be updated if the parent share owner's permissions are updated on the space
|
|
354
|
+
*/ spaceId, currentMembers, toRemove, toUpdate) {
|
|
355
|
+
// skip if no actions
|
|
356
|
+
if (!toRemove.length && !toUpdate.length) return;
|
|
357
|
+
// get all space manager ids (ignore them, they have all permissions on the space)
|
|
358
|
+
const spaceManagerIds = currentMembers.filter((m)=>m.spaceRole === _spaces.SPACE_ROLE.IS_MANAGER).map((m)=>m.id);
|
|
359
|
+
const [rmOwners, upOwners] = await this.diffSharesPermissions(currentMembers, toRemove, toUpdate, spaceManagerIds);
|
|
360
|
+
if (!rmOwners.length && !upOwners.length) return;
|
|
361
|
+
const owners = {
|
|
362
|
+
...Object.fromEntries(rmOwners.map((uId)=>[
|
|
363
|
+
uId,
|
|
364
|
+
{
|
|
365
|
+
type: _constants.ACTION.DELETE
|
|
366
|
+
}
|
|
367
|
+
])),
|
|
368
|
+
...Object.fromEntries(upOwners.reduce((acc, o)=>{
|
|
369
|
+
for (const id of o.ids){
|
|
370
|
+
acc.push([
|
|
371
|
+
id,
|
|
372
|
+
{
|
|
373
|
+
type: _constants.ACTION.UPDATE,
|
|
374
|
+
rmPermissions: o.rmPermissions
|
|
375
|
+
}
|
|
376
|
+
]);
|
|
377
|
+
}
|
|
378
|
+
return acc;
|
|
379
|
+
}, []))
|
|
380
|
+
};
|
|
381
|
+
// find all parent shares which are owned by the modified/removed members of the space
|
|
382
|
+
for (const share of (await this.sharesQueries.selectParentSharesFromSpaceId(spaceId, Object.keys(owners).map((id)=>parseInt(id))))){
|
|
383
|
+
if (share.ownerId in owners) {
|
|
384
|
+
const action = owners[share.ownerId];
|
|
385
|
+
if (action.type === _constants.ACTION.UPDATE) {
|
|
386
|
+
this.removeChildSharesPermissions(share.id, [
|
|
387
|
+
{
|
|
388
|
+
ids: [
|
|
389
|
+
share.ownerId
|
|
390
|
+
],
|
|
391
|
+
rmPermissions: action.rmPermissions
|
|
392
|
+
}
|
|
393
|
+
], false).catch((e)=>this.logger.error(`${this.updateSharesFromSpace.name} - ${e}`));
|
|
394
|
+
} else {
|
|
395
|
+
this.removeShareFromOwners(share.id, [
|
|
396
|
+
share.ownerId
|
|
397
|
+
], false).catch((e)=>this.logger.error(`${this.updateSharesFromSpace.name} - ${e}`));
|
|
398
|
+
}
|
|
399
|
+
this.logger.log(`${this.updateSharesFromSpace.name} - ${action.type} share (${share.id}) for owner ${share.ownerId} from space ${spaceId}`);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
async updateSharesFromSpaceRoots(/* update or remove shares related to space roots changes */ spaceId, toRemove, toUpdate) {
|
|
404
|
+
// skip if no actions
|
|
405
|
+
if (!toRemove.length && !toUpdate.length) return;
|
|
406
|
+
for (const root of toUpdate){
|
|
407
|
+
for (const share of (await this.sharesQueries.selectShares({
|
|
408
|
+
spaceId: spaceId,
|
|
409
|
+
spaceRootId: root.id,
|
|
410
|
+
parentId: null
|
|
411
|
+
}))){
|
|
412
|
+
this.removeChildSharesPermissions(share.id, [
|
|
413
|
+
{
|
|
414
|
+
ids: 'all',
|
|
415
|
+
rmPermissions: root.rmPermissions
|
|
416
|
+
}
|
|
417
|
+
], false).catch((e)=>this.logger.error(`${this.updateSharesFromSpaceRoots.name} - ${e}`));
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
for (const rootId of toRemove){
|
|
421
|
+
for (const share of (await this.sharesQueries.selectShares({
|
|
422
|
+
spaceId: spaceId,
|
|
423
|
+
spaceRootId: rootId,
|
|
424
|
+
parentId: null
|
|
425
|
+
}))){
|
|
426
|
+
// use await ! avoid database lock ! next action is to delete the root space which is cascaded with share.spaceRootId
|
|
427
|
+
await this.removeShareFromOwners(share.id, [
|
|
428
|
+
share.ownerId
|
|
429
|
+
], false);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
async removeSharesFromSpace(spaceId) {
|
|
434
|
+
for (const share of (await this.sharesQueries.selectShares({
|
|
435
|
+
spaceId: spaceId,
|
|
436
|
+
parentId: null
|
|
437
|
+
}))){
|
|
438
|
+
// use await ! avoid database lock ! next action is to delete the space which is cascaded with share.spaceId
|
|
439
|
+
await this.removeShareFromOwners(share.id, [
|
|
440
|
+
share.ownerId
|
|
441
|
+
], false);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
async generateLinkUUID(userId) {
|
|
445
|
+
let uuid = (0, _functions.generateShortUUID)();
|
|
446
|
+
while(!await this.linksQueries.isUniqueUUID(userId, uuid)){
|
|
447
|
+
uuid = (0, _functions.generateShortUUID)();
|
|
448
|
+
}
|
|
449
|
+
return {
|
|
450
|
+
uuid: uuid
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
listShareLinks(user) {
|
|
454
|
+
return this.sharesQueries.listShareLinks(user);
|
|
455
|
+
}
|
|
456
|
+
async getShareLink(user, shareId, asAdmin = false) {
|
|
457
|
+
const shareLink = await this.sharesQueries.listShareLinks(user, shareId, asAdmin);
|
|
458
|
+
if (!shareLink) {
|
|
459
|
+
throw new _common.HttpException('Not authorized', _common.HttpStatus.FORBIDDEN);
|
|
460
|
+
}
|
|
461
|
+
await this.setAllowedPermissions(user, shareLink);
|
|
462
|
+
if (shareLink.file?.permissions) {
|
|
463
|
+
// share link does not have these permissions
|
|
464
|
+
shareLink.file.permissions = (0, _permissions.removePermissions)(shareLink.file.permissions, [
|
|
465
|
+
_spaces.SPACE_OPERATION.SHARE_INSIDE,
|
|
466
|
+
_spaces.SPACE_OPERATION.SHARE_OUTSIDE
|
|
467
|
+
]);
|
|
468
|
+
}
|
|
469
|
+
return shareLink;
|
|
470
|
+
}
|
|
471
|
+
async getLinkFromSpaceOrShare(user, linkId, spaceOrShareId, type) {
|
|
472
|
+
let linkGuest;
|
|
473
|
+
if (type === _links.LINK_TYPE.SPACE) {
|
|
474
|
+
linkGuest = await this.linksQueries.linkFromSpace(user.id, linkId, spaceOrShareId);
|
|
475
|
+
} else {
|
|
476
|
+
linkGuest = await this.linksQueries.linkFromShare(user.id, linkId, spaceOrShareId, +user.isAdmin);
|
|
477
|
+
}
|
|
478
|
+
if (!linkGuest) {
|
|
479
|
+
this.logger.warn(`${this.getLinkFromSpaceOrShare.name} - unable to find link (${linkId}) on ${type} (${spaceOrShareId})`);
|
|
480
|
+
throw new _common.HttpException('Link not found', _common.HttpStatus.NOT_FOUND);
|
|
481
|
+
}
|
|
482
|
+
return linkGuest;
|
|
483
|
+
}
|
|
484
|
+
async createOrUpdateLinksAsMembers(user, spaceOrShare, type, links) {
|
|
485
|
+
/* only used during the share creation from the share manager */ const linkMembers = [];
|
|
486
|
+
for (const link of links){
|
|
487
|
+
if (link.id < 0) {
|
|
488
|
+
// new link (permissions are needed to create guest link)
|
|
489
|
+
await this.createLinkFromSpaceOrShare(user, link.linkSettings.uuid, spaceOrShare.id, type, {
|
|
490
|
+
...link.linkSettings,
|
|
491
|
+
permissions: link.permissions
|
|
492
|
+
});
|
|
493
|
+
// notify the guest link (if email is specified)
|
|
494
|
+
this.notifyGuestLink(user, link, spaceOrShare.name, type === _links.LINK_TYPE.SHARE ? _constants.ACTION.ADD : _constants.ACTION.UPDATE).catch((e)=>this.logger.error(`${this.createOrUpdateLinksAsMembers.name} - ${e}`));
|
|
495
|
+
} else {
|
|
496
|
+
if (link.linkSettings) {
|
|
497
|
+
// modified link
|
|
498
|
+
await this.updateLinkFromSpaceOrShare(user, link.linkId, spaceOrShare.id, type, link.linkSettings);
|
|
499
|
+
}
|
|
500
|
+
// unmodified link
|
|
501
|
+
linkMembers.push(link);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
return linkMembers;
|
|
505
|
+
}
|
|
506
|
+
async updateLinkFromSpaceOrShare(user, linkId, spaceOrShareId, type, createOrUpdateLinkDto, fromAPI = false) {
|
|
507
|
+
const link = await this.getLinkFromSpaceOrShare(user, linkId, spaceOrShareId, type);
|
|
508
|
+
if (!link) {
|
|
509
|
+
this.logger.error(`${this.updateLinkFromSpaceOrShare.name} - (${linkId}) from ${type} (${spaceOrShareId}) and user (${user.id}) was not found`);
|
|
510
|
+
throw new _common.HttpException('Unable to find link', _common.HttpStatus.NOT_FOUND);
|
|
511
|
+
}
|
|
512
|
+
const fieldsWhiteList = [
|
|
513
|
+
'name',
|
|
514
|
+
'email',
|
|
515
|
+
'requireAuth',
|
|
516
|
+
'limitAccess',
|
|
517
|
+
'expiresAt',
|
|
518
|
+
'language',
|
|
519
|
+
'isActive',
|
|
520
|
+
'password',
|
|
521
|
+
'permissions',
|
|
522
|
+
'shareName',
|
|
523
|
+
'shareDescription'
|
|
524
|
+
];
|
|
525
|
+
const [updateUser, updateLink, updateShare, updateMember] = [
|
|
526
|
+
{},
|
|
527
|
+
{},
|
|
528
|
+
{},
|
|
529
|
+
{}
|
|
530
|
+
];
|
|
531
|
+
for (const [k, v] of Object.entries(createOrUpdateLinkDto)){
|
|
532
|
+
if (fieldsWhiteList.indexOf(k) > -1 && link[k] !== v) {
|
|
533
|
+
switch(k){
|
|
534
|
+
case 'password':
|
|
535
|
+
if (v) {
|
|
536
|
+
updateUser.password = await (0, _functions.hashPassword)(v);
|
|
537
|
+
}
|
|
538
|
+
break;
|
|
539
|
+
case 'permissions':
|
|
540
|
+
if (fromAPI) {
|
|
541
|
+
// permissions are only present if the share type is link
|
|
542
|
+
// intersect permissions to ensure that the user does not attempt to exceed his rights
|
|
543
|
+
const shareLink = await this.getShareLink(user, spaceOrShareId);
|
|
544
|
+
updateMember.permissions = (0, _functions.intersectPermissions)(shareLink.file.permissions, v);
|
|
545
|
+
}
|
|
546
|
+
break;
|
|
547
|
+
case 'language':
|
|
548
|
+
updateUser.language = v;
|
|
549
|
+
break;
|
|
550
|
+
case 'isActive':
|
|
551
|
+
updateUser.isActive = v;
|
|
552
|
+
break;
|
|
553
|
+
case 'shareName':
|
|
554
|
+
updateShare.name = v;
|
|
555
|
+
updateShare.alias = await this.sharesQueries.uniqueShareAlias(v);
|
|
556
|
+
break;
|
|
557
|
+
case 'shareDescription':
|
|
558
|
+
updateShare.description = v;
|
|
559
|
+
break;
|
|
560
|
+
case 'expiresAt':
|
|
561
|
+
if (JSON.stringify(link[k]) !== JSON.stringify(v)) {
|
|
562
|
+
updateLink[k] = v;
|
|
563
|
+
}
|
|
564
|
+
break;
|
|
565
|
+
default:
|
|
566
|
+
updateLink[k] = v;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
if (!Object.keys(updateUser).length && !Object.keys(updateLink).length && !Object.keys(updateShare).length && !Object.keys(updateMember).length) {
|
|
571
|
+
this.logger.warn(`${this.updateLinkFromSpaceOrShare.name} - no diff to update`);
|
|
572
|
+
return fromAPI ? link : null;
|
|
573
|
+
}
|
|
574
|
+
try {
|
|
575
|
+
await this.linksQueries.updateLinkFromSpaceOrShare(link, spaceOrShareId, updateUser, updateLink, updateShare, updateMember);
|
|
576
|
+
this.logger.debug(`${this.updateLinkFromSpaceOrShare.name} - link (${linkId}) updated : ${JSON.stringify({
|
|
577
|
+
...{
|
|
578
|
+
user: (0, _functions.anonymizePassword)(updateUser)
|
|
579
|
+
},
|
|
580
|
+
...{
|
|
581
|
+
link: updateLink
|
|
582
|
+
},
|
|
583
|
+
...{
|
|
584
|
+
share: updateShare
|
|
585
|
+
},
|
|
586
|
+
...{
|
|
587
|
+
member: updateMember
|
|
588
|
+
}
|
|
589
|
+
})}`);
|
|
590
|
+
} catch (e) {
|
|
591
|
+
this.logger.error(`${this.updateLinkFromSpaceOrShare.name} - ${e}`);
|
|
592
|
+
throw new _common.HttpException('Unable to update link', _common.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
593
|
+
}
|
|
594
|
+
if (fromAPI) {
|
|
595
|
+
// for security reasons
|
|
596
|
+
delete updateUser.password;
|
|
597
|
+
Object.assign(link, updateUser, updateLink, updateMember);
|
|
598
|
+
return link;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
async createGuestLink(permission, password, language, isActive = true) {
|
|
602
|
+
const random = (0, _functions.generateShortUUID)(32);
|
|
603
|
+
const guestLink = {
|
|
604
|
+
login: random,
|
|
605
|
+
email: `${random}@sync-in`,
|
|
606
|
+
firstName: 'Guest',
|
|
607
|
+
lastName: 'Link',
|
|
608
|
+
language: language || null,
|
|
609
|
+
permissions: permission,
|
|
610
|
+
password: await (0, _functions.hashPassword)(password || (0, _functions.generateShortUUID)(12)),
|
|
611
|
+
role: _user.USER_ROLE.LINK,
|
|
612
|
+
isActive: isActive
|
|
613
|
+
};
|
|
614
|
+
try {
|
|
615
|
+
;
|
|
616
|
+
guestLink.id = await this.usersQueries.createUserOrGuest(guestLink, _user.USER_ROLE.LINK);
|
|
617
|
+
return guestLink;
|
|
618
|
+
} catch (e) {
|
|
619
|
+
this.logger.error(`${this.createGuestLink.name} - unable to create guest link : ${e}`);
|
|
620
|
+
throw new _common.HttpException('Unable to create guest link', _common.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
/* MANAGE SHARE LINKS */ async deleteAllLinkMembers(spaceOrShareId, type) {
|
|
624
|
+
const ids = await this.linksQueries.allLinksFromSpaceOrShare(spaceOrShareId, type);
|
|
625
|
+
await this.deleteGuestLinks(ids);
|
|
626
|
+
}
|
|
627
|
+
async deleteLinkMembers(members) {
|
|
628
|
+
await this.deleteGuestLinks(members);
|
|
629
|
+
}
|
|
630
|
+
async updateMembers(user, share, oldMembers, currentMembers) {
|
|
631
|
+
if (oldMembers.length === 0 && currentMembers.length === 0) {
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
// diff
|
|
635
|
+
const [add, update, remove] = (0, _functions.diffCollection)(oldMembers, currentMembers, [
|
|
636
|
+
'permissions'
|
|
637
|
+
], [
|
|
638
|
+
'id',
|
|
639
|
+
'type'
|
|
640
|
+
]);
|
|
641
|
+
// check members whitelists
|
|
642
|
+
let toAdd = [];
|
|
643
|
+
if (add.length) {
|
|
644
|
+
const [userIdsWhitelist, groupIdsWhitelist] = await Promise.all([
|
|
645
|
+
this.usersQueries.usersWhitelist(user.id),
|
|
646
|
+
this.usersQueries.groupsWhitelist(user.id)
|
|
647
|
+
]);
|
|
648
|
+
toAdd = add.filter((m)=>{
|
|
649
|
+
if ((m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST) && !m.linkId && userIdsWhitelist.indexOf(m.id) === -1 || (m.type === _member.MEMBER_TYPE.GROUP || m.type === _member.MEMBER_TYPE.PGROUP) && groupIdsWhitelist.indexOf(m.id) === -1) {
|
|
650
|
+
this.logger.warn(`${this.updateMembers.name} cannot add ${m.type} (${m.id}) to share *${share.alias}* (${share.id}) : not in the members whitelist`);
|
|
651
|
+
return false;
|
|
652
|
+
}
|
|
653
|
+
return true;
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
// filter links
|
|
657
|
+
const toRemove = remove.filter((m)=>!m.linkId);
|
|
658
|
+
// do remove links
|
|
659
|
+
this.deleteLinkMembers(remove.filter((m)=>!!m.linkId)).catch((e)=>this.logger.error(`${this.updateMembers.name} - ${e}`));
|
|
660
|
+
// do update members
|
|
661
|
+
const status = await this.sharesQueries.updateMembers(share.id, toAdd, (0, _functions.convertDiffUpdate)(update), toRemove);
|
|
662
|
+
// lists deleted and updated members as potential share owners
|
|
663
|
+
const [rmMembersChildShares, upMembersChildShares] = [
|
|
664
|
+
[],
|
|
665
|
+
[]
|
|
666
|
+
];
|
|
667
|
+
for (const [action, members] of Object.entries(status)){
|
|
668
|
+
if (!members.userIds.length && !members.groupIds.length) continue;
|
|
669
|
+
if (action === _constants.ACTION.DELETE) {
|
|
670
|
+
// stores the removed members who might own child shares from the current share
|
|
671
|
+
rmMembersChildShares.push(...toRemove.filter((m)=>(m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST) && members.userIds.indexOf(m.id) > -1 || (m.type === _member.MEMBER_TYPE.GROUP || m.type === _member.MEMBER_TYPE.PGROUP) && members.groupIds.indexOf(m.id) > -1));
|
|
672
|
+
} else if (action === _constants.ACTION.UPDATE) {
|
|
673
|
+
// stores permissions updates and members who might own child shares created from the current share
|
|
674
|
+
for (const m of update){
|
|
675
|
+
if ((m.object.type === _member.MEMBER_TYPE.USER || m.object.type === _member.MEMBER_TYPE.GUEST) && members.userIds.indexOf(m.object.id) > -1 || (m.object.type === _member.MEMBER_TYPE.GROUP || m.object.type === _member.MEMBER_TYPE.PGROUP) && members.groupIds.indexOf(m.object.id) > -1) {
|
|
676
|
+
const diffPermissions = (0, _functions.differencePermissions)(m.permissions.old, m.permissions.new);
|
|
677
|
+
if (diffPermissions.length) {
|
|
678
|
+
upMembersChildShares.push({
|
|
679
|
+
object: m.object,
|
|
680
|
+
rmPermissions: diffPermissions
|
|
681
|
+
});
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
// clear cache &|| notify
|
|
687
|
+
this.onShareActionForMembers(share, action, members, user).catch((e)=>this.logger.error(`${this.updateMembers.name} - ${e}`));
|
|
688
|
+
}
|
|
689
|
+
// do updates
|
|
690
|
+
// remove or update potential child shares
|
|
691
|
+
this.updateMembersChildSharesPermissions(share.id, currentMembers, rmMembersChildShares, upMembersChildShares).catch((e)=>this.logger.error(`${this.updateMembers.name} - ${e}`));
|
|
692
|
+
}
|
|
693
|
+
async updateMembersChildSharesPermissions(parentShareId, currentMembers, toRemove, toUpdate) {
|
|
694
|
+
/*
|
|
695
|
+
child shares of the member should be deleted if the member is removed from the parent share
|
|
696
|
+
the permissions of the child shares members should be updated if the member's permissions are updated
|
|
697
|
+
*/ const [removeUsersChildShares, updateUsersChildShares] = await this.diffSharesPermissions(currentMembers, toRemove, toUpdate);
|
|
698
|
+
await Promise.all([
|
|
699
|
+
this.removeShareFromOwners(parentShareId, removeUsersChildShares),
|
|
700
|
+
this.removeChildSharesPermissions(parentShareId, updateUsersChildShares)
|
|
701
|
+
]);
|
|
702
|
+
}
|
|
703
|
+
async diffSharesPermissions(currentMembers, toRemove, toUpdate, ignoreUserIds = []) {
|
|
704
|
+
// remove shares from members
|
|
705
|
+
const [removeUsersChildShares, removeGroupsChildShares] = [
|
|
706
|
+
[],
|
|
707
|
+
[]
|
|
708
|
+
];
|
|
709
|
+
for (const m of toRemove){
|
|
710
|
+
if (m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST) {
|
|
711
|
+
if (ignoreUserIds.indexOf(m.id) > -1) {
|
|
712
|
+
continue;
|
|
713
|
+
}
|
|
714
|
+
// do not remove child shares if the user is a member of a group with share permission
|
|
715
|
+
const memberGroupIds = await this.usersQueries.groupsWhitelist(m.id);
|
|
716
|
+
const groupSharePermission = currentMembers.find((m)=>(m.type === _member.MEMBER_TYPE.GROUP || m.type === _member.MEMBER_TYPE.PGROUP) && memberGroupIds.indexOf(m.id) > -1 && (0, _permissions.havePermission)(m.permissions, _spaces.SPACE_OPERATION.SHARE_OUTSIDE));
|
|
717
|
+
if (groupSharePermission) {
|
|
718
|
+
this.logger.debug(`${this.diffSharesPermissions.name} - ignore user (${m.id}) removal : is a member of the group (${groupSharePermission.id}) with share permission`);
|
|
719
|
+
continue;
|
|
720
|
+
}
|
|
721
|
+
removeUsersChildShares.push(m.id);
|
|
722
|
+
} else {
|
|
723
|
+
removeGroupsChildShares.push(m.id);
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
// update shares permissions from members
|
|
727
|
+
const [updateUsersChildShares, updateGroupsChildShares] = [
|
|
728
|
+
[],
|
|
729
|
+
[]
|
|
730
|
+
];
|
|
731
|
+
for (const m of toUpdate){
|
|
732
|
+
// all child share permissions must be updated
|
|
733
|
+
if (m.object.type === _member.MEMBER_TYPE.USER || m.object.type === _member.MEMBER_TYPE.GUEST) {
|
|
734
|
+
if (ignoreUserIds.indexOf(m.object.id) > -1) continue;
|
|
735
|
+
// check if the user is a member of the existing groups on the share
|
|
736
|
+
// since group and user permissions are aggregated, we should check the group permissions
|
|
737
|
+
const memberGroupIds = await this.usersQueries.groupsWhitelist(m.object.id);
|
|
738
|
+
const groupPermissions = currentMembers.filter((m)=>(m.type === _member.MEMBER_TYPE.GROUP || m.type === _member.MEMBER_TYPE.PGROUP) && memberGroupIds.indexOf(m.id) > -1).reduce((perms, m)=>{
|
|
739
|
+
for (const p of m.permissions.split(_spaces.SPACE_PERMS_SEP).filter((p)=>p !== '' && perms.indexOf(p) === -1)){
|
|
740
|
+
perms.push(p);
|
|
741
|
+
}
|
|
742
|
+
return perms;
|
|
743
|
+
}, []);
|
|
744
|
+
// find all permissions that the user must keep
|
|
745
|
+
const [permsToKeep, permsToRemove] = [
|
|
746
|
+
[],
|
|
747
|
+
[]
|
|
748
|
+
];
|
|
749
|
+
// compare the permissions removed from group to user's
|
|
750
|
+
m.rmPermissions.forEach((p)=>groupPermissions.indexOf(p) > -1 ? permsToKeep.push(p) : permsToRemove.push(p));
|
|
751
|
+
if (!permsToRemove.length) {
|
|
752
|
+
continue;
|
|
753
|
+
}
|
|
754
|
+
// remove only unmatched permissions
|
|
755
|
+
m.rmPermissions = permsToRemove;
|
|
756
|
+
}
|
|
757
|
+
// group members by permissions to optimize queries
|
|
758
|
+
const memberTypeChildShares = m.object.type === _member.MEMBER_TYPE.USER || m.object.type === _member.MEMBER_TYPE.GUEST ? updateUsersChildShares : updateGroupsChildShares;
|
|
759
|
+
const memberWithSamePermissions = memberTypeChildShares.find((p)=>p.rmPermissions.toString() === m.rmPermissions.toString());
|
|
760
|
+
if (memberWithSamePermissions) {
|
|
761
|
+
memberWithSamePermissions.ids.push(m.object.id);
|
|
762
|
+
} else {
|
|
763
|
+
memberTypeChildShares.push({
|
|
764
|
+
ids: [
|
|
765
|
+
m.object.id
|
|
766
|
+
],
|
|
767
|
+
rmPermissions: m.rmPermissions
|
|
768
|
+
});
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
// retrieves all users from groups and subgroups & add them to the remove and update lists
|
|
772
|
+
if (removeGroupsChildShares.length) {
|
|
773
|
+
// ignore user id if the user is already removed or is a member of the parent share
|
|
774
|
+
const rmUsersFromGroups = (await this.usersQueries.allUserIdsFromGroupsAndSubGroups(removeGroupsChildShares)).filter((id)=>ignoreUserIds.indexOf(id) === -1 && removeUsersChildShares.indexOf(id) === -1 && !currentMembers.find((m)=>(m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST) && m.id === id));
|
|
775
|
+
removeUsersChildShares.push(...rmUsersFromGroups);
|
|
776
|
+
}
|
|
777
|
+
if (updateGroupsChildShares.length) {
|
|
778
|
+
for (const g of updateGroupsChildShares){
|
|
779
|
+
// ignore user id if the user is already removed or is a member of the parent share
|
|
780
|
+
const rmUsersPermissionsFromGroups = [];
|
|
781
|
+
for (const uId of (await this.usersQueries.allUserIdsFromGroupsAndSubGroups(g.ids))){
|
|
782
|
+
if (ignoreUserIds.indexOf(uId) > -1 || removeUsersChildShares.indexOf(uId) > -1) {
|
|
783
|
+
continue;
|
|
784
|
+
}
|
|
785
|
+
// check if the user is a member of the existing groups on the share
|
|
786
|
+
// since group and user permissions are aggregated, we should check the group permissions
|
|
787
|
+
const memberGroupIds = await this.usersQueries.groupsWhitelist(uId);
|
|
788
|
+
const groupPermissions = currentMembers.filter((m)=>(m.type === _member.MEMBER_TYPE.GROUP || m.type === _member.MEMBER_TYPE.PGROUP) && memberGroupIds.indexOf(m.id) > -1 || (m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST) && m.id === uId).reduce((perms, m)=>{
|
|
789
|
+
for (const p of m.permissions.split(_spaces.SPACE_PERMS_SEP).filter((p)=>p !== '' && perms.indexOf(p) === -1)){
|
|
790
|
+
perms.push(p);
|
|
791
|
+
}
|
|
792
|
+
return perms;
|
|
793
|
+
}, []);
|
|
794
|
+
// find all permissions that the user must keep
|
|
795
|
+
const [permsToKeep, permsToRemove] = [
|
|
796
|
+
[],
|
|
797
|
+
[]
|
|
798
|
+
];
|
|
799
|
+
// compare the permissions removed from group to user's
|
|
800
|
+
g.rmPermissions.forEach((p)=>groupPermissions.indexOf(p) > -1 ? permsToKeep.push(p) : permsToRemove.push(p));
|
|
801
|
+
if (!permsToKeep.length) {
|
|
802
|
+
// user does not have the removed permissions from groups or from himself, we can remove the permissions to his child shares
|
|
803
|
+
rmUsersPermissionsFromGroups.push(uId);
|
|
804
|
+
} else if (permsToRemove.length) {
|
|
805
|
+
// remove only unmatched permissions
|
|
806
|
+
updateUsersChildShares.push({
|
|
807
|
+
ids: [
|
|
808
|
+
uId
|
|
809
|
+
],
|
|
810
|
+
rmPermissions: permsToRemove
|
|
811
|
+
});
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
if (!rmUsersPermissionsFromGroups.length) continue;
|
|
815
|
+
// group users by permissions to optimize queries
|
|
816
|
+
const memberWithSamePermissions = updateUsersChildShares.find((p)=>p.rmPermissions.toString() === g.rmPermissions.toString());
|
|
817
|
+
if (memberWithSamePermissions) {
|
|
818
|
+
memberWithSamePermissions.ids.push(...rmUsersPermissionsFromGroups);
|
|
819
|
+
} else {
|
|
820
|
+
updateUsersChildShares.push({
|
|
821
|
+
ids: rmUsersPermissionsFromGroups,
|
|
822
|
+
rmPermissions: g.rmPermissions
|
|
823
|
+
});
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
return [
|
|
828
|
+
removeUsersChildShares,
|
|
829
|
+
updateUsersChildShares
|
|
830
|
+
];
|
|
831
|
+
}
|
|
832
|
+
async removeShareFromOwners(shareId, ownerIds, asParent = true, fromUserId) {
|
|
833
|
+
// deletes only the first (child) shares, child shares will be deleted in cascade
|
|
834
|
+
const where = {
|
|
835
|
+
...asParent ? {
|
|
836
|
+
parentId: shareId
|
|
837
|
+
} : {
|
|
838
|
+
id: shareId
|
|
839
|
+
},
|
|
840
|
+
...ownerIds !== 'all' && {
|
|
841
|
+
ownerId: ownerIds
|
|
842
|
+
}
|
|
843
|
+
};
|
|
844
|
+
for (const share of (await this.sharesQueries.selectShares(where))){
|
|
845
|
+
try {
|
|
846
|
+
// store current child shares members before delete parent share
|
|
847
|
+
const members = await this.sharesQueries.membersFromChildSharesPermissions(share.id, [
|
|
848
|
+
share.ownerId
|
|
849
|
+
], null, false);
|
|
850
|
+
await this.sharesQueries.deleteShare(share.id);
|
|
851
|
+
this.logger.log(`${this.removeShareFromOwners.name} - share *${share.alias}* (${share.id}) from owner (${share.ownerId}) was removed`);
|
|
852
|
+
// clear cache & notify users
|
|
853
|
+
if (!fromUserId || fromUserId !== share.ownerId) {
|
|
854
|
+
this.clearCachePermissionsAndOrNotify(share, _constants.ACTION.DELETE_PERMANENTLY, [
|
|
855
|
+
share.ownerId
|
|
856
|
+
]).catch((e)=>this.logger.error(`${this.removeShareFromOwners.name} - ${e}`));
|
|
857
|
+
}
|
|
858
|
+
members.forEach((m)=>this.clearCachePermissionsAndOrNotify({
|
|
859
|
+
alias: m.shareAlias,
|
|
860
|
+
name: m.shareName
|
|
861
|
+
}, _constants.ACTION.DELETE, [
|
|
862
|
+
m.userId
|
|
863
|
+
]));
|
|
864
|
+
} catch (e) {
|
|
865
|
+
this.logger.error(`${this.removeShareFromOwners.name} - share *${share.alias}* (${share.id}) from owner (${share.ownerId}) was not removed : ${e}`);
|
|
866
|
+
}
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
async removeChildSharesPermissions(shareId, userPermissions, asParent = true) {
|
|
870
|
+
// remove permissions of all members of the child shares
|
|
871
|
+
if (!userPermissions.length) return;
|
|
872
|
+
for (const userPerm of userPermissions){
|
|
873
|
+
const members = await this.sharesQueries.membersFromChildSharesPermissions(shareId, userPerm.ids, userPerm.rmPermissions.join('|'), asParent);
|
|
874
|
+
for (const m of members){
|
|
875
|
+
const permissions = (0, _permissions.removePermissions)(m.userPermissions, userPerm.rmPermissions);
|
|
876
|
+
try {
|
|
877
|
+
await this.sharesQueries.updateMember({
|
|
878
|
+
permissions: permissions
|
|
879
|
+
}, {
|
|
880
|
+
id: m.id
|
|
881
|
+
});
|
|
882
|
+
this.clearCachePermissionsAndOrNotify({
|
|
883
|
+
alias: m.shareAlias,
|
|
884
|
+
name: m.shareName
|
|
885
|
+
}, _constants.ACTION.UPDATE, [
|
|
886
|
+
m.userId
|
|
887
|
+
]).catch((e)=>this.logger.error(`${this.removeChildSharesPermissions.name} - ${e}`));
|
|
888
|
+
this.logger.log(`${this.removeChildSharesPermissions.name} - user (${m.id}) permissions ${JSON.stringify(userPerm.rmPermissions)} on share : ${m.shareAlias} (${m.shareId}) was removed`);
|
|
889
|
+
} catch (e) {
|
|
890
|
+
this.logger.error(`${this.removeChildSharesPermissions.name} - user (${m.id}) permissions on share *${m.shareAlias}* (${m.shareId}) was not removed : ${e}`);
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
}
|
|
895
|
+
async checkChildSharePermissions(user, shareId, childId) {
|
|
896
|
+
const isOwnerForChildShare = await this.sharesQueries.childExistsForShareOwner(user.id, shareId, childId, user.isAdmin);
|
|
897
|
+
if (isOwnerForChildShare !== childId) {
|
|
898
|
+
this.logger.warn(`${this.checkChildSharePermissions.name} - is not allowed to manage child share (${childId}) from share (${shareId})`);
|
|
899
|
+
throw new _common.HttpException('Not authorized', _common.HttpStatus.FORBIDDEN);
|
|
900
|
+
}
|
|
901
|
+
return true;
|
|
902
|
+
}
|
|
903
|
+
async onShareActionForMembers(share, action, members, user) {
|
|
904
|
+
this.clearCachePermissionsAndOrNotify(share, action, Array.from(new Set([
|
|
905
|
+
...await this.usersQueries.allUserIdsFromGroupsAndSubGroups(members.groupIds),
|
|
906
|
+
...members.userIds
|
|
907
|
+
])).filter((uid)=>uid !== user?.id), user).catch((e)=>this.logger.error(`${this.onShareActionForMembers.name} - ${e}`));
|
|
908
|
+
}
|
|
909
|
+
async createLinkFromSpaceOrShare(user, uuid, spaceOrShareId, type, createOrUpdateLinkDto) {
|
|
910
|
+
/* only used during the share creation from this manager */ if (!await this.linksQueries.isReservedUUID(user.id, uuid)) {
|
|
911
|
+
this.logger.error(`${this.createLinkFromSpaceOrShare.name} - user attempted to use UUID (${uuid}) was not reserved`);
|
|
912
|
+
throw new _common.HttpException('UUID was not reserved', _common.HttpStatus.BAD_REQUEST);
|
|
913
|
+
}
|
|
914
|
+
const permission = type === _links.LINK_TYPE.SPACE ? _user.GUEST_PERMISSION.SPACES : _user.GUEST_PERMISSION.SHARES;
|
|
915
|
+
const guestLink = await this.createGuestLink(permission, createOrUpdateLinkDto.password, createOrUpdateLinkDto.language, createOrUpdateLinkDto.isActive !== undefined ? createOrUpdateLinkDto.isActive : true);
|
|
916
|
+
this.logger.debug(`${this.createLinkFromSpaceOrShare.name} - guest link (${guestLink.id}) created`);
|
|
917
|
+
let linkId;
|
|
918
|
+
try {
|
|
919
|
+
linkId = await this.linksQueries.createLinkToSpaceOrShare(guestLink.id, spaceOrShareId, type, {
|
|
920
|
+
...createOrUpdateLinkDto,
|
|
921
|
+
uuid: uuid,
|
|
922
|
+
userId: guestLink.id
|
|
923
|
+
});
|
|
924
|
+
this.logger.debug(`${this.createLinkFromSpaceOrShare.name} - link (${linkId}) for guest link (${guestLink.id}) created : ${JSON.stringify(createOrUpdateLinkDto)}`);
|
|
925
|
+
} catch (e) {
|
|
926
|
+
this.logger.error(`${this.createLinkFromSpaceOrShare.name} - unable to create link with uuid (${uuid}) : ${e}`);
|
|
927
|
+
throw new _common.HttpException('Unable to update link', _common.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
async deleteGuestLinks(guestLinks) {
|
|
931
|
+
for (const guestLink of guestLinks){
|
|
932
|
+
try {
|
|
933
|
+
await this.usersQueries.deleteGuestLink(guestLink.id);
|
|
934
|
+
this.logger.log(`${this.deleteGuestLinks.name} - guest (${guestLink.id}) (link: ${guestLink.linkId}) was removed`);
|
|
935
|
+
} catch (e) {
|
|
936
|
+
this.logger.error(`${this.deleteGuestLinks.name} - guest (${guestLink.id}) (link: ${guestLink.linkId}) was not removed : ${e}`);
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
/* MANAGE CACHE PERMISSIONS AND NOTIFY */ async clearCachePermissionsAndOrNotify(share, action, memberIds, user) {
|
|
941
|
+
if (!memberIds?.length) {
|
|
942
|
+
return;
|
|
943
|
+
}
|
|
944
|
+
this.logger.verbose(`${this.clearCachePermissionsAndOrNotify.name} - share:${share.alias} ${action} members:${JSON.stringify(memberIds)}`);
|
|
945
|
+
if (action !== _constants.ACTION.ADD) {
|
|
946
|
+
// clear permissions for share members
|
|
947
|
+
this.sharesQueries.clearCachePermissions(share.alias, memberIds).catch((e)=>this.logger.error(`${this.clearCachePermissionsAndOrNotify.name} - ${e}`));
|
|
948
|
+
}
|
|
949
|
+
if (action !== _constants.ACTION.UPDATE) {
|
|
950
|
+
// notify the members who have joined or left the share
|
|
951
|
+
const notification = {
|
|
952
|
+
app: _notifications.NOTIFICATION_APP.SHARES,
|
|
953
|
+
event: user ? _notifications.NOTIFICATION_APP_EVENT.SHARES[action] : _notifications.NOTIFICATION_APP_EVENT.SHARES_WITHOUT_OWNER[action],
|
|
954
|
+
element: share.name,
|
|
955
|
+
url: _spaces.SPACE_REPOSITORY.SHARES
|
|
956
|
+
};
|
|
957
|
+
this.notificationsManager.create(memberIds, notification, {
|
|
958
|
+
currentUrl: this.contextManager.get('headerOriginUrl'),
|
|
959
|
+
author: user,
|
|
960
|
+
action: action
|
|
961
|
+
}).catch((e)=>this.logger.error(`${this.clearCachePermissionsAndOrNotify.name} - ${e}`));
|
|
962
|
+
}
|
|
963
|
+
}
|
|
964
|
+
async notifyGuestLink(user, link, spaceOrShareName, action) {
|
|
965
|
+
if (!link.linkSettings.email) {
|
|
966
|
+
return;
|
|
967
|
+
}
|
|
968
|
+
this.notificationsManager.sendEmailNotification([
|
|
969
|
+
{
|
|
970
|
+
id: -1,
|
|
971
|
+
email: link.linkSettings.email,
|
|
972
|
+
language: link.linkSettings.language,
|
|
973
|
+
notification: _user.USER_NOTIFICATION.APPLICATION_EMAIL
|
|
974
|
+
}
|
|
975
|
+
], {
|
|
976
|
+
app: _notifications.NOTIFICATION_APP.LINKS,
|
|
977
|
+
event: _notifications.NOTIFICATION_APP_EVENT.LINKS[action],
|
|
978
|
+
element: spaceOrShareName,
|
|
979
|
+
url: null
|
|
980
|
+
}, {
|
|
981
|
+
author: user,
|
|
982
|
+
linkUUID: link.linkSettings.uuid,
|
|
983
|
+
currentUrl: this.contextManager.get('headerOriginUrl'),
|
|
984
|
+
action: action
|
|
985
|
+
}).catch((e)=>this.logger.error(`${this.notifyGuestLink.name} - ${e}`));
|
|
986
|
+
}
|
|
987
|
+
constructor(contextManager, notificationsManager, sharesQueries, spaceQueries, usersQueries, linksQueries){
|
|
988
|
+
this.contextManager = contextManager;
|
|
989
|
+
this.notificationsManager = notificationsManager;
|
|
990
|
+
this.sharesQueries = sharesQueries;
|
|
991
|
+
this.spaceQueries = spaceQueries;
|
|
992
|
+
this.usersQueries = usersQueries;
|
|
993
|
+
this.linksQueries = linksQueries;
|
|
994
|
+
this.logger = new _common.Logger(SharesManager.name);
|
|
995
|
+
}
|
|
996
|
+
};
|
|
997
|
+
SharesManager = _ts_decorate([
|
|
998
|
+
(0, _common.Injectable)(),
|
|
999
|
+
_ts_metadata("design:type", Function),
|
|
1000
|
+
_ts_metadata("design:paramtypes", [
|
|
1001
|
+
typeof _contextmanagerservice.ContextManager === "undefined" ? Object : _contextmanagerservice.ContextManager,
|
|
1002
|
+
typeof _notificationsmanagerservice.NotificationsManager === "undefined" ? Object : _notificationsmanagerservice.NotificationsManager,
|
|
1003
|
+
typeof _sharesqueriesservice.SharesQueries === "undefined" ? Object : _sharesqueriesservice.SharesQueries,
|
|
1004
|
+
typeof _spacesqueriesservice.SpacesQueries === "undefined" ? Object : _spacesqueriesservice.SpacesQueries,
|
|
1005
|
+
typeof _usersqueriesservice.UsersQueries === "undefined" ? Object : _usersqueriesservice.UsersQueries,
|
|
1006
|
+
typeof _linksqueriesservice.LinksQueries === "undefined" ? Object : _linksqueriesservice.LinksQueries
|
|
1007
|
+
])
|
|
1008
|
+
], SharesManager);
|
|
1009
|
+
|
|
1010
|
+
//# sourceMappingURL=shares-manager.service.js.map
|